{"version":3,"file":"js/chunk-vendors.22fbf7ff.js","mappings":"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","sources":["webpack://frontend/./node_modules/@vue/cli-service/node_modules/@vue/vue-loader-v15/lib/runtime/componentNormalizer.js","webpack://frontend/./node_modules/@wry/equality/lib/equality.esm.js","webpack://frontend/./node_modules/apollo-cache/lib/bundle.esm.js","webpack://frontend/./node_modules/@wry/context/lib/context.esm.js","webpack://frontend/./node_modules/optimism/lib/bundle.esm.js","webpack://frontend/./node_modules/apollo-cache-inmemory/lib/bundle.esm.js","webpack://frontend/./node_modules/apollo-client/bundle.esm.js","webpack://frontend/./node_modules/apollo-link-http-common/lib/bundle.esm.js","webpack://frontend/./node_modules/apollo-link-http/lib/bundle.esm.js","webpack://frontend/./node_modules/apollo-link-ws/lib/bundle.esm.js","webpack://frontend/./node_modules/apollo-link/lib/bundle.esm.js","webpack://frontend/./node_modules/apollo-utilities/lib/bundle.esm.js","webpack://frontend/./node_modules/backo2/index.js","webpack://frontend/./node_modules/core-js/internals/a-callable.js","webpack://frontend/./node_modules/core-js/internals/an-object.js","webpack://frontend/./node_modules/core-js/internals/array-includes.js","webpack://frontend/./node_modules/core-js/internals/array-set-length.js","webpack://frontend/./node_modules/core-js/internals/classof-raw.js","webpack://frontend/./node_modules/core-js/internals/copy-constructor-properties.js","webpack://frontend/./node_modules/core-js/internals/create-non-enumerable-property.js","webpack://frontend/./node_modules/core-js/internals/create-property-descriptor.js","webpack://frontend/./node_modules/core-js/internals/define-built-in.js","webpack://frontend/./node_modules/core-js/internals/define-global-property.js","webpack://frontend/./node_modules/core-js/internals/descriptors.js","webpack://frontend/./node_modules/core-js/internals/document-all.js","webpack://frontend/./node_modules/core-js/internals/document-create-element.js","webpack://frontend/./node_modules/core-js/internals/does-not-exceed-safe-integer.js","webpack://frontend/./node_modules/core-js/internals/engine-user-agent.js","webpack://frontend/./node_modules/core-js/internals/engine-v8-version.js","webpack://frontend/./node_modules/core-js/internals/enum-bug-keys.js","webpack://frontend/./node_modules/core-js/internals/export.js","webpack://frontend/./node_modules/core-js/internals/fails.js","webpack://frontend/./node_modules/core-js/internals/function-bind-native.js","webpack://frontend/./node_modules/core-js/internals/function-call.js","webpack://frontend/./node_modules/core-js/internals/function-name.js","webpack://frontend/./node_modules/core-js/internals/function-uncurry-this.js","webpack://frontend/./node_modules/core-js/internals/get-built-in.js","webpack://frontend/./node_modules/core-js/internals/get-method.js","webpack://frontend/./node_modules/core-js/internals/global.js","webpack://frontend/./node_modules/core-js/internals/has-own-property.js","webpack://frontend/./node_modules/core-js/internals/hidden-keys.js","webpack://frontend/./node_modules/core-js/internals/ie8-dom-define.js","webpack://frontend/./node_modules/core-js/internals/indexed-object.js","webpack://frontend/./node_modules/core-js/internals/inspect-source.js","webpack://frontend/./node_modules/core-js/internals/internal-state.js","webpack://frontend/./node_modules/core-js/internals/is-array.js","webpack://frontend/./node_modules/core-js/internals/is-callable.js","webpack://frontend/./node_modules/core-js/internals/is-forced.js","webpack://frontend/./node_modules/core-js/internals/is-null-or-undefined.js","webpack://frontend/./node_modules/core-js/internals/is-object.js","webpack://frontend/./node_modules/core-js/internals/is-pure.js","webpack://frontend/./node_modules/core-js/internals/is-symbol.js","webpack://frontend/./node_modules/core-js/internals/length-of-array-like.js","webpack://frontend/./node_modules/core-js/internals/make-built-in.js","webpack://frontend/./node_modules/core-js/internals/math-trunc.js","webpack://frontend/./node_modules/core-js/internals/object-define-property.js","webpack://frontend/./node_modules/core-js/internals/object-get-own-property-descriptor.js","webpack://frontend/./node_modules/core-js/internals/object-get-own-property-names.js","webpack://frontend/./node_modules/core-js/internals/object-get-own-property-symbols.js","webpack://frontend/./node_modules/core-js/internals/object-is-prototype-of.js","webpack://frontend/./node_modules/core-js/internals/object-keys-internal.js","webpack://frontend/./node_modules/core-js/internals/object-property-is-enumerable.js","webpack://frontend/./node_modules/core-js/internals/ordinary-to-primitive.js","webpack://frontend/./node_modules/core-js/internals/own-keys.js","webpack://frontend/./node_modules/core-js/internals/require-object-coercible.js","webpack://frontend/./node_modules/core-js/internals/shared-key.js","webpack://frontend/./node_modules/core-js/internals/shared-store.js","webpack://frontend/./node_modules/core-js/internals/shared.js","webpack://frontend/./node_modules/core-js/internals/symbol-constructor-detection.js","webpack://frontend/./node_modules/core-js/internals/to-absolute-index.js","webpack://frontend/./node_modules/core-js/internals/to-indexed-object.js","webpack://frontend/./node_modules/core-js/internals/to-integer-or-infinity.js","webpack://frontend/./node_modules/core-js/internals/to-length.js","webpack://frontend/./node_modules/core-js/internals/to-object.js","webpack://frontend/./node_modules/core-js/internals/to-primitive.js","webpack://frontend/./node_modules/core-js/internals/to-property-key.js","webpack://frontend/./node_modules/core-js/internals/try-to-string.js","webpack://frontend/./node_modules/core-js/internals/uid.js","webpack://frontend/./node_modules/core-js/internals/use-symbol-as-uid.js","webpack://frontend/./node_modules/core-js/internals/v8-prototype-define-bug.js","webpack://frontend/./node_modules/core-js/internals/weak-map-basic-detection.js","webpack://frontend/./node_modules/core-js/internals/well-known-symbol.js","webpack://frontend/./node_modules/core-js/modules/es.array.push.js","webpack://frontend/./node_modules/eventemitter3/index.js","webpack://frontend/./node_modules/fast-json-stable-stringify/index.js","webpack://frontend/./node_modules/graphql-tag/src/index.js","webpack://frontend/./node_modules/subscriptions-transport-ws/dist/client.js","webpack://frontend/./node_modules/subscriptions-transport-ws/dist/defaults.js","webpack://frontend/./node_modules/subscriptions-transport-ws/dist/message-types.js","webpack://frontend/./node_modules/subscriptions-transport-ws/dist/protocol.js","webpack://frontend/./node_modules/subscriptions-transport-ws/dist/utils/is-object.js","webpack://frontend/./node_modules/subscriptions-transport-ws/dist/utils/is-string.js","webpack://frontend/./node_modules/symbol-observable/es/ponyfill.js","webpack://frontend/./node_modules/symbol-observable/es/index.js","webpack://frontend/./node_modules/ts-invariant/lib/invariant.esm.js","webpack://frontend/./node_modules/tslib/tslib.es6.js","webpack://frontend/./node_modules/vue-apollo/dist/vue-apollo.esm.js","webpack://frontend/./node_modules/vue-router/dist/vue-router.esm.js","webpack://frontend/./node_modules/vue/dist/vue.runtime.esm.js","webpack://frontend/./node_modules/zen-observable-ts/lib/bundle.esm.js","webpack://frontend/./node_modules/zen-observable/index.js","webpack://frontend/./node_modules/zen-observable/lib/Observable.js","webpack://frontend/./node_modules/graphql/jsutils/inspect.mjs","webpack://frontend/./node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","webpack://frontend/./node_modules/graphql/language/blockString.mjs","webpack://frontend/./node_modules/graphql/language/kinds.mjs","webpack://frontend/./node_modules/graphql/jsutils/devAssert.mjs","webpack://frontend/./node_modules/graphql/jsutils/defineToJSON.mjs","webpack://frontend/./node_modules/graphql/jsutils/isObjectLike.mjs","webpack://frontend/./node_modules/graphql/language/location.mjs","webpack://frontend/./node_modules/graphql/language/printLocation.mjs","webpack://frontend/./node_modules/graphql/error/GraphQLError.mjs","webpack://frontend/./node_modules/graphql/error/syntaxError.mjs","webpack://frontend/./node_modules/graphql/jsutils/defineToStringTag.mjs","webpack://frontend/./node_modules/graphql/language/source.mjs","webpack://frontend/./node_modules/graphql/language/tokenKind.mjs","webpack://frontend/./node_modules/graphql/language/lexer.mjs","webpack://frontend/./node_modules/graphql/language/directiveLocation.mjs","webpack://frontend/./node_modules/graphql/language/parser.mjs","webpack://frontend/./node_modules/graphql/language/printer.mjs","webpack://frontend/./node_modules/graphql/language/visitor.mjs","webpack://frontend/./node_modules/graphql/utilities/getOperationAST.mjs"],"sourcesContent":["/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent(\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier /* server only */,\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options =\n typeof scriptExports === 'function' ? scriptExports.options : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) {\n // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection(h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing ? [].concat(existing, hook) : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","var _a = Object.prototype, toString = _a.toString, hasOwnProperty = _a.hasOwnProperty;\r\nvar previousComparisons = new Map();\r\n/**\r\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\r\n */\r\nfunction equal(a, b) {\r\n try {\r\n return check(a, b);\r\n }\r\n finally {\r\n previousComparisons.clear();\r\n }\r\n}\r\nfunction check(a, b) {\r\n // If the two values are strictly equal, our job is easy.\r\n if (a === b) {\r\n return true;\r\n }\r\n // Object.prototype.toString returns a representation of the runtime type of\r\n // the given value that is considerably more precise than typeof.\r\n var aTag = toString.call(a);\r\n var bTag = toString.call(b);\r\n // If the runtime types of a and b are different, they could maybe be equal\r\n // under some interpretation of equality, but for simplicity and performance\r\n // we just return false instead.\r\n if (aTag !== bTag) {\r\n return false;\r\n }\r\n switch (aTag) {\r\n case '[object Array]':\r\n // Arrays are a lot like other objects, but we can cheaply compare their\r\n // lengths as a short-cut before comparing their elements.\r\n if (a.length !== b.length)\r\n return false;\r\n // Fall through to object case...\r\n case '[object Object]': {\r\n if (previouslyCompared(a, b))\r\n return true;\r\n var aKeys = Object.keys(a);\r\n var bKeys = Object.keys(b);\r\n // If `a` and `b` have a different number of enumerable keys, they\r\n // must be different.\r\n var keyCount = aKeys.length;\r\n if (keyCount !== bKeys.length)\r\n return false;\r\n // Now make sure they have the same keys.\r\n for (var k = 0; k < keyCount; ++k) {\r\n if (!hasOwnProperty.call(b, aKeys[k])) {\r\n return false;\r\n }\r\n }\r\n // Finally, check deep equality of all child properties.\r\n for (var k = 0; k < keyCount; ++k) {\r\n var key = aKeys[k];\r\n if (!check(a[key], b[key])) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n case '[object Error]':\r\n return a.name === b.name && a.message === b.message;\r\n case '[object Number]':\r\n // Handle NaN, which is !== itself.\r\n if (a !== a)\r\n return b !== b;\r\n // Fall through to shared +a === +b case...\r\n case '[object Boolean]':\r\n case '[object Date]':\r\n return +a === +b;\r\n case '[object RegExp]':\r\n case '[object String]':\r\n return a == \"\" + b;\r\n case '[object Map]':\r\n case '[object Set]': {\r\n if (a.size !== b.size)\r\n return false;\r\n if (previouslyCompared(a, b))\r\n return true;\r\n var aIterator = a.entries();\r\n var isMap = aTag === '[object Map]';\r\n while (true) {\r\n var info = aIterator.next();\r\n if (info.done)\r\n break;\r\n // If a instanceof Set, aValue === aKey.\r\n var _a = info.value, aKey = _a[0], aValue = _a[1];\r\n // So this works the same way for both Set and Map.\r\n if (!b.has(aKey)) {\r\n return false;\r\n }\r\n // However, we care about deep equality of values only when dealing\r\n // with Map structures.\r\n if (isMap && !check(aValue, b.get(aKey))) {\r\n return false;\r\n }\r\n }\r\n return true;\r\n }\r\n }\r\n // Otherwise the values are not equal.\r\n return false;\r\n}\r\nfunction previouslyCompared(a, b) {\r\n // Though cyclic references can make an object graph appear infinite from the\r\n // perspective of a depth-first traversal, the graph still contains a finite\r\n // number of distinct object references. We use the previousComparisons cache\r\n // to avoid comparing the same pair of object references more than once, which\r\n // guarantees termination (even if we end up comparing every object in one\r\n // graph to every object in the other graph, which is extremely unlikely),\r\n // while still allowing weird isomorphic structures (like rings with different\r\n // lengths) a chance to pass the equality test.\r\n var bSet = previousComparisons.get(a);\r\n if (bSet) {\r\n // Return true here because we can be sure false will be returned somewhere\r\n // else if the objects are not equivalent.\r\n if (bSet.has(b))\r\n return true;\r\n }\r\n else {\r\n previousComparisons.set(a, bSet = new Set);\r\n }\r\n bSet.add(b);\r\n return false;\r\n}\n\nexport default equal;\nexport { equal };\n//# sourceMappingURL=equality.esm.js.map\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}\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}\nfunction selectionSetFromObj(obj) {\n if (typeof obj === 'number' ||\n typeof obj === 'boolean' ||\n typeof obj === 'string' ||\n typeof obj === 'undefined' ||\n obj === null) {\n return null;\n }\n if (Array.isArray(obj)) {\n return selectionSetFromObj(obj[0]);\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}\nvar justTypenameQuery = {\n kind: 'Document',\n definitions: [\n {\n kind: 'OperationDefinition',\n operation: 'query',\n name: null,\n variableDefinitions: null,\n directives: [],\n selectionSet: {\n kind: 'SelectionSet',\n selections: [\n {\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 ],\n};\n\nvar ApolloCache = (function () {\n function ApolloCache() {\n }\n ApolloCache.prototype.transformDocument = function (document) {\n return document;\n };\n ApolloCache.prototype.transformForLink = function (document) {\n return document;\n };\n ApolloCache.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.read({\n query: options.query,\n variables: options.variables,\n optimistic: optimistic,\n });\n };\n ApolloCache.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\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 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 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 ApolloCache.prototype.writeData = function (_a) {\n var id = _a.id, data = _a.data;\n if (typeof id !== 'undefined') {\n var typenameResult = null;\n try {\n typenameResult = this.read({\n rootId: id,\n optimistic: false,\n query: justTypenameQuery,\n });\n }\n catch (e) {\n }\n var __typename = (typenameResult && typenameResult.__typename) || '__ClientData';\n var dataToWrite = Object.assign({ __typename: __typename }, data);\n this.writeFragment({\n id: id,\n fragment: fragmentFromPojo(dataToWrite, __typename),\n data: dataToWrite,\n });\n }\n else {\n this.writeQuery({ query: queryFromPojo(data), data: data });\n }\n };\n return ApolloCache;\n}());\n\nvar Cache;\n(function (Cache) {\n})(Cache || (Cache = {}));\n\nexport { ApolloCache, Cache };\n//# sourceMappingURL=bundle.esm.js.map\n","// This currentContext variable will only be used if the makeSlotClass\r\n// function is called, which happens only if this is the first copy of the\r\n// @wry/context package to be imported.\r\nvar currentContext = null;\r\n// This unique internal object is used to denote the absence of a value\r\n// for a given Slot, and is never exposed to outside code.\r\nvar MISSING_VALUE = {};\r\nvar idCounter = 1;\r\n// Although we can't do anything about the cost of duplicated code from\r\n// accidentally bundling multiple copies of the @wry/context package, we can\r\n// avoid creating the Slot class more than once using makeSlotClass.\r\nvar makeSlotClass = function () { return /** @class */ (function () {\r\n function Slot() {\r\n // If you have a Slot object, you can find out its slot.id, but you cannot\r\n // guess the slot.id of a Slot you don't have access to, thanks to the\r\n // randomized suffix.\r\n this.id = [\r\n \"slot\",\r\n idCounter++,\r\n Date.now(),\r\n Math.random().toString(36).slice(2),\r\n ].join(\":\");\r\n }\r\n Slot.prototype.hasValue = function () {\r\n for (var context_1 = currentContext; context_1; context_1 = context_1.parent) {\r\n // We use the Slot object iself as a key to its value, which means the\r\n // value cannot be obtained without a reference to the Slot object.\r\n if (this.id in context_1.slots) {\r\n var value = context_1.slots[this.id];\r\n if (value === MISSING_VALUE)\r\n break;\r\n if (context_1 !== currentContext) {\r\n // Cache the value in currentContext.slots so the next lookup will\r\n // be faster. This caching is safe because the tree of contexts and\r\n // the values of the slots are logically immutable.\r\n currentContext.slots[this.id] = value;\r\n }\r\n return true;\r\n }\r\n }\r\n if (currentContext) {\r\n // If a value was not found for this Slot, it's never going to be found\r\n // no matter how many times we look it up, so we might as well cache\r\n // the absence of the value, too.\r\n currentContext.slots[this.id] = MISSING_VALUE;\r\n }\r\n return false;\r\n };\r\n Slot.prototype.getValue = function () {\r\n if (this.hasValue()) {\r\n return currentContext.slots[this.id];\r\n }\r\n };\r\n Slot.prototype.withValue = function (value, callback, \r\n // Given the prevalence of arrow functions, specifying arguments is likely\r\n // to be much more common than specifying `this`, hence this ordering:\r\n args, thisArg) {\r\n var _a;\r\n var slots = (_a = {\r\n __proto__: null\r\n },\r\n _a[this.id] = value,\r\n _a);\r\n var parent = currentContext;\r\n currentContext = { parent: parent, slots: slots };\r\n try {\r\n // Function.prototype.apply allows the arguments array argument to be\r\n // omitted or undefined, so args! is fine here.\r\n return callback.apply(thisArg, args);\r\n }\r\n finally {\r\n currentContext = parent;\r\n }\r\n };\r\n // Capture the current context and wrap a callback function so that it\r\n // reestablishes the captured context when called.\r\n Slot.bind = function (callback) {\r\n var context = currentContext;\r\n return function () {\r\n var saved = currentContext;\r\n try {\r\n currentContext = context;\r\n return callback.apply(this, arguments);\r\n }\r\n finally {\r\n currentContext = saved;\r\n }\r\n };\r\n };\r\n // Immediately run a callback function without any captured context.\r\n Slot.noContext = function (callback, \r\n // Given the prevalence of arrow functions, specifying arguments is likely\r\n // to be much more common than specifying `this`, hence this ordering:\r\n args, thisArg) {\r\n if (currentContext) {\r\n var saved = currentContext;\r\n try {\r\n currentContext = null;\r\n // Function.prototype.apply allows the arguments array argument to be\r\n // omitted or undefined, so args! is fine here.\r\n return callback.apply(thisArg, args);\r\n }\r\n finally {\r\n currentContext = saved;\r\n }\r\n }\r\n else {\r\n return callback.apply(thisArg, args);\r\n }\r\n };\r\n return Slot;\r\n}()); };\r\n// We store a single global implementation of the Slot class as a permanent\r\n// non-enumerable symbol property of the Array constructor. This obfuscation\r\n// does nothing to prevent access to the Slot class, but at least it ensures\r\n// the implementation (i.e. currentContext) cannot be tampered with, and all\r\n// copies of the @wry/context package (hopefully just one) will share the\r\n// same Slot implementation. Since the first copy of the @wry/context package\r\n// to be imported wins, this technique imposes a very high cost for any\r\n// future breaking changes to the Slot class.\r\nvar globalKey = \"@wry/context:Slot\";\r\nvar host = Array;\r\nvar Slot = host[globalKey] || function () {\r\n var Slot = makeSlotClass();\r\n try {\r\n Object.defineProperty(host, globalKey, {\r\n value: host[globalKey] = Slot,\r\n enumerable: false,\r\n writable: false,\r\n configurable: false,\r\n });\r\n }\r\n finally {\r\n return Slot;\r\n }\r\n}();\n\nvar bind = Slot.bind, noContext = Slot.noContext;\r\nfunction setTimeoutWithContext(callback, delay) {\r\n return setTimeout(bind(callback), delay);\r\n}\r\n// Turn any generator function into an async function (using yield instead\r\n// of await), with context automatically preserved across yields.\r\nfunction asyncFromGen(genFn) {\r\n return function () {\r\n var gen = genFn.apply(this, arguments);\r\n var boundNext = bind(gen.next);\r\n var boundThrow = bind(gen.throw);\r\n return new Promise(function (resolve, reject) {\r\n function invoke(method, argument) {\r\n try {\r\n var result = method.call(gen, argument);\r\n }\r\n catch (error) {\r\n return reject(error);\r\n }\r\n var next = result.done ? resolve : invokeNext;\r\n if (isPromiseLike(result.value)) {\r\n result.value.then(next, result.done ? reject : invokeThrow);\r\n }\r\n else {\r\n next(result.value);\r\n }\r\n }\r\n var invokeNext = function (value) { return invoke(boundNext, value); };\r\n var invokeThrow = function (error) { return invoke(boundThrow, error); };\r\n invokeNext();\r\n });\r\n };\r\n}\r\nfunction isPromiseLike(value) {\r\n return value && typeof value.then === \"function\";\r\n}\r\n// If you use the fibers npm package to implement coroutines in Node.js,\r\n// you should call this function at least once to ensure context management\r\n// remains coherent across any yields.\r\nvar wrappedFibers = [];\r\nfunction wrapYieldingFiberMethods(Fiber) {\r\n // There can be only one implementation of Fiber per process, so this array\r\n // should never grow longer than one element.\r\n if (wrappedFibers.indexOf(Fiber) < 0) {\r\n var wrap = function (obj, method) {\r\n var fn = obj[method];\r\n obj[method] = function () {\r\n return noContext(fn, arguments, this);\r\n };\r\n };\r\n // These methods can yield, according to\r\n // https://github.com/laverdet/node-fibers/blob/ddebed9b8ae3883e57f822e2108e6943e5c8d2a8/fibers.js#L97-L100\r\n wrap(Fiber, \"yield\");\r\n wrap(Fiber.prototype, \"run\");\r\n wrap(Fiber.prototype, \"throwInto\");\r\n wrappedFibers.push(Fiber);\r\n }\r\n return Fiber;\r\n}\n\nexport { Slot, asyncFromGen, bind, noContext, setTimeoutWithContext as setTimeout, wrapYieldingFiberMethods };\n//# sourceMappingURL=context.esm.js.map\n","import { Slot } from '@wry/context';\nexport { asyncFromGen, bind as bindContext, noContext, setTimeout } from '@wry/context';\n\nfunction defaultDispose() { }\r\nvar Cache = /** @class */ (function () {\r\n function Cache(max, dispose) {\r\n if (max === void 0) { max = Infinity; }\r\n if (dispose === void 0) { dispose = defaultDispose; }\r\n this.max = max;\r\n this.dispose = dispose;\r\n this.map = new Map();\r\n this.newest = null;\r\n this.oldest = null;\r\n }\r\n Cache.prototype.has = function (key) {\r\n return this.map.has(key);\r\n };\r\n Cache.prototype.get = function (key) {\r\n var entry = this.getEntry(key);\r\n return entry && entry.value;\r\n };\r\n Cache.prototype.getEntry = function (key) {\r\n var entry = this.map.get(key);\r\n if (entry && entry !== this.newest) {\r\n var older = entry.older, newer = entry.newer;\r\n if (newer) {\r\n newer.older = older;\r\n }\r\n if (older) {\r\n older.newer = newer;\r\n }\r\n entry.older = this.newest;\r\n entry.older.newer = entry;\r\n entry.newer = null;\r\n this.newest = entry;\r\n if (entry === this.oldest) {\r\n this.oldest = newer;\r\n }\r\n }\r\n return entry;\r\n };\r\n Cache.prototype.set = function (key, value) {\r\n var entry = this.getEntry(key);\r\n if (entry) {\r\n return entry.value = value;\r\n }\r\n entry = {\r\n key: key,\r\n value: value,\r\n newer: null,\r\n older: this.newest\r\n };\r\n if (this.newest) {\r\n this.newest.newer = entry;\r\n }\r\n this.newest = entry;\r\n this.oldest = this.oldest || entry;\r\n this.map.set(key, entry);\r\n return entry.value;\r\n };\r\n Cache.prototype.clean = function () {\r\n while (this.oldest && this.map.size > this.max) {\r\n this.delete(this.oldest.key);\r\n }\r\n };\r\n Cache.prototype.delete = function (key) {\r\n var entry = this.map.get(key);\r\n if (entry) {\r\n if (entry === this.newest) {\r\n this.newest = entry.older;\r\n }\r\n if (entry === this.oldest) {\r\n this.oldest = entry.newer;\r\n }\r\n if (entry.newer) {\r\n entry.newer.older = entry.older;\r\n }\r\n if (entry.older) {\r\n entry.older.newer = entry.newer;\r\n }\r\n this.map.delete(key);\r\n this.dispose(entry.value, key);\r\n return true;\r\n }\r\n return false;\r\n };\r\n return Cache;\r\n}());\n\nvar parentEntrySlot = new Slot();\n\nvar reusableEmptyArray = [];\r\nvar emptySetPool = [];\r\nvar POOL_TARGET_SIZE = 100;\r\n// Since this package might be used browsers, we should avoid using the\r\n// Node built-in assert module.\r\nfunction assert(condition, optionalMessage) {\r\n if (!condition) {\r\n throw new Error(optionalMessage || \"assertion failure\");\r\n }\r\n}\r\nfunction valueIs(a, b) {\r\n var len = a.length;\r\n return (\r\n // Unknown values are not equal to each other.\r\n len > 0 &&\r\n // Both values must be ordinary (or both exceptional) to be equal.\r\n len === b.length &&\r\n // The underlying value or exception must be the same.\r\n a[len - 1] === b[len - 1]);\r\n}\r\nfunction valueGet(value) {\r\n switch (value.length) {\r\n case 0: throw new Error(\"unknown value\");\r\n case 1: return value[0];\r\n case 2: throw value[1];\r\n }\r\n}\r\nfunction valueCopy(value) {\r\n return value.slice(0);\r\n}\r\nvar Entry = /** @class */ (function () {\r\n function Entry(fn, args) {\r\n this.fn = fn;\r\n this.args = args;\r\n this.parents = new Set();\r\n this.childValues = new Map();\r\n // When this Entry has children that are dirty, this property becomes\r\n // a Set containing other Entry objects, borrowed from emptySetPool.\r\n // When the set becomes empty, it gets recycled back to emptySetPool.\r\n this.dirtyChildren = null;\r\n this.dirty = true;\r\n this.recomputing = false;\r\n this.value = [];\r\n ++Entry.count;\r\n }\r\n // This is the most important method of the Entry API, because it\r\n // determines whether the cached this.value can be returned immediately,\r\n // or must be recomputed. The overall performance of the caching system\r\n // depends on the truth of the following observations: (1) this.dirty is\r\n // usually false, (2) this.dirtyChildren is usually null/empty, and thus\r\n // (3) valueGet(this.value) is usually returned without recomputation.\r\n Entry.prototype.recompute = function () {\r\n assert(!this.recomputing, \"already recomputing\");\r\n if (!rememberParent(this) && maybeReportOrphan(this)) {\r\n // The recipient of the entry.reportOrphan callback decided to dispose\r\n // of this orphan entry by calling entry.dispose(), so we don't need to\r\n // (and should not) proceed with the recomputation.\r\n return void 0;\r\n }\r\n return mightBeDirty(this)\r\n ? reallyRecompute(this)\r\n : valueGet(this.value);\r\n };\r\n Entry.prototype.setDirty = function () {\r\n if (this.dirty)\r\n return;\r\n this.dirty = true;\r\n this.value.length = 0;\r\n reportDirty(this);\r\n // We can go ahead and unsubscribe here, since any further dirty\r\n // notifications we receive will be redundant, and unsubscribing may\r\n // free up some resources, e.g. file watchers.\r\n maybeUnsubscribe(this);\r\n };\r\n Entry.prototype.dispose = function () {\r\n var _this = this;\r\n forgetChildren(this).forEach(maybeReportOrphan);\r\n maybeUnsubscribe(this);\r\n // Because this entry has been kicked out of the cache (in index.js),\r\n // we've lost the ability to find out if/when this entry becomes dirty,\r\n // whether that happens through a subscription, because of a direct call\r\n // to entry.setDirty(), or because one of its children becomes dirty.\r\n // Because of this loss of future information, we have to assume the\r\n // worst (that this entry might have become dirty very soon), so we must\r\n // immediately mark this entry's parents as dirty. Normally we could\r\n // just call entry.setDirty() rather than calling parent.setDirty() for\r\n // each parent, but that would leave this entry in parent.childValues\r\n // and parent.dirtyChildren, which would prevent the child from being\r\n // truly forgotten.\r\n this.parents.forEach(function (parent) {\r\n parent.setDirty();\r\n forgetChild(parent, _this);\r\n });\r\n };\r\n Entry.count = 0;\r\n return Entry;\r\n}());\r\nfunction rememberParent(child) {\r\n var parent = parentEntrySlot.getValue();\r\n if (parent) {\r\n child.parents.add(parent);\r\n if (!parent.childValues.has(child)) {\r\n parent.childValues.set(child, []);\r\n }\r\n if (mightBeDirty(child)) {\r\n reportDirtyChild(parent, child);\r\n }\r\n else {\r\n reportCleanChild(parent, child);\r\n }\r\n return parent;\r\n }\r\n}\r\nfunction reallyRecompute(entry) {\r\n // Since this recomputation is likely to re-remember some of this\r\n // entry's children, we forget our children here but do not call\r\n // maybeReportOrphan until after the recomputation finishes.\r\n var originalChildren = forgetChildren(entry);\r\n // Set entry as the parent entry while calling recomputeNewValue(entry).\r\n parentEntrySlot.withValue(entry, recomputeNewValue, [entry]);\r\n if (maybeSubscribe(entry)) {\r\n // If we successfully recomputed entry.value and did not fail to\r\n // (re)subscribe, then this Entry is no longer explicitly dirty.\r\n setClean(entry);\r\n }\r\n // Now that we've had a chance to re-remember any children that were\r\n // involved in the recomputation, we can safely report any orphan\r\n // children that remain.\r\n originalChildren.forEach(maybeReportOrphan);\r\n return valueGet(entry.value);\r\n}\r\nfunction recomputeNewValue(entry) {\r\n entry.recomputing = true;\r\n // Set entry.value as unknown.\r\n entry.value.length = 0;\r\n try {\r\n // If entry.fn succeeds, entry.value will become a normal Value.\r\n entry.value[0] = entry.fn.apply(null, entry.args);\r\n }\r\n catch (e) {\r\n // If entry.fn throws, entry.value will become exceptional.\r\n entry.value[1] = e;\r\n }\r\n // Either way, this line is always reached.\r\n entry.recomputing = false;\r\n}\r\nfunction mightBeDirty(entry) {\r\n return entry.dirty || !!(entry.dirtyChildren && entry.dirtyChildren.size);\r\n}\r\nfunction setClean(entry) {\r\n entry.dirty = false;\r\n if (mightBeDirty(entry)) {\r\n // This Entry may still have dirty children, in which case we can't\r\n // let our parents know we're clean just yet.\r\n return;\r\n }\r\n reportClean(entry);\r\n}\r\nfunction reportDirty(child) {\r\n child.parents.forEach(function (parent) { return reportDirtyChild(parent, child); });\r\n}\r\nfunction reportClean(child) {\r\n child.parents.forEach(function (parent) { return reportCleanChild(parent, child); });\r\n}\r\n// Let a parent Entry know that one of its children may be dirty.\r\nfunction reportDirtyChild(parent, child) {\r\n // Must have called rememberParent(child) before calling\r\n // reportDirtyChild(parent, child).\r\n assert(parent.childValues.has(child));\r\n assert(mightBeDirty(child));\r\n if (!parent.dirtyChildren) {\r\n parent.dirtyChildren = emptySetPool.pop() || new Set;\r\n }\r\n else if (parent.dirtyChildren.has(child)) {\r\n // If we already know this child is dirty, then we must have already\r\n // informed our own parents that we are dirty, so we can terminate\r\n // the recursion early.\r\n return;\r\n }\r\n parent.dirtyChildren.add(child);\r\n reportDirty(parent);\r\n}\r\n// Let a parent Entry know that one of its children is no longer dirty.\r\nfunction reportCleanChild(parent, child) {\r\n // Must have called rememberChild(child) before calling\r\n // reportCleanChild(parent, child).\r\n assert(parent.childValues.has(child));\r\n assert(!mightBeDirty(child));\r\n var childValue = parent.childValues.get(child);\r\n if (childValue.length === 0) {\r\n parent.childValues.set(child, valueCopy(child.value));\r\n }\r\n else if (!valueIs(childValue, child.value)) {\r\n parent.setDirty();\r\n }\r\n removeDirtyChild(parent, child);\r\n if (mightBeDirty(parent)) {\r\n return;\r\n }\r\n reportClean(parent);\r\n}\r\nfunction removeDirtyChild(parent, child) {\r\n var dc = parent.dirtyChildren;\r\n if (dc) {\r\n dc.delete(child);\r\n if (dc.size === 0) {\r\n if (emptySetPool.length < POOL_TARGET_SIZE) {\r\n emptySetPool.push(dc);\r\n }\r\n parent.dirtyChildren = null;\r\n }\r\n }\r\n}\r\n// If the given entry has a reportOrphan method, and no remaining parents,\r\n// call entry.reportOrphan and return true iff it returns true. The\r\n// reportOrphan function should return true to indicate entry.dispose()\r\n// has been called, and the entry has been removed from any other caches\r\n// (see index.js for the only current example).\r\nfunction maybeReportOrphan(entry) {\r\n return entry.parents.size === 0 &&\r\n typeof entry.reportOrphan === \"function\" &&\r\n entry.reportOrphan() === true;\r\n}\r\n// Removes all children from this entry and returns an array of the\r\n// removed children.\r\nfunction forgetChildren(parent) {\r\n var children = reusableEmptyArray;\r\n if (parent.childValues.size > 0) {\r\n children = [];\r\n parent.childValues.forEach(function (_value, child) {\r\n forgetChild(parent, child);\r\n children.push(child);\r\n });\r\n }\r\n // After we forget all our children, this.dirtyChildren must be empty\r\n // and therefore must have been reset to null.\r\n assert(parent.dirtyChildren === null);\r\n return children;\r\n}\r\nfunction forgetChild(parent, child) {\r\n child.parents.delete(parent);\r\n parent.childValues.delete(child);\r\n removeDirtyChild(parent, child);\r\n}\r\nfunction maybeSubscribe(entry) {\r\n if (typeof entry.subscribe === \"function\") {\r\n try {\r\n maybeUnsubscribe(entry); // Prevent double subscriptions.\r\n entry.unsubscribe = entry.subscribe.apply(null, entry.args);\r\n }\r\n catch (e) {\r\n // If this Entry has a subscribe function and it threw an exception\r\n // (or an unsubscribe function it previously returned now throws),\r\n // return false to indicate that we were not able to subscribe (or\r\n // unsubscribe), and this Entry should remain dirty.\r\n entry.setDirty();\r\n return false;\r\n }\r\n }\r\n // Returning true indicates either that there was no entry.subscribe\r\n // function or that it succeeded.\r\n return true;\r\n}\r\nfunction maybeUnsubscribe(entry) {\r\n var unsubscribe = entry.unsubscribe;\r\n if (typeof unsubscribe === \"function\") {\r\n entry.unsubscribe = void 0;\r\n unsubscribe();\r\n }\r\n}\n\n// A trie data structure that holds object keys weakly, yet can also hold\r\n// non-object keys, unlike the native `WeakMap`.\r\nvar KeyTrie = /** @class */ (function () {\r\n function KeyTrie(weakness) {\r\n this.weakness = weakness;\r\n }\r\n KeyTrie.prototype.lookup = function () {\r\n var array = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n array[_i] = arguments[_i];\r\n }\r\n return this.lookupArray(array);\r\n };\r\n KeyTrie.prototype.lookupArray = function (array) {\r\n var node = this;\r\n array.forEach(function (key) { return node = node.getChildTrie(key); });\r\n return node.data || (node.data = Object.create(null));\r\n };\r\n KeyTrie.prototype.getChildTrie = function (key) {\r\n var map = this.weakness && isObjRef(key)\r\n ? this.weak || (this.weak = new WeakMap())\r\n : this.strong || (this.strong = new Map());\r\n var child = map.get(key);\r\n if (!child)\r\n map.set(key, child = new KeyTrie(this.weakness));\r\n return child;\r\n };\r\n return KeyTrie;\r\n}());\r\nfunction isObjRef(value) {\r\n switch (typeof value) {\r\n case \"object\":\r\n if (value === null)\r\n break;\r\n // Fall through to return true...\r\n case \"function\":\r\n return true;\r\n }\r\n return false;\r\n}\n\n// The defaultMakeCacheKey function is remarkably powerful, because it gives\r\n// a unique object for any shallow-identical list of arguments. If you need\r\n// to implement a custom makeCacheKey function, you may find it helpful to\r\n// delegate the final work to defaultMakeCacheKey, which is why we export it\r\n// here. However, you may want to avoid defaultMakeCacheKey if your runtime\r\n// does not support WeakMap, or you have the ability to return a string key.\r\n// In those cases, just write your own custom makeCacheKey functions.\r\nvar keyTrie = new KeyTrie(typeof WeakMap === \"function\");\r\nfunction defaultMakeCacheKey() {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n return keyTrie.lookupArray(args);\r\n}\r\nvar caches = new Set();\r\nfunction wrap(originalFunction, options) {\r\n if (options === void 0) { options = Object.create(null); }\r\n var cache = new Cache(options.max || Math.pow(2, 16), function (entry) { return entry.dispose(); });\r\n var disposable = !!options.disposable;\r\n var makeCacheKey = options.makeCacheKey || defaultMakeCacheKey;\r\n function optimistic() {\r\n if (disposable && !parentEntrySlot.hasValue()) {\r\n // If there's no current parent computation, and this wrapped\r\n // function is disposable (meaning we don't care about entry.value,\r\n // just dependency tracking), then we can short-cut everything else\r\n // in this function, because entry.recompute() is going to recycle\r\n // the entry object without recomputing anything, anyway.\r\n return void 0;\r\n }\r\n var key = makeCacheKey.apply(null, arguments);\r\n if (key === void 0) {\r\n return originalFunction.apply(null, arguments);\r\n }\r\n var args = Array.prototype.slice.call(arguments);\r\n var entry = cache.get(key);\r\n if (entry) {\r\n entry.args = args;\r\n }\r\n else {\r\n entry = new Entry(originalFunction, args);\r\n cache.set(key, entry);\r\n entry.subscribe = options.subscribe;\r\n if (disposable) {\r\n entry.reportOrphan = function () { return cache.delete(key); };\r\n }\r\n }\r\n var value = entry.recompute();\r\n // Move this entry to the front of the least-recently used queue,\r\n // since we just finished computing its value.\r\n cache.set(key, entry);\r\n caches.add(cache);\r\n // Clean up any excess entries in the cache, but only if there is no\r\n // active parent entry, meaning we're not in the middle of a larger\r\n // computation that might be flummoxed by the cleaning.\r\n if (!parentEntrySlot.hasValue()) {\r\n caches.forEach(function (cache) { return cache.clean(); });\r\n caches.clear();\r\n }\r\n // If options.disposable is truthy, the caller of wrap is telling us\r\n // they don't care about the result of entry.recompute(), so we should\r\n // avoid returning the value, so it won't be accidentally used.\r\n return disposable ? void 0 : value;\r\n }\r\n optimistic.dirty = function () {\r\n var key = makeCacheKey.apply(null, arguments);\r\n var child = key !== void 0 && cache.get(key);\r\n if (child) {\r\n child.setDirty();\r\n }\r\n };\r\n return optimistic;\r\n}\n\nexport { KeyTrie, defaultMakeCacheKey, wrap };\n//# sourceMappingURL=bundle.esm.js.map\n","import { __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';\n\nvar haveWarned = false;\nfunction shouldWarn() {\n var answer = !haveWarned;\n if (!isTest()) {\n haveWarned = true;\n }\n return answer;\n}\nvar HeuristicFragmentMatcher = (function () {\n function HeuristicFragmentMatcher() {\n }\n HeuristicFragmentMatcher.prototype.ensureReady = function () {\n return Promise.resolve();\n };\n HeuristicFragmentMatcher.prototype.canBypassInit = function () {\n return true;\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 if (!obj) {\n return isRootQuery;\n }\n var _a = obj.__typename, __typename = _a === void 0 ? isRootQuery && 'Query' : _a;\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 \" +\n \"and will be removed in future versions of Apollo client. You should fix this and set addTypename to true now.\");\n }\n return 'heuristic';\n }\n if (__typename === typeCondition) {\n return true;\n }\n if (shouldWarn()) {\n process.env.NODE_ENV === \"production\" || invariant.error('You are using the simple (heuristic) fragment matcher, but your ' +\n 'queries contain union or interface types. Apollo Client will not be ' +\n 'able to accurately map fragments. To make this error go away, use ' +\n 'the `IntrospectionFragmentMatcher` as described in the docs: ' +\n 'https://www.apollographql.com/docs/react/advanced/fragments.html#fragment-matcher');\n }\n return 'heuristic';\n };\n return HeuristicFragmentMatcher;\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 }\n else {\n this.isReady = false;\n }\n this.match = this.match.bind(this);\n }\n IntrospectionFragmentMatcher.prototype.match = function (idValue, typeCondition, context) {\n process.env.NODE_ENV === \"production\" ? invariant(this.isReady, 2) : 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 if (!obj) {\n return isRootQuery;\n }\n var _a = obj.__typename, __typename = _a === void 0 ? isRootQuery && 'Query' : _a;\n process.env.NODE_ENV === \"production\" ? invariant(__typename, 3) : invariant(__typename, \"Cannot match fragment because __typename property is missing: \" + JSON.stringify(obj));\n if (__typename === typeCondition) {\n return true;\n }\n var implementingTypes = this.possibleTypesMap[typeCondition];\n if (__typename &&\n implementingTypes &&\n implementingTypes.indexOf(__typename) > -1) {\n return true;\n }\n return false;\n };\n IntrospectionFragmentMatcher.prototype.parseIntrospectionResult = function (introspectionResultData) {\n var typeMap = {};\n introspectionResultData.__schema.types.forEach(function (type) {\n if (type.kind === 'UNION' || type.kind === 'INTERFACE') {\n typeMap[type.name] = type.possibleTypes.map(function (implementingType) { return implementingType.name; });\n }\n });\n return typeMap;\n };\n return IntrospectionFragmentMatcher;\n}());\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar DepTrackingCache = (function () {\n function DepTrackingCache(data) {\n var _this = this;\n if (data === void 0) { data = Object.create(null); }\n this.data = data;\n this.depend = wrap(function (dataId) { return _this.data[dataId]; }, {\n disposable: true,\n makeCacheKey: function (dataId) {\n return dataId;\n },\n });\n }\n DepTrackingCache.prototype.toObject = function () {\n return this.data;\n };\n DepTrackingCache.prototype.get = function (dataId) {\n this.depend(dataId);\n return this.data[dataId];\n };\n DepTrackingCache.prototype.set = function (dataId, value) {\n var oldValue = this.data[dataId];\n if (value !== oldValue) {\n this.data[dataId] = value;\n this.depend.dirty(dataId);\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 DepTrackingCache.prototype.clear = function () {\n this.replace(null);\n };\n DepTrackingCache.prototype.replace = function (newData) {\n var _this = this;\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 }\n else {\n Object.keys(this.data).forEach(function (dataId) {\n _this.delete(dataId);\n });\n }\n };\n return DepTrackingCache;\n}());\nfunction defaultNormalizedCacheFactory(seed) {\n return new DepTrackingCache(seed);\n}\n\nvar StoreReader = (function () {\n function StoreReader(_a) {\n var _this = this;\n var _b = _a === void 0 ? {} : _a, _c = _b.cacheKeyRoot, cacheKeyRoot = _c === void 0 ? new KeyTrie(canUseWeakMap) : _c, _d = _b.freezeResults, freezeResults = _d === void 0 ? false : _d;\n var _e = this, executeStoreQuery = _e.executeStoreQuery, executeSelectionSet = _e.executeSelectionSet, executeSubSelectedArray = _e.executeSubSelectedArray;\n this.freezeResults = freezeResults;\n this.executeStoreQuery = wrap(function (options) {\n return executeStoreQuery.call(_this, options);\n }, {\n makeCacheKey: function (_a) {\n var query = _a.query, rootValue = _a.rootValue, contextValue = _a.contextValue, variableValues = _a.variableValues, fragmentMatcher = _a.fragmentMatcher;\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 (_a) {\n var selectionSet = _a.selectionSet, rootValue = _a.rootValue, execContext = _a.execContext;\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 (_a) {\n var field = _a.field, array = _a.array, execContext = _a.execContext;\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 StoreReader.prototype.readQueryFromStore = function (options) {\n return this.diffQueryAgainstStore(__assign(__assign({}, options), { returnPartialData: false })).result;\n };\n StoreReader.prototype.diffQueryAgainstStore = function (_a) {\n var store = _a.store, query = _a.query, variables = _a.variables, previousResult = _a.previousResult, _b = _a.returnPartialData, returnPartialData = _b === void 0 ? true : _b, _c = _a.rootId, rootId = _c === void 0 ? 'ROOT_QUERY' : _c, fragmentMatcherFunction = _a.fragmentMatcherFunction, 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 if (hasMissingFields && !returnPartialData) {\n execResult.missing.forEach(function (info) {\n if (info.tolerable)\n 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 if (previousResult) {\n if (isEqual(previousResult, execResult.result)) {\n execResult.result = previousResult;\n }\n }\n return {\n result: execResult.result,\n complete: !hasMissingFields,\n };\n };\n StoreReader.prototype.executeStoreQuery = function (_a) {\n var query = _a.query, rootValue = _a.rootValue, contextValue = _a.contextValue, variableValues = _a.variableValues, _b = _a.fragmentMatcher, 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 StoreReader.prototype.executeSelectionSet = function (_a) {\n var _this = this;\n var selectionSet = _a.selectionSet, rootValue = _a.rootValue, execContext = _a.execContext;\n var fragmentMap = execContext.fragmentMap, contextValue = execContext.contextValue, variables = execContext.variableValues;\n var finalResult = { result: null };\n var objectsToMerge = [];\n var object = contextValue.store.get(rootValue.id);\n var typename = (object && object.__typename) ||\n (rootValue.id === 'ROOT_QUERY' && 'Query') ||\n void 0;\n function handleMissing(result) {\n var _a;\n if (result.missing) {\n finalResult.missing = finalResult.missing || [];\n (_a = finalResult.missing).push.apply(_a, result.missing);\n }\n return result.result;\n }\n selectionSet.selections.forEach(function (selection) {\n var _a;\n if (!shouldInclude(selection, variables)) {\n return;\n }\n if (isField(selection)) {\n var fieldResult = handleMissing(_this.executeField(object, typename, selection, execContext));\n if (typeof fieldResult !== 'undefined') {\n objectsToMerge.push((_a = {},\n _a[resultKeyNameFromField(selection)] = fieldResult,\n _a));\n }\n }\n else {\n var fragment = void 0;\n if (isInlineFragment(selection)) {\n fragment = selection;\n }\n else {\n fragment = fragmentMap[selection.name.value];\n if (!fragment) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(9) : new InvariantError(\"No fragment named \" + selection.name.value);\n }\n }\n var typeCondition = fragment.typeCondition && fragment.typeCondition.name.value;\n var match = !typeCondition ||\n execContext.fragmentMatcher(rootValue, typeCondition, contextValue);\n if (match) {\n var fragmentExecResult = _this.executeSelectionSet({\n selectionSet: fragment.selectionSet,\n rootValue: rootValue,\n execContext: execContext,\n });\n if (match === 'heuristic' && fragmentExecResult.missing) {\n fragmentExecResult = __assign(__assign({}, fragmentExecResult), { missing: fragmentExecResult.missing.map(function (info) {\n return __assign(__assign({}, info), { tolerable: true });\n }) });\n }\n objectsToMerge.push(handleMissing(fragmentExecResult));\n }\n }\n });\n finalResult.result = mergeDeepArray(objectsToMerge);\n if (this.freezeResults && process.env.NODE_ENV !== 'production') {\n Object.freeze(finalResult.result);\n }\n return finalResult;\n };\n StoreReader.prototype.executeField = function (object, typename, field, execContext) {\n var variables = execContext.variableValues, 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 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 if (!field.selectionSet) {\n assertSelectionSetForIdValue(field, readStoreResult.result);\n if (this.freezeResults && process.env.NODE_ENV !== 'production') {\n maybeDeepFreeze(readStoreResult);\n }\n return readStoreResult;\n }\n if (readStoreResult.result == null) {\n return readStoreResult;\n }\n return this.combineExecResults(readStoreResult, this.executeSelectionSet({\n selectionSet: field.selectionSet,\n rootValue: readStoreResult.result,\n execContext: execContext,\n }));\n };\n StoreReader.prototype.combineExecResults = function () {\n var execResults = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n execResults[_i] = arguments[_i];\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 StoreReader.prototype.executeSubSelectedArray = function (_a) {\n var _this = this;\n var field = _a.field, array = _a.array, execContext = _a.execContext;\n var missing;\n function handleMissing(childResult) {\n if (childResult.missing) {\n missing = missing || [];\n missing.push.apply(missing, childResult.missing);\n }\n return childResult.result;\n }\n array = array.map(function (item) {\n if (item === null) {\n return null;\n }\n if (Array.isArray(item)) {\n return handleMissing(_this.executeSubSelectedArray({\n field: field,\n array: item,\n execContext: execContext,\n }));\n }\n if (field.selectionSet) {\n return handleMissing(_this.executeSelectionSet({\n selectionSet: field.selectionSet,\n rootValue: item,\n execContext: execContext,\n }));\n }\n assertSelectionSetForIdValue(field, item);\n return item;\n });\n if (this.freezeResults && process.env.NODE_ENV !== 'production') {\n Object.freeze(array);\n }\n return { result: array, missing: missing };\n };\n return StoreReader;\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}\nfunction defaultFragmentMatcher() {\n return true;\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}\nfunction readStoreResolver(object, typename, fieldName, args, context, _a) {\n var resultKey = _a.resultKey, directives = _a.directives;\n var storeKeyName = fieldName;\n if (args || directives) {\n storeKeyName = getStoreKeyName(storeKeyName, args, directives);\n }\n var fieldValue = void 0;\n if (object) {\n fieldValue = object[storeKeyName];\n if (typeof fieldValue === 'undefined' &&\n context.cacheRedirects &&\n typeof typename === 'string') {\n var type = context.cacheRedirects[typename];\n if (type) {\n var resolver = type[fieldName];\n if (resolver) {\n fieldValue = resolver(object, args, {\n getCacheKey: function (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 if (typeof fieldValue === 'undefined') {\n return {\n result: fieldValue,\n missing: [{\n object: object,\n fieldName: storeKeyName,\n tolerable: false,\n }],\n };\n }\n if (isJsonValue(fieldValue)) {\n fieldValue = fieldValue.json;\n }\n return {\n result: fieldValue,\n };\n}\n\nvar ObjectCache = (function () {\n function ObjectCache(data) {\n if (data === void 0) { data = Object.create(null); }\n this.data = data;\n }\n ObjectCache.prototype.toObject = function () {\n return this.data;\n };\n ObjectCache.prototype.get = function (dataId) {\n return this.data[dataId];\n };\n ObjectCache.prototype.set = function (dataId, value) {\n this.data[dataId] = value;\n };\n ObjectCache.prototype.delete = function (dataId) {\n this.data[dataId] = void 0;\n };\n ObjectCache.prototype.clear = function () {\n this.data = Object.create(null);\n };\n ObjectCache.prototype.replace = function (newData) {\n this.data = newData || Object.create(null);\n };\n return ObjectCache;\n}());\nfunction defaultNormalizedCacheFactory$1(seed) {\n return new ObjectCache(seed);\n}\n\nvar WriteError = (function (_super) {\n __extends(WriteError, _super);\n function WriteError() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'WriteError';\n return _this;\n }\n return WriteError;\n}(Error));\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}\nvar StoreWriter = (function () {\n function StoreWriter() {\n }\n StoreWriter.prototype.writeQueryToStore = function (_a) {\n var query = _a.query, result = _a.result, _b = _a.store, store = _b === void 0 ? defaultNormalizedCacheFactory() : _b, variables = _a.variables, dataIdFromObject = _a.dataIdFromObject, 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 StoreWriter.prototype.writeResultToStore = function (_a) {\n var dataId = _a.dataId, result = _a.result, document = _a.document, _b = _a.store, store = _b === void 0 ? defaultNormalizedCacheFactory() : _b, variables = _a.variables, dataIdFromObject = _a.dataIdFromObject, fragmentMatcherFunction = _a.fragmentMatcherFunction;\n var operationDefinition = getOperationDefinition(document);\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 }\n catch (e) {\n throw enhanceErrorWithDocument(e, document);\n }\n };\n StoreWriter.prototype.writeSelectionSetToStore = function (_a) {\n var _this = this;\n var result = _a.result, dataId = _a.dataId, selectionSet = _a.selectionSet, context = _a.context;\n var variables = context.variables, store = context.store, fragmentMap = context.fragmentMap;\n selectionSet.selections.forEach(function (selection) {\n var _a;\n if (!shouldInclude(selection, variables)) {\n return;\n }\n if (isField(selection)) {\n var resultFieldKey = resultKeyNameFromField(selection);\n var value = result[resultFieldKey];\n if (typeof value !== 'undefined') {\n _this.writeFieldToStore({\n dataId: dataId,\n value: value,\n field: selection,\n context: context,\n });\n }\n else {\n var isDefered = false;\n var isClient = false;\n if (selection.directives && selection.directives.length) {\n isDefered = selection.directives.some(function (directive) { return directive.name && directive.name.value === 'defer'; });\n isClient = selection.directives.some(function (directive) { return directive.name && directive.name.value === 'client'; });\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 }\n else {\n var fragment = void 0;\n if (isInlineFragment(selection)) {\n fragment = selection;\n }\n else {\n fragment = (fragmentMap || {})[selection.name.value];\n process.env.NODE_ENV === \"production\" ? invariant(fragment, 4) : invariant(fragment, \"No fragment named \" + selection.name.value + \".\");\n }\n var matches = true;\n if (context.fragmentMatcherFunction && fragment.typeCondition) {\n var id = dataId || 'self';\n var idValue = toIdValue({ id: id, typename: undefined });\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 if (!isProduction() && match === 'heuristic') {\n process.env.NODE_ENV === \"production\" || invariant.error('WARNING: heuristic fragment matching going on!');\n }\n matches = !!match;\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 StoreWriter.prototype.writeFieldToStore = function (_a) {\n var _b;\n var field = _a.field, value = _a.value, dataId = _a.dataId, context = _a.context;\n var variables = context.variables, dataIdFromObject = context.dataIdFromObject, store = context.store;\n var storeValue;\n var storeObject;\n var storeFieldName = storeKeyNameFromField(field, variables);\n if (!field.selectionSet || value === null) {\n storeValue =\n value != null && typeof value === 'object'\n ?\n { type: 'json', json: value }\n :\n value;\n }\n else if (Array.isArray(value)) {\n var generatedId = dataId + \".\" + storeFieldName;\n storeValue = this.processArrayValue(value, generatedId, field.selectionSet, context);\n }\n else {\n var valueDataId = dataId + \".\" + storeFieldName;\n var generated = true;\n if (!isGeneratedId(valueDataId)) {\n valueDataId = '$' + valueDataId;\n }\n if (dataIdFromObject) {\n var semanticId = dataIdFromObject(value);\n process.env.NODE_ENV === \"production\" ? invariant(!semanticId || !isGeneratedId(semanticId), 5) : invariant(!semanticId || !isGeneratedId(semanticId), 'IDs returned by dataIdFromObject cannot begin with the \"$\" character.');\n if (semanticId ||\n (typeof semanticId === 'number' && semanticId === 0)) {\n valueDataId = semanticId;\n generated = false;\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 var typename = value.__typename;\n storeValue = toIdValue({ id: valueDataId, typename: typename }, generated);\n storeObject = store.get(dataId);\n var escapedId = storeObject && storeObject[storeFieldName];\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, 6) : 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, 7) : 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 if (escapedId.generated) {\n if (typenameChanged) {\n if (!generated) {\n store.delete(escapedId.id);\n }\n }\n else {\n mergeWithGenerated(escapedId.id, storeValue.id, store);\n }\n }\n }\n }\n storeObject = store.get(dataId);\n if (!storeObject || !isEqual(storeValue, storeObject[storeFieldName])) {\n store.set(dataId, __assign(__assign({}, storeObject), (_b = {}, _b[storeFieldName] = storeValue, _b)));\n }\n };\n StoreWriter.prototype.processArrayValue = function (value, generatedId, selectionSet, context) {\n var _this = this;\n return value.map(function (item, index) {\n if (item === null) {\n return null;\n }\n var itemDataId = generatedId + \".\" + index;\n if (Array.isArray(item)) {\n return _this.processArrayValue(item, itemDataId, selectionSet, context);\n }\n var generated = true;\n if (context.dataIdFromObject) {\n var semanticId = context.dataIdFromObject(item);\n if (semanticId) {\n itemDataId = semanticId;\n generated = false;\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 return toIdValue({ id: itemDataId, typename: item.__typename }, generated);\n });\n };\n return StoreWriter;\n}());\nfunction isGeneratedId(id) {\n return id[0] === '$';\n}\nfunction mergeWithGenerated(generatedKey, realKey, cache) {\n if (generatedKey === realKey) {\n return false;\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 if (isIdValue(value) &&\n isGeneratedId(value.id) &&\n isIdValue(realValue) &&\n !isEqual(value, realValue) &&\n mergeWithGenerated(value.id, realValue.id, cache)) {\n madeChanges = true;\n }\n });\n cache.delete(generatedKey);\n var newRealValue = __assign(__assign({}, generated), real);\n if (isEqual(newRealValue, real)) {\n return madeChanges;\n }\n cache.set(realKey, newRealValue);\n return true;\n}\nfunction isDataProcessed(dataId, field, processedData) {\n if (!processedData) {\n return false;\n }\n if (processedData[dataId]) {\n if (processedData[dataId].indexOf(field) >= 0) {\n return true;\n }\n else {\n processedData[dataId].push(field);\n }\n }\n else {\n processedData[dataId] = [field];\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};\nfunction defaultDataIdFromObject(result) {\n if (result.__typename) {\n if (result.id !== undefined) {\n return result.__typename + \":\" + result.id;\n }\n if (result._id !== undefined) {\n return result.__typename + \":\" + result._id;\n }\n }\n return null;\n}\nvar hasOwn$1 = Object.prototype.hasOwnProperty;\nvar OptimisticCacheLayer = (function (_super) {\n __extends(OptimisticCacheLayer, _super);\n function OptimisticCacheLayer(optimisticId, parent, transaction) {\n var _this = _super.call(this, Object.create(null)) || this;\n _this.optimisticId = optimisticId;\n _this.parent = parent;\n _this.transaction = transaction;\n return _this;\n }\n OptimisticCacheLayer.prototype.toObject = function () {\n return __assign(__assign({}, this.parent.toObject()), this.data);\n };\n OptimisticCacheLayer.prototype.get = function (dataId) {\n return hasOwn$1.call(this.data, dataId)\n ? this.data[dataId]\n : this.parent.get(dataId);\n };\n return OptimisticCacheLayer;\n}(ObjectCache));\nvar InMemoryCache = (function (_super) {\n __extends(InMemoryCache, _super);\n function InMemoryCache(config) {\n if (config === void 0) { config = {}; }\n var _this = _super.call(this) || this;\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 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 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 _this.addTypename = !!_this.config.addTypename;\n _this.data = _this.config.resultCaching\n ? new DepTrackingCache()\n : 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 (c) {\n if (c.optimistic) {\n return;\n }\n if (c.previousResult) {\n return;\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 InMemoryCache.prototype.restore = function (data) {\n if (data)\n this.data.replace(data);\n return this;\n };\n InMemoryCache.prototype.extract = function (optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return (optimistic ? this.optimisticData : this.data).toObject();\n };\n InMemoryCache.prototype.read = function (options) {\n if (typeof options.rootId === 'string' &&\n typeof this.data.get(options.rootId) === 'undefined') {\n return null;\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 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 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 InMemoryCache.prototype.watch = function (watch) {\n var _this = this;\n this.watches.add(watch);\n return function () {\n _this.watches.delete(watch);\n };\n };\n InMemoryCache.prototype.evict = function (query) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(1) : new InvariantError(\"eviction is not implemented on InMemory Cache\");\n };\n InMemoryCache.prototype.reset = function () {\n this.data.clear();\n this.broadcastWatches();\n return Promise.resolve();\n };\n InMemoryCache.prototype.removeOptimistic = function (idToRemove) {\n var toReapply = [];\n var removedCount = 0;\n var layer = this.optimisticData;\n while (layer instanceof OptimisticCacheLayer) {\n if (layer.optimisticId === idToRemove) {\n ++removedCount;\n }\n else {\n toReapply.push(layer);\n }\n layer = layer.parent;\n }\n if (removedCount > 0) {\n this.optimisticData = layer;\n while (toReapply.length > 0) {\n var layer_1 = toReapply.pop();\n this.performTransaction(layer_1.transaction, layer_1.optimisticId);\n }\n this.broadcastWatches();\n }\n };\n InMemoryCache.prototype.performTransaction = function (transaction, optimisticId) {\n var _a = this, data = _a.data, silenceBroadcast = _a.silenceBroadcast;\n this.silenceBroadcast = true;\n if (typeof optimisticId === 'string') {\n this.data = this.optimisticData = new OptimisticCacheLayer(optimisticId, this.optimisticData, transaction);\n }\n try {\n transaction(this);\n }\n finally {\n this.silenceBroadcast = silenceBroadcast;\n this.data = data;\n }\n this.broadcastWatches();\n };\n InMemoryCache.prototype.recordOptimisticTransaction = function (transaction, id) {\n return this.performTransaction(transaction, id);\n };\n InMemoryCache.prototype.transformDocument = function (document) {\n if (this.addTypename) {\n var result = this.typenameDocumentCache.get(document);\n if (!result) {\n result = addTypenameToDocument(document);\n this.typenameDocumentCache.set(document, result);\n this.typenameDocumentCache.set(result, result);\n }\n return result;\n }\n return document;\n };\n InMemoryCache.prototype.broadcastWatches = function () {\n var _this = this;\n if (!this.silenceBroadcast) {\n this.watches.forEach(function (c) { return _this.maybeBroadcastWatch(c); });\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 return InMemoryCache;\n}(ApolloCache));\n\nexport { HeuristicFragmentMatcher, InMemoryCache, IntrospectionFragmentMatcher, ObjectCache, StoreReader, StoreWriter, WriteError, assertIdValue, defaultDataIdFromObject, defaultNormalizedCacheFactory$1 as defaultNormalizedCacheFactory, enhanceErrorWithDocument };\n//# sourceMappingURL=bundle.esm.js.map\n","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';\n\nvar NetworkStatus;\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 = {}));\nfunction isNetworkRequestInFlight(networkStatus) {\n return networkStatus < 7;\n}\n\nvar Observable = (function (_super) {\n __extends(Observable, _super);\n function Observable() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Observable.prototype[$$observable] = function () {\n return this;\n };\n Observable.prototype['@@observable'] = function () {\n return this;\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}\nvar generateErrorMessage = function (err) {\n var message = '';\n if (isNonEmptyArray(err.graphQLErrors)) {\n err.graphQLErrors.forEach(function (graphQLError) {\n var errorMessage = graphQLError\n ? graphQLError.message\n : 'Error message not found.';\n message += \"GraphQL error: \" + errorMessage + \"\\n\";\n });\n }\n if (err.networkError) {\n message += 'Network error: ' + err.networkError.message + '\\n';\n }\n message = message.replace(/\\n$/, '');\n return message;\n};\nvar ApolloError = (function (_super) {\n __extends(ApolloError, _super);\n function ApolloError(_a) {\n var graphQLErrors = _a.graphQLErrors, networkError = _a.networkError, errorMessage = _a.errorMessage, extraInfo = _a.extraInfo;\n var _this = _super.call(this, errorMessage) || this;\n _this.graphQLErrors = graphQLErrors || [];\n _this.networkError = networkError || null;\n if (!errorMessage) {\n _this.message = generateErrorMessage(_this);\n }\n else {\n _this.message = errorMessage;\n }\n _this.extraInfo = extraInfo;\n _this.__proto__ = ApolloError.prototype;\n return _this;\n }\n return ApolloError;\n}(Error));\n\nvar FetchType;\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 (storeValue, policy) {\n if (policy === void 0) { policy = 'none'; }\n return storeValue && (storeValue.networkError ||\n (policy === 'none' && isNonEmptyArray(storeValue.graphQLErrors)));\n};\nvar ObservableQuery = (function (_super) {\n __extends(ObservableQuery, _super);\n function ObservableQuery(_a) {\n var queryManager = _a.queryManager, options = _a.options, _b = _a.shouldSubscribe, shouldSubscribe = _b === void 0 ? true : _b;\n var _this = _super.call(this, function (observer) {\n return _this.onSubscribe(observer);\n }) || this;\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 ObservableQuery.prototype.result = function () {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var observer = {\n next: function (result) {\n resolve(result);\n _this.observers.delete(observer);\n if (!_this.observers.size) {\n _this.queryManager.removeQuery(_this.queryId);\n }\n setTimeout(function () {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject,\n };\n var subscription = _this.subscribe(observer);\n });\n };\n ObservableQuery.prototype.currentResult = function () {\n var result = this.getCurrentResult();\n if (result.data === undefined) {\n result.data = {};\n }\n return result;\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 var _a = this.queryManager.getCurrentQueryResult(this), data = _a.data, partial = _a.partial;\n var queryStoreValue = this.queryManager.queryStore.get(this.queryId);\n var result;\n var fetchPolicy = this.options.fetchPolicy;\n var isNetworkFetchPolicy = fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache';\n if (queryStoreValue) {\n var networkStatus = queryStoreValue.networkStatus;\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 if (queryStoreValue.variables) {\n this.options.variables = __assign(__assign({}, this.options.variables), queryStoreValue.variables);\n this.variables = this.options.variables;\n }\n result = {\n data: data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus: networkStatus,\n };\n if (queryStoreValue.graphQLErrors && this.options.errorPolicy === 'all') {\n result.errors = queryStoreValue.graphQLErrors;\n }\n }\n else {\n var loading = isNetworkFetchPolicy ||\n (partial && fetchPolicy !== 'cache-only');\n result = {\n data: data,\n loading: loading,\n networkStatus: loading ? NetworkStatus.loading : NetworkStatus.ready,\n };\n }\n if (!partial) {\n this.updateLastResult(__assign(__assign({}, result), { stale: false }));\n }\n return __assign(__assign({}, result), { partial: partial });\n };\n ObservableQuery.prototype.isDifferentFromLastResult = function (newResult) {\n var snapshot = this.lastResultSnapshot;\n return !(snapshot &&\n newResult &&\n snapshot.networkStatus === newResult.networkStatus &&\n snapshot.stale === newResult.stale &&\n isEqual(snapshot.data, newResult.data));\n };\n ObservableQuery.prototype.getLastResult = function () {\n return this.lastResult;\n };\n ObservableQuery.prototype.getLastError = function () {\n return this.lastError;\n };\n ObservableQuery.prototype.resetLastResults = function () {\n delete this.lastResult;\n delete this.lastResultSnapshot;\n delete this.lastError;\n this.isTornDown = false;\n };\n ObservableQuery.prototype.resetQueryStoreErrors = function () {\n var queryStore = this.queryManager.queryStore.get(this.queryId);\n if (queryStore) {\n queryStore.networkError = null;\n queryStore.graphQLErrors = [];\n }\n };\n ObservableQuery.prototype.refetch = function (variables) {\n var fetchPolicy = this.options.fetchPolicy;\n if (fetchPolicy === 'cache-only') {\n return Promise.reject(process.env.NODE_ENV === \"production\" ? new InvariantError(3) : new InvariantError('cache-only fetchPolicy option should not be used together with query refetch.'));\n }\n if (fetchPolicy !== 'no-cache' &&\n fetchPolicy !== 'cache-and-network') {\n fetchPolicy = 'network-only';\n }\n if (!isEqual(this.variables, variables)) {\n this.variables = __assign(__assign({}, this.variables), variables);\n }\n if (!isEqual(this.options.variables, this.variables)) {\n this.options.variables = __assign(__assign({}, this.options.variables), this.variables);\n }\n return this.queryManager.fetchQuery(this.queryId, __assign(__assign({}, this.options), { fetchPolicy: fetchPolicy }), FetchType.refetch);\n };\n ObservableQuery.prototype.fetchMore = function (fetchMoreOptions) {\n var _this = this;\n process.env.NODE_ENV === \"production\" ? invariant(fetchMoreOptions.updateQuery, 4) : invariant(fetchMoreOptions.updateQuery, 'updateQuery option is required. This function defines how to update the query data with the new results.');\n var combinedOptions = __assign(__assign({}, (fetchMoreOptions.query ? fetchMoreOptions : __assign(__assign(__assign({}, this.options), fetchMoreOptions), { variables: __assign(__assign({}, this.variables), fetchMoreOptions.variables) }))), { fetchPolicy: 'network-only' });\n var qid = this.queryManager.generateQueryId();\n return this.queryManager\n .fetchQuery(qid, combinedOptions, FetchType.normal, this.queryId)\n .then(function (fetchMoreResult) {\n _this.updateQuery(function (previousResult) {\n return fetchMoreOptions.updateQuery(previousResult, {\n fetchMoreResult: fetchMoreResult.data,\n variables: combinedOptions.variables,\n });\n });\n _this.queryManager.stopQuery(qid);\n return fetchMoreResult;\n }, function (error) {\n _this.queryManager.stopQuery(qid);\n throw error;\n });\n };\n ObservableQuery.prototype.subscribeToMore = function (options) {\n var _this = this;\n var subscription = this.queryManager\n .startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n })\n .subscribe({\n next: function (subscriptionData) {\n var updateQuery = options.updateQuery;\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 (err) {\n if (options.onError) {\n options.onError(err);\n return;\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 ObservableQuery.prototype.setOptions = function (opts) {\n var oldFetchPolicy = this.options.fetchPolicy;\n this.options = __assign(__assign({}, this.options), opts);\n if (opts.pollInterval) {\n this.startPolling(opts.pollInterval);\n }\n else if (opts.pollInterval === 0) {\n this.stopPolling();\n }\n var fetchPolicy = opts.fetchPolicy;\n return this.setVariables(this.options.variables, oldFetchPolicy !== fetchPolicy && (oldFetchPolicy === 'cache-only' ||\n oldFetchPolicy === 'standby' ||\n fetchPolicy === 'network-only'), opts.fetchResults);\n };\n ObservableQuery.prototype.setVariables = function (variables, tryFetch, fetchResults) {\n if (tryFetch === void 0) { tryFetch = false; }\n if (fetchResults === void 0) { fetchResults = true; }\n this.isTornDown = false;\n variables = variables || this.variables;\n if (!tryFetch && isEqual(variables, this.variables)) {\n return this.observers.size && fetchResults\n ? this.result()\n : Promise.resolve();\n }\n this.variables = this.options.variables = variables;\n if (!this.observers.size) {\n return Promise.resolve();\n }\n return this.queryManager.fetchQuery(this.queryId, this.options);\n };\n ObservableQuery.prototype.updateQuery = function (mapFn) {\n var queryManager = this.queryManager;\n var _a = queryManager.getQueryWithPreviousResult(this.queryId), previousResult = _a.previousResult, variables = _a.variables, document = _a.document;\n var newResult = tryFunctionOrLogError(function () {\n return mapFn(previousResult, { variables: variables });\n });\n if (newResult) {\n queryManager.dataStore.markUpdateQueryResult(document, variables, newResult);\n queryManager.broadcastQueries();\n }\n };\n ObservableQuery.prototype.stopPolling = function () {\n this.queryManager.stopPollingQuery(this.queryId);\n this.options.pollInterval = undefined;\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 ObservableQuery.prototype.updateLastResult = function (newResult) {\n var previousResult = this.lastResult;\n this.lastResult = newResult;\n this.lastResultSnapshot = this.queryManager.assumeImmutableResults\n ? newResult\n : cloneDeep(newResult);\n return previousResult;\n };\n ObservableQuery.prototype.onSubscribe = function (observer) {\n var _this = this;\n try {\n var subObserver = observer._subscription._observer;\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n }\n catch (_a) { }\n var first = !this.observers.size;\n this.observers.add(observer);\n if (observer.next && this.lastResult)\n observer.next(this.lastResult);\n if (observer.error && this.lastError)\n observer.error(this.lastError);\n if (first) {\n this.setUpQuery();\n }\n return function () {\n if (_this.observers.delete(observer) && !_this.observers.size) {\n _this.tearDownQuery();\n }\n };\n };\n ObservableQuery.prototype.setUpQuery = function () {\n var _this = this;\n var _a = this, queryManager = _a.queryManager, queryId = _a.queryId;\n if (this.shouldSubscribe) {\n queryManager.addObservableQuery(queryId, this);\n }\n if (this.options.pollInterval) {\n assertNotCacheFirstOrOnly(this);\n queryManager.startPollingQuery(this.options, queryId);\n }\n var onError = function (error) {\n _this.updateLastResult(__assign(__assign({}, _this.lastResult), { errors: error.graphQLErrors, networkStatus: NetworkStatus.error, loading: false }));\n iterateObserversSafely(_this.observers, 'error', _this.lastError = error);\n };\n queryManager.observeQuery(queryId, this.options, {\n next: function (result) {\n if (_this.lastError || _this.isDifferentFromLastResult(result)) {\n var previousResult_1 = _this.updateLastResult(result);\n var _a = _this.options, query_1 = _a.query, variables = _a.variables, fetchPolicy_1 = _a.fetchPolicy;\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 if (!result.loading &&\n previousResult_1 &&\n fetchPolicy_1 !== 'cache-only' &&\n queryManager.transform(query_1).serverQuery &&\n !isEqual(previousVariables, variables)) {\n _this.refetch();\n }\n else {\n iterateObserversSafely(_this.observers, 'next', result);\n }\n });\n }\n else {\n iterateObserversSafely(_this.observers, 'next', result);\n }\n }\n },\n error: onError,\n }).catch(onError);\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) { return sub.unsubscribe(); });\n this.subscriptions.clear();\n queryManager.removeObservableQuery(this.queryId);\n queryManager.stopQuery(this.queryId);\n this.observers.clear();\n };\n return ObservableQuery;\n}(Observable));\nfunction defaultSubscriptionObserverErrorCallback(error) {\n process.env.NODE_ENV === \"production\" || invariant.error('Unhandled error', error.message, error.stack);\n}\nfunction iterateObserversSafely(observers, method, argument) {\n var observersWithMethod = [];\n observers.forEach(function (obs) { return obs[method] && observersWithMethod.push(obs); });\n observersWithMethod.forEach(function (obs) { return obs[method](argument); });\n}\nfunction assertNotCacheFirstOrOnly(obsQuery) {\n var fetchPolicy = obsQuery.options.fetchPolicy;\n process.env.NODE_ENV === \"production\" ? invariant(fetchPolicy !== 'cache-first' && fetchPolicy !== 'cache-only', 5) : 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 MutationStore.prototype.getStore = function () {\n return this.store;\n };\n MutationStore.prototype.get = function (mutationId) {\n return this.store[mutationId];\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 MutationStore.prototype.markMutationError = function (mutationId, error) {\n var mutation = this.store[mutationId];\n if (mutation) {\n mutation.loading = false;\n mutation.error = error;\n }\n };\n MutationStore.prototype.markMutationResult = function (mutationId) {\n var mutation = this.store[mutationId];\n if (mutation) {\n mutation.loading = false;\n mutation.error = null;\n }\n };\n MutationStore.prototype.reset = function () {\n this.store = {};\n };\n return MutationStore;\n}());\n\nvar QueryStore = (function () {\n function QueryStore() {\n this.store = {};\n }\n QueryStore.prototype.getStore = function () {\n return this.store;\n };\n QueryStore.prototype.get = function (queryId) {\n return this.store[queryId];\n };\n QueryStore.prototype.initQuery = function (query) {\n var previousQuery = this.store[query.queryId];\n process.env.NODE_ENV === \"production\" ? invariant(!previousQuery ||\n previousQuery.document === query.document ||\n isEqual(previousQuery.document, query.document), 19) : invariant(!previousQuery ||\n previousQuery.document === query.document ||\n isEqual(previousQuery.document, query.document), 'Internal Error: may not update existing query string in store');\n var isSetVariables = false;\n var previousVariables = null;\n if (query.storePreviousVariables &&\n previousQuery &&\n previousQuery.networkStatus !== NetworkStatus.loading) {\n if (!isEqual(previousQuery.variables, query.variables)) {\n isSetVariables = true;\n previousVariables = previousQuery.variables;\n }\n }\n var networkStatus;\n if (isSetVariables) {\n networkStatus = NetworkStatus.setVariables;\n }\n else if (query.isPoll) {\n networkStatus = NetworkStatus.poll;\n }\n else if (query.isRefetch) {\n networkStatus = NetworkStatus.refetch;\n }\n else {\n networkStatus = NetworkStatus.loading;\n }\n var graphQLErrors = [];\n if (previousQuery && previousQuery.graphQLErrors) {\n graphQLErrors = previousQuery.graphQLErrors;\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 if (typeof query.fetchMoreForQueryId === 'string' &&\n this.store[query.fetchMoreForQueryId]) {\n this.store[query.fetchMoreForQueryId].networkStatus =\n NetworkStatus.fetchMore;\n }\n };\n QueryStore.prototype.markQueryResult = function (queryId, result, fetchMoreForQueryId) {\n if (!this.store || !this.store[queryId])\n 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 if (typeof fetchMoreForQueryId === 'string' &&\n this.store[fetchMoreForQueryId]) {\n this.store[fetchMoreForQueryId].networkStatus = NetworkStatus.ready;\n }\n };\n QueryStore.prototype.markQueryError = function (queryId, error, fetchMoreForQueryId) {\n if (!this.store || !this.store[queryId])\n return;\n this.store[queryId].networkError = error;\n this.store[queryId].networkStatus = NetworkStatus.error;\n if (typeof fetchMoreForQueryId === 'string') {\n this.markQueryResultClient(fetchMoreForQueryId, true);\n }\n };\n QueryStore.prototype.markQueryResultClient = function (queryId, complete) {\n var storeValue = this.store && this.store[queryId];\n if (storeValue) {\n storeValue.networkError = null;\n storeValue.previousVariables = null;\n if (complete) {\n storeValue.networkStatus = NetworkStatus.ready;\n }\n }\n };\n QueryStore.prototype.stopQuery = function (queryId) {\n delete this.store[queryId];\n };\n QueryStore.prototype.reset = function (observableQueryIds) {\n var _this = this;\n Object.keys(this.store).forEach(function (queryId) {\n if (observableQueryIds.indexOf(queryId) < 0) {\n _this.stopQuery(queryId);\n }\n else {\n _this.store[queryId].networkStatus = NetworkStatus.loading;\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, client = _a.client, resolvers = _a.resolvers, fragmentMatcher = _a.fragmentMatcher;\n this.cache = cache;\n if (client) {\n this.client = client;\n }\n if (resolvers) {\n this.addResolvers(resolvers);\n }\n if (fragmentMatcher) {\n this.setFragmentMatcher(fragmentMatcher);\n }\n }\n LocalState.prototype.addResolvers = function (resolvers) {\n var _this = this;\n this.resolvers = this.resolvers || {};\n if (Array.isArray(resolvers)) {\n resolvers.forEach(function (resolverGroup) {\n _this.resolvers = mergeDeep(_this.resolvers, resolverGroup);\n });\n }\n else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n };\n LocalState.prototype.setResolvers = function (resolvers) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n };\n LocalState.prototype.getResolvers = function () {\n return this.resolvers || {};\n };\n LocalState.prototype.runResolvers = function (_a) {\n var document = _a.document, remoteResult = _a.remoteResult, context = _a.context, variables = _a.variables, _b = _a.onlyRunForcedResolvers, 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) { return (__assign(__assign({}, remoteResult), { data: localResult.result })); })];\n }\n return [2, remoteResult];\n });\n });\n };\n LocalState.prototype.setFragmentMatcher = function (fragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n };\n LocalState.prototype.getFragmentMatcher = function () {\n return this.fragmentMatcher;\n };\n LocalState.prototype.clientQuery = function (document) {\n if (hasDirectives(['client'], document)) {\n if (this.resolvers) {\n return document;\n }\n process.env.NODE_ENV === \"production\" || invariant.warn('Found @client directives in a query but no ApolloClient resolvers ' +\n 'were specified. This means ApolloClient local resolver handling ' +\n 'has been disabled, and @client directives will be passed through ' +\n 'to your link chain.');\n }\n return null;\n };\n LocalState.prototype.serverQuery = function (document) {\n return this.resolvers ? removeClientSetsFromDocument(document) : document;\n };\n LocalState.prototype.prepareContext = function (context) {\n if (context === void 0) { context = {}; }\n var cache = this.cache;\n var newContext = __assign(__assign({}, context), { cache: cache, getCacheKey: function (obj) {\n if (cache.config) {\n return cache.config.dataIdFromObject(obj);\n }\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 ' +\n 'a configurable dataIdFromObject, like apollo-cache-inmemory.');\n }\n } });\n return newContext;\n };\n LocalState.prototype.addExportedVariables = function (document, variables, context) {\n if (variables === void 0) { variables = {}; }\n if (context === void 0) { context = {}; }\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) { return (__assign(__assign({}, variables), data.exportedVariables)); })];\n }\n return [2, __assign({}, variables)];\n });\n });\n };\n LocalState.prototype.shouldForceResolvers = function (document) {\n var forceResolvers = false;\n visit(document, {\n Directive: {\n enter: function (node) {\n if (node.name.value === 'client' && node.arguments) {\n forceResolvers = node.arguments.some(function (arg) {\n return arg.name.value === 'always' &&\n arg.value.kind === 'BooleanValue' &&\n arg.value.value === true;\n });\n if (forceResolvers) {\n return BREAK;\n }\n }\n },\n },\n });\n return forceResolvers;\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 LocalState.prototype.resolveDocument = function (document, rootValue, context, variables, fragmentMatcher, onlyRunForcedResolvers) {\n if (context === void 0) { context = {}; }\n if (variables === void 0) { variables = {}; }\n if (fragmentMatcher === void 0) { fragmentMatcher = function () { return true; }; }\n if (onlyRunForcedResolvers === void 0) { onlyRunForcedResolvers = false; }\n return __awaiter(this, void 0, void 0, function () {\n var mainDefinition, fragments, fragmentMap, definitionOperation, defaultOperationType, _a, cache, client, execContext;\n return __generator(this, function (_b) {\n mainDefinition = getMainDefinition(document);\n fragments = getFragmentDefinitions(document);\n fragmentMap = createFragmentMap(fragments);\n definitionOperation = mainDefinition\n .operation;\n defaultOperationType = definitionOperation\n ? capitalizeFirstLetter(definitionOperation)\n : 'Query';\n _a = this, cache = _a.cache, client = _a.client;\n execContext = {\n fragmentMap: fragmentMap,\n context: __assign(__assign({}, context), { cache: cache,\n client: client }),\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) { return ({\n result: result,\n exportedVariables: execContext.exportedVariables,\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 var _this = this;\n return __generator(this, function (_a) {\n fragmentMap = execContext.fragmentMap, context = execContext.context, variables = execContext.variables;\n resultsToMerge = [rootValue];\n execute = function (selection) { 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 if (isField(selection)) {\n return [2, this.resolveField(selection, rootValue, execContext).then(function (fieldResult) {\n var _a;\n if (typeof fieldResult !== 'undefined') {\n resultsToMerge.push((_a = {},\n _a[resultKeyNameFromField(selection)] = fieldResult,\n _a));\n }\n })];\n }\n if (isInlineFragment(selection)) {\n fragment = selection;\n }\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 if (fragment && fragment.typeCondition) {\n typeCondition = fragment.typeCondition.name.value;\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 return [2];\n });\n }); };\n return [2, Promise.all(selectionSet.selections.map(execute)).then(function () {\n return mergeDeepArray(resultsToMerge);\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 var _this = this;\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 if (!execContext.onlyRunForcedResolvers ||\n this.shouldForceResolvers(field)) {\n resolverType = rootValue.__typename || execContext.defaultOperationType;\n resolverMap = this.resolvers && this.resolvers[resolverType];\n if (resolverMap) {\n resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n if (resolve) {\n resultPromise = Promise.resolve(resolve(rootValue, argumentsObjectFromField(field, variables), execContext.context, { field: field, fragmentMap: execContext.fragmentMap }));\n }\n }\n }\n return [2, resultPromise.then(function (result) {\n if (result === void 0) { result = defaultResult; }\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 if (!field.selectionSet) {\n return result;\n }\n if (result == null) {\n return result;\n }\n if (Array.isArray(result)) {\n return _this.resolveSubSelectedArray(field, result, execContext);\n }\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, result, execContext);\n }\n })];\n });\n });\n };\n LocalState.prototype.resolveSubSelectedArray = function (field, result, execContext) {\n var _this = this;\n return Promise.all(result.map(function (item) {\n if (item === null) {\n return null;\n }\n if (Array.isArray(item)) {\n return _this.resolveSubSelectedArray(field, item, execContext);\n }\n if (field.selectionSet) {\n return _this.resolveSelectionSet(field.selectionSet, item, execContext);\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 (value) {\n observers.forEach(function (obs) { return obs.next && obs.next(value); });\n },\n error: function (error) {\n observers.forEach(function (obs) { return obs.error && obs.error(error); });\n },\n complete: function () {\n observers.forEach(function (obs) { return obs.complete && obs.complete(); });\n },\n });\n return function () {\n if (observers.delete(observer) && !observers.size && sub) {\n sub.unsubscribe();\n sub = null;\n }\n };\n });\n}\nfunction asyncMap(observable, mapFn) {\n return new Observable(function (observer) {\n var next = observer.next, error = observer.error, complete = observer.complete;\n var activeNextCount = 0;\n var completed = false;\n var handler = {\n next: function (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 error && error.call(observer, e);\n });\n },\n error: function (e) {\n error && error.call(observer, e);\n },\n complete: function () {\n completed = true;\n if (!activeNextCount) {\n complete && complete.call(observer);\n }\n },\n };\n var sub = observable.subscribe(handler);\n return function () { return sub.unsubscribe(); };\n });\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar QueryManager = (function () {\n function QueryManager(_a) {\n var link = _a.link, _b = _a.queryDeduplication, queryDeduplication = _b === void 0 ? false : _b, store = _a.store, _c = _a.onBroadcast, onBroadcast = _c === void 0 ? function () { return undefined; } : _c, _d = _a.ssrMode, ssrMode = _d === void 0 ? false : _d, _e = _a.clientAwareness, clientAwareness = _e === void 0 ? {} : _e, localState = _a.localState, 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({ cache: store.getCache() });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n }\n QueryManager.prototype.stop = function () {\n var _this = this;\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 QueryManager.prototype.mutate = function (_a) {\n var mutation = _a.mutation, variables = _a.variables, optimisticResponse = _a.optimisticResponse, updateQueriesByName = _a.updateQueries, _b = _a.refetchQueries, refetchQueries = _b === void 0 ? [] : _b, _c = _a.awaitRefetchQueries, awaitRefetchQueries = _c === void 0 ? false : _c, updateWithProxyFn = _a.update, _d = _a.errorPolicy, errorPolicy = _d === void 0 ? 'none' : _d, fetchPolicy = _a.fetchPolicy, _e = _a.context, context = _e === void 0 ? {} : _e;\n return __awaiter(this, void 0, void 0, function () {\n var mutationId, generateUpdateQueriesInfo, self;\n var _this = this;\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 () { return ({ document: mutation }); });\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 case 1:\n variables = _f.sent();\n _f.label = 2;\n case 2:\n generateUpdateQueriesInfo = function () {\n var ret = {};\n if (updateQueriesByName) {\n _this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n if (observableQuery) {\n var queryName = observableQuery.queryName;\n if (queryName &&\n hasOwnProperty.call(updateQueriesByName, queryName)) {\n ret[queryId] = {\n updater: updateQueriesByName[queryName],\n query: _this.queryStore.get(queryId),\n };\n }\n }\n });\n }\n return ret;\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), { optimisticResponse: optimisticResponse }), variables, false).subscribe({\n next: function (result) {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n error = new ApolloError({\n graphQLErrors: result.errors,\n });\n return;\n }\n self.mutationStore.markMutationResult(mutationId);\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 storeResult = result;\n },\n error: function (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 () { return ({ document: null }); });\n reject(new ApolloError({\n networkError: err,\n }));\n },\n complete: function () {\n if (error) {\n self.mutationStore.markMutationError(mutationId, error);\n }\n self.dataStore.markMutationComplete({\n mutationId: mutationId,\n optimisticResponse: optimisticResponse,\n });\n self.broadcastQueries();\n if (error) {\n reject(error);\n return;\n }\n if (typeof refetchQueries === 'function') {\n refetchQueries = refetchQueries(storeResult);\n }\n var refetchQueryPromises = [];\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 if (observableQuery &&\n observableQuery.queryName === refetchQuery) {\n refetchQueryPromises.push(observableQuery.refetch());\n }\n });\n }\n else {\n var queryOptions = {\n query: refetchQuery.query,\n variables: refetchQuery.variables,\n fetchPolicy: 'network-only',\n };\n if (refetchQuery.context) {\n queryOptions.context = refetchQuery.context;\n }\n refetchQueryPromises.push(self.query(queryOptions));\n }\n });\n }\n Promise.all(awaitRefetchQueries ? refetchQueryPromises : []).then(function () {\n self.setQuery(mutationId, function () { return ({ document: null }); });\n if (errorPolicy === 'ignore' &&\n storeResult &&\n graphQLResultHasError(storeResult)) {\n delete storeResult.errors;\n }\n resolve(storeResult);\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 var _this = this;\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 case 1:\n variables = _e.sent();\n _e.label = 2;\n case 2:\n options = __assign(__assign({}, options), { variables: variables });\n isNetworkOnly = fetchPolicy === 'network-only' || fetchPolicy === 'no-cache';\n needToFetch = isNetworkOnly;\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 shouldFetch = needToFetch && fetchPolicy !== 'cache-only' && fetchPolicy !== 'standby';\n if (hasDirectives(['live'], query))\n shouldFetch = true;\n requestId = this.idCounter++;\n cancel = fetchPolicy !== 'no-cache'\n ? this.updateQueryWatch(queryId, query, options)\n : undefined;\n this.setQuery(queryId, function () { return ({\n document: query,\n lastRequestId: requestId,\n invalidated: true,\n cancel: cancel,\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 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 }\n else {\n if (requestId >= _this.getQuery(queryId).lastRequestId) {\n _this.queryStore.markQueryError(queryId, error, fetchMoreForQueryId);\n _this.invalidate(queryId);\n _this.invalidate(fetchMoreForQueryId);\n _this.broadcastQueries();\n }\n throw new ApolloError({ networkError: error });\n }\n });\n if (fetchPolicy !== 'cache-and-network') {\n return [2, networkResult];\n }\n networkResult.catch(function () { });\n }\n this.queryStore.markQueryResultClient(queryId, !shouldFetch);\n this.invalidate(queryId);\n this.invalidate(fetchMoreForQueryId);\n if (this.transform(query).hasForcedResolvers) {\n return [2, this.localState.runResolvers({\n document: query,\n remoteResult: { data: storeResult },\n context: context,\n variables: variables,\n onlyRunForcedResolvers: true,\n }).then(function (result) {\n _this.markQueryResult(queryId, result, options, fetchMoreForQueryId);\n _this.broadcastQueries();\n return result;\n })];\n }\n this.broadcastQueries();\n return [2, { data: storeResult }];\n }\n });\n });\n };\n QueryManager.prototype.markQueryResult = function (queryId, result, _a, fetchMoreForQueryId) {\n var fetchPolicy = _a.fetchPolicy, variables = _a.variables, errorPolicy = _a.errorPolicy;\n if (fetchPolicy === 'no-cache') {\n this.setQuery(queryId, function () { return ({\n newData: { result: result.data, complete: true },\n }); });\n }\n else {\n this.dataStore.markQueryResult(result, this.getQuery(queryId).document, variables, fetchMoreForQueryId, errorPolicy === 'ignore' || errorPolicy === 'all');\n }\n };\n QueryManager.prototype.queryListenerForObserver = function (queryId, options, observer) {\n var _this = this;\n function invoke(method, argument) {\n if (observer[method]) {\n try {\n observer[method](argument);\n }\n catch (e) {\n process.env.NODE_ENV === \"production\" || invariant.error(e);\n }\n }\n else if (method === 'error') {\n process.env.NODE_ENV === \"production\" || invariant.error(argument);\n }\n }\n return function (queryStoreValue, newData) {\n _this.invalidate(queryId, false);\n if (!queryStoreValue)\n return;\n var _a = _this.getQuery(queryId), observableQuery = _a.observableQuery, document = _a.document;\n var fetchPolicy = observableQuery\n ? observableQuery.options.fetchPolicy\n : options.fetchPolicy;\n if (fetchPolicy === 'standby')\n return;\n var loading = isNetworkRequestInFlight(queryStoreValue.networkStatus);\n var lastResult = observableQuery && observableQuery.getLastResult();\n var networkStatusChanged = !!(lastResult &&\n lastResult.networkStatus !== queryStoreValue.networkStatus);\n var shouldNotifyIfLoading = options.returnPartialData ||\n (!newData && queryStoreValue.previousVariables) ||\n (networkStatusChanged && options.notifyOnNetworkStatusChange) ||\n fetchPolicy === 'cache-only' ||\n fetchPolicy === 'cache-and-network';\n if (loading && !shouldNotifyIfLoading) {\n return;\n }\n var hasGraphQLErrors = isNonEmptyArray(queryStoreValue.graphQLErrors);\n var errorPolicy = observableQuery\n && observableQuery.options.errorPolicy\n || options.errorPolicy\n || 'none';\n if (errorPolicy === 'none' && hasGraphQLErrors || queryStoreValue.networkError) {\n return invoke('error', new ApolloError({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError,\n }));\n }\n try {\n var data = void 0;\n var isMissing = void 0;\n if (newData) {\n if (fetchPolicy !== 'no-cache' && fetchPolicy !== 'network-only') {\n _this.setQuery(queryId, function () { return ({ newData: null }); });\n }\n data = newData.result;\n isMissing = !newData.complete;\n }\n else {\n var lastError = observableQuery && observableQuery.getLastError();\n var errorStatusChanged = errorPolicy !== 'none' &&\n (lastError && lastError.graphQLErrors) !==\n queryStoreValue.graphQLErrors;\n if (lastResult && lastResult.data && !errorStatusChanged) {\n data = lastResult.data;\n isMissing = false;\n }\n else {\n var diffResult = _this.dataStore.getCache().diff({\n query: document,\n variables: queryStoreValue.previousVariables ||\n queryStoreValue.variables,\n returnPartialData: true,\n optimistic: true,\n });\n data = diffResult.result;\n isMissing = !diffResult.complete;\n }\n }\n var stale = isMissing && !(options.returnPartialData ||\n 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 if (errorPolicy === 'all' && hasGraphQLErrors) {\n resultFromStore.errors = queryStoreValue.graphQLErrors;\n }\n invoke('next', resultFromStore);\n }\n catch (networkError) {\n invoke('error', new ApolloError({ networkError: networkError }));\n }\n };\n };\n QueryManager.prototype.transform = function (document) {\n var transformCache = this.transformCache;\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 var add = function (doc) {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry_1);\n }\n };\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n return transformCache.get(document);\n };\n QueryManager.prototype.getVariables = function (document, variables) {\n return __assign(__assign({}, this.transform(document).defaultVars), variables);\n };\n QueryManager.prototype.watchQuery = function (options, shouldSubscribe) {\n if (shouldSubscribe === void 0) { shouldSubscribe = true; }\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 if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n var transformedOptions = __assign({}, options);\n return new ObservableQuery({\n queryManager: this,\n options: transformedOptions,\n shouldSubscribe: shouldSubscribe,\n });\n };\n QueryManager.prototype.query = function (options) {\n var _this = this;\n process.env.NODE_ENV === \"production\" ? invariant(options.query, 12) : invariant(options.query, 'query option is required. You must specify your GraphQL document ' +\n '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 _this.fetchQueryRejectFns.set(\"query:\" + watchedQuery.queryId, reject);\n watchedQuery\n .result()\n .then(resolve, reject)\n .then(function () {\n return _this.fetchQueryRejectFns.delete(\"query:\" + watchedQuery.queryId);\n });\n });\n };\n QueryManager.prototype.generateQueryId = function () {\n return String(this.idCounter++);\n };\n QueryManager.prototype.stopQueryInStore = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n };\n QueryManager.prototype.stopQueryInStoreNoBroadcast = function (queryId) {\n this.stopPollingQuery(queryId);\n this.queryStore.stopQuery(queryId);\n this.invalidate(queryId);\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 { invalidated: false };\n });\n };\n QueryManager.prototype.updateQueryWatch = function (queryId, document, options) {\n var _this = this;\n var cancel = this.getQuery(queryId).cancel;\n if (cancel)\n cancel();\n var previousResult = function () {\n var previousResult = null;\n var observableQuery = _this.getQuery(queryId).observableQuery;\n if (observableQuery) {\n var lastResult = observableQuery.getLastResult();\n if (lastResult) {\n previousResult = lastResult.data;\n }\n }\n return previousResult;\n };\n return this.dataStore.getCache().watch({\n query: document,\n variables: options.variables,\n optimistic: true,\n previousResult: previousResult,\n callback: function (newData) {\n _this.setQuery(queryId, function () { return ({ invalidated: true, newData: newData }); });\n },\n });\n };\n QueryManager.prototype.addObservableQuery = function (queryId, observableQuery) {\n this.setQuery(queryId, function () { return ({ observableQuery: observableQuery }); });\n };\n QueryManager.prototype.removeObservableQuery = function (queryId) {\n var cancel = this.getQuery(queryId).cancel;\n this.setQuery(queryId, function () { return ({ observableQuery: null }); });\n if (cancel)\n cancel();\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)\n resetIds.push(queryId);\n });\n this.queryStore.reset(resetIds);\n this.mutationStore.reset();\n return this.dataStore.reset();\n };\n QueryManager.prototype.resetStore = function () {\n var _this = this;\n return this.clearStore().then(function () {\n return _this.reFetchObservableQueries();\n });\n };\n QueryManager.prototype.reFetchObservableQueries = function (includeStandby) {\n var _this = this;\n if (includeStandby === void 0) { includeStandby = false; }\n var observableQueryPromises = [];\n this.queries.forEach(function (_a, queryId) {\n var observableQuery = _a.observableQuery;\n if (observableQuery) {\n var fetchPolicy = observableQuery.options.fetchPolicy;\n observableQuery.resetLastResults();\n if (fetchPolicy !== 'cache-only' &&\n (includeStandby || fetchPolicy !== 'standby')) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n _this.setQuery(queryId, function () { return ({ newData: null }); });\n _this.invalidate(queryId);\n }\n });\n this.broadcastQueries();\n return Promise.all(observableQueryPromises);\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 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)\n .catch(function () { return undefined; });\n return queryId;\n };\n QueryManager.prototype.startGraphQLSubscription = function (_a) {\n var _this = this;\n var query = _a.query, fetchPolicy = _a.fetchPolicy, variables = _a.variables;\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n var makeObservable = function (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 _this.broadcastQueries();\n }\n if (graphQLResultHasError(result)) {\n throw new ApolloError({\n graphQLErrors: result.errors,\n });\n }\n return result;\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) { return sub = observable.subscribe(observer); }, observer.error);\n return function () { return sub && sub.unsubscribe(); };\n });\n }\n return makeObservable(variables);\n };\n QueryManager.prototype.stopQuery = function (queryId) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n };\n QueryManager.prototype.stopQueryNoBroadcast = function (queryId) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\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) { return x.unsubscribe(); });\n this.queries.delete(queryId);\n };\n QueryManager.prototype.getCurrentQueryResult = function (observableQuery, optimistic) {\n if (optimistic === void 0) { optimistic = true; }\n var _a = observableQuery.options, variables = _a.variables, query = _a.query, fetchPolicy = _a.fetchPolicy, returnPartialData = _a.returnPartialData;\n var lastResult = observableQuery.getLastResult();\n var newData = this.getQuery(observableQuery.queryId).newData;\n if (newData && newData.complete) {\n return { data: newData.result, partial: false };\n }\n if (fetchPolicy === 'no-cache' || fetchPolicy === 'network-only') {\n return { data: undefined, partial: false };\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 }), result = _b.result, complete = _b.complete;\n return {\n data: (complete || returnPartialData) ? result : void 0,\n partial: !complete,\n };\n };\n QueryManager.prototype.getQueryWithPreviousResult = function (queryIdOrObservable) {\n var observableQuery;\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 }\n else {\n observableQuery = queryIdOrObservable;\n }\n var _a = observableQuery.options, variables = _a.variables, query = _a.query;\n return {\n previousResult: this.getCurrentQueryResult(observableQuery, false).data,\n variables: variables,\n document: query,\n };\n };\n QueryManager.prototype.broadcastQueries = function () {\n var _this = this;\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 QueryManager.prototype.getLocalState = function () {\n return this.localState;\n };\n QueryManager.prototype.getObservableFromLink = function (query, context, variables, deduplication) {\n var _this = this;\n if (deduplication === void 0) { deduplication = this.queryDeduplication; }\n var observable;\n var serverQuery = this.transform(query).serverQuery;\n if (serverQuery) {\n var _a = this, inFlightLinkObservables_1 = _a.inFlightLinkObservables, link = _a.link;\n var operation = {\n query: serverQuery,\n variables: variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext(__assign(__assign({}, context), { forceFetch: !deduplication })),\n };\n context = operation.context;\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 if (!observable) {\n byVariables_1.set(varJson_1, observable = multiplex(execute(link, operation)));\n var cleanup = function () {\n byVariables_1.delete(varJson_1);\n if (!byVariables_1.size)\n inFlightLinkObservables_1.delete(serverQuery);\n cleanupSub_1.unsubscribe();\n };\n var cleanupSub_1 = observable.subscribe({\n next: cleanup,\n error: cleanup,\n complete: cleanup,\n });\n }\n }\n else {\n observable = multiplex(execute(link, operation));\n }\n }\n else {\n observable = Observable.of({ data: {} });\n context = this.prepareContext(context);\n }\n var clientQuery = this.transform(query).clientQuery;\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 return observable;\n };\n QueryManager.prototype.fetchRequest = function (_a) {\n var _this = this;\n var requestId = _a.requestId, queryId = _a.queryId, document = _a.document, options = _a.options, fetchMoreForQueryId = _a.fetchMoreForQueryId;\n var variables = options.variables, _b = options.errorPolicy, errorPolicy = _b === void 0 ? 'none' : _b, 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 var fqrfId = \"fetchRequest:\" + queryId;\n _this.fetchQueryRejectFns.set(fqrfId, reject);\n var cleanup = function () {\n _this.fetchQueryRejectFns.delete(fqrfId);\n _this.setQuery(queryId, function (_a) {\n var subscriptions = _a.subscriptions;\n subscriptions.delete(subscription);\n });\n };\n var subscription = observable.map(function (result) {\n if (requestId >= _this.getQuery(queryId).lastRequestId) {\n _this.markQueryResult(queryId, result, options, fetchMoreForQueryId);\n _this.queryStore.markQueryResult(queryId, result, fetchMoreForQueryId);\n _this.invalidate(queryId);\n _this.invalidate(fetchMoreForQueryId);\n _this.broadcastQueries();\n }\n if (errorPolicy === 'none' && isNonEmptyArray(result.errors)) {\n return reject(new ApolloError({\n graphQLErrors: result.errors,\n }));\n }\n if (errorPolicy === 'all') {\n errorsFromStore = result.errors;\n }\n if (fetchMoreForQueryId || fetchPolicy === 'no-cache') {\n resultFromStore = result.data;\n }\n else {\n var _a = _this.dataStore.getCache().diff({\n variables: variables,\n query: document,\n optimistic: false,\n returnPartialData: true,\n }), result_1 = _a.result, complete = _a.complete;\n if (complete || options.returnPartialData) {\n resultFromStore = result_1;\n }\n }\n }).subscribe({\n error: function (error) {\n cleanup();\n reject(error);\n },\n complete: function () {\n cleanup();\n resolve({\n data: resultFromStore,\n errors: errorsFromStore,\n loading: false,\n networkStatus: NetworkStatus.ready,\n stale: false,\n });\n },\n });\n _this.setQuery(queryId, function (_a) {\n var subscriptions = _a.subscriptions;\n subscriptions.add(subscription);\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 QueryManager.prototype.setQuery = function (queryId, updater) {\n var prev = this.getQuery(queryId);\n var newInfo = __assign(__assign({}, prev), updater(prev));\n this.queries.set(queryId, newInfo);\n };\n QueryManager.prototype.invalidate = function (queryId, invalidated) {\n if (invalidated === void 0) { invalidated = true; }\n if (queryId) {\n this.setQuery(queryId, function () { return ({ invalidated: invalidated }); });\n }\n };\n QueryManager.prototype.prepareContext = function (context) {\n if (context === void 0) { context = {}; }\n var newContext = this.localState.prepareContext(context);\n return __assign(__assign({}, newContext), { clientAwareness: this.clientAwareness });\n };\n QueryManager.prototype.checkInFlight = function (queryId) {\n var query = this.queryStore.get(queryId);\n return (query &&\n query.networkStatus !== NetworkStatus.ready &&\n query.networkStatus !== NetworkStatus.error);\n };\n QueryManager.prototype.startPollingQuery = function (options, queryId, listener) {\n var _this = this;\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 if (!this.ssrMode) {\n var info = this.pollingInfoByQueryId.get(queryId);\n if (!info) {\n this.pollingInfoByQueryId.set(queryId, (info = {}));\n }\n info.interval = pollInterval;\n info.options = __assign(__assign({}, options), { fetchPolicy: 'network-only' });\n var maybeFetch_1 = function () {\n var info = _this.pollingInfoByQueryId.get(queryId);\n if (info) {\n if (_this.checkInFlight(queryId)) {\n poll_1();\n }\n else {\n _this.fetchQuery(queryId, info.options, FetchType.poll).then(poll_1, poll_1);\n }\n }\n };\n var poll_1 = function () {\n var info = _this.pollingInfoByQueryId.get(queryId);\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch_1, info.interval);\n }\n };\n if (listener) {\n this.addQueryListener(queryId, listener);\n }\n poll_1();\n }\n return queryId;\n };\n QueryManager.prototype.stopPollingQuery = function (queryId) {\n this.pollingInfoByQueryId.delete(queryId);\n };\n return QueryManager;\n}());\n\nvar DataStore = (function () {\n function DataStore(initialCache) {\n this.cache = initialCache;\n }\n DataStore.prototype.getCache = function () {\n return this.cache;\n };\n DataStore.prototype.markQueryResult = function (result, document, variables, fetchMoreForQueryId, ignoreErrors) {\n if (ignoreErrors === void 0) { ignoreErrors = false; }\n var writeWithErrors = !graphQLResultHasError(result);\n if (ignoreErrors && graphQLResultHasError(result) && result.data) {\n writeWithErrors = true;\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 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 DataStore.prototype.markMutationInit = function (mutation) {\n var _this = this;\n if (mutation.optimisticResponse) {\n var optimistic_1;\n if (typeof mutation.optimisticResponse === 'function') {\n optimistic_1 = mutation.optimisticResponse(mutation.variables);\n }\n else {\n optimistic_1 = mutation.optimisticResponse;\n }\n this.cache.recordOptimisticTransaction(function (c) {\n var orig = _this.cache;\n _this.cache = c;\n try {\n _this.markMutationResult({\n mutationId: mutation.mutationId,\n result: { data: optimistic_1 },\n document: mutation.document,\n variables: mutation.variables,\n updateQueries: mutation.updateQueries,\n update: mutation.update,\n });\n }\n finally {\n _this.cache = orig;\n }\n }, mutation.mutationId);\n }\n };\n DataStore.prototype.markMutationResult = function (mutation) {\n var _this = this;\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 if (updateQueries_1) {\n Object.keys(updateQueries_1).forEach(function (id) {\n var _a = updateQueries_1[id], query = _a.query, updater = _a.updater;\n var _b = _this.cache.diff({\n query: query.document,\n variables: query.variables,\n returnPartialData: true,\n optimistic: false,\n }), currentQueryResult = _b.result, complete = _b.complete;\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 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 this.cache.performTransaction(function (c) {\n cacheWrites_1.forEach(function (write) { return c.write(write); });\n var update = mutation.update;\n if (update) {\n tryFunctionOrLogError(function () { return update(c, mutation.result); });\n }\n });\n }\n };\n DataStore.prototype.markMutationComplete = function (_a) {\n var mutationId = _a.mutationId, optimisticResponse = _a.optimisticResponse;\n if (optimisticResponse) {\n this.cache.removeOptimistic(mutationId);\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 DataStore.prototype.reset = function () {\n return this.cache.reset();\n };\n return DataStore;\n}());\n\nvar version = \"2.6.8\";\n\nvar hasSuggestedDevtools = false;\nvar ApolloClient = (function () {\n function ApolloClient(options) {\n var _this = this;\n this.defaultOptions = {};\n this.resetStoreCallbacks = [];\n this.clearStoreCallbacks = [];\n var cache = options.cache, _a = options.ssrMode, ssrMode = _a === void 0 ? false : _a, _b = options.ssrForceFetchDelay, ssrForceFetchDelay = _b === void 0 ? 0 : _b, connectToDevTools = options.connectToDevTools, _c = options.queryDeduplication, queryDeduplication = _c === void 0 ? true : _c, defaultOptions = options.defaultOptions, _d = options.assumeImmutableResults, assumeImmutableResults = _d === void 0 ? false : _d, resolvers = options.resolvers, typeDefs = options.typeDefs, fragmentMatcher = options.fragmentMatcher, clientAwarenessName = options.name, clientAwarenessVersion = options.version;\n var link = options.link;\n if (!link && resolvers) {\n link = ApolloLink.empty();\n }\n if (!link || !cache) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(1) : new InvariantError(\"In order to initialize Apollo Client, you must specify 'link' and 'cache' properties in the options object.\\n\" +\n \"These options are part of the upgrade requirements when migrating from Apollo Client 1.x to Apollo Client 2.x.\\n\" +\n \"For more information, please visit: https://www.apollographql.com/docs/tutorial/client.html#apollo-client-setup\");\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 if (ssrForceFetchDelay) {\n setTimeout(function () { return (_this.disableNetworkFetches = false); }, ssrForceFetchDelay);\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' &&\n typeof window !== 'undefined' &&\n !window.__APOLLO_CLIENT__;\n if (typeof connectToDevTools === 'undefined'\n ? defaultConnectToDevTools\n : connectToDevTools && typeof window !== 'undefined') {\n window.__APOLLO_CLIENT__ = this;\n }\n if (!hasSuggestedDevtools && process.env.NODE_ENV !== 'production') {\n hasSuggestedDevtools = true;\n if (typeof window !== 'undefined' &&\n window.document &&\n window.top === window.self) {\n if (typeof window.__APOLLO_DEVTOOLS_GLOBAL_HOOK__ === 'undefined') {\n if (window.navigator &&\n window.navigator.userAgent &&\n window.navigator.userAgent.indexOf('Chrome') > -1) {\n console.debug('Download the Apollo DevTools ' +\n 'for a better development experience: ' +\n 'https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm');\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 () {\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 ApolloClient.prototype.stop = function () {\n this.queryManager.stop();\n };\n ApolloClient.prototype.watchQuery = function (options) {\n if (this.defaultOptions.watchQuery) {\n options = __assign(__assign({}, this.defaultOptions.watchQuery), options);\n }\n if (this.disableNetworkFetches &&\n (options.fetchPolicy === 'network-only' ||\n options.fetchPolicy === 'cache-and-network')) {\n options = __assign(__assign({}, options), { fetchPolicy: 'cache-first' });\n }\n return this.queryManager.watchQuery(options);\n };\n ApolloClient.prototype.query = function (options) {\n if (this.defaultOptions.query) {\n options = __assign(__assign({}, this.defaultOptions.query), options);\n }\n process.env.NODE_ENV === \"production\" ? invariant(options.fetchPolicy !== 'cache-and-network', 2) : invariant(options.fetchPolicy !== 'cache-and-network', 'The cache-and-network fetchPolicy does not work with client.query, because ' +\n 'client.query can only return a single result. Please use client.watchQuery ' +\n 'to receive multiple results from the cache and the network, or consider ' +\n 'using a different fetchPolicy, such as cache-first or network-only.');\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = __assign(__assign({}, options), { fetchPolicy: 'cache-first' });\n }\n return this.queryManager.query(options);\n };\n ApolloClient.prototype.mutate = function (options) {\n if (this.defaultOptions.mutate) {\n options = __assign(__assign({}, this.defaultOptions.mutate), options);\n }\n return this.queryManager.mutate(options);\n };\n ApolloClient.prototype.subscribe = function (options) {\n return this.queryManager.startGraphQLSubscription(options);\n };\n ApolloClient.prototype.readQuery = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.cache.readQuery(options, optimistic);\n };\n ApolloClient.prototype.readFragment = function (options, optimistic) {\n if (optimistic === void 0) { optimistic = false; }\n return this.cache.readFragment(options, optimistic);\n };\n ApolloClient.prototype.writeQuery = function (options) {\n var result = this.cache.writeQuery(options);\n this.queryManager.broadcastQueries();\n return result;\n };\n ApolloClient.prototype.writeFragment = function (options) {\n var result = this.cache.writeFragment(options);\n this.queryManager.broadcastQueries();\n return result;\n };\n ApolloClient.prototype.writeData = function (options) {\n var result = this.cache.writeData(options);\n this.queryManager.broadcastQueries();\n return result;\n };\n ApolloClient.prototype.__actionHookForDevTools = function (cb) {\n this.devToolsHookCb = cb;\n };\n ApolloClient.prototype.__requestRaw = function (payload) {\n return execute(this.link, payload);\n };\n ApolloClient.prototype.initQueryManager = function () {\n process.env.NODE_ENV === \"production\" || invariant.warn('Calling the initQueryManager method is no longer necessary, ' +\n 'and it will be removed from ApolloClient in version 3.0.');\n return this.queryManager;\n };\n ApolloClient.prototype.resetStore = function () {\n var _this = this;\n return Promise.resolve()\n .then(function () { return _this.queryManager.clearStore(); })\n .then(function () { return Promise.all(_this.resetStoreCallbacks.map(function (fn) { return fn(); })); })\n .then(function () { return _this.reFetchObservableQueries(); });\n };\n ApolloClient.prototype.clearStore = function () {\n var _this = this;\n return Promise.resolve()\n .then(function () { return _this.queryManager.clearStore(); })\n .then(function () { return Promise.all(_this.clearStoreCallbacks.map(function (fn) { return fn(); })); });\n };\n ApolloClient.prototype.onResetStore = function (cb) {\n var _this = this;\n this.resetStoreCallbacks.push(cb);\n return function () {\n _this.resetStoreCallbacks = _this.resetStoreCallbacks.filter(function (c) { return c !== cb; });\n };\n };\n ApolloClient.prototype.onClearStore = function (cb) {\n var _this = this;\n this.clearStoreCallbacks.push(cb);\n return function () {\n _this.clearStoreCallbacks = _this.clearStoreCallbacks.filter(function (c) { return c !== cb; });\n };\n };\n ApolloClient.prototype.reFetchObservableQueries = function (includeStandby) {\n return this.queryManager.reFetchObservableQueries(includeStandby);\n };\n ApolloClient.prototype.extract = function (optimistic) {\n return this.cache.extract(optimistic);\n };\n ApolloClient.prototype.restore = function (serializedState) {\n return this.cache.restore(serializedState);\n };\n ApolloClient.prototype.addResolvers = function (resolvers) {\n this.localState.addResolvers(resolvers);\n };\n ApolloClient.prototype.setResolvers = function (resolvers) {\n this.localState.setResolvers(resolvers);\n };\n ApolloClient.prototype.getResolvers = function () {\n return this.localState.getResolvers();\n };\n ApolloClient.prototype.setLocalStateFragmentMatcher = function (fragmentMatcher) {\n this.localState.setFragmentMatcher(fragmentMatcher);\n };\n return ApolloClient;\n}());\n\nexport default ApolloClient;\nexport { ApolloClient, ApolloError, FetchType, NetworkStatus, ObservableQuery, isApolloError };\n//# sourceMappingURL=bundle.esm.js.map\n","import { __assign } from 'tslib';\nimport { print } from 'graphql/language/printer';\nimport { InvariantError } from 'ts-invariant';\n\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};\nvar throwServerError = function (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};\nvar parseAndCheckHttpResponse = function (operations) { return function (response) {\n return (response\n .text()\n .then(function (bodyText) {\n try {\n return JSON.parse(bodyText);\n }\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 })\n .then(function (result) {\n if (response.status >= 300) {\n throwServerError(response, result, \"Response not successful: Received status code \" + response.status);\n }\n if (!Array.isArray(result) &&\n !result.hasOwnProperty('data') &&\n !result.hasOwnProperty('errors')) {\n throwServerError(response, result, \"Server response was missing for query '\" + (Array.isArray(operations)\n ? operations.map(function (op) { return op.operationName; })\n : operations.operationName) + \"'.\");\n }\n return result;\n }));\n}; };\nvar checkFetcher = function (fetcher) {\n if (!fetcher && typeof fetch === 'undefined') {\n var library = 'unfetch';\n if (typeof window === 'undefined')\n 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};\nvar createSignalIfSupported = function () {\n if (typeof AbortController === 'undefined')\n return { controller: false, signal: false };\n var controller = new AbortController();\n var signal = controller.signal;\n return { controller: controller, signal: signal };\n};\nvar selectHttpOptionsAndBody = function (operation, fallbackConfig) {\n var configs = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n configs[_i - 2] = arguments[_i];\n }\n var options = __assign({}, fallbackConfig.options, { headers: fallbackConfig.headers, credentials: fallbackConfig.credentials });\n var http = fallbackConfig.http;\n configs.forEach(function (config) {\n options = __assign({}, options, config.options, { headers: __assign({}, options.headers, config.headers) });\n if (config.credentials)\n options.credentials = config.credentials;\n http = __assign({}, http, config.http);\n });\n var operationName = operation.operationName, extensions = operation.extensions, variables = operation.variables, query = operation.query;\n var body = { operationName: operationName, variables: variables };\n if (http.includeExtensions)\n body.extensions = extensions;\n if (http.includeQuery)\n body.query = print(query);\n return {\n options: options,\n body: body,\n };\n};\nvar serializeFetchParameter = function (p, label) {\n var serialized;\n try {\n serialized = JSON.stringify(p);\n }\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 return serialized;\n};\nvar selectURI = function (operation, fallbackURI) {\n var context = operation.getContext();\n var contextURI = context.uri;\n if (contextURI) {\n return contextURI;\n }\n else if (typeof fallbackURI === 'function') {\n return fallbackURI(operation);\n }\n else {\n return fallbackURI || '/graphql';\n }\n};\n\nexport { checkFetcher, createSignalIfSupported, fallbackHttpConfig, parseAndCheckHttpResponse, selectHttpOptionsAndBody, selectURI, serializeFetchParameter, throwServerError };\n//# sourceMappingURL=bundle.esm.js.map\n","import { __rest, __assign, __extends } from 'tslib';\nimport { ApolloLink, fromError, Observable } from 'apollo-link';\nimport { checkFetcher, selectURI, selectHttpOptionsAndBody, fallbackHttpConfig, createSignalIfSupported, serializeFetchParameter, parseAndCheckHttpResponse } from 'apollo-link-http-common';\n\nvar createHttpLink = function (linkOptions) {\n if (linkOptions === void 0) { linkOptions = {}; }\n var _a = linkOptions.uri, uri = _a === void 0 ? '/graphql' : _a, fetcher = linkOptions.fetch, includeExtensions = linkOptions.includeExtensions, useGETForQueries = linkOptions.useGETForQueries, requestOptions = __rest(linkOptions, [\"uri\", \"fetch\", \"includeExtensions\", \"useGETForQueries\"]);\n checkFetcher(fetcher);\n if (!fetcher) {\n fetcher = fetch;\n }\n var linkConfig = {\n http: { includeExtensions: includeExtensions },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n return new ApolloLink(function (operation) {\n var chosenURI = selectURI(operation, uri);\n var context = operation.getContext();\n var clientAwarenessHeaders = {};\n if (context.clientAwareness) {\n var _a = context.clientAwareness, name_1 = _a.name, version = _a.version;\n if (name_1) {\n clientAwarenessHeaders['apollographql-client-name'] = name_1;\n }\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n var contextHeaders = __assign({}, clientAwarenessHeaders, context.headers);\n var contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders,\n };\n var _b = selectHttpOptionsAndBody(operation, fallbackHttpConfig, linkConfig, contextConfig), options = _b.options, body = _b.body;\n var controller;\n if (!options.signal) {\n var _c = createSignalIfSupported(), _controller = _c.controller, signal = _c.signal;\n controller = _controller;\n if (controller)\n options.signal = signal;\n }\n var definitionIsMutation = function (d) {\n return d.kind === 'OperationDefinition' && d.operation === 'mutation';\n };\n if (useGETForQueries &&\n !operation.query.definitions.some(definitionIsMutation)) {\n options.method = 'GET';\n }\n if (options.method === 'GET') {\n var _d = rewriteURIForGET(chosenURI, body), newURI = _d.newURI, parseError = _d.parseError;\n if (parseError) {\n return fromError(parseError);\n }\n chosenURI = newURI;\n }\n else {\n try {\n options.body = serializeFetchParameter(body, 'Payload');\n }\n catch (parseError) {\n return fromError(parseError);\n }\n }\n return new Observable(function (observer) {\n fetcher(chosenURI, options)\n .then(function (response) {\n operation.setContext({ response: response });\n return response;\n })\n .then(parseAndCheckHttpResponse(operation))\n .then(function (result) {\n observer.next(result);\n observer.complete();\n return result;\n })\n .catch(function (err) {\n if (err.name === 'AbortError')\n return;\n if (err.result && err.result.errors && err.result.data) {\n observer.next(err.result);\n }\n observer.error(err);\n });\n return function () {\n if (controller)\n controller.abort();\n };\n });\n });\n};\nfunction rewriteURIForGET(chosenURI, body) {\n var queryParams = [];\n var addQueryParam = function (key, value) {\n queryParams.push(key + \"=\" + encodeURIComponent(value));\n };\n if ('query' in body) {\n addQueryParam('query', body.query);\n }\n if (body.operationName) {\n addQueryParam('operationName', body.operationName);\n }\n if (body.variables) {\n var serializedVariables = void 0;\n try {\n serializedVariables = serializeFetchParameter(body.variables, 'Variables map');\n }\n catch (parseError) {\n return { parseError: parseError };\n }\n addQueryParam('variables', serializedVariables);\n }\n if (body.extensions) {\n var serializedExtensions = void 0;\n try {\n serializedExtensions = serializeFetchParameter(body.extensions, 'Extensions map');\n }\n catch (parseError) {\n return { parseError: parseError };\n }\n addQueryParam('extensions', serializedExtensions);\n }\n var fragment = '', preFragment = chosenURI;\n var fragmentStart = chosenURI.indexOf('#');\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n var queryParamsPrefix = preFragment.indexOf('?') === -1 ? '?' : '&';\n var newURI = preFragment + queryParamsPrefix + queryParams.join('&') + fragment;\n return { newURI: newURI };\n}\nvar HttpLink = (function (_super) {\n __extends(HttpLink, _super);\n function HttpLink(opts) {\n return _super.call(this, createHttpLink(opts).request) || this;\n }\n return HttpLink;\n}(ApolloLink));\n\nexport { HttpLink, createHttpLink };\n//# sourceMappingURL=bundle.esm.js.map\n","import { __extends } from 'tslib';\nimport { ApolloLink } from 'apollo-link';\nimport { SubscriptionClient } from 'subscriptions-transport-ws';\n\nvar WebSocketLink = (function (_super) {\n __extends(WebSocketLink, _super);\n function WebSocketLink(paramsOrClient) {\n var _this = _super.call(this) || this;\n if (paramsOrClient instanceof SubscriptionClient) {\n _this.subscriptionClient = paramsOrClient;\n }\n else {\n _this.subscriptionClient = new SubscriptionClient(paramsOrClient.uri, paramsOrClient.options, paramsOrClient.webSocketImpl);\n }\n return _this;\n }\n WebSocketLink.prototype.request = function (operation) {\n return this.subscriptionClient.request(operation);\n };\n return WebSocketLink;\n}(ApolloLink));\n\nexport { WebSocketLink };\n//# sourceMappingURL=bundle.esm.js.map\n","import Observable from 'zen-observable-ts';\nexport { default as Observable } from 'zen-observable-ts';\nimport { invariant, InvariantError } from 'ts-invariant';\nimport { __extends, __assign } from 'tslib';\nimport { getOperationName } from 'apollo-utilities';\nexport { getOperationName } from 'apollo-utilities';\n\nfunction validateOperation(operation) {\n var OPERATION_FIELDS = [\n 'query',\n 'operationName',\n 'variables',\n 'extensions',\n 'context',\n ];\n for (var _i = 0, _a = Object.keys(operation); _i < _a.length; _i++) {\n var key = _a[_i];\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(2) : new InvariantError(\"illegal argument: \" + key);\n }\n }\n return operation;\n}\nvar LinkError = (function (_super) {\n __extends(LinkError, _super);\n function LinkError(message, link) {\n var _this = _super.call(this, message) || this;\n _this.link = link;\n return _this;\n }\n return LinkError;\n}(Error));\nfunction isTerminating(link) {\n return link.request.length <= 1;\n}\nfunction toPromise(observable) {\n var completed = false;\n return new Promise(function (resolve, reject) {\n observable.subscribe({\n next: function (data) {\n if (completed) {\n process.env.NODE_ENV === \"production\" || invariant.warn(\"Promise Wrapper does not support multiple results from Observable\");\n }\n else {\n completed = true;\n resolve(data);\n }\n },\n error: reject,\n });\n });\n}\nvar makePromise = toPromise;\nfunction fromPromise(promise) {\n return new Observable(function (observer) {\n promise\n .then(function (value) {\n observer.next(value);\n observer.complete();\n })\n .catch(observer.error.bind(observer));\n });\n}\nfunction fromError(errorValue) {\n return new Observable(function (observer) {\n observer.error(errorValue);\n });\n}\nfunction transformOperation(operation) {\n var transformedOperation = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query,\n };\n if (!transformedOperation.operationName) {\n transformedOperation.operationName =\n typeof transformedOperation.query !== 'string'\n ? getOperationName(transformedOperation.query)\n : '';\n }\n return transformedOperation;\n}\nfunction createOperation(starting, operation) {\n var context = __assign({}, starting);\n var setContext = function (next) {\n if (typeof next === 'function') {\n context = __assign({}, context, next(context));\n }\n else {\n context = __assign({}, context, next);\n }\n };\n var getContext = function () { return (__assign({}, context)); };\n Object.defineProperty(operation, 'setContext', {\n enumerable: false,\n value: setContext,\n });\n Object.defineProperty(operation, 'getContext', {\n enumerable: false,\n value: getContext,\n });\n Object.defineProperty(operation, 'toKey', {\n enumerable: false,\n value: function () { return getKey(operation); },\n });\n return operation;\n}\nfunction getKey(operation) {\n var query = operation.query, variables = operation.variables, operationName = operation.operationName;\n return JSON.stringify([operationName, query, variables]);\n}\n\nfunction passthrough(op, forward) {\n return forward ? forward(op) : Observable.of();\n}\nfunction toLink(handler) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n}\nfunction empty() {\n return new ApolloLink(function () { return Observable.of(); });\n}\nfunction from(links) {\n if (links.length === 0)\n return empty();\n return links.map(toLink).reduce(function (x, y) { return x.concat(y); });\n}\nfunction split(test, left, right) {\n var leftLink = toLink(left);\n var rightLink = toLink(right || new ApolloLink(passthrough));\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(function (operation) {\n return test(operation)\n ? leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return test(operation)\n ? leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n}\nvar concat = function (first, second) {\n var firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n process.env.NODE_ENV === \"production\" || invariant.warn(new LinkError(\"You are calling concat on a terminating link, which will have no effect\", firstLink));\n return firstLink;\n }\n var nextLink = toLink(second);\n if (isTerminating(nextLink)) {\n return new ApolloLink(function (operation) {\n return firstLink.request(operation, function (op) { return nextLink.request(op) || Observable.of(); }) || Observable.of();\n });\n }\n else {\n return new ApolloLink(function (operation, forward) {\n return (firstLink.request(operation, function (op) {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of());\n });\n }\n};\nvar ApolloLink = (function () {\n function ApolloLink(request) {\n if (request)\n this.request = request;\n }\n ApolloLink.prototype.split = function (test, left, right) {\n return this.concat(split(test, left, right || new ApolloLink(passthrough)));\n };\n ApolloLink.prototype.concat = function (next) {\n return concat(this, next);\n };\n ApolloLink.prototype.request = function (operation, forward) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(1) : new InvariantError('request is not implemented');\n };\n ApolloLink.empty = empty;\n ApolloLink.from = from;\n ApolloLink.split = split;\n ApolloLink.execute = execute;\n return ApolloLink;\n}());\nfunction execute(link, operation) {\n return (link.request(createOperation(operation.context, transformOperation(validateOperation(operation)))) || Observable.of());\n}\n\nexport { ApolloLink, concat, createOperation, empty, execute, from, fromError, fromPromise, makePromise, split, toPromise };\n//# sourceMappingURL=bundle.esm.js.map\n","import { 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}\nfunction isNumberValue(value) {\n return ['IntValue', 'FloatValue'].indexOf(value.kind) > -1;\n}\nfunction isStringValue(value) {\n return value.kind === 'StringValue';\n}\nfunction isBooleanValue(value) {\n return value.kind === 'BooleanValue';\n}\nfunction isIntValue(value) {\n return value.kind === 'IntValue';\n}\nfunction isFloatValue(value) {\n return value.kind === 'FloatValue';\n}\nfunction isVariable(value) {\n return value.kind === 'Variable';\n}\nfunction isObjectValue(value) {\n return value.kind === 'ObjectValue';\n}\nfunction isListValue(value) {\n return value.kind === 'ListValue';\n}\nfunction isEnumValue(value) {\n return value.kind === 'EnumValue';\n}\nfunction isNullValue(value) {\n return value.kind === 'NullValue';\n}\nfunction valueToObjectRepresentation(argObj, name, value, variables) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n }\n else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n }\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 }\n else if (isVariable(value)) {\n var variableValue = (variables || {})[value.name.value];\n argObj[name.value] = variableValue;\n }\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 }\n else if (isEnumValue(value)) {\n argObj[name.value] = value.value;\n }\n else if (isNullValue(value)) {\n argObj[name.value] = null;\n }\n else {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(17) : new InvariantError(\"The inline argument \\\"\" + name.value + \"\\\" of kind \\\"\" + value.kind + \"\\\"\" +\n 'is not supported. Use variables instead of inline arguments to ' +\n 'overcome this limitation.');\n }\n}\nfunction storeKeyNameFromField(field, variables) {\n var directivesObj = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(function (directive) {\n directivesObj[directive.name.value] = {};\n if (directive.arguments) {\n directive.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(directivesObj[directive.name.value], name, value, variables);\n });\n }\n });\n }\n var argObj = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(function (_a) {\n var name = _a.name, value = _a.value;\n return valueToObjectRepresentation(argObj, name, value, variables);\n });\n }\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\nvar KNOWN_DIRECTIVES = [\n 'connection',\n 'include',\n 'skip',\n 'client',\n 'rest',\n 'export',\n];\nfunction getStoreKeyName(fieldName, args, directives) {\n if (directives &&\n directives['connection'] &&\n directives['connection']['key']) {\n if (directives['connection']['filter'] &&\n directives['connection']['filter'].length > 0) {\n var filterKeys = directives['connection']['filter']\n ? directives['connection']['filter']\n : [];\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 }\n else {\n return directives['connection']['key'];\n }\n }\n var completeFieldName = fieldName;\n if (args) {\n var stringifiedArgs = stringify(args);\n completeFieldName += \"(\" + stringifiedArgs + \")\";\n }\n if (directives) {\n Object.keys(directives).forEach(function (key) {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1)\n return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += \"@\" + key + \"(\" + JSON.stringify(directives[key]) + \")\";\n }\n else {\n completeFieldName += \"@\" + key;\n }\n });\n }\n return completeFieldName;\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, value = _a.value;\n return valueToObjectRepresentation(argObj_1, name, value, variables);\n });\n return argObj_1;\n }\n return null;\n}\nfunction resultKeyNameFromField(field) {\n return field.alias ? field.alias.value : field.name.value;\n}\nfunction isField(selection) {\n return selection.kind === 'Field';\n}\nfunction isInlineFragment(selection) {\n return selection.kind === 'InlineFragment';\n}\nfunction isIdValue(idObject) {\n return idObject &&\n idObject.type === 'id' &&\n typeof idObject.generated === 'boolean';\n}\nfunction toIdValue(idConfig, generated) {\n if (generated === void 0) { generated = false; }\n return __assign({ type: 'id', generated: generated }, (typeof idConfig === 'string'\n ? { id: idConfig, typename: undefined }\n : idConfig));\n}\nfunction isJsonValue(jsonObject) {\n return (jsonObject != null &&\n typeof jsonObject === 'object' &&\n jsonObject.type === 'json');\n}\nfunction defaultValueFromVariable(node) {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(18) : new InvariantError(\"Variable nodes are not supported by valueFromNode\");\n}\nfunction valueFromNode(node, onVariable) {\n if (onVariable === void 0) { onVariable = defaultValueFromVariable; }\n switch (node.kind) {\n case 'Variable':\n return onVariable(node);\n case 'NullValue':\n return null;\n case 'IntValue':\n return parseInt(node.value, 10);\n case 'FloatValue':\n return parseFloat(node.value);\n case 'ListValue':\n return node.values.map(function (v) { return valueFromNode(v, onVariable); });\n case 'ObjectValue': {\n var value = {};\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 return value;\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 return null;\n}\nfunction shouldInclude(selection, variables) {\n if (variables === void 0) { variables = {}; }\n return getInclusionDirectives(selection.directives).every(function (_a) {\n var directive = _a.directive, ifArgument = _a.ifArgument;\n var evaledValue = false;\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables[ifArgument.value.name.value];\n process.env.NODE_ENV === \"production\" ? invariant(evaledValue !== void 0, 1) : invariant(evaledValue !== void 0, \"Invalid variable referenced in @\" + directive.name.value + \" directive.\");\n }\n else {\n evaledValue = ifArgument.value.value;\n }\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\nfunction getDirectiveNames(doc) {\n var names = [];\n visit(doc, {\n Directive: function (node) {\n names.push(node.name.value);\n },\n });\n return names;\n}\nfunction hasDirectives(names, doc) {\n return getDirectiveNames(doc).some(function (name) { return names.indexOf(name) > -1; });\n}\nfunction hasClientExports(document) {\n return (document &&\n hasDirectives(['client'], document) &&\n hasDirectives(['export'], document));\n}\nfunction isInclusionDirective(_a) {\n var value = _a.name.value;\n return value === 'skip' || value === 'include';\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, 2) : 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', 3) : 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 &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), 4) : invariant(ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'), \"Argument for the @\" + directiveName + \" directive must be a variable or a boolean value.\");\n return { directive: directive, ifArgument: ifArgument };\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(5) : new InvariantError(\"Found a \" + definition.operation + \" operation\" + (definition.name ? \" named '\" + definition.name.value + \"'\" : '') + \". \" +\n 'No operations are allowed when using a fragment as a query. Only fragments are allowed.');\n }\n if (definition.kind === 'FragmentDefinition') {\n fragments.push(definition);\n }\n });\n if (typeof actualFragmentName === 'undefined') {\n process.env.NODE_ENV === \"production\" ? invariant(fragments.length === 1, 6) : 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 var query = __assign(__assign({}, document), { definitions: __spreadArrays([\n {\n kind: 'OperationDefinition',\n operation: 'query',\n selectionSet: {\n kind: 'SelectionSet',\n selections: [\n {\n kind: 'FragmentSpread',\n name: {\n kind: 'Name',\n value: actualFragmentName,\n },\n },\n ],\n },\n }\n ], document.definitions) });\n return query;\n}\n\nfunction assign(target) {\n var sources = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n sources[_i - 1] = arguments[_i];\n }\n sources.forEach(function (source) {\n if (typeof source === 'undefined' || source === null) {\n return;\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' &&\n definition.operation === 'mutation';\n })[0];\n process.env.NODE_ENV === \"production\" ? invariant(mutationDef, 7) : invariant(mutationDef, 'Must contain a mutation definition.');\n return mutationDef;\n}\nfunction checkDocument(doc) {\n process.env.NODE_ENV === \"production\" ? invariant(doc && doc.kind === 'Document', 8) : 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\n .filter(function (d) { return d.kind !== 'FragmentDefinition'; })\n .map(function (definition) {\n if (definition.kind !== 'OperationDefinition') {\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(9) : new InvariantError(\"Schema type definitions not allowed in queries. Found: \\\"\" + definition.kind + \"\\\"\");\n }\n return definition;\n });\n process.env.NODE_ENV === \"production\" ? invariant(operations.length <= 1, 10) : invariant(operations.length <= 1, \"Ambiguous GraphQL document: contains \" + operations.length + \" operations\");\n return doc;\n}\nfunction getOperationDefinition(doc) {\n checkDocument(doc);\n return doc.definitions.filter(function (definition) { return definition.kind === 'OperationDefinition'; })[0];\n}\nfunction getOperationDefinitionOrDie(document) {\n var def = getOperationDefinition(document);\n process.env.NODE_ENV === \"production\" ? invariant(def, 11) : invariant(def, \"GraphQL document is missing an operation\");\n return def;\n}\nfunction getOperationName(doc) {\n return (doc.definitions\n .filter(function (definition) {\n return definition.kind === 'OperationDefinition' && definition.name;\n })\n .map(function (x) { return x.name.value; })[0] || null);\n}\nfunction getFragmentDefinitions(doc) {\n return doc.definitions.filter(function (definition) { return definition.kind === 'FragmentDefinition'; });\n}\nfunction getQueryDefinition(doc) {\n var queryDef = getOperationDefinition(doc);\n process.env.NODE_ENV === \"production\" ? invariant(queryDef && queryDef.operation === 'query', 12) : invariant(queryDef && queryDef.operation === 'query', 'Must contain a query definition.');\n return queryDef;\n}\nfunction getFragmentDefinition(doc) {\n process.env.NODE_ENV === \"production\" ? invariant(doc.kind === 'Document', 13) : 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, 14) : 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', 15) : invariant(fragmentDef.kind === 'FragmentDefinition', 'Must be a fragment definition.');\n return fragmentDef;\n}\nfunction getMainDefinition(queryDoc) {\n checkDocument(queryDoc);\n var fragmentDefinition;\n for (var _i = 0, _a = queryDoc.definitions; _i < _a.length; _i++) {\n var definition = _a[_i];\n if (definition.kind === 'OperationDefinition') {\n var operation = definition.operation;\n if (operation === 'query' ||\n operation === 'mutation' ||\n operation === 'subscription') {\n return definition;\n }\n }\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n fragmentDefinition = definition;\n }\n }\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n throw process.env.NODE_ENV === \"production\" ? new InvariantError(16) : new InvariantError('Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.');\n}\nfunction createFragmentMap(fragments) {\n if (fragments === void 0) { fragments = []; }\n var symTable = {};\n fragments.forEach(function (fragment) {\n symTable[fragment.name.value] = fragment;\n });\n return symTable;\n}\nfunction getDefaultValues(definition) {\n if (definition &&\n definition.variableDefinitions &&\n definition.variableDefinitions.length) {\n var defaultValues = definition.variableDefinitions\n .filter(function (_a) {\n var defaultValue = _a.defaultValue;\n return defaultValue;\n })\n .map(function (_a) {\n var variable = _a.variable, 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 return {};\n}\nfunction variablesInOperation(operation) {\n var names = new Set();\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 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};\nfunction isEmpty(op, fragments) {\n return op.selectionSet.selections.every(function (selection) {\n return selection.kind === 'FragmentSpread' &&\n isEmpty(fragments[selection.name.value], fragments);\n });\n}\nfunction nullIfDocIsEmpty(doc) {\n return isEmpty(getOperationDefinition(doc) || getFragmentDefinition(doc), createFragmentMap(getFragmentDefinitions(doc)))\n ? null\n : doc;\n}\nfunction getDirectiveMatcher(directives) {\n return function directiveMatcher(directive) {\n return directives.some(function (dir) {\n return (dir.name && dir.name === directive.name.value) ||\n (dir.test && dir.test(directive));\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 (node, _key, parent) {\n if (parent.kind !== 'VariableDefinition') {\n variablesInUse[node.name.value] = true;\n }\n },\n },\n Field: {\n enter: function (node) {\n if (directives && node.directives) {\n var shouldRemoveField = directives.some(function (directive) { return directive.remove; });\n if (shouldRemoveField &&\n node.directives &&\n 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 if (node.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(node.selectionSet).forEach(function (frag) {\n fragmentSpreadsToRemove.push({\n name: frag.name.value,\n });\n });\n }\n return null;\n }\n }\n },\n },\n FragmentSpread: {\n enter: function (node) {\n fragmentSpreadsInUse[node.name.value] = true;\n },\n },\n Directive: {\n enter: function (node) {\n if (getDirectiveMatcher(directives)(node)) {\n return null;\n }\n },\n },\n }));\n if (modifiedDoc &&\n filterInPlace(variablesToRemove, function (v) { return !variablesInUse[v.name]; }).length) {\n modifiedDoc = removeArgumentsFromDocument(variablesToRemove, modifiedDoc);\n }\n if (modifiedDoc &&\n filterInPlace(fragmentSpreadsToRemove, function (fs) { return !fragmentSpreadsInUse[fs.name]; })\n .length) {\n modifiedDoc = removeFragmentSpreadFromDocument(fragmentSpreadsToRemove, modifiedDoc);\n }\n return modifiedDoc;\n}\nfunction addTypenameToDocument(doc) {\n return visit(checkDocument(doc), {\n SelectionSet: {\n enter: function (node, _key, parent) {\n if (parent &&\n parent.kind === 'OperationDefinition') {\n return;\n }\n var selections = node.selections;\n if (!selections) {\n return;\n }\n var skip = selections.some(function (selection) {\n return (isField(selection) &&\n (selection.name.value === '__typename' ||\n selection.name.value.lastIndexOf('__', 0) === 0));\n });\n if (skip) {\n return;\n }\n var field = parent;\n if (isField(field) &&\n field.directives &&\n field.directives.some(function (d) { return d.name.value === 'export'; })) {\n return;\n }\n return __assign(__assign({}, node), { selections: __spreadArrays(selections, [TYPENAME_FIELD]) });\n },\n },\n });\n}\nvar connectionRemoveConfig = {\n test: function (directive) {\n var willRemove = directive.name.value === 'connection';\n if (willRemove) {\n if (!directive.arguments ||\n !directive.arguments.some(function (arg) { return arg.name.value === 'key'; })) {\n process.env.NODE_ENV === \"production\" || invariant.warn('Removing an @connection directive even though it does not have a key. ' +\n 'You may want to use the key parameter to specify a store key.');\n }\n }\n return willRemove;\n },\n};\nfunction removeConnectionDirectiveFromDocument(doc) {\n return removeDirectivesFromDocument([connectionRemoveConfig], checkDocument(doc));\n}\nfunction hasDirectivesInSelectionSet(directives, selectionSet, nestedCheck) {\n if (nestedCheck === void 0) { nestedCheck = true; }\n return (selectionSet &&\n selectionSet.selections &&\n selectionSet.selections.some(function (selection) {\n return hasDirectivesInSelection(directives, selection, nestedCheck);\n }));\n}\nfunction hasDirectivesInSelection(directives, selection, nestedCheck) {\n if (nestedCheck === void 0) { nestedCheck = true; }\n if (!isField(selection)) {\n return true;\n }\n if (!selection.directives) {\n return false;\n }\n return (selection.directives.some(getDirectiveMatcher(directives)) ||\n (nestedCheck &&\n hasDirectivesInSelectionSet(directives, selection.selectionSet, nestedCheck)));\n}\nfunction getDirectivesFromDocument(directives, doc) {\n checkDocument(doc);\n var parentPath;\n return nullIfDocIsEmpty(visit(doc, {\n SelectionSet: {\n enter: function (node, _key, _parent, path) {\n var currentPath = path.join('-');\n if (!parentPath ||\n currentPath === parentPath ||\n !currentPath.startsWith(parentPath)) {\n if (node.selections) {\n var selectionsWithDirectives = node.selections.filter(function (selection) { return hasDirectivesInSelection(directives, selection); });\n if (hasDirectivesInSelectionSet(directives, node, false)) {\n parentPath = currentPath;\n }\n return __assign(__assign({}, node), { selections: selectionsWithDirectives });\n }\n else {\n return null;\n }\n }\n },\n },\n }));\n}\nfunction getArgumentMatcher(config) {\n return function argumentMatcher(argument) {\n return config.some(function (aConfig) {\n return argument.value &&\n argument.value.kind === 'Variable' &&\n argument.value.name &&\n (aConfig.name === argument.value.name.value ||\n (aConfig.test && aConfig.test(argument)));\n });\n };\n}\nfunction removeArgumentsFromDocument(config, doc) {\n var argMatcher = getArgumentMatcher(config);\n return nullIfDocIsEmpty(visit(doc, {\n OperationDefinition: {\n enter: function (node) {\n return __assign(__assign({}, node), { variableDefinitions: node.variableDefinitions.filter(function (varDef) {\n return !config.some(function (arg) { return arg.name === varDef.variable.name.value; });\n }) });\n },\n },\n Field: {\n enter: function (node) {\n var shouldRemoveField = config.some(function (argConfig) { return argConfig.remove; });\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 if (argMatchCount_1 === 1) {\n return null;\n }\n }\n },\n },\n Argument: {\n enter: function (node) {\n if (argMatcher(node)) {\n return null;\n }\n },\n },\n }));\n}\nfunction removeFragmentSpreadFromDocument(config, doc) {\n function enter(node) {\n if (config.some(function (def) { return def.name === node.name.value; })) {\n return null;\n }\n }\n return nullIfDocIsEmpty(visit(doc, {\n FragmentSpread: { enter: enter },\n FragmentDefinition: { enter: enter },\n }));\n}\nfunction getAllFragmentSpreadsFromSelectionSet(selectionSet) {\n var allFragments = [];\n selectionSet.selections.forEach(function (selection) {\n if ((isField(selection) || isInlineFragment(selection)) &&\n selection.selectionSet) {\n getAllFragmentSpreadsFromSelectionSet(selection.selectionSet).forEach(function (frag) { return allFragments.push(frag); });\n }\n else if (selection.kind === 'FragmentSpread') {\n allFragments.push(selection);\n }\n });\n return allFragments;\n}\nfunction buildQueryFromSelectionSet(document) {\n var definition = getMainDefinition(document);\n var definitionOperation = definition.operation;\n if (definitionOperation === 'query') {\n return document;\n }\n var modifiedDoc = visit(document, {\n OperationDefinition: {\n enter: function (node) {\n return __assign(__assign({}, node), { operation: 'query' });\n },\n },\n });\n return modifiedDoc;\n}\nfunction removeClientSetsFromDocument(document) {\n checkDocument(document);\n var modifiedDoc = removeDirectivesFromDocument([\n {\n test: function (directive) { return directive.name.value === 'client'; },\n remove: true,\n },\n ], document);\n if (modifiedDoc) {\n modifiedDoc = visit(modifiedDoc, {\n FragmentDefinition: {\n enter: function (node) {\n if (node.selectionSet) {\n var isTypenameOnly = node.selectionSet.selections.every(function (selection) {\n return isField(selection) && selection.name.value === '__typename';\n });\n if (isTypenameOnly) {\n return null;\n }\n }\n },\n },\n });\n }\n return modifiedDoc;\n}\n\nvar canUseWeakMap = typeof WeakMap === 'function' && !(typeof navigator === 'object' &&\n navigator.product === 'ReactNative');\n\nvar toString = Object.prototype.toString;\nfunction cloneDeep(value) {\n return cloneDeepHelper(value, new Map());\n}\nfunction cloneDeepHelper(val, seen) {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n if (seen.has(val))\n 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 case \"[object Object]\": {\n if (seen.has(val))\n 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 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 return 'development';\n}\nfunction isEnv(env) {\n return getEnv() === env;\n}\nfunction isProduction() {\n return isEnv('production') === true;\n}\nfunction isDevelopment() {\n return isEnv('development') === true;\n}\nfunction isTest() {\n return isEnv('test') === true;\n}\n\nfunction tryFunctionOrLogError(f) {\n try {\n return f();\n }\n catch (e) {\n if (console.error) {\n console.error(e);\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 &&\n (typeof o[prop] === 'object' || typeof o[prop] === 'function') &&\n !Object.isFrozen(o[prop])) {\n deepFreeze(o[prop]);\n }\n });\n return o;\n}\nfunction maybeDeepFreeze(obj) {\n if (isDevelopment() || isTest()) {\n var symbolIsPolyfilled = typeof Symbol === 'function' && typeof Symbol('') === 'string';\n if (!symbolIsPolyfilled) {\n return deepFreeze(obj);\n }\n }\n return obj;\n}\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction mergeDeep() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n return mergeDeepArray(sources);\n}\nfunction mergeDeepArray(sources) {\n var target = sources[0] || {};\n var count = sources.length;\n if (count > 1) {\n var pastCopies = [];\n target = shallowCopyForMerge(target, pastCopies);\n for (var i = 1; i < count; ++i) {\n target = mergeHelper(target, sources[i], pastCopies);\n }\n }\n return target;\n}\nfunction isObject(obj) {\n return obj !== null && typeof obj === 'object';\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 Object.keys(source).forEach(function (sourceKey) {\n var sourceValue = source[sourceKey];\n if (hasOwnProperty.call(target, sourceKey)) {\n var targetValue = target[sourceKey];\n if (sourceValue !== targetValue) {\n target[sourceKey] = mergeHelper(shallowCopyForMerge(targetValue, pastCopies), sourceValue, pastCopies);\n }\n }\n else {\n target[sourceKey] = sourceValue;\n }\n });\n return target;\n }\n return source;\n}\nfunction shallowCopyForMerge(value, pastCopies) {\n if (value !== null &&\n typeof value === 'object' &&\n pastCopies.indexOf(value) < 0) {\n if (Array.isArray(value)) {\n value = value.slice(0);\n }\n else {\n value = __assign({ __proto__: Object.getPrototypeOf(value) }, value);\n }\n pastCopies.push(value);\n }\n return value;\n}\n\nvar haveWarned = Object.create({});\nfunction warnOnceInDevelopment(msg, type) {\n if (type === void 0) { type = 'warn'; }\n if (!isProduction() && !haveWarned[msg]) {\n if (!isTest()) {\n haveWarned[msg] = true;\n }\n if (type === 'error') {\n console.error(msg);\n }\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 };\n//# sourceMappingURL=bundle.esm.js.map\n","\n/**\n * Expose `Backoff`.\n */\n\nmodule.exports = Backoff;\n\n/**\n * Initialize backoff timer with `opts`.\n *\n * - `min` initial timeout in milliseconds [100]\n * - `max` max timeout [10000]\n * - `jitter` [0]\n * - `factor` [2]\n *\n * @param {Object} opts\n * @api public\n */\n\nfunction Backoff(opts) {\n opts = opts || {};\n this.ms = opts.min || 100;\n this.max = opts.max || 10000;\n this.factor = opts.factor || 2;\n this.jitter = opts.jitter > 0 && opts.jitter <= 1 ? opts.jitter : 0;\n this.attempts = 0;\n}\n\n/**\n * Return the backoff duration.\n *\n * @return {Number}\n * @api public\n */\n\nBackoff.prototype.duration = function(){\n var ms = this.ms * Math.pow(this.factor, this.attempts++);\n if (this.jitter) {\n var rand = Math.random();\n var deviation = Math.floor(rand * this.jitter * ms);\n ms = (Math.floor(rand * 10) & 1) == 0 ? ms - deviation : ms + deviation;\n }\n return Math.min(ms, this.max) | 0;\n};\n\n/**\n * Reset the number of attempts.\n *\n * @api public\n */\n\nBackoff.prototype.reset = function(){\n this.attempts = 0;\n};\n\n/**\n * Set the minimum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMin = function(min){\n this.ms = min;\n};\n\n/**\n * Set the maximum duration\n *\n * @api public\n */\n\nBackoff.prototype.setMax = function(max){\n this.max = max;\n};\n\n/**\n * Set the jitter\n *\n * @api public\n */\n\nBackoff.prototype.setJitter = function(jitter){\n this.jitter = jitter;\n};\n\n","var isCallable = require('../internals/is-callable');\nvar tryToString = require('../internals/try-to-string');\n\nvar $TypeError = TypeError;\n\n// `Assert: IsCallable(argument) is true`\nmodule.exports = function (argument) {\n if (isCallable(argument)) return argument;\n throw $TypeError(tryToString(argument) + ' is not a function');\n};\n","var isObject = require('../internals/is-object');\n\nvar $String = String;\nvar $TypeError = TypeError;\n\n// `Assert: Type(argument) is Object`\nmodule.exports = function (argument) {\n if (isObject(argument)) return argument;\n throw $TypeError($String(argument) + ' is not an object');\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = lengthOfArrayLike(O);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare -- NaN check\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare -- NaN check\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.es/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.es/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","'use strict';\nvar DESCRIPTORS = require('../internals/descriptors');\nvar isArray = require('../internals/is-array');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Safari < 13 does not throw an error in this case\nvar SILENT_ON_NON_WRITABLE_LENGTH_SET = DESCRIPTORS && !function () {\n // makes no sense without proper strict mode support\n if (this !== undefined) return true;\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).length = 1;\n } catch (error) {\n return error instanceof TypeError;\n }\n}();\n\nmodule.exports = SILENT_ON_NON_WRITABLE_LENGTH_SET ? function (O, length) {\n if (isArray(O) && !getOwnPropertyDescriptor(O, 'length').writable) {\n throw $TypeError('Cannot set read only .length');\n } return O.length = length;\n} : function (O, length) {\n return O.length = length;\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar toString = uncurryThis({}.toString);\nvar stringSlice = uncurryThis(''.slice);\n\nmodule.exports = function (it) {\n return stringSlice(toString(it), 8, -1);\n};\n","var hasOwn = require('../internals/has-own-property');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source, exceptions) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!hasOwn(target, key) && !(exceptions && hasOwn(exceptions, key))) {\n defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n }\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var isCallable = require('../internals/is-callable');\nvar definePropertyModule = require('../internals/object-define-property');\nvar makeBuiltIn = require('../internals/make-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nmodule.exports = function (O, key, value, options) {\n if (!options) options = {};\n var simple = options.enumerable;\n var name = options.name !== undefined ? options.name : key;\n if (isCallable(value)) makeBuiltIn(value, name, options);\n if (options.global) {\n if (simple) O[key] = value;\n else defineGlobalProperty(key, value);\n } else {\n try {\n if (!options.unsafe) delete O[key];\n else if (O[key]) simple = true;\n } catch (error) { /* empty */ }\n if (simple) O[key] = value;\n else definePropertyModule.f(O, key, {\n value: value,\n enumerable: false,\n configurable: !options.nonConfigurable,\n writable: !options.nonWritable\n });\n } return O;\n};\n","var global = require('../internals/global');\n\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\n\nmodule.exports = function (key, value) {\n try {\n defineProperty(global, key, { value: value, configurable: true, writable: true });\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","var fails = require('../internals/fails');\n\n// Detect IE8's incomplete defineProperty implementation\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","var documentAll = typeof document == 'object' && document.all;\n\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot\n// eslint-disable-next-line unicorn/no-typeof-undefined -- required for testing\nvar IS_HTMLDDA = typeof documentAll == 'undefined' && documentAll !== undefined;\n\nmodule.exports = {\n all: documentAll,\n IS_HTMLDDA: IS_HTMLDDA\n};\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var $TypeError = TypeError;\nvar MAX_SAFE_INTEGER = 0x1FFFFFFFFFFFFF; // 2 ** 53 - 1 == 9007199254740991\n\nmodule.exports = function (it) {\n if (it > MAX_SAFE_INTEGER) throw $TypeError('Maximum allowed index exceeded');\n return it;\n};\n","module.exports = typeof navigator != 'undefined' && String(navigator.userAgent) || '';\n","var global = require('../internals/global');\nvar userAgent = require('../internals/engine-user-agent');\n\nvar process = global.process;\nvar Deno = global.Deno;\nvar versions = process && process.versions || Deno && Deno.version;\nvar v8 = versions && versions.v8;\nvar match, version;\n\nif (v8) {\n match = v8.split('.');\n // in old Chrome, versions of V8 isn't V8 = Chrome / 10\n // but their correct versions are not interesting for us\n version = match[0] > 0 && match[0] < 4 ? 1 : +(match[0] + match[1]);\n}\n\n// BrowserFS NodeJS `process` polyfill incorrectly set `.v8` to `0.0`\n// so check `userAgent` even if `.v8` exists, but 0\nif (!version && userAgent) {\n match = userAgent.match(/Edge\\/(\\d+)/);\n if (!match || match[1] >= 74) {\n match = userAgent.match(/Chrome\\/(\\d+)/);\n if (match) version = +match[1];\n }\n}\n\nmodule.exports = version;\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar defineBuiltIn = require('../internals/define-built-in');\nvar defineGlobalProperty = require('../internals/define-global-property');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.dontCallGetSet - prevent calling a getter on target\n options.name - the .name of the function if it does not match the key\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || defineGlobalProperty(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.dontCallGetSet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty == typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n defineBuiltIn(target, key, sourceProperty, options);\n }\n};\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !fails(function () {\n // eslint-disable-next-line es/no-function-prototype-bind -- safe\n var test = (function () { /* empty */ }).bind();\n // eslint-disable-next-line no-prototype-builtins -- safe\n return typeof test != 'function' || test.hasOwnProperty('prototype');\n});\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar call = Function.prototype.call;\n\nmodule.exports = NATIVE_BIND ? call.bind(call) : function () {\n return call.apply(call, arguments);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar hasOwn = require('../internals/has-own-property');\n\nvar FunctionPrototype = Function.prototype;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getDescriptor = DESCRIPTORS && Object.getOwnPropertyDescriptor;\n\nvar EXISTS = hasOwn(FunctionPrototype, 'name');\n// additional protection from minified / mangled / dropped function names\nvar PROPER = EXISTS && (function something() { /* empty */ }).name === 'something';\nvar CONFIGURABLE = EXISTS && (!DESCRIPTORS || (DESCRIPTORS && getDescriptor(FunctionPrototype, 'name').configurable));\n\nmodule.exports = {\n EXISTS: EXISTS,\n PROPER: PROPER,\n CONFIGURABLE: CONFIGURABLE\n};\n","var NATIVE_BIND = require('../internals/function-bind-native');\n\nvar FunctionPrototype = Function.prototype;\nvar call = FunctionPrototype.call;\nvar uncurryThisWithBind = NATIVE_BIND && FunctionPrototype.bind.bind(call, call);\n\nmodule.exports = NATIVE_BIND ? uncurryThisWithBind : function (fn) {\n return function () {\n return call.apply(fn, arguments);\n };\n};\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar aFunction = function (argument) {\n return isCallable(argument) ? argument : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(global[namespace]) : global[namespace] && global[namespace][method];\n};\n","var aCallable = require('../internals/a-callable');\nvar isNullOrUndefined = require('../internals/is-null-or-undefined');\n\n// `GetMethod` abstract operation\n// https://tc39.es/ecma262/#sec-getmethod\nmodule.exports = function (V, P) {\n var func = V[P];\n return isNullOrUndefined(func) ? undefined : aCallable(func);\n};\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line es/no-global-this -- safe\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n // eslint-disable-next-line no-restricted-globals -- safe\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func -- fallback\n (function () { return this; })() || this || Function('return this')();\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar toObject = require('../internals/to-object');\n\nvar hasOwnProperty = uncurryThis({}.hasOwnProperty);\n\n// `HasOwnProperty` abstract operation\n// https://tc39.es/ecma262/#sec-hasownproperty\n// eslint-disable-next-line es/no-object-hasown -- safe\nmodule.exports = Object.hasOwn || function hasOwn(it, key) {\n return hasOwnProperty(toObject(it), key);\n};\n","module.exports = {};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thanks to IE8 for its funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar $Object = Object;\nvar split = uncurryThis(''.split);\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins -- safe\n return !$Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split(it, '') : $Object(it);\n} : $Object;\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar isCallable = require('../internals/is-callable');\nvar store = require('../internals/shared-store');\n\nvar functionToString = uncurryThis(Function.toString);\n\n// this helper broken in `core-js@3.4.1-3.4.4`, so we can't use `shared` helper\nif (!isCallable(store.inspectSource)) {\n store.inspectSource = function (it) {\n return functionToString(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var NATIVE_WEAK_MAP = require('../internals/weak-map-basic-detection');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar hasOwn = require('../internals/has-own-property');\nvar shared = require('../internals/shared-store');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar OBJECT_ALREADY_INITIALIZED = 'Object already initialized';\nvar TypeError = global.TypeError;\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP || shared.state) {\n var store = shared.state || (shared.state = new WeakMap());\n /* eslint-disable no-self-assign -- prototype methods protection */\n store.get = store.get;\n store.has = store.has;\n store.set = store.set;\n /* eslint-enable no-self-assign -- prototype methods protection */\n set = function (it, metadata) {\n if (store.has(it)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n store.set(it, metadata);\n return metadata;\n };\n get = function (it) {\n return store.get(it) || {};\n };\n has = function (it) {\n return store.has(it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n if (hasOwn(it, STATE)) throw TypeError(OBJECT_ALREADY_INITIALIZED);\n metadata.facade = it;\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return hasOwn(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return hasOwn(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var classof = require('../internals/classof-raw');\n\n// `IsArray` abstract operation\n// https://tc39.es/ecma262/#sec-isarray\n// eslint-disable-next-line es/no-array-isarray -- safe\nmodule.exports = Array.isArray || function isArray(argument) {\n return classof(argument) == 'Array';\n};\n","var $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\n// `IsCallable` abstract operation\n// https://tc39.es/ecma262/#sec-iscallable\nmodule.exports = $documentAll.IS_HTMLDDA ? function (argument) {\n return typeof argument == 'function' || argument === documentAll;\n} : function (argument) {\n return typeof argument == 'function';\n};\n","var fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : isCallable(detection) ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","// we can't use just `it == null` since of `document.all` special case\n// https://tc39.es/ecma262/#sec-IsHTMLDDA-internal-slot-aec\nmodule.exports = function (it) {\n return it === null || it === undefined;\n};\n","var isCallable = require('../internals/is-callable');\nvar $documentAll = require('../internals/document-all');\n\nvar documentAll = $documentAll.all;\n\nmodule.exports = $documentAll.IS_HTMLDDA ? function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it) || it === documentAll;\n} : function (it) {\n return typeof it == 'object' ? it !== null : isCallable(it);\n};\n","module.exports = false;\n","var getBuiltIn = require('../internals/get-built-in');\nvar isCallable = require('../internals/is-callable');\nvar isPrototypeOf = require('../internals/object-is-prototype-of');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar $Object = Object;\n\nmodule.exports = USE_SYMBOL_AS_UID ? function (it) {\n return typeof it == 'symbol';\n} : function (it) {\n var $Symbol = getBuiltIn('Symbol');\n return isCallable($Symbol) && isPrototypeOf($Symbol.prototype, $Object(it));\n};\n","var toLength = require('../internals/to-length');\n\n// `LengthOfArrayLike` abstract operation\n// https://tc39.es/ecma262/#sec-lengthofarraylike\nmodule.exports = function (obj) {\n return toLength(obj.length);\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar fails = require('../internals/fails');\nvar isCallable = require('../internals/is-callable');\nvar hasOwn = require('../internals/has-own-property');\nvar DESCRIPTORS = require('../internals/descriptors');\nvar CONFIGURABLE_FUNCTION_NAME = require('../internals/function-name').CONFIGURABLE;\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar enforceInternalState = InternalStateModule.enforce;\nvar getInternalState = InternalStateModule.get;\nvar $String = String;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar defineProperty = Object.defineProperty;\nvar stringSlice = uncurryThis(''.slice);\nvar replace = uncurryThis(''.replace);\nvar join = uncurryThis([].join);\n\nvar CONFIGURABLE_LENGTH = DESCRIPTORS && !fails(function () {\n return defineProperty(function () { /* empty */ }, 'length', { value: 8 }).length !== 8;\n});\n\nvar TEMPLATE = String(String).split('String');\n\nvar makeBuiltIn = module.exports = function (value, name, options) {\n if (stringSlice($String(name), 0, 7) === 'Symbol(') {\n name = '[' + replace($String(name), /^Symbol\\(([^)]*)\\)/, '$1') + ']';\n }\n if (options && options.getter) name = 'get ' + name;\n if (options && options.setter) name = 'set ' + name;\n if (!hasOwn(value, 'name') || (CONFIGURABLE_FUNCTION_NAME && value.name !== name)) {\n if (DESCRIPTORS) defineProperty(value, 'name', { value: name, configurable: true });\n else value.name = name;\n }\n if (CONFIGURABLE_LENGTH && options && hasOwn(options, 'arity') && value.length !== options.arity) {\n defineProperty(value, 'length', { value: options.arity });\n }\n try {\n if (options && hasOwn(options, 'constructor') && options.constructor) {\n if (DESCRIPTORS) defineProperty(value, 'prototype', { writable: false });\n // in V8 ~ Chrome 53, prototypes of some methods, like `Array.prototype.values`, are non-writable\n } else if (value.prototype) value.prototype = undefined;\n } catch (error) { /* empty */ }\n var state = enforceInternalState(value);\n if (!hasOwn(state, 'source')) {\n state.source = join(TEMPLATE, typeof name == 'string' ? name : '');\n } return value;\n};\n\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n// eslint-disable-next-line no-extend-native -- required\nFunction.prototype.toString = makeBuiltIn(function toString() {\n return isCallable(this) && getInternalState(this).source || inspectSource(this);\n}, 'toString');\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `Math.trunc` method\n// https://tc39.es/ecma262/#sec-math.trunc\n// eslint-disable-next-line es/no-math-trunc -- safe\nmodule.exports = Math.trunc || function trunc(x) {\n var n = +x;\n return (n > 0 ? floor : ceil)(n);\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar V8_PROTOTYPE_DEFINE_BUG = require('../internals/v8-prototype-define-bug');\nvar anObject = require('../internals/an-object');\nvar toPropertyKey = require('../internals/to-property-key');\n\nvar $TypeError = TypeError;\n// eslint-disable-next-line es/no-object-defineproperty -- safe\nvar $defineProperty = Object.defineProperty;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar ENUMERABLE = 'enumerable';\nvar CONFIGURABLE = 'configurable';\nvar WRITABLE = 'writable';\n\n// `Object.defineProperty` method\n// https://tc39.es/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? V8_PROTOTYPE_DEFINE_BUG ? function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (typeof O === 'function' && P === 'prototype' && 'value' in Attributes && WRITABLE in Attributes && !Attributes[WRITABLE]) {\n var current = $getOwnPropertyDescriptor(O, P);\n if (current && current[WRITABLE]) {\n O[P] = Attributes.value;\n Attributes = {\n configurable: CONFIGURABLE in Attributes ? Attributes[CONFIGURABLE] : current[CONFIGURABLE],\n enumerable: ENUMERABLE in Attributes ? Attributes[ENUMERABLE] : current[ENUMERABLE],\n writable: false\n };\n }\n } return $defineProperty(O, P, Attributes);\n} : $defineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPropertyKey(P);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return $defineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw $TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar call = require('../internals/function-call');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPropertyKey = require('../internals/to-property-key');\nvar hasOwn = require('../internals/has-own-property');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar $getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.es/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? $getOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPropertyKey(P);\n if (IE8_DOM_DEFINE) try {\n return $getOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (hasOwn(O, P)) return createPropertyDescriptor(!call(propertyIsEnumerableModule.f, O, P), O[P]);\n};\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.es/ecma262/#sec-object.getownpropertynames\n// eslint-disable-next-line es/no-object-getownpropertynames -- safe\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","// eslint-disable-next-line es/no-object-getownpropertysymbols -- safe\nexports.f = Object.getOwnPropertySymbols;\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nmodule.exports = uncurryThis({}.isPrototypeOf);\n","var uncurryThis = require('../internals/function-uncurry-this');\nvar hasOwn = require('../internals/has-own-property');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar push = uncurryThis([].push);\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !hasOwn(hiddenKeys, key) && hasOwn(O, key) && push(result, key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (hasOwn(O, key = names[i++])) {\n ~indexOf(result, key) || push(result, key);\n }\n return result;\n};\n","'use strict';\nvar $propertyIsEnumerable = {}.propertyIsEnumerable;\n// eslint-disable-next-line es/no-object-getownpropertydescriptor -- safe\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !$propertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.es/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : $propertyIsEnumerable;\n","var call = require('../internals/function-call');\nvar isCallable = require('../internals/is-callable');\nvar isObject = require('../internals/is-object');\n\nvar $TypeError = TypeError;\n\n// `OrdinaryToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-ordinarytoprimitive\nmodule.exports = function (input, pref) {\n var fn, val;\n if (pref === 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n if (isCallable(fn = input.valueOf) && !isObject(val = call(fn, input))) return val;\n if (pref !== 'string' && isCallable(fn = input.toString) && !isObject(val = call(fn, input))) return val;\n throw $TypeError(\"Can't convert object to primitive value\");\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar uncurryThis = require('../internals/function-uncurry-this');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\nvar concat = uncurryThis([].concat);\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? concat(keys, getOwnPropertySymbols(it)) : keys;\n};\n","var isNullOrUndefined = require('../internals/is-null-or-undefined');\n\nvar $TypeError = TypeError;\n\n// `RequireObjectCoercible` abstract operation\n// https://tc39.es/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (isNullOrUndefined(it)) throw $TypeError(\"Can't call method on \" + it);\n return it;\n};\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","var global = require('../internals/global');\nvar defineGlobalProperty = require('../internals/define-global-property');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || defineGlobalProperty(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.31.1',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2014-2023 Denis Pushkarev (zloirock.ru)',\n license: 'https://github.com/zloirock/core-js/blob/v3.31.1/LICENSE',\n source: 'https://github.com/zloirock/core-js'\n});\n","/* eslint-disable es/no-symbol -- required for testing */\nvar V8_VERSION = require('../internals/engine-v8-version');\nvar fails = require('../internals/fails');\nvar global = require('../internals/global');\n\nvar $String = global.String;\n\n// eslint-disable-next-line es/no-object-getownpropertysymbols -- required for testing\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n var symbol = Symbol();\n // Chrome 38 Symbol has incorrect toString conversion\n // `get-own-property-symbols` polyfill symbols converted to object are not Symbol instances\n // nb: Do not call `String` directly to avoid this being optimized out to `symbol+''` which will,\n // of course, fail.\n return !$String(symbol) || !(Object(symbol) instanceof Symbol) ||\n // Chrome 38-40 symbols are not inherited from DOM collections prototypes to instances\n !Symbol.sham && V8_VERSION && V8_VERSION < 41;\n});\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toIntegerOrInfinity(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var trunc = require('../internals/math-trunc');\n\n// `ToIntegerOrInfinity` abstract operation\n// https://tc39.es/ecma262/#sec-tointegerorinfinity\nmodule.exports = function (argument) {\n var number = +argument;\n // eslint-disable-next-line no-self-compare -- NaN check\n return number !== number || number === 0 ? 0 : trunc(number);\n};\n","var toIntegerOrInfinity = require('../internals/to-integer-or-infinity');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.es/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toIntegerOrInfinity(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\nvar $Object = Object;\n\n// `ToObject` abstract operation\n// https://tc39.es/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return $Object(requireObjectCoercible(argument));\n};\n","var call = require('../internals/function-call');\nvar isObject = require('../internals/is-object');\nvar isSymbol = require('../internals/is-symbol');\nvar getMethod = require('../internals/get-method');\nvar ordinaryToPrimitive = require('../internals/ordinary-to-primitive');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\n\nvar $TypeError = TypeError;\nvar TO_PRIMITIVE = wellKnownSymbol('toPrimitive');\n\n// `ToPrimitive` abstract operation\n// https://tc39.es/ecma262/#sec-toprimitive\nmodule.exports = function (input, pref) {\n if (!isObject(input) || isSymbol(input)) return input;\n var exoticToPrim = getMethod(input, TO_PRIMITIVE);\n var result;\n if (exoticToPrim) {\n if (pref === undefined) pref = 'default';\n result = call(exoticToPrim, input, pref);\n if (!isObject(result) || isSymbol(result)) return result;\n throw $TypeError(\"Can't convert object to primitive value\");\n }\n if (pref === undefined) pref = 'number';\n return ordinaryToPrimitive(input, pref);\n};\n","var toPrimitive = require('../internals/to-primitive');\nvar isSymbol = require('../internals/is-symbol');\n\n// `ToPropertyKey` abstract operation\n// https://tc39.es/ecma262/#sec-topropertykey\nmodule.exports = function (argument) {\n var key = toPrimitive(argument, 'string');\n return isSymbol(key) ? key : key + '';\n};\n","var $String = String;\n\nmodule.exports = function (argument) {\n try {\n return $String(argument);\n } catch (error) {\n return 'Object';\n }\n};\n","var uncurryThis = require('../internals/function-uncurry-this');\n\nvar id = 0;\nvar postfix = Math.random();\nvar toString = uncurryThis(1.0.toString);\n\nmodule.exports = function (key) {\n return 'Symbol(' + (key === undefined ? '' : key) + ')_' + toString(++id + postfix, 36);\n};\n","/* eslint-disable es/no-symbol -- required for testing */\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\n\nmodule.exports = NATIVE_SYMBOL\n && !Symbol.sham\n && typeof Symbol.iterator == 'symbol';\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\n\n// V8 ~ Chrome 36-\n// https://bugs.chromium.org/p/v8/issues/detail?id=3334\nmodule.exports = DESCRIPTORS && fails(function () {\n // eslint-disable-next-line es/no-object-defineproperty -- required for testing\n return Object.defineProperty(function () { /* empty */ }, 'prototype', {\n value: 42,\n writable: false\n }).prototype != 42;\n});\n","var global = require('../internals/global');\nvar isCallable = require('../internals/is-callable');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = isCallable(WeakMap) && /native code/.test(String(WeakMap));\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar hasOwn = require('../internals/has-own-property');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/symbol-constructor-detection');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar Symbol = global.Symbol;\nvar WellKnownSymbolsStore = shared('wks');\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol['for'] || Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!hasOwn(WellKnownSymbolsStore, name)) {\n WellKnownSymbolsStore[name] = NATIVE_SYMBOL && hasOwn(Symbol, name)\n ? Symbol[name]\n : createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar toObject = require('../internals/to-object');\nvar lengthOfArrayLike = require('../internals/length-of-array-like');\nvar setArrayLength = require('../internals/array-set-length');\nvar doesNotExceedSafeInteger = require('../internals/does-not-exceed-safe-integer');\nvar fails = require('../internals/fails');\n\nvar INCORRECT_TO_LENGTH = fails(function () {\n return [].push.call({ length: 0x100000000 }, 1) !== 4294967297;\n});\n\n// V8 and Safari <= 15.4, FF < 23 throws InternalError\n// https://bugs.chromium.org/p/v8/issues/detail?id=12681\nvar properErrorOnNonWritableLength = function () {\n try {\n // eslint-disable-next-line es/no-object-defineproperty -- safe\n Object.defineProperty([], 'length', { writable: false }).push();\n } catch (error) {\n return error instanceof TypeError;\n }\n};\n\nvar FORCED = INCORRECT_TO_LENGTH || !properErrorOnNonWritableLength();\n\n// `Array.prototype.push` method\n// https://tc39.es/ecma262/#sec-array.prototype.push\n$({ target: 'Array', proto: true, arity: 1, forced: FORCED }, {\n // eslint-disable-next-line no-unused-vars -- required for `.length`\n push: function push(item) {\n var O = toObject(this);\n var len = lengthOfArrayLike(O);\n var argCount = arguments.length;\n doesNotExceedSafeInteger(len + argCount);\n for (var i = 0; i < argCount; i++) {\n O[len] = arguments[i];\n len++;\n }\n setArrayLength(O, len);\n return len;\n }\n});\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n , prefix = '~';\n\n/**\n * Constructor to create a storage for our `EE` objects.\n * An `Events` instance is a plain object whose properties are event names.\n *\n * @constructor\n * @private\n */\nfunction Events() {}\n\n//\n// We try to not inherit from `Object.prototype`. In some engines creating an\n// instance in this way is faster than calling `Object.create(null)` directly.\n// If `Object.create(null)` is not supported we prefix the event names with a\n// character to make sure that the built-in object properties are not\n// overridden or used as an attack vector.\n//\nif (Object.create) {\n Events.prototype = Object.create(null);\n\n //\n // This hack is needed because the `__proto__` property is still inherited in\n // some old browsers like Android 4, iPhone 5.1, Opera 11 and Safari 5.\n //\n if (!new Events().__proto__) prefix = false;\n}\n\n/**\n * Representation of a single event listener.\n *\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} [once=false] Specify if the listener is a one-time listener.\n * @constructor\n * @private\n */\nfunction EE(fn, context, once) {\n this.fn = fn;\n this.context = context;\n this.once = once || false;\n}\n\n/**\n * Add a listener for a given event.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} context The context to invoke the listener with.\n * @param {Boolean} once Specify if the listener is a one-time listener.\n * @returns {EventEmitter}\n * @private\n */\nfunction addListener(emitter, event, fn, context, once) {\n if (typeof fn !== 'function') {\n throw new TypeError('The listener must be a function');\n }\n\n var listener = new EE(fn, context || emitter, once)\n , evt = prefix ? prefix + event : event;\n\n if (!emitter._events[evt]) emitter._events[evt] = listener, emitter._eventsCount++;\n else if (!emitter._events[evt].fn) emitter._events[evt].push(listener);\n else emitter._events[evt] = [emitter._events[evt], listener];\n\n return emitter;\n}\n\n/**\n * Clear event by name.\n *\n * @param {EventEmitter} emitter Reference to the `EventEmitter` instance.\n * @param {(String|Symbol)} evt The Event name.\n * @private\n */\nfunction clearEvent(emitter, evt) {\n if (--emitter._eventsCount === 0) emitter._events = new Events();\n else delete emitter._events[evt];\n}\n\n/**\n * Minimal `EventEmitter` interface that is molded against the Node.js\n * `EventEmitter` interface.\n *\n * @constructor\n * @public\n */\nfunction EventEmitter() {\n this._events = new Events();\n this._eventsCount = 0;\n}\n\n/**\n * Return an array listing the events for which the emitter has registered\n * listeners.\n *\n * @returns {Array}\n * @public\n */\nEventEmitter.prototype.eventNames = function eventNames() {\n var names = []\n , events\n , name;\n\n if (this._eventsCount === 0) return names;\n\n for (name in (events = this._events)) {\n if (has.call(events, name)) names.push(prefix ? name.slice(1) : name);\n }\n\n if (Object.getOwnPropertySymbols) {\n return names.concat(Object.getOwnPropertySymbols(events));\n }\n\n return names;\n};\n\n/**\n * Return the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Array} The registered listeners.\n * @public\n */\nEventEmitter.prototype.listeners = function listeners(event) {\n var evt = prefix ? prefix + event : event\n , handlers = this._events[evt];\n\n if (!handlers) return [];\n if (handlers.fn) return [handlers.fn];\n\n for (var i = 0, l = handlers.length, ee = new Array(l); i < l; i++) {\n ee[i] = handlers[i].fn;\n }\n\n return ee;\n};\n\n/**\n * Return the number of listeners listening to a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Number} The number of listeners.\n * @public\n */\nEventEmitter.prototype.listenerCount = function listenerCount(event) {\n var evt = prefix ? prefix + event : event\n , listeners = this._events[evt];\n\n if (!listeners) return 0;\n if (listeners.fn) return 1;\n return listeners.length;\n};\n\n/**\n * Calls each of the listeners registered for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @returns {Boolean} `true` if the event had listeners, else `false`.\n * @public\n */\nEventEmitter.prototype.emit = function emit(event, a1, a2, a3, a4, a5) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return false;\n\n var listeners = this._events[evt]\n , len = arguments.length\n , args\n , i;\n\n if (listeners.fn) {\n if (listeners.once) this.removeListener(event, listeners.fn, undefined, true);\n\n switch (len) {\n case 1: return listeners.fn.call(listeners.context), true;\n case 2: return listeners.fn.call(listeners.context, a1), true;\n case 3: return listeners.fn.call(listeners.context, a1, a2), true;\n case 4: return listeners.fn.call(listeners.context, a1, a2, a3), true;\n case 5: return listeners.fn.call(listeners.context, a1, a2, a3, a4), true;\n case 6: return listeners.fn.call(listeners.context, a1, a2, a3, a4, a5), true;\n }\n\n for (i = 1, args = new Array(len -1); i < len; i++) {\n args[i - 1] = arguments[i];\n }\n\n listeners.fn.apply(listeners.context, args);\n } else {\n var length = listeners.length\n , j;\n\n for (i = 0; i < length; i++) {\n if (listeners[i].once) this.removeListener(event, listeners[i].fn, undefined, true);\n\n switch (len) {\n case 1: listeners[i].fn.call(listeners[i].context); break;\n case 2: listeners[i].fn.call(listeners[i].context, a1); break;\n case 3: listeners[i].fn.call(listeners[i].context, a1, a2); break;\n case 4: listeners[i].fn.call(listeners[i].context, a1, a2, a3); break;\n default:\n if (!args) for (j = 1, args = new Array(len -1); j < len; j++) {\n args[j - 1] = arguments[j];\n }\n\n listeners[i].fn.apply(listeners[i].context, args);\n }\n }\n }\n\n return true;\n};\n\n/**\n * Add a listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.on = function on(event, fn, context) {\n return addListener(this, event, fn, context, false);\n};\n\n/**\n * Add a one-time listener for a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn The listener function.\n * @param {*} [context=this] The context to invoke the listener with.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.once = function once(event, fn, context) {\n return addListener(this, event, fn, context, true);\n};\n\n/**\n * Remove the listeners of a given event.\n *\n * @param {(String|Symbol)} event The event name.\n * @param {Function} fn Only remove the listeners that match this function.\n * @param {*} context Only remove the listeners that have this context.\n * @param {Boolean} once Only remove one-time listeners.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeListener = function removeListener(event, fn, context, once) {\n var evt = prefix ? prefix + event : event;\n\n if (!this._events[evt]) return this;\n if (!fn) {\n clearEvent(this, evt);\n return this;\n }\n\n var listeners = this._events[evt];\n\n if (listeners.fn) {\n if (\n listeners.fn === fn &&\n (!once || listeners.once) &&\n (!context || listeners.context === context)\n ) {\n clearEvent(this, evt);\n }\n } else {\n for (var i = 0, events = [], length = listeners.length; i < length; i++) {\n if (\n listeners[i].fn !== fn ||\n (once && !listeners[i].once) ||\n (context && listeners[i].context !== context)\n ) {\n events.push(listeners[i]);\n }\n }\n\n //\n // Reset the array, or remove it completely if we have no more listeners.\n //\n if (events.length) this._events[evt] = events.length === 1 ? events[0] : events;\n else clearEvent(this, evt);\n }\n\n return this;\n};\n\n/**\n * Remove all listeners, or those of the specified event.\n *\n * @param {(String|Symbol)} [event] The event name.\n * @returns {EventEmitter} `this`.\n * @public\n */\nEventEmitter.prototype.removeAllListeners = function removeAllListeners(event) {\n var evt;\n\n if (event) {\n evt = prefix ? prefix + event : event;\n if (this._events[evt]) clearEvent(this, evt);\n } else {\n this._events = new Events();\n this._eventsCount = 0;\n }\n\n return this;\n};\n\n//\n// Alias methods names because people roll like that.\n//\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\nEventEmitter.prototype.addListener = EventEmitter.prototype.on;\n\n//\n// Expose the prefix.\n//\nEventEmitter.prefixed = prefix;\n\n//\n// Allow `EventEmitter` to be imported as module namespace.\n//\nEventEmitter.EventEmitter = EventEmitter;\n\n//\n// Expose the module.\n//\nif ('undefined' !== typeof module) {\n module.exports = EventEmitter;\n}\n","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n","var parser = require('graphql/language/parser');\n\nvar parse = parser.parse;\n\n// Strip insignificant whitespace\n// Note that this could do a lot more, such as reorder fields etc.\nfunction normalize(string) {\n return string.replace(/[\\s,]+/g, ' ').trim();\n}\n\n// A map docString -> graphql document\nvar docCache = {};\n\n// A map fragmentName -> [normalized source]\nvar fragmentSourceMap = {};\n\nfunction cacheKeyFromLoc(loc) {\n return normalize(loc.source.body.substring(loc.start, loc.end));\n}\n\n// For testing.\nfunction resetCaches() {\n docCache = {};\n fragmentSourceMap = {};\n}\n\n// Take a unstripped parsed document (query/mutation or even fragment), and\n// check all fragment definitions, checking for name->source uniqueness.\n// We also want to make sure only unique fragments exist in the document.\nvar printFragmentWarnings = true;\nfunction processFragments(ast) {\n var astFragmentMap = {};\n var definitions = [];\n\n for (var i = 0; i < ast.definitions.length; i++) {\n var fragmentDefinition = ast.definitions[i];\n\n if (fragmentDefinition.kind === 'FragmentDefinition') {\n var fragmentName = fragmentDefinition.name.value;\n var sourceKey = cacheKeyFromLoc(fragmentDefinition.loc);\n\n // We know something about this fragment\n if (fragmentSourceMap.hasOwnProperty(fragmentName) && !fragmentSourceMap[fragmentName][sourceKey]) {\n\n // this is a problem because the app developer is trying to register another fragment with\n // the same name as one previously registered. So, we tell them about it.\n if (printFragmentWarnings) {\n console.warn(\"Warning: fragment with name \" + fragmentName + \" already exists.\\n\"\n + \"graphql-tag enforces all fragment names across your application to be unique; read more about\\n\"\n + \"this in the docs: http://dev.apollodata.com/core/fragments.html#unique-names\");\n }\n\n fragmentSourceMap[fragmentName][sourceKey] = true;\n\n } else if (!fragmentSourceMap.hasOwnProperty(fragmentName)) {\n fragmentSourceMap[fragmentName] = {};\n fragmentSourceMap[fragmentName][sourceKey] = true;\n }\n\n if (!astFragmentMap[sourceKey]) {\n astFragmentMap[sourceKey] = true;\n definitions.push(fragmentDefinition);\n }\n } else {\n definitions.push(fragmentDefinition);\n }\n }\n\n ast.definitions = definitions;\n return ast;\n}\n\nfunction disableFragmentWarnings() {\n printFragmentWarnings = false;\n}\n\nfunction stripLoc(doc, removeLocAtThisLevel) {\n var docType = Object.prototype.toString.call(doc);\n\n if (docType === '[object Array]') {\n return doc.map(function (d) {\n return stripLoc(d, removeLocAtThisLevel);\n });\n }\n\n if (docType !== '[object Object]') {\n throw new Error('Unexpected input.');\n }\n\n // We don't want to remove the root loc field so we can use it\n // for fragment substitution (see below)\n if (removeLocAtThisLevel && doc.loc) {\n delete doc.loc;\n }\n\n // https://github.com/apollographql/graphql-tag/issues/40\n if (doc.loc) {\n delete doc.loc.startToken;\n delete doc.loc.endToken;\n }\n\n var keys = Object.keys(doc);\n var key;\n var value;\n var valueType;\n\n for (key in keys) {\n if (keys.hasOwnProperty(key)) {\n value = doc[keys[key]];\n valueType = Object.prototype.toString.call(value);\n\n if (valueType === '[object Object]' || valueType === '[object Array]') {\n doc[keys[key]] = stripLoc(value, true);\n }\n }\n }\n\n return doc;\n}\n\nvar experimentalFragmentVariables = false;\nfunction parseDocument(doc) {\n var cacheKey = normalize(doc);\n\n if (docCache[cacheKey]) {\n return docCache[cacheKey];\n }\n\n var parsed = parse(doc, { experimentalFragmentVariables: experimentalFragmentVariables });\n if (!parsed || parsed.kind !== 'Document') {\n throw new Error('Not a valid GraphQL document.');\n }\n\n // check that all \"new\" fragments inside the documents are consistent with\n // existing fragments of the same name\n parsed = processFragments(parsed);\n parsed = stripLoc(parsed, false);\n docCache[cacheKey] = parsed;\n\n return parsed;\n}\n\nfunction enableExperimentalFragmentVariables() {\n experimentalFragmentVariables = true;\n}\n\nfunction disableExperimentalFragmentVariables() {\n experimentalFragmentVariables = false;\n}\n\n// XXX This should eventually disallow arbitrary string interpolation, like Relay does\nfunction gql(/* arguments */) {\n var args = Array.prototype.slice.call(arguments);\n\n var literals = args[0];\n\n // We always get literals[0] and then matching post literals for each arg given\n var result = (typeof(literals) === \"string\") ? literals : literals[0];\n\n for (var i = 1; i < args.length; i++) {\n if (args[i] && args[i].kind && args[i].kind === 'Document') {\n result += args[i].loc.source.body;\n } else {\n result += args[i];\n }\n\n result += literals[i];\n }\n\n return parseDocument(result);\n}\n\n// Support typescript, which isn't as nice as Babel about default exports\ngql.default = gql;\ngql.resetCaches = resetCaches;\ngql.disableFragmentWarnings = disableFragmentWarnings;\ngql.enableExperimentalFragmentVariables = enableExperimentalFragmentVariables;\ngql.disableExperimentalFragmentVariables = disableExperimentalFragmentVariables;\n\nmodule.exports = gql;\n","\"use strict\";\nvar __assign = (this && this.__assign) || Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});\nvar NativeWebSocket = _global.WebSocket || _global.MozWebSocket;\nvar Backoff = require(\"backo2\");\nvar eventemitter3_1 = require(\"eventemitter3\");\nvar is_string_1 = require(\"./utils/is-string\");\nvar is_object_1 = require(\"./utils/is-object\");\nvar printer_1 = require(\"graphql/language/printer\");\nvar getOperationAST_1 = require(\"graphql/utilities/getOperationAST\");\nvar symbol_observable_1 = require(\"symbol-observable\");\nvar protocol_1 = require(\"./protocol\");\nvar defaults_1 = require(\"./defaults\");\nvar message_types_1 = require(\"./message-types\");\nvar SubscriptionClient = (function () {\n function SubscriptionClient(url, options, webSocketImpl, webSocketProtocols) {\n var _a = (options || {}), _b = _a.connectionCallback, connectionCallback = _b === void 0 ? undefined : _b, _c = _a.connectionParams, connectionParams = _c === void 0 ? {} : _c, _d = _a.timeout, timeout = _d === void 0 ? defaults_1.WS_TIMEOUT : _d, _e = _a.reconnect, reconnect = _e === void 0 ? false : _e, _f = _a.reconnectionAttempts, reconnectionAttempts = _f === void 0 ? Infinity : _f, _g = _a.lazy, lazy = _g === void 0 ? false : _g, _h = _a.inactivityTimeout, inactivityTimeout = _h === void 0 ? 0 : _h;\n this.wsImpl = webSocketImpl || NativeWebSocket;\n if (!this.wsImpl) {\n throw new Error('Unable to find native implementation, or alternative implementation for WebSocket!');\n }\n this.wsProtocols = webSocketProtocols || protocol_1.GRAPHQL_WS;\n this.connectionCallback = connectionCallback;\n this.url = url;\n this.operations = {};\n this.nextOperationId = 0;\n this.wsTimeout = timeout;\n this.unsentMessagesQueue = [];\n this.reconnect = reconnect;\n this.reconnecting = false;\n this.reconnectionAttempts = reconnectionAttempts;\n this.lazy = !!lazy;\n this.inactivityTimeout = inactivityTimeout;\n this.closedByUser = false;\n this.backoff = new Backoff({ jitter: 0.5 });\n this.eventEmitter = new eventemitter3_1.EventEmitter();\n this.middlewares = [];\n this.client = null;\n this.maxConnectTimeGenerator = this.createMaxConnectTimeGenerator();\n this.connectionParams = this.getConnectionParams(connectionParams);\n if (!this.lazy) {\n this.connect();\n }\n }\n Object.defineProperty(SubscriptionClient.prototype, \"status\", {\n get: function () {\n if (this.client === null) {\n return this.wsImpl.CLOSED;\n }\n return this.client.readyState;\n },\n enumerable: true,\n configurable: true\n });\n SubscriptionClient.prototype.close = function (isForced, closedByUser) {\n if (isForced === void 0) { isForced = true; }\n if (closedByUser === void 0) { closedByUser = true; }\n this.clearInactivityTimeout();\n if (this.client !== null) {\n this.closedByUser = closedByUser;\n if (isForced) {\n this.clearCheckConnectionInterval();\n this.clearMaxConnectTimeout();\n this.clearTryReconnectTimeout();\n this.unsubscribeAll();\n this.sendMessage(undefined, message_types_1.default.GQL_CONNECTION_TERMINATE, null);\n }\n this.client.close();\n this.client = null;\n this.eventEmitter.emit('disconnected');\n if (!isForced) {\n this.tryReconnect();\n }\n }\n };\n SubscriptionClient.prototype.request = function (request) {\n var _a;\n var getObserver = this.getObserver.bind(this);\n var executeOperation = this.executeOperation.bind(this);\n var unsubscribe = this.unsubscribe.bind(this);\n var opId;\n this.clearInactivityTimeout();\n return _a = {},\n _a[symbol_observable_1.default] = function () {\n return this;\n },\n _a.subscribe = function (observerOrNext, onError, onComplete) {\n var observer = getObserver(observerOrNext, onError, onComplete);\n opId = executeOperation(request, function (error, result) {\n if (error === null && result === null) {\n if (observer.complete) {\n observer.complete();\n }\n }\n else if (error) {\n if (observer.error) {\n observer.error(error[0]);\n }\n }\n else {\n if (observer.next) {\n observer.next(result);\n }\n }\n });\n return {\n unsubscribe: function () {\n if (opId) {\n unsubscribe(opId);\n opId = null;\n }\n },\n };\n },\n _a;\n };\n SubscriptionClient.prototype.on = function (eventName, callback, context) {\n var handler = this.eventEmitter.on(eventName, callback, context);\n return function () {\n handler.off(eventName, callback, context);\n };\n };\n SubscriptionClient.prototype.onConnected = function (callback, context) {\n return this.on('connected', callback, context);\n };\n SubscriptionClient.prototype.onConnecting = function (callback, context) {\n return this.on('connecting', callback, context);\n };\n SubscriptionClient.prototype.onDisconnected = function (callback, context) {\n return this.on('disconnected', callback, context);\n };\n SubscriptionClient.prototype.onReconnected = function (callback, context) {\n return this.on('reconnected', callback, context);\n };\n SubscriptionClient.prototype.onReconnecting = function (callback, context) {\n return this.on('reconnecting', callback, context);\n };\n SubscriptionClient.prototype.onError = function (callback, context) {\n return this.on('error', callback, context);\n };\n SubscriptionClient.prototype.unsubscribeAll = function () {\n var _this = this;\n Object.keys(this.operations).forEach(function (subId) {\n _this.unsubscribe(subId);\n });\n };\n SubscriptionClient.prototype.applyMiddlewares = function (options) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n var queue = function (funcs, scope) {\n var next = function (error) {\n if (error) {\n reject(error);\n }\n else {\n if (funcs.length > 0) {\n var f = funcs.shift();\n if (f) {\n f.applyMiddleware.apply(scope, [options, next]);\n }\n }\n else {\n resolve(options);\n }\n }\n };\n next();\n };\n queue(_this.middlewares.slice(), _this);\n });\n };\n SubscriptionClient.prototype.use = function (middlewares) {\n var _this = this;\n middlewares.map(function (middleware) {\n if (typeof middleware.applyMiddleware === 'function') {\n _this.middlewares.push(middleware);\n }\n else {\n throw new Error('Middleware must implement the applyMiddleware function.');\n }\n });\n return this;\n };\n SubscriptionClient.prototype.getConnectionParams = function (connectionParams) {\n return function () { return new Promise(function (resolve, reject) {\n if (typeof connectionParams === 'function') {\n try {\n return resolve(connectionParams.call(null));\n }\n catch (error) {\n return reject(error);\n }\n }\n resolve(connectionParams);\n }); };\n };\n SubscriptionClient.prototype.executeOperation = function (options, handler) {\n var _this = this;\n if (this.client === null) {\n this.connect();\n }\n var opId = this.generateOperationId();\n this.operations[opId] = { options: options, handler: handler };\n this.applyMiddlewares(options)\n .then(function (processedOptions) {\n _this.checkOperationOptions(processedOptions, handler);\n if (_this.operations[opId]) {\n _this.operations[opId] = { options: processedOptions, handler: handler };\n _this.sendMessage(opId, message_types_1.default.GQL_START, processedOptions);\n }\n })\n .catch(function (error) {\n _this.unsubscribe(opId);\n handler(_this.formatErrors(error));\n });\n return opId;\n };\n SubscriptionClient.prototype.getObserver = function (observerOrNext, error, complete) {\n if (typeof observerOrNext === 'function') {\n return {\n next: function (v) { return observerOrNext(v); },\n error: function (e) { return error && error(e); },\n complete: function () { return complete && complete(); },\n };\n }\n return observerOrNext;\n };\n SubscriptionClient.prototype.createMaxConnectTimeGenerator = function () {\n var minValue = 1000;\n var maxValue = this.wsTimeout;\n return new Backoff({\n min: minValue,\n max: maxValue,\n factor: 1.2,\n });\n };\n SubscriptionClient.prototype.clearCheckConnectionInterval = function () {\n if (this.checkConnectionIntervalId) {\n clearInterval(this.checkConnectionIntervalId);\n this.checkConnectionIntervalId = null;\n }\n };\n SubscriptionClient.prototype.clearMaxConnectTimeout = function () {\n if (this.maxConnectTimeoutId) {\n clearTimeout(this.maxConnectTimeoutId);\n this.maxConnectTimeoutId = null;\n }\n };\n SubscriptionClient.prototype.clearTryReconnectTimeout = function () {\n if (this.tryReconnectTimeoutId) {\n clearTimeout(this.tryReconnectTimeoutId);\n this.tryReconnectTimeoutId = null;\n }\n };\n SubscriptionClient.prototype.clearInactivityTimeout = function () {\n if (this.inactivityTimeoutId) {\n clearTimeout(this.inactivityTimeoutId);\n this.inactivityTimeoutId = null;\n }\n };\n SubscriptionClient.prototype.setInactivityTimeout = function () {\n var _this = this;\n if (this.inactivityTimeout > 0 && Object.keys(this.operations).length === 0) {\n this.inactivityTimeoutId = setTimeout(function () {\n if (Object.keys(_this.operations).length === 0) {\n _this.close();\n }\n }, this.inactivityTimeout);\n }\n };\n SubscriptionClient.prototype.checkOperationOptions = function (options, handler) {\n var query = options.query, variables = options.variables, operationName = options.operationName;\n if (!query) {\n throw new Error('Must provide a query.');\n }\n if (!handler) {\n throw new Error('Must provide an handler.');\n }\n if ((!is_string_1.default(query) && !getOperationAST_1.getOperationAST(query, operationName)) ||\n (operationName && !is_string_1.default(operationName)) ||\n (variables && !is_object_1.default(variables))) {\n throw new Error('Incorrect option types. query must be a string or a document,' +\n '`operationName` must be a string, and `variables` must be an object.');\n }\n };\n SubscriptionClient.prototype.buildMessage = function (id, type, payload) {\n var payloadToReturn = payload && payload.query ? __assign({}, payload, { query: typeof payload.query === 'string' ? payload.query : printer_1.print(payload.query) }) :\n payload;\n return {\n id: id,\n type: type,\n payload: payloadToReturn,\n };\n };\n SubscriptionClient.prototype.formatErrors = function (errors) {\n if (Array.isArray(errors)) {\n return errors;\n }\n if (errors && errors.errors) {\n return this.formatErrors(errors.errors);\n }\n if (errors && errors.message) {\n return [errors];\n }\n return [{\n name: 'FormatedError',\n message: 'Unknown error',\n originalError: errors,\n }];\n };\n SubscriptionClient.prototype.sendMessage = function (id, type, payload) {\n this.sendMessageRaw(this.buildMessage(id, type, payload));\n };\n SubscriptionClient.prototype.sendMessageRaw = function (message) {\n switch (this.status) {\n case this.wsImpl.OPEN:\n var serializedMessage = JSON.stringify(message);\n try {\n JSON.parse(serializedMessage);\n }\n catch (e) {\n this.eventEmitter.emit('error', new Error(\"Message must be JSON-serializable. Got: \" + message));\n }\n this.client.send(serializedMessage);\n break;\n case this.wsImpl.CONNECTING:\n this.unsentMessagesQueue.push(message);\n break;\n default:\n if (!this.reconnecting) {\n this.eventEmitter.emit('error', new Error('A message was not sent because socket is not connected, is closing or ' +\n 'is already closed. Message was: ' + JSON.stringify(message)));\n }\n }\n };\n SubscriptionClient.prototype.generateOperationId = function () {\n return String(++this.nextOperationId);\n };\n SubscriptionClient.prototype.tryReconnect = function () {\n var _this = this;\n if (!this.reconnect || this.backoff.attempts >= this.reconnectionAttempts) {\n return;\n }\n if (!this.reconnecting) {\n Object.keys(this.operations).forEach(function (key) {\n _this.unsentMessagesQueue.push(_this.buildMessage(key, message_types_1.default.GQL_START, _this.operations[key].options));\n });\n this.reconnecting = true;\n }\n this.clearTryReconnectTimeout();\n var delay = this.backoff.duration();\n this.tryReconnectTimeoutId = setTimeout(function () {\n _this.connect();\n }, delay);\n };\n SubscriptionClient.prototype.flushUnsentMessagesQueue = function () {\n var _this = this;\n this.unsentMessagesQueue.forEach(function (message) {\n _this.sendMessageRaw(message);\n });\n this.unsentMessagesQueue = [];\n };\n SubscriptionClient.prototype.checkConnection = function () {\n if (this.wasKeepAliveReceived) {\n this.wasKeepAliveReceived = false;\n return;\n }\n if (!this.reconnecting) {\n this.close(false, true);\n }\n };\n SubscriptionClient.prototype.checkMaxConnectTimeout = function () {\n var _this = this;\n this.clearMaxConnectTimeout();\n this.maxConnectTimeoutId = setTimeout(function () {\n if (_this.status !== _this.wsImpl.OPEN) {\n _this.reconnecting = true;\n _this.close(false, true);\n }\n }, this.maxConnectTimeGenerator.duration());\n };\n SubscriptionClient.prototype.connect = function () {\n var _this = this;\n this.client = new this.wsImpl(this.url, this.wsProtocols);\n this.checkMaxConnectTimeout();\n this.client.onopen = function () { return __awaiter(_this, void 0, void 0, function () {\n var connectionParams, error_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!(this.status === this.wsImpl.OPEN)) return [3, 4];\n this.clearMaxConnectTimeout();\n this.closedByUser = false;\n this.eventEmitter.emit(this.reconnecting ? 'reconnecting' : 'connecting');\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 4]);\n return [4, this.connectionParams()];\n case 2:\n connectionParams = _a.sent();\n this.sendMessage(undefined, message_types_1.default.GQL_CONNECTION_INIT, connectionParams);\n this.flushUnsentMessagesQueue();\n return [3, 4];\n case 3:\n error_1 = _a.sent();\n this.sendMessage(undefined, message_types_1.default.GQL_CONNECTION_ERROR, error_1);\n this.flushUnsentMessagesQueue();\n return [3, 4];\n case 4: return [2];\n }\n });\n }); };\n this.client.onclose = function () {\n if (!_this.closedByUser) {\n _this.close(false, false);\n }\n };\n this.client.onerror = function (err) {\n _this.eventEmitter.emit('error', err);\n };\n this.client.onmessage = function (_a) {\n var data = _a.data;\n _this.processReceivedData(data);\n };\n };\n SubscriptionClient.prototype.processReceivedData = function (receivedData) {\n var parsedMessage;\n var opId;\n try {\n parsedMessage = JSON.parse(receivedData);\n opId = parsedMessage.id;\n }\n catch (e) {\n throw new Error(\"Message must be JSON-parseable. Got: \" + receivedData);\n }\n if ([message_types_1.default.GQL_DATA,\n message_types_1.default.GQL_COMPLETE,\n message_types_1.default.GQL_ERROR,\n ].indexOf(parsedMessage.type) !== -1 && !this.operations[opId]) {\n this.unsubscribe(opId);\n return;\n }\n switch (parsedMessage.type) {\n case message_types_1.default.GQL_CONNECTION_ERROR:\n if (this.connectionCallback) {\n this.connectionCallback(parsedMessage.payload);\n }\n break;\n case message_types_1.default.GQL_CONNECTION_ACK:\n this.eventEmitter.emit(this.reconnecting ? 'reconnected' : 'connected');\n this.reconnecting = false;\n this.backoff.reset();\n this.maxConnectTimeGenerator.reset();\n if (this.connectionCallback) {\n this.connectionCallback();\n }\n break;\n case message_types_1.default.GQL_COMPLETE:\n this.operations[opId].handler(null, null);\n delete this.operations[opId];\n break;\n case message_types_1.default.GQL_ERROR:\n this.operations[opId].handler(this.formatErrors(parsedMessage.payload), null);\n delete this.operations[opId];\n break;\n case message_types_1.default.GQL_DATA:\n var parsedPayload = !parsedMessage.payload.errors ?\n parsedMessage.payload : __assign({}, parsedMessage.payload, { errors: this.formatErrors(parsedMessage.payload.errors) });\n this.operations[opId].handler(null, parsedPayload);\n break;\n case message_types_1.default.GQL_CONNECTION_KEEP_ALIVE:\n var firstKA = typeof this.wasKeepAliveReceived === 'undefined';\n this.wasKeepAliveReceived = true;\n if (firstKA) {\n this.checkConnection();\n }\n if (this.checkConnectionIntervalId) {\n clearInterval(this.checkConnectionIntervalId);\n this.checkConnection();\n }\n this.checkConnectionIntervalId = setInterval(this.checkConnection.bind(this), this.wsTimeout);\n break;\n default:\n throw new Error('Invalid message type!');\n }\n };\n SubscriptionClient.prototype.unsubscribe = function (opId) {\n if (this.operations[opId]) {\n delete this.operations[opId];\n this.setInactivityTimeout();\n this.sendMessage(opId, message_types_1.default.GQL_STOP, undefined);\n }\n };\n return SubscriptionClient;\n}());\nexports.SubscriptionClient = SubscriptionClient;\n//# sourceMappingURL=client.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar WS_TIMEOUT = 30000;\nexports.WS_TIMEOUT = WS_TIMEOUT;\n//# sourceMappingURL=defaults.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar MessageTypes = (function () {\n function MessageTypes() {\n throw new Error('Static Class');\n }\n MessageTypes.GQL_CONNECTION_INIT = 'connection_init';\n MessageTypes.GQL_CONNECTION_ACK = 'connection_ack';\n MessageTypes.GQL_CONNECTION_ERROR = 'connection_error';\n MessageTypes.GQL_CONNECTION_KEEP_ALIVE = 'ka';\n MessageTypes.GQL_CONNECTION_TERMINATE = 'connection_terminate';\n MessageTypes.GQL_START = 'start';\n MessageTypes.GQL_DATA = 'data';\n MessageTypes.GQL_ERROR = 'error';\n MessageTypes.GQL_COMPLETE = 'complete';\n MessageTypes.GQL_STOP = 'stop';\n MessageTypes.SUBSCRIPTION_START = 'subscription_start';\n MessageTypes.SUBSCRIPTION_DATA = 'subscription_data';\n MessageTypes.SUBSCRIPTION_SUCCESS = 'subscription_success';\n MessageTypes.SUBSCRIPTION_FAIL = 'subscription_fail';\n MessageTypes.SUBSCRIPTION_END = 'subscription_end';\n MessageTypes.INIT = 'init';\n MessageTypes.INIT_SUCCESS = 'init_success';\n MessageTypes.INIT_FAIL = 'init_fail';\n MessageTypes.KEEP_ALIVE = 'keepalive';\n return MessageTypes;\n}());\nexports.default = MessageTypes;\n//# sourceMappingURL=message-types.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar GRAPHQL_WS = 'graphql-ws';\nexports.GRAPHQL_WS = GRAPHQL_WS;\nvar GRAPHQL_SUBSCRIPTIONS = 'graphql-subscriptions';\nexports.GRAPHQL_SUBSCRIPTIONS = GRAPHQL_SUBSCRIPTIONS;\n//# sourceMappingURL=protocol.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isObject(value) {\n return ((value !== null) && (typeof value === 'object'));\n}\nexports.default = isObject;\n//# sourceMappingURL=is-object.js.map","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nfunction isString(value) {\n return typeof value === 'string';\n}\nexports.default = isString;\n//# sourceMappingURL=is-string.js.map","export default function symbolObservablePonyfill(root) {\n\tvar result;\n\tvar Symbol = root.Symbol;\n\n\tif (typeof Symbol === 'function') {\n\t\tif (Symbol.observable) {\n\t\t\tresult = Symbol.observable;\n\t\t} else {\n\t\t\tresult = Symbol('observable');\n\t\t\tSymbol.observable = result;\n\t\t}\n\t} else {\n\t\tresult = '@@observable';\n\t}\n\n\treturn result;\n};\n","/* global window */\nimport ponyfill from './ponyfill.js';\n\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;\n","import { __extends } from 'tslib';\n\nvar genericMessage = \"Invariant Violation\";\r\nvar _a = Object.setPrototypeOf, setPrototypeOf = _a === void 0 ? function (obj, proto) {\r\n obj.__proto__ = proto;\r\n return obj;\r\n} : _a;\r\nvar InvariantError = /** @class */ (function (_super) {\r\n __extends(InvariantError, _super);\r\n function InvariantError(message) {\r\n if (message === void 0) { message = genericMessage; }\r\n var _this = _super.call(this, typeof message === \"number\"\r\n ? genericMessage + \": \" + message + \" (see https://github.com/apollographql/invariant-packages)\"\r\n : message) || this;\r\n _this.framesToPop = 1;\r\n _this.name = genericMessage;\r\n setPrototypeOf(_this, InvariantError.prototype);\r\n return _this;\r\n }\r\n return InvariantError;\r\n}(Error));\r\nfunction invariant(condition, message) {\r\n if (!condition) {\r\n throw new InvariantError(message);\r\n }\r\n}\r\nfunction wrapConsoleMethod(method) {\r\n return function () {\r\n return console[method].apply(console, arguments);\r\n };\r\n}\r\n(function (invariant) {\r\n invariant.warn = wrapConsoleMethod(\"warn\");\r\n invariant.error = wrapConsoleMethod(\"error\");\r\n})(invariant || (invariant = {}));\r\n// Code that uses ts-invariant with rollup-plugin-invariant may want to\r\n// import this process stub to avoid errors evaluating process.env.NODE_ENV.\r\n// However, because most ESM-to-CJS compilers will rewrite the process import\r\n// as tsInvariant.process, which prevents proper replacement by minifiers, we\r\n// also attempt to define the stub globally when it is not already defined.\r\nvar processStub = { env: {} };\r\nif (typeof process === \"object\") {\r\n processStub = process;\r\n}\r\nelse\r\n try {\r\n // Using Function to evaluate this assignment in global scope also escapes\r\n // the strict mode of the current module, thereby allowing the assignment.\r\n // Inspired by https://github.com/facebook/regenerator/pull/369.\r\n Function(\"stub\", \"process = stub\")(processStub);\r\n }\r\n catch (atLeastWeTried) {\r\n // The assignment can fail if a Content Security Policy heavy-handedly\r\n // forbids Function usage. In those environments, developers should take\r\n // extra care to replace process.env.NODE_ENV in their production builds,\r\n // or define an appropriate global.process polyfill.\r\n }\r\nvar invariant$1 = invariant;\n\nexport default invariant$1;\nexport { InvariantError, invariant, processStub as process };\n//# sourceMappingURL=invariant.esm.js.map\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***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","import gql from 'graphql-tag';\n\nfunction _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _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\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 ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\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 _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\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 _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++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\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\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction unwrapExports (x) {\n\treturn x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;\n}\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar index_umd = createCommonjsModule(function (module, exports) {\n (function (global, factory) {\n factory(exports) ;\n })(commonjsGlobal, function (exports) {\n /* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n /**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {boolean} [noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset).\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {boolean} [debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\n\n function throttle(delay, noTrailing, callback, debounceMode) {\n /*\n * After wrapper has stopped being called, this timeout ensures that\n * `callback` is executed at the proper times in `throttle` and `end`\n * debounce modes.\n */\n var timeoutID;\n var cancelled = false; // Keep track of the last time `callback` was executed.\n\n var lastExec = 0; // Function to clear existing timeout\n\n function clearExistingTimeout() {\n if (timeoutID) {\n clearTimeout(timeoutID);\n }\n } // Function to cancel next exec\n\n\n function cancel() {\n clearExistingTimeout();\n cancelled = true;\n } // `noTrailing` defaults to falsy.\n\n\n if (typeof noTrailing !== 'boolean') {\n debounceMode = callback;\n callback = noTrailing;\n noTrailing = undefined;\n }\n /*\n * The `wrapper` function encapsulates all of the throttling / debouncing\n * functionality and when executed will limit the rate at which `callback`\n * is executed.\n */\n\n\n function wrapper() {\n for (var _len = arguments.length, arguments_ = new Array(_len), _key = 0; _key < _len; _key++) {\n arguments_[_key] = arguments[_key];\n }\n\n var self = this;\n var elapsed = Date.now() - lastExec;\n\n if (cancelled) {\n return;\n } // Execute `callback` and update the `lastExec` timestamp.\n\n\n function exec() {\n lastExec = Date.now();\n callback.apply(self, arguments_);\n }\n /*\n * If `debounceMode` is true (at begin) this is used to clear the flag\n * to allow future `callback` executions.\n */\n\n\n function clear() {\n timeoutID = undefined;\n }\n\n if (debounceMode && !timeoutID) {\n /*\n * Since `wrapper` is being called for the first time and\n * `debounceMode` is true (at begin), execute `callback`.\n */\n exec();\n }\n\n clearExistingTimeout();\n\n if (debounceMode === undefined && elapsed > delay) {\n /*\n * In throttle mode, if `delay` time has been exceeded, execute\n * `callback`.\n */\n exec();\n } else if (noTrailing !== true) {\n /*\n * In trailing throttle mode, since `delay` time has not been\n * exceeded, schedule `callback` to execute `delay` ms after most\n * recent execution.\n *\n * If `debounceMode` is true (at begin), schedule `clear` to execute\n * after `delay` ms.\n *\n * If `debounceMode` is false (at end), schedule `callback` to\n * execute after `delay` ms.\n */\n timeoutID = setTimeout(debounceMode ? clear : exec, debounceMode === undefined ? delay - elapsed : delay);\n }\n }\n\n wrapper.cancel = cancel; // Return the wrapper function.\n\n return wrapper;\n }\n /* eslint-disable no-undefined */\n\n /**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {boolean} [atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n *\n * @returns {Function} A new, debounced function.\n */\n\n\n function debounce(delay, atBegin, callback) {\n return callback === undefined ? throttle(delay, atBegin, false) : throttle(delay, callback, atBegin !== false);\n }\n\n exports.debounce = debounce;\n exports.throttle = throttle;\n Object.defineProperty(exports, '__esModule', {\n value: true\n });\n });\n});\nunwrapExports(index_umd);\n\nvar utils = createCommonjsModule(function (module, exports) {\n var Globals = exports.Globals = {};\n\n function factory(action) {\n return function (cb, time) {\n return action(time, cb);\n };\n }\n\n exports.throttle = factory(index_umd.throttle);\n exports.debounce = factory(index_umd.debounce);\n\n exports.getMergedDefinition = function (def) {\n return Globals.Vue.util.mergeOptions({}, def);\n };\n\n exports.reapply = function (options, context) {\n while (typeof options === 'function') {\n options = options.call(context);\n }\n\n return options;\n };\n\n exports.omit = function (obj, properties) {\n return Object.entries(obj).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 1),\n key = _ref2[0];\n\n return !properties.includes(key);\n }).reduce(function (c, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n val = _ref4[1];\n\n c[key] = val;\n return c;\n }, {});\n };\n\n exports.addGqlError = function (error) {\n if (error.graphQLErrors && error.graphQLErrors.length) {\n error.gqlError = error.graphQLErrors[0];\n }\n }; // eslint-disable-next-line @typescript-eslint/no-empty-function\n\n\n exports.noop = function () {};\n});\nvar utils_1 = utils.Globals;\nvar utils_2 = utils.throttle;\nvar utils_3 = utils.debounce;\nvar utils_4 = utils.getMergedDefinition;\nvar utils_5 = utils.reapply;\nvar utils_6 = utils.omit;\nvar utils_7 = utils.addGqlError;\nvar utils_8 = utils.noop;\n\nvar skippAllKeys = {\n query: '_skipAllQueries',\n subscription: '_skipAllSubscriptions'\n};\n\nvar SmartApollo = /*#__PURE__*/function () {\n function SmartApollo(vm, key, options) {\n _classCallCheck(this, SmartApollo);\n\n _defineProperty(this, \"type\", null);\n\n _defineProperty(this, \"vueApolloSpecialKeys\", []);\n\n this.vm = vm;\n this.key = key;\n this.initialOptions = options;\n this.options = Object.assign({}, options);\n this._skip = false;\n this._pollInterval = null;\n this._watchers = [];\n this._destroyed = false;\n this.lastApolloOptions = null;\n }\n\n _createClass(SmartApollo, [{\n key: \"autostart\",\n value: function autostart() {\n var _this = this;\n\n if (typeof this.options.skip === 'function') {\n this._skipWatcher = this.vm.$watch(function () {\n return _this.options.skip.call(_this.vm, _this.vm, _this.key);\n }, this.skipChanged.bind(this), {\n immediate: true,\n deep: this.options.deep\n });\n } else if (!this.options.skip && !this.allSkip) {\n this.start();\n } else {\n this._skip = true;\n }\n\n if (typeof this.options.pollInterval === 'function') {\n this._pollWatcher = this.vm.$watch(this.options.pollInterval.bind(this.vm), this.pollIntervalChanged.bind(this), {\n immediate: true\n });\n }\n }\n }, {\n key: \"pollIntervalChanged\",\n value: function pollIntervalChanged(value, oldValue) {\n if (value !== oldValue) {\n this.pollInterval = value;\n\n if (value == null) {\n this.stopPolling();\n } else {\n this.startPolling(value);\n }\n }\n }\n }, {\n key: \"skipChanged\",\n value: function skipChanged(value, oldValue) {\n if (value !== oldValue) {\n this.skip = value;\n }\n }\n }, {\n key: \"pollInterval\",\n get: function get() {\n return this._pollInterval;\n },\n set: function set(value) {\n this._pollInterval = value;\n }\n }, {\n key: \"skip\",\n get: function get() {\n return this._skip;\n },\n set: function set(value) {\n if (value || this.allSkip) {\n this.stop();\n } else {\n this.start();\n }\n\n this._skip = value;\n }\n }, {\n key: \"allSkip\",\n get: function get() {\n return this.vm.$apollo[skippAllKeys[this.type]];\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (!this._skip) {\n this.stop();\n this.start();\n }\n }\n }, {\n key: \"start\",\n value: function start() {\n var _this2 = this;\n\n this.starting = true; // Reactive options\n\n var _loop = function _loop(_i2, _ref2) {\n var prop = _ref2[_i2];\n\n if (typeof _this2.initialOptions[prop] === 'function') {\n var queryCb = _this2.initialOptions[prop].bind(_this2.vm);\n\n _this2.options[prop] = queryCb();\n\n var cb = function cb(query) {\n _this2.options[prop] = query;\n\n _this2.refresh();\n };\n\n if (!_this2.vm.$isServer) {\n cb = _this2.options.throttle ? utils_2(cb, _this2.options.throttle) : cb;\n cb = _this2.options.debounce ? utils_3(cb, _this2.options.debounce) : cb;\n }\n\n _this2._watchers.push(_this2.vm.$watch(queryCb, cb, {\n deep: _this2.options.deep\n }));\n }\n };\n\n for (var _i2 = 0, _ref2 = ['query', 'document', 'context']; _i2 < _ref2.length; _i2++) {\n _loop(_i2, _ref2);\n } // GraphQL Variables\n\n\n if (typeof this.options.variables === 'function') {\n var cb = this.executeApollo.bind(this);\n\n if (!this.vm.$isServer) {\n cb = this.options.throttle ? utils_2(cb, this.options.throttle) : cb;\n cb = this.options.debounce ? utils_3(cb, this.options.debounce) : cb;\n }\n\n this._watchers.push(this.vm.$watch(function () {\n return typeof _this2.options.variables === 'function' ? _this2.options.variables.call(_this2.vm) : _this2.options.variables;\n }, cb, {\n immediate: true,\n deep: this.options.deep\n }));\n } else {\n this.executeApollo(this.options.variables);\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n for (var _i4 = 0, _this$_watchers2 = this._watchers; _i4 < _this$_watchers2.length; _i4++) {\n var unwatch = _this$_watchers2[_i4];\n unwatch();\n }\n\n if (this.sub) {\n this.sub.unsubscribe();\n this.sub = null;\n }\n }\n }, {\n key: \"generateApolloOptions\",\n value: function generateApolloOptions(variables) {\n var apolloOptions = utils_6(this.options, this.vueApolloSpecialKeys);\n apolloOptions.variables = variables;\n this.lastApolloOptions = apolloOptions;\n return apolloOptions;\n }\n }, {\n key: \"executeApollo\",\n value: function executeApollo(variables) {\n this.starting = false;\n }\n }, {\n key: \"nextResult\",\n value: function nextResult(result) {\n var error = result.error;\n if (error) utils_7(error);\n }\n }, {\n key: \"callHandlers\",\n value: function callHandlers(handlers) {\n var catched = false;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n for (var _i6 = 0; _i6 < handlers.length; _i6++) {\n var handler = handlers[_i6];\n\n if (handler) {\n catched = true;\n var result = handler.apply(this.vm, args);\n\n if (typeof result !== 'undefined' && !result) {\n break;\n }\n }\n }\n\n return catched;\n }\n }, {\n key: \"errorHandler\",\n value: function errorHandler() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return this.callHandlers.apply(this, [[this.options.error, this.vm.$apollo.error, this.vm.$apollo.provider.errorHandler]].concat(args));\n }\n }, {\n key: \"catchError\",\n value: function catchError(error) {\n utils_7(error);\n var catched = this.errorHandler(error, this.vm, this.key, this.type, this.lastApolloOptions);\n if (catched) return;\n\n if (error.graphQLErrors && error.graphQLErrors.length !== 0) {\n console.error(\"GraphQL execution errors for \".concat(this.type, \" '\").concat(this.key, \"'\"));\n\n for (var _i8 = 0, _error$graphQLErrors2 = error.graphQLErrors; _i8 < _error$graphQLErrors2.length; _i8++) {\n var e = _error$graphQLErrors2[_i8];\n console.error(e);\n }\n } else if (error.networkError) {\n console.error(\"Error sending the \".concat(this.type, \" '\").concat(this.key, \"'\"), error.networkError);\n } else {\n console.error(\"[vue-apollo] An error has occurred for \".concat(this.type, \" '\").concat(this.key, \"'\"));\n\n if (Array.isArray(error)) {\n var _console;\n\n (_console = console).error.apply(_console, _toConsumableArray(error));\n } else {\n console.error(error);\n }\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n if (this._destroyed) return;\n this._destroyed = true;\n this.stop();\n\n if (this._skipWatcher) {\n this._skipWatcher();\n }\n }\n }]);\n\n return SmartApollo;\n}();\n\nvar VUE_APOLLO_QUERY_KEYWORDS = ['variables', 'watch', 'update', 'result', 'error', 'loadingKey', 'watchLoading', 'skip', 'throttle', 'debounce', 'subscribeToMore', 'prefetch', 'manual'];\n\nvar SmartQuery = /*#__PURE__*/function (_SmartApollo) {\n _inherits(SmartQuery, _SmartApollo);\n\n var _super = _createSuper(SmartQuery);\n\n function SmartQuery(vm, key, options) {\n var _this;\n\n var autostart = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n\n _classCallCheck(this, SmartQuery);\n\n // Add reactive data related to the query\n if (vm.$data.$apolloData && !vm.$data.$apolloData.queries[key]) {\n vm.$set(vm.$data.$apolloData.queries, key, {\n loading: false\n });\n }\n\n _this = _super.call(this, vm, key, options);\n\n _defineProperty(_assertThisInitialized(_this), \"type\", 'query');\n\n _defineProperty(_assertThisInitialized(_this), \"vueApolloSpecialKeys\", VUE_APOLLO_QUERY_KEYWORDS);\n\n _defineProperty(_assertThisInitialized(_this), \"_loading\", false);\n\n _defineProperty(_assertThisInitialized(_this), \"_linkedSubscriptions\", []);\n\n if (vm.$isServer) {\n _this.firstRun = new Promise(function (resolve, reject) {\n _this._firstRunResolve = resolve;\n _this._firstRunReject = reject;\n });\n }\n\n if (_this.vm.$isServer) {\n _this.options.fetchPolicy = 'network-only';\n }\n\n if (!options.manual) {\n _this.hasDataField = Object.prototype.hasOwnProperty.call(_this.vm.$data, key);\n\n if (_this.hasDataField) {\n Object.defineProperty(_this.vm.$data.$apolloData.data, key, {\n get: function get() {\n return _this.vm.$data[key];\n },\n enumerable: true,\n configurable: true\n });\n } else {\n Object.defineProperty(_this.vm.$data, key, {\n get: function get() {\n return _this.vm.$data.$apolloData.data[key];\n },\n enumerable: true,\n configurable: true\n });\n }\n }\n\n if (autostart) {\n _this.autostart();\n }\n\n return _this;\n }\n\n _createClass(SmartQuery, [{\n key: \"client\",\n get: function get() {\n return this.vm.$apollo.getClient(this.options);\n }\n }, {\n key: \"loading\",\n get: function get() {\n return this.vm.$data.$apolloData && this.vm.$data.$apolloData.queries[this.key] ? this.vm.$data.$apolloData.queries[this.key].loading : this._loading;\n },\n set: function set(value) {\n if (this._loading !== value) {\n this._loading = value;\n\n if (this.vm.$data.$apolloData && this.vm.$data.$apolloData.queries[this.key]) {\n this.vm.$data.$apolloData.queries[this.key].loading = value;\n this.vm.$data.$apolloData.loading += value ? 1 : -1;\n }\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n _get(_getPrototypeOf(SmartQuery.prototype), \"stop\", this).call(this);\n\n this.loadingDone();\n\n if (this.observer) {\n this.observer.stopPolling();\n this.observer = null;\n }\n }\n }, {\n key: \"generateApolloOptions\",\n value: function generateApolloOptions(variables) {\n var apolloOptions = _get(_getPrototypeOf(SmartQuery.prototype), \"generateApolloOptions\", this).call(this, variables);\n\n if (this.vm.$isServer) {\n // Don't poll on the server, that would run indefinitely\n delete apolloOptions.pollInterval;\n }\n\n return apolloOptions;\n }\n }, {\n key: \"executeApollo\",\n value: function executeApollo(variables) {\n var variablesJson = JSON.stringify(variables);\n\n if (this.sub) {\n if (variablesJson === this.previousVariablesJson) {\n return;\n }\n\n this.sub.unsubscribe(); // Subscribe to more subs\n\n for (var _i2 = 0, _this$_linkedSubscrip2 = this._linkedSubscriptions; _i2 < _this$_linkedSubscrip2.length; _i2++) {\n var sub = _this$_linkedSubscrip2[_i2];\n sub.stop();\n }\n }\n\n this.previousVariablesJson = variablesJson; // Create observer\n\n this.observer = this.vm.$apollo.watchQuery(this.generateApolloOptions(variables));\n this.startQuerySubscription();\n\n if (this.options.fetchPolicy !== 'no-cache' || this.options.notifyOnNetworkStatusChange) {\n var currentResult = this.retrieveCurrentResult();\n\n if (this.options.notifyOnNetworkStatusChange || // Initial call of next result when it's not loading (for Apollo Client 3)\n this.observer.getCurrentResult && !currentResult.loading) {\n this.nextResult(currentResult);\n }\n }\n\n _get(_getPrototypeOf(SmartQuery.prototype), \"executeApollo\", this).call(this, variables); // Subscribe to more subs\n\n\n for (var _i4 = 0, _this$_linkedSubscrip4 = this._linkedSubscriptions; _i4 < _this$_linkedSubscrip4.length; _i4++) {\n var _sub = _this$_linkedSubscrip4[_i4];\n\n _sub.start();\n }\n }\n }, {\n key: \"startQuerySubscription\",\n value: function startQuerySubscription() {\n if (this.sub && !this.sub.closed) return; // Create subscription\n\n this.sub = this.observer.subscribe({\n next: this.nextResult.bind(this),\n error: this.catchError.bind(this)\n });\n }\n /**\n * May update loading state\n */\n\n }, {\n key: \"retrieveCurrentResult\",\n value: function retrieveCurrentResult() {\n var force = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var currentResult = this.observer.getCurrentResult ? this.observer.getCurrentResult() : this.observer.currentResult();\n\n if (force || currentResult.loading) {\n if (!this.loading) {\n this.applyLoadingModifier(1);\n }\n\n this.loading = true;\n }\n\n return currentResult;\n }\n }, {\n key: \"nextResult\",\n value: function nextResult(result) {\n _get(_getPrototypeOf(SmartQuery.prototype), \"nextResult\", this).call(this, result);\n\n var data = result.data,\n loading = result.loading,\n error = result.error,\n errors = result.errors;\n var anyErrors = errors && errors.length;\n\n if (error || anyErrors) {\n this.firstRunReject(error);\n }\n\n if (!loading) {\n this.loadingDone();\n } // If `errorPolicy` is set to `all`, an error won't be thrown\n // Instead result will have an `errors` array of GraphQL Errors\n // so we need to reconstruct an error object similar to the normal one\n\n\n if (anyErrors) {\n var e = new Error(\"GraphQL error: \".concat(errors.map(function (e) {\n return e.message;\n }).join(' | ')));\n Object.assign(e, {\n graphQLErrors: errors,\n networkError: null\n }); // We skip query catchError logic\n // as we only want to dispatch the error\n\n _get(_getPrototypeOf(SmartQuery.prototype), \"catchError\", this).call(this, e);\n }\n\n if (this.observer.options.errorPolicy === 'none' && (error || anyErrors)) {\n // Don't apply result\n return;\n }\n\n var hasResultCallback = typeof this.options.result === 'function';\n\n if (data == null) ; else if (!this.options.manual) {\n if (typeof this.options.update === 'function') {\n this.setData(this.options.update.call(this.vm, data));\n } else if (typeof data[this.key] === 'undefined' && Object.keys(data).length) {\n console.error(\"Missing \".concat(this.key, \" attribute on result\"), data);\n } else {\n this.setData(data[this.key]);\n }\n } else if (!hasResultCallback) {\n console.error(\"\".concat(this.key, \" query must have a 'result' hook in manual mode\"));\n }\n\n if (hasResultCallback) {\n this.options.result.call(this.vm, result, this.key);\n }\n }\n }, {\n key: \"setData\",\n value: function setData(value) {\n this.vm.$set(this.hasDataField ? this.vm.$data : this.vm.$data.$apolloData.data, this.key, value);\n }\n }, {\n key: \"catchError\",\n value: function catchError(error) {\n _get(_getPrototypeOf(SmartQuery.prototype), \"catchError\", this).call(this, error);\n\n this.firstRunReject(error);\n this.loadingDone(error);\n this.nextResult(this.observer.getCurrentResult ? this.observer.getCurrentResult() : this.observer.currentResult()); // The observable closes the sub if an error occurs\n\n this.resubscribeToQuery();\n }\n }, {\n key: \"resubscribeToQuery\",\n value: function resubscribeToQuery() {\n var lastError = this.observer.getLastError();\n var lastResult = this.observer.getLastResult();\n this.observer.resetLastResults();\n this.startQuerySubscription();\n Object.assign(this.observer, {\n lastError: lastError,\n lastResult: lastResult\n });\n }\n }, {\n key: \"loadingKey\",\n get: function get() {\n return this.options.loadingKey || this.vm.$apollo.loadingKey;\n }\n }, {\n key: \"watchLoading\",\n value: function watchLoading() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return this.callHandlers.apply(this, [[this.options.watchLoading, this.vm.$apollo.watchLoading, this.vm.$apollo.provider.watchLoading]].concat(args, [this]));\n }\n }, {\n key: \"applyLoadingModifier\",\n value: function applyLoadingModifier(value) {\n var loadingKey = this.loadingKey;\n\n if (loadingKey && typeof this.vm[loadingKey] === 'number') {\n this.vm[loadingKey] += value;\n }\n\n this.watchLoading(value === 1, value);\n }\n }, {\n key: \"loadingDone\",\n value: function loadingDone() {\n var error = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n if (this.loading) {\n this.applyLoadingModifier(-1);\n }\n\n this.loading = false;\n\n if (!error) {\n this.firstRunResolve();\n }\n }\n }, {\n key: \"fetchMore\",\n value: function fetchMore() {\n var _this2 = this;\n\n if (this.observer) {\n var _this$observer;\n\n this.retrieveCurrentResult(true);\n return (_this$observer = this.observer).fetchMore.apply(_this$observer, arguments).then(function (result) {\n if (!result.loading) {\n _this2.loadingDone();\n }\n\n return result;\n });\n }\n }\n }, {\n key: \"subscribeToMore\",\n value: function subscribeToMore() {\n if (this.observer) {\n var _this$observer2;\n\n return {\n unsubscribe: (_this$observer2 = this.observer).subscribeToMore.apply(_this$observer2, arguments)\n };\n }\n }\n }, {\n key: \"refetch\",\n value: function refetch(variables) {\n var _this3 = this;\n\n variables && (this.options.variables = variables);\n\n if (this.observer) {\n var result = this.observer.refetch(variables).then(function (result) {\n if (!result.loading) {\n _this3.loadingDone();\n }\n\n return result;\n });\n this.retrieveCurrentResult();\n return result;\n }\n }\n }, {\n key: \"setVariables\",\n value: function setVariables(variables, tryFetch) {\n this.options.variables = variables;\n\n if (this.observer) {\n var result = this.observer.setVariables(variables, tryFetch);\n this.retrieveCurrentResult();\n return result;\n }\n }\n }, {\n key: \"setOptions\",\n value: function setOptions(options) {\n Object.assign(this.options, options);\n\n if (this.observer) {\n var result = this.observer.setOptions(options);\n this.retrieveCurrentResult();\n return result;\n }\n }\n }, {\n key: \"startPolling\",\n value: function startPolling() {\n if (this.observer) {\n var _this$observer3;\n\n return (_this$observer3 = this.observer).startPolling.apply(_this$observer3, arguments);\n }\n }\n }, {\n key: \"stopPolling\",\n value: function stopPolling() {\n if (this.observer) {\n var _this$observer4;\n\n return (_this$observer4 = this.observer).stopPolling.apply(_this$observer4, arguments);\n }\n }\n }, {\n key: \"firstRunResolve\",\n value: function firstRunResolve() {\n if (this._firstRunResolve) {\n this._firstRunResolve();\n\n this._firstRunResolve = null;\n }\n }\n }, {\n key: \"firstRunReject\",\n value: function firstRunReject(error) {\n if (this._firstRunReject) {\n this._firstRunReject(error);\n\n this._firstRunReject = null;\n }\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n _get(_getPrototypeOf(SmartQuery.prototype), \"destroy\", this).call(this);\n\n if (this.loading) {\n this.watchLoading(false, -1);\n }\n\n this.loading = false;\n }\n }]);\n\n return SmartQuery;\n}(SmartApollo);\n\nvar SmartSubscription = /*#__PURE__*/function (_SmartApollo) {\n _inherits(SmartSubscription, _SmartApollo);\n\n var _super = _createSuper(SmartSubscription);\n\n function SmartSubscription(vm, key, options) {\n var _this;\n\n var autostart = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n\n _classCallCheck(this, SmartSubscription);\n\n _this = _super.call(this, vm, key, options);\n\n _defineProperty(_assertThisInitialized(_this), \"type\", 'subscription');\n\n _defineProperty(_assertThisInitialized(_this), \"vueApolloSpecialKeys\", ['variables', 'result', 'error', 'throttle', 'debounce', 'linkedQuery']);\n\n if (autostart) {\n _this.autostart();\n }\n\n return _this;\n }\n\n _createClass(SmartSubscription, [{\n key: \"generateApolloOptions\",\n value: function generateApolloOptions(variables) {\n var apolloOptions = _get(_getPrototypeOf(SmartSubscription.prototype), \"generateApolloOptions\", this).call(this, variables);\n\n apolloOptions.onError = this.catchError.bind(this);\n return apolloOptions;\n }\n }, {\n key: \"executeApollo\",\n value: function executeApollo(variables) {\n var variablesJson = JSON.stringify(variables);\n\n if (this.sub) {\n // do nothing if subscription is already running using exactly the same variables\n if (variablesJson === this.previousVariablesJson) {\n return;\n }\n\n this.sub.unsubscribe();\n }\n\n this.previousVariablesJson = variablesJson;\n var apolloOptions = this.generateApolloOptions(variables);\n\n if (typeof apolloOptions.updateQuery === 'function') {\n apolloOptions.updateQuery = apolloOptions.updateQuery.bind(this.vm);\n }\n\n if (this.options.linkedQuery) {\n if (typeof this.options.result === 'function') {\n var rcb = this.options.result.bind(this.vm);\n var ucb = apolloOptions.updateQuery && apolloOptions.updateQuery.bind(this.vm);\n\n apolloOptions.updateQuery = function () {\n rcb.apply(void 0, arguments);\n return ucb && ucb.apply(void 0, arguments);\n };\n }\n\n this.sub = this.options.linkedQuery.subscribeToMore(apolloOptions);\n } else {\n // Create observer\n this.observer = this.vm.$apollo.subscribe(apolloOptions); // Create subscription\n\n this.sub = this.observer.subscribe({\n next: this.nextResult.bind(this),\n error: this.catchError.bind(this)\n });\n }\n\n _get(_getPrototypeOf(SmartSubscription.prototype), \"executeApollo\", this).call(this, variables);\n }\n }, {\n key: \"nextResult\",\n value: function nextResult(data) {\n _get(_getPrototypeOf(SmartSubscription.prototype), \"nextResult\", this).call(this, data);\n\n if (typeof this.options.result === 'function') {\n this.options.result.call(this.vm, data, this.key);\n }\n }\n }, {\n key: \"catchError\",\n value: function catchError(error) {\n _get(_getPrototypeOf(SmartSubscription.prototype), \"catchError\", this).call(this, error); // Restart the subscription\n\n\n if (!this.skip) {\n this.stop();\n this.start();\n }\n }\n }]);\n\n return SmartSubscription;\n}(SmartApollo);\n\nvar DollarApollo = /*#__PURE__*/function () {\n function DollarApollo(vm) {\n _classCallCheck(this, DollarApollo);\n\n this._apolloSubscriptions = [];\n this._watchers = [];\n this.vm = vm;\n this.queries = {};\n this.subscriptions = {};\n this.client = undefined;\n this.loadingKey = undefined;\n this.error = undefined;\n }\n\n _createClass(DollarApollo, [{\n key: \"provider\",\n get: function get() {\n return this.vm.$apolloProvider;\n }\n }, {\n key: \"getClient\",\n value: function getClient() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : null;\n\n if (!options || !options.client) {\n if (_typeof(this.client) === 'object') {\n return this.client;\n }\n\n if (this.client) {\n if (!this.provider.clients) {\n throw new Error('[vue-apollo] Missing \\'clients\\' options in \\'apolloProvider\\'');\n } else {\n var _client = this.provider.clients[this.client];\n\n if (!_client) {\n throw new Error(\"[vue-apollo] Missing client '\".concat(this.client, \"' in 'apolloProvider'\"));\n }\n\n return _client;\n }\n }\n\n return this.provider.defaultClient;\n }\n\n var client = this.provider.clients[options.client];\n\n if (!client) {\n throw new Error(\"[vue-apollo] Missing client '\".concat(options.client, \"' in 'apolloProvider'\"));\n }\n\n return client;\n }\n }, {\n key: \"query\",\n value: function query(options) {\n return this.getClient(options).query(options);\n }\n }, {\n key: \"watchQuery\",\n value: function watchQuery(options) {\n var _this = this;\n\n var observable = this.getClient(options).watchQuery(options);\n\n var _subscribe = observable.subscribe.bind(observable);\n\n observable.subscribe = function (options) {\n var sub = _subscribe(options);\n\n _this._apolloSubscriptions.push(sub);\n\n return sub;\n };\n\n return observable;\n }\n }, {\n key: \"mutate\",\n value: function mutate(options) {\n return this.getClient(options).mutate(options);\n }\n }, {\n key: \"subscribe\",\n value: function subscribe(options) {\n var _this2 = this;\n\n if (!this.vm.$isServer) {\n var observable = this.getClient(options).subscribe(options);\n\n var _subscribe = observable.subscribe.bind(observable);\n\n observable.subscribe = function (options) {\n var sub = _subscribe(options);\n\n _this2._apolloSubscriptions.push(sub);\n\n return sub;\n };\n\n return observable;\n }\n }\n }, {\n key: \"loading\",\n get: function get() {\n return this.vm.$data.$apolloData.loading !== 0;\n }\n }, {\n key: \"data\",\n get: function get() {\n return this.vm.$data.$apolloData.data;\n }\n }, {\n key: \"addSmartQuery\",\n value: function addSmartQuery(key, options) {\n var _this3 = this;\n\n var finalOptions = utils_5(options, this.vm); // Simple query\n\n if (!finalOptions.query) {\n var query = finalOptions;\n finalOptions = {\n query: query\n };\n }\n\n var apollo = this.vm.$options.apollo;\n var defaultOptions = this.provider.defaultOptions;\n var $query;\n\n if (defaultOptions && defaultOptions.$query) {\n $query = defaultOptions.$query;\n }\n\n if (apollo && apollo.$query) {\n $query = _objectSpread2(_objectSpread2({}, $query || {}), apollo.$query);\n }\n\n if ($query) {\n // Also replaces 'undefined' values\n for (var _key in $query) {\n if (typeof finalOptions[_key] === 'undefined') {\n finalOptions[_key] = $query[_key];\n }\n }\n }\n\n var smart = this.queries[key] = new SmartQuery(this.vm, key, finalOptions, false);\n\n if (!this.vm.$isServer || finalOptions.prefetch !== false) {\n smart.autostart();\n }\n\n if (!this.vm.$isServer) {\n var subs = finalOptions.subscribeToMore;\n\n if (subs) {\n if (Array.isArray(subs)) {\n subs.forEach(function (sub, index) {\n _this3.addSmartSubscription(\"\".concat(key).concat(index), _objectSpread2(_objectSpread2({}, sub), {}, {\n linkedQuery: smart\n }));\n });\n } else {\n this.addSmartSubscription(key, _objectSpread2(_objectSpread2({}, subs), {}, {\n linkedQuery: smart\n }));\n }\n }\n }\n\n return smart;\n }\n }, {\n key: \"addSmartSubscription\",\n value: function addSmartSubscription(key, options) {\n if (!this.vm.$isServer) {\n options = utils_5(options, this.vm);\n var smart = this.subscriptions[key] = new SmartSubscription(this.vm, key, options, false);\n smart.autostart();\n\n if (options.linkedQuery) {\n options.linkedQuery._linkedSubscriptions.push(smart);\n }\n\n return smart;\n }\n }\n }, {\n key: \"defineReactiveSetter\",\n value: function defineReactiveSetter(key, func, deep) {\n var _this4 = this;\n\n this._watchers.push(this.vm.$watch(func, function (value) {\n _this4[key] = value;\n }, {\n immediate: true,\n deep: deep\n }));\n } // eslint-disable-next-line accessor-pairs\n\n }, {\n key: \"skipAllQueries\",\n set: function set(value) {\n this._skipAllQueries = value;\n\n for (var key in this.queries) {\n this.queries[key].skip = value;\n }\n } // eslint-disable-next-line accessor-pairs\n\n }, {\n key: \"skipAllSubscriptions\",\n set: function set(value) {\n this._skipAllSubscriptions = value;\n\n for (var key in this.subscriptions) {\n this.subscriptions[key].skip = value;\n }\n } // eslint-disable-next-line accessor-pairs\n\n }, {\n key: \"skipAll\",\n set: function set(value) {\n this.skipAllQueries = value;\n this.skipAllSubscriptions = value;\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n for (var _i2 = 0, _this$_watchers2 = this._watchers; _i2 < _this$_watchers2.length; _i2++) {\n var unwatch = _this$_watchers2[_i2];\n unwatch();\n }\n\n for (var key in this.queries) {\n this.queries[key].destroy();\n }\n\n for (var _key2 in this.subscriptions) {\n this.subscriptions[_key2].destroy();\n }\n\n this._apolloSubscriptions.forEach(function (sub) {\n sub.unsubscribe();\n });\n }\n }]);\n\n return DollarApollo;\n}();\n\nvar ApolloProvider = /*#__PURE__*/function () {\n function ApolloProvider(options) {\n _classCallCheck(this, ApolloProvider);\n\n if (!options) {\n throw new Error('Options argument required');\n }\n\n this.clients = options.clients || {};\n\n if (options.defaultClient) {\n this.clients.defaultClient = this.defaultClient = options.defaultClient;\n }\n\n this.defaultOptions = options.defaultOptions;\n this.watchLoading = options.watchLoading;\n this.errorHandler = options.errorHandler;\n this.prefetch = options.prefetch;\n }\n\n _createClass(ApolloProvider, [{\n key: \"provide\",\n value: function provide() {\n var key = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '$apolloProvider';\n console.warn('.provide() is deprecated. Use the \\'apolloProvider\\' option instead with the provider object directly.');\n return _defineProperty({}, key, this);\n }\n }]);\n\n return ApolloProvider;\n}();\n\nfunction isDataFilled(data) {\n return data && Object.keys(data).length > 0;\n}\n\nvar CApolloQuery = {\n name: 'ApolloQuery',\n provide: function provide() {\n return {\n getDollarApollo: this.getDollarApollo,\n getApolloQuery: this.getApolloQuery\n };\n },\n props: {\n query: {\n type: [Function, Object],\n required: true\n },\n variables: {\n type: Object,\n \"default\": undefined\n },\n fetchPolicy: {\n type: String,\n \"default\": undefined\n },\n pollInterval: {\n type: Number,\n \"default\": undefined\n },\n notifyOnNetworkStatusChange: {\n type: Boolean,\n \"default\": undefined\n },\n context: {\n type: Object,\n \"default\": undefined\n },\n update: {\n type: Function,\n \"default\": function _default(data) {\n return data;\n }\n },\n skip: {\n type: Boolean,\n \"default\": false\n },\n debounce: {\n type: Number,\n \"default\": 0\n },\n throttle: {\n type: Number,\n \"default\": 0\n },\n clientId: {\n type: String,\n \"default\": undefined\n },\n deep: {\n type: Boolean,\n \"default\": undefined\n },\n tag: {\n type: String,\n \"default\": 'div'\n },\n prefetch: {\n type: Boolean,\n \"default\": true\n },\n options: {\n type: Object,\n \"default\": function _default() {\n return {};\n }\n }\n },\n data: function data() {\n return {\n result: {\n data: null,\n loading: false,\n networkStatus: 7,\n error: null\n },\n times: 0\n };\n },\n watch: {\n fetchPolicy: function fetchPolicy(value) {\n this.$apollo.queries.query.setOptions({\n fetchPolicy: value\n });\n },\n pollInterval: function pollInterval(value) {\n this.$apollo.queries.query.setOptions({\n pollInterval: value\n });\n },\n notifyOnNetworkStatusChange: function notifyOnNetworkStatusChange(value) {\n this.$apollo.queries.query.setOptions({\n notifyOnNetworkStatusChange: value\n });\n },\n '$data.$apolloData.loading': function $data$apolloDataLoading(value) {\n this.$emit('loading', !!value);\n }\n },\n apollo: {\n $client: function $client() {\n return this.clientId;\n },\n query: function query() {\n return _objectSpread2(_objectSpread2({\n query: function query() {\n if (typeof this.query === 'function') {\n return this.query(gql);\n }\n\n return this.query;\n },\n variables: function variables() {\n return this.variables;\n },\n fetchPolicy: this.fetchPolicy,\n pollInterval: this.pollInterval,\n debounce: this.debounce,\n throttle: this.throttle,\n notifyOnNetworkStatusChange: this.notifyOnNetworkStatusChange,\n context: function context() {\n return this.context;\n },\n skip: function skip() {\n return this.skip;\n },\n deep: this.deep,\n prefetch: this.prefetch\n }, this.options), {}, {\n manual: true,\n result: function result(_result) {\n var _result2 = _result,\n errors = _result2.errors,\n loading = _result2.loading,\n networkStatus = _result2.networkStatus;\n var _result3 = _result,\n error = _result3.error;\n _result = Object.assign({}, _result);\n\n if (errors && errors.length) {\n error = new Error(\"Apollo errors occurred (\".concat(errors.length, \")\"));\n error.graphQLErrors = errors;\n }\n\n var data = {};\n\n if (loading) {\n Object.assign(data, this.$_previousData, _result.data);\n } else if (error) {\n Object.assign(data, this.$apollo.queries.query.observer.getLastResult() || {}, _result.data);\n } else {\n data = _result.data;\n this.$_previousData = _result.data;\n }\n\n var dataNotEmpty = isDataFilled(data);\n this.result = {\n data: dataNotEmpty ? this.update(data) : undefined,\n fullData: dataNotEmpty ? data : undefined,\n loading: loading,\n error: error,\n networkStatus: networkStatus\n };\n this.times = ++this.$_times;\n this.$emit('result', this.result);\n },\n error: function error(_error) {\n this.result.loading = false;\n this.result.error = _error;\n this.$emit('error', _error);\n }\n });\n }\n },\n created: function created() {\n this.$_times = 0;\n },\n methods: {\n getDollarApollo: function getDollarApollo() {\n return this.$apollo;\n },\n getApolloQuery: function getApolloQuery() {\n return this.$apollo.queries.query;\n }\n },\n render: function render(h) {\n var result = this.$scopedSlots[\"default\"]({\n result: this.result,\n times: this.times,\n query: this.$apollo.queries.query,\n isLoading: this.$apolloData.loading,\n gqlError: this.result && this.result.error && this.result.error.gqlError\n });\n\n if (Array.isArray(result)) {\n result = result.concat(this.$slots[\"default\"]);\n } else {\n result = [result].concat(this.$slots[\"default\"]);\n }\n\n return this.tag ? h(this.tag, result) : result[0];\n }\n};\n\nvar uid = 0;\nvar CApolloSubscribeToMore = {\n name: 'ApolloSubscribeToMore',\n inject: ['getDollarApollo', 'getApolloQuery'],\n props: {\n document: {\n type: [Function, Object],\n required: true\n },\n variables: {\n type: Object,\n \"default\": undefined\n },\n updateQuery: {\n type: Function,\n \"default\": undefined\n }\n },\n watch: {\n document: 'refresh',\n variables: 'refresh'\n },\n created: function created() {\n this.$_key = \"sub_component_\".concat(uid++);\n },\n mounted: function mounted() {\n this.refresh();\n },\n beforeDestroy: function beforeDestroy() {\n this.destroy();\n },\n methods: {\n destroy: function destroy() {\n if (this.$_sub) {\n this.$_sub.destroy();\n }\n },\n refresh: function refresh() {\n this.destroy();\n var document = this.document;\n\n if (typeof document === 'function') {\n document = document(gql);\n }\n\n this.$_sub = this.getDollarApollo().addSmartSubscription(this.$_key, {\n document: document,\n variables: this.variables,\n updateQuery: this.updateQuery,\n linkedQuery: this.getApolloQuery()\n });\n }\n },\n render: function render(h) {\n return null;\n }\n};\n\nvar CApolloMutation = {\n props: {\n mutation: {\n type: [Function, Object],\n required: true\n },\n variables: {\n type: Object,\n \"default\": undefined\n },\n optimisticResponse: {\n type: Object,\n \"default\": undefined\n },\n update: {\n type: Function,\n \"default\": undefined\n },\n refetchQueries: {\n type: Function,\n \"default\": undefined\n },\n clientId: {\n type: String,\n \"default\": undefined\n },\n tag: {\n type: String,\n \"default\": 'div'\n },\n context: {\n type: Object,\n \"default\": undefined\n }\n },\n data: function data() {\n return {\n loading: false,\n error: null\n };\n },\n watch: {\n loading: function loading(value) {\n this.$emit('loading', value);\n }\n },\n methods: {\n mutate: function mutate(options) {\n var _this = this;\n\n this.loading = true;\n this.error = null;\n var mutation = this.mutation;\n\n if (typeof mutation === 'function') {\n mutation = mutation(gql);\n }\n\n return this.$apollo.mutate(_objectSpread2({\n mutation: mutation,\n client: this.clientId,\n variables: this.variables,\n optimisticResponse: this.optimisticResponse,\n update: this.update,\n refetchQueries: this.refetchQueries,\n context: this.context\n }, options)).then(function (result) {\n _this.$emit('done', result);\n\n _this.loading = false;\n })[\"catch\"](function (e) {\n utils_7(e);\n _this.error = e;\n\n _this.$emit('error', e);\n\n _this.loading = false;\n });\n }\n },\n render: function render(h) {\n var result = this.$scopedSlots[\"default\"]({\n mutate: this.mutate,\n loading: this.loading,\n error: this.error,\n gqlError: this.error && this.error.gqlError\n });\n\n if (Array.isArray(result)) {\n result = result.concat(this.$slots[\"default\"]);\n } else {\n result = [result].concat(this.$slots[\"default\"]);\n }\n\n return this.tag ? h(this.tag, result) : result[0];\n }\n};\n\nfunction hasProperty(holder, key) {\n return typeof holder !== 'undefined' && Object.prototype.hasOwnProperty.call(holder, key);\n}\n\nfunction initProvider() {\n var options = this.$options; // ApolloProvider injection\n\n var optionValue = options.apolloProvider;\n\n if (optionValue) {\n this.$apolloProvider = typeof optionValue === 'function' ? optionValue() : optionValue;\n } else if (options.parent && options.parent.$apolloProvider) {\n this.$apolloProvider = options.parent.$apolloProvider;\n } else if (options.provide) {\n // TODO remove\n // Temporary retro-compatibility\n var provided = typeof options.provide === 'function' ? options.provide.call(this) : options.provide;\n\n if (provided && provided.$apolloProvider) {\n this.$apolloProvider = provided.$apolloProvider;\n }\n }\n}\n\nfunction proxyData() {\n var _this = this;\n\n this.$_apolloInitData = {};\n var apollo = this.$options.apollo;\n\n if (apollo) {\n var _loop = function _loop(key) {\n if (key.charAt(0) !== '$') {\n var options = apollo[key]; // Property proxy\n\n if (!options.manual && !hasProperty(_this.$options.props, key) && !hasProperty(_this.$options.computed, key) && !hasProperty(_this.$options.methods, key)) {\n Object.defineProperty(_this, key, {\n get: function get() {\n return _this.$data.$apolloData.data[key];\n },\n // For component class constructor\n set: function set(value) {\n return _this.$_apolloInitData[key] = value;\n },\n enumerable: true,\n configurable: true\n });\n }\n }\n };\n\n // watchQuery\n for (var key in apollo) {\n _loop(key);\n }\n }\n}\n\nfunction launch() {\n var _this2 = this;\n\n var apolloProvider = this.$apolloProvider;\n if (this._apolloLaunched || !apolloProvider) return;\n this._apolloLaunched = true; // Prepare properties\n\n var apollo = this.$options.apollo;\n\n if (apollo) {\n this.$_apolloPromises = [];\n\n if (!apollo.$init) {\n apollo.$init = true; // Default options applied to `apollo` options\n\n if (apolloProvider.defaultOptions) {\n apollo = this.$options.apollo = Object.assign({}, apolloProvider.defaultOptions, apollo);\n }\n }\n\n defineReactiveSetter(this.$apollo, 'skipAll', apollo.$skipAll, apollo.$deep);\n defineReactiveSetter(this.$apollo, 'skipAllQueries', apollo.$skipAllQueries, apollo.$deep);\n defineReactiveSetter(this.$apollo, 'skipAllSubscriptions', apollo.$skipAllSubscriptions, apollo.$deep);\n defineReactiveSetter(this.$apollo, 'client', apollo.$client, apollo.$deep);\n defineReactiveSetter(this.$apollo, 'loadingKey', apollo.$loadingKey, apollo.$deep);\n defineReactiveSetter(this.$apollo, 'error', apollo.$error, apollo.$deep);\n defineReactiveSetter(this.$apollo, 'watchLoading', apollo.$watchLoading, apollo.$deep); // Apollo Data\n\n Object.defineProperty(this, '$apolloData', {\n get: function get() {\n return _this2.$data.$apolloData;\n },\n enumerable: true,\n configurable: true\n }); // watchQuery\n\n for (var key in apollo) {\n if (key.charAt(0) !== '$') {\n var options = apollo[key];\n var smart = this.$apollo.addSmartQuery(key, options);\n\n if (this.$isServer) {\n options = utils_5(options, this);\n\n if (apolloProvider.prefetch !== false && options.prefetch !== false && apollo.$prefetch !== false && !smart.skip) {\n this.$_apolloPromises.push(smart.firstRun);\n }\n }\n }\n }\n\n if (apollo.subscribe) {\n utils_1.Vue.util.warn('vue-apollo -> `subscribe` option is deprecated. Use the `$subscribe` option instead.');\n }\n\n if (apollo.$subscribe) {\n for (var _key in apollo.$subscribe) {\n this.$apollo.addSmartSubscription(_key, apollo.$subscribe[_key]);\n }\n }\n }\n}\n\nfunction defineReactiveSetter($apollo, key, value, deep) {\n if (typeof value !== 'undefined') {\n if (typeof value === 'function') {\n $apollo.defineReactiveSetter(key, value, deep);\n } else {\n $apollo[key] = value;\n }\n }\n}\n\nfunction destroy() {\n if (this.$_apollo) {\n this.$_apollo.destroy();\n }\n}\n\nfunction installMixin(Vue, vueVersion) {\n Vue.mixin(_objectSpread2(_objectSpread2(_objectSpread2({}, vueVersion === '1' ? {\n init: initProvider\n } : {}), vueVersion === '2' ? {\n data: function data() {\n return {\n $apolloData: {\n queries: {},\n loading: 0,\n data: this.$_apolloInitData\n }\n };\n },\n beforeCreate: function beforeCreate() {\n initProvider.call(this);\n proxyData.call(this);\n },\n serverPrefetch: function serverPrefetch() {\n var _this3 = this;\n\n if (this.$_apolloPromises) {\n return Promise.all(this.$_apolloPromises).then(function () {\n destroy.call(_this3);\n })[\"catch\"](function (e) {\n destroy.call(_this3);\n return Promise.reject(e);\n });\n }\n }\n } : {}), {}, {\n created: launch,\n destroyed: destroy\n }));\n}\n\nvar keywords = ['$subscribe'];\nfunction install(Vue, options) {\n if (install.installed) return;\n install.installed = true;\n utils_1.Vue = Vue;\n var vueVersion = Vue.version.substr(0, Vue.version.indexOf('.')); // Options merging\n\n var merge = Vue.config.optionMergeStrategies.methods;\n\n Vue.config.optionMergeStrategies.apollo = function (toVal, fromVal, vm) {\n if (!toVal) return fromVal;\n if (!fromVal) return toVal;\n var toData = Object.assign({}, utils_6(toVal, keywords), toVal.data);\n var fromData = Object.assign({}, utils_6(fromVal, keywords), fromVal.data);\n var map = {};\n\n for (var i = 0; i < keywords.length; i++) {\n var key = keywords[i];\n map[key] = merge(toVal[key], fromVal[key]);\n }\n\n return Object.assign(map, merge(toData, fromData));\n }; // Lazy creation\n\n\n if (!Object.prototype.hasOwnProperty.call(Vue, '$apollo')) {\n Object.defineProperty(Vue.prototype, '$apollo', {\n get: function get() {\n if (!this.$_apollo) {\n this.$_apollo = new DollarApollo(this);\n }\n\n return this.$_apollo;\n }\n });\n }\n\n installMixin(Vue, vueVersion);\n\n if (vueVersion === '2') {\n Vue.component('ApolloQuery', CApolloQuery);\n Vue.component('ApolloQuery', CApolloQuery);\n Vue.component('ApolloSubscribeToMore', CApolloSubscribeToMore);\n Vue.component('ApolloSubscribeToMore', CApolloSubscribeToMore);\n Vue.component('ApolloMutation', CApolloMutation);\n Vue.component('ApolloMutation', CApolloMutation);\n }\n}\nApolloProvider.install = install; // eslint-disable-next-line no-undef\n\nApolloProvider.version = \"3.1.0\"; // Apollo provider\n\nvar ApolloProvider$1 = ApolloProvider; // Components\n\nvar ApolloQuery = CApolloQuery;\nvar ApolloSubscribeToMore = CApolloSubscribeToMore;\nvar ApolloMutation = CApolloMutation; // Auto-install\n\nvar GlobalVue = null;\n\nif (typeof window !== 'undefined') {\n GlobalVue = window.Vue;\n} else if (typeof global !== 'undefined') {\n GlobalVue = global.Vue;\n}\n\nif (GlobalVue) {\n GlobalVue.use(ApolloProvider);\n}\n\nexport default ApolloProvider;\nexport { ApolloMutation, ApolloProvider$1 as ApolloProvider, ApolloQuery, ApolloSubscribeToMore, install };\n","/*!\n * vue-router v3.1.5\n * (c) 2020 Evan You\n * @license MIT\n */\n/* */\n\nfunction assert (condition, message) {\n if (!condition) {\n throw new Error((\"[vue-router] \" + message))\n }\n}\n\nfunction warn (condition, message) {\n if (process.env.NODE_ENV !== 'production' && !condition) {\n typeof console !== 'undefined' && console.warn((\"[vue-router] \" + message));\n }\n}\n\nfunction isError (err) {\n return Object.prototype.toString.call(err).indexOf('Error') > -1\n}\n\nfunction isExtendedError (constructor, err) {\n return (\n err instanceof constructor ||\n // _name is to support IE9 too\n (err && (err.name === constructor.name || err._name === constructor._name))\n )\n}\n\nfunction extend (a, b) {\n for (var key in b) {\n a[key] = b[key];\n }\n return a\n}\n\nvar View = {\n name: 'RouterView',\n functional: true,\n props: {\n name: {\n type: String,\n default: 'default'\n }\n },\n render: function render (_, ref) {\n var props = ref.props;\n var children = ref.children;\n var parent = ref.parent;\n var data = ref.data;\n\n // used by devtools to display a router-view badge\n data.routerView = true;\n\n // directly use parent context's createElement() function\n // so that components rendered by router-view can resolve named slots\n var h = parent.$createElement;\n var name = props.name;\n var route = parent.$route;\n var cache = parent._routerViewCache || (parent._routerViewCache = {});\n\n // determine current view depth, also check to see if the tree\n // has been toggled inactive but kept-alive.\n var depth = 0;\n var inactive = false;\n while (parent && parent._routerRoot !== parent) {\n var vnodeData = parent.$vnode ? parent.$vnode.data : {};\n if (vnodeData.routerView) {\n depth++;\n }\n if (vnodeData.keepAlive && parent._directInactive && parent._inactive) {\n inactive = true;\n }\n parent = parent.$parent;\n }\n data.routerViewDepth = depth;\n\n // render previous view if the tree is inactive and kept-alive\n if (inactive) {\n var cachedData = cache[name];\n var cachedComponent = cachedData && cachedData.component;\n if (cachedComponent) {\n // #2301\n // pass props\n if (cachedData.configProps) {\n fillPropsinData(cachedComponent, data, cachedData.route, cachedData.configProps);\n }\n return h(cachedComponent, data, children)\n } else {\n // render previous empty view\n return h()\n }\n }\n\n var matched = route.matched[depth];\n var component = matched && matched.components[name];\n\n // render empty node if no matched route or no config component\n if (!matched || !component) {\n cache[name] = null;\n return h()\n }\n\n // cache component\n cache[name] = { component: component };\n\n // attach instance registration hook\n // this will be called in the instance's injected lifecycle hooks\n data.registerRouteInstance = function (vm, val) {\n // val could be undefined for unregistration\n var current = matched.instances[name];\n if (\n (val && current !== vm) ||\n (!val && current === vm)\n ) {\n matched.instances[name] = val;\n }\n }\n\n // also register instance in prepatch hook\n // in case the same component instance is reused across different routes\n ;(data.hook || (data.hook = {})).prepatch = function (_, vnode) {\n matched.instances[name] = vnode.componentInstance;\n };\n\n // register instance in init hook\n // in case kept-alive component be actived when routes changed\n data.hook.init = function (vnode) {\n if (vnode.data.keepAlive &&\n vnode.componentInstance &&\n vnode.componentInstance !== matched.instances[name]\n ) {\n matched.instances[name] = vnode.componentInstance;\n }\n };\n\n var configProps = matched.props && matched.props[name];\n // save route and configProps in cachce\n if (configProps) {\n extend(cache[name], {\n route: route,\n configProps: configProps\n });\n fillPropsinData(component, data, route, configProps);\n }\n\n return h(component, data, children)\n }\n};\n\nfunction fillPropsinData (component, data, route, configProps) {\n // resolve props\n var propsToPass = data.props = resolveProps(route, configProps);\n if (propsToPass) {\n // clone to prevent mutation\n propsToPass = data.props = extend({}, propsToPass);\n // pass non-declared props as attrs\n var attrs = data.attrs = data.attrs || {};\n for (var key in propsToPass) {\n if (!component.props || !(key in component.props)) {\n attrs[key] = propsToPass[key];\n delete propsToPass[key];\n }\n }\n }\n}\n\nfunction resolveProps (route, config) {\n switch (typeof config) {\n case 'undefined':\n return\n case 'object':\n return config\n case 'function':\n return config(route)\n case 'boolean':\n return config ? route.params : undefined\n default:\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n \"props in \\\"\" + (route.path) + \"\\\" is a \" + (typeof config) + \", \" +\n \"expecting an object, function or boolean.\"\n );\n }\n }\n}\n\n/* */\n\nvar encodeReserveRE = /[!'()*]/g;\nvar encodeReserveReplacer = function (c) { return '%' + c.charCodeAt(0).toString(16); };\nvar commaRE = /%2C/g;\n\n// fixed encodeURIComponent which is more conformant to RFC3986:\n// - escapes [!'()*]\n// - preserve commas\nvar encode = function (str) { return encodeURIComponent(str)\n .replace(encodeReserveRE, encodeReserveReplacer)\n .replace(commaRE, ','); };\n\nvar decode = decodeURIComponent;\n\nfunction resolveQuery (\n query,\n extraQuery,\n _parseQuery\n) {\n if ( extraQuery === void 0 ) extraQuery = {};\n\n var parse = _parseQuery || parseQuery;\n var parsedQuery;\n try {\n parsedQuery = parse(query || '');\n } catch (e) {\n process.env.NODE_ENV !== 'production' && warn(false, e.message);\n parsedQuery = {};\n }\n for (var key in extraQuery) {\n parsedQuery[key] = extraQuery[key];\n }\n return parsedQuery\n}\n\nfunction parseQuery (query) {\n var res = {};\n\n query = query.trim().replace(/^(\\?|#|&)/, '');\n\n if (!query) {\n return res\n }\n\n query.split('&').forEach(function (param) {\n var parts = param.replace(/\\+/g, ' ').split('=');\n var key = decode(parts.shift());\n var val = parts.length > 0\n ? decode(parts.join('='))\n : null;\n\n if (res[key] === undefined) {\n res[key] = val;\n } else if (Array.isArray(res[key])) {\n res[key].push(val);\n } else {\n res[key] = [res[key], val];\n }\n });\n\n return res\n}\n\nfunction stringifyQuery (obj) {\n var res = obj ? Object.keys(obj).map(function (key) {\n var val = obj[key];\n\n if (val === undefined) {\n return ''\n }\n\n if (val === null) {\n return encode(key)\n }\n\n if (Array.isArray(val)) {\n var result = [];\n val.forEach(function (val2) {\n if (val2 === undefined) {\n return\n }\n if (val2 === null) {\n result.push(encode(key));\n } else {\n result.push(encode(key) + '=' + encode(val2));\n }\n });\n return result.join('&')\n }\n\n return encode(key) + '=' + encode(val)\n }).filter(function (x) { return x.length > 0; }).join('&') : null;\n return res ? (\"?\" + res) : ''\n}\n\n/* */\n\nvar trailingSlashRE = /\\/?$/;\n\nfunction createRoute (\n record,\n location,\n redirectedFrom,\n router\n) {\n var stringifyQuery = router && router.options.stringifyQuery;\n\n var query = location.query || {};\n try {\n query = clone(query);\n } catch (e) {}\n\n var route = {\n name: location.name || (record && record.name),\n meta: (record && record.meta) || {},\n path: location.path || '/',\n hash: location.hash || '',\n query: query,\n params: location.params || {},\n fullPath: getFullPath(location, stringifyQuery),\n matched: record ? formatMatch(record) : []\n };\n if (redirectedFrom) {\n route.redirectedFrom = getFullPath(redirectedFrom, stringifyQuery);\n }\n return Object.freeze(route)\n}\n\nfunction clone (value) {\n if (Array.isArray(value)) {\n return value.map(clone)\n } else if (value && typeof value === 'object') {\n var res = {};\n for (var key in value) {\n res[key] = clone(value[key]);\n }\n return res\n } else {\n return value\n }\n}\n\n// the starting route that represents the initial state\nvar START = createRoute(null, {\n path: '/'\n});\n\nfunction formatMatch (record) {\n var res = [];\n while (record) {\n res.unshift(record);\n record = record.parent;\n }\n return res\n}\n\nfunction getFullPath (\n ref,\n _stringifyQuery\n) {\n var path = ref.path;\n var query = ref.query; if ( query === void 0 ) query = {};\n var hash = ref.hash; if ( hash === void 0 ) hash = '';\n\n var stringify = _stringifyQuery || stringifyQuery;\n return (path || '/') + stringify(query) + hash\n}\n\nfunction isSameRoute (a, b) {\n if (b === START) {\n return a === b\n } else if (!b) {\n return false\n } else if (a.path && b.path) {\n return (\n a.path.replace(trailingSlashRE, '') === b.path.replace(trailingSlashRE, '') &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query)\n )\n } else if (a.name && b.name) {\n return (\n a.name === b.name &&\n a.hash === b.hash &&\n isObjectEqual(a.query, b.query) &&\n isObjectEqual(a.params, b.params)\n )\n } else {\n return false\n }\n}\n\nfunction isObjectEqual (a, b) {\n if ( a === void 0 ) a = {};\n if ( b === void 0 ) b = {};\n\n // handle null value #1566\n if (!a || !b) { return a === b }\n var aKeys = Object.keys(a);\n var bKeys = Object.keys(b);\n if (aKeys.length !== bKeys.length) {\n return false\n }\n return aKeys.every(function (key) {\n var aVal = a[key];\n var bVal = b[key];\n // check nested equality\n if (typeof aVal === 'object' && typeof bVal === 'object') {\n return isObjectEqual(aVal, bVal)\n }\n return String(aVal) === String(bVal)\n })\n}\n\nfunction isIncludedRoute (current, target) {\n return (\n current.path.replace(trailingSlashRE, '/').indexOf(\n target.path.replace(trailingSlashRE, '/')\n ) === 0 &&\n (!target.hash || current.hash === target.hash) &&\n queryIncludes(current.query, target.query)\n )\n}\n\nfunction queryIncludes (current, target) {\n for (var key in target) {\n if (!(key in current)) {\n return false\n }\n }\n return true\n}\n\n/* */\n\nfunction resolvePath (\n relative,\n base,\n append\n) {\n var firstChar = relative.charAt(0);\n if (firstChar === '/') {\n return relative\n }\n\n if (firstChar === '?' || firstChar === '#') {\n return base + relative\n }\n\n var stack = base.split('/');\n\n // remove trailing segment if:\n // - not appending\n // - appending to trailing slash (last segment is empty)\n if (!append || !stack[stack.length - 1]) {\n stack.pop();\n }\n\n // resolve relative path\n var segments = relative.replace(/^\\//, '').split('/');\n for (var i = 0; i < segments.length; i++) {\n var segment = segments[i];\n if (segment === '..') {\n stack.pop();\n } else if (segment !== '.') {\n stack.push(segment);\n }\n }\n\n // ensure leading slash\n if (stack[0] !== '') {\n stack.unshift('');\n }\n\n return stack.join('/')\n}\n\nfunction parsePath (path) {\n var hash = '';\n var query = '';\n\n var hashIndex = path.indexOf('#');\n if (hashIndex >= 0) {\n hash = path.slice(hashIndex);\n path = path.slice(0, hashIndex);\n }\n\n var queryIndex = path.indexOf('?');\n if (queryIndex >= 0) {\n query = path.slice(queryIndex + 1);\n path = path.slice(0, queryIndex);\n }\n\n return {\n path: path,\n query: query,\n hash: hash\n }\n}\n\nfunction cleanPath (path) {\n return path.replace(/\\/\\//g, '/')\n}\n\nvar isarray = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n\n/**\n * Expose `pathToRegexp`.\n */\nvar pathToRegexp_1 = pathToRegexp;\nvar parse_1 = parse;\nvar compile_1 = compile;\nvar tokensToFunction_1 = tokensToFunction;\nvar tokensToRegExp_1 = tokensToRegExp;\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g');\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = [];\n var key = 0;\n var index = 0;\n var path = '';\n var defaultDelimiter = options && options.delimiter || '/';\n var res;\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0];\n var escaped = res[1];\n var offset = res.index;\n path += str.slice(index, offset);\n index = offset + m.length;\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1];\n continue\n }\n\n var next = str[index];\n var prefix = res[2];\n var name = res[3];\n var capture = res[4];\n var group = res[5];\n var modifier = res[6];\n var asterisk = res[7];\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path);\n path = '';\n }\n\n var partial = prefix != null && next != null && next !== prefix;\n var repeat = modifier === '+' || modifier === '*';\n var optional = modifier === '?' || modifier === '*';\n var delimiter = res[2] || defaultDelimiter;\n var pattern = capture || group;\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n });\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index);\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path);\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options))\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length);\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$');\n }\n }\n\n return function (obj, opts) {\n var path = '';\n var data = obj || {};\n var options = opts || {};\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent;\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n path += token;\n\n continue\n }\n\n var value = data[token.name];\n var segment;\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix;\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j]);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment;\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value);\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment;\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys;\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g);\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n });\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = [];\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source);\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options));\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n var strict = options.strict;\n var end = options.end !== false;\n var route = '';\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i];\n\n if (typeof token === 'string') {\n route += escapeString(token);\n } else {\n var prefix = escapeString(token.prefix);\n var capture = '(?:' + token.pattern + ')';\n\n keys.push(token);\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*';\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?';\n } else {\n capture = prefix + '(' + capture + ')?';\n }\n } else {\n capture = prefix + '(' + capture + ')';\n }\n\n route += capture;\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/');\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter;\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?';\n }\n\n if (end) {\n route += '$';\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)';\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options);\n keys = [];\n }\n\n options = options || {};\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\npathToRegexp_1.parse = parse_1;\npathToRegexp_1.compile = compile_1;\npathToRegexp_1.tokensToFunction = tokensToFunction_1;\npathToRegexp_1.tokensToRegExp = tokensToRegExp_1;\n\n/* */\n\n// $flow-disable-line\nvar regexpCompileCache = Object.create(null);\n\nfunction fillParams (\n path,\n params,\n routeMsg\n) {\n params = params || {};\n try {\n var filler =\n regexpCompileCache[path] ||\n (regexpCompileCache[path] = pathToRegexp_1.compile(path));\n\n // Fix #2505 resolving asterisk routes { name: 'not-found', params: { pathMatch: '/not-found' }}\n if (params.pathMatch) { params[0] = params.pathMatch; }\n\n return filler(params, { pretty: true })\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') {\n // Fix #3072 no warn if `pathMatch` is string\n warn(typeof params.pathMatch === 'string', (\"missing param for \" + routeMsg + \": \" + (e.message)));\n }\n return ''\n } finally {\n // delete the 0 if it was added\n delete params[0];\n }\n}\n\n/* */\n\nfunction normalizeLocation (\n raw,\n current,\n append,\n router\n) {\n var next = typeof raw === 'string' ? { path: raw } : raw;\n // named target\n if (next._normalized) {\n return next\n } else if (next.name) {\n next = extend({}, raw);\n var params = next.params;\n if (params && typeof params === 'object') {\n next.params = extend({}, params);\n }\n return next\n }\n\n // relative params\n if (!next.path && next.params && current) {\n next = extend({}, next);\n next._normalized = true;\n var params$1 = extend(extend({}, current.params), next.params);\n if (current.name) {\n next.name = current.name;\n next.params = params$1;\n } else if (current.matched.length) {\n var rawPath = current.matched[current.matched.length - 1].path;\n next.path = fillParams(rawPath, params$1, (\"path \" + (current.path)));\n } else if (process.env.NODE_ENV !== 'production') {\n warn(false, \"relative params navigation requires a current route.\");\n }\n return next\n }\n\n var parsedPath = parsePath(next.path || '');\n var basePath = (current && current.path) || '/';\n var path = parsedPath.path\n ? resolvePath(parsedPath.path, basePath, append || next.append)\n : basePath;\n\n var query = resolveQuery(\n parsedPath.query,\n next.query,\n router && router.options.parseQuery\n );\n\n var hash = next.hash || parsedPath.hash;\n if (hash && hash.charAt(0) !== '#') {\n hash = \"#\" + hash;\n }\n\n return {\n _normalized: true,\n path: path,\n query: query,\n hash: hash\n }\n}\n\n/* */\n\n// work around weird flow bug\nvar toTypes = [String, Object];\nvar eventTypes = [String, Array];\n\nvar noop = function () {};\n\nvar Link = {\n name: 'RouterLink',\n props: {\n to: {\n type: toTypes,\n required: true\n },\n tag: {\n type: String,\n default: 'a'\n },\n exact: Boolean,\n append: Boolean,\n replace: Boolean,\n activeClass: String,\n exactActiveClass: String,\n event: {\n type: eventTypes,\n default: 'click'\n }\n },\n render: function render (h) {\n var this$1 = this;\n\n var router = this.$router;\n var current = this.$route;\n var ref = router.resolve(\n this.to,\n current,\n this.append\n );\n var location = ref.location;\n var route = ref.route;\n var href = ref.href;\n\n var classes = {};\n var globalActiveClass = router.options.linkActiveClass;\n var globalExactActiveClass = router.options.linkExactActiveClass;\n // Support global empty active class\n var activeClassFallback =\n globalActiveClass == null ? 'router-link-active' : globalActiveClass;\n var exactActiveClassFallback =\n globalExactActiveClass == null\n ? 'router-link-exact-active'\n : globalExactActiveClass;\n var activeClass =\n this.activeClass == null ? activeClassFallback : this.activeClass;\n var exactActiveClass =\n this.exactActiveClass == null\n ? exactActiveClassFallback\n : this.exactActiveClass;\n\n var compareTarget = route.redirectedFrom\n ? createRoute(null, normalizeLocation(route.redirectedFrom), null, router)\n : route;\n\n classes[exactActiveClass] = isSameRoute(current, compareTarget);\n classes[activeClass] = this.exact\n ? classes[exactActiveClass]\n : isIncludedRoute(current, compareTarget);\n\n var handler = function (e) {\n if (guardEvent(e)) {\n if (this$1.replace) {\n router.replace(location, noop);\n } else {\n router.push(location, noop);\n }\n }\n };\n\n var on = { click: guardEvent };\n if (Array.isArray(this.event)) {\n this.event.forEach(function (e) {\n on[e] = handler;\n });\n } else {\n on[this.event] = handler;\n }\n\n var data = { class: classes };\n\n var scopedSlot =\n !this.$scopedSlots.$hasNormal &&\n this.$scopedSlots.default &&\n this.$scopedSlots.default({\n href: href,\n route: route,\n navigate: handler,\n isActive: classes[activeClass],\n isExactActive: classes[exactActiveClass]\n });\n\n if (scopedSlot) {\n if (scopedSlot.length === 1) {\n return scopedSlot[0]\n } else if (scopedSlot.length > 1 || !scopedSlot.length) {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false,\n (\"RouterLink with to=\\\"\" + (this.to) + \"\\\" is trying to use a scoped slot but it didn't provide exactly one child. Wrapping the content with a span element.\")\n );\n }\n return scopedSlot.length === 0 ? h() : h('span', {}, scopedSlot)\n }\n }\n\n if (this.tag === 'a') {\n data.on = on;\n data.attrs = { href: href };\n } else {\n // find the first child and apply listener and href\n var a = findAnchor(this.$slots.default);\n if (a) {\n // in case the is a static node\n a.isStatic = false;\n var aData = (a.data = extend({}, a.data));\n aData.on = aData.on || {};\n // transform existing events in both objects into arrays so we can push later\n for (var event in aData.on) {\n var handler$1 = aData.on[event];\n if (event in on) {\n aData.on[event] = Array.isArray(handler$1) ? handler$1 : [handler$1];\n }\n }\n // append new listeners for router-link\n for (var event$1 in on) {\n if (event$1 in aData.on) {\n // on[event] is always a function\n aData.on[event$1].push(on[event$1]);\n } else {\n aData.on[event$1] = handler;\n }\n }\n\n var aAttrs = (a.data.attrs = extend({}, a.data.attrs));\n aAttrs.href = href;\n } else {\n // doesn't have child, apply listener to self\n data.on = on;\n }\n }\n\n return h(this.tag, data, this.$slots.default)\n }\n};\n\nfunction guardEvent (e) {\n // don't redirect with control keys\n if (e.metaKey || e.altKey || e.ctrlKey || e.shiftKey) { return }\n // don't redirect when preventDefault called\n if (e.defaultPrevented) { return }\n // don't redirect on right click\n if (e.button !== undefined && e.button !== 0) { return }\n // don't redirect if `target=\"_blank\"`\n if (e.currentTarget && e.currentTarget.getAttribute) {\n var target = e.currentTarget.getAttribute('target');\n if (/\\b_blank\\b/i.test(target)) { return }\n }\n // this may be a Weex event which doesn't have this method\n if (e.preventDefault) {\n e.preventDefault();\n }\n return true\n}\n\nfunction findAnchor (children) {\n if (children) {\n var child;\n for (var i = 0; i < children.length; i++) {\n child = children[i];\n if (child.tag === 'a') {\n return child\n }\n if (child.children && (child = findAnchor(child.children))) {\n return child\n }\n }\n }\n}\n\nvar _Vue;\n\nfunction install (Vue) {\n if (install.installed && _Vue === Vue) { return }\n install.installed = true;\n\n _Vue = Vue;\n\n var isDef = function (v) { return v !== undefined; };\n\n var registerInstance = function (vm, callVal) {\n var i = vm.$options._parentVnode;\n if (isDef(i) && isDef(i = i.data) && isDef(i = i.registerRouteInstance)) {\n i(vm, callVal);\n }\n };\n\n Vue.mixin({\n beforeCreate: function beforeCreate () {\n if (isDef(this.$options.router)) {\n this._routerRoot = this;\n this._router = this.$options.router;\n this._router.init(this);\n Vue.util.defineReactive(this, '_route', this._router.history.current);\n } else {\n this._routerRoot = (this.$parent && this.$parent._routerRoot) || this;\n }\n registerInstance(this, this);\n },\n destroyed: function destroyed () {\n registerInstance(this);\n }\n });\n\n Object.defineProperty(Vue.prototype, '$router', {\n get: function get () { return this._routerRoot._router }\n });\n\n Object.defineProperty(Vue.prototype, '$route', {\n get: function get () { return this._routerRoot._route }\n });\n\n Vue.component('RouterView', View);\n Vue.component('RouterLink', Link);\n\n var strats = Vue.config.optionMergeStrategies;\n // use the same hook merging strategy for route hooks\n strats.beforeRouteEnter = strats.beforeRouteLeave = strats.beforeRouteUpdate = strats.created;\n}\n\n/* */\n\nvar inBrowser = typeof window !== 'undefined';\n\n/* */\n\nfunction createRouteMap (\n routes,\n oldPathList,\n oldPathMap,\n oldNameMap\n) {\n // the path list is used to control path matching priority\n var pathList = oldPathList || [];\n // $flow-disable-line\n var pathMap = oldPathMap || Object.create(null);\n // $flow-disable-line\n var nameMap = oldNameMap || Object.create(null);\n\n routes.forEach(function (route) {\n addRouteRecord(pathList, pathMap, nameMap, route);\n });\n\n // ensure wildcard routes are always at the end\n for (var i = 0, l = pathList.length; i < l; i++) {\n if (pathList[i] === '*') {\n pathList.push(pathList.splice(i, 1)[0]);\n l--;\n i--;\n }\n }\n\n if (process.env.NODE_ENV === 'development') {\n // warn if routes do not include leading slashes\n var found = pathList\n // check for missing leading slash\n .filter(function (path) { return path && path.charAt(0) !== '*' && path.charAt(0) !== '/'; });\n\n if (found.length > 0) {\n var pathNames = found.map(function (path) { return (\"- \" + path); }).join('\\n');\n warn(false, (\"Non-nested routes must include a leading slash character. Fix the following routes: \\n\" + pathNames));\n }\n }\n\n return {\n pathList: pathList,\n pathMap: pathMap,\n nameMap: nameMap\n }\n}\n\nfunction addRouteRecord (\n pathList,\n pathMap,\n nameMap,\n route,\n parent,\n matchAs\n) {\n var path = route.path;\n var name = route.name;\n if (process.env.NODE_ENV !== 'production') {\n assert(path != null, \"\\\"path\\\" is required in a route configuration.\");\n assert(\n typeof route.component !== 'string',\n \"route config \\\"component\\\" for path: \" + (String(\n path || name\n )) + \" cannot be a \" + \"string id. Use an actual component instead.\"\n );\n }\n\n var pathToRegexpOptions =\n route.pathToRegexpOptions || {};\n var normalizedPath = normalizePath(path, parent, pathToRegexpOptions.strict);\n\n if (typeof route.caseSensitive === 'boolean') {\n pathToRegexpOptions.sensitive = route.caseSensitive;\n }\n\n var record = {\n path: normalizedPath,\n regex: compileRouteRegex(normalizedPath, pathToRegexpOptions),\n components: route.components || { default: route.component },\n instances: {},\n name: name,\n parent: parent,\n matchAs: matchAs,\n redirect: route.redirect,\n beforeEnter: route.beforeEnter,\n meta: route.meta || {},\n props:\n route.props == null\n ? {}\n : route.components\n ? route.props\n : { default: route.props }\n };\n\n if (route.children) {\n // Warn if route is named, does not redirect and has a default child route.\n // If users navigate to this route by name, the default child will\n // not be rendered (GH Issue #629)\n if (process.env.NODE_ENV !== 'production') {\n if (\n route.name &&\n !route.redirect &&\n route.children.some(function (child) { return /^\\/?$/.test(child.path); })\n ) {\n warn(\n false,\n \"Named Route '\" + (route.name) + \"' has a default child route. \" +\n \"When navigating to this named route (:to=\\\"{name: '\" + (route.name) + \"'\\\"), \" +\n \"the default child route will not be rendered. Remove the name from \" +\n \"this route and use the name of the default child route for named \" +\n \"links instead.\"\n );\n }\n }\n route.children.forEach(function (child) {\n var childMatchAs = matchAs\n ? cleanPath((matchAs + \"/\" + (child.path)))\n : undefined;\n addRouteRecord(pathList, pathMap, nameMap, child, record, childMatchAs);\n });\n }\n\n if (!pathMap[record.path]) {\n pathList.push(record.path);\n pathMap[record.path] = record;\n }\n\n if (route.alias !== undefined) {\n var aliases = Array.isArray(route.alias) ? route.alias : [route.alias];\n for (var i = 0; i < aliases.length; ++i) {\n var alias = aliases[i];\n if (process.env.NODE_ENV !== 'production' && alias === path) {\n warn(\n false,\n (\"Found an alias with the same value as the path: \\\"\" + path + \"\\\". You have to remove that alias. It will be ignored in development.\")\n );\n // skip in dev to make it work\n continue\n }\n\n var aliasRoute = {\n path: alias,\n children: route.children\n };\n addRouteRecord(\n pathList,\n pathMap,\n nameMap,\n aliasRoute,\n parent,\n record.path || '/' // matchAs\n );\n }\n }\n\n if (name) {\n if (!nameMap[name]) {\n nameMap[name] = record;\n } else if (process.env.NODE_ENV !== 'production' && !matchAs) {\n warn(\n false,\n \"Duplicate named routes definition: \" +\n \"{ name: \\\"\" + name + \"\\\", path: \\\"\" + (record.path) + \"\\\" }\"\n );\n }\n }\n}\n\nfunction compileRouteRegex (\n path,\n pathToRegexpOptions\n) {\n var regex = pathToRegexp_1(path, [], pathToRegexpOptions);\n if (process.env.NODE_ENV !== 'production') {\n var keys = Object.create(null);\n regex.keys.forEach(function (key) {\n warn(\n !keys[key.name],\n (\"Duplicate param keys in route with path: \\\"\" + path + \"\\\"\")\n );\n keys[key.name] = true;\n });\n }\n return regex\n}\n\nfunction normalizePath (\n path,\n parent,\n strict\n) {\n if (!strict) { path = path.replace(/\\/$/, ''); }\n if (path[0] === '/') { return path }\n if (parent == null) { return path }\n return cleanPath(((parent.path) + \"/\" + path))\n}\n\n/* */\n\n\n\nfunction createMatcher (\n routes,\n router\n) {\n var ref = createRouteMap(routes);\n var pathList = ref.pathList;\n var pathMap = ref.pathMap;\n var nameMap = ref.nameMap;\n\n function addRoutes (routes) {\n createRouteMap(routes, pathList, pathMap, nameMap);\n }\n\n function match (\n raw,\n currentRoute,\n redirectedFrom\n ) {\n var location = normalizeLocation(raw, currentRoute, false, router);\n var name = location.name;\n\n if (name) {\n var record = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n warn(record, (\"Route with name '\" + name + \"' does not exist\"));\n }\n if (!record) { return _createRoute(null, location) }\n var paramNames = record.regex.keys\n .filter(function (key) { return !key.optional; })\n .map(function (key) { return key.name; });\n\n if (typeof location.params !== 'object') {\n location.params = {};\n }\n\n if (currentRoute && typeof currentRoute.params === 'object') {\n for (var key in currentRoute.params) {\n if (!(key in location.params) && paramNames.indexOf(key) > -1) {\n location.params[key] = currentRoute.params[key];\n }\n }\n }\n\n location.path = fillParams(record.path, location.params, (\"named route \\\"\" + name + \"\\\"\"));\n return _createRoute(record, location, redirectedFrom)\n } else if (location.path) {\n location.params = {};\n for (var i = 0; i < pathList.length; i++) {\n var path = pathList[i];\n var record$1 = pathMap[path];\n if (matchRoute(record$1.regex, location.path, location.params)) {\n return _createRoute(record$1, location, redirectedFrom)\n }\n }\n }\n // no match\n return _createRoute(null, location)\n }\n\n function redirect (\n record,\n location\n ) {\n var originalRedirect = record.redirect;\n var redirect = typeof originalRedirect === 'function'\n ? originalRedirect(createRoute(record, location, null, router))\n : originalRedirect;\n\n if (typeof redirect === 'string') {\n redirect = { path: redirect };\n }\n\n if (!redirect || typeof redirect !== 'object') {\n if (process.env.NODE_ENV !== 'production') {\n warn(\n false, (\"invalid redirect option: \" + (JSON.stringify(redirect)))\n );\n }\n return _createRoute(null, location)\n }\n\n var re = redirect;\n var name = re.name;\n var path = re.path;\n var query = location.query;\n var hash = location.hash;\n var params = location.params;\n query = re.hasOwnProperty('query') ? re.query : query;\n hash = re.hasOwnProperty('hash') ? re.hash : hash;\n params = re.hasOwnProperty('params') ? re.params : params;\n\n if (name) {\n // resolved named direct\n var targetRecord = nameMap[name];\n if (process.env.NODE_ENV !== 'production') {\n assert(targetRecord, (\"redirect failed: named route \\\"\" + name + \"\\\" not found.\"));\n }\n return match({\n _normalized: true,\n name: name,\n query: query,\n hash: hash,\n params: params\n }, undefined, location)\n } else if (path) {\n // 1. resolve relative redirect\n var rawPath = resolveRecordPath(path, record);\n // 2. resolve params\n var resolvedPath = fillParams(rawPath, params, (\"redirect route with path \\\"\" + rawPath + \"\\\"\"));\n // 3. rematch with existing query and hash\n return match({\n _normalized: true,\n path: resolvedPath,\n query: query,\n hash: hash\n }, undefined, location)\n } else {\n if (process.env.NODE_ENV !== 'production') {\n warn(false, (\"invalid redirect option: \" + (JSON.stringify(redirect))));\n }\n return _createRoute(null, location)\n }\n }\n\n function alias (\n record,\n location,\n matchAs\n ) {\n var aliasedPath = fillParams(matchAs, location.params, (\"aliased route with path \\\"\" + matchAs + \"\\\"\"));\n var aliasedMatch = match({\n _normalized: true,\n path: aliasedPath\n });\n if (aliasedMatch) {\n var matched = aliasedMatch.matched;\n var aliasedRecord = matched[matched.length - 1];\n location.params = aliasedMatch.params;\n return _createRoute(aliasedRecord, location)\n }\n return _createRoute(null, location)\n }\n\n function _createRoute (\n record,\n location,\n redirectedFrom\n ) {\n if (record && record.redirect) {\n return redirect(record, redirectedFrom || location)\n }\n if (record && record.matchAs) {\n return alias(record, location, record.matchAs)\n }\n return createRoute(record, location, redirectedFrom, router)\n }\n\n return {\n match: match,\n addRoutes: addRoutes\n }\n}\n\nfunction matchRoute (\n regex,\n path,\n params\n) {\n var m = path.match(regex);\n\n if (!m) {\n return false\n } else if (!params) {\n return true\n }\n\n for (var i = 1, len = m.length; i < len; ++i) {\n var key = regex.keys[i - 1];\n var val = typeof m[i] === 'string' ? decodeURIComponent(m[i]) : m[i];\n if (key) {\n // Fix #1994: using * with props: true generates a param named 0\n params[key.name || 'pathMatch'] = val;\n }\n }\n\n return true\n}\n\nfunction resolveRecordPath (path, record) {\n return resolvePath(path, record.parent ? record.parent.path : '/', true)\n}\n\n/* */\n\n// use User Timing api (if present) for more accurate key precision\nvar Time =\n inBrowser && window.performance && window.performance.now\n ? window.performance\n : Date;\n\nfunction genStateKey () {\n return Time.now().toFixed(3)\n}\n\nvar _key = genStateKey();\n\nfunction getStateKey () {\n return _key\n}\n\nfunction setStateKey (key) {\n return (_key = key)\n}\n\n/* */\n\nvar positionStore = Object.create(null);\n\nfunction setupScroll () {\n // Fix for #1585 for Firefox\n // Fix for #2195 Add optional third attribute to workaround a bug in safari https://bugs.webkit.org/show_bug.cgi?id=182678\n // Fix for #2774 Support for apps loaded from Windows file shares not mapped to network drives: replaced location.origin with\n // window.location.protocol + '//' + window.location.host\n // location.host contains the port and location.hostname doesn't\n var protocolAndPath = window.location.protocol + '//' + window.location.host;\n var absolutePath = window.location.href.replace(protocolAndPath, '');\n window.history.replaceState({ key: getStateKey() }, '', absolutePath);\n window.addEventListener('popstate', function (e) {\n saveScrollPosition();\n if (e.state && e.state.key) {\n setStateKey(e.state.key);\n }\n });\n}\n\nfunction handleScroll (\n router,\n to,\n from,\n isPop\n) {\n if (!router.app) {\n return\n }\n\n var behavior = router.options.scrollBehavior;\n if (!behavior) {\n return\n }\n\n if (process.env.NODE_ENV !== 'production') {\n assert(typeof behavior === 'function', \"scrollBehavior must be a function\");\n }\n\n // wait until re-render finishes before scrolling\n router.app.$nextTick(function () {\n var position = getScrollPosition();\n var shouldScroll = behavior.call(\n router,\n to,\n from,\n isPop ? position : null\n );\n\n if (!shouldScroll) {\n return\n }\n\n if (typeof shouldScroll.then === 'function') {\n shouldScroll\n .then(function (shouldScroll) {\n scrollToPosition((shouldScroll), position);\n })\n .catch(function (err) {\n if (process.env.NODE_ENV !== 'production') {\n assert(false, err.toString());\n }\n });\n } else {\n scrollToPosition(shouldScroll, position);\n }\n });\n}\n\nfunction saveScrollPosition () {\n var key = getStateKey();\n if (key) {\n positionStore[key] = {\n x: window.pageXOffset,\n y: window.pageYOffset\n };\n }\n}\n\nfunction getScrollPosition () {\n var key = getStateKey();\n if (key) {\n return positionStore[key]\n }\n}\n\nfunction getElementPosition (el, offset) {\n var docEl = document.documentElement;\n var docRect = docEl.getBoundingClientRect();\n var elRect = el.getBoundingClientRect();\n return {\n x: elRect.left - docRect.left - offset.x,\n y: elRect.top - docRect.top - offset.y\n }\n}\n\nfunction isValidPosition (obj) {\n return isNumber(obj.x) || isNumber(obj.y)\n}\n\nfunction normalizePosition (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : window.pageXOffset,\n y: isNumber(obj.y) ? obj.y : window.pageYOffset\n }\n}\n\nfunction normalizeOffset (obj) {\n return {\n x: isNumber(obj.x) ? obj.x : 0,\n y: isNumber(obj.y) ? obj.y : 0\n }\n}\n\nfunction isNumber (v) {\n return typeof v === 'number'\n}\n\nvar hashStartsWithNumberRE = /^#\\d/;\n\nfunction scrollToPosition (shouldScroll, position) {\n var isObject = typeof shouldScroll === 'object';\n if (isObject && typeof shouldScroll.selector === 'string') {\n // getElementById would still fail if the selector contains a more complicated query like #main[data-attr]\n // but at the same time, it doesn't make much sense to select an element with an id and an extra selector\n var el = hashStartsWithNumberRE.test(shouldScroll.selector) // $flow-disable-line\n ? document.getElementById(shouldScroll.selector.slice(1)) // $flow-disable-line\n : document.querySelector(shouldScroll.selector);\n\n if (el) {\n var offset =\n shouldScroll.offset && typeof shouldScroll.offset === 'object'\n ? shouldScroll.offset\n : {};\n offset = normalizeOffset(offset);\n position = getElementPosition(el, offset);\n } else if (isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n } else if (isObject && isValidPosition(shouldScroll)) {\n position = normalizePosition(shouldScroll);\n }\n\n if (position) {\n window.scrollTo(position.x, position.y);\n }\n}\n\n/* */\n\nvar supportsPushState =\n inBrowser &&\n (function () {\n var ua = window.navigator.userAgent;\n\n if (\n (ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) &&\n ua.indexOf('Mobile Safari') !== -1 &&\n ua.indexOf('Chrome') === -1 &&\n ua.indexOf('Windows Phone') === -1\n ) {\n return false\n }\n\n return window.history && 'pushState' in window.history\n })();\n\nfunction pushState (url, replace) {\n saveScrollPosition();\n // try...catch the pushState call to get around Safari\n // DOM Exception 18 where it limits to 100 pushState calls\n var history = window.history;\n try {\n if (replace) {\n // preserve existing history state as it could be overriden by the user\n var stateCopy = extend({}, history.state);\n stateCopy.key = getStateKey();\n history.replaceState(stateCopy, '', url);\n } else {\n history.pushState({ key: setStateKey(genStateKey()) }, '', url);\n }\n } catch (e) {\n window.location[replace ? 'replace' : 'assign'](url);\n }\n}\n\nfunction replaceState (url) {\n pushState(url, true);\n}\n\n/* */\n\nfunction runQueue (queue, fn, cb) {\n var step = function (index) {\n if (index >= queue.length) {\n cb();\n } else {\n if (queue[index]) {\n fn(queue[index], function () {\n step(index + 1);\n });\n } else {\n step(index + 1);\n }\n }\n };\n step(0);\n}\n\n/* */\n\nfunction resolveAsyncComponents (matched) {\n return function (to, from, next) {\n var hasAsync = false;\n var pending = 0;\n var error = null;\n\n flatMapComponents(matched, function (def, _, match, key) {\n // if it's a function and doesn't have cid attached,\n // assume it's an async component resolve function.\n // we are not using Vue's default async resolving mechanism because\n // we want to halt the navigation until the incoming component has been\n // resolved.\n if (typeof def === 'function' && def.cid === undefined) {\n hasAsync = true;\n pending++;\n\n var resolve = once(function (resolvedDef) {\n if (isESModule(resolvedDef)) {\n resolvedDef = resolvedDef.default;\n }\n // save resolved on async factory in case it's used elsewhere\n def.resolved = typeof resolvedDef === 'function'\n ? resolvedDef\n : _Vue.extend(resolvedDef);\n match.components[key] = resolvedDef;\n pending--;\n if (pending <= 0) {\n next();\n }\n });\n\n var reject = once(function (reason) {\n var msg = \"Failed to resolve async component \" + key + \": \" + reason;\n process.env.NODE_ENV !== 'production' && warn(false, msg);\n if (!error) {\n error = isError(reason)\n ? reason\n : new Error(msg);\n next(error);\n }\n });\n\n var res;\n try {\n res = def(resolve, reject);\n } catch (e) {\n reject(e);\n }\n if (res) {\n if (typeof res.then === 'function') {\n res.then(resolve, reject);\n } else {\n // new syntax in Vue 2.3\n var comp = res.component;\n if (comp && typeof comp.then === 'function') {\n comp.then(resolve, reject);\n }\n }\n }\n }\n });\n\n if (!hasAsync) { next(); }\n }\n}\n\nfunction flatMapComponents (\n matched,\n fn\n) {\n return flatten(matched.map(function (m) {\n return Object.keys(m.components).map(function (key) { return fn(\n m.components[key],\n m.instances[key],\n m, key\n ); })\n }))\n}\n\nfunction flatten (arr) {\n return Array.prototype.concat.apply([], arr)\n}\n\nvar hasSymbol =\n typeof Symbol === 'function' &&\n typeof Symbol.toStringTag === 'symbol';\n\nfunction isESModule (obj) {\n return obj.__esModule || (hasSymbol && obj[Symbol.toStringTag] === 'Module')\n}\n\n// in Webpack 2, require.ensure now also returns a Promise\n// so the resolve/reject functions may get called an extra time\n// if the user uses an arrow function shorthand that happens to\n// return that Promise.\nfunction once (fn) {\n var called = false;\n return function () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n if (called) { return }\n called = true;\n return fn.apply(this, args)\n }\n}\n\nvar NavigationDuplicated = /*@__PURE__*/(function (Error) {\n function NavigationDuplicated (normalizedLocation) {\n Error.call(this);\n this.name = this._name = 'NavigationDuplicated';\n // passing the message to super() doesn't seem to work in the transpiled version\n this.message = \"Navigating to current location (\\\"\" + (normalizedLocation.fullPath) + \"\\\") is not allowed\";\n // add a stack property so services like Sentry can correctly display it\n Object.defineProperty(this, 'stack', {\n value: new Error().stack,\n writable: true,\n configurable: true\n });\n // we could also have used\n // Error.captureStackTrace(this, this.constructor)\n // but it only exists on node and chrome\n }\n\n if ( Error ) NavigationDuplicated.__proto__ = Error;\n NavigationDuplicated.prototype = Object.create( Error && Error.prototype );\n NavigationDuplicated.prototype.constructor = NavigationDuplicated;\n\n return NavigationDuplicated;\n}(Error));\n\n// support IE9\nNavigationDuplicated._name = 'NavigationDuplicated';\n\n/* */\n\nvar History = function History (router, base) {\n this.router = router;\n this.base = normalizeBase(base);\n // start with a route object that stands for \"nowhere\"\n this.current = START;\n this.pending = null;\n this.ready = false;\n this.readyCbs = [];\n this.readyErrorCbs = [];\n this.errorCbs = [];\n};\n\nHistory.prototype.listen = function listen (cb) {\n this.cb = cb;\n};\n\nHistory.prototype.onReady = function onReady (cb, errorCb) {\n if (this.ready) {\n cb();\n } else {\n this.readyCbs.push(cb);\n if (errorCb) {\n this.readyErrorCbs.push(errorCb);\n }\n }\n};\n\nHistory.prototype.onError = function onError (errorCb) {\n this.errorCbs.push(errorCb);\n};\n\nHistory.prototype.transitionTo = function transitionTo (\n location,\n onComplete,\n onAbort\n) {\n var this$1 = this;\n\n var route = this.router.match(location, this.current);\n this.confirmTransition(\n route,\n function () {\n this$1.updateRoute(route);\n onComplete && onComplete(route);\n this$1.ensureURL();\n\n // fire ready cbs once\n if (!this$1.ready) {\n this$1.ready = true;\n this$1.readyCbs.forEach(function (cb) {\n cb(route);\n });\n }\n },\n function (err) {\n if (onAbort) {\n onAbort(err);\n }\n if (err && !this$1.ready) {\n this$1.ready = true;\n this$1.readyErrorCbs.forEach(function (cb) {\n cb(err);\n });\n }\n }\n );\n};\n\nHistory.prototype.confirmTransition = function confirmTransition (route, onComplete, onAbort) {\n var this$1 = this;\n\n var current = this.current;\n var abort = function (err) {\n // after merging https://github.com/vuejs/vue-router/pull/2771 we\n // When the user navigates through history through back/forward buttons\n // we do not want to throw the error. We only throw it if directly calling\n // push/replace. That's why it's not included in isError\n if (!isExtendedError(NavigationDuplicated, err) && isError(err)) {\n if (this$1.errorCbs.length) {\n this$1.errorCbs.forEach(function (cb) {\n cb(err);\n });\n } else {\n warn(false, 'uncaught error during route navigation:');\n console.error(err);\n }\n }\n onAbort && onAbort(err);\n };\n if (\n isSameRoute(route, current) &&\n // in the case the route map has been dynamically appended to\n route.matched.length === current.matched.length\n ) {\n this.ensureURL();\n return abort(new NavigationDuplicated(route))\n }\n\n var ref = resolveQueue(\n this.current.matched,\n route.matched\n );\n var updated = ref.updated;\n var deactivated = ref.deactivated;\n var activated = ref.activated;\n\n var queue = [].concat(\n // in-component leave guards\n extractLeaveGuards(deactivated),\n // global before hooks\n this.router.beforeHooks,\n // in-component update hooks\n extractUpdateHooks(updated),\n // in-config enter guards\n activated.map(function (m) { return m.beforeEnter; }),\n // async components\n resolveAsyncComponents(activated)\n );\n\n this.pending = route;\n var iterator = function (hook, next) {\n if (this$1.pending !== route) {\n return abort()\n }\n try {\n hook(route, current, function (to) {\n if (to === false || isError(to)) {\n // next(false) -> abort navigation, ensure current URL\n this$1.ensureURL(true);\n abort(to);\n } else if (\n typeof to === 'string' ||\n (typeof to === 'object' &&\n (typeof to.path === 'string' || typeof to.name === 'string'))\n ) {\n // next('/') or next({ path: '/' }) -> redirect\n abort();\n if (typeof to === 'object' && to.replace) {\n this$1.replace(to);\n } else {\n this$1.push(to);\n }\n } else {\n // confirm transition and pass on the value\n next(to);\n }\n });\n } catch (e) {\n abort(e);\n }\n };\n\n runQueue(queue, iterator, function () {\n var postEnterCbs = [];\n var isValid = function () { return this$1.current === route; };\n // wait until async components are resolved before\n // extracting in-component enter guards\n var enterGuards = extractEnterGuards(activated, postEnterCbs, isValid);\n var queue = enterGuards.concat(this$1.router.resolveHooks);\n runQueue(queue, iterator, function () {\n if (this$1.pending !== route) {\n return abort()\n }\n this$1.pending = null;\n onComplete(route);\n if (this$1.router.app) {\n this$1.router.app.$nextTick(function () {\n postEnterCbs.forEach(function (cb) {\n cb();\n });\n });\n }\n });\n });\n};\n\nHistory.prototype.updateRoute = function updateRoute (route) {\n var prev = this.current;\n this.current = route;\n this.cb && this.cb(route);\n this.router.afterHooks.forEach(function (hook) {\n hook && hook(route, prev);\n });\n};\n\nfunction normalizeBase (base) {\n if (!base) {\n if (inBrowser) {\n // respect tag\n var baseEl = document.querySelector('base');\n base = (baseEl && baseEl.getAttribute('href')) || '/';\n // strip full URL origin\n base = base.replace(/^https?:\\/\\/[^\\/]+/, '');\n } else {\n base = '/';\n }\n }\n // make sure there's the starting slash\n if (base.charAt(0) !== '/') {\n base = '/' + base;\n }\n // remove trailing slash\n return base.replace(/\\/$/, '')\n}\n\nfunction resolveQueue (\n current,\n next\n) {\n var i;\n var max = Math.max(current.length, next.length);\n for (i = 0; i < max; i++) {\n if (current[i] !== next[i]) {\n break\n }\n }\n return {\n updated: next.slice(0, i),\n activated: next.slice(i),\n deactivated: current.slice(i)\n }\n}\n\nfunction extractGuards (\n records,\n name,\n bind,\n reverse\n) {\n var guards = flatMapComponents(records, function (def, instance, match, key) {\n var guard = extractGuard(def, name);\n if (guard) {\n return Array.isArray(guard)\n ? guard.map(function (guard) { return bind(guard, instance, match, key); })\n : bind(guard, instance, match, key)\n }\n });\n return flatten(reverse ? guards.reverse() : guards)\n}\n\nfunction extractGuard (\n def,\n key\n) {\n if (typeof def !== 'function') {\n // extend now so that global mixins are applied.\n def = _Vue.extend(def);\n }\n return def.options[key]\n}\n\nfunction extractLeaveGuards (deactivated) {\n return extractGuards(deactivated, 'beforeRouteLeave', bindGuard, true)\n}\n\nfunction extractUpdateHooks (updated) {\n return extractGuards(updated, 'beforeRouteUpdate', bindGuard)\n}\n\nfunction bindGuard (guard, instance) {\n if (instance) {\n return function boundRouteGuard () {\n return guard.apply(instance, arguments)\n }\n }\n}\n\nfunction extractEnterGuards (\n activated,\n cbs,\n isValid\n) {\n return extractGuards(\n activated,\n 'beforeRouteEnter',\n function (guard, _, match, key) {\n return bindEnterGuard(guard, match, key, cbs, isValid)\n }\n )\n}\n\nfunction bindEnterGuard (\n guard,\n match,\n key,\n cbs,\n isValid\n) {\n return function routeEnterGuard (to, from, next) {\n return guard(to, from, function (cb) {\n if (typeof cb === 'function') {\n cbs.push(function () {\n // #750\n // if a router-view is wrapped with an out-in transition,\n // the instance may not have been registered at this time.\n // we will need to poll for registration until current route\n // is no longer valid.\n poll(cb, match.instances, key, isValid);\n });\n }\n next(cb);\n })\n }\n}\n\nfunction poll (\n cb, // somehow flow cannot infer this is a function\n instances,\n key,\n isValid\n) {\n if (\n instances[key] &&\n !instances[key]._isBeingDestroyed // do not reuse being destroyed instance\n ) {\n cb(instances[key]);\n } else if (isValid()) {\n setTimeout(function () {\n poll(cb, instances, key, isValid);\n }, 16);\n }\n}\n\n/* */\n\nvar HTML5History = /*@__PURE__*/(function (History) {\n function HTML5History (router, base) {\n var this$1 = this;\n\n History.call(this, router, base);\n\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n setupScroll();\n }\n\n var initLocation = getLocation(this.base);\n window.addEventListener('popstate', function (e) {\n var current = this$1.current;\n\n // Avoiding first `popstate` event dispatched in some browsers but first\n // history route not updated since async guard at the same time.\n var location = getLocation(this$1.base);\n if (this$1.current === START && location === initLocation) {\n return\n }\n\n this$1.transitionTo(location, function (route) {\n if (supportsScroll) {\n handleScroll(router, route, current, true);\n }\n });\n });\n }\n\n if ( History ) HTML5History.__proto__ = History;\n HTML5History.prototype = Object.create( History && History.prototype );\n HTML5History.prototype.constructor = HTML5History;\n\n HTML5History.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HTML5History.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n pushState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(location, function (route) {\n replaceState(cleanPath(this$1.base + route.fullPath));\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n }, onAbort);\n };\n\n HTML5History.prototype.ensureURL = function ensureURL (push) {\n if (getLocation(this.base) !== this.current.fullPath) {\n var current = cleanPath(this.base + this.current.fullPath);\n push ? pushState(current) : replaceState(current);\n }\n };\n\n HTML5History.prototype.getCurrentLocation = function getCurrentLocation () {\n return getLocation(this.base)\n };\n\n return HTML5History;\n}(History));\n\nfunction getLocation (base) {\n var path = decodeURI(window.location.pathname);\n if (base && path.indexOf(base) === 0) {\n path = path.slice(base.length);\n }\n return (path || '/') + window.location.search + window.location.hash\n}\n\n/* */\n\nvar HashHistory = /*@__PURE__*/(function (History) {\n function HashHistory (router, base, fallback) {\n History.call(this, router, base);\n // check history fallback deeplinking\n if (fallback && checkFallback(this.base)) {\n return\n }\n ensureSlash();\n }\n\n if ( History ) HashHistory.__proto__ = History;\n HashHistory.prototype = Object.create( History && History.prototype );\n HashHistory.prototype.constructor = HashHistory;\n\n // this is delayed until the app mounts\n // to avoid the hashchange listener being fired too early\n HashHistory.prototype.setupListeners = function setupListeners () {\n var this$1 = this;\n\n var router = this.router;\n var expectScroll = router.options.scrollBehavior;\n var supportsScroll = supportsPushState && expectScroll;\n\n if (supportsScroll) {\n setupScroll();\n }\n\n window.addEventListener(\n supportsPushState ? 'popstate' : 'hashchange',\n function () {\n var current = this$1.current;\n if (!ensureSlash()) {\n return\n }\n this$1.transitionTo(getHash(), function (route) {\n if (supportsScroll) {\n handleScroll(this$1.router, route, current, true);\n }\n if (!supportsPushState) {\n replaceHash(route.fullPath);\n }\n });\n }\n );\n };\n\n HashHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n pushHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n var ref = this;\n var fromRoute = ref.current;\n this.transitionTo(\n location,\n function (route) {\n replaceHash(route.fullPath);\n handleScroll(this$1.router, route, fromRoute, false);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n HashHistory.prototype.go = function go (n) {\n window.history.go(n);\n };\n\n HashHistory.prototype.ensureURL = function ensureURL (push) {\n var current = this.current.fullPath;\n if (getHash() !== current) {\n push ? pushHash(current) : replaceHash(current);\n }\n };\n\n HashHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n return getHash()\n };\n\n return HashHistory;\n}(History));\n\nfunction checkFallback (base) {\n var location = getLocation(base);\n if (!/^\\/#/.test(location)) {\n window.location.replace(cleanPath(base + '/#' + location));\n return true\n }\n}\n\nfunction ensureSlash () {\n var path = getHash();\n if (path.charAt(0) === '/') {\n return true\n }\n replaceHash('/' + path);\n return false\n}\n\nfunction getHash () {\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 index = href.indexOf('#');\n // empty path\n if (index < 0) { return '' }\n\n href = href.slice(index + 1);\n // decode the hash but not the search or hash\n // as search(query) is already decoded\n // https://github.com/vuejs/vue-router/issues/2708\n var searchIndex = href.indexOf('?');\n if (searchIndex < 0) {\n var hashIndex = href.indexOf('#');\n if (hashIndex > -1) {\n href = decodeURI(href.slice(0, hashIndex)) + href.slice(hashIndex);\n } else { href = decodeURI(href); }\n } else {\n href = decodeURI(href.slice(0, searchIndex)) + href.slice(searchIndex);\n }\n\n return href\n}\n\nfunction getUrl (path) {\n var href = window.location.href;\n var i = href.indexOf('#');\n var base = i >= 0 ? href.slice(0, i) : href;\n return (base + \"#\" + path)\n}\n\nfunction pushHash (path) {\n if (supportsPushState) {\n pushState(getUrl(path));\n } else {\n window.location.hash = path;\n }\n}\n\nfunction replaceHash (path) {\n if (supportsPushState) {\n replaceState(getUrl(path));\n } else {\n window.location.replace(getUrl(path));\n }\n}\n\n/* */\n\nvar AbstractHistory = /*@__PURE__*/(function (History) {\n function AbstractHistory (router, base) {\n History.call(this, router, base);\n this.stack = [];\n this.index = -1;\n }\n\n if ( History ) AbstractHistory.__proto__ = History;\n AbstractHistory.prototype = Object.create( History && History.prototype );\n AbstractHistory.prototype.constructor = AbstractHistory;\n\n AbstractHistory.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index + 1).concat(route);\n this$1.index++;\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n this.transitionTo(\n location,\n function (route) {\n this$1.stack = this$1.stack.slice(0, this$1.index).concat(route);\n onComplete && onComplete(route);\n },\n onAbort\n );\n };\n\n AbstractHistory.prototype.go = function go (n) {\n var this$1 = this;\n\n var targetIndex = this.index + n;\n if (targetIndex < 0 || targetIndex >= this.stack.length) {\n return\n }\n var route = this.stack[targetIndex];\n this.confirmTransition(\n route,\n function () {\n this$1.index = targetIndex;\n this$1.updateRoute(route);\n },\n function (err) {\n if (isExtendedError(NavigationDuplicated, err)) {\n this$1.index = targetIndex;\n }\n }\n );\n };\n\n AbstractHistory.prototype.getCurrentLocation = function getCurrentLocation () {\n var current = this.stack[this.stack.length - 1];\n return current ? current.fullPath : '/'\n };\n\n AbstractHistory.prototype.ensureURL = function ensureURL () {\n // noop\n };\n\n return AbstractHistory;\n}(History));\n\n/* */\n\n\n\nvar VueRouter = function VueRouter (options) {\n if ( options === void 0 ) options = {};\n\n this.app = null;\n this.apps = [];\n this.options = options;\n this.beforeHooks = [];\n this.resolveHooks = [];\n this.afterHooks = [];\n this.matcher = createMatcher(options.routes || [], this);\n\n var mode = options.mode || 'hash';\n this.fallback = mode === 'history' && !supportsPushState && options.fallback !== false;\n if (this.fallback) {\n mode = 'hash';\n }\n if (!inBrowser) {\n mode = 'abstract';\n }\n this.mode = mode;\n\n switch (mode) {\n case 'history':\n this.history = new HTML5History(this, options.base);\n break\n case 'hash':\n this.history = new HashHistory(this, options.base, this.fallback);\n break\n case 'abstract':\n this.history = new AbstractHistory(this, options.base);\n break\n default:\n if (process.env.NODE_ENV !== 'production') {\n assert(false, (\"invalid mode: \" + mode));\n }\n }\n};\n\nvar prototypeAccessors = { currentRoute: { configurable: true } };\n\nVueRouter.prototype.match = function match (\n raw,\n current,\n redirectedFrom\n) {\n return this.matcher.match(raw, current, redirectedFrom)\n};\n\nprototypeAccessors.currentRoute.get = function () {\n return this.history && this.history.current\n};\n\nVueRouter.prototype.init = function init (app /* Vue component instance */) {\n var this$1 = this;\n\n process.env.NODE_ENV !== 'production' && assert(\n install.installed,\n \"not installed. Make sure to call `Vue.use(VueRouter)` \" +\n \"before creating root instance.\"\n );\n\n this.apps.push(app);\n\n // set up app destroyed handler\n // https://github.com/vuejs/vue-router/issues/2639\n app.$once('hook:destroyed', function () {\n // clean out app from this.apps array once destroyed\n var index = this$1.apps.indexOf(app);\n if (index > -1) { this$1.apps.splice(index, 1); }\n // ensure we still have a main app or null if no apps\n // we do not release the router so it can be reused\n if (this$1.app === app) { this$1.app = this$1.apps[0] || null; }\n });\n\n // main app previously initialized\n // return as we don't need to set up new history listener\n if (this.app) {\n return\n }\n\n this.app = app;\n\n var history = this.history;\n\n if (history instanceof HTML5History) {\n history.transitionTo(history.getCurrentLocation());\n } else if (history instanceof HashHistory) {\n var setupHashListener = function () {\n history.setupListeners();\n };\n history.transitionTo(\n history.getCurrentLocation(),\n setupHashListener,\n setupHashListener\n );\n }\n\n history.listen(function (route) {\n this$1.apps.forEach(function (app) {\n app._route = route;\n });\n });\n};\n\nVueRouter.prototype.beforeEach = function beforeEach (fn) {\n return registerHook(this.beforeHooks, fn)\n};\n\nVueRouter.prototype.beforeResolve = function beforeResolve (fn) {\n return registerHook(this.resolveHooks, fn)\n};\n\nVueRouter.prototype.afterEach = function afterEach (fn) {\n return registerHook(this.afterHooks, fn)\n};\n\nVueRouter.prototype.onReady = function onReady (cb, errorCb) {\n this.history.onReady(cb, errorCb);\n};\n\nVueRouter.prototype.onError = function onError (errorCb) {\n this.history.onError(errorCb);\n};\n\nVueRouter.prototype.push = function push (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.push(location, resolve, reject);\n })\n } else {\n this.history.push(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.replace = function replace (location, onComplete, onAbort) {\n var this$1 = this;\n\n // $flow-disable-line\n if (!onComplete && !onAbort && typeof Promise !== 'undefined') {\n return new Promise(function (resolve, reject) {\n this$1.history.replace(location, resolve, reject);\n })\n } else {\n this.history.replace(location, onComplete, onAbort);\n }\n};\n\nVueRouter.prototype.go = function go (n) {\n this.history.go(n);\n};\n\nVueRouter.prototype.back = function back () {\n this.go(-1);\n};\n\nVueRouter.prototype.forward = function forward () {\n this.go(1);\n};\n\nVueRouter.prototype.getMatchedComponents = function getMatchedComponents (to) {\n var route = to\n ? to.matched\n ? to\n : this.resolve(to).route\n : this.currentRoute;\n if (!route) {\n return []\n }\n return [].concat.apply([], route.matched.map(function (m) {\n return Object.keys(m.components).map(function (key) {\n return m.components[key]\n })\n }))\n};\n\nVueRouter.prototype.resolve = function resolve (\n to,\n current,\n append\n) {\n current = current || this.history.current;\n var location = normalizeLocation(\n to,\n current,\n append,\n this\n );\n var route = this.match(location, current);\n var fullPath = route.redirectedFrom || route.fullPath;\n var base = this.history.base;\n var href = createHref(base, fullPath, this.mode);\n return {\n location: location,\n route: route,\n href: href,\n // for backwards compat\n normalizedTo: location,\n resolved: route\n }\n};\n\nVueRouter.prototype.addRoutes = function addRoutes (routes) {\n this.matcher.addRoutes(routes);\n if (this.history.current !== START) {\n this.history.transitionTo(this.history.getCurrentLocation());\n }\n};\n\nObject.defineProperties( VueRouter.prototype, prototypeAccessors );\n\nfunction registerHook (list, fn) {\n list.push(fn);\n return function () {\n var i = list.indexOf(fn);\n if (i > -1) { list.splice(i, 1); }\n }\n}\n\nfunction createHref (base, fullPath, mode) {\n var path = mode === 'hash' ? '#' + fullPath : fullPath;\n return base ? cleanPath(base + '/' + path) : path\n}\n\nVueRouter.install = install;\nVueRouter.version = '3.1.5';\n\nif (inBrowser && window.Vue) {\n window.Vue.use(VueRouter);\n}\n\nexport default VueRouter;\n","/*!\n * Vue.js v2.6.11\n * (c) 2014-2019 Evan You\n * Released under the MIT License.\n */\n/* */\n\nvar emptyObject = Object.freeze({});\n\n// These helpers produce better VM code in JS engines due to their\n// explicitness and function inlining.\nfunction isUndef (v) {\n return v === undefined || v === null\n}\n\nfunction isDef (v) {\n return v !== undefined && v !== null\n}\n\nfunction isTrue (v) {\n return v === true\n}\n\nfunction isFalse (v) {\n return v === false\n}\n\n/**\n * Check if value is primitive.\n */\nfunction isPrimitive (value) {\n return (\n typeof value === 'string' ||\n typeof value === 'number' ||\n // $flow-disable-line\n typeof value === 'symbol' ||\n typeof value === 'boolean'\n )\n}\n\n/**\n * Quick object check - this is primarily used to tell\n * Objects from primitive values when we know the value\n * is a JSON-compliant type.\n */\nfunction isObject (obj) {\n return obj !== null && typeof obj === 'object'\n}\n\n/**\n * Get the raw type string of a value, e.g., [object Object].\n */\nvar _toString = Object.prototype.toString;\n\nfunction toRawType (value) {\n return _toString.call(value).slice(8, -1)\n}\n\n/**\n * Strict object type check. Only returns true\n * for plain JavaScript objects.\n */\nfunction isPlainObject (obj) {\n return _toString.call(obj) === '[object Object]'\n}\n\nfunction isRegExp (v) {\n return _toString.call(v) === '[object RegExp]'\n}\n\n/**\n * Check if val is a valid array index.\n */\nfunction isValidArrayIndex (val) {\n var n = parseFloat(String(val));\n return n >= 0 && Math.floor(n) === n && isFinite(val)\n}\n\nfunction isPromise (val) {\n return (\n isDef(val) &&\n typeof val.then === 'function' &&\n typeof val.catch === 'function'\n )\n}\n\n/**\n * Convert a value to a string that is actually rendered.\n */\nfunction toString (val) {\n return val == null\n ? ''\n : Array.isArray(val) || (isPlainObject(val) && val.toString === _toString)\n ? JSON.stringify(val, null, 2)\n : String(val)\n}\n\n/**\n * Convert an input value to a number for persistence.\n * If the conversion fails, return original string.\n */\nfunction toNumber (val) {\n var n = parseFloat(val);\n return isNaN(n) ? val : n\n}\n\n/**\n * Make a map and return a function for checking if a key\n * is in that map.\n */\nfunction makeMap (\n str,\n expectsLowerCase\n) {\n var map = Object.create(null);\n var list = str.split(',');\n for (var i = 0; i < list.length; i++) {\n map[list[i]] = true;\n }\n return expectsLowerCase\n ? function (val) { return map[val.toLowerCase()]; }\n : function (val) { return map[val]; }\n}\n\n/**\n * Check if a tag is a built-in tag.\n */\nvar isBuiltInTag = makeMap('slot,component', true);\n\n/**\n * Check if an attribute is a reserved attribute.\n */\nvar isReservedAttribute = makeMap('key,ref,slot,slot-scope,is');\n\n/**\n * Remove an item from an array.\n */\nfunction remove (arr, item) {\n if (arr.length) {\n var index = arr.indexOf(item);\n if (index > -1) {\n return arr.splice(index, 1)\n }\n }\n}\n\n/**\n * Check whether an object has the property.\n */\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nfunction hasOwn (obj, key) {\n return hasOwnProperty.call(obj, key)\n}\n\n/**\n * Create a cached version of a pure function.\n */\nfunction cached (fn) {\n var cache = Object.create(null);\n return (function cachedFn (str) {\n var hit = cache[str];\n return hit || (cache[str] = fn(str))\n })\n}\n\n/**\n * Camelize a hyphen-delimited string.\n */\nvar camelizeRE = /-(\\w)/g;\nvar camelize = cached(function (str) {\n return str.replace(camelizeRE, function (_, c) { return c ? c.toUpperCase() : ''; })\n});\n\n/**\n * Capitalize a string.\n */\nvar capitalize = cached(function (str) {\n return str.charAt(0).toUpperCase() + str.slice(1)\n});\n\n/**\n * Hyphenate a camelCase string.\n */\nvar hyphenateRE = /\\B([A-Z])/g;\nvar hyphenate = cached(function (str) {\n return str.replace(hyphenateRE, '-$1').toLowerCase()\n});\n\n/**\n * Simple bind polyfill for environments that do not support it,\n * e.g., PhantomJS 1.x. Technically, we don't need this anymore\n * since native bind is now performant enough in most browsers.\n * But removing it would mean breaking code that was able to run in\n * PhantomJS 1.x, so this must be kept for backward compatibility.\n */\n\n/* istanbul ignore next */\nfunction polyfillBind (fn, ctx) {\n function boundFn (a) {\n var l = arguments.length;\n return l\n ? l > 1\n ? fn.apply(ctx, arguments)\n : fn.call(ctx, a)\n : fn.call(ctx)\n }\n\n boundFn._length = fn.length;\n return boundFn\n}\n\nfunction nativeBind (fn, ctx) {\n return fn.bind(ctx)\n}\n\nvar bind = Function.prototype.bind\n ? nativeBind\n : polyfillBind;\n\n/**\n * Convert an Array-like object to a real Array.\n */\nfunction toArray (list, start) {\n start = start || 0;\n var i = list.length - start;\n var ret = new Array(i);\n while (i--) {\n ret[i] = list[i + start];\n }\n return ret\n}\n\n/**\n * Mix properties into target object.\n */\nfunction extend (to, _from) {\n for (var key in _from) {\n to[key] = _from[key];\n }\n return to\n}\n\n/**\n * Merge an Array of Objects into a single Object.\n */\nfunction toObject (arr) {\n var res = {};\n for (var i = 0; i < arr.length; i++) {\n if (arr[i]) {\n extend(res, arr[i]);\n }\n }\n return res\n}\n\n/* eslint-disable no-unused-vars */\n\n/**\n * Perform no operation.\n * Stubbing args to make Flow happy without leaving useless transpiled code\n * with ...rest (https://flow.org/blog/2017/05/07/Strict-Function-Call-Arity/).\n */\nfunction noop (a, b, c) {}\n\n/**\n * Always return false.\n */\nvar no = function (a, b, c) { return false; };\n\n/* eslint-enable no-unused-vars */\n\n/**\n * Return the same value.\n */\nvar identity = function (_) { return _; };\n\n/**\n * Check if two values are loosely equal - that is,\n * if they are plain objects, do they have the same shape?\n */\nfunction looseEqual (a, b) {\n if (a === b) { return true }\n var isObjectA = isObject(a);\n var isObjectB = isObject(b);\n if (isObjectA && isObjectB) {\n try {\n var isArrayA = Array.isArray(a);\n var isArrayB = Array.isArray(b);\n if (isArrayA && isArrayB) {\n return a.length === b.length && a.every(function (e, i) {\n return looseEqual(e, b[i])\n })\n } else if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime()\n } else if (!isArrayA && !isArrayB) {\n var keysA = Object.keys(a);\n var keysB = Object.keys(b);\n return keysA.length === keysB.length && keysA.every(function (key) {\n return looseEqual(a[key], b[key])\n })\n } else {\n /* istanbul ignore next */\n return false\n }\n } catch (e) {\n /* istanbul ignore next */\n return false\n }\n } else if (!isObjectA && !isObjectB) {\n return String(a) === String(b)\n } else {\n return false\n }\n}\n\n/**\n * Return the first index at which a loosely equal value can be\n * found in the array (if value is a plain object, the array must\n * contain an object of the same shape), or -1 if it is not present.\n */\nfunction looseIndexOf (arr, val) {\n for (var i = 0; i < arr.length; i++) {\n if (looseEqual(arr[i], val)) { return i }\n }\n return -1\n}\n\n/**\n * Ensure a function is called only once.\n */\nfunction once (fn) {\n var called = false;\n return function () {\n if (!called) {\n called = true;\n fn.apply(this, arguments);\n }\n }\n}\n\nvar SSR_ATTR = 'data-server-rendered';\n\nvar ASSET_TYPES = [\n 'component',\n 'directive',\n 'filter'\n];\n\nvar LIFECYCLE_HOOKS = [\n 'beforeCreate',\n 'created',\n 'beforeMount',\n 'mounted',\n 'beforeUpdate',\n 'updated',\n 'beforeDestroy',\n 'destroyed',\n 'activated',\n 'deactivated',\n 'errorCaptured',\n 'serverPrefetch'\n];\n\n/* */\n\n\n\nvar config = ({\n /**\n * Option merge strategies (used in core/util/options)\n */\n // $flow-disable-line\n optionMergeStrategies: Object.create(null),\n\n /**\n * Whether to suppress warnings.\n */\n silent: false,\n\n /**\n * Show production mode tip message on boot?\n */\n productionTip: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to enable devtools\n */\n devtools: process.env.NODE_ENV !== 'production',\n\n /**\n * Whether to record perf\n */\n performance: false,\n\n /**\n * Error handler for watcher errors\n */\n errorHandler: null,\n\n /**\n * Warn handler for watcher warns\n */\n warnHandler: null,\n\n /**\n * Ignore certain custom elements\n */\n ignoredElements: [],\n\n /**\n * Custom user key aliases for v-on\n */\n // $flow-disable-line\n keyCodes: Object.create(null),\n\n /**\n * Check if a tag is reserved so that it cannot be registered as a\n * component. This is platform-dependent and may be overwritten.\n */\n isReservedTag: no,\n\n /**\n * Check if an attribute is reserved so that it cannot be used as a component\n * prop. This is platform-dependent and may be overwritten.\n */\n isReservedAttr: no,\n\n /**\n * Check if a tag is an unknown element.\n * Platform-dependent.\n */\n isUnknownElement: no,\n\n /**\n * Get the namespace of an element\n */\n getTagNamespace: noop,\n\n /**\n * Parse the real tag name for the specific platform.\n */\n parsePlatformTagName: identity,\n\n /**\n * Check if an attribute must be bound using property, e.g. value\n * Platform-dependent.\n */\n mustUseProp: no,\n\n /**\n * Perform updates asynchronously. Intended to be used by Vue Test Utils\n * This will significantly reduce performance if set to false.\n */\n async: true,\n\n /**\n * Exposed for legacy reasons\n */\n _lifecycleHooks: LIFECYCLE_HOOKS\n});\n\n/* */\n\n/**\n * unicode letters used for parsing html tags, component names and property paths.\n * using https://www.w3.org/TR/html53/semantics-scripting.html#potentialcustomelementname\n * skipping \\u10000-\\uEFFFF due to it freezing up PhantomJS\n */\nvar unicodeRegExp = /a-zA-Z\\u00B7\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u203F-\\u2040\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD/;\n\n/**\n * Check if a string starts with $ or _\n */\nfunction isReserved (str) {\n var c = (str + '').charCodeAt(0);\n return c === 0x24 || c === 0x5F\n}\n\n/**\n * Define a property.\n */\nfunction def (obj, key, val, enumerable) {\n Object.defineProperty(obj, key, {\n value: val,\n enumerable: !!enumerable,\n writable: true,\n configurable: true\n });\n}\n\n/**\n * Parse simple path.\n */\nvar bailRE = new RegExp((\"[^\" + (unicodeRegExp.source) + \".$_\\\\d]\"));\nfunction parsePath (path) {\n if (bailRE.test(path)) {\n return\n }\n var segments = path.split('.');\n return function (obj) {\n for (var i = 0; i < segments.length; i++) {\n if (!obj) { return }\n obj = obj[segments[i]];\n }\n return obj\n }\n}\n\n/* */\n\n// can we use __proto__?\nvar hasProto = '__proto__' in {};\n\n// Browser environment sniffing\nvar inBrowser = typeof window !== 'undefined';\nvar inWeex = typeof WXEnvironment !== 'undefined' && !!WXEnvironment.platform;\nvar weexPlatform = inWeex && WXEnvironment.platform.toLowerCase();\nvar UA = inBrowser && window.navigator.userAgent.toLowerCase();\nvar isIE = UA && /msie|trident/.test(UA);\nvar isIE9 = UA && UA.indexOf('msie 9.0') > 0;\nvar isEdge = UA && UA.indexOf('edge/') > 0;\nvar isAndroid = (UA && UA.indexOf('android') > 0) || (weexPlatform === 'android');\nvar isIOS = (UA && /iphone|ipad|ipod|ios/.test(UA)) || (weexPlatform === 'ios');\nvar isChrome = UA && /chrome\\/\\d+/.test(UA) && !isEdge;\nvar isPhantomJS = UA && /phantomjs/.test(UA);\nvar isFF = UA && UA.match(/firefox\\/(\\d+)/);\n\n// Firefox has a \"watch\" function on Object.prototype...\nvar nativeWatch = ({}).watch;\n\nvar supportsPassive = false;\nif (inBrowser) {\n try {\n var opts = {};\n Object.defineProperty(opts, 'passive', ({\n get: function get () {\n /* istanbul ignore next */\n supportsPassive = true;\n }\n })); // https://github.com/facebook/flow/issues/285\n window.addEventListener('test-passive', null, opts);\n } catch (e) {}\n}\n\n// this needs to be lazy-evaled because vue may be required before\n// vue-server-renderer can set VUE_ENV\nvar _isServer;\nvar isServerRendering = function () {\n if (_isServer === undefined) {\n /* istanbul ignore if */\n if (!inBrowser && !inWeex && typeof global !== 'undefined') {\n // detect presence of vue-server-renderer and avoid\n // Webpack shimming the process\n _isServer = global['process'] && global['process'].env.VUE_ENV === 'server';\n } else {\n _isServer = false;\n }\n }\n return _isServer\n};\n\n// detect devtools\nvar devtools = inBrowser && window.__VUE_DEVTOOLS_GLOBAL_HOOK__;\n\n/* istanbul ignore next */\nfunction isNative (Ctor) {\n return typeof Ctor === 'function' && /native code/.test(Ctor.toString())\n}\n\nvar hasSymbol =\n typeof Symbol !== 'undefined' && isNative(Symbol) &&\n typeof Reflect !== 'undefined' && isNative(Reflect.ownKeys);\n\nvar _Set;\n/* istanbul ignore if */ // $flow-disable-line\nif (typeof Set !== 'undefined' && isNative(Set)) {\n // use native Set when available.\n _Set = Set;\n} else {\n // a non-standard Set polyfill that only works with primitive keys.\n _Set = /*@__PURE__*/(function () {\n function Set () {\n this.set = Object.create(null);\n }\n Set.prototype.has = function has (key) {\n return this.set[key] === true\n };\n Set.prototype.add = function add (key) {\n this.set[key] = true;\n };\n Set.prototype.clear = function clear () {\n this.set = Object.create(null);\n };\n\n return Set;\n }());\n}\n\n/* */\n\nvar warn = noop;\nvar tip = noop;\nvar generateComponentTrace = (noop); // work around flow check\nvar formatComponentName = (noop);\n\nif (process.env.NODE_ENV !== 'production') {\n var hasConsole = typeof console !== 'undefined';\n var classifyRE = /(?:^|[-_])(\\w)/g;\n var classify = function (str) { return str\n .replace(classifyRE, function (c) { return c.toUpperCase(); })\n .replace(/[-_]/g, ''); };\n\n warn = function (msg, vm) {\n var trace = vm ? generateComponentTrace(vm) : '';\n\n if (config.warnHandler) {\n config.warnHandler.call(null, msg, vm, trace);\n } else if (hasConsole && (!config.silent)) {\n console.error((\"[Vue warn]: \" + msg + trace));\n }\n };\n\n tip = function (msg, vm) {\n if (hasConsole && (!config.silent)) {\n console.warn(\"[Vue tip]: \" + msg + (\n vm ? generateComponentTrace(vm) : ''\n ));\n }\n };\n\n formatComponentName = function (vm, includeFile) {\n if (vm.$root === vm) {\n return ''\n }\n var options = typeof vm === 'function' && vm.cid != null\n ? vm.options\n : vm._isVue\n ? vm.$options || vm.constructor.options\n : vm;\n var name = options.name || options._componentTag;\n var file = options.__file;\n if (!name && file) {\n var match = file.match(/([^/\\\\]+)\\.vue$/);\n name = match && match[1];\n }\n\n return (\n (name ? (\"<\" + (classify(name)) + \">\") : \"\") +\n (file && includeFile !== false ? (\" at \" + file) : '')\n )\n };\n\n var repeat = function (str, n) {\n var res = '';\n while (n) {\n if (n % 2 === 1) { res += str; }\n if (n > 1) { str += str; }\n n >>= 1;\n }\n return res\n };\n\n generateComponentTrace = function (vm) {\n if (vm._isVue && vm.$parent) {\n var tree = [];\n var currentRecursiveSequence = 0;\n while (vm) {\n if (tree.length > 0) {\n var last = tree[tree.length - 1];\n if (last.constructor === vm.constructor) {\n currentRecursiveSequence++;\n vm = vm.$parent;\n continue\n } else if (currentRecursiveSequence > 0) {\n tree[tree.length - 1] = [last, currentRecursiveSequence];\n currentRecursiveSequence = 0;\n }\n }\n tree.push(vm);\n vm = vm.$parent;\n }\n return '\\n\\nfound in\\n\\n' + tree\n .map(function (vm, i) { return (\"\" + (i === 0 ? '---> ' : repeat(' ', 5 + i * 2)) + (Array.isArray(vm)\n ? ((formatComponentName(vm[0])) + \"... (\" + (vm[1]) + \" recursive calls)\")\n : formatComponentName(vm))); })\n .join('\\n')\n } else {\n return (\"\\n\\n(found in \" + (formatComponentName(vm)) + \")\")\n }\n };\n}\n\n/* */\n\nvar uid = 0;\n\n/**\n * A dep is an observable that can have multiple\n * directives subscribing to it.\n */\nvar Dep = function Dep () {\n this.id = uid++;\n this.subs = [];\n};\n\nDep.prototype.addSub = function addSub (sub) {\n this.subs.push(sub);\n};\n\nDep.prototype.removeSub = function removeSub (sub) {\n remove(this.subs, sub);\n};\n\nDep.prototype.depend = function depend () {\n if (Dep.target) {\n Dep.target.addDep(this);\n }\n};\n\nDep.prototype.notify = function notify () {\n // stabilize the subscriber list first\n var subs = this.subs.slice();\n if (process.env.NODE_ENV !== 'production' && !config.async) {\n // subs aren't sorted in scheduler if not running async\n // we need to sort them now to make sure they fire in correct\n // order\n subs.sort(function (a, b) { return a.id - b.id; });\n }\n for (var i = 0, l = subs.length; i < l; i++) {\n subs[i].update();\n }\n};\n\n// The current target watcher being evaluated.\n// This is globally unique because only one watcher\n// can be evaluated at a time.\nDep.target = null;\nvar targetStack = [];\n\nfunction pushTarget (target) {\n targetStack.push(target);\n Dep.target = target;\n}\n\nfunction popTarget () {\n targetStack.pop();\n Dep.target = targetStack[targetStack.length - 1];\n}\n\n/* */\n\nvar VNode = function VNode (\n tag,\n data,\n children,\n text,\n elm,\n context,\n componentOptions,\n asyncFactory\n) {\n this.tag = tag;\n this.data = data;\n this.children = children;\n this.text = text;\n this.elm = elm;\n this.ns = undefined;\n this.context = context;\n this.fnContext = undefined;\n this.fnOptions = undefined;\n this.fnScopeId = undefined;\n this.key = data && data.key;\n this.componentOptions = componentOptions;\n this.componentInstance = undefined;\n this.parent = undefined;\n this.raw = false;\n this.isStatic = false;\n this.isRootInsert = true;\n this.isComment = false;\n this.isCloned = false;\n this.isOnce = false;\n this.asyncFactory = asyncFactory;\n this.asyncMeta = undefined;\n this.isAsyncPlaceholder = false;\n};\n\nvar prototypeAccessors = { child: { configurable: true } };\n\n// DEPRECATED: alias for componentInstance for backwards compat.\n/* istanbul ignore next */\nprototypeAccessors.child.get = function () {\n return this.componentInstance\n};\n\nObject.defineProperties( VNode.prototype, prototypeAccessors );\n\nvar createEmptyVNode = function (text) {\n if ( text === void 0 ) text = '';\n\n var node = new VNode();\n node.text = text;\n node.isComment = true;\n return node\n};\n\nfunction createTextVNode (val) {\n return new VNode(undefined, undefined, undefined, String(val))\n}\n\n// optimized shallow clone\n// used for static nodes and slot nodes because they may be reused across\n// multiple renders, cloning them avoids errors when DOM manipulations rely\n// on their elm reference.\nfunction cloneVNode (vnode) {\n var cloned = new VNode(\n vnode.tag,\n vnode.data,\n // #7975\n // clone children array to avoid mutating original in case of cloning\n // a child.\n vnode.children && vnode.children.slice(),\n vnode.text,\n vnode.elm,\n vnode.context,\n vnode.componentOptions,\n vnode.asyncFactory\n );\n cloned.ns = vnode.ns;\n cloned.isStatic = vnode.isStatic;\n cloned.key = vnode.key;\n cloned.isComment = vnode.isComment;\n cloned.fnContext = vnode.fnContext;\n cloned.fnOptions = vnode.fnOptions;\n cloned.fnScopeId = vnode.fnScopeId;\n cloned.asyncMeta = vnode.asyncMeta;\n cloned.isCloned = true;\n return cloned\n}\n\n/*\n * not type checking this file because flow doesn't play well with\n * dynamically accessing methods on Array prototype\n */\n\nvar arrayProto = Array.prototype;\nvar arrayMethods = Object.create(arrayProto);\n\nvar methodsToPatch = [\n 'push',\n 'pop',\n 'shift',\n 'unshift',\n 'splice',\n 'sort',\n 'reverse'\n];\n\n/**\n * Intercept mutating methods and emit events\n */\nmethodsToPatch.forEach(function (method) {\n // cache original method\n var original = arrayProto[method];\n def(arrayMethods, method, function mutator () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n var result = original.apply(this, args);\n var ob = this.__ob__;\n var inserted;\n switch (method) {\n case 'push':\n case 'unshift':\n inserted = args;\n break\n case 'splice':\n inserted = args.slice(2);\n break\n }\n if (inserted) { ob.observeArray(inserted); }\n // notify change\n ob.dep.notify();\n return result\n });\n});\n\n/* */\n\nvar arrayKeys = Object.getOwnPropertyNames(arrayMethods);\n\n/**\n * In some cases we may want to disable observation inside a component's\n * update computation.\n */\nvar shouldObserve = true;\n\nfunction toggleObserving (value) {\n shouldObserve = value;\n}\n\n/**\n * Observer class that is attached to each observed\n * object. Once attached, the observer converts the target\n * object's property keys into getter/setters that\n * collect dependencies and dispatch updates.\n */\nvar Observer = function Observer (value) {\n this.value = value;\n this.dep = new Dep();\n this.vmCount = 0;\n def(value, '__ob__', this);\n if (Array.isArray(value)) {\n if (hasProto) {\n protoAugment(value, arrayMethods);\n } else {\n copyAugment(value, arrayMethods, arrayKeys);\n }\n this.observeArray(value);\n } else {\n this.walk(value);\n }\n};\n\n/**\n * Walk through all properties and convert them into\n * getter/setters. This method should only be called when\n * value type is Object.\n */\nObserver.prototype.walk = function walk (obj) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length; i++) {\n defineReactive$$1(obj, keys[i]);\n }\n};\n\n/**\n * Observe a list of Array items.\n */\nObserver.prototype.observeArray = function observeArray (items) {\n for (var i = 0, l = items.length; i < l; i++) {\n observe(items[i]);\n }\n};\n\n// helpers\n\n/**\n * Augment a target Object or Array by intercepting\n * the prototype chain using __proto__\n */\nfunction protoAugment (target, src) {\n /* eslint-disable no-proto */\n target.__proto__ = src;\n /* eslint-enable no-proto */\n}\n\n/**\n * Augment a target Object or Array by defining\n * hidden properties.\n */\n/* istanbul ignore next */\nfunction copyAugment (target, src, keys) {\n for (var i = 0, l = keys.length; i < l; i++) {\n var key = keys[i];\n def(target, key, src[key]);\n }\n}\n\n/**\n * Attempt to create an observer instance for a value,\n * returns the new observer if successfully observed,\n * or the existing observer if the value already has one.\n */\nfunction observe (value, asRootData) {\n if (!isObject(value) || value instanceof VNode) {\n return\n }\n var ob;\n if (hasOwn(value, '__ob__') && value.__ob__ instanceof Observer) {\n ob = value.__ob__;\n } else if (\n shouldObserve &&\n !isServerRendering() &&\n (Array.isArray(value) || isPlainObject(value)) &&\n Object.isExtensible(value) &&\n !value._isVue\n ) {\n ob = new Observer(value);\n }\n if (asRootData && ob) {\n ob.vmCount++;\n }\n return ob\n}\n\n/**\n * Define a reactive property on an Object.\n */\nfunction defineReactive$$1 (\n obj,\n key,\n val,\n customSetter,\n shallow\n) {\n var dep = new Dep();\n\n var property = Object.getOwnPropertyDescriptor(obj, key);\n if (property && property.configurable === false) {\n return\n }\n\n // cater for pre-defined getter/setters\n var getter = property && property.get;\n var setter = property && property.set;\n if ((!getter || setter) && arguments.length === 2) {\n val = obj[key];\n }\n\n var childOb = !shallow && observe(val);\n Object.defineProperty(obj, key, {\n enumerable: true,\n configurable: true,\n get: function reactiveGetter () {\n var value = getter ? getter.call(obj) : val;\n if (Dep.target) {\n dep.depend();\n if (childOb) {\n childOb.dep.depend();\n if (Array.isArray(value)) {\n dependArray(value);\n }\n }\n }\n return value\n },\n set: function reactiveSetter (newVal) {\n var value = getter ? getter.call(obj) : val;\n /* eslint-disable no-self-compare */\n if (newVal === value || (newVal !== newVal && value !== value)) {\n return\n }\n /* eslint-enable no-self-compare */\n if (process.env.NODE_ENV !== 'production' && customSetter) {\n customSetter();\n }\n // #7981: for accessor properties without setter\n if (getter && !setter) { return }\n if (setter) {\n setter.call(obj, newVal);\n } else {\n val = newVal;\n }\n childOb = !shallow && observe(newVal);\n dep.notify();\n }\n });\n}\n\n/**\n * Set a property on an object. Adds the new property and\n * triggers change notification if the property doesn't\n * already exist.\n */\nfunction set (target, key, val) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot set reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.length = Math.max(target.length, key);\n target.splice(key, 1, val);\n return val\n }\n if (key in target && !(key in Object.prototype)) {\n target[key] = val;\n return val\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid adding reactive properties to a Vue instance or its root $data ' +\n 'at runtime - declare it upfront in the data option.'\n );\n return val\n }\n if (!ob) {\n target[key] = val;\n return val\n }\n defineReactive$$1(ob.value, key, val);\n ob.dep.notify();\n return val\n}\n\n/**\n * Delete a property and trigger change if necessary.\n */\nfunction del (target, key) {\n if (process.env.NODE_ENV !== 'production' &&\n (isUndef(target) || isPrimitive(target))\n ) {\n warn((\"Cannot delete reactive property on undefined, null, or primitive value: \" + ((target))));\n }\n if (Array.isArray(target) && isValidArrayIndex(key)) {\n target.splice(key, 1);\n return\n }\n var ob = (target).__ob__;\n if (target._isVue || (ob && ob.vmCount)) {\n process.env.NODE_ENV !== 'production' && warn(\n 'Avoid deleting properties on a Vue instance or its root $data ' +\n '- just set it to null.'\n );\n return\n }\n if (!hasOwn(target, key)) {\n return\n }\n delete target[key];\n if (!ob) {\n return\n }\n ob.dep.notify();\n}\n\n/**\n * Collect dependencies on array elements when the array is touched, since\n * we cannot intercept array element access like property getters.\n */\nfunction dependArray (value) {\n for (var e = (void 0), i = 0, l = value.length; i < l; i++) {\n e = value[i];\n e && e.__ob__ && e.__ob__.dep.depend();\n if (Array.isArray(e)) {\n dependArray(e);\n }\n }\n}\n\n/* */\n\n/**\n * Option overwriting strategies are functions that handle\n * how to merge a parent option value and a child option\n * value into the final value.\n */\nvar strats = config.optionMergeStrategies;\n\n/**\n * Options with restrictions\n */\nif (process.env.NODE_ENV !== 'production') {\n strats.el = strats.propsData = function (parent, child, vm, key) {\n if (!vm) {\n warn(\n \"option \\\"\" + key + \"\\\" can only be used during instance \" +\n 'creation with the `new` keyword.'\n );\n }\n return defaultStrat(parent, child)\n };\n}\n\n/**\n * Helper that recursively merges two data objects together.\n */\nfunction mergeData (to, from) {\n if (!from) { return to }\n var key, toVal, fromVal;\n\n var keys = hasSymbol\n ? Reflect.ownKeys(from)\n : Object.keys(from);\n\n for (var i = 0; i < keys.length; i++) {\n key = keys[i];\n // in case the object is already observed...\n if (key === '__ob__') { continue }\n toVal = to[key];\n fromVal = from[key];\n if (!hasOwn(to, key)) {\n set(to, key, fromVal);\n } else if (\n toVal !== fromVal &&\n isPlainObject(toVal) &&\n isPlainObject(fromVal)\n ) {\n mergeData(toVal, fromVal);\n }\n }\n return to\n}\n\n/**\n * Data\n */\nfunction mergeDataOrFn (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n // in a Vue.extend merge, both should be functions\n if (!childVal) {\n return parentVal\n }\n if (!parentVal) {\n return childVal\n }\n // when parentVal & childVal are both present,\n // we need to return a function that returns the\n // merged result of both functions... no need to\n // check if parentVal is a function here because\n // it has to be a function to pass previous merges.\n return function mergedDataFn () {\n return mergeData(\n typeof childVal === 'function' ? childVal.call(this, this) : childVal,\n typeof parentVal === 'function' ? parentVal.call(this, this) : parentVal\n )\n }\n } else {\n return function mergedInstanceDataFn () {\n // instance merge\n var instanceData = typeof childVal === 'function'\n ? childVal.call(vm, vm)\n : childVal;\n var defaultData = typeof parentVal === 'function'\n ? parentVal.call(vm, vm)\n : parentVal;\n if (instanceData) {\n return mergeData(instanceData, defaultData)\n } else {\n return defaultData\n }\n }\n }\n}\n\nstrats.data = function (\n parentVal,\n childVal,\n vm\n) {\n if (!vm) {\n if (childVal && typeof childVal !== 'function') {\n process.env.NODE_ENV !== 'production' && warn(\n 'The \"data\" option should be a function ' +\n 'that returns a per-instance value in component ' +\n 'definitions.',\n vm\n );\n\n return parentVal\n }\n return mergeDataOrFn(parentVal, childVal)\n }\n\n return mergeDataOrFn(parentVal, childVal, vm)\n};\n\n/**\n * Hooks and props are merged as arrays.\n */\nfunction mergeHook (\n parentVal,\n childVal\n) {\n var res = childVal\n ? parentVal\n ? parentVal.concat(childVal)\n : Array.isArray(childVal)\n ? childVal\n : [childVal]\n : parentVal;\n return res\n ? dedupeHooks(res)\n : res\n}\n\nfunction dedupeHooks (hooks) {\n var res = [];\n for (var i = 0; i < hooks.length; i++) {\n if (res.indexOf(hooks[i]) === -1) {\n res.push(hooks[i]);\n }\n }\n return res\n}\n\nLIFECYCLE_HOOKS.forEach(function (hook) {\n strats[hook] = mergeHook;\n});\n\n/**\n * Assets\n *\n * When a vm is present (instance creation), we need to do\n * a three-way merge between constructor options, instance\n * options and parent options.\n */\nfunction mergeAssets (\n parentVal,\n childVal,\n vm,\n key\n) {\n var res = Object.create(parentVal || null);\n if (childVal) {\n process.env.NODE_ENV !== 'production' && assertObjectType(key, childVal, vm);\n return extend(res, childVal)\n } else {\n return res\n }\n}\n\nASSET_TYPES.forEach(function (type) {\n strats[type + 's'] = mergeAssets;\n});\n\n/**\n * Watchers.\n *\n * Watchers hashes should not overwrite one\n * another, so we merge them as arrays.\n */\nstrats.watch = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n // work around Firefox's Object.prototype.watch...\n if (parentVal === nativeWatch) { parentVal = undefined; }\n if (childVal === nativeWatch) { childVal = undefined; }\n /* istanbul ignore if */\n if (!childVal) { return Object.create(parentVal || null) }\n if (process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = {};\n extend(ret, parentVal);\n for (var key$1 in childVal) {\n var parent = ret[key$1];\n var child = childVal[key$1];\n if (parent && !Array.isArray(parent)) {\n parent = [parent];\n }\n ret[key$1] = parent\n ? parent.concat(child)\n : Array.isArray(child) ? child : [child];\n }\n return ret\n};\n\n/**\n * Other object hashes.\n */\nstrats.props =\nstrats.methods =\nstrats.inject =\nstrats.computed = function (\n parentVal,\n childVal,\n vm,\n key\n) {\n if (childVal && process.env.NODE_ENV !== 'production') {\n assertObjectType(key, childVal, vm);\n }\n if (!parentVal) { return childVal }\n var ret = Object.create(null);\n extend(ret, parentVal);\n if (childVal) { extend(ret, childVal); }\n return ret\n};\nstrats.provide = mergeDataOrFn;\n\n/**\n * Default strategy.\n */\nvar defaultStrat = function (parentVal, childVal) {\n return childVal === undefined\n ? parentVal\n : childVal\n};\n\n/**\n * Validate component names\n */\nfunction checkComponents (options) {\n for (var key in options.components) {\n validateComponentName(key);\n }\n}\n\nfunction validateComponentName (name) {\n if (!new RegExp((\"^[a-zA-Z][\\\\-\\\\.0-9_\" + (unicodeRegExp.source) + \"]*$\")).test(name)) {\n warn(\n 'Invalid component name: \"' + name + '\". Component names ' +\n 'should conform to valid custom element name in html5 specification.'\n );\n }\n if (isBuiltInTag(name) || config.isReservedTag(name)) {\n warn(\n 'Do not use built-in or reserved HTML elements as component ' +\n 'id: ' + name\n );\n }\n}\n\n/**\n * Ensure all props option syntax are normalized into the\n * Object-based format.\n */\nfunction normalizeProps (options, vm) {\n var props = options.props;\n if (!props) { return }\n var res = {};\n var i, val, name;\n if (Array.isArray(props)) {\n i = props.length;\n while (i--) {\n val = props[i];\n if (typeof val === 'string') {\n name = camelize(val);\n res[name] = { type: null };\n } else if (process.env.NODE_ENV !== 'production') {\n warn('props must be strings when using array syntax.');\n }\n }\n } else if (isPlainObject(props)) {\n for (var key in props) {\n val = props[key];\n name = camelize(key);\n res[name] = isPlainObject(val)\n ? val\n : { type: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"props\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(props)) + \".\",\n vm\n );\n }\n options.props = res;\n}\n\n/**\n * Normalize all injections into Object-based format\n */\nfunction normalizeInject (options, vm) {\n var inject = options.inject;\n if (!inject) { return }\n var normalized = options.inject = {};\n if (Array.isArray(inject)) {\n for (var i = 0; i < inject.length; i++) {\n normalized[inject[i]] = { from: inject[i] };\n }\n } else if (isPlainObject(inject)) {\n for (var key in inject) {\n var val = inject[key];\n normalized[key] = isPlainObject(val)\n ? extend({ from: key }, val)\n : { from: val };\n }\n } else if (process.env.NODE_ENV !== 'production') {\n warn(\n \"Invalid value for option \\\"inject\\\": expected an Array or an Object, \" +\n \"but got \" + (toRawType(inject)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Normalize raw function directives into object format.\n */\nfunction normalizeDirectives (options) {\n var dirs = options.directives;\n if (dirs) {\n for (var key in dirs) {\n var def$$1 = dirs[key];\n if (typeof def$$1 === 'function') {\n dirs[key] = { bind: def$$1, update: def$$1 };\n }\n }\n }\n}\n\nfunction assertObjectType (name, value, vm) {\n if (!isPlainObject(value)) {\n warn(\n \"Invalid value for option \\\"\" + name + \"\\\": expected an Object, \" +\n \"but got \" + (toRawType(value)) + \".\",\n vm\n );\n }\n}\n\n/**\n * Merge two option objects into a new one.\n * Core utility used in both instantiation and inheritance.\n */\nfunction mergeOptions (\n parent,\n child,\n vm\n) {\n if (process.env.NODE_ENV !== 'production') {\n checkComponents(child);\n }\n\n if (typeof child === 'function') {\n child = child.options;\n }\n\n normalizeProps(child, vm);\n normalizeInject(child, vm);\n normalizeDirectives(child);\n\n // Apply extends and mixins on the child options,\n // but only if it is a raw options object that isn't\n // the result of another mergeOptions call.\n // Only merged options has the _base property.\n if (!child._base) {\n if (child.extends) {\n parent = mergeOptions(parent, child.extends, vm);\n }\n if (child.mixins) {\n for (var i = 0, l = child.mixins.length; i < l; i++) {\n parent = mergeOptions(parent, child.mixins[i], vm);\n }\n }\n }\n\n var options = {};\n var key;\n for (key in parent) {\n mergeField(key);\n }\n for (key in child) {\n if (!hasOwn(parent, key)) {\n mergeField(key);\n }\n }\n function mergeField (key) {\n var strat = strats[key] || defaultStrat;\n options[key] = strat(parent[key], child[key], vm, key);\n }\n return options\n}\n\n/**\n * Resolve an asset.\n * This function is used because child instances need access\n * to assets defined in its ancestor chain.\n */\nfunction resolveAsset (\n options,\n type,\n id,\n warnMissing\n) {\n /* istanbul ignore if */\n if (typeof id !== 'string') {\n return\n }\n var assets = options[type];\n // check local registration variations first\n if (hasOwn(assets, id)) { return assets[id] }\n var camelizedId = camelize(id);\n if (hasOwn(assets, camelizedId)) { return assets[camelizedId] }\n var PascalCaseId = capitalize(camelizedId);\n if (hasOwn(assets, PascalCaseId)) { return assets[PascalCaseId] }\n // fallback to prototype chain\n var res = assets[id] || assets[camelizedId] || assets[PascalCaseId];\n if (process.env.NODE_ENV !== 'production' && warnMissing && !res) {\n warn(\n 'Failed to resolve ' + type.slice(0, -1) + ': ' + id,\n options\n );\n }\n return res\n}\n\n/* */\n\n\n\nfunction validateProp (\n key,\n propOptions,\n propsData,\n vm\n) {\n var prop = propOptions[key];\n var absent = !hasOwn(propsData, key);\n var value = propsData[key];\n // boolean casting\n var booleanIndex = getTypeIndex(Boolean, prop.type);\n if (booleanIndex > -1) {\n if (absent && !hasOwn(prop, 'default')) {\n value = false;\n } else if (value === '' || value === hyphenate(key)) {\n // only cast empty string / same name to boolean if\n // boolean has higher priority\n var stringIndex = getTypeIndex(String, prop.type);\n if (stringIndex < 0 || booleanIndex < stringIndex) {\n value = true;\n }\n }\n }\n // check default value\n if (value === undefined) {\n value = getPropDefaultValue(vm, prop, key);\n // since the default value is a fresh copy,\n // make sure to observe it.\n var prevShouldObserve = shouldObserve;\n toggleObserving(true);\n observe(value);\n toggleObserving(prevShouldObserve);\n }\n if (\n process.env.NODE_ENV !== 'production' &&\n // skip validation for weex recycle-list child component props\n !(false)\n ) {\n assertProp(prop, key, value, vm, absent);\n }\n return value\n}\n\n/**\n * Get the default value of a prop.\n */\nfunction getPropDefaultValue (vm, prop, key) {\n // no default, return undefined\n if (!hasOwn(prop, 'default')) {\n return undefined\n }\n var def = prop.default;\n // warn against non-factory defaults for Object & Array\n if (process.env.NODE_ENV !== 'production' && isObject(def)) {\n warn(\n 'Invalid default value for prop \"' + key + '\": ' +\n 'Props with type Object/Array must use a factory function ' +\n 'to return the default value.',\n vm\n );\n }\n // the raw prop value was also undefined from previous render,\n // return previous default value to avoid unnecessary watcher trigger\n if (vm && vm.$options.propsData &&\n vm.$options.propsData[key] === undefined &&\n vm._props[key] !== undefined\n ) {\n return vm._props[key]\n }\n // call factory function for non-Function types\n // a value is Function if its prototype is function even across different execution context\n return typeof def === 'function' && getType(prop.type) !== 'Function'\n ? def.call(vm)\n : def\n}\n\n/**\n * Assert whether a prop is valid.\n */\nfunction assertProp (\n prop,\n name,\n value,\n vm,\n absent\n) {\n if (prop.required && absent) {\n warn(\n 'Missing required prop: \"' + name + '\"',\n vm\n );\n return\n }\n if (value == null && !prop.required) {\n return\n }\n var type = prop.type;\n var valid = !type || type === true;\n var expectedTypes = [];\n if (type) {\n if (!Array.isArray(type)) {\n type = [type];\n }\n for (var i = 0; i < type.length && !valid; i++) {\n var assertedType = assertType(value, type[i]);\n expectedTypes.push(assertedType.expectedType || '');\n valid = assertedType.valid;\n }\n }\n\n if (!valid) {\n warn(\n getInvalidTypeMessage(name, value, expectedTypes),\n vm\n );\n return\n }\n var validator = prop.validator;\n if (validator) {\n if (!validator(value)) {\n warn(\n 'Invalid prop: custom validator check failed for prop \"' + name + '\".',\n vm\n );\n }\n }\n}\n\nvar simpleCheckRE = /^(String|Number|Boolean|Function|Symbol)$/;\n\nfunction assertType (value, type) {\n var valid;\n var expectedType = getType(type);\n if (simpleCheckRE.test(expectedType)) {\n var t = typeof value;\n valid = t === expectedType.toLowerCase();\n // for primitive wrapper objects\n if (!valid && t === 'object') {\n valid = value instanceof type;\n }\n } else if (expectedType === 'Object') {\n valid = isPlainObject(value);\n } else if (expectedType === 'Array') {\n valid = Array.isArray(value);\n } else {\n valid = value instanceof type;\n }\n return {\n valid: valid,\n expectedType: expectedType\n }\n}\n\n/**\n * Use function string name to check built-in types,\n * because a simple equality check will fail when running\n * across different vms / iframes.\n */\nfunction getType (fn) {\n var match = fn && fn.toString().match(/^\\s*function (\\w+)/);\n return match ? match[1] : ''\n}\n\nfunction isSameType (a, b) {\n return getType(a) === getType(b)\n}\n\nfunction getTypeIndex (type, expectedTypes) {\n if (!Array.isArray(expectedTypes)) {\n return isSameType(expectedTypes, type) ? 0 : -1\n }\n for (var i = 0, len = expectedTypes.length; i < len; i++) {\n if (isSameType(expectedTypes[i], type)) {\n return i\n }\n }\n return -1\n}\n\nfunction getInvalidTypeMessage (name, value, expectedTypes) {\n var message = \"Invalid prop: type check failed for prop \\\"\" + name + \"\\\".\" +\n \" Expected \" + (expectedTypes.map(capitalize).join(', '));\n var expectedType = expectedTypes[0];\n var receivedType = toRawType(value);\n var expectedValue = styleValue(value, expectedType);\n var receivedValue = styleValue(value, receivedType);\n // check if we need to specify expected value\n if (expectedTypes.length === 1 &&\n isExplicable(expectedType) &&\n !isBoolean(expectedType, receivedType)) {\n message += \" with value \" + expectedValue;\n }\n message += \", got \" + receivedType + \" \";\n // check if we need to specify received value\n if (isExplicable(receivedType)) {\n message += \"with value \" + receivedValue + \".\";\n }\n return message\n}\n\nfunction styleValue (value, type) {\n if (type === 'String') {\n return (\"\\\"\" + value + \"\\\"\")\n } else if (type === 'Number') {\n return (\"\" + (Number(value)))\n } else {\n return (\"\" + value)\n }\n}\n\nfunction isExplicable (value) {\n var explicitTypes = ['string', 'number', 'boolean'];\n return explicitTypes.some(function (elem) { return value.toLowerCase() === elem; })\n}\n\nfunction isBoolean () {\n var args = [], len = arguments.length;\n while ( len-- ) args[ len ] = arguments[ len ];\n\n return args.some(function (elem) { return elem.toLowerCase() === 'boolean'; })\n}\n\n/* */\n\nfunction handleError (err, vm, info) {\n // Deactivate deps tracking while processing error handler to avoid possible infinite rendering.\n // See: https://github.com/vuejs/vuex/issues/1505\n pushTarget();\n try {\n if (vm) {\n var cur = vm;\n while ((cur = cur.$parent)) {\n var hooks = cur.$options.errorCaptured;\n if (hooks) {\n for (var i = 0; i < hooks.length; i++) {\n try {\n var capture = hooks[i].call(cur, err, vm, info) === false;\n if (capture) { return }\n } catch (e) {\n globalHandleError(e, cur, 'errorCaptured hook');\n }\n }\n }\n }\n }\n globalHandleError(err, vm, info);\n } finally {\n popTarget();\n }\n}\n\nfunction invokeWithErrorHandling (\n handler,\n context,\n args,\n vm,\n info\n) {\n var res;\n try {\n res = args ? handler.apply(context, args) : handler.call(context);\n if (res && !res._isVue && isPromise(res) && !res._handled) {\n res.catch(function (e) { return handleError(e, vm, info + \" (Promise/async)\"); });\n // issue #9511\n // avoid catch triggering multiple times when nested calls\n res._handled = true;\n }\n } catch (e) {\n handleError(e, vm, info);\n }\n return res\n}\n\nfunction globalHandleError (err, vm, info) {\n if (config.errorHandler) {\n try {\n return config.errorHandler.call(null, err, vm, info)\n } catch (e) {\n // if the user intentionally throws the original error in the handler,\n // do not log it twice\n if (e !== err) {\n logError(e, null, 'config.errorHandler');\n }\n }\n }\n logError(err, vm, info);\n}\n\nfunction logError (err, vm, info) {\n if (process.env.NODE_ENV !== 'production') {\n warn((\"Error in \" + info + \": \\\"\" + (err.toString()) + \"\\\"\"), vm);\n }\n /* istanbul ignore else */\n if ((inBrowser || inWeex) && typeof console !== 'undefined') {\n console.error(err);\n } else {\n throw err\n }\n}\n\n/* */\n\nvar isUsingMicroTask = false;\n\nvar callbacks = [];\nvar pending = false;\n\nfunction flushCallbacks () {\n pending = false;\n var copies = callbacks.slice(0);\n callbacks.length = 0;\n for (var i = 0; i < copies.length; i++) {\n copies[i]();\n }\n}\n\n// Here we have async deferring wrappers using microtasks.\n// In 2.5 we used (macro) tasks (in combination with microtasks).\n// However, it has subtle problems when state is changed right before repaint\n// (e.g. #6813, out-in transitions).\n// Also, using (macro) tasks in event handler would cause some weird behaviors\n// that cannot be circumvented (e.g. #7109, #7153, #7546, #7834, #8109).\n// So we now use microtasks everywhere, again.\n// A major drawback of this tradeoff is that there are some scenarios\n// where microtasks have too high a priority and fire in between supposedly\n// sequential events (e.g. #4521, #6690, which have workarounds)\n// or even between bubbling of the same event (#6566).\nvar timerFunc;\n\n// The nextTick behavior leverages the microtask queue, which can be accessed\n// via either native Promise.then or MutationObserver.\n// MutationObserver has wider support, however it is seriously bugged in\n// UIWebView in iOS >= 9.3.3 when triggered in touch event handlers. It\n// completely stops working after triggering a few times... so, if native\n// Promise is available, we will use it:\n/* istanbul ignore next, $flow-disable-line */\nif (typeof Promise !== 'undefined' && isNative(Promise)) {\n var p = Promise.resolve();\n timerFunc = function () {\n p.then(flushCallbacks);\n // In problematic UIWebViews, Promise.then doesn't completely break, but\n // it can get stuck in a weird state where callbacks are pushed into the\n // microtask queue but the queue isn't being flushed, until the browser\n // needs to do some other work, e.g. handle a timer. Therefore we can\n // \"force\" the microtask queue to be flushed by adding an empty timer.\n if (isIOS) { setTimeout(noop); }\n };\n isUsingMicroTask = true;\n} else if (!isIE && typeof MutationObserver !== 'undefined' && (\n isNative(MutationObserver) ||\n // PhantomJS and iOS 7.x\n MutationObserver.toString() === '[object MutationObserverConstructor]'\n)) {\n // Use MutationObserver where native Promise is not available,\n // e.g. PhantomJS, iOS7, Android 4.4\n // (#6466 MutationObserver is unreliable in IE11)\n var counter = 1;\n var observer = new MutationObserver(flushCallbacks);\n var textNode = document.createTextNode(String(counter));\n observer.observe(textNode, {\n characterData: true\n });\n timerFunc = function () {\n counter = (counter + 1) % 2;\n textNode.data = String(counter);\n };\n isUsingMicroTask = true;\n} else if (typeof setImmediate !== 'undefined' && isNative(setImmediate)) {\n // Fallback to setImmediate.\n // Technically it leverages the (macro) task queue,\n // but it is still a better choice than setTimeout.\n timerFunc = function () {\n setImmediate(flushCallbacks);\n };\n} else {\n // Fallback to setTimeout.\n timerFunc = function () {\n setTimeout(flushCallbacks, 0);\n };\n}\n\nfunction nextTick (cb, ctx) {\n var _resolve;\n callbacks.push(function () {\n if (cb) {\n try {\n cb.call(ctx);\n } catch (e) {\n handleError(e, ctx, 'nextTick');\n }\n } else if (_resolve) {\n _resolve(ctx);\n }\n });\n if (!pending) {\n pending = true;\n timerFunc();\n }\n // $flow-disable-line\n if (!cb && typeof Promise !== 'undefined') {\n return new Promise(function (resolve) {\n _resolve = resolve;\n })\n }\n}\n\n/* */\n\n/* not type checking this file because flow doesn't play well with Proxy */\n\nvar initProxy;\n\nif (process.env.NODE_ENV !== 'production') {\n var allowedGlobals = makeMap(\n 'Infinity,undefined,NaN,isFinite,isNaN,' +\n 'parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n 'Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,' +\n 'require' // for Webpack/Browserify\n );\n\n var warnNonPresent = function (target, key) {\n warn(\n \"Property or method \\\"\" + key + \"\\\" is not defined on the instance but \" +\n 'referenced during render. Make sure that this property is reactive, ' +\n 'either in the data option, or for class-based components, by ' +\n 'initializing the property. ' +\n 'See: https://vuejs.org/v2/guide/reactivity.html#Declaring-Reactive-Properties.',\n target\n );\n };\n\n var warnReservedPrefix = function (target, key) {\n warn(\n \"Property \\\"\" + key + \"\\\" must be accessed with \\\"$data.\" + key + \"\\\" because \" +\n 'properties starting with \"$\" or \"_\" are not proxied in the Vue instance to ' +\n 'prevent conflicts with Vue internals. ' +\n 'See: https://vuejs.org/v2/api/#data',\n target\n );\n };\n\n var hasProxy =\n typeof Proxy !== 'undefined' && isNative(Proxy);\n\n if (hasProxy) {\n var isBuiltInModifier = makeMap('stop,prevent,self,ctrl,shift,alt,meta,exact');\n config.keyCodes = new Proxy(config.keyCodes, {\n set: function set (target, key, value) {\n if (isBuiltInModifier(key)) {\n warn((\"Avoid overwriting built-in modifier in config.keyCodes: .\" + key));\n return false\n } else {\n target[key] = value;\n return true\n }\n }\n });\n }\n\n var hasHandler = {\n has: function has (target, key) {\n var has = key in target;\n var isAllowed = allowedGlobals(key) ||\n (typeof key === 'string' && key.charAt(0) === '_' && !(key in target.$data));\n if (!has && !isAllowed) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return has || !isAllowed\n }\n };\n\n var getHandler = {\n get: function get (target, key) {\n if (typeof key === 'string' && !(key in target)) {\n if (key in target.$data) { warnReservedPrefix(target, key); }\n else { warnNonPresent(target, key); }\n }\n return target[key]\n }\n };\n\n initProxy = function initProxy (vm) {\n if (hasProxy) {\n // determine which proxy handler to use\n var options = vm.$options;\n var handlers = options.render && options.render._withStripped\n ? getHandler\n : hasHandler;\n vm._renderProxy = new Proxy(vm, handlers);\n } else {\n vm._renderProxy = vm;\n }\n };\n}\n\n/* */\n\nvar seenObjects = new _Set();\n\n/**\n * Recursively traverse an object to evoke all converted\n * getters, so that every nested property inside the object\n * is collected as a \"deep\" dependency.\n */\nfunction traverse (val) {\n _traverse(val, seenObjects);\n seenObjects.clear();\n}\n\nfunction _traverse (val, seen) {\n var i, keys;\n var isA = Array.isArray(val);\n if ((!isA && !isObject(val)) || Object.isFrozen(val) || val instanceof VNode) {\n return\n }\n if (val.__ob__) {\n var depId = val.__ob__.dep.id;\n if (seen.has(depId)) {\n return\n }\n seen.add(depId);\n }\n if (isA) {\n i = val.length;\n while (i--) { _traverse(val[i], seen); }\n } else {\n keys = Object.keys(val);\n i = keys.length;\n while (i--) { _traverse(val[keys[i]], seen); }\n }\n}\n\nvar mark;\nvar measure;\n\nif (process.env.NODE_ENV !== 'production') {\n var perf = inBrowser && window.performance;\n /* istanbul ignore if */\n if (\n perf &&\n perf.mark &&\n perf.measure &&\n perf.clearMarks &&\n perf.clearMeasures\n ) {\n mark = function (tag) { return perf.mark(tag); };\n measure = function (name, startTag, endTag) {\n perf.measure(name, startTag, endTag);\n perf.clearMarks(startTag);\n perf.clearMarks(endTag);\n // perf.clearMeasures(name)\n };\n }\n}\n\n/* */\n\nvar normalizeEvent = cached(function (name) {\n var passive = name.charAt(0) === '&';\n name = passive ? name.slice(1) : name;\n var once$$1 = name.charAt(0) === '~'; // Prefixed last, checked first\n name = once$$1 ? name.slice(1) : name;\n var capture = name.charAt(0) === '!';\n name = capture ? name.slice(1) : name;\n return {\n name: name,\n once: once$$1,\n capture: capture,\n passive: passive\n }\n});\n\nfunction createFnInvoker (fns, vm) {\n function invoker () {\n var arguments$1 = arguments;\n\n var fns = invoker.fns;\n if (Array.isArray(fns)) {\n var cloned = fns.slice();\n for (var i = 0; i < cloned.length; i++) {\n invokeWithErrorHandling(cloned[i], null, arguments$1, vm, \"v-on handler\");\n }\n } else {\n // return handler return value for single handlers\n return invokeWithErrorHandling(fns, null, arguments, vm, \"v-on handler\")\n }\n }\n invoker.fns = fns;\n return invoker\n}\n\nfunction updateListeners (\n on,\n oldOn,\n add,\n remove$$1,\n createOnceHandler,\n vm\n) {\n var name, def$$1, cur, old, event;\n for (name in on) {\n def$$1 = cur = on[name];\n old = oldOn[name];\n event = normalizeEvent(name);\n if (isUndef(cur)) {\n process.env.NODE_ENV !== 'production' && warn(\n \"Invalid handler for event \\\"\" + (event.name) + \"\\\": got \" + String(cur),\n vm\n );\n } else if (isUndef(old)) {\n if (isUndef(cur.fns)) {\n cur = on[name] = createFnInvoker(cur, vm);\n }\n if (isTrue(event.once)) {\n cur = on[name] = createOnceHandler(event.name, cur, event.capture);\n }\n add(event.name, cur, event.capture, event.passive, event.params);\n } else if (cur !== old) {\n old.fns = cur;\n on[name] = old;\n }\n }\n for (name in oldOn) {\n if (isUndef(on[name])) {\n event = normalizeEvent(name);\n remove$$1(event.name, oldOn[name], event.capture);\n }\n }\n}\n\n/* */\n\nfunction mergeVNodeHook (def, hookKey, hook) {\n if (def instanceof VNode) {\n def = def.data.hook || (def.data.hook = {});\n }\n var invoker;\n var oldHook = def[hookKey];\n\n function wrappedHook () {\n hook.apply(this, arguments);\n // important: remove merged hook to ensure it's called only once\n // and prevent memory leak\n remove(invoker.fns, wrappedHook);\n }\n\n if (isUndef(oldHook)) {\n // no existing hook\n invoker = createFnInvoker([wrappedHook]);\n } else {\n /* istanbul ignore if */\n if (isDef(oldHook.fns) && isTrue(oldHook.merged)) {\n // already a merged invoker\n invoker = oldHook;\n invoker.fns.push(wrappedHook);\n } else {\n // existing plain hook\n invoker = createFnInvoker([oldHook, wrappedHook]);\n }\n }\n\n invoker.merged = true;\n def[hookKey] = invoker;\n}\n\n/* */\n\nfunction extractPropsFromVNodeData (\n data,\n Ctor,\n tag\n) {\n // we are only extracting raw values here.\n // validation and default values are handled in the child\n // component itself.\n var propOptions = Ctor.options.props;\n if (isUndef(propOptions)) {\n return\n }\n var res = {};\n var attrs = data.attrs;\n var props = data.props;\n if (isDef(attrs) || isDef(props)) {\n for (var key in propOptions) {\n var altKey = hyphenate(key);\n if (process.env.NODE_ENV !== 'production') {\n var keyInLowerCase = key.toLowerCase();\n if (\n key !== keyInLowerCase &&\n attrs && hasOwn(attrs, keyInLowerCase)\n ) {\n tip(\n \"Prop \\\"\" + keyInLowerCase + \"\\\" is passed to component \" +\n (formatComponentName(tag || Ctor)) + \", but the declared prop name is\" +\n \" \\\"\" + key + \"\\\". \" +\n \"Note that HTML attributes are case-insensitive and camelCased \" +\n \"props need to use their kebab-case equivalents when using in-DOM \" +\n \"templates. You should probably use \\\"\" + altKey + \"\\\" instead of \\\"\" + key + \"\\\".\"\n );\n }\n }\n checkProp(res, props, key, altKey, true) ||\n checkProp(res, attrs, key, altKey, false);\n }\n }\n return res\n}\n\nfunction checkProp (\n res,\n hash,\n key,\n altKey,\n preserve\n) {\n if (isDef(hash)) {\n if (hasOwn(hash, key)) {\n res[key] = hash[key];\n if (!preserve) {\n delete hash[key];\n }\n return true\n } else if (hasOwn(hash, altKey)) {\n res[key] = hash[altKey];\n if (!preserve) {\n delete hash[altKey];\n }\n return true\n }\n }\n return false\n}\n\n/* */\n\n// The template compiler attempts to minimize the need for normalization by\n// statically analyzing the template at compile time.\n//\n// For plain HTML markup, normalization can be completely skipped because the\n// generated render function is guaranteed to return Array. There are\n// two cases where extra normalization is needed:\n\n// 1. When the children contains components - because a functional component\n// may return an Array instead of a single root. In this case, just a simple\n// normalization is needed - if any child is an Array, we flatten the whole\n// thing with Array.prototype.concat. It is guaranteed to be only 1-level deep\n// because functional components already normalize their own children.\nfunction simpleNormalizeChildren (children) {\n for (var i = 0; i < children.length; i++) {\n if (Array.isArray(children[i])) {\n return Array.prototype.concat.apply([], children)\n }\n }\n return children\n}\n\n// 2. When the children contains constructs that always generated nested Arrays,\n// e.g.