apollo-elements/apollo-elements

View on GitHub
docs/_assets/_static/apollo-elements-hybrids.js.map

Summary

Maintainability
Test Coverage
{
  "version": 3,
  "sources": ["../../../node_modules/ts-invariant/node_modules/tslib/tslib.js", "../../../packages/hybrids/factories/controller.ts", "../../../node_modules/ts-invariant/node_modules/tslib/modules/index.js", "../../../node_modules/ts-invariant/src/invariant.ts", "../../../node_modules/@apollo/src/core/networkStatus.ts", "../../../node_modules/@apollo/src/core/index.ts", "../../../packages/core/lib/is-valid-gql.ts", "../../../packages/core/events.ts", "../../../packages/core/apollo-controller.ts", "../../../packages/core/lib/bound.ts", "../../../packages/core/apollo-query-controller.ts", "../../../packages/hybrids/factories/query.ts", "../../../packages/core/apollo-mutation-controller.ts", "../../../packages/hybrids/factories/mutation.ts", "../../../packages/core/apollo-subscription-controller.ts", "../../../packages/hybrids/factories/subscription.ts", "../../../node_modules/hybrids/src/utils.js", "../../../node_modules/hybrids/src/property.js", "../../../node_modules/hybrids/src/render.js", "../../../node_modules/hybrids/src/emitter.js", "../../../node_modules/hybrids/src/cache.js", "../../../node_modules/hybrids/src/define.js", "../../../node_modules/hybrids/src/template/utils.js", "../../../node_modules/hybrids/src/template/resolvers/array.js", "../../../node_modules/hybrids/src/template/resolvers/node.js", "../../../node_modules/hybrids/src/template/resolvers/value.js", "../../../node_modules/hybrids/src/template/resolvers/event.js", "../../../node_modules/hybrids/src/template/resolvers/class.js", "../../../node_modules/hybrids/src/template/resolvers/style.js", "../../../node_modules/hybrids/src/template/resolvers/property.js", "../../../node_modules/hybrids/src/template/core.js", "../../../node_modules/hybrids/src/template/helpers.js", "../../../node_modules/hybrids/src/template/index.js"],
  "sourcesContent": ["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global global, define, System, Reflect, Promise */\r\nvar __extends;\r\nvar __assign;\r\nvar __rest;\r\nvar __decorate;\r\nvar __param;\r\nvar __metadata;\r\nvar __awaiter;\r\nvar __generator;\r\nvar __exportStar;\r\nvar __values;\r\nvar __read;\r\nvar __spread;\r\nvar __spreadArrays;\r\nvar __spreadArray;\r\nvar __await;\r\nvar __asyncGenerator;\r\nvar __asyncDelegator;\r\nvar __asyncValues;\r\nvar __makeTemplateObject;\r\nvar __importStar;\r\nvar __importDefault;\r\nvar __classPrivateFieldGet;\r\nvar __classPrivateFieldSet;\r\nvar __createBinding;\r\n(function (factory) {\r\n    var root = typeof global === \"object\" ? global : typeof self === \"object\" ? self : typeof this === \"object\" ? this : {};\r\n    if (typeof define === \"function\" && define.amd) {\r\n        define(\"tslib\", [\"exports\"], function (exports) { factory(createExporter(root, createExporter(exports))); });\r\n    }\r\n    else if (typeof module === \"object\" && typeof module.exports === \"object\") {\r\n        factory(createExporter(root, createExporter(module.exports)));\r\n    }\r\n    else {\r\n        factory(createExporter(root));\r\n    }\r\n    function createExporter(exports, previous) {\r\n        if (exports !== root) {\r\n            if (typeof Object.create === \"function\") {\r\n                Object.defineProperty(exports, \"__esModule\", { value: true });\r\n            }\r\n            else {\r\n                exports.__esModule = true;\r\n            }\r\n        }\r\n        return function (id, v) { return exports[id] = previous ? previous(id, v) : v; };\r\n    }\r\n})\r\n(function (exporter) {\r\n    var 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 (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n\r\n    __extends = function (d, b) {\r\n        if (typeof b !== \"function\" && b !== null)\r\n            throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\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\n    __assign = Object.assign || function (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\r\n    __rest = function (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\n    __decorate = function (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\n    __param = function (paramIndex, decorator) {\r\n        return function (target, key) { decorator(target, key, paramIndex); }\r\n    };\r\n\r\n    __metadata = function (metadataKey, metadataValue) {\r\n        if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n    };\r\n\r\n    __awaiter = function (thisArg, _arguments, P, generator) {\r\n        function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\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) : adopt(result.value).then(fulfilled, rejected); }\r\n            step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n        });\r\n    };\r\n\r\n    __generator = function (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\n    __exportStar = function(m, o) {\r\n        for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n    };\r\n\r\n    __createBinding = Object.create ? (function(o, m, k, k2) {\r\n        if (k2 === undefined) k2 = k;\r\n        Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n    }) : (function(o, m, k, k2) {\r\n        if (k2 === undefined) k2 = k;\r\n        o[k2] = m[k];\r\n    });\r\n\r\n    __values = function (o) {\r\n        var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n        if (m) return m.call(o);\r\n        if (o && typeof o.length === \"number\") 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        throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n    };\r\n\r\n    __read = function (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\n    /** @deprecated */\r\n    __spread = function () {\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\n    /** @deprecated */\r\n    __spreadArrays = function () {\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\n    __spreadArray = function (to, from) {\r\n        for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\r\n            to[j] = from[i];\r\n        return to;\r\n    };\r\n\r\n    __await = function (v) {\r\n        return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n    };\r\n\r\n    __asyncGenerator = function (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\n    __asyncDelegator = function (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\n    __asyncValues = function (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\n    __makeTemplateObject = function (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\n    var __setModuleDefault = Object.create ? (function(o, v) {\r\n        Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n    }) : function(o, v) {\r\n        o[\"default\"] = v;\r\n    };\r\n\r\n    __importStar = function (mod) {\r\n        if (mod && mod.__esModule) return mod;\r\n        var result = {};\r\n        if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n        __setModuleDefault(result, mod);\r\n        return result;\r\n    };\r\n\r\n    __importDefault = function (mod) {\r\n        return (mod && mod.__esModule) ? mod : { \"default\": mod };\r\n    };\r\n\r\n    __classPrivateFieldGet = function (receiver, state, kind, f) {\r\n        if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n        if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n        return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n    };\r\n\r\n    __classPrivateFieldSet = function (receiver, state, value, kind, f) {\r\n        if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n        if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n        if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n        return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n    };\r\n\r\n    exporter(\"__extends\", __extends);\r\n    exporter(\"__assign\", __assign);\r\n    exporter(\"__rest\", __rest);\r\n    exporter(\"__decorate\", __decorate);\r\n    exporter(\"__param\", __param);\r\n    exporter(\"__metadata\", __metadata);\r\n    exporter(\"__awaiter\", __awaiter);\r\n    exporter(\"__generator\", __generator);\r\n    exporter(\"__exportStar\", __exportStar);\r\n    exporter(\"__createBinding\", __createBinding);\r\n    exporter(\"__values\", __values);\r\n    exporter(\"__read\", __read);\r\n    exporter(\"__spread\", __spread);\r\n    exporter(\"__spreadArrays\", __spreadArrays);\r\n    exporter(\"__spreadArray\", __spreadArray);\r\n    exporter(\"__await\", __await);\r\n    exporter(\"__asyncGenerator\", __asyncGenerator);\r\n    exporter(\"__asyncDelegator\", __asyncDelegator);\r\n    exporter(\"__asyncValues\", __asyncValues);\r\n    exporter(\"__makeTemplateObject\", __makeTemplateObject);\r\n    exporter(\"__importStar\", __importStar);\r\n    exporter(\"__importDefault\", __importDefault);\r\n    exporter(\"__classPrivateFieldGet\", __classPrivateFieldGet);\r\n    exporter(\"__classPrivateFieldSet\", __classPrivateFieldSet);\r\n});\r\n", "import type { ReactiveController, ReactiveControllerHost } from '@lit/reactive-element';\nimport type { Descriptor, InvalidateOptions } from 'hybrids';\n\ntype Constructor<T> = { new (...a: any[]): T; }\n\ntype Invalidate = (options?: InvalidateOptions) => void;\n\ntype ControllerRecord = {\n  invalidate: Invalidate;\n  controller: ReactiveController;\n}\n\nexport class HybridsControllerHost extends EventTarget implements ReactiveControllerHost {\n  #controllers = new Set<ReactiveController>();\n\n  #keys = new Map<string|number|symbol, ControllerRecord>();\n\n  constructor(public element: HTMLElement) {\n    super();\n  }\n\n  register(key: string|number|symbol, record: ControllerRecord): void {\n    this.#keys.set(key, record);\n  }\n\n  addController(controller: ReactiveController): void {\n    this.#controllers.add(controller);\n  }\n\n  removeController(controller: ReactiveController): void {\n    this.#controllers.delete(controller);\n    // eslint-disable-next-line easy-loops/easy-loops\n    for (const [key, r] of this.#keys) {\n      if (r.controller === controller)\n        this.#keys.delete(key);\n    }\n  }\n\n  dispatchEvent(...args: Parameters<Element['dispatchEvent']>): boolean {\n    return this.element.dispatchEvent(...args);\n  }\n\n  addEventListener(...args: Parameters<Element['addEventListener']>): void {\n    return this.element.addEventListener(...args);\n  }\n\n  removeEventListener(...args: Parameters<Element['removeEventListener']>): void {\n    return this.element.removeEventListener(...args);\n  }\n\n  async requestUpdate(): Promise<boolean> {\n    this.#keys.forEach(({ invalidate }) => {\n      invalidate({ force: true });\n    });\n    return this.updateComplete;\n  }\n\n  get updateComplete(): Promise<boolean> {\n    return Promise.resolve(true);\n  }\n}\n\nconst hosts = new WeakMap<HTMLElement, HybridsControllerHost>();\n\nexport function controller<E extends HTMLElement, C extends ReactiveController>(\n  Controller: Constructor<C>,\n  ...args: any[]\n): Descriptor<E, C> {\n  const controllers = new WeakMap<E, ReactiveController>();\n  return {\n    get(element) {\n      const c = controllers.get(element) as C;\n      return (x => x)(c);\n    },\n    connect(element, key, invalidate) {\n      if (!hosts.get(element))\n        hosts.set(element, new HybridsControllerHost(element));\n\n      const host = hosts.get(element) as HybridsControllerHost;\n\n      let controller = controllers.get(element);\n\n      controller ??= new Controller(hosts.get(element), ...args);\n      controllers.set(element, controller);\n\n      host.register(key, { invalidate, controller });\n\n      controller.hostConnected?.();\n\n      return () => {\n        controller?.hostDisconnected?.();\n      };\n    },\n  };\n}\n", "import tslib from '../tslib.js';\r\nconst {\r\n    __extends,\r\n    __assign,\r\n    __rest,\r\n    __decorate,\r\n    __param,\r\n    __metadata,\r\n    __awaiter,\r\n    __generator,\r\n    __exportStar,\r\n    __createBinding,\r\n    __values,\r\n    __read,\r\n    __spread,\r\n    __spreadArrays,\r\n    __spreadArray,\r\n    __await,\r\n    __asyncGenerator,\r\n    __asyncDelegator,\r\n    __asyncValues,\r\n    __makeTemplateObject,\r\n    __importStar,\r\n    __importDefault,\r\n    __classPrivateFieldGet,\r\n    __classPrivateFieldSet,\r\n} = tslib;\r\nexport {\r\n    __extends,\r\n    __assign,\r\n    __rest,\r\n    __decorate,\r\n    __param,\r\n    __metadata,\r\n    __awaiter,\r\n    __generator,\r\n    __exportStar,\r\n    __createBinding,\r\n    __values,\r\n    __read,\r\n    __spread,\r\n    __spreadArrays,\r\n    __spreadArray,\r\n    __await,\r\n    __asyncGenerator,\r\n    __asyncDelegator,\r\n    __asyncValues,\r\n    __makeTemplateObject,\r\n    __importStar,\r\n    __importDefault,\r\n    __classPrivateFieldGet,\r\n    __classPrivateFieldSet,\r\n};\r\n", "const genericMessage = \"Invariant Violation\";\nconst {\n  setPrototypeOf = function (obj: any, proto: any) {\n    obj.__proto__ = proto;\n    return obj;\n  },\n} = Object as any;\n\nexport class InvariantError extends Error {\n  framesToPop = 1;\n  name = genericMessage;\n  constructor(message: string | number = genericMessage) {\n    super(\n      typeof message === \"number\"\n        ? `${genericMessage}: ${message} (see https://github.com/apollographql/invariant-packages)`\n        : message\n    );\n    setPrototypeOf(this, InvariantError.prototype);\n  }\n}\n\nexport function invariant(\n  condition: any,\n  message?: string | number,\n): asserts condition {\n  if (!condition) {\n    throw new InvariantError(message);\n  }\n}\n\nconst verbosityLevels = [\"log\", \"warn\", \"error\", \"silent\"] as const;\ntype VerbosityLevel = (typeof verbosityLevels)[number];\ntype ConsoleMethodName = Exclude<VerbosityLevel, \"silent\">;\nlet verbosityLevel = verbosityLevels.indexOf(\"log\");\n\nfunction wrapConsoleMethod<M extends ConsoleMethodName>(method: M) {\n  return function () {\n    if (verbosityLevels.indexOf(method) >= verbosityLevel) {\n      return console[method].apply(console, arguments as any);\n    }\n  } as (typeof console)[M];\n}\n\nexport namespace invariant {\n  export const log = wrapConsoleMethod(\"log\");\n  export const warn = wrapConsoleMethod(\"warn\");\n  export const error = wrapConsoleMethod(\"error\");\n}\n\nexport function setVerbosity(level: VerbosityLevel): VerbosityLevel {\n  const old = verbosityLevels[verbosityLevel];\n  verbosityLevel = Math.max(0, verbosityLevels.indexOf(level));\n  return old;\n}\n\n// Code that uses ts-invariant with rollup-plugin-invariant may want to\n// import this process stub to avoid errors evaluating process.env.NODE_ENV.\n// However, because most ESM-to-CJS compilers will rewrite the process import\n// as tsInvariant.process, which prevents proper replacement by minifiers, we\n// also export processStub, so you can import { invariant, processStub } from\n// \"ts-invariant\" and assign processStub to a local variable named process.\nexport const processStub: {\n  env: Record<string, any>;\n  [key: string]: any;\n} = (\n  typeof process === \"object\" &&\n  typeof process.env === \"object\"\n) ? process : { env: {} };\n\nexport { processStub as process };\n\nexport default invariant;\n", "/**\n * The current status of a query\u2019s execution in our system.\n */\nexport enum NetworkStatus {\n  /**\n   * The query has never been run before and the query is now currently running. A query will still\n   * have this network status even if a partial data result was returned from the cache, but a\n   * query was dispatched anyway.\n   */\n  loading = 1,\n\n  /**\n   * If `setVariables` was called and a query was fired because of that then the network status\n   * will be `setVariables` until the result of that query comes back.\n   */\n  setVariables = 2,\n\n  /**\n   * Indicates that `fetchMore` was called on this query and that the query created is currently in\n   * flight.\n   */\n  fetchMore = 3,\n\n  /**\n   * Similar to the `setVariables` network status. It means that `refetch` was called on a query\n   * and the refetch request is currently in flight.\n   */\n  refetch = 4,\n\n  /**\n   * Indicates that a polling query is currently in flight. So for example if you are polling a\n   * query every 10 seconds then the network status will switch to `poll` every 10 seconds whenever\n   * a poll request has been sent but not resolved.\n   */\n  poll = 6,\n\n  /**\n   * No request is in flight for this query, and no errors happened. Everything is OK.\n   */\n  ready = 7,\n\n  /**\n   * No request is in flight for this query, but one or more errors were detected.\n   */\n  error = 8,\n}\n\n/**\n * Returns true if there is currently a network request in flight according to a given network\n * status.\n */\nexport function isNetworkRequestInFlight(\n  networkStatus?: NetworkStatus,\n): boolean {\n  return networkStatus ? networkStatus < 7 : false;\n}\n", "/* Core */\n\nexport {\n  ApolloClient,\n  ApolloClientOptions,\n  DefaultOptions,\n  mergeOptions,\n} from './ApolloClient';\nexport {\n  ObservableQuery,\n  FetchMoreOptions,\n  UpdateQueryOptions,\n} from './ObservableQuery';\nexport {\n  QueryOptions,\n  WatchQueryOptions,\n  MutationOptions,\n  SubscriptionOptions,\n  FetchPolicy,\n  WatchQueryFetchPolicy,\n  ErrorPolicy,\n  FetchMoreQueryOptions,\n  SubscribeToMoreOptions,\n  MutationUpdaterFn,\n} from './watchQueryOptions';\nexport { NetworkStatus } from './networkStatus';\nexport * from './types';\nexport {\n  Resolver,\n  FragmentMatcher,\n} from './LocalState';\nexport { isApolloError, ApolloError } from '../errors';\n\n/* Cache */\n\nexport {\n  // All the exports (types and values) from ../cache, minus cacheSlot,\n  // which we want to keep semi-private.\n  Cache,\n  ApolloCache,\n  Transaction,\n  DataProxy,\n  InMemoryCache,\n  InMemoryCacheConfig,\n  MissingFieldError,\n  defaultDataIdFromObject,\n  ReactiveVar,\n  makeVar,\n  TypePolicies,\n  TypePolicy,\n  FieldPolicy,\n  FieldReadFunction,\n  FieldMergeFunction,\n  FieldFunctionOptions,\n  PossibleTypesMap,\n} from '../cache';\n\nexport * from '../cache/inmemory/types';\n\n/* Link */\n\nexport * from '../link/core';\nexport * from '../link/http';\nexport {\n  fromError,\n  toPromise,\n  fromPromise,\n  ServerError,\n  throwServerError,\n} from '../link/utils';\n\n/* Utilities */\n\nexport {\n  Observable,\n  Observer,\n  ObservableSubscription,\n  Reference,\n  isReference,\n  makeReference,\n  StoreObject,\n} from '../utilities';\n\n/* Supporting */\n\n// The verbosity of invariant.{log,warn,error} can be controlled globally\n// (for anyone using the same ts-invariant package) by passing \"log\",\n// \"warn\", \"error\", or \"silent\" to setVerbosity (\"log\" is the default).\n// Note that all invariant.* logging is hidden in production.\nimport { setVerbosity } from \"ts-invariant\";\nexport { setVerbosity as setLogVerbosity }\nsetVerbosity(\"log\");\n\n// Note that importing `gql` by itself, then destructuring\n// additional properties separately before exporting, is intentional.\n// Due to the way the `graphql-tag` library is setup, certain bundlers\n// can't find the properties added to the exported `gql` function without\n// additional guidance (e.g. Rollup - see\n// https://rollupjs.org/guide/en/#error-name-is-not-exported-by-module).\n// Instead of having people that are using bundlers with `@apollo/client` add\n// extra bundler config to help `graphql-tag` exports be found (which would be\n// awkward since they aren't importing `graphql-tag` themselves), this\n// workaround of pulling the extra properties off the `gql` function,\n// then re-exporting them separately, helps keeps bundlers happy without any\n// additional config changes.\nexport {\n  default as gql,\n  resetCaches,\n  disableFragmentWarnings,\n  enableExperimentalFragmentVariables,\n  disableExperimentalFragmentVariables,\n} from 'graphql-tag';\n", "import type { DocumentNode } from '@apollo/client/core';\n\n/**\n * Validates a graphql document node.\n *\n * ```haskell\n * isValidGql :: DocumentNode a => a -> Bool\n * ```\n * @param doc Maybe a DocumentNode\n * @return Whether the argument is a DocumentNode\n */\nexport function isValidGql(doc: unknown): doc is DocumentNode {\n  return !!(\n    doc &&\n    typeof doc === 'object' &&\n    'kind' in doc &&\n    'definitions' in doc\n  );\n}\n", "import type { ApolloController } from './apollo-controller.js';\nimport type { Data } from '@apollo-elements/core/types';\nimport type {\n  ApolloClient,\n  ApolloError,\n  ApolloQueryResult,\n  FetchResult,\n  NormalizedCacheObject,\n} from '@apollo/client/core';\n\ntype ApolloEventType = `apollo-${'controller'|'element'}-${'connected'|'disconnected'}`;\ntype ApolloElementEventType = `apollo-element-${'disconnected'|'connected'}`;\ntype ApolloControllerEventType = `apollo-controller-${'disconnected'|'connected'}`;\n\ninterface ApolloControllerHost extends HTMLElement {\n  controller: ApolloController;\n}\n\nexport type ApolloQueryResultEvent<TData = unknown> =\n  CustomEvent<ApolloQueryResult<TData>>;\n\nexport type ApolloMutationResultEvent<TData = unknown> =\n  CustomEvent<FetchResult<TData>>;\n\nexport type ApolloSubscriptionResultEvent<D = unknown> = CustomEvent<{\n  client: ApolloClient<NormalizedCacheObject>;\n  subscriptionData: {\n    data: Data<D> | null;\n    loading: boolean;\n    error: null;\n  };\n}>;\n\nexport abstract class ApolloEvent<T = ApolloControllerHost> extends CustomEvent<T> {\n  public abstract type: ApolloEventType\n  public declare controller?: ApolloController;\n  constructor(type: ApolloEventType, options?: CustomEventInit) {\n    super(type, { ...options, bubbles: true, composed: true });\n  }\n}\n\n/**\n * @summary Fired when an ApolloElement connects to or disconnects from the DOM\n */\nexport class ApolloElementEvent<T = ApolloControllerHost> extends ApolloEvent<T> {\n  public declare static type: ApolloElementEventType;\n  public declare type: ApolloElementEventType;\n  constructor(type: ApolloElementEventType, detail: T) {\n    super(type, { detail });\n  }\n}\n\nexport abstract class ApolloControllerEvent extends ApolloEvent {\n  public abstract controller: ApolloController;\n  public abstract type: ApolloControllerEventType\n  constructor(type: ApolloControllerEventType) {\n    super(type);\n  }\n}\n\n/**\n * @summary Fired when a controlled element connects to the DOM\n */\nexport class ApolloControllerConnectedEvent extends ApolloControllerEvent {\n  public static type = 'apollo-controller-connected' as const;\n  public declare type: 'apollo-controller-connected';\n  constructor(public controller: ApolloController) {\n    super(ApolloControllerConnectedEvent.type);\n  }\n}\n\n/**\n * @summary Fired when a controlled element disconnects from the DOM\n */\nexport class ApolloControllerDisconnectedEvent extends ApolloControllerEvent {\n  public static type = 'apollo-controller-disconnected' as const;\n  public declare type: 'apollo-controller-disconnected';\n  constructor(public controller: ApolloController) {\n    super(ApolloControllerDisconnectedEvent.type);\n  }\n}\n\ndeclare global {\n  interface HTMLElementEventMap {\n    'apollo-controller-connected': ApolloControllerConnectedEvent;\n    'apollo-controller-disconnected': ApolloControllerDisconnectedEvent;\n    'apollo-element-connected': ApolloElementEvent;\n    'apollo-element-disconnected': ApolloElementEvent;\n    'apollo-error': CustomEvent<ApolloError>;\n    'apollo-mutation-result': ApolloMutationResultEvent;\n    'apollo-query-result': ApolloQueryResultEvent;\n    'apollo-subscription-result': ApolloSubscriptionResultEvent;\n  }\n\n  interface WindowEventMap {\n    'apollo-element-disconnected': ApolloElementEvent;\n    'apollo-controller-disconnected': ApolloControllerDisconnectedEvent;\n  }\n}\n", "import type { ReactiveController, ReactiveControllerHost } from 'lit';\n\nimport type {\n  ApolloClient,\n  ApolloError,\n  ErrorPolicy,\n  NormalizedCacheObject,\n} from '@apollo/client/core';\n\n\nimport type {\n  ComponentDocument,\n  Data,\n  GraphQLError,\n  MaybeTDN,\n  MaybeVariables,\n  Variables,\n} from '@apollo-elements/core/types';\n\nimport { isValidGql } from './lib/is-valid-gql.js';\n\nimport { ApolloControllerConnectedEvent, ApolloControllerDisconnectedEvent } from './events.js';\n\nexport interface ApolloControllerOptions<D, V> {\n  /** The `ApolloClient` instance for the controller. */\n  client?: ApolloClient<NormalizedCacheObject>;\n  /** Variables for the operation. */\n  variables?: Variables<D, V>;\n  /** Context passed to the link execution chain. */\n  context?: any; // eslint-disable-line @typescript-eslint/no-explicit-any\n  /**\n   * errorPolicy determines the level of events for errors in the execution result. The options are:\n   * - `none` (default): any errors from the request are treated like runtime errors and the observable is stopped (XXX this is default to lower breaking changes going from AC 1.0 => 2.0)\n   * - `ignore`: errors from the request do not stop the observable, but also don't call `next`\n   * - `all`: errors are treated like data and will notify observables\n   * @summary [Error Policy](https://www.apollographql.com/docs/react/api/core/ApolloClient/#ErrorPolicy) for the query.\n   */\n  errorPolicy?: ErrorPolicy;\n  /** When provided, the controller will fall back to this element to fire events */\n  hostElement?: HTMLElement;\n  /** Host update callback */\n  [update]?(properties?: Record<string, unknown>): void;\n}\n\nexport const update = Symbol('update');\n\ninterface ReflectingReactiveControllerHost extends ReactiveControllerHost {\n  [update](properties?: Record<string, unknown>): void;\n}\n\nfunction isReflectingHost(host: ReactiveControllerHost): host is ReflectingReactiveControllerHost {\n  return typeof (host as ReactiveControllerHost & { [update]: unknown })[update] === 'function';\n}\n\nexport abstract class ApolloController<\n  D extends MaybeTDN = MaybeTDN,\n  V = MaybeVariables<D>\n>\nimplements ReactiveController {\n  #options: ApolloControllerOptions<D, V> = {};\n\n  #client: ApolloClient<NormalizedCacheObject> | null = null;\n\n  #document: ComponentDocument<D> | null = null;\n\n  /** @summary The event emitter to use when firing events, usually the host element. */\n  protected emitter: EventTarget;\n\n  called = true;\n\n  /** @summary Latest data for the operation, or `null`. */\n  data: Data<D> | null = null;\n\n  /** @summary Latest error from the operation, or `null`. */\n  error: ApolloError | null = null;\n\n  /** @summary Latest errors from the operation, or `[]`. */\n  errors: readonly GraphQLError[] = [];\n\n  /** @summary Whether a request is in-flight. */\n  loading = false;\n\n  /** @summary Options for the operation and controller. */\n  get options(): ApolloControllerOptions<D, V> {\n    return this.#options;\n  }\n\n  set options(v: ApolloControllerOptions<D, V>) {\n    const u = this.#options[update];\n    this.#options = { [update]: u, ...v };\n  }\n\n  /** @summary The `ApolloClient` instance for this controller. */\n  get client(): ApolloClient<NormalizedCacheObject> | null {\n    return this.#client;\n  }\n\n  set client(v: ApolloClient<NormalizedCacheObject> | null) {\n    this.#client = v;\n    this.clientChanged?.(v); /* c8 ignore next */ // covered\n    this.notify('client');\n  }\n\n  /** @summary The GraphQL document for the operation. */\n  get document(): ComponentDocument<D> | null { return this.#document; }\n\n  set document(document: ComponentDocument<D> | null) {\n    if (document === this.#document)\n      return; /* c8 ignore next */ // covered\n    else if (!document)\n      this.#document = null; /* c8 ignore next */ // covered\n    else if (!isValidGql(document)) { /* c8 ignore next */ // covered\n      const name = (this.constructor.name).replace(/Apollo(\\w+)Controller/, '$1');\n      throw new TypeError(`${name} must be a parsed GraphQL document.`);\n    } else {\n      this.#document = document;\n      this[update]({ document });\n      this.documentChanged?.(document);/* c8 ignore next */\n    }\n  }\n\n  /** @summary Variables for the operation. */\n  get variables(): Variables<D, V> | null {\n    return this.options?.variables ?? null;\n  }\n\n  set variables(variables: Variables<D, V> | null) {\n    if (!variables)\n      delete this.options.variables;/* c8 ignore next */ // covered\n    else if (variables === this.options.variables)\n      return; /* c8 ignore next */ // covered\n    else\n      this.options.variables = variables;\n    this[update]({ variables });\n    this.variablesChanged?.(variables);/* c8 ignore next */\n  }\n\n  constructor(public host: ReactiveControllerHost, options?: ApolloControllerOptions<D, V>) {\n    /* c8 ignore start */ // these are all covered\n    if (host instanceof EventTarget)\n      this.emitter = host;\n    else if (options?.hostElement instanceof EventTarget)\n      this.emitter = options.hostElement;\n    else\n      this.emitter = new EventTarget();\n    this.options = options ?? {};\n    this.client = this.options.client ?? window.__APOLLO_CLIENT__ ?? null;\n    host.addController?.(this);\n    /* c8 ignore stop */\n  }\n\n  /** @summary requests an update on the host. */\n  private [update](properties?: Record<string, unknown>): void {\n    this.host.requestUpdate();\n    /* c8 ignore start */ // these are all covered\n    if (isReflectingHost(this.host))\n      this.host[update](properties);\n    else\n      this.options[update]?.(properties);\n    /* c8 ignore stop */\n  }\n\n  /** @summary callback for when the GraphQL document changes. */\n  protected documentChanged?(document?: ComponentDocument<D> | null): void;\n\n  /** @summary callback for when the GraphQL variables change. */\n  protected variablesChanged?(variables?: Variables<D, V> | null): void;\n\n  /** @summary callback for when the Apollo client changes. */\n  protected clientChanged?(client?: ApolloClient<NormalizedCacheObject> | null): void;\n\n  /** @summary Notifies about updated properties. */\n  protected notify(...keys: (keyof this)[]): void {\n    this[update](Object.fromEntries(keys.map(x => [x, this[x]])));\n  }\n\n  /** @summary Assigns the controller's variables and GraphQL document. */\n  protected init(document: ComponentDocument<D> | null): void {\n    this.variables ??= this.options.variables ?? null;\n    this.document = document;\n  }\n\n  /** @fires {ApolloControllerConnectedEvent} apollo-controller-connected when the controller's host connects to the document. */\n  hostConnected(): void {\n    this.emitter.dispatchEvent(new ApolloControllerConnectedEvent(this));\n  }\n\n  /** @fires {ApolloControllerDisconnectedEvent} apollo-controller-disconnected when the controller's host disconnects from the document. */\n  hostDisconnected(): void {\n    this.emitter.dispatchEvent(new ApolloControllerDisconnectedEvent(this));\n    window.dispatchEvent(new ApolloControllerDisconnectedEvent(this));\n  }\n}\n", "const configurable = true;\n// eslint-disable-next-line @typescript-eslint/explicit-module-boundary-types, @typescript-eslint/no-explicit-any\nexport function bound(_: any, key: string, descriptor: PropertyDescriptor): PropertyDescriptor {\n  if (typeof descriptor?.value !== 'function')\n    throw new TypeError(`Only methods can be decorated with @bound. <${key ?? _.name}> is not a method!`); /* c8 ignore next */\n  return {\n    configurable,\n    get() {\n      const value = descriptor.value.bind(this);\n      Object.defineProperty(this, key, { value, configurable, writable: true });\n      return value;\n    },\n  };\n}\n", "import type { ReactiveController, ReactiveControllerHost } from 'lit';\n\nimport type {\n  ComponentDocument,\n  Data,\n  FetchMoreParams,\n  MaybeTDN,\n  MaybeVariables,\n  Variables,\n} from '@apollo-elements/core/types';\n\nimport type {\n  ApolloError,\n  ApolloQueryResult,\n  DocumentNode,\n  ObservableQuery,\n  QueryOptions,\n  SubscribeToMoreOptions,\n  SubscriptionOptions,\n  WatchQueryOptions,\n} from '@apollo/client/core';\n\nimport { NetworkStatus } from '@apollo/client/core';\n\nimport { ApolloController, ApolloControllerOptions } from './apollo-controller.js';\n\nimport { bound } from './lib/bound.js';\n\nexport interface ApolloQueryControllerOptions<D, V> extends\n    ApolloControllerOptions<D, V>,\n    Partial<WatchQueryOptions<Variables<D, V>, Data<D>>> {\n  variables?: Variables<D, V>;\n  noAutoSubscribe?: boolean;\n  shouldSubscribe?: (options?: Partial<SubscriptionOptions<Variables<D, V>, Data<D>>>) => boolean;\n  onData?: (data: Data<D>) => void;\n  onError?: (error: Error) => void;\n}\n\nexport class ApolloQueryController<D extends MaybeTDN = MaybeTDN, V = MaybeVariables<D>>\n  extends ApolloController<D, V>\n  implements ReactiveController {\n  private observableQuery?: ObservableQuery<Data<D>, Variables<D, V>>;\n\n  private pollingInterval?: number;\n\n  /** @summary Options to customize the query and to interface with the controller. */ // @ts-expect-error: https://github.com/microsoft/TypeScript/issues/40220\n  declare options: ApolloQueryControllerOptions<D, V>;\n\n  /**\n   * `networkStatus` is useful if you want to display a different loading indicator (or no indicator at all)\n   * depending on your network status as it provides a more detailed view into the state of a network request\n   * on your component than `loading` does. `networkStatus` is an enum with different number values between 1 and 8.\n   * These number values each represent a different network state.\n   *\n   * 1. `loading`: The query has never been run before and the request is now pending. A query will still have this network status even if a result was returned from the cache, but a query was dispatched anyway.\n   * 2. `setVariables`: If a query\u2019s variables change and a network request was fired then the network status will be setVariables until the result of that query comes back. React users will see this when options.variables changes on their queries.\n   * 3. `fetchMore`: Indicates that fetchMore was called on this query and that the network request created is currently in flight.\n   * 4. `refetch`: It means that refetch was called on a query and the refetch request is currently in flight.\n   * 5. Unused.\n   * 6. `poll`: Indicates that a polling query is currently in flight. So for example if you are polling a query every 10 seconds then the network status will switch to poll every 10 seconds whenever a poll request has been sent but not resolved.\n   * 7. `ready`: No request is in flight for this query, and no errors happened. Everything is OK.\n   * 8. `error`: No request is in flight for this query, but one or more errors were detected.\n   *\n   * If the network status is less then 7 then it is equivalent to `loading` being true. In fact you could\n   * replace all of your `loading` checks with `networkStatus < 7` and you would not see a difference.\n   * It is recommended that you use `loading`, however.\n   */\n  networkStatus = NetworkStatus.ready;\n\n  /**\n   * If data was read from the cache with missing fields,\n   * partial will be true. Otherwise, partial will be falsy.\n   *\n   * @summary True when the query returned partial data.\n   */\n  partial = false;\n\n  #hasDisconnected = false;\n\n  #lastQueryDocument?: DocumentNode;\n\n  /** @summary A GraphQL document containing a single query. */\n  get query(): ComponentDocument<D> | null { return this.document; }\n\n  set query(document: ComponentDocument<D> | null) { this.document = document; }\n\n  /** @summary Flags an element that's ready and able to auto-subscribe */\n  public get canAutoSubscribe(): boolean {\n    return (\n      !!this.client &&\n      !!this.document &&\n      !this.options.noAutoSubscribe &&\n      this.shouldSubscribe()\n    );\n  }\n\n  constructor(\n    host: ReactiveControllerHost,\n    query?: ComponentDocument<D> | null,\n    options?: ApolloQueryControllerOptions<D, V>\n  ) {\n    super(host, options);\n    this.init(query ?? null);/* c8 ignore next */\n  }\n\n  /** @summary initializes or reinitializes the query */\n  override hostConnected(): void {\n    super.hostConnected();\n    if (this.#hasDisconnected && this.observableQuery) { /* c8 ignore next */\n      this.observableQuery.reobserve();\n      this.#hasDisconnected = false;\n    } else\n      this.documentChanged(this.query);\n  }\n\n  override hostDisconnected(): void {\n    this.#hasDisconnected = true;\n    super.hostDisconnected();\n  }\n\n  private shouldSubscribe(opts?: Partial<SubscriptionOptions<Variables<D, V>, Data<D>>>): boolean {\n    return this.options.shouldSubscribe?.(opts) ?? true;/* c8 ignore next */\n  }\n\n  /**\n   * Determines whether the element is able to automatically subscribe\n   */\n  private canSubscribe(\n    options?: Partial<SubscriptionOptions<Variables<D, V> | null, Data<D>>>\n  ): boolean {\n    /* c8 ignore next 4 */\n    return (\n      !(this.options.noAutoSubscribe ?? false) &&\n      !!this.client &&\n      !!(options?.query ?? this.document)\n    );\n  }\n\n  /**\n   * Creates an instance of ObservableQuery with the options provided by the element.\n   * - `context` Context to be passed to link execution chain\n   * - `errorPolicy` Specifies the ErrorPolicy to be used for this query\n   * - `fetchPolicy` Specifies the FetchPolicy to be used for this query\n   * - `fetchResults` Whether or not to fetch results\n   * - `metadata` Arbitrary metadata stored in the store with this query. Designed for debugging, developer tools, etc.\n   * - `notifyOnNetworkStatusChange` Whether or not updates to the network status should trigger next on the observer of this query\n   * - `pollInterval` The time interval (in milliseconds) on which this query should be refetched from the server.\n   * - `query` A GraphQL document that consists of a single query to be sent down to the server.\n   * - `variables` A map going from variable name to variable value, where the variables are used within the GraphQL query.\n   */\n  @bound private watchQuery(\n    params?: Partial<WatchQueryOptions<Variables<D, V>, Data<D>>>\n  ): ObservableQuery<Data<D>, Variables<D, V>> {\n    if (!this.client)\n      throw new TypeError('No Apollo client. See https://apolloelements.dev/guides/getting-started/apollo-client/'); /* c8 ignore next */ // covered\n\n    return this.client.watchQuery({\n      // It's better to let Apollo client throw this error\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      query: this.query!,\n      variables: this.variables ?? undefined,\n      context: this.options.context,\n      errorPolicy: this.options.errorPolicy,\n      fetchPolicy: this.options.fetchPolicy,\n      notifyOnNetworkStatusChange: this.options.notifyOnNetworkStatusChange,\n      partialRefetch: this.options.partialRefetch,\n      pollInterval: this.options.pollInterval,\n      returnPartialData: this.options.returnPartialData,\n      nextFetchPolicy: this.options.nextFetchPolicy,\n      ...params,\n    }) as ObservableQuery<Data<D>, Variables<D, V>>;\n  }\n\n  private nextData(result: ApolloQueryResult<Data<D>>): void {\n    this.emitter.dispatchEvent(new CustomEvent('apollo-query-result', { detail: result }));\n    this.data = result.data;\n    this.error = result.error ?? null;/* c8 ignore next */\n    this.errors = result.errors ?? [];\n    this.loading = result.loading ?? false;/* c8 ignore next */\n    this.networkStatus = result.networkStatus;\n    this.partial = result.partial ?? false;\n    this.options.onData?.(result.data);/* c8 ignore next */\n    this.notify('data', 'error', 'errors', 'loading', 'networkStatus', 'partial');\n  }\n\n  private nextError(error: ApolloError): void {\n    this.emitter.dispatchEvent(new CustomEvent('apollo-error', { detail: error }));\n    this.error = error;\n    this.loading = false;\n    this.options.onError?.(error);/* c8 ignore next */\n    this.notify('error', 'loading');\n  }\n\n  protected override clientChanged(): void {\n    if (this.canSubscribe() && this.shouldSubscribe())/* c8 ignore next */\n      this.subscribe();/* c8 ignore next */\n  }\n\n  protected override documentChanged(doc?: ComponentDocument<D> | null): void {\n    const query = doc ?? undefined;/* c8 ignore next */\n    if (doc === this.#lastQueryDocument)\n      return;/* c8 ignore next */\n    if (this.canSubscribe({ query }) && this.shouldSubscribe({ query }))/* c8 ignore next */\n      this.subscribe({ query }); /* c8 ignore next */ // covered\n  }\n\n  protected override variablesChanged(variables?: Variables<D, V>): void {\n    if (this.observableQuery)\n      this.refetch(variables);/* c8 ignore next */\n    else if (this.canSubscribe({ variables }) && this.shouldSubscribe({ variables }))/* c8 ignore next */\n      this.subscribe({ variables });/* c8 ignore next */\n  }\n\n  /**\n   * Exposes the [`ObservableQuery#refetch`](https://www.apollographql.com/docs/react/api/apollo-client.html#ObservableQuery.refetch) method.\n   *\n   * @param variables The new set of variables. If there are missing variables, the previous values of those variables will be used.\n   */\n  @bound public async refetch(variables?: Variables<D, V>): Promise<ApolloQueryResult<Data<D>>> {\n    if (!this.observableQuery)\n      throw new Error('Cannot refetch without an ObservableQuery'); /* c8 ignore next */ // covered\n    return this.observableQuery.refetch(variables as Variables<D, V>);\n  }\n\n  /**\n   * Resets the observableQuery and subscribes.\n   * @param params options for controlling how the subscription subscribes\n   */\n  @bound public subscribe(\n    params?: Partial<WatchQueryOptions<Variables<D, V>, Data<D>>>\n  ): ZenObservable.Subscription {\n    if (this.observableQuery)\n      this.observableQuery.stopPolling(); /* c8 ignore next */ // covered\n\n    this.observableQuery = this.watchQuery({\n      // It's better to let Apollo client throw this error\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      query: this.query!,\n      variables: this.variables ?? undefined,\n      context: this.options.context,\n      errorPolicy: this.options.errorPolicy,\n      fetchPolicy: this.options.fetchPolicy,\n      pollInterval: this.options.pollInterval,\n      notifyOnNetworkStatusChange: this.options.notifyOnNetworkStatusChange,\n      returnPartialData: this.options.returnPartialData,\n      partialRefetch: this.options.partialRefetch,\n      ...params,\n    });\n\n    this.#lastQueryDocument = params?.query ?? this.query ?? undefined;/* c8 ignore next */\n\n    this.loading = true;\n    this.notify('loading');\n\n    return this.observableQuery?.subscribe({\n      next: this.nextData.bind(this),\n      error: this.nextError.bind(this),\n    });\n  }\n\n  /**\n   * Lets you pass a GraphQL subscription and updateQuery function\n   * to subscribe to more updates for your query.\n   *\n   * The `updateQuery` parameter is a function that takes the previous query data,\n   * then a `{ subscriptionData: TSubscriptionResult }` object,\n   * and returns an object with updated query data based on the new results.\n   */\n  @bound public subscribeToMore<TSubscriptionVariables, TSubscriptionData>(\n    options: SubscribeToMoreOptions<Data<D>, TSubscriptionVariables, TSubscriptionData>\n  ): (() => void) | void {\n    return this.observableQuery?.subscribeToMore(options);\n  }\n\n  /**\n   * @summary Executes a Query once and updates the with the result\n   */\n  @bound public async executeQuery(\n    params?: Partial<QueryOptions<Variables<D, V>, Data<D>>>\n  ): Promise<ApolloQueryResult<Data<D>>> {\n    try {\n      if (!this.client)\n        throw new TypeError('No Apollo client. See https://apolloelements.dev/guides/getting-started/apollo-client/'); /* c8 ignore next */ // covered\n\n      this.loading = true;\n      this.notify('loading');\n\n      const result = await this.client.query<Data<D>, Variables<D, V>>({\n        // It's better to let Apollo client throw this error, if needs be\n        // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n        query: this.query!, variables: this.variables!,\n        context: this.options.context,\n        errorPolicy: this.options.errorPolicy,\n        fetchPolicy:\n            this.options.fetchPolicy === 'cache-and-network' ? undefined/* c8 ignore next */\n          : this.options.fetchPolicy,\n        notifyOnNetworkStatusChange: this.options.notifyOnNetworkStatusChange,\n        partialRefetch: this.options.partialRefetch,\n        returnPartialData: this.options.returnPartialData,\n        ...params,\n      });\n      if (result) // NB: not sure why, but sometimes this returns undefined\n        this.nextData(result);\n      return result;/* c8 ignore next */\n    } catch (error) {\n      this.nextError(error);\n      throw error;\n    }\n  }\n\n  /**\n   * Exposes the `ObservableQuery#fetchMore` method.\n   * https://www.apollographql.com/docs/react/api/core/ObservableQuery/#ObservableQuery.fetchMore\n   *\n   * The optional `updateQuery` parameter is a function that takes the previous query data,\n   * then a `{ subscriptionData: TSubscriptionResult }` object,\n   * and returns an object with updated query data based on the new results.\n   *\n   * The optional `variables` parameter is an optional new variables object.\n   */\n  @bound public async fetchMore(\n    params?: Partial<FetchMoreParams<D, V>>\n  ): Promise<ApolloQueryResult<Data<D>>> {\n    this.loading = true;\n    this.notify('loading');\n\n    const options = {\n      // It's better to let Apollo client throw this error\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      query: this.query!,\n      context: this.options.context,\n      variables: this.variables,\n      ...params,\n    };\n\n    return (\n      this.observableQuery ??= this.watchQuery(\n        options as WatchQueryOptions<Variables<D, V>, Data<D>>\n      )\n    ).fetchMore({\n      ...options,\n      variables: (options.variables as Variables<D, V>) ?? undefined, /* c8 ignore next */\n    }).then(x => {\n      this.loading = false;\n      this.notify('loading');\n      return x;\n    });\n  }\n\n  /**\n   * @summary Start polling this query\n   * @param ms milliseconds to wait between fetches\n   */\n  @bound public startPolling(ms: number): void {\n    this.pollingInterval = window.setInterval(() => {\n      this.refetch();\n    }, ms);\n  }\n\n  /**\n   * @summary Stop polling this query\n   */\n  @bound public stopPolling(): void {\n    clearInterval(this.pollingInterval);\n  }\n}\n", "import type {\n  Constructor,\n  MaybeTDN,\n  MaybeVariables,\n  ComponentDocument,\n} from '@apollo-elements/core/types';\n\nimport type { Descriptor } from 'hybrids';\n\nimport { controller } from './controller.js';\n\nimport {\n  ApolloQueryController,\n  ApolloQueryControllerOptions,\n} from '@apollo-elements/core/apollo-query-controller';\n\n/**\n * Hybrids property descriptor factory for GraphQL querys.\n *\n * @param  queryDocument The query document.\n * @param  options Options to control the query.\n * @return Hybrids descriptor for a [`ApolloQueryController`](/api/core/controllers/query/)\n */\nexport function query<\n  E extends HTMLElement,\n  D extends MaybeTDN = MaybeTDN,\n  V = MaybeVariables<D>\n>(\n  queryDocument?: ComponentDocument<D> | null,\n  options?: ApolloQueryControllerOptions<D, V>,\n): Descriptor<E, ApolloQueryController<D, V>> {\n  return controller(\n    ApolloQueryController as Constructor<ApolloQueryController<D, V>>,\n    queryDocument,\n    options,\n  );\n}\n", "import type { ReactiveController, ReactiveControllerHost } from 'lit';\n\nimport type {\n  ComponentDocument,\n  Data,\n  MaybeTDN,\n  MaybeVariables,\n  OptimisticResponseType,\n  RefetchQueriesType,\n  Variables,\n} from '@apollo-elements/core/types';\n\nimport type {\n  ApolloError,\n  ErrorPolicy,\n  FetchPolicy,\n  FetchResult,\n  MutationOptions,\n  MutationUpdaterFn,\n} from '@apollo/client/core';\n\nimport { ApolloController, ApolloControllerOptions } from './apollo-controller.js';\n\nimport { bound } from './lib/bound.js';\n\nexport interface ApolloMutationControllerOptions<D, V> extends ApolloControllerOptions<D, V> {\n  /**\n   * An object that maps from the name of a variable as used in the mutation GraphQL document to that variable's value.\n   *\n   * @summary Mutation variables.\n   */\n  variables?: Variables<D, V>,\n  refetchQueries?: RefetchQueriesType<D> | null,\n  context?: Record<string, unknown>,\n  optimisticResponse?: OptimisticResponseType<D, V>,\n  errorPolicy?: ErrorPolicy;\n  fetchPolicy?: Extract<FetchPolicy, 'no-cache'>,\n  awaitRefetchQueries?: boolean,\n  onCompleted?(data: Data<D>|null): void,\n  onError?(error: Error): void,\n  update?(\n    ...p: Parameters<MutationUpdaterFn<Data<D>>>\n  ): ReturnType<MutationUpdaterFn<Data<D>>>,\n  ignoreResults?: boolean,\n}\n\nexport class ApolloMutationController<D extends MaybeTDN = MaybeTDN, V = MaybeVariables<D>>\n  extends ApolloController<D, V> implements ReactiveController {\n  /**\n   * The ID number of the most recent mutation since the element was instantiated.\n   */\n  private mostRecentMutationId = 0;\n\n  // @ts-expect-error: https://github.com/microsoft/TypeScript/issues/40220\n  declare options: ApolloMutationControllerOptions<D, V>;\n\n  called = false;\n\n  get mutation(): ComponentDocument<D> | null { return this.document; }\n\n  set mutation(document: ComponentDocument<D> | null) { this.document = document; }\n\n  constructor(\n    host: ReactiveControllerHost,\n    mutation?: ComponentDocument<D> | null,\n    options?: ApolloMutationControllerOptions<D, V>\n  ) {\n    super(host, options);\n    this.init(mutation ?? null);/* c8 ignore next */\n  }\n\n  /**\n   * @summary Fires a mutation\n   * This resolves a single mutation according to the options specified and returns a Promise which is either resolved with the resulting data or rejected with an error.\n   */\n  @bound public async mutate(\n    params?: Partial<MutationOptions<Data<D>, Variables<D, V>>>\n  ): Promise<FetchResult<Data<D>>> {\n    if (!this.client)\n      throw new TypeError('No Apollo client. See https://apolloelements.dev/guides/getting-started/apollo-client/'); /* c8 ignore next */ // covered\n    const mutationId = this.generateMutationId();\n\n    this.loading = true;\n    this.called = true;\n    this.error = null;\n    this.errors = [];\n    this.data = null;\n    this.notify('called', 'data', 'error', 'errors', 'loading');\n\n    return this.client.mutate<Data<D>, Variables<D, V>>({\n      // It's better to let Apollo client throw this error\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      mutation: this.mutation!,\n\n      awaitRefetchQueries: this.options.awaitRefetchQueries,\n      context: this.options.context,\n      errorPolicy: this.options.errorPolicy,\n      fetchPolicy: this.options.fetchPolicy,\n      optimisticResponse: this.options.optimisticResponse,\n      refetchQueries: this.options.refetchQueries ?? undefined,\n      update: this.options.update,\n      variables: this.variables ?? undefined,\n      ...params,\n    })\n      .then(this.onCompletedMutation.bind(this, mutationId))\n      .catch(this.onMutationError.bind(this, mutationId));\n  }\n\n  /**\n   * Increments and returns the most recent mutation id.\n   */\n  private generateMutationId(): number {\n    this.mostRecentMutationId += 1;\n    return this.mostRecentMutationId;\n  }\n\n  /**\n   * Returns true when an ID matches the most recent mutation id.\n   */\n  private isMostRecentMutation(mutationId: number): boolean {\n    return this.mostRecentMutationId === mutationId;\n  }\n\n  /**\n   * Callback for when a mutation is completed.\n   */\n  private onCompletedMutation(\n    mutationId: number,\n    response: FetchResult<Data<D>>\n  ): FetchResult<Data<D>> {\n    const { data } = response;\n    this.emitter.dispatchEvent(new CustomEvent('apollo-mutation-result', { detail: response }));\n    if (this.isMostRecentMutation(mutationId)) {\n      this.loading = false;\n      if (!this.options.ignoreResults) {\n        this.error = null;\n        this.data = data ?? null;/* c8 ignore next */\n        this.errors = response.errors ?? [];\n        this.options.onCompleted?.(this.data); /* c8 ignore next */\n      }\n      this.notify('data', 'error', 'errors', 'loading');\n    }\n    return response;\n  }\n\n  /**\n   * Callback for when a mutation fails.\n   */\n  private onMutationError(mutationId: number, error: ApolloError): never {\n    this.emitter.dispatchEvent(new CustomEvent('apollo-error', { detail: error }));\n    if (this.isMostRecentMutation(mutationId)) {\n      this.loading = false;\n      this.data = null;\n      this.error = error;\n    }\n    this.options.onError?.(error);\n    this.notify('data', 'error', 'loading');\n    throw error;\n  }\n}\n", "import type {\n  Constructor,\n  ComponentDocument,\n  MaybeTDN,\n  MaybeVariables,\n} from '@apollo-elements/core/types';\n\nimport type { Descriptor } from 'hybrids';\n\nimport { controller } from './controller.js';\n\nimport {\n  ApolloMutationController,\n  ApolloMutationControllerOptions,\n} from '@apollo-elements/core/apollo-mutation-controller';\n\n/**\n * Hybrids property descriptor factory for GraphQL mutations.\n *\n * @param  mutationDocument The mutation document.\n * @param  options Options to control the mutation.\n * @return Hybrids descriptor for a [ApolloMutationController](/api/core/controllers/mutation/)\n */\nexport function mutation<\n  E extends HTMLElement,\n  D extends MaybeTDN = MaybeTDN,\n  V = MaybeVariables<D>\n>(\n  mutationDocument?: ComponentDocument<D> | null,\n  options?: ApolloMutationControllerOptions<D, V>,\n): Descriptor<E, ApolloMutationController<D, V>> {\n  return controller(\n    ApolloMutationController as Constructor<ApolloMutationController<D, V>>,\n    mutationDocument,\n    options,\n  );\n}\n", "import type { ReactiveController, ReactiveControllerHost } from 'lit';\n\nimport type {\n  ComponentDocument,\n  Data,\n  MaybeTDN,\n  MaybeVariables,\n  SubscriptionDataOptions,\n  Variables,\n} from '@apollo-elements/core/types';\n\nimport type {\n  ApolloClient,\n  ApolloError,\n  DocumentNode,\n  FetchPolicy,\n  FetchResult,\n  NormalizedCacheObject,\n  Observable,\n  SubscriptionOptions,\n  WatchQueryOptions,\n} from '@apollo/client/core';\n\nimport { ApolloController, ApolloControllerOptions } from './apollo-controller.js';\n\nimport { bound } from './lib/bound.js';\n\nexport interface ApolloSubscriptionControllerOptions<D, V> extends ApolloControllerOptions<D, V>,\n          Partial<WatchQueryOptions<Variables<D, V>, Data<D>>> {\n  variables?: Variables<D, V>,\n  fetchPolicy?: FetchPolicy;\n  noAutoSubscribe?: boolean;\n  shouldSubscribe?: (options?: Partial<SubscriptionOptions<Variables<D, V>, Data<D>>>) => boolean;\n  shouldResubscribe?: boolean;\n  skip?: boolean;\n  onData?: (detail: {\n    client: ApolloClient<NormalizedCacheObject>;\n    subscriptionData: { data: Data<D> | null; loading: boolean; error: null; };\n  }) => void;\n  onComplete?: () => void;\n  onError?: (error: ApolloError) => void;\n}\n\nexport class ApolloSubscriptionController<D extends MaybeTDN = MaybeTDN, V = MaybeVariables<D>>\n  extends ApolloController<D, V>\n  implements ReactiveController {\n  private observable?: Observable<FetchResult<Data<D>>>;\n\n  private observableSubscription?: ZenObservable.Subscription;\n\n  // @ts-expect-error: https://github.com/microsoft/TypeScript/issues/40220\n  declare options: ApolloSubscriptionControllerOptions<D, V>;\n\n  #hasDisconnected = false;\n\n  #lastSubscriptionDocument?: DocumentNode;\n\n  get subscription(): ComponentDocument<D> | null { return this.document; }\n\n  set subscription(document: ComponentDocument<D> | null) { this.document = document; }\n\n  /** Flags an element that's ready and able to auto-subscribe */\n  public get canAutoSubscribe(): boolean {\n    return (\n      !!this.client &&\n      !this.options.noAutoSubscribe &&\n      this.shouldSubscribe()\n    );\n  }\n\n  constructor(\n    host: ReactiveControllerHost,\n    subscription?: ComponentDocument<D> | null,\n    options?: ApolloSubscriptionControllerOptions<D, V>\n  ) {\n    super(host, options);\n    this.init(subscription ?? null);/* c8 ignore next */\n  }\n\n  override hostConnected(): void {\n    super.hostConnected();\n    /* c8 ignore start */ // covered\n    if (this.#hasDisconnected && this.observableSubscription)\n      this.subscribe(); /* c8 ignore stop */\n    else\n      this.documentChanged(this.subscription);\n  }\n\n  override hostDisconnected(): void {\n    this.endSubscription();\n    this.#hasDisconnected = true;\n    super.hostDisconnected();\n  }\n\n  /**\n   * Determines whether the element is able to automatically subscribe\n   */\n  private canSubscribe(\n    options?: Partial<SubscriptionOptions<Variables<D, V> | null, Data<D>>>\n  ): boolean {\n    /* c8 ignore next 4 */\n    return (\n      !this.options.noAutoSubscribe &&\n      !!this.client &&\n      (!this.observable || !!this.options.shouldResubscribe) &&\n      !!(options?.query ?? this.subscription)\n    );\n  }\n\n  private initObservable(params?: Partial<SubscriptionDataOptions<D, V>>): void {\n    const {\n      shouldResubscribe = this.options.shouldResubscribe,\n      client = this.client,\n      skip = this.options.skip,\n      ...rest\n    } = params ?? {}; /* c8 ignore start */ // covered\n\n    if (!client) /* c8 ignore start */ // covered\n      throw new TypeError('No Apollo client. See https://apolloelements.dev/guides/getting-started/apollo-client/');\n\n\n    if ((this.observable && !shouldResubscribe) || skip)\n      return; /* c8 ignore stop */\n\n    const query = params?.subscription ?? this.subscription as DocumentNode; /* c8 ignore next */\n    this.#lastSubscriptionDocument = query;\n    this.observable = client.subscribe({\n      // It's better to let Apollo client throw this error\n      // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n      variables: this.variables,\n      context: this.options.context,\n      errorPolicy: this.options.errorPolicy,\n      fetchPolicy: this.options.fetchPolicy,\n      ...rest,\n      query,\n    });\n  }\n\n  /**\n   * Sets `data`, `loading`, and `error` on the instance when new subscription results arrive.\n   */\n  private nextData(result: FetchResult<Data<D>>) {\n    const { data = null, errors } = result;\n    // If we got to this line without a client, it's because of user error\n    // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n    const client = this.client!;\n    const loading = false;\n    const subscriptionData = { data, loading, error: null };\n    const detail = { client, subscriptionData };\n    this.emitter.dispatchEvent(new CustomEvent('apollo-subscription-result', { detail }));\n    this.data = data;\n    this.error = null;\n    this.errors = errors ?? [];\n    this.loading = loading;\n    this.options.onData?.(detail); /* c8 ignore next */ // covered\n    this.notify('data', 'error', 'errors', 'loading');\n  }\n\n  /**\n   * Sets `error` and `loading` on the instance when the subscription errors.\n   */\n  private nextError(error: ApolloError) {\n    this.emitter.dispatchEvent(new CustomEvent('apollo-error', { detail: error }));\n    this.error = error;\n    this.loading = false;\n    this.options.onError?.(error); /* c8 ignore next */ // covered\n    this.notify('error', 'loading');\n  }\n\n  /**\n   * Shuts down the subscription\n   */\n  private onComplete(): void {\n    this.options.onComplete?.(); /* c8 ignore next */ // covered\n    this.endSubscription();\n    this.notify();\n  }\n\n  private endSubscription() {\n    if (this.observableSubscription)\n      this.observableSubscription.unsubscribe();\n  }\n\n  private shouldSubscribe(opts?: Partial<SubscriptionOptions<Variables<D, V>, Data<D>>>): boolean {\n    return this.options.shouldSubscribe?.(opts) ?? true; /* c8 ignore next */\n  }\n\n  protected override clientChanged(): void {\n    if (this.canSubscribe() && this.shouldSubscribe())/* c8 ignore next */\n      this.subscribe();/* c8 ignore next */\n  }\n\n  protected override documentChanged(doc?: ComponentDocument<D> | null): void {\n    const query = doc ?? undefined;/* c8 ignore next */\n    if (doc === this.#lastSubscriptionDocument)\n      return;/* c8 ignore next */\n    this.cancel();\n    if (this.canSubscribe({ query }) && this.shouldSubscribe({ query })) /* c8 ignore next */\n      this.subscribe();/* c8 ignore next */\n  }\n\n  protected override variablesChanged(variables?: Variables<D, V>): void {\n    this.cancel();\n    if (this.canSubscribe({ variables }) && this.shouldSubscribe({ variables }))/* c8 ignore next */\n      this.subscribe();/* c8 ignore next */\n  }\n\n  /**\n   * @summary Starts the subscription\n   */\n  @bound public subscribe(params?: Partial<SubscriptionDataOptions<D, V>>): void {\n    this.initObservable(params);\n\n    /* c8 ignore start */ // covered\n    const shouldResubscribe = params?.shouldResubscribe ?? this.options.shouldResubscribe;\n    if (this.observableSubscription && !shouldResubscribe) return;\n    /* c8 ignore stop */\n\n    this.loading = true;\n    this.notify('loading');\n\n    this.observableSubscription =\n      this.observable?.subscribe({\n        next: this.nextData.bind(this),\n        error: this.nextError.bind(this),\n        complete: this.onComplete.bind(this),\n      });\n  }\n\n  /**\n   * @summary Ends the subscription\n   */\n  @bound public cancel(): void {\n    this.endSubscription();\n    this.observableSubscription = undefined;\n    this.observable = undefined;\n  }\n}\n", "import type {\n  Constructor,\n  MaybeTDN,\n  MaybeVariables,\n  ComponentDocument,\n} from '@apollo-elements/core/types';\n\nimport type { Descriptor } from 'hybrids';\n\nimport { controller } from './controller.js';\n\nimport {\n  ApolloSubscriptionController,\n  ApolloSubscriptionControllerOptions,\n} from '@apollo-elements/core/apollo-subscription-controller';\n\n/**\n * Hybrids property descriptor factory for GraphQL subscriptions.\n *\n * @param  subscriptionDocument The subscription document.\n * @param  options Options to control the subscription.\n * @return Hybrids descriptor for a [ApolloMutationController](/api/core/controllers/subscription/)\n */\nexport function subscription<\n  E extends HTMLElement,\n  D extends MaybeTDN = MaybeTDN,\n  V = MaybeVariables<D>\n>(\n  subscriptionDocument?: ComponentDocument<D> | null,\n  options?: ApolloSubscriptionControllerOptions<D, V>,\n): Descriptor<E, ApolloSubscriptionController<D, V>> {\n  return controller(\n    ApolloSubscriptionController as Constructor<ApolloSubscriptionController<D, V>>,\n    subscriptionDocument,\n    options,\n  );\n}\n", "const camelToDashMap = new Map();\nexport function camelToDash(str) {\n  let result = camelToDashMap.get(str);\n  if (result === undefined) {\n    result = str.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n    camelToDashMap.set(str, result);\n  }\n  return result;\n}\n\nexport function pascalToDash(str) {\n  return camelToDash(str.replace(/((?!([A-Z]{2}|^))[A-Z])/g, \"-$1\"));\n}\n\nexport function dispatch(host, eventType, options = {}) {\n  return host.dispatchEvent(\n    new CustomEvent(eventType, { bubbles: false, ...options }),\n  );\n}\n\nexport function shadyCSS(fn, fallback) {\n  const shady = window.ShadyCSS;\n\n  /* istanbul ignore next */\n  if (shady && !shady.nativeShadow) {\n    return fn(shady);\n  }\n\n  return fallback;\n}\n\nexport function stringifyElement(target) {\n  return `<${String(target.tagName).toLowerCase()}>`;\n}\n\nexport const deferred = Promise.resolve();\n\nexport const storePointer = new WeakMap();\n", "import { camelToDash } from \"./utils.js\";\n\nconst defaultTransform = v => v;\n\nconst objectTransform = value => {\n  if (typeof value !== \"object\") {\n    throw TypeError(`Assigned value must be an object: ${typeof value}`);\n  }\n  return value && Object.freeze(value);\n};\n\nexport default function property(value, connect) {\n  const attrs = new WeakMap();\n  const type = typeof value;\n  let transform = defaultTransform;\n\n  switch (type) {\n    case \"string\":\n      transform = String;\n      break;\n    case \"number\":\n      transform = Number;\n      break;\n    case \"boolean\":\n      transform = Boolean;\n      break;\n    case \"function\":\n      transform = value;\n      value = transform();\n      break;\n    case \"object\":\n      if (value) Object.freeze(value);\n      transform = objectTransform;\n      break;\n    default:\n      break;\n  }\n\n  return {\n    get: (host, val = value) => val,\n    set: (host, val, oldValue = value) => transform(val, oldValue),\n    connect:\n      type !== \"object\" && type !== \"undefined\"\n        ? (host, key, invalidate) => {\n            if (!attrs.has(host)) {\n              const attrName = camelToDash(key);\n              attrs.set(host, attrName);\n\n              if (host.hasAttribute(attrName)) {\n                const attrValue = host.getAttribute(attrName);\n                host[key] =\n                  attrValue === \"\" && transform === Boolean ? true : attrValue;\n              }\n            }\n\n            return connect && connect(host, key, invalidate);\n          }\n        : connect,\n    observe:\n      type !== \"object\" &&\n      type !== \"undefined\" &&\n      ((host, val) => {\n        const attrName = attrs.get(host);\n\n        const attrValue = host.getAttribute(attrName);\n        const nextValue = val === true ? \"\" : val;\n\n        if (nextValue === attrValue) return;\n\n        if (val !== 0 && !val) {\n          host.removeAttribute(attrName);\n        } else {\n          host.setAttribute(attrName, nextValue);\n        }\n      }),\n  };\n}\n", "export default function render(fn, customOptions = {}) {\n  if (typeof fn !== \"function\") {\n    throw TypeError(`The first argument must be a function: ${typeof fn}`);\n  }\n\n  const options = { shadowRoot: true, ...customOptions };\n  const shadowRootInit = { mode: \"open\" };\n\n  if (typeof options.shadowRoot === \"object\") {\n    Object.assign(shadowRootInit, options.shadowRoot);\n  }\n\n  const getTarget = options.shadowRoot\n    ? host => host.shadowRoot || host.attachShadow(shadowRootInit)\n    : host => host;\n\n  return {\n    get(host) {\n      const update = fn(host);\n      const target = getTarget(host);\n\n      return function flush() {\n        update(host, target);\n        return target;\n      };\n    },\n    observe(host, flush) {\n      flush();\n    },\n  };\n}\n", "const callbacks = new WeakMap();\nconst queue = new Set();\n\nfunction execute() {\n  try {\n    queue.forEach(target => {\n      try {\n        callbacks.get(target)();\n        queue.delete(target);\n      } catch (e) {\n        queue.delete(target);\n        throw e;\n      }\n    });\n  } catch (e) {\n    if (queue.size) execute();\n    throw e;\n  }\n}\n\nexport function dispatch(target) {\n  if (callbacks.has(target)) {\n    if (!queue.size) {\n      requestAnimationFrame(execute);\n    }\n    queue.add(target);\n  }\n}\n\nexport function subscribe(target, cb) {\n  callbacks.set(target, cb);\n  dispatch(target);\n\n  return function unsubscribe() {\n    queue.delete(target);\n    callbacks.delete(target);\n  };\n}\n", "import * as emitter from \"./emitter.js\";\n\nconst entries = new WeakMap();\nconst suspense = new WeakSet();\nconst values = new WeakMap();\n\nexport function getEntry(target, key) {\n  let targetMap = entries.get(target);\n  if (!targetMap) {\n    targetMap = new Map();\n    entries.set(target, targetMap);\n  }\n\n  let entry = targetMap.get(key);\n\n  if (!entry) {\n    entry = {\n      target,\n      key,\n      value: undefined,\n      contexts: new Set(),\n      deps: new Set(),\n      state: 0,\n      depState: 0,\n      resolved: false,\n    };\n    targetMap.set(key, entry);\n  }\n\n  return entry;\n}\n\nexport function getEntries(target) {\n  const result = [];\n  const targetMap = entries.get(target);\n  if (targetMap) {\n    targetMap.forEach(entry => {\n      result.push(entry);\n    });\n  }\n  return result;\n}\n\nfunction cleanContexts(entry) {\n  entry.contexts.forEach(contextEntry => {\n    if (suspense.has(contextEntry.target)) {\n      contextEntry.depState = 0;\n      contextEntry.resolved = false;\n      contextEntry.value = undefined;\n\n      values.delete(contextEntry);\n\n      entry.contexts.delete(contextEntry);\n    }\n  });\n}\n\nfunction dispatchDeep(entry) {\n  entry.resolved = false;\n\n  if (!suspense.has(entry.target)) {\n    emitter.dispatch(entry);\n  }\n\n  cleanContexts(entry);\n  entry.contexts.forEach(dispatchDeep);\n}\n\nlet context = null;\nconst contexts = new Set();\nexport function get(target, key, getter, validate) {\n  const entry = getEntry(target, key);\n\n  if (context && !suspense.has(context.target)) {\n    context.deps.add(entry);\n    entry.contexts.add(context);\n  }\n\n  if (!suspense.has(target)) {\n    cleanContexts(entry);\n\n    if (entry.resolved && (!validate || (validate && validate(entry.value)))) {\n      return entry.value;\n    }\n\n    if (entry.depState > entry.state && !validate) {\n      let depState = entry.state;\n\n      for (const depEntry of entry.deps) {\n        // eslint-disable-next-line no-unused-expressions\n        depEntry.target[depEntry.key];\n\n        if (!depEntry.resolved) {\n          depState = false;\n          break;\n        }\n\n        depState += depEntry.state;\n      }\n\n      if (depState && depState === entry.depState) {\n        entry.resolved = true;\n        return entry.value;\n      }\n    }\n  }\n\n  const lastContext = context;\n\n  try {\n    if (contexts.has(entry)) {\n      throw Error(`Circular get invocation is forbidden: '${key}'`);\n    }\n\n    entry.deps.forEach(depEntry => {\n      depEntry.contexts.delete(entry);\n    });\n\n    entry.deps.clear();\n    context = entry;\n    contexts.add(entry);\n\n    const nextValue = getter(target, entry.value);\n\n    context = lastContext;\n\n    if (nextValue !== entry.value) {\n      entry.value = nextValue;\n      entry.state += 1;\n    }\n\n    let depState = entry.state;\n    entry.deps.forEach(depEntry => {\n      depState += depEntry.state;\n    });\n\n    entry.depState = depState;\n    entry.resolved = !suspense.has(target);\n\n    contexts.delete(entry);\n  } catch (e) {\n    context = lastContext;\n    contexts.delete(entry);\n\n    entry.resolved = false;\n\n    if (context && !suspense.has(context)) {\n      context.deps.delete(entry);\n      entry.contexts.delete(context);\n    }\n\n    throw e;\n  }\n\n  return entry.value;\n}\n\nexport function set(target, key, setter, value) {\n  const entry = getEntry(target, key);\n  const newValue = setter(target, value, entry.value);\n\n  if (newValue !== entry.value) {\n    entry.value = newValue;\n    entry.state += 1;\n    entry.depState = 0;\n\n    dispatchDeep(entry);\n  }\n}\n\nconst gcList = new Set();\nfunction deleteEntry(entry) {\n  if (!gcList.size) {\n    requestAnimationFrame(() => {\n      gcList.forEach(e => {\n        if (e.contexts.size === 0) {\n          e.deps.forEach(depEntry => {\n            depEntry.contexts.delete(e);\n          });\n\n          const targetMap = entries.get(e.target);\n          targetMap.delete(e.key);\n        }\n      });\n      gcList.clear();\n    });\n  }\n\n  gcList.add(entry);\n}\n\nfunction invalidateEntry(entry, options) {\n  entry.depState = 0;\n  dispatchDeep(entry);\n\n  if (options.clearValue) {\n    entry.value = undefined;\n    values.delete(entry);\n  }\n\n  if (options.deleteEntry) {\n    deleteEntry(entry);\n  }\n\n  if (options.force) {\n    entry.state += 1;\n  }\n}\n\nexport function invalidate(target, key, options = {}) {\n  if (contexts.size) {\n    throw Error(\n      `Invalidating property in chain of get calls is forbidden: '${key}'`,\n    );\n  }\n\n  const entry = getEntry(target, key);\n  invalidateEntry(entry, options);\n}\n\nexport function invalidateAll(target, options = {}) {\n  if (contexts.size) {\n    throw Error(\n      \"Invalidating all properties in chain of get calls is forbidden\",\n    );\n  }\n\n  const targetMap = entries.get(target);\n  if (targetMap) {\n    targetMap.forEach(entry => {\n      invalidateEntry(entry, options);\n    });\n  }\n}\n\nexport function observe(target, key, getter, fn) {\n  const entry = getEntry(target, key);\n\n  return emitter.subscribe(entry, () => {\n    const lastValue = values.get(entry);\n    const value = get(target, key, getter);\n\n    if (value !== lastValue) {\n      fn(target, value, lastValue);\n      values.set(entry, value);\n    }\n  });\n}\n\nexport function suspend(target) {\n  suspense.add(target);\n}\n\nexport function unsuspend(target) {\n  suspense.delete(target);\n}\n", "import property from \"./property.js\";\nimport render from \"./render.js\";\n\nimport * as cache from \"./cache.js\";\nimport { pascalToDash, deferred } from \"./utils.js\";\n\nconst defaultMethod = (host, value) => value;\n\nexport const callbacksMap = new WeakMap();\nconst propsMap = new WeakMap();\n\nfunction translate(key, desc) {\n  const type = typeof desc;\n\n  let config;\n\n  if (type === \"function\") {\n    switch (key) {\n      case \"render\":\n        config = render(desc);\n        break;\n      case \"content\":\n        config = render(desc, { shadowRoot: false });\n        break;\n      default:\n        config = { get: desc };\n    }\n  } else if (type !== \"object\" || desc === null || Array.isArray(desc)) {\n    config = property(desc);\n  } else {\n    config = {\n      get: desc.get || defaultMethod,\n      set: desc.set || (!desc.get && defaultMethod) || undefined,\n      connect: desc.connect,\n      observe: desc.observe,\n    };\n  }\n\n  return config;\n}\n\nfunction compile(Hybrid, descriptors) {\n  Hybrid.hybrids = descriptors;\n\n  const callbacks = [];\n  const props = Object.keys(descriptors);\n\n  callbacksMap.set(Hybrid, callbacks);\n  propsMap.set(Hybrid, props);\n\n  props.forEach(key => {\n    const config = translate(key, descriptors[key]);\n\n    Object.defineProperty(Hybrid.prototype, key, {\n      get: function get() {\n        return cache.get(this, key, config.get);\n      },\n      set:\n        config.set &&\n        function set(newValue) {\n          cache.set(this, key, config.set, newValue);\n        },\n      enumerable: true,\n      configurable: true,\n    });\n\n    if (config.observe) {\n      callbacks.unshift(host =>\n        cache.observe(host, key, config.get, config.observe),\n      );\n    }\n\n    if (config.connect) {\n      callbacks.push(host =>\n        config.connect(host, key, options => {\n          cache.invalidate(host, key, {\n            force: options && options.force === true,\n          });\n        }),\n      );\n    }\n  });\n}\n\nfunction walkInShadow(node, fn) {\n  fn(node);\n\n  Array.from(node.children).forEach(el => walkInShadow(el, fn));\n\n  if (node.shadowRoot) {\n    Array.from(node.shadowRoot.children).forEach(el => walkInShadow(el, fn));\n  }\n}\n\nconst updateQueue = new Map();\nfunction update(Hybrid, lastHybrids) {\n  if (!updateQueue.size) {\n    deferred.then(() => {\n      walkInShadow(document.body, node => {\n        if (updateQueue.has(node.constructor)) {\n          const prevHybrids = updateQueue.get(node.constructor);\n          const hybrids = node.constructor.hybrids;\n          node.disconnectedCallback();\n\n          Object.keys(hybrids).forEach(key => {\n            const type = typeof hybrids[key];\n            const clearValue =\n              type !== \"object\" &&\n              type !== \"function\" &&\n              hybrids[key] !== prevHybrids[key];\n            cache.invalidate(node, key, { clearValue });\n          });\n\n          node.connectedCallback();\n        }\n      });\n      updateQueue.clear();\n    });\n  }\n  updateQueue.set(Hybrid, lastHybrids);\n}\n\nconst disconnects = new WeakMap();\n\nexport function defineElement(tagName, hybrids) {\n  const type = typeof hybrids;\n  if (!hybrids || type !== \"object\") {\n    throw TypeError(`Second argument must be an object: ${type}`);\n  }\n\n  if (tagName !== null) {\n    const CustomElement = window.customElements.get(tagName);\n\n    if (CustomElement) {\n      if (CustomElement.hybrids === hybrids) {\n        return CustomElement;\n      }\n      if (CustomElement.hybrids) {\n        Object.keys(CustomElement.hybrids).forEach(key => {\n          delete CustomElement.prototype[key];\n        });\n\n        const lastHybrids = CustomElement.hybrids;\n\n        compile(CustomElement, hybrids);\n        update(CustomElement, lastHybrids);\n\n        return CustomElement;\n      }\n\n      return window.customElements.define(tagName, HTMLElement);\n    }\n  }\n\n  class Hybrid extends HTMLElement {\n    constructor() {\n      super();\n\n      const props = propsMap.get(Hybrid);\n\n      for (let index = 0; index < props.length; index += 1) {\n        const key = props[index];\n        if (hasOwnProperty.call(this, key)) {\n          const value = this[key];\n          delete this[key];\n          this[key] = value;\n        }\n      }\n\n      cache.suspend(this);\n    }\n\n    connectedCallback() {\n      cache.unsuspend(this);\n\n      const callbacks = callbacksMap.get(Hybrid);\n      const list = [];\n\n      for (let index = 0; index < callbacks.length; index += 1) {\n        const cb = callbacks[index](this);\n        if (cb) list.push(cb);\n      }\n\n      disconnects.set(this, list);\n    }\n\n    disconnectedCallback() {\n      const list = disconnects.get(this);\n      for (let index = 0; index < list.length; index += 1) {\n        list[index]();\n      }\n\n      cache.suspend(this);\n    }\n  }\n\n  compile(Hybrid, hybrids);\n\n  if (tagName !== null) {\n    Object.defineProperty(Hybrid, \"name\", {\n      get: () => tagName,\n    });\n    customElements.define(tagName, Hybrid);\n  }\n\n  return Hybrid;\n}\n\nfunction defineMap(elements) {\n  return Object.keys(elements).reduce((acc, key) => {\n    const tagName = pascalToDash(key);\n    acc[key] = defineElement(tagName, elements[key]);\n\n    return acc;\n  }, {});\n}\n\nexport default function define(...args) {\n  if (typeof args[0] === \"object\" && args[0] !== null) {\n    return defineMap(args[0]);\n  }\n\n  return defineElement(...args);\n}\n", "const map = new WeakMap();\nexport const dataMap = {\n  get(key, defaultValue) {\n    const value = map.get(key);\n    if (value) return value;\n\n    if (defaultValue) {\n      map.set(key, defaultValue);\n    }\n\n    return defaultValue;\n  },\n  set(key, value) {\n    map.set(key, value);\n    return value;\n  },\n};\n\nexport function getTemplateEnd(node) {\n  let data;\n  // eslint-disable-next-line no-cond-assign\n  while (node && (data = dataMap.get(node)) && data.endNode) {\n    node = data.endNode;\n  }\n\n  return node;\n}\n\nexport function removeTemplate(target) {\n  if (target.nodeType !== Node.TEXT_NODE) {\n    let child = target.childNodes[0];\n    while (child) {\n      target.removeChild(child);\n      child = target.childNodes[0];\n    }\n  } else {\n    const data = dataMap.get(target);\n\n    if (data.startNode) {\n      const endNode = getTemplateEnd(data.endNode);\n\n      let node = data.startNode;\n      const lastNextSibling = endNode.nextSibling;\n\n      while (node) {\n        const nextSibling = node.nextSibling;\n        node.parentNode.removeChild(node);\n        node = nextSibling !== lastNextSibling && nextSibling;\n      }\n    }\n  }\n}\n", "import { dataMap, removeTemplate, getTemplateEnd } from \"../utils.js\";\n\nexport const arrayMap = new WeakMap();\n\nfunction movePlaceholder(target, previousSibling) {\n  const data = dataMap.get(target);\n  const startNode = data.startNode;\n  const endNode = getTemplateEnd(data.endNode);\n\n  previousSibling.parentNode.insertBefore(target, previousSibling.nextSibling);\n\n  let prevNode = target;\n  let node = startNode;\n  while (node) {\n    const nextNode = node.nextSibling;\n    prevNode.parentNode.insertBefore(node, prevNode.nextSibling);\n    prevNode = node;\n    node = nextNode !== endNode.nextSibling && nextNode;\n  }\n}\n\nexport default function resolveArray(host, target, value, resolveValue) {\n  let lastEntries = arrayMap.get(target);\n  const entries = value.map((item, index) => ({\n    id: hasOwnProperty.call(item, \"id\") ? item.id : index,\n    value: item,\n    placeholder: null,\n    available: true,\n  }));\n\n  arrayMap.set(target, entries);\n\n  if (lastEntries) {\n    const ids = new Set();\n    entries.forEach(entry => ids.add(entry.id));\n\n    lastEntries = lastEntries.filter(entry => {\n      if (!ids.has(entry.id)) {\n        removeTemplate(entry.placeholder);\n        entry.placeholder.parentNode.removeChild(entry.placeholder);\n        return false;\n      }\n\n      return true;\n    });\n  }\n\n  let previousSibling = target;\n  const lastIndex = value.length - 1;\n  const data = dataMap.get(target);\n\n  for (let index = 0; index < entries.length; index += 1) {\n    const entry = entries[index];\n    let matchedEntry;\n    if (lastEntries) {\n      for (let i = 0; i < lastEntries.length; i += 1) {\n        if (lastEntries[i].available && lastEntries[i].id === entry.id) {\n          matchedEntry = lastEntries[i];\n          break;\n        }\n      }\n    }\n\n    if (matchedEntry) {\n      matchedEntry.available = false;\n      entry.placeholder = matchedEntry.placeholder;\n\n      if (entry.placeholder.previousSibling !== previousSibling) {\n        movePlaceholder(entry.placeholder, previousSibling);\n      }\n      if (matchedEntry.value !== entry.value) {\n        resolveValue(host, entry.placeholder, entry.value);\n      }\n    } else {\n      entry.placeholder = document.createTextNode(\"\");\n      previousSibling.parentNode.insertBefore(\n        entry.placeholder,\n        previousSibling.nextSibling,\n      );\n      resolveValue(host, entry.placeholder, entry.value);\n    }\n\n    previousSibling = getTemplateEnd(\n      dataMap.get(entry.placeholder).endNode || entry.placeholder,\n    );\n\n    if (index === 0) data.startNode = entry.placeholder;\n    if (index === lastIndex) data.endNode = previousSibling;\n  }\n\n  if (lastEntries) {\n    lastEntries.forEach(entry => {\n      if (entry.available) {\n        removeTemplate(entry.placeholder);\n        entry.placeholder.parentNode.removeChild(entry.placeholder);\n      }\n    });\n  }\n}\n", "import { dataMap } from \"../utils.js\";\n\nconst nodeMap = new WeakMap();\n\nexport default function resolveNode(host, target, value) {\n  const prevValue = nodeMap.get(target);\n  const data = dataMap.get(target, {});\n\n  if (value !== prevValue) {\n    if (prevValue) prevValue.parentNode.removeChild(prevValue);\n\n    data.startNode = value;\n    data.endNode = value;\n\n    target.parentNode.insertBefore(value, target.nextSibling);\n    nodeMap.set(target, value);\n  }\n}\n", "import { dataMap, removeTemplate } from \"../utils.js\";\nimport resolveArray, { arrayMap } from \"./array.js\";\nimport resolveNode from \"./node.js\";\n\nexport default function resolveValue(host, target, value) {\n  let type = typeof value;\n  if (Array.isArray(value)) {\n    type = \"array\";\n  } else if (value instanceof Node) {\n    type = \"node\";\n  }\n\n  let data = dataMap.get(target, {});\n\n  if (data.type !== type) {\n    removeTemplate(target);\n    if (type === \"array\") arrayMap.delete(target);\n\n    data = dataMap.set(target, { type });\n\n    if (target.textContent !== \"\") {\n      target.textContent = \"\";\n    }\n  }\n\n  switch (type) {\n    case \"function\":\n      value(host, target);\n      break;\n    case \"array\":\n      resolveArray(host, target, value, resolveValue);\n      break;\n    case \"node\":\n      resolveNode(host, target, value);\n      break;\n    default:\n      target.textContent = type === \"number\" || value ? value : \"\";\n  }\n}\n", "const targets = new WeakMap();\n\nexport default function resolveEventListener(eventType) {\n  return (host, target, value, lastValue) => {\n    if (lastValue) {\n      const eventMap = targets.get(target);\n      if (eventMap) {\n        target.removeEventListener(\n          eventType,\n          eventMap.get(lastValue),\n          lastValue.options !== undefined ? lastValue.options : false,\n        );\n      }\n    }\n\n    if (value) {\n      if (typeof value !== \"function\") {\n        throw Error(`Event listener must be a function: ${typeof value}`);\n      }\n\n      let eventMap = targets.get(target);\n      if (!eventMap) {\n        eventMap = new WeakMap();\n        targets.set(target, eventMap);\n      }\n\n      const callback = value.bind(null, host);\n      eventMap.set(value, callback);\n\n      target.addEventListener(\n        eventType,\n        callback,\n        value.options !== undefined ? value.options : false,\n      );\n    }\n  };\n}\n", "function normalizeValue(value, set = new Set()) {\n  if (Array.isArray(value)) {\n    value.forEach(className => set.add(className));\n  } else if (value !== null && typeof value === \"object\") {\n    Object.keys(value).forEach(key => value[key] && set.add(key));\n  } else {\n    set.add(value);\n  }\n\n  return set;\n}\n\nconst classMap = new WeakMap();\n\nexport default function resolveClassList(host, target, value) {\n  const previousList = classMap.get(target) || new Set();\n  const list = normalizeValue(value);\n\n  classMap.set(target, list);\n\n  list.forEach(className => {\n    target.classList.add(className);\n    previousList.delete(className);\n  });\n\n  previousList.forEach(className => {\n    target.classList.remove(className);\n  });\n}\n", "import { camelToDash, stringifyElement } from \"../../utils.js\";\n\nconst styleMap = new WeakMap();\n\nexport default function resolveStyle(host, target, value) {\n  if (value === null || typeof value !== \"object\") {\n    throw TypeError(\n      `Style value must be an object in ${stringifyElement(target)}:`,\n      value,\n    );\n  }\n\n  const previousMap = styleMap.get(target) || new Map();\n\n  const nextMap = Object.keys(value).reduce((map, key) => {\n    const dashKey = camelToDash(key);\n    const styleValue = value[key];\n\n    if (!styleValue && styleValue !== 0) {\n      target.style.removeProperty(dashKey);\n    } else {\n      target.style.setProperty(dashKey, styleValue);\n    }\n\n    map.set(dashKey, styleValue);\n    previousMap.delete(dashKey);\n\n    return map;\n  }, new Map());\n\n  previousMap.forEach((styleValue, key) => {\n    target.style[key] = \"\";\n  });\n\n  styleMap.set(target, nextMap);\n}\n", "import resolveEventListener from \"./event.js\";\nimport resolveClassList from \"./class.js\";\nimport resolveStyleList from \"./style.js\";\n\nexport default function resolveProperty(attrName, propertyName, isSVG) {\n  if (propertyName.substr(0, 2) === \"on\") {\n    const eventType = propertyName.substr(2);\n    return resolveEventListener(eventType);\n  }\n\n  switch (attrName) {\n    case \"class\":\n      return resolveClassList;\n    case \"style\":\n      return resolveStyleList;\n    default: {\n      let isProp = false;\n      return (host, target, value) => {\n        isProp =\n          isProp ||\n          (!isSVG && !(target instanceof SVGElement) && propertyName in target);\n        if (isProp) {\n          target[propertyName] = value;\n        } else if (value === false || value === undefined || value === null) {\n          target.removeAttribute(attrName);\n        } else {\n          const attrValue = value === true ? \"\" : String(value);\n          target.setAttribute(attrName, attrValue);\n        }\n      };\n    }\n  }\n}\n", "import { stringifyElement, shadyCSS } from \"../utils.js\";\nimport { dataMap, removeTemplate } from \"./utils.js\";\n\nimport resolveValue from \"./resolvers/value.js\";\nimport resolveProperty from \"./resolvers/property.js\";\n\nconst TIMESTAMP = Date.now();\n\nexport const getPlaceholder = (id = 0) => `{{h-${TIMESTAMP}-${id}}}`;\n\nconst PLACEHOLDER_REGEXP_TEXT = getPlaceholder(\"(\\\\d+)\");\nconst PLACEHOLDER_REGEXP_EQUAL = new RegExp(`^${PLACEHOLDER_REGEXP_TEXT}$`);\nconst PLACEHOLDER_REGEXP_ALL = new RegExp(PLACEHOLDER_REGEXP_TEXT, \"g\");\n\nconst preparedTemplates = new WeakMap();\n\n/* istanbul ignore next */\nfunction applyShadyCSS(template, tagName) {\n  if (!tagName) return template;\n\n  return shadyCSS(shady => {\n    let map = preparedTemplates.get(template);\n    if (!map) {\n      map = new Map();\n      preparedTemplates.set(template, map);\n    }\n\n    let clone = map.get(tagName);\n\n    if (!clone) {\n      clone = document.createElement(\"template\");\n      clone.content.appendChild(template.content.cloneNode(true));\n\n      map.set(tagName, clone);\n\n      const styles = clone.content.querySelectorAll(\"style\");\n\n      Array.from(styles).forEach(style => {\n        const count = style.childNodes.length + 1;\n        for (let i = 0; i < count; i += 1) {\n          style.parentNode.insertBefore(\n            document.createTextNode(getPlaceholder()),\n            style,\n          );\n        }\n      });\n\n      shady.prepareTemplate(clone, tagName.toLowerCase());\n    }\n    return clone;\n  }, template);\n}\n\nfunction createSignature(parts, styles) {\n  let signature = parts.reduce((acc, part, index) => {\n    if (index === 0) {\n      return part;\n    }\n\n    if (\n      parts\n        .slice(index)\n        .join(\"\")\n        .match(/^\\s*<\\/\\s*(table|tr|thead|tbody|tfoot|colgroup)>/)\n    ) {\n      return `${acc}<!--${getPlaceholder(index - 1)}-->${part}`;\n    }\n    return acc + getPlaceholder(index - 1) + part;\n  }, \"\");\n\n  if (styles) {\n    signature += `<style>\\n${styles.join(\"\\n/*------*/\\n\")}\\n</style>`;\n  }\n\n  return signature;\n}\n\nfunction getPropertyName(string) {\n  return string\n    .replace(/\\s*=\\s*['\"]*$/g, \"\")\n    .split(/\\s+/)\n    .pop();\n}\n\nfunction replaceComments(fragment) {\n  const iterator = document.createNodeIterator(\n    fragment,\n    NodeFilter.SHOW_COMMENT,\n    null,\n    false,\n  );\n  let node;\n  // eslint-disable-next-line no-cond-assign\n  while ((node = iterator.nextNode())) {\n    if (PLACEHOLDER_REGEXP_EQUAL.test(node.textContent)) {\n      node.parentNode.insertBefore(\n        document.createTextNode(node.textContent),\n        node,\n      );\n      node.parentNode.removeChild(node);\n    }\n  }\n}\n\nexport function createInternalWalker(context) {\n  let node;\n\n  return {\n    get currentNode() {\n      return node;\n    },\n    nextNode() {\n      if (node === undefined) {\n        node = context.childNodes[0];\n      } else if (node.childNodes.length) {\n        node = node.childNodes[0];\n      } else if (node.nextSibling) {\n        node = node.nextSibling;\n      } else {\n        let parentNode = node.parentNode;\n        node = parentNode.nextSibling;\n\n        while (!node && parentNode !== context) {\n          parentNode = parentNode.parentNode;\n          node = parentNode.nextSibling;\n        }\n      }\n\n      return !!node;\n    },\n  };\n}\n\nfunction createExternalWalker(context) {\n  return document.createTreeWalker(\n    context,\n    // eslint-disable-next-line no-bitwise\n    NodeFilter.SHOW_ELEMENT | NodeFilter.SHOW_TEXT,\n    null,\n    false,\n  );\n}\n\n/* istanbul ignore next */\nconst createWalker =\n  typeof window.ShadyDOM === \"object\" && window.ShadyDOM.inUse\n    ? createInternalWalker\n    : createExternalWalker;\n\nconst styleSheetsMap = new Map();\n\nfunction normalizeWhitespace(input, startIndent = 0) {\n  input = input.replace(/(^[\\n\\s\\t ]+)|([\\n\\s\\t ]+$)+/g, \"\");\n\n  let i = input.indexOf(\"\\n\");\n  if (i > -1) {\n    let indent = 0 - startIndent - 2;\n    for (i += 1; input[i] === \" \" && i < input.length; i += 1) {\n      indent += 1;\n    }\n    return input.replace(/\\n +/g, t =>\n      t.substr(0, Math.max(t.length - indent, 1)),\n    );\n  }\n\n  return input;\n}\n\nfunction beautifyTemplateLog(input, index) {\n  const placeholder = getPlaceholder(index);\n\n  const output = normalizeWhitespace(input)\n    .split(\"\\n\")\n    .filter(i => i)\n    .map(line => {\n      const startIndex = line.indexOf(placeholder);\n\n      if (startIndex > -1) {\n        return `| ${line}\\n--${\"-\".repeat(startIndex)}${\"^\".repeat(6)}`;\n      }\n\n      return `| ${line}`;\n    })\n    .join(\"\\n\")\n    // eslint-disable-next-line no-template-curly-in-string\n    .replace(PLACEHOLDER_REGEXP_ALL, \"${...}\");\n\n  return `${output}`;\n}\n\nexport function compileTemplate(rawParts, isSVG, styles) {\n  const template = document.createElement(\"template\");\n  const parts = [];\n\n  const signature = createSignature(rawParts, styles);\n  template.innerHTML = isSVG ? `<svg>${signature}</svg>` : signature;\n\n  if (isSVG) {\n    const svgRoot = template.content.firstChild;\n    template.content.removeChild(svgRoot);\n    Array.from(svgRoot.childNodes).forEach(node =>\n      template.content.appendChild(node),\n    );\n  }\n\n  replaceComments(template.content);\n\n  const compileWalker = createWalker(template.content);\n  let compileIndex = 0;\n\n  while (compileWalker.nextNode()) {\n    const node = compileWalker.currentNode;\n\n    if (node.nodeType === Node.TEXT_NODE) {\n      const text = node.textContent;\n\n      if (!text.match(PLACEHOLDER_REGEXP_EQUAL)) {\n        const results = text.match(PLACEHOLDER_REGEXP_ALL);\n        if (results) {\n          let currentNode = node;\n          results\n            .reduce(\n              (acc, placeholder) => {\n                const [before, next] = acc.pop().split(placeholder);\n                if (before) acc.push(before);\n                acc.push(placeholder);\n                if (next) acc.push(next);\n                return acc;\n              },\n              [text],\n            )\n            .forEach((part, index) => {\n              if (index === 0) {\n                currentNode.textContent = part;\n              } else {\n                currentNode = currentNode.parentNode.insertBefore(\n                  document.createTextNode(part),\n                  currentNode.nextSibling,\n                );\n              }\n            });\n        }\n      }\n\n      const equal = node.textContent.match(PLACEHOLDER_REGEXP_EQUAL);\n      if (equal) {\n        node.textContent = \"\";\n        parts[equal[1]] = [compileIndex, resolveValue];\n      }\n    } else {\n      /* istanbul ignore else */ // eslint-disable-next-line no-lonely-if\n      if (node.nodeType === Node.ELEMENT_NODE) {\n        Array.from(node.attributes).forEach(attr => {\n          const value = attr.value.trim();\n          /* istanbul ignore next */\n          const name = attr.name;\n          const equal = value.match(PLACEHOLDER_REGEXP_EQUAL);\n          if (equal) {\n            const propertyName = getPropertyName(rawParts[equal[1]]);\n            parts[equal[1]] = [\n              compileIndex,\n              resolveProperty(name, propertyName, isSVG),\n            ];\n            node.removeAttribute(attr.name);\n          } else {\n            const results = value.match(PLACEHOLDER_REGEXP_ALL);\n            if (results) {\n              const partialName = `attr__${name}`;\n\n              results.forEach((placeholder, index) => {\n                const [, id] = placeholder.match(PLACEHOLDER_REGEXP_EQUAL);\n                let isProp = false;\n                parts[id] = [\n                  compileIndex,\n                  (host, target, attrValue) => {\n                    const data = dataMap.get(target, {});\n                    data[partialName] = (data[partialName] || value).replace(\n                      placeholder,\n                      attrValue == null ? \"\" : attrValue,\n                    );\n\n                    if (results.length === 1 || index + 1 === results.length) {\n                      isProp =\n                        isProp ||\n                        (!isSVG &&\n                          !(target instanceof SVGElement) &&\n                          name in target);\n                      if (isProp) {\n                        target[name] = data[partialName];\n                      } else {\n                        target.setAttribute(name, data[partialName]);\n                      }\n                      data[partialName] = undefined;\n                    }\n                  },\n                ];\n              });\n\n              attr.value = \"\";\n            }\n          }\n        });\n      }\n    }\n\n    compileIndex += 1;\n  }\n\n  return function updateTemplateInstance(host, target, args, styleSheets) {\n    const data = dataMap.get(target, { type: \"function\" });\n\n    if (template !== data.template) {\n      if (data.template || target.nodeType !== Node.TEXT_NODE) {\n        removeTemplate(target);\n      }\n\n      data.prevArgs = null;\n\n      const fragment = document.importNode(\n        applyShadyCSS(template, host.tagName).content,\n        true,\n      );\n\n      const renderWalker = createWalker(fragment);\n      const clonedParts = parts.slice(0);\n\n      let renderIndex = 0;\n      let currentPart = clonedParts.shift();\n\n      const markers = [];\n\n      data.template = template;\n      data.markers = markers;\n\n      while (renderWalker.nextNode()) {\n        const node = renderWalker.currentNode;\n\n        while (currentPart && currentPart[0] === renderIndex) {\n          markers.push([node, currentPart[1]]);\n          currentPart = clonedParts.shift();\n        }\n\n        renderIndex += 1;\n      }\n\n      if (target.nodeType === Node.TEXT_NODE) {\n        data.startNode = fragment.childNodes[0];\n        data.endNode = fragment.childNodes[fragment.childNodes.length - 1];\n\n        let previousChild = target;\n\n        let child = fragment.childNodes[0];\n        while (child) {\n          target.parentNode.insertBefore(child, previousChild.nextSibling);\n          previousChild = child;\n          child = fragment.childNodes[0];\n        }\n      } else {\n        target.appendChild(fragment);\n      }\n    }\n\n    const adoptedStyleSheets = target.adoptedStyleSheets;\n    if (styleSheets) {\n      let isEqual = false;\n\n      styleSheets = styleSheets.map(style => {\n        if (style instanceof CSSStyleSheet) return style;\n\n        let styleSheet = styleSheetsMap.get(style);\n        if (!styleSheet) {\n          styleSheet = new CSSStyleSheet();\n          styleSheet.replaceSync(style);\n          styleSheetsMap.set(style, styleSheet);\n        }\n        return styleSheet;\n      });\n\n      if (styleSheets.length === adoptedStyleSheets.length) {\n        isEqual = true;\n        for (let i = 0; i < styleSheets.length; i += 1) {\n          if (styleSheets[i] !== adoptedStyleSheets[i]) {\n            isEqual = false;\n            break;\n          }\n        }\n      }\n\n      if (!isEqual) target.adoptedStyleSheets = styleSheets;\n    } else if (adoptedStyleSheets && adoptedStyleSheets.length) {\n      target.adoptedStyleSheets = [];\n    }\n\n    const prevArgs = data.prevArgs;\n    data.prevArgs = args;\n\n    for (let index = 0; index < data.markers.length; index += 1) {\n      const [node, marker] = data.markers[index];\n      if (!prevArgs || prevArgs[index] !== args[index]) {\n        try {\n          marker(\n            host,\n            node,\n            args[index],\n            prevArgs ? prevArgs[index] : undefined,\n          );\n        } catch (error) {\n          // eslint-disable-next-line no-console\n          console.error(\n            `Following error was thrown when updating a template expression in ${stringifyElement(\n              host,\n            )}\\n${beautifyTemplateLog(signature, index)}`,\n          );\n          throw error;\n        }\n      }\n    }\n\n    if (target.nodeType !== Node.TEXT_NODE) {\n      shadyCSS(shady => {\n        if (host.shadowRoot) {\n          if (prevArgs) {\n            shady.styleSubtree(host);\n          } else {\n            shady.styleElement(host);\n          }\n        }\n      });\n    }\n  };\n}\n", "import { storePointer } from \"../utils.js\";\nimport resolveTemplateValue from \"./resolvers/value.js\";\n\nfunction resolveValue({ target, detail }, setter) {\n  let value;\n\n  switch (target.type) {\n    case \"radio\":\n    case \"checkbox\":\n      value = target.checked && target.value;\n      break;\n    case \"file\":\n      value = target.files;\n      break;\n    default:\n      value =\n        detail && hasOwnProperty.call(detail, \"value\")\n          ? detail.value\n          : target.value;\n  }\n\n  setter(value);\n}\n\nfunction getPartialObject(name, value) {\n  return name\n    .split(\".\")\n    .reverse()\n    .reduce((acc, key) => {\n      if (!acc) return { [key]: value };\n      return { [key]: acc };\n    }, null);\n}\n\nconst stringCache = new Map();\nconst storeValues = new WeakMap();\n\nexport function set(property, valueOrPath) {\n  if (!property) {\n    throw Error(\n      `The first argument must be a property name or an object instance: ${property}`,\n    );\n  }\n\n  if (typeof property === \"object\") {\n    if (valueOrPath === undefined) {\n      throw Error(\n        \"For model instance property the second argument must be defined\",\n      );\n    }\n\n    const store = storePointer.get(property);\n\n    if (!store) {\n      throw Error(\"Provided object must be a model instance of the store\");\n    }\n\n    if (valueOrPath === null) {\n      return () => {\n        store.set(property, null);\n      };\n    }\n\n    return (host, event) => {\n      resolveValue(event, value => {\n        const values = storeValues.get(property);\n\n        if (!values) {\n          requestAnimationFrame(() => {\n            const result = storeValues.get(property);\n            storeValues.delete(property);\n\n            store\n              .set(property, result)\n              .catch(/* istanbul ignore next */ () => {});\n          });\n        }\n\n        storeValues.set(property, {\n          ...values,\n          ...getPartialObject(valueOrPath, value),\n        });\n      });\n    };\n  }\n\n  if (arguments.length === 2) {\n    return host => {\n      host[property] = valueOrPath;\n    };\n  }\n\n  let fn = stringCache.get(property);\n\n  if (!fn) {\n    fn = (host, event) => {\n      resolveValue(event, value => {\n        host[property] = value;\n      });\n    };\n\n    stringCache.set(property, fn);\n  }\n\n  return fn;\n}\n\nconst promiseMap = new WeakMap();\nexport function resolve(promise, placeholder, delay = 200) {\n  return (host, target) => {\n    let timeout;\n\n    if (placeholder) {\n      timeout = setTimeout(() => {\n        timeout = undefined;\n\n        requestAnimationFrame(() => {\n          placeholder(host, target);\n        });\n      }, delay);\n    }\n\n    promiseMap.set(target, promise);\n\n    promise.then(value => {\n      if (timeout) clearTimeout(timeout);\n\n      if (promiseMap.get(target) === promise) {\n        resolveTemplateValue(host, target, value);\n        promiseMap.set(target, null);\n      }\n    });\n  };\n}\n", "import defineElements from \"../define.js\";\n\nimport { compileTemplate, getPlaceholder } from \"./core.js\";\nimport * as helpers from \"./helpers.js\";\n\nconst PLACEHOLDER = getPlaceholder();\nconst SVG_PLACEHOLDER = getPlaceholder(\"svg\");\nconst STYLE_IMPORT_REGEXP = /@import/;\n\nconst templatesMap = new Map();\nconst stylesMap = new WeakMap();\n\nconst methods = {\n  define(elements) {\n    defineElements(elements);\n    return this;\n  },\n  key(id) {\n    this.id = id;\n    return this;\n  },\n  style(...styles) {\n    stylesMap.set(\n      this,\n      (stylesMap.get(this) || []).concat(styles.filter(style => style)),\n    );\n    return this;\n  },\n  css(parts, ...args) {\n    stylesMap.set(\n      this,\n      (stylesMap.get(this) || []).concat(\n        parts.reduce(\n          (acc, part, index) => `${acc}${part}${args[index] || \"\"}`,\n          \"\",\n        ),\n      ),\n    );\n    return this;\n  },\n};\n\nfunction create(parts, args, isSVG) {\n  const createTemplate = (host, target = host) => {\n    const styles = stylesMap.get(createTemplate);\n    let hasAdoptedStyleSheets;\n    let id = parts.join(PLACEHOLDER);\n\n    if (styles) {\n      const joinedStyles = styles.join(PLACEHOLDER);\n      hasAdoptedStyleSheets =\n        !!target.adoptedStyleSheets && !STYLE_IMPORT_REGEXP.test(joinedStyles);\n      if (!hasAdoptedStyleSheets) id += joinedStyles;\n    }\n\n    if (isSVG) id += SVG_PLACEHOLDER;\n\n    let render = templatesMap.get(id);\n    if (!render) {\n      render = compileTemplate(parts, isSVG, !hasAdoptedStyleSheets && styles);\n      templatesMap.set(id, render);\n    }\n\n    render(host, target, args, hasAdoptedStyleSheets && styles);\n  };\n\n  return Object.assign(createTemplate, methods);\n}\n\nexport function html(parts, ...args) {\n  return create(parts, args);\n}\n\nexport function svg(parts, ...args) {\n  return create(parts, args, true);\n}\n\nObject.assign(html, helpers);\nObject.assign(svg, helpers);\n"],
  "mappings": "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",
  "names": []
}