@amazon/vinyl-util 3.0.1 → 3.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/browserTestUtil/index.js.map +2 -2
- package/dist/browserTestUtil/types/current/mock/dom/lib.dom.d.ts.map +1 -1
- package/dist/browserTestUtil/types/current/tsconfig.tsbuildinfo +1 -1
- package/dist/index.cjs +165 -178
- package/dist/index.cjs.map +4 -4
- package/dist/index.js +165 -178
- package/dist/index.js.map +4 -4
- package/dist/polyfill/index.js +35 -32
- package/dist/polyfill/index.js.map +3 -3
- package/dist/polyfill/tsconfig.tsbuildinfo +1 -1
- package/dist/test/benchmark.js.map +2 -2
- package/dist/testUtil/index.js +0 -36
- package/dist/testUtil/index.js.map +3 -3
- package/dist/testUtil/types/current/index.d.ts +0 -1
- package/dist/testUtil/types/current/index.d.ts.map +1 -1
- package/dist/testUtil/types/current/index.js +0 -1
- package/dist/testUtil/types/current/tsconfig.tsbuildinfo +1 -1
- package/dist/testUtil/types/ts3.7/index.d.ts +0 -1
- package/dist/testUtil/types/ts4.1/index.d.ts +0 -1
- package/dist/testUtil/types/ts4.7/index.d.ts +0 -1
- package/dist/types/current/index.d.ts +1 -1
- package/dist/types/current/index.d.ts.map +1 -1
- package/dist/types/current/index.js +1 -1
- package/dist/types/current/network/responseUtil.d.ts +21 -0
- package/dist/types/current/network/responseUtil.d.ts.map +1 -1
- package/dist/types/current/network/responseUtil.js +30 -0
- package/dist/types/current/tsconfig.tsbuildinfo +1 -1
- package/dist/types/current/util/async/never.d.ts.map +1 -1
- package/dist/types/current/util/type.d.ts.map +1 -1
- package/dist/types/current/util/webm/parseWebm.d.ts +43 -0
- package/dist/types/current/util/webm/parseWebm.d.ts.map +1 -0
- package/dist/types/current/util/webm/parseWebm.js +166 -0
- package/dist/types/ts3.7/index.d.ts +1 -1
- package/dist/types/ts3.7/network/responseUtil.d.ts +21 -0
- package/dist/types/ts3.7/util/webm/parseWebm.d.ts +43 -0
- package/dist/types/ts4.1/index.d.ts +1 -1
- package/dist/types/ts4.1/network/responseUtil.d.ts +21 -0
- package/dist/types/ts4.1/util/webm/parseWebm.d.ts +43 -0
- package/dist/types/ts4.7/index.d.ts +1 -1
- package/dist/types/ts4.7/network/responseUtil.d.ts +21 -0
- package/dist/types/ts4.7/util/webm/parseWebm.d.ts +43 -0
- package/dist/unit/types/current/tsconfig.tsbuildinfo +1 -1
- package/package.json +4 -4
- package/dist/testUtil/types/current/patch/addPatchTests.d.ts +0 -35
- package/dist/testUtil/types/current/patch/addPatchTests.d.ts.map +0 -1
- package/dist/testUtil/types/current/patch/addPatchTests.js +0 -54
- package/dist/testUtil/types/ts3.7/patch/addPatchTests.d.ts +0 -35
- package/dist/testUtil/types/ts4.1/patch/addPatchTests.d.ts +0 -35
- package/dist/testUtil/types/ts4.7/patch/addPatchTests.d.ts +0 -35
- package/dist/types/current/patch/patchTarget.d.ts +0 -114
- package/dist/types/current/patch/patchTarget.d.ts.map +0 -1
- package/dist/types/current/patch/patchTarget.js +0 -219
- package/dist/types/ts3.7/patch/patchTarget.d.ts +0 -114
- package/dist/types/ts4.1/patch/patchTarget.d.ts +0 -114
- package/dist/types/ts4.7/patch/patchTarget.d.ts +0 -114
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../test/browserTestUtil/async/async.ts", "../../test/browserTestUtil/async/marble.ts", "../../test/browserTestUtil/async/createCallbackTimingTest.ts", "../../test/browserTestUtil/benchmark/Benchmark.ts", "../../test/browserTestUtil/env/jasmineEnv.ts", "../../test/browserTestUtil/expect/expectIterableEquals.ts", "../../test/browserTestUtil/expect/expectNothing.ts", "../../test/browserTestUtil/expect/prototype.ts", "../../test/browserTestUtil/expect/typesafety.ts", "../../test/browserTestUtil/matchers/toBeCloseToWithin.ts", "../../test/browserTestUtil/matchers/customMatchers.ts", "../../test/browserTestUtil/mock/asSpy.ts", "../../test/browserTestUtil/mock/createSpyFactory.ts", "../../test/browserTestUtil/mock/dom/lib.dom.ts", "../../test/browserTestUtil/mock/dom/globals.ts", "../../test/browserTestUtil/mock/dom/mockEvent.ts", "../../test/browserTestUtil/mock/dom/MockTimeRanges.ts", "../../test/browserTestUtil/mock/implementEventFakes.ts", "../../test/browserTestUtil/mock/polyfillCustomEvent.ts", "../../test/browserTestUtil/reporters/ConsoleReporter.ts"],
|
|
4
|
-
"sourcesContent": ["/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport Clock = jasmine.Clock\n\n/**\n * Fixed to setTimeout before any mocks can take place.\n */\nconst scheduler = setTimeout\n\n/**\n * Returns a promise, when awaited, will ensure that all promise handlers are invoked.\n */\nexport function flushPromises(): Promise<void> {\n return new Promise((resolve) => {\n scheduler(() => resolve(void 0))\n })\n}\n\nexport interface MockTime {\n /**\n * Ticks forward `time` seconds, incrementally for each time argument.\n * After each time increment, promises will be flushed.\n * If no time values are provided, {@link flushPromises}, time will not be incremented, but\n * will still be called.\n *\n * @param time (in seconds)\n * @return Returns a promise which resolves after the last time increment and promise flush.\n */\n tick(...time: number[]): Promise<void>\n\n /**\n * Sets the current date to the given date.\n *\n * @param date\n */\n mockDate(date?: Date): void\n}\n\n/**\n * Call within a `describe` block to install jasmine's mock clock between tests.\n * The returned object has one difference from jasmine's Clock tick and setTime; a promise is\n * returned, which when awaited, will ensure that promise handlers based on timed events will be\n * called in the order in which they were intended.\n */\nexport function useMockTime(): MockTime {\n const clock: Clock = jasmine.clock()\n\n beforeEach(() => {\n clock.install()\n clock.mockDate(new Date(0))\n })\n\n afterEach(() => {\n clock.uninstall()\n })\n\n const mockTime: MockTime = {\n async tick(...time: readonly number[]): Promise<void> {\n if (!time.length) {\n clock.tick(0)\n await flushPromises()\n }\n for (const s of time) {\n clock.tick(s * 1000)\n await flushPromises()\n }\n },\n\n mockDate(date?: Date): void {\n clock.mockDate(date)\n },\n } as const\n return mockTime\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Creates a marble test, returning a function (input: string) => string where the input is a\n * sequence of characters, each character mapping to the legend, and the output a string\n * produced by the output generator.\n *\n * @param init\n * @param legend An object whose keys are characters, and the values are functions to invoke when\n * the character is found in the input string.\n * @param output A method to invoke at the end of the actions to return the output sequence.\n */\nexport function marbleTest<T>(\n init: () => Promise<T> | T,\n legend: Readonly<\n Record<string, ((test: T) => Promise<void> | void) | undefined>\n >,\n output: (test: T) => Promise<string> | string\n): (input: string) => Promise<string> {\n return async (input: string): Promise<string> => {\n const test = await init()\n for (let i = 0; i < input.length; i++) {\n const char = input[i]\n const action = legend[char]\n if (!action) throw new Error(`Unknown marble: '${char}'`)\n await action(test)\n }\n return output(test)\n }\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { marbleTest } from './marble'\nimport type { MockTime } from './async'\nimport Spy = jasmine.Spy\nimport createSpy = jasmine.createSpy\n\n/**\n * Creates a marble test for callback timing.\n * This provides an easy way to test callback timing, for example a debounce or throttle function.\n *\n * The returned function takes an input string where dashes represent a wait of 1 second, and x's represent\n * invoking the function returned by wrapCallback. The resolved string will be the timing of when the inner function is\n * invoked.\n * An x does not represent passage of time. For example a marble diagram of x-xx-x represents execution at:\n * 0s, 1s, 1s, 2s\n *\n * @param clock\n * @param wrapCallback\n */\nexport function createCallbackTimingTest(\n clock: MockTime,\n wrapCallback: (inner: () => void) => () => void\n): (input: string) => Promise<string> {\n return marbleTest<{\n spy: Spy\n throttled: () => void\n out: string\n }>(\n () => {\n clock.mockDate(new Date(0))\n let _out = ''\n let lastTimeMs = 0\n const writeTime = () => {\n const nowMs = Date.now()\n _out += '-'.repeat((nowMs - lastTimeMs) / 1000)\n lastTimeMs = nowMs\n }\n const spy = createSpy('inner').and.callFake(() => {\n writeTime()\n _out += 'x'\n })\n const throttled = wrapCallback(spy)\n return {\n spy,\n throttled,\n get out() {\n return _out\n },\n }\n },\n {\n '-': () => {\n return clock.tick(1)\n },\n x: (test) => {\n test.throttled()\n },\n },\n async (o) => {\n // Flush any pending timeouts up to 10s in the future, ticking in 1s increments\n // in order to get correct mock time resolution:\n for (let i = 0; i < 10; i++) {\n await clock.tick(1)\n }\n return o.out\n }\n )\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n//-------------------------------------------------------------------------\n// A Benchmarking utility for testing and comparing performance.\n//-------------------------------------------------------------------------\n\n/**\n * Gets the current high resolution timestamp, platform dependent.\n */\nlet now: () => number\nif (\n typeof window !== 'undefined' &&\n typeof window.performance !== 'undefined' &&\n typeof window.performance.now !== 'undefined'\n) {\n now = () => window.performance.now()\n} else if (\n typeof self !== 'undefined' &&\n typeof self.performance !== 'undefined' &&\n typeof self.performance.now !== 'undefined'\n) {\n now = () => self.performance.now()\n} else {\n now = () => Date.now()\n}\n\nexport interface BenchMarkOptions {\n /**\n * The amount of time to run the executor before beginning measurement (in seconds).\n */\n readonly warmupTime: number\n\n /**\n * When time has elapsed past this duration during a cycle (in seconds), there will be no\n * operations.\n * The cycle will end when `maxCycleDuration` has been reached.\n */\n readonly maxCycleDuration: number\n\n /**\n * The number of trials to run.\n */\n readonly cycles: number\n}\n\nexport interface CycleResults {\n /**\n * The number of seconds the cycle ran.\n */\n readonly duration: number\n\n /**\n * The number of completed executions.\n */\n readonly ops: number\n}\n\nexport class BenchmarkRunResults {\n readonly cycleResults: number[] = []\n\n private _totalSamples = 0\n get totalSamples(): number {\n return this._totalSamples\n }\n\n get cycleResultsNoOutliers(): number[] {\n const sD = this.standardDeviation\n const avg = average(this.cycleResults)\n return this.cycleResults.filter((e) => {\n const zScore = (avg - e) / sD\n return Math.abs(zScore) < 3\n })\n }\n\n /**\n * Returns the mean ops per second minus outliers of greater than 3 standard deviations.\n */\n get meanOpsPerSec(): number {\n return average(this.cycleResultsNoOutliers)\n }\n\n get standardDeviation(): number {\n return standardDeviation(this.cycleResults)\n }\n\n get variance(): number {\n return this.standardDeviation / this.meanOpsPerSec\n }\n\n /**\n * Returns the mean ops / s \u00B1 variance % as a string.\n */\n get meanOpsStr(): string {\n const mean = this.meanOpsPerSec.toLocaleString(undefined, {\n maximumSignificantDigits: 4,\n })\n const variance = this.variance.toLocaleString(undefined, {\n style: 'percent',\n })\n return `${mean} \u00B1${variance}`\n }\n\n constructor(readonly name: string) {}\n\n add(cycle: CycleResults) {\n const opsPerSecond = cycle.ops / cycle.duration\n let index = this.cycleResults.findIndex((value) => opsPerSecond < value)\n if (index < 0) index = this.cycleResults.length\n this.cycleResults.splice(index, 0, opsPerSecond)\n this._totalSamples += cycle.ops\n }\n\n toString(): string {\n if (!this.cycleResults.length) return 'No results'\n return `${this.name}: ${this.meanOpsStr} ops/sec`\n }\n}\n\nexport class RunResultsComparison {\n /**\n * Sorted by median ops/s from slowest to fastest.\n */\n readonly results: BenchmarkRunResults[]\n\n constructor(\n readonly name: string,\n results: BenchmarkRunResults[]\n ) {\n this.results = results.sort((a, b) => {\n return a.meanOpsPerSec - b.meanOpsPerSec\n })\n }\n\n logToTable(): void {\n const r = this.results.map((run) => {\n const variance = run.variance.toLocaleString(undefined, {\n style: 'percent',\n })\n const mean = run.meanOpsPerSec.toLocaleString(undefined, {\n maximumSignificantDigits: 4,\n })\n\n return {\n Name: run.name,\n Mean: `${mean} \u00B1${variance}`,\n Samples: run.totalSamples,\n Compare: this.runComparisonToString(run),\n }\n })\n // Use the names as the index.\n const table = r.reduce<any>((acc, { Name, ...x }) => {\n acc[Name] = x\n return acc\n }, {})\n console.log('\\n' + this.name)\n console.table(table)\n }\n\n runComparisonToString(run: BenchmarkRunResults): string {\n const baseline = this.results[0]?.meanOpsPerSec ?? 0\n const fasterPercent = run.meanOpsPerSec / baseline - 1\n return fasterPercent < 0.01\n ? '-'\n : fasterPercent.toLocaleString(undefined, {\n style: 'percent',\n }) + ' faster'\n }\n}\n\nexport function compareResults(\n name: string,\n ...results: BenchmarkRunResults[]\n): RunResultsComparison {\n return new RunResultsComparison(name, results)\n}\n\nconst defaultBenchmarkOptions: BenchMarkOptions = {\n warmupTime: 0.5,\n maxCycleDuration: 0.5,\n cycles: 9,\n} as const\n\nexport class Benchmark {\n private static semaphore: Promise<any> = nextFrame()\n\n private readonly options: BenchMarkOptions\n\n /**\n * Constructs a new Benchmark.\n *\n * @param name The name of the benchmark, to be used when logging.\n * @param executor The method to execute and measure. If this method returns a promise, the\n * promise will be awaited. The executor should either always return a promise, or never.\n * @param options Optional configuration for the benchmark.\n */\n constructor(\n readonly name: string,\n readonly executor: () => any,\n options?: Partial<BenchMarkOptions>\n ) {\n this.options = { ...defaultBenchmarkOptions, ...options }\n }\n\n async run(): Promise<BenchmarkRunResults> {\n const opts = this.options\n // Wait for any currently running work to complete.\n await Benchmark.semaphore\n\n const warmupTimeMs = opts.warmupTime * 1000\n const cycleStart = now()\n let isAsync = false\n do {\n const result = this.executor()\n // If the executor returns a promise, it is considered an async test and the benchmark\n // should await its result.\n isAsync = isAsync || (result && typeof result.then === 'function')\n if (isAsync) await result\n } while (now() - cycleStart < warmupTimeMs)\n const resultsPromise: Promise<BenchmarkRunResults> = (async () => {\n const results = new BenchmarkRunResults(this.name)\n for (let i = 0; i < opts.cycles; i++) {\n const cycleResults = await this.runCycle(isAsync)\n results.add(cycleResults)\n await nextFrame()\n }\n return results\n })()\n Benchmark.semaphore = resultsPromise\n return await resultsPromise\n }\n\n /**\n * Runs one cycle. A cycle will repeat the executor approximately `options.maxCycleDuration`\n * seconds.\n *\n * @param isAsync\n * @return Returns the duration (in seconds) and number of operations the cycle repeated.\n */\n private async runCycle(isAsync: boolean): Promise<CycleResults> {\n const cycleMs = this.options.maxCycleDuration * 1000\n let ops = 0\n const cycleStart = now()\n do {\n const result = this.executor()\n if (isAsync) await result\n ops++\n } while (now() - cycleStart < cycleMs)\n const duration = (now() - cycleStart) / 1000\n return {\n duration,\n ops,\n }\n }\n}\n\n/**\n * Creates and runs a benchmark, logging the result.\n *\n * @param name\n * @param executor\n * @param options\n */\nexport function benchmark(\n name: string,\n executor: () => any,\n options?: Partial<BenchMarkOptions>\n): Promise<BenchmarkRunResults> {\n const benchmark = new Benchmark(name, executor, options)\n return benchmark.run().then((results) => {\n console.log(results.toString())\n return results\n })\n}\n\n/**\n * To avoid killing the browser's frame.\n */\nfunction nextFrame(): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(resolve)\n })\n}\n\n/**\n * Returns the standard deviation of the given values.\n *\n * @param values\n */\nfunction standardDeviation(values: readonly number[]): number {\n const avg = average(values)\n const squareDiffs = values.map((value) => {\n const diff = value - avg\n return diff * diff\n })\n const avgSquareDiff = average(squareDiffs)\n return Math.sqrt(avgSquareDiff)\n}\n\n/**\n * Returns the mean/average of the given values.\n *\n * @param values\n */\nfunction average(values: readonly number[]): number {\n const sum = values.reduce((acc, value) => acc + value, 0)\n return sum / values.length\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nlet nextTestTimeoutOverridden: boolean = false\n\n/**\n * Sets the timeout for the current describe block.\n *\n * @param timeout The test timeout, in seconds.\n */\nexport function setTestTimeout(timeout: number) {\n let originalTimeout: number | null = null\n beforeEach(() => {\n originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL\n if (!nextTestTimeoutOverridden)\n jasmine.DEFAULT_TIMEOUT_INTERVAL = timeout * 1000\n })\n\n afterEach(() => {\n if (originalTimeout) jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout\n if (nextTestTimeoutOverridden) nextTestTimeoutOverridden = false\n })\n}\n\n/**\n * Sets the timeout for the next test and only the next test,\n * overriding any value set subsequently to setTestTimeout.\n *\n * @param timeout The test timeout, in seconds.\n */\nexport function setNextTestTimeout(timeout: number) {\n nextTestTimeoutOverridden = true\n jasmine.DEFAULT_TIMEOUT_INTERVAL = timeout * 1000\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Expects that two iterable objects have the same elements.\n *\n * @param arr1\n * @param arr2\n */\nexport function expectIterableEquals<T>(\n arr1: Iterable<T> | ArrayLike<T>,\n arr2: Iterable<T> | ArrayLike<T>\n) {\n expect(Array.from(arr1)).toEqual(Array.from(arr2))\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Some tests (such as benchmarks or type expectations) have no jasmine expectations.\n */\nexport function expectNothing() {\n expect(true).toBeTruthy()\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Expect that the given factory produces an instance of `clazz` and `superClass`\n * This is different from `expect(e).toBeInstanceOf` in that it accounts for TypeScript's branching\n * if _super.call returns undefined.\n *\n * For example, IllegalArgumentError extends Error will produce the following constructor:\n * ```\n * var _this = _super.call(this, message) || this;\n * Object.setPrototypeOf(_this, IllegalArgumentError.prototype);\n * ```\n * The branch of _super.call || this requires two tests for perfect coverage, one for the falsy\n * case, and one for the truthy case.\n *\n * @param factory\n * @param classes\n */\nexport function expectPrototype(factory: () => any, ...classes: any[]): void {\n const e = factory()\n classes.forEach((clazz) => expect(e).toBeInstanceOf(clazz))\n const spy = spyOn(classes[classes.length - 1], 'call')\n spy.and.returnValue(null)\n const e2 = factory()\n classes.forEach((clazz) => expect(e2).toBeInstanceOf(clazz))\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n//----------------------------------------------------------------------------\n// Tests to validate that Types are what we expect them to be.\n// These tests are for the compiler only and have no runtime significance.\n//\n// expect(true).toBeTrue() is to avoid jasmine no-expectation warnings for\n// tests that only have compile-time assertions.\n//----------------------------------------------------------------------------\n\ntype LooseEqual<Left, Right> = [Left] extends [Right]\n ? [Right] extends [Left]\n ? true\n : false\n : false\n\ntype Strict<Left, Right> =\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters\n (<T>() => T extends Left ? 0 : 1) extends <T>() => T extends Right ? 0 : 1\n ? LooseEqual<Left, Right>\n : false\n\n/**\n * Adds a compile-time check that types Left and Right are identical.\n */\nexport function expectTypeStrictlyEquals<Left, Right>(\n _matches: Strict<Left, Right>\n): void {\n expect(true).toBeTrue()\n}\n\n// noinspection JSUnusedLocalSymbols\n/**\n * Adds a compile-time check that type Left extends Right and Right extends Left.\n * This is not as strict as `expectTypeStrictlyEquals`, it does not validate:\n * - unknown types\n * - any types\n */\nexport function expectTypeEquals<Left, Right>(\n _matches: LooseEqual<Left, Right>\n): void {\n expect(true).toBeTrue()\n}\n\n// noinspection JSUnusedLocalSymbols\n/**\n * Adds a compile-time check that Sub extends Super.\n * This is distributive, so `expectTypeExtends<1, 1 | 2>` will expect true.\n */\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters\nexport function expectTypeExtends<Sub, Super>(\n _matches: [Sub] extends [Super] ? true : false\n): void {\n expect(true).toBeTrue()\n}\n\n/**\n * Adds a compile-time check that expects that the given type is exactly true.\n */\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters,@typescript-eslint/no-unused-vars\nexport function expectTypeTrue<T extends true>(): void {\n expect(true).toBeTrue()\n}\n\n/**\n * Adds a compile-time check that expects that the given type is exactly false.\n */\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters,@typescript-eslint/no-unused-vars\nexport function expectTypeFalse<T extends false>(): void {\n expect(true).toBeTrue()\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport CustomMatcher = jasmine.CustomMatcher\n\nexport interface WithToBeCloseToWithinMatcher {\n toBeCloseToWithin(expected: number, tolerance?: number): boolean\n}\n\nexport function addToBeCloseToWithin() {\n beforeEach(function () {\n jasmine.addMatchers({\n toBeCloseToWithin: function (): CustomMatcher {\n return {\n compare: function (\n actual: number,\n expected: number,\n tolerance: number = Number.EPSILON\n ) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (tolerance == null) {\n throw new Error('You must supply a tolerance value')\n }\n\n const pass = Math.abs(expected - actual) <= tolerance\n const message = pass\n ? `Expected ${actual} to be close to ${expected} with tolerance ${tolerance}`\n : `Expected ${actual} to be close to ${expected} with tolerance ${tolerance}, but it was not`\n\n return { pass: pass, message: message }\n },\n }\n },\n })\n })\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { WithToBeCloseToWithinMatcher } from './toBeCloseToWithin'\nimport { addToBeCloseToWithin } from './toBeCloseToWithin'\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace jasmine {\n // eslint-disable-next-line\n interface Matchers<T> extends WithToBeCloseToWithinMatcher {}\n }\n}\n\nexport function addCustomMatchers() {\n addToBeCloseToWithin()\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport Spy = jasmine.Spy\n\n/**\n * A type representing any type of function.\n */\ntype Fun = (...args: any[]) => any\n\n/**\n * Creates or returns a Spy for a function on an object.\n * If the method is already a spy, it will be returned.\n * If not, a spy will be created.\n *\n * @param object\n * @param method\n */\nexport function asSpy<T, K extends keyof T = keyof T>(\n object: T,\n method: T[K] extends Fun ? K : never\n): Spy<\n T[K] extends jasmine.Func\n ? T[K]\n : T[K] extends { new (...args: infer A): infer V }\n ? (...args: A) => V\n : never\n> {\n if (object == null || object[method] == null) {\n throw new Error('method not implemented')\n }\n const fun = object[method] as Fun\n if ('calls' in fun) {\n return fun as Spy\n } else {\n return spyOn(object, method as any)\n }\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport createSpy = jasmine.createSpy\nimport Spy = jasmine.Spy\nimport SpyAnd = jasmine.SpyAnd\nimport Calls = jasmine.Calls\nimport MatchableArgs = jasmine.MatchableArgs\n\ntype Fun = (...args: any[]) => any\n\n/**\n * A SpyFactory creates spies by member access. The spies will be named based on the key,\n * and the type interface of the Spy will match the corresponding interface function.\n */\nexport interface SpyFactory<T> {\n <K extends FunctionKeys<T>>(\n key: K\n ): T[K] extends Fun ? Spy2<NoThisType<NonNullable<T[K]>>> : never\n}\n\n/**\n * Fixes Jasmine's Spy type.\n * Jasmine's Spy interface has a call signature instead of intersecting the original function type.\n * This causes parameterized types of the call signature to be dropped.\n */\nexport type Spy2<Fn extends Fun> = Fn & {\n and: SpyAnd<Fn>\n calls: Calls<Fn>\n withArgs(...args: MatchableArgs<Fn>): Spy<Fn>\n}\n\nexport type FunctionKeys<T> = {\n [P in keyof T]: T[P] extends Fun ? P : never\n}[keyof T]\n\n/**\n * Creates a new spy factory.\n *\n * @param createFake If provided, all spies will be created with the fake implementation createFake\n * returns for the given key.\n */\nexport function createSpyFactory<T>(\n createFake?: (key: FunctionKeys<T>) => Fun\n): SpyFactory<T> {\n return (key: FunctionKeys<T>) => {\n const spy = createSpy(String(key))\n if (createFake) spy.and.callFake(createFake(key))\n return spy as any\n }\n}\n\n/**\n * Creates a Spy.\n * This is an alias to jasmine.createSpy with fixed type parameters.\n * @param key\n */\nexport function createSpy2<Fn extends Fun | undefined>(\n key: keyof any\n): Spy2<NoThisType<NonNullable<Fn>>> {\n return createSpy(String(key)) as any\n}\n\n/**\n * Replaces `this` type with `any` in a method signature.\n */\nexport type NoThisType<Fn extends Fun> =\n ReturnType<Fn> extends ThisType<any>\n ? Fn & ((...args: Parameters<Fn>) => any)\n : Fn\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/*\n * AUTO-GENERATED FILE - DO NOT EDIT\n * Generated by @amazon/vinyl-mock-generator\n */\n\n/* eslint-disable @typescript-eslint/prefer-as-const */\n/* eslint-disable @typescript-eslint/no-deprecated */\n\nimport { createSpy2 } from '../createSpyFactory'\n\nexport class MockAbortController implements AbortController {\n signal: AbortSignal = undefined as any\n\n abort = createSpy2<AbortController['abort']>('abort')\n}\n\nexport class MockAbortSignal implements AbortSignal {\n aborted: boolean = false\n onabort: ((this: AbortSignal, ev: Event) => any) | null = null\n reason: any = undefined\n\n throwIfAborted = createSpy2<AbortSignal['throwIfAborted']>('throwIfAborted')\n addEventListener =\n createSpy2<AbortSignal['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<AbortSignal['removeEventListener']>(\n 'removeEventListener'\n )\n dispatchEvent = createSpy2<AbortSignal['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockAudioContext implements AudioContext {\n baseLatency: number = 0\n outputLatency: number = 0\n audioWorklet: AudioWorklet = undefined as any\n currentTime: number = 0\n destination: AudioDestinationNode = undefined as any\n listener: AudioListener = undefined as any\n onstatechange: ((this: BaseAudioContext, ev: Event) => any) | null = null\n sampleRate: number = 0\n state: AudioContextState = 'closed'\n\n close = createSpy2<AudioContext['close']>('close')\n createMediaElementSource = createSpy2<\n AudioContext['createMediaElementSource']\n >('createMediaElementSource')\n createMediaStreamDestination = createSpy2<\n AudioContext['createMediaStreamDestination']\n >('createMediaStreamDestination')\n createMediaStreamSource = createSpy2<\n AudioContext['createMediaStreamSource']\n >('createMediaStreamSource')\n getOutputTimestamp =\n createSpy2<AudioContext['getOutputTimestamp']>('getOutputTimestamp')\n resume = createSpy2<AudioContext['resume']>('resume')\n suspend = createSpy2<AudioContext['suspend']>('suspend')\n addEventListener =\n createSpy2<AudioContext['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<AudioContext['removeEventListener']>(\n 'removeEventListener'\n )\n createAnalyser =\n createSpy2<AudioContext['createAnalyser']>('createAnalyser')\n createBiquadFilter =\n createSpy2<AudioContext['createBiquadFilter']>('createBiquadFilter')\n createBuffer = createSpy2<AudioContext['createBuffer']>('createBuffer')\n createBufferSource =\n createSpy2<AudioContext['createBufferSource']>('createBufferSource')\n createChannelMerger = createSpy2<AudioContext['createChannelMerger']>(\n 'createChannelMerger'\n )\n createChannelSplitter = createSpy2<AudioContext['createChannelSplitter']>(\n 'createChannelSplitter'\n )\n createConstantSource = createSpy2<AudioContext['createConstantSource']>(\n 'createConstantSource'\n )\n createConvolver =\n createSpy2<AudioContext['createConvolver']>('createConvolver')\n createDelay = createSpy2<AudioContext['createDelay']>('createDelay')\n createDynamicsCompressor = createSpy2<\n AudioContext['createDynamicsCompressor']\n >('createDynamicsCompressor')\n createGain = createSpy2<AudioContext['createGain']>('createGain')\n createIIRFilter =\n createSpy2<AudioContext['createIIRFilter']>('createIIRFilter')\n createOscillator =\n createSpy2<AudioContext['createOscillator']>('createOscillator')\n createPanner = createSpy2<AudioContext['createPanner']>('createPanner')\n createPeriodicWave =\n createSpy2<AudioContext['createPeriodicWave']>('createPeriodicWave')\n createScriptProcessor = createSpy2<AudioContext['createScriptProcessor']>(\n 'createScriptProcessor'\n )\n createStereoPanner =\n createSpy2<AudioContext['createStereoPanner']>('createStereoPanner')\n createWaveShaper =\n createSpy2<AudioContext['createWaveShaper']>('createWaveShaper')\n decodeAudioData =\n createSpy2<AudioContext['decodeAudioData']>('decodeAudioData')\n dispatchEvent = createSpy2<AudioContext['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockCache implements Cache {\n add = createSpy2<Cache['add']>('add')\n addAll = createSpy2<Cache['addAll']>('addAll')\n delete = createSpy2<Cache['delete']>('delete')\n keys = createSpy2<Cache['keys']>('keys')\n match = createSpy2<Cache['match']>('match')\n matchAll = createSpy2<Cache['matchAll']>('matchAll')\n put = createSpy2<Cache['put']>('put')\n}\n\nexport class MockCacheStorage implements CacheStorage {\n delete = createSpy2<CacheStorage['delete']>('delete')\n has = createSpy2<CacheStorage['has']>('has')\n keys = createSpy2<CacheStorage['keys']>('keys')\n match = createSpy2<CacheStorage['match']>('match')\n open = createSpy2<CacheStorage['open']>('open')\n}\n\nexport class MockCustomEvent<T = any> implements CustomEvent<T> {\n detail: T = undefined as any\n bubbles: boolean = false\n cancelBubble: boolean = false\n cancelable: boolean = false\n composed: boolean = false\n currentTarget: EventTarget | null = null\n defaultPrevented: boolean = false\n eventPhase: number = 0\n isTrusted: boolean = false\n returnValue: boolean = false\n srcElement: EventTarget | null = null\n target: EventTarget | null = null\n timeStamp: DOMHighResTimeStamp = 0\n type: string = ''\n NONE: 0 = 0\n CAPTURING_PHASE: 1 = 1\n AT_TARGET: 2 = 2\n BUBBLING_PHASE: 3 = 3\n\n initCustomEvent =\n createSpy2<CustomEvent<T>['initCustomEvent']>('initCustomEvent')\n composedPath = createSpy2<CustomEvent<T>['composedPath']>('composedPath')\n initEvent = createSpy2<CustomEvent<T>['initEvent']>('initEvent')\n preventDefault =\n createSpy2<CustomEvent<T>['preventDefault']>('preventDefault')\n stopImmediatePropagation = createSpy2<\n CustomEvent<T>['stopImmediatePropagation']\n >('stopImmediatePropagation')\n stopPropagation =\n createSpy2<CustomEvent<T>['stopPropagation']>('stopPropagation')\n}\n\nexport class MockDocument implements Document {\n URL: string = ''\n alinkColor: string = ''\n all: HTMLAllCollection = undefined as any\n anchors: HTMLCollectionOf<HTMLAnchorElement> = undefined as any\n applets: HTMLCollection = undefined as any\n bgColor: string = ''\n body: HTMLElement = undefined as any\n characterSet: string = ''\n charset: string = ''\n compatMode: string = ''\n contentType: string = ''\n cookie: string = ''\n currentScript: HTMLOrSVGScriptElement | null = undefined as any\n defaultView: (WindowProxy & typeof globalThis) | null = undefined as any\n designMode: string = ''\n dir: string = ''\n doctype: DocumentType | null = null\n documentElement: HTMLElement = undefined as any\n documentURI: string = ''\n domain: string = ''\n embeds: HTMLCollectionOf<HTMLEmbedElement> = undefined as any\n fgColor: string = ''\n forms: HTMLCollectionOf<HTMLFormElement> = undefined as any\n fragmentDirective: FragmentDirective = undefined as any\n fullscreen: boolean = false\n fullscreenEnabled: boolean = false\n head: HTMLHeadElement = undefined as any\n hidden: boolean = false\n images: HTMLCollectionOf<HTMLImageElement> = undefined as any\n implementation: DOMImplementation = undefined as any\n inputEncoding: string = ''\n lastModified: string = ''\n linkColor: string = ''\n links: HTMLCollectionOf<HTMLAnchorElement | HTMLAreaElement> =\n undefined as any\n onfullscreenchange: ((this: Document, ev: Event) => any) | null = null\n onfullscreenerror: ((this: Document, ev: Event) => any) | null = null\n onpointerlockchange: ((this: Document, ev: Event) => any) | null = null\n onpointerlockerror: ((this: Document, ev: Event) => any) | null = null\n onreadystatechange: ((this: Document, ev: Event) => any) | null = null\n onvisibilitychange: ((this: Document, ev: Event) => any) | null = null\n ownerDocument: null = null\n pictureInPictureEnabled: boolean = false\n plugins: HTMLCollectionOf<HTMLEmbedElement> = undefined as any\n readyState: DocumentReadyState = 'complete'\n referrer: string = ''\n rootElement: SVGSVGElement | null = null\n scripts: HTMLCollectionOf<HTMLScriptElement> = undefined as any\n scrollingElement: Element | null = null\n timeline: DocumentTimeline = undefined as any\n title: string = ''\n visibilityState: DocumentVisibilityState = 'hidden'\n vlinkColor: string = ''\n location: any = undefined\n textContent: null = null\n baseURI: string = ''\n childNodes: NodeListOf<ChildNode> = undefined as any\n firstChild: ChildNode | null = null\n isConnected: boolean = false\n lastChild: ChildNode | null = null\n nextSibling: ChildNode | null = null\n nodeName: string = ''\n nodeType: number = 0\n nodeValue: string | null = ''\n parentElement: HTMLElement | null = null\n parentNode: ParentNode | null = null\n previousSibling: ChildNode | null = null\n ELEMENT_NODE: 1 = 1\n ATTRIBUTE_NODE: 2 = 2\n TEXT_NODE: 3 = 3\n CDATA_SECTION_NODE: 4 = 4\n ENTITY_REFERENCE_NODE: 5 = 5\n ENTITY_NODE: 6 = 6\n PROCESSING_INSTRUCTION_NODE: 7 = 7\n COMMENT_NODE: 8 = 8\n DOCUMENT_NODE: 9 = 9\n DOCUMENT_TYPE_NODE: 10 = 10\n DOCUMENT_FRAGMENT_NODE: 11 = 11\n NOTATION_NODE: 12 = 12\n DOCUMENT_POSITION_DISCONNECTED: 0x01 = 1\n DOCUMENT_POSITION_PRECEDING: 0x02 = 2\n DOCUMENT_POSITION_FOLLOWING: 0x04 = 4\n DOCUMENT_POSITION_CONTAINS: 0x08 = 8\n DOCUMENT_POSITION_CONTAINED_BY: 0x10 = 16\n DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20 = 32\n activeElement: Element | null = null\n adoptedStyleSheets: CSSStyleSheet[] = []\n fullscreenElement: Element | null = null\n pictureInPictureElement: Element | null = null\n pointerLockElement: Element | null = null\n styleSheets: StyleSheetList = undefined as any\n fonts: FontFaceSet = undefined as any\n onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null = null\n onanimationcancel:\n | ((this: GlobalEventHandlers, ev: AnimationEvent) => any)\n | null = null\n onanimationend:\n | ((this: GlobalEventHandlers, ev: AnimationEvent) => any)\n | null = null\n onanimationiteration:\n | ((this: GlobalEventHandlers, ev: AnimationEvent) => any)\n | null = null\n onanimationstart:\n | ((this: GlobalEventHandlers, ev: AnimationEvent) => any)\n | null = null\n onauxclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null =\n null\n onbeforematch: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onbeforetoggle:\n | ((this: GlobalEventHandlers, ev: ToggleEvent) => any)\n | null = null\n onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null = null\n oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncontextmenu:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onended: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onerror: OnErrorEventHandler = undefined as any\n onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null = null\n onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null =\n null\n ongotpointercapture:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onload: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onlostpointercapture:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onpointercancel:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerdown:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerenter:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerleave:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointermove:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerout:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerover:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerrawupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null =\n null\n onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null = null\n onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onsecuritypolicyviolation:\n | ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any)\n | null = null\n onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null =\n null\n onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n ontoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null =\n null\n ontransitioncancel:\n | ((this: GlobalEventHandlers, ev: TransitionEvent) => any)\n | null = null\n ontransitionend:\n | ((this: GlobalEventHandlers, ev: TransitionEvent) => any)\n | null = null\n ontransitionrun:\n | ((this: GlobalEventHandlers, ev: TransitionEvent) => any)\n | null = null\n ontransitionstart:\n | ((this: GlobalEventHandlers, ev: TransitionEvent) => any)\n | null = null\n onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkitanimationend:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = null\n onwebkitanimationiteration:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = null\n onwebkitanimationstart:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = null\n onwebkittransitionend:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = null\n onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null = null\n childElementCount: number = 0\n children: HTMLCollection = undefined as any\n firstElementChild: Element | null = null\n lastElementChild: Element | null = null\n\n adoptNode = createSpy2<Document['adoptNode']>('adoptNode')\n captureEvents = createSpy2<Document['captureEvents']>('captureEvents')\n caretPositionFromPoint = createSpy2<Document['caretPositionFromPoint']>(\n 'caretPositionFromPoint'\n )\n caretRangeFromPoint = createSpy2<Document['caretRangeFromPoint']>(\n 'caretRangeFromPoint'\n )\n clear = createSpy2<Document['clear']>('clear')\n close = createSpy2<Document['close']>('close')\n createAttribute = createSpy2<Document['createAttribute']>('createAttribute')\n createAttributeNS =\n createSpy2<Document['createAttributeNS']>('createAttributeNS')\n createCDATASection =\n createSpy2<Document['createCDATASection']>('createCDATASection')\n createComment = createSpy2<Document['createComment']>('createComment')\n createDocumentFragment = createSpy2<Document['createDocumentFragment']>(\n 'createDocumentFragment'\n )\n createElement = createSpy2<Document['createElement']>('createElement')\n createElementNS = createSpy2<Document['createElementNS']>('createElementNS')\n createEvent = createSpy2<Document['createEvent']>('createEvent')\n createNodeIterator =\n createSpy2<Document['createNodeIterator']>('createNodeIterator')\n createProcessingInstruction = createSpy2<\n Document['createProcessingInstruction']\n >('createProcessingInstruction')\n createRange = createSpy2<Document['createRange']>('createRange')\n createTextNode = createSpy2<Document['createTextNode']>('createTextNode')\n createTreeWalker =\n createSpy2<Document['createTreeWalker']>('createTreeWalker')\n execCommand = createSpy2<Document['execCommand']>('execCommand')\n exitFullscreen = createSpy2<Document['exitFullscreen']>('exitFullscreen')\n exitPictureInPicture = createSpy2<Document['exitPictureInPicture']>(\n 'exitPictureInPicture'\n )\n exitPointerLock = createSpy2<Document['exitPointerLock']>('exitPointerLock')\n getElementById = createSpy2<Document['getElementById']>('getElementById')\n getElementsByClassName = createSpy2<Document['getElementsByClassName']>(\n 'getElementsByClassName'\n )\n getElementsByName =\n createSpy2<Document['getElementsByName']>('getElementsByName')\n getElementsByTagName = createSpy2<Document['getElementsByTagName']>(\n 'getElementsByTagName'\n )\n getElementsByTagNameNS = createSpy2<Document['getElementsByTagNameNS']>(\n 'getElementsByTagNameNS'\n )\n getSelection = createSpy2<Document['getSelection']>('getSelection')\n hasFocus = createSpy2<Document['hasFocus']>('hasFocus')\n hasStorageAccess =\n createSpy2<Document['hasStorageAccess']>('hasStorageAccess')\n importNode = createSpy2<Document['importNode']>('importNode')\n open = createSpy2<Document['open']>('open')\n queryCommandEnabled = createSpy2<Document['queryCommandEnabled']>(\n 'queryCommandEnabled'\n )\n queryCommandIndeterm = createSpy2<Document['queryCommandIndeterm']>(\n 'queryCommandIndeterm'\n )\n queryCommandState =\n createSpy2<Document['queryCommandState']>('queryCommandState')\n queryCommandSupported = createSpy2<Document['queryCommandSupported']>(\n 'queryCommandSupported'\n )\n queryCommandValue =\n createSpy2<Document['queryCommandValue']>('queryCommandValue')\n releaseEvents = createSpy2<Document['releaseEvents']>('releaseEvents')\n requestStorageAccess = createSpy2<Document['requestStorageAccess']>(\n 'requestStorageAccess'\n )\n startViewTransition = createSpy2<Document['startViewTransition']>(\n 'startViewTransition'\n )\n write = createSpy2<Document['write']>('write')\n writeln = createSpy2<Document['writeln']>('writeln')\n addEventListener =\n createSpy2<Document['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<Document['removeEventListener']>(\n 'removeEventListener'\n )\n appendChild = createSpy2<Document['appendChild']>('appendChild')\n cloneNode = createSpy2<Document['cloneNode']>('cloneNode')\n compareDocumentPosition = createSpy2<Document['compareDocumentPosition']>(\n 'compareDocumentPosition'\n )\n contains = createSpy2<Document['contains']>('contains')\n getRootNode = createSpy2<Document['getRootNode']>('getRootNode')\n hasChildNodes = createSpy2<Document['hasChildNodes']>('hasChildNodes')\n insertBefore = createSpy2<Document['insertBefore']>('insertBefore')\n isDefaultNamespace =\n createSpy2<Document['isDefaultNamespace']>('isDefaultNamespace')\n isEqualNode = createSpy2<Document['isEqualNode']>('isEqualNode')\n isSameNode = createSpy2<Document['isSameNode']>('isSameNode')\n lookupNamespaceURI =\n createSpy2<Document['lookupNamespaceURI']>('lookupNamespaceURI')\n lookupPrefix = createSpy2<Document['lookupPrefix']>('lookupPrefix')\n normalize = createSpy2<Document['normalize']>('normalize')\n removeChild = createSpy2<Document['removeChild']>('removeChild')\n replaceChild = createSpy2<Document['replaceChild']>('replaceChild')\n elementFromPoint =\n createSpy2<Document['elementFromPoint']>('elementFromPoint')\n elementsFromPoint =\n createSpy2<Document['elementsFromPoint']>('elementsFromPoint')\n getAnimations = createSpy2<Document['getAnimations']>('getAnimations')\n append = createSpy2<Document['append']>('append')\n prepend = createSpy2<Document['prepend']>('prepend')\n querySelector = createSpy2<Document['querySelector']>('querySelector')\n querySelectorAll =\n createSpy2<Document['querySelectorAll']>('querySelectorAll')\n replaceChildren = createSpy2<Document['replaceChildren']>('replaceChildren')\n createExpression =\n createSpy2<Document['createExpression']>('createExpression')\n createNSResolver =\n createSpy2<Document['createNSResolver']>('createNSResolver')\n evaluate = createSpy2<Document['evaluate']>('evaluate')\n dispatchEvent = createSpy2<Document['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockErrorEvent implements ErrorEvent {\n colno: number = 0\n error: any = undefined\n filename: string = ''\n lineno: number = 0\n message: string = ''\n bubbles: boolean = false\n cancelBubble: boolean = false\n cancelable: boolean = false\n composed: boolean = false\n currentTarget: EventTarget | null = null\n defaultPrevented: boolean = false\n eventPhase: number = 0\n isTrusted: boolean = false\n returnValue: boolean = false\n srcElement: EventTarget | null = null\n target: EventTarget | null = null\n timeStamp: DOMHighResTimeStamp = 0\n type: string = ''\n NONE: 0 = 0\n CAPTURING_PHASE: 1 = 1\n AT_TARGET: 2 = 2\n BUBBLING_PHASE: 3 = 3\n\n composedPath = createSpy2<ErrorEvent['composedPath']>('composedPath')\n initEvent = createSpy2<ErrorEvent['initEvent']>('initEvent')\n preventDefault = createSpy2<ErrorEvent['preventDefault']>('preventDefault')\n stopImmediatePropagation = createSpy2<\n ErrorEvent['stopImmediatePropagation']\n >('stopImmediatePropagation')\n stopPropagation =\n createSpy2<ErrorEvent['stopPropagation']>('stopPropagation')\n}\n\nexport class MockEvent implements Event {\n bubbles: boolean = false\n cancelBubble: boolean = false\n cancelable: boolean = false\n composed: boolean = false\n currentTarget: EventTarget | null = null\n defaultPrevented: boolean = false\n eventPhase: number = 0\n isTrusted: boolean = false\n returnValue: boolean = false\n srcElement: EventTarget | null = null\n target: EventTarget | null = null\n timeStamp: DOMHighResTimeStamp = 0\n type: string = ''\n NONE: 0 = 0\n CAPTURING_PHASE: 1 = 1\n AT_TARGET: 2 = 2\n BUBBLING_PHASE: 3 = 3\n\n composedPath = createSpy2<Event['composedPath']>('composedPath')\n initEvent = createSpy2<Event['initEvent']>('initEvent')\n preventDefault = createSpy2<Event['preventDefault']>('preventDefault')\n stopImmediatePropagation = createSpy2<Event['stopImmediatePropagation']>(\n 'stopImmediatePropagation'\n )\n stopPropagation = createSpy2<Event['stopPropagation']>('stopPropagation')\n}\n\nexport class MockEventTarget implements EventTarget {\n addEventListener =\n createSpy2<EventTarget['addEventListener']>('addEventListener')\n dispatchEvent = createSpy2<EventTarget['dispatchEvent']>('dispatchEvent')\n removeEventListener = createSpy2<EventTarget['removeEventListener']>(\n 'removeEventListener'\n )\n}\n\nexport class MockHTMLAudioElement implements HTMLAudioElement {\n autoplay: boolean = false\n buffered: TimeRanges = undefined as any\n controls: boolean = false\n crossOrigin: string | null = ''\n currentSrc: string = ''\n currentTime: number = 0\n defaultMuted: boolean = false\n defaultPlaybackRate: number = 0\n disableRemotePlayback: boolean = false\n duration: number = 0\n ended: boolean = false\n error: MediaError | null = null\n loop: boolean = false\n mediaKeys: MediaKeys | null = null\n muted: boolean = false\n networkState: number = 0\n onencrypted:\n | ((this: HTMLMediaElement, ev: MediaEncryptedEvent) => any)\n | null = null\n onwaitingforkey: ((this: HTMLMediaElement, ev: Event) => any) | null = null\n paused: boolean = false\n playbackRate: number = 0\n played: TimeRanges = undefined as any\n preload: 'none' | 'metadata' | 'auto' | '' = 'none'\n preservesPitch: boolean = false\n readyState: number = 0\n remote: RemotePlayback = undefined as any\n seekable: TimeRanges = undefined as any\n seeking: boolean = false\n sinkId: string = ''\n src: string = ''\n srcObject: MediaProvider | null = undefined as any\n textTracks: TextTrackList = undefined as any\n volume: number = 0\n NETWORK_EMPTY: 0 = 0\n NETWORK_IDLE: 1 = 1\n NETWORK_LOADING: 2 = 2\n NETWORK_NO_SOURCE: 3 = 3\n HAVE_NOTHING: 0 = 0\n HAVE_METADATA: 1 = 1\n HAVE_CURRENT_DATA: 2 = 2\n HAVE_FUTURE_DATA: 3 = 3\n HAVE_ENOUGH_DATA: 4 = 4\n accessKey: string = ''\n accessKeyLabel: string = ''\n autocapitalize: string = ''\n autocorrect: boolean = false\n dir: string = ''\n draggable: boolean = false\n hidden: boolean = false\n inert: boolean = false\n innerText: string = ''\n lang: string = ''\n offsetHeight: number = 0\n offsetLeft: number = 0\n offsetParent: Element | null = null\n offsetTop: number = 0\n offsetWidth: number = 0\n outerText: string = ''\n popover: string | null = ''\n spellcheck: boolean = false\n title: string = ''\n translate: boolean = false\n writingSuggestions: string = ''\n attributes: NamedNodeMap = undefined as any\n className: string = ''\n clientHeight: number = 0\n clientLeft: number = 0\n clientTop: number = 0\n clientWidth: number = 0\n currentCSSZoom: number = 0\n id: string = ''\n innerHTML: string = ''\n localName: string = ''\n namespaceURI: string | null = ''\n onfullscreenchange: ((this: Element, ev: Event) => any) | null = null\n onfullscreenerror: ((this: Element, ev: Event) => any) | null = null\n outerHTML: string = ''\n ownerDocument: Document = undefined as any\n prefix: string | null = ''\n scrollHeight: number = 0\n scrollLeft: number = 0\n scrollTop: number = 0\n scrollWidth: number = 0\n shadowRoot: ShadowRoot | null = null\n slot: string = ''\n tagName: string = ''\n classList: any = undefined\n part: any = undefined\n textContent: any = undefined\n attributeStyleMap: StylePropertyMap = undefined as any\n style: any = undefined\n contentEditable: string = ''\n enterKeyHint: string = ''\n inputMode: string = ''\n isContentEditable: boolean = false\n onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null = null\n onanimationcancel:\n | ((this: GlobalEventHandlers, ev: AnimationEvent) => any)\n | null = null\n onanimationend:\n | ((this: GlobalEventHandlers, ev: AnimationEvent) => any)\n | null = null\n onanimationiteration:\n | ((this: GlobalEventHandlers, ev: AnimationEvent) => any)\n | null = null\n onanimationstart:\n | ((this: GlobalEventHandlers, ev: AnimationEvent) => any)\n | null = null\n onauxclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null =\n null\n onbeforematch: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onbeforetoggle:\n | ((this: GlobalEventHandlers, ev: ToggleEvent) => any)\n | null = null\n onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null = null\n oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncontextmenu:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onended: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onerror: OnErrorEventHandler = undefined as any\n onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null = null\n onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null =\n null\n ongotpointercapture:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onload: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onlostpointercapture:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onpointercancel:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerdown:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerenter:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerleave:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointermove:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerout:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerover:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerrawupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null =\n null\n onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null = null\n onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onsecuritypolicyviolation:\n | ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any)\n | null = null\n onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null =\n null\n onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n ontoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null =\n null\n ontransitioncancel:\n | ((this: GlobalEventHandlers, ev: TransitionEvent) => any)\n | null = null\n ontransitionend:\n | ((this: GlobalEventHandlers, ev: TransitionEvent) => any)\n | null = null\n ontransitionrun:\n | ((this: GlobalEventHandlers, ev: TransitionEvent) => any)\n | null = null\n ontransitionstart:\n | ((this: GlobalEventHandlers, ev: TransitionEvent) => any)\n | null = null\n onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkitanimationend:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = null\n onwebkitanimationiteration:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = null\n onwebkitanimationstart:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = null\n onwebkittransitionend:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = null\n onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null = null\n autofocus: boolean = false\n dataset: DOMStringMap = undefined as any\n tabIndex: number = 0\n baseURI: string = ''\n childNodes: NodeListOf<ChildNode> = undefined as any\n firstChild: ChildNode | null = null\n isConnected: boolean = false\n lastChild: ChildNode | null = null\n nextSibling: ChildNode | null = null\n nodeName: string = ''\n nodeType: number = 0\n nodeValue: string | null = ''\n parentElement: HTMLElement | null = null\n parentNode: ParentNode | null = null\n previousSibling: ChildNode | null = null\n ELEMENT_NODE: 1 = 1\n ATTRIBUTE_NODE: 2 = 2\n TEXT_NODE: 3 = 3\n CDATA_SECTION_NODE: 4 = 4\n ENTITY_REFERENCE_NODE: 5 = 5\n ENTITY_NODE: 6 = 6\n PROCESSING_INSTRUCTION_NODE: 7 = 7\n COMMENT_NODE: 8 = 8\n DOCUMENT_NODE: 9 = 9\n DOCUMENT_TYPE_NODE: 10 = 10\n DOCUMENT_FRAGMENT_NODE: 11 = 11\n NOTATION_NODE: 12 = 12\n DOCUMENT_POSITION_DISCONNECTED: 0x01 = 1\n DOCUMENT_POSITION_PRECEDING: 0x02 = 2\n DOCUMENT_POSITION_FOLLOWING: 0x04 = 4\n DOCUMENT_POSITION_CONTAINS: 0x08 = 8\n DOCUMENT_POSITION_CONTAINED_BY: 0x10 = 16\n DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20 = 32\n ariaActiveDescendantElement: Element | null = null\n ariaAtomic: string | null = ''\n ariaAutoComplete: string | null = ''\n ariaBrailleLabel: string | null = ''\n ariaBrailleRoleDescription: string | null = ''\n ariaBusy: string | null = ''\n ariaChecked: string | null = ''\n ariaColCount: string | null = ''\n ariaColIndex: string | null = ''\n ariaColIndexText: string | null = ''\n ariaColSpan: string | null = ''\n ariaControlsElements: ReadonlyArray<Element> | null = null\n ariaCurrent: string | null = ''\n ariaDescribedByElements: ReadonlyArray<Element> | null = null\n ariaDescription: string | null = ''\n ariaDetailsElements: ReadonlyArray<Element> | null = null\n ariaDisabled: string | null = ''\n ariaErrorMessageElements: ReadonlyArray<Element> | null = null\n ariaExpanded: string | null = ''\n ariaFlowToElements: ReadonlyArray<Element> | null = null\n ariaHasPopup: string | null = ''\n ariaHidden: string | null = ''\n ariaInvalid: string | null = ''\n ariaKeyShortcuts: string | null = ''\n ariaLabel: string | null = ''\n ariaLabelledByElements: ReadonlyArray<Element> | null = null\n ariaLevel: string | null = ''\n ariaLive: string | null = ''\n ariaModal: string | null = ''\n ariaMultiLine: string | null = ''\n ariaMultiSelectable: string | null = ''\n ariaOrientation: string | null = ''\n ariaOwnsElements: ReadonlyArray<Element> | null = null\n ariaPlaceholder: string | null = ''\n ariaPosInSet: string | null = ''\n ariaPressed: string | null = ''\n ariaReadOnly: string | null = ''\n ariaRelevant: string | null = ''\n ariaRequired: string | null = ''\n ariaRoleDescription: string | null = ''\n ariaRowCount: string | null = ''\n ariaRowIndex: string | null = ''\n ariaRowIndexText: string | null = ''\n ariaRowSpan: string | null = ''\n ariaSelected: string | null = ''\n ariaSetSize: string | null = ''\n ariaSort: string | null = ''\n ariaValueMax: string | null = ''\n ariaValueMin: string | null = ''\n ariaValueNow: string | null = ''\n ariaValueText: string | null = ''\n role: string | null = ''\n nextElementSibling: Element | null = null\n previousElementSibling: Element | null = null\n childElementCount: number = 0\n children: HTMLCollection = undefined as any\n firstElementChild: Element | null = null\n lastElementChild: Element | null = null\n assignedSlot: HTMLSlotElement | null = null\n\n addEventListener =\n createSpy2<HTMLAudioElement['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<HTMLAudioElement['removeEventListener']>(\n 'removeEventListener'\n )\n addTextTrack = createSpy2<HTMLAudioElement['addTextTrack']>('addTextTrack')\n canPlayType = createSpy2<HTMLAudioElement['canPlayType']>('canPlayType')\n fastSeek = createSpy2<HTMLAudioElement['fastSeek']>('fastSeek')\n load = createSpy2<HTMLAudioElement['load']>('load')\n pause = createSpy2<HTMLAudioElement['pause']>('pause')\n play = createSpy2<HTMLAudioElement['play']>('play')\n setMediaKeys = createSpy2<HTMLAudioElement['setMediaKeys']>('setMediaKeys')\n setSinkId = createSpy2<HTMLAudioElement['setSinkId']>('setSinkId')\n attachInternals =\n createSpy2<HTMLAudioElement['attachInternals']>('attachInternals')\n click = createSpy2<HTMLAudioElement['click']>('click')\n hidePopover = createSpy2<HTMLAudioElement['hidePopover']>('hidePopover')\n showPopover = createSpy2<HTMLAudioElement['showPopover']>('showPopover')\n togglePopover =\n createSpy2<HTMLAudioElement['togglePopover']>('togglePopover')\n attachShadow = createSpy2<HTMLAudioElement['attachShadow']>('attachShadow')\n checkVisibility =\n createSpy2<HTMLAudioElement['checkVisibility']>('checkVisibility')\n closest = createSpy2<HTMLAudioElement['closest']>('closest')\n computedStyleMap =\n createSpy2<HTMLAudioElement['computedStyleMap']>('computedStyleMap')\n getAttribute = createSpy2<HTMLAudioElement['getAttribute']>('getAttribute')\n getAttributeNS =\n createSpy2<HTMLAudioElement['getAttributeNS']>('getAttributeNS')\n getAttributeNames =\n createSpy2<HTMLAudioElement['getAttributeNames']>('getAttributeNames')\n getAttributeNode =\n createSpy2<HTMLAudioElement['getAttributeNode']>('getAttributeNode')\n getAttributeNodeNS =\n createSpy2<HTMLAudioElement['getAttributeNodeNS']>('getAttributeNodeNS')\n getBoundingClientRect = createSpy2<\n HTMLAudioElement['getBoundingClientRect']\n >('getBoundingClientRect')\n getClientRects =\n createSpy2<HTMLAudioElement['getClientRects']>('getClientRects')\n getElementsByClassName = createSpy2<\n HTMLAudioElement['getElementsByClassName']\n >('getElementsByClassName')\n getElementsByTagName = createSpy2<HTMLAudioElement['getElementsByTagName']>(\n 'getElementsByTagName'\n )\n getElementsByTagNameNS = createSpy2<\n HTMLAudioElement['getElementsByTagNameNS']\n >('getElementsByTagNameNS')\n getHTML = createSpy2<HTMLAudioElement['getHTML']>('getHTML')\n hasAttribute = createSpy2<HTMLAudioElement['hasAttribute']>('hasAttribute')\n hasAttributeNS =\n createSpy2<HTMLAudioElement['hasAttributeNS']>('hasAttributeNS')\n hasAttributes =\n createSpy2<HTMLAudioElement['hasAttributes']>('hasAttributes')\n hasPointerCapture =\n createSpy2<HTMLAudioElement['hasPointerCapture']>('hasPointerCapture')\n insertAdjacentElement = createSpy2<\n HTMLAudioElement['insertAdjacentElement']\n >('insertAdjacentElement')\n insertAdjacentHTML =\n createSpy2<HTMLAudioElement['insertAdjacentHTML']>('insertAdjacentHTML')\n insertAdjacentText =\n createSpy2<HTMLAudioElement['insertAdjacentText']>('insertAdjacentText')\n matches = createSpy2<HTMLAudioElement['matches']>('matches')\n releasePointerCapture = createSpy2<\n HTMLAudioElement['releasePointerCapture']\n >('releasePointerCapture')\n removeAttribute =\n createSpy2<HTMLAudioElement['removeAttribute']>('removeAttribute')\n removeAttributeNS =\n createSpy2<HTMLAudioElement['removeAttributeNS']>('removeAttributeNS')\n removeAttributeNode = createSpy2<HTMLAudioElement['removeAttributeNode']>(\n 'removeAttributeNode'\n )\n requestFullscreen =\n createSpy2<HTMLAudioElement['requestFullscreen']>('requestFullscreen')\n requestPointerLock =\n createSpy2<HTMLAudioElement['requestPointerLock']>('requestPointerLock')\n scroll = createSpy2<HTMLAudioElement['scroll']>('scroll')\n scrollBy = createSpy2<HTMLAudioElement['scrollBy']>('scrollBy')\n scrollIntoView =\n createSpy2<HTMLAudioElement['scrollIntoView']>('scrollIntoView')\n scrollTo = createSpy2<HTMLAudioElement['scrollTo']>('scrollTo')\n setAttribute = createSpy2<HTMLAudioElement['setAttribute']>('setAttribute')\n setAttributeNS =\n createSpy2<HTMLAudioElement['setAttributeNS']>('setAttributeNS')\n setAttributeNode =\n createSpy2<HTMLAudioElement['setAttributeNode']>('setAttributeNode')\n setAttributeNodeNS =\n createSpy2<HTMLAudioElement['setAttributeNodeNS']>('setAttributeNodeNS')\n setHTMLUnsafe =\n createSpy2<HTMLAudioElement['setHTMLUnsafe']>('setHTMLUnsafe')\n setPointerCapture =\n createSpy2<HTMLAudioElement['setPointerCapture']>('setPointerCapture')\n toggleAttribute =\n createSpy2<HTMLAudioElement['toggleAttribute']>('toggleAttribute')\n webkitMatchesSelector = createSpy2<\n HTMLAudioElement['webkitMatchesSelector']\n >('webkitMatchesSelector')\n blur = createSpy2<HTMLAudioElement['blur']>('blur')\n focus = createSpy2<HTMLAudioElement['focus']>('focus')\n appendChild = createSpy2<HTMLAudioElement['appendChild']>('appendChild')\n cloneNode = createSpy2<HTMLAudioElement['cloneNode']>('cloneNode')\n compareDocumentPosition = createSpy2<\n HTMLAudioElement['compareDocumentPosition']\n >('compareDocumentPosition')\n contains = createSpy2<HTMLAudioElement['contains']>('contains')\n getRootNode = createSpy2<HTMLAudioElement['getRootNode']>('getRootNode')\n hasChildNodes =\n createSpy2<HTMLAudioElement['hasChildNodes']>('hasChildNodes')\n insertBefore = createSpy2<HTMLAudioElement['insertBefore']>('insertBefore')\n isDefaultNamespace =\n createSpy2<HTMLAudioElement['isDefaultNamespace']>('isDefaultNamespace')\n isEqualNode = createSpy2<HTMLAudioElement['isEqualNode']>('isEqualNode')\n isSameNode = createSpy2<HTMLAudioElement['isSameNode']>('isSameNode')\n lookupNamespaceURI =\n createSpy2<HTMLAudioElement['lookupNamespaceURI']>('lookupNamespaceURI')\n lookupPrefix = createSpy2<HTMLAudioElement['lookupPrefix']>('lookupPrefix')\n normalize = createSpy2<HTMLAudioElement['normalize']>('normalize')\n removeChild = createSpy2<HTMLAudioElement['removeChild']>('removeChild')\n replaceChild = createSpy2<HTMLAudioElement['replaceChild']>('replaceChild')\n animate = createSpy2<HTMLAudioElement['animate']>('animate')\n getAnimations =\n createSpy2<HTMLAudioElement['getAnimations']>('getAnimations')\n after = createSpy2<HTMLAudioElement['after']>('after')\n before = createSpy2<HTMLAudioElement['before']>('before')\n remove = createSpy2<HTMLAudioElement['remove']>('remove')\n replaceWith = createSpy2<HTMLAudioElement['replaceWith']>('replaceWith')\n append = createSpy2<HTMLAudioElement['append']>('append')\n prepend = createSpy2<HTMLAudioElement['prepend']>('prepend')\n querySelector =\n createSpy2<HTMLAudioElement['querySelector']>('querySelector')\n querySelectorAll =\n createSpy2<HTMLAudioElement['querySelectorAll']>('querySelectorAll')\n replaceChildren =\n createSpy2<HTMLAudioElement['replaceChildren']>('replaceChildren')\n dispatchEvent =\n createSpy2<HTMLAudioElement['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockHTMLDivElement implements HTMLDivElement {\n align: string = ''\n accessKey: string = ''\n accessKeyLabel: string = ''\n autocapitalize: string = ''\n autocorrect: boolean = false\n dir: string = ''\n draggable: boolean = false\n hidden: boolean = false\n inert: boolean = false\n innerText: string = ''\n lang: string = ''\n offsetHeight: number = 0\n offsetLeft: number = 0\n offsetParent: Element | null = null\n offsetTop: number = 0\n offsetWidth: number = 0\n outerText: string = ''\n popover: string | null = ''\n spellcheck: boolean = false\n title: string = ''\n translate: boolean = false\n writingSuggestions: string = ''\n attributes: NamedNodeMap = undefined as any\n className: string = ''\n clientHeight: number = 0\n clientLeft: number = 0\n clientTop: number = 0\n clientWidth: number = 0\n currentCSSZoom: number = 0\n id: string = ''\n innerHTML: string = ''\n localName: string = ''\n namespaceURI: string | null = ''\n onfullscreenchange: ((this: Element, ev: Event) => any) | null = null\n onfullscreenerror: ((this: Element, ev: Event) => any) | null = null\n outerHTML: string = ''\n ownerDocument: Document = undefined as any\n prefix: string | null = ''\n scrollHeight: number = 0\n scrollLeft: number = 0\n scrollTop: number = 0\n scrollWidth: number = 0\n shadowRoot: ShadowRoot | null = null\n slot: string = ''\n tagName: string = ''\n classList: any = undefined\n part: any = undefined\n textContent: any = undefined\n attributeStyleMap: StylePropertyMap = undefined as any\n style: any = undefined\n contentEditable: string = ''\n enterKeyHint: string = ''\n inputMode: string = ''\n isContentEditable: boolean = false\n onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null = null\n onanimationcancel:\n | ((this: GlobalEventHandlers, ev: AnimationEvent) => any)\n | null = null\n onanimationend:\n | ((this: GlobalEventHandlers, ev: AnimationEvent) => any)\n | null = null\n onanimationiteration:\n | ((this: GlobalEventHandlers, ev: AnimationEvent) => any)\n | null = null\n onanimationstart:\n | ((this: GlobalEventHandlers, ev: AnimationEvent) => any)\n | null = null\n onauxclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null =\n null\n onbeforematch: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onbeforetoggle:\n | ((this: GlobalEventHandlers, ev: ToggleEvent) => any)\n | null = null\n onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null = null\n oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncontextmenu:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onended: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onerror: OnErrorEventHandler = undefined as any\n onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null = null\n onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null =\n null\n ongotpointercapture:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onload: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onlostpointercapture:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onpointercancel:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerdown:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerenter:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerleave:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointermove:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerout:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerover:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerrawupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null =\n null\n onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null = null\n onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onsecuritypolicyviolation:\n | ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any)\n | null = null\n onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null =\n null\n onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n ontoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null =\n null\n ontransitioncancel:\n | ((this: GlobalEventHandlers, ev: TransitionEvent) => any)\n | null = null\n ontransitionend:\n | ((this: GlobalEventHandlers, ev: TransitionEvent) => any)\n | null = null\n ontransitionrun:\n | ((this: GlobalEventHandlers, ev: TransitionEvent) => any)\n | null = null\n ontransitionstart:\n | ((this: GlobalEventHandlers, ev: TransitionEvent) => any)\n | null = null\n onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkitanimationend:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = null\n onwebkitanimationiteration:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = null\n onwebkitanimationstart:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = null\n onwebkittransitionend:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = null\n onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null = null\n autofocus: boolean = false\n dataset: DOMStringMap = undefined as any\n tabIndex: number = 0\n baseURI: string = ''\n childNodes: NodeListOf<ChildNode> = undefined as any\n firstChild: ChildNode | null = null\n isConnected: boolean = false\n lastChild: ChildNode | null = null\n nextSibling: ChildNode | null = null\n nodeName: string = ''\n nodeType: number = 0\n nodeValue: string | null = ''\n parentElement: HTMLElement | null = null\n parentNode: ParentNode | null = null\n previousSibling: ChildNode | null = null\n ELEMENT_NODE: 1 = 1\n ATTRIBUTE_NODE: 2 = 2\n TEXT_NODE: 3 = 3\n CDATA_SECTION_NODE: 4 = 4\n ENTITY_REFERENCE_NODE: 5 = 5\n ENTITY_NODE: 6 = 6\n PROCESSING_INSTRUCTION_NODE: 7 = 7\n COMMENT_NODE: 8 = 8\n DOCUMENT_NODE: 9 = 9\n DOCUMENT_TYPE_NODE: 10 = 10\n DOCUMENT_FRAGMENT_NODE: 11 = 11\n NOTATION_NODE: 12 = 12\n DOCUMENT_POSITION_DISCONNECTED: 0x01 = 1\n DOCUMENT_POSITION_PRECEDING: 0x02 = 2\n DOCUMENT_POSITION_FOLLOWING: 0x04 = 4\n DOCUMENT_POSITION_CONTAINS: 0x08 = 8\n DOCUMENT_POSITION_CONTAINED_BY: 0x10 = 16\n DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20 = 32\n ariaActiveDescendantElement: Element | null = null\n ariaAtomic: string | null = ''\n ariaAutoComplete: string | null = ''\n ariaBrailleLabel: string | null = ''\n ariaBrailleRoleDescription: string | null = ''\n ariaBusy: string | null = ''\n ariaChecked: string | null = ''\n ariaColCount: string | null = ''\n ariaColIndex: string | null = ''\n ariaColIndexText: string | null = ''\n ariaColSpan: string | null = ''\n ariaControlsElements: ReadonlyArray<Element> | null = null\n ariaCurrent: string | null = ''\n ariaDescribedByElements: ReadonlyArray<Element> | null = null\n ariaDescription: string | null = ''\n ariaDetailsElements: ReadonlyArray<Element> | null = null\n ariaDisabled: string | null = ''\n ariaErrorMessageElements: ReadonlyArray<Element> | null = null\n ariaExpanded: string | null = ''\n ariaFlowToElements: ReadonlyArray<Element> | null = null\n ariaHasPopup: string | null = ''\n ariaHidden: string | null = ''\n ariaInvalid: string | null = ''\n ariaKeyShortcuts: string | null = ''\n ariaLabel: string | null = ''\n ariaLabelledByElements: ReadonlyArray<Element> | null = null\n ariaLevel: string | null = ''\n ariaLive: string | null = ''\n ariaModal: string | null = ''\n ariaMultiLine: string | null = ''\n ariaMultiSelectable: string | null = ''\n ariaOrientation: string | null = ''\n ariaOwnsElements: ReadonlyArray<Element> | null = null\n ariaPlaceholder: string | null = ''\n ariaPosInSet: string | null = ''\n ariaPressed: string | null = ''\n ariaReadOnly: string | null = ''\n ariaRelevant: string | null = ''\n ariaRequired: string | null = ''\n ariaRoleDescription: string | null = ''\n ariaRowCount: string | null = ''\n ariaRowIndex: string | null = ''\n ariaRowIndexText: string | null = ''\n ariaRowSpan: string | null = ''\n ariaSelected: string | null = ''\n ariaSetSize: string | null = ''\n ariaSort: string | null = ''\n ariaValueMax: string | null = ''\n ariaValueMin: string | null = ''\n ariaValueNow: string | null = ''\n ariaValueText: string | null = ''\n role: string | null = ''\n nextElementSibling: Element | null = null\n previousElementSibling: Element | null = null\n childElementCount: number = 0\n children: HTMLCollection = undefined as any\n firstElementChild: Element | null = null\n lastElementChild: Element | null = null\n assignedSlot: HTMLSlotElement | null = null\n\n addEventListener =\n createSpy2<HTMLDivElement['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<HTMLDivElement['removeEventListener']>(\n 'removeEventListener'\n )\n attachInternals =\n createSpy2<HTMLDivElement['attachInternals']>('attachInternals')\n click = createSpy2<HTMLDivElement['click']>('click')\n hidePopover = createSpy2<HTMLDivElement['hidePopover']>('hidePopover')\n showPopover = createSpy2<HTMLDivElement['showPopover']>('showPopover')\n togglePopover = createSpy2<HTMLDivElement['togglePopover']>('togglePopover')\n attachShadow = createSpy2<HTMLDivElement['attachShadow']>('attachShadow')\n checkVisibility =\n createSpy2<HTMLDivElement['checkVisibility']>('checkVisibility')\n closest = createSpy2<HTMLDivElement['closest']>('closest')\n computedStyleMap =\n createSpy2<HTMLDivElement['computedStyleMap']>('computedStyleMap')\n getAttribute = createSpy2<HTMLDivElement['getAttribute']>('getAttribute')\n getAttributeNS =\n createSpy2<HTMLDivElement['getAttributeNS']>('getAttributeNS')\n getAttributeNames =\n createSpy2<HTMLDivElement['getAttributeNames']>('getAttributeNames')\n getAttributeNode =\n createSpy2<HTMLDivElement['getAttributeNode']>('getAttributeNode')\n getAttributeNodeNS =\n createSpy2<HTMLDivElement['getAttributeNodeNS']>('getAttributeNodeNS')\n getBoundingClientRect = createSpy2<HTMLDivElement['getBoundingClientRect']>(\n 'getBoundingClientRect'\n )\n getClientRects =\n createSpy2<HTMLDivElement['getClientRects']>('getClientRects')\n getElementsByClassName = createSpy2<\n HTMLDivElement['getElementsByClassName']\n >('getElementsByClassName')\n getElementsByTagName = createSpy2<HTMLDivElement['getElementsByTagName']>(\n 'getElementsByTagName'\n )\n getElementsByTagNameNS = createSpy2<\n HTMLDivElement['getElementsByTagNameNS']\n >('getElementsByTagNameNS')\n getHTML = createSpy2<HTMLDivElement['getHTML']>('getHTML')\n hasAttribute = createSpy2<HTMLDivElement['hasAttribute']>('hasAttribute')\n hasAttributeNS =\n createSpy2<HTMLDivElement['hasAttributeNS']>('hasAttributeNS')\n hasAttributes = createSpy2<HTMLDivElement['hasAttributes']>('hasAttributes')\n hasPointerCapture =\n createSpy2<HTMLDivElement['hasPointerCapture']>('hasPointerCapture')\n insertAdjacentElement = createSpy2<HTMLDivElement['insertAdjacentElement']>(\n 'insertAdjacentElement'\n )\n insertAdjacentHTML =\n createSpy2<HTMLDivElement['insertAdjacentHTML']>('insertAdjacentHTML')\n insertAdjacentText =\n createSpy2<HTMLDivElement['insertAdjacentText']>('insertAdjacentText')\n matches = createSpy2<HTMLDivElement['matches']>('matches')\n releasePointerCapture = createSpy2<HTMLDivElement['releasePointerCapture']>(\n 'releasePointerCapture'\n )\n removeAttribute =\n createSpy2<HTMLDivElement['removeAttribute']>('removeAttribute')\n removeAttributeNS =\n createSpy2<HTMLDivElement['removeAttributeNS']>('removeAttributeNS')\n removeAttributeNode = createSpy2<HTMLDivElement['removeAttributeNode']>(\n 'removeAttributeNode'\n )\n requestFullscreen =\n createSpy2<HTMLDivElement['requestFullscreen']>('requestFullscreen')\n requestPointerLock =\n createSpy2<HTMLDivElement['requestPointerLock']>('requestPointerLock')\n scroll = createSpy2<HTMLDivElement['scroll']>('scroll')\n scrollBy = createSpy2<HTMLDivElement['scrollBy']>('scrollBy')\n scrollIntoView =\n createSpy2<HTMLDivElement['scrollIntoView']>('scrollIntoView')\n scrollTo = createSpy2<HTMLDivElement['scrollTo']>('scrollTo')\n setAttribute = createSpy2<HTMLDivElement['setAttribute']>('setAttribute')\n setAttributeNS =\n createSpy2<HTMLDivElement['setAttributeNS']>('setAttributeNS')\n setAttributeNode =\n createSpy2<HTMLDivElement['setAttributeNode']>('setAttributeNode')\n setAttributeNodeNS =\n createSpy2<HTMLDivElement['setAttributeNodeNS']>('setAttributeNodeNS')\n setHTMLUnsafe = createSpy2<HTMLDivElement['setHTMLUnsafe']>('setHTMLUnsafe')\n setPointerCapture =\n createSpy2<HTMLDivElement['setPointerCapture']>('setPointerCapture')\n toggleAttribute =\n createSpy2<HTMLDivElement['toggleAttribute']>('toggleAttribute')\n webkitMatchesSelector = createSpy2<HTMLDivElement['webkitMatchesSelector']>(\n 'webkitMatchesSelector'\n )\n blur = createSpy2<HTMLDivElement['blur']>('blur')\n focus = createSpy2<HTMLDivElement['focus']>('focus')\n appendChild = createSpy2<HTMLDivElement['appendChild']>('appendChild')\n cloneNode = createSpy2<HTMLDivElement['cloneNode']>('cloneNode')\n compareDocumentPosition = createSpy2<\n HTMLDivElement['compareDocumentPosition']\n >('compareDocumentPosition')\n contains = createSpy2<HTMLDivElement['contains']>('contains')\n getRootNode = createSpy2<HTMLDivElement['getRootNode']>('getRootNode')\n hasChildNodes = createSpy2<HTMLDivElement['hasChildNodes']>('hasChildNodes')\n insertBefore = createSpy2<HTMLDivElement['insertBefore']>('insertBefore')\n isDefaultNamespace =\n createSpy2<HTMLDivElement['isDefaultNamespace']>('isDefaultNamespace')\n isEqualNode = createSpy2<HTMLDivElement['isEqualNode']>('isEqualNode')\n isSameNode = createSpy2<HTMLDivElement['isSameNode']>('isSameNode')\n lookupNamespaceURI =\n createSpy2<HTMLDivElement['lookupNamespaceURI']>('lookupNamespaceURI')\n lookupPrefix = createSpy2<HTMLDivElement['lookupPrefix']>('lookupPrefix')\n normalize = createSpy2<HTMLDivElement['normalize']>('normalize')\n removeChild = createSpy2<HTMLDivElement['removeChild']>('removeChild')\n replaceChild = createSpy2<HTMLDivElement['replaceChild']>('replaceChild')\n animate = createSpy2<HTMLDivElement['animate']>('animate')\n getAnimations = createSpy2<HTMLDivElement['getAnimations']>('getAnimations')\n after = createSpy2<HTMLDivElement['after']>('after')\n before = createSpy2<HTMLDivElement['before']>('before')\n remove = createSpy2<HTMLDivElement['remove']>('remove')\n replaceWith = createSpy2<HTMLDivElement['replaceWith']>('replaceWith')\n append = createSpy2<HTMLDivElement['append']>('append')\n prepend = createSpy2<HTMLDivElement['prepend']>('prepend')\n querySelector = createSpy2<HTMLDivElement['querySelector']>('querySelector')\n querySelectorAll =\n createSpy2<HTMLDivElement['querySelectorAll']>('querySelectorAll')\n replaceChildren =\n createSpy2<HTMLDivElement['replaceChildren']>('replaceChildren')\n dispatchEvent = createSpy2<HTMLDivElement['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockHTMLMediaElement implements HTMLMediaElement {\n autoplay: boolean = false\n buffered: TimeRanges = undefined as any\n controls: boolean = false\n crossOrigin: string | null = ''\n currentSrc: string = ''\n currentTime: number = 0\n defaultMuted: boolean = false\n defaultPlaybackRate: number = 0\n disableRemotePlayback: boolean = false\n duration: number = 0\n ended: boolean = false\n error: MediaError | null = null\n loop: boolean = false\n mediaKeys: MediaKeys | null = null\n muted: boolean = false\n networkState: number = 0\n onencrypted:\n | ((this: HTMLMediaElement, ev: MediaEncryptedEvent) => any)\n | null = null\n onwaitingforkey: ((this: HTMLMediaElement, ev: Event) => any) | null = null\n paused: boolean = false\n playbackRate: number = 0\n played: TimeRanges = undefined as any\n preload: 'none' | 'metadata' | 'auto' | '' = 'none'\n preservesPitch: boolean = false\n readyState: number = 0\n remote: RemotePlayback = undefined as any\n seekable: TimeRanges = undefined as any\n seeking: boolean = false\n sinkId: string = ''\n src: string = ''\n srcObject: MediaProvider | null = undefined as any\n textTracks: TextTrackList = undefined as any\n volume: number = 0\n NETWORK_EMPTY: 0 = 0\n NETWORK_IDLE: 1 = 1\n NETWORK_LOADING: 2 = 2\n NETWORK_NO_SOURCE: 3 = 3\n HAVE_NOTHING: 0 = 0\n HAVE_METADATA: 1 = 1\n HAVE_CURRENT_DATA: 2 = 2\n HAVE_FUTURE_DATA: 3 = 3\n HAVE_ENOUGH_DATA: 4 = 4\n accessKey: string = ''\n accessKeyLabel: string = ''\n autocapitalize: string = ''\n autocorrect: boolean = false\n dir: string = ''\n draggable: boolean = false\n hidden: boolean = false\n inert: boolean = false\n innerText: string = ''\n lang: string = ''\n offsetHeight: number = 0\n offsetLeft: number = 0\n offsetParent: Element | null = null\n offsetTop: number = 0\n offsetWidth: number = 0\n outerText: string = ''\n popover: string | null = ''\n spellcheck: boolean = false\n title: string = ''\n translate: boolean = false\n writingSuggestions: string = ''\n attributes: NamedNodeMap = undefined as any\n className: string = ''\n clientHeight: number = 0\n clientLeft: number = 0\n clientTop: number = 0\n clientWidth: number = 0\n currentCSSZoom: number = 0\n id: string = ''\n innerHTML: string = ''\n localName: string = ''\n namespaceURI: string | null = ''\n onfullscreenchange: ((this: Element, ev: Event) => any) | null = null\n onfullscreenerror: ((this: Element, ev: Event) => any) | null = null\n outerHTML: string = ''\n ownerDocument: Document = undefined as any\n prefix: string | null = ''\n scrollHeight: number = 0\n scrollLeft: number = 0\n scrollTop: number = 0\n scrollWidth: number = 0\n shadowRoot: ShadowRoot | null = null\n slot: string = ''\n tagName: string = ''\n classList: any = undefined\n part: any = undefined\n textContent: any = undefined\n attributeStyleMap: StylePropertyMap = undefined as any\n style: any = undefined\n contentEditable: string = ''\n enterKeyHint: string = ''\n inputMode: string = ''\n isContentEditable: boolean = false\n onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null = null\n onanimationcancel:\n | ((this: GlobalEventHandlers, ev: AnimationEvent) => any)\n | null = null\n onanimationend:\n | ((this: GlobalEventHandlers, ev: AnimationEvent) => any)\n | null = null\n onanimationiteration:\n | ((this: GlobalEventHandlers, ev: AnimationEvent) => any)\n | null = null\n onanimationstart:\n | ((this: GlobalEventHandlers, ev: AnimationEvent) => any)\n | null = null\n onauxclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null =\n null\n onbeforematch: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onbeforetoggle:\n | ((this: GlobalEventHandlers, ev: ToggleEvent) => any)\n | null = null\n onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null = null\n oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncontextmenu:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onended: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onerror: OnErrorEventHandler = undefined as any\n onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null = null\n onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null =\n null\n ongotpointercapture:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onload: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onlostpointercapture:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onpointercancel:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerdown:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerenter:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerleave:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointermove:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerout:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerover:\n | ((this: GlobalEventHandlers, ev: PointerEvent) => any)\n | null = null\n onpointerrawupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null =\n null\n onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null = null\n onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onsecuritypolicyviolation:\n | ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any)\n | null = null\n onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null =\n null\n onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n ontoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null =\n null\n ontransitioncancel:\n | ((this: GlobalEventHandlers, ev: TransitionEvent) => any)\n | null = null\n ontransitionend:\n | ((this: GlobalEventHandlers, ev: TransitionEvent) => any)\n | null = null\n ontransitionrun:\n | ((this: GlobalEventHandlers, ev: TransitionEvent) => any)\n | null = null\n ontransitionstart:\n | ((this: GlobalEventHandlers, ev: TransitionEvent) => any)\n | null = null\n onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkitanimationend:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = null\n onwebkitanimationiteration:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = null\n onwebkitanimationstart:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = null\n onwebkittransitionend:\n | ((this: GlobalEventHandlers, ev: Event) => any)\n | null = null\n onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null = null\n autofocus: boolean = false\n dataset: DOMStringMap = undefined as any\n tabIndex: number = 0\n baseURI: string = ''\n childNodes: NodeListOf<ChildNode> = undefined as any\n firstChild: ChildNode | null = null\n isConnected: boolean = false\n lastChild: ChildNode | null = null\n nextSibling: ChildNode | null = null\n nodeName: string = ''\n nodeType: number = 0\n nodeValue: string | null = ''\n parentElement: HTMLElement | null = null\n parentNode: ParentNode | null = null\n previousSibling: ChildNode | null = null\n ELEMENT_NODE: 1 = 1\n ATTRIBUTE_NODE: 2 = 2\n TEXT_NODE: 3 = 3\n CDATA_SECTION_NODE: 4 = 4\n ENTITY_REFERENCE_NODE: 5 = 5\n ENTITY_NODE: 6 = 6\n PROCESSING_INSTRUCTION_NODE: 7 = 7\n COMMENT_NODE: 8 = 8\n DOCUMENT_NODE: 9 = 9\n DOCUMENT_TYPE_NODE: 10 = 10\n DOCUMENT_FRAGMENT_NODE: 11 = 11\n NOTATION_NODE: 12 = 12\n DOCUMENT_POSITION_DISCONNECTED: 0x01 = 1\n DOCUMENT_POSITION_PRECEDING: 0x02 = 2\n DOCUMENT_POSITION_FOLLOWING: 0x04 = 4\n DOCUMENT_POSITION_CONTAINS: 0x08 = 8\n DOCUMENT_POSITION_CONTAINED_BY: 0x10 = 16\n DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20 = 32\n ariaActiveDescendantElement: Element | null = null\n ariaAtomic: string | null = ''\n ariaAutoComplete: string | null = ''\n ariaBrailleLabel: string | null = ''\n ariaBrailleRoleDescription: string | null = ''\n ariaBusy: string | null = ''\n ariaChecked: string | null = ''\n ariaColCount: string | null = ''\n ariaColIndex: string | null = ''\n ariaColIndexText: string | null = ''\n ariaColSpan: string | null = ''\n ariaControlsElements: ReadonlyArray<Element> | null = null\n ariaCurrent: string | null = ''\n ariaDescribedByElements: ReadonlyArray<Element> | null = null\n ariaDescription: string | null = ''\n ariaDetailsElements: ReadonlyArray<Element> | null = null\n ariaDisabled: string | null = ''\n ariaErrorMessageElements: ReadonlyArray<Element> | null = null\n ariaExpanded: string | null = ''\n ariaFlowToElements: ReadonlyArray<Element> | null = null\n ariaHasPopup: string | null = ''\n ariaHidden: string | null = ''\n ariaInvalid: string | null = ''\n ariaKeyShortcuts: string | null = ''\n ariaLabel: string | null = ''\n ariaLabelledByElements: ReadonlyArray<Element> | null = null\n ariaLevel: string | null = ''\n ariaLive: string | null = ''\n ariaModal: string | null = ''\n ariaMultiLine: string | null = ''\n ariaMultiSelectable: string | null = ''\n ariaOrientation: string | null = ''\n ariaOwnsElements: ReadonlyArray<Element> | null = null\n ariaPlaceholder: string | null = ''\n ariaPosInSet: string | null = ''\n ariaPressed: string | null = ''\n ariaReadOnly: string | null = ''\n ariaRelevant: string | null = ''\n ariaRequired: string | null = ''\n ariaRoleDescription: string | null = ''\n ariaRowCount: string | null = ''\n ariaRowIndex: string | null = ''\n ariaRowIndexText: string | null = ''\n ariaRowSpan: string | null = ''\n ariaSelected: string | null = ''\n ariaSetSize: string | null = ''\n ariaSort: string | null = ''\n ariaValueMax: string | null = ''\n ariaValueMin: string | null = ''\n ariaValueNow: string | null = ''\n ariaValueText: string | null = ''\n role: string | null = ''\n nextElementSibling: Element | null = null\n previousElementSibling: Element | null = null\n childElementCount: number = 0\n children: HTMLCollection = undefined as any\n firstElementChild: Element | null = null\n lastElementChild: Element | null = null\n assignedSlot: HTMLSlotElement | null = null\n\n addTextTrack = createSpy2<HTMLMediaElement['addTextTrack']>('addTextTrack')\n canPlayType = createSpy2<HTMLMediaElement['canPlayType']>('canPlayType')\n fastSeek = createSpy2<HTMLMediaElement['fastSeek']>('fastSeek')\n load = createSpy2<HTMLMediaElement['load']>('load')\n pause = createSpy2<HTMLMediaElement['pause']>('pause')\n play = createSpy2<HTMLMediaElement['play']>('play')\n setMediaKeys = createSpy2<HTMLMediaElement['setMediaKeys']>('setMediaKeys')\n setSinkId = createSpy2<HTMLMediaElement['setSinkId']>('setSinkId')\n addEventListener =\n createSpy2<HTMLMediaElement['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<HTMLMediaElement['removeEventListener']>(\n 'removeEventListener'\n )\n attachInternals =\n createSpy2<HTMLMediaElement['attachInternals']>('attachInternals')\n click = createSpy2<HTMLMediaElement['click']>('click')\n hidePopover = createSpy2<HTMLMediaElement['hidePopover']>('hidePopover')\n showPopover = createSpy2<HTMLMediaElement['showPopover']>('showPopover')\n togglePopover =\n createSpy2<HTMLMediaElement['togglePopover']>('togglePopover')\n attachShadow = createSpy2<HTMLMediaElement['attachShadow']>('attachShadow')\n checkVisibility =\n createSpy2<HTMLMediaElement['checkVisibility']>('checkVisibility')\n closest = createSpy2<HTMLMediaElement['closest']>('closest')\n computedStyleMap =\n createSpy2<HTMLMediaElement['computedStyleMap']>('computedStyleMap')\n getAttribute = createSpy2<HTMLMediaElement['getAttribute']>('getAttribute')\n getAttributeNS =\n createSpy2<HTMLMediaElement['getAttributeNS']>('getAttributeNS')\n getAttributeNames =\n createSpy2<HTMLMediaElement['getAttributeNames']>('getAttributeNames')\n getAttributeNode =\n createSpy2<HTMLMediaElement['getAttributeNode']>('getAttributeNode')\n getAttributeNodeNS =\n createSpy2<HTMLMediaElement['getAttributeNodeNS']>('getAttributeNodeNS')\n getBoundingClientRect = createSpy2<\n HTMLMediaElement['getBoundingClientRect']\n >('getBoundingClientRect')\n getClientRects =\n createSpy2<HTMLMediaElement['getClientRects']>('getClientRects')\n getElementsByClassName = createSpy2<\n HTMLMediaElement['getElementsByClassName']\n >('getElementsByClassName')\n getElementsByTagName = createSpy2<HTMLMediaElement['getElementsByTagName']>(\n 'getElementsByTagName'\n )\n getElementsByTagNameNS = createSpy2<\n HTMLMediaElement['getElementsByTagNameNS']\n >('getElementsByTagNameNS')\n getHTML = createSpy2<HTMLMediaElement['getHTML']>('getHTML')\n hasAttribute = createSpy2<HTMLMediaElement['hasAttribute']>('hasAttribute')\n hasAttributeNS =\n createSpy2<HTMLMediaElement['hasAttributeNS']>('hasAttributeNS')\n hasAttributes =\n createSpy2<HTMLMediaElement['hasAttributes']>('hasAttributes')\n hasPointerCapture =\n createSpy2<HTMLMediaElement['hasPointerCapture']>('hasPointerCapture')\n insertAdjacentElement = createSpy2<\n HTMLMediaElement['insertAdjacentElement']\n >('insertAdjacentElement')\n insertAdjacentHTML =\n createSpy2<HTMLMediaElement['insertAdjacentHTML']>('insertAdjacentHTML')\n insertAdjacentText =\n createSpy2<HTMLMediaElement['insertAdjacentText']>('insertAdjacentText')\n matches = createSpy2<HTMLMediaElement['matches']>('matches')\n releasePointerCapture = createSpy2<\n HTMLMediaElement['releasePointerCapture']\n >('releasePointerCapture')\n removeAttribute =\n createSpy2<HTMLMediaElement['removeAttribute']>('removeAttribute')\n removeAttributeNS =\n createSpy2<HTMLMediaElement['removeAttributeNS']>('removeAttributeNS')\n removeAttributeNode = createSpy2<HTMLMediaElement['removeAttributeNode']>(\n 'removeAttributeNode'\n )\n requestFullscreen =\n createSpy2<HTMLMediaElement['requestFullscreen']>('requestFullscreen')\n requestPointerLock =\n createSpy2<HTMLMediaElement['requestPointerLock']>('requestPointerLock')\n scroll = createSpy2<HTMLMediaElement['scroll']>('scroll')\n scrollBy = createSpy2<HTMLMediaElement['scrollBy']>('scrollBy')\n scrollIntoView =\n createSpy2<HTMLMediaElement['scrollIntoView']>('scrollIntoView')\n scrollTo = createSpy2<HTMLMediaElement['scrollTo']>('scrollTo')\n setAttribute = createSpy2<HTMLMediaElement['setAttribute']>('setAttribute')\n setAttributeNS =\n createSpy2<HTMLMediaElement['setAttributeNS']>('setAttributeNS')\n setAttributeNode =\n createSpy2<HTMLMediaElement['setAttributeNode']>('setAttributeNode')\n setAttributeNodeNS =\n createSpy2<HTMLMediaElement['setAttributeNodeNS']>('setAttributeNodeNS')\n setHTMLUnsafe =\n createSpy2<HTMLMediaElement['setHTMLUnsafe']>('setHTMLUnsafe')\n setPointerCapture =\n createSpy2<HTMLMediaElement['setPointerCapture']>('setPointerCapture')\n toggleAttribute =\n createSpy2<HTMLMediaElement['toggleAttribute']>('toggleAttribute')\n webkitMatchesSelector = createSpy2<\n HTMLMediaElement['webkitMatchesSelector']\n >('webkitMatchesSelector')\n blur = createSpy2<HTMLMediaElement['blur']>('blur')\n focus = createSpy2<HTMLMediaElement['focus']>('focus')\n appendChild = createSpy2<HTMLMediaElement['appendChild']>('appendChild')\n cloneNode = createSpy2<HTMLMediaElement['cloneNode']>('cloneNode')\n compareDocumentPosition = createSpy2<\n HTMLMediaElement['compareDocumentPosition']\n >('compareDocumentPosition')\n contains = createSpy2<HTMLMediaElement['contains']>('contains')\n getRootNode = createSpy2<HTMLMediaElement['getRootNode']>('getRootNode')\n hasChildNodes =\n createSpy2<HTMLMediaElement['hasChildNodes']>('hasChildNodes')\n insertBefore = createSpy2<HTMLMediaElement['insertBefore']>('insertBefore')\n isDefaultNamespace =\n createSpy2<HTMLMediaElement['isDefaultNamespace']>('isDefaultNamespace')\n isEqualNode = createSpy2<HTMLMediaElement['isEqualNode']>('isEqualNode')\n isSameNode = createSpy2<HTMLMediaElement['isSameNode']>('isSameNode')\n lookupNamespaceURI =\n createSpy2<HTMLMediaElement['lookupNamespaceURI']>('lookupNamespaceURI')\n lookupPrefix = createSpy2<HTMLMediaElement['lookupPrefix']>('lookupPrefix')\n normalize = createSpy2<HTMLMediaElement['normalize']>('normalize')\n removeChild = createSpy2<HTMLMediaElement['removeChild']>('removeChild')\n replaceChild = createSpy2<HTMLMediaElement['replaceChild']>('replaceChild')\n animate = createSpy2<HTMLMediaElement['animate']>('animate')\n getAnimations =\n createSpy2<HTMLMediaElement['getAnimations']>('getAnimations')\n after = createSpy2<HTMLMediaElement['after']>('after')\n before = createSpy2<HTMLMediaElement['before']>('before')\n remove = createSpy2<HTMLMediaElement['remove']>('remove')\n replaceWith = createSpy2<HTMLMediaElement['replaceWith']>('replaceWith')\n append = createSpy2<HTMLMediaElement['append']>('append')\n prepend = createSpy2<HTMLMediaElement['prepend']>('prepend')\n querySelector =\n createSpy2<HTMLMediaElement['querySelector']>('querySelector')\n querySelectorAll =\n createSpy2<HTMLMediaElement['querySelectorAll']>('querySelectorAll')\n replaceChildren =\n createSpy2<HTMLMediaElement['replaceChildren']>('replaceChildren')\n dispatchEvent =\n createSpy2<HTMLMediaElement['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockMediaError implements MediaError {\n code: number = 0\n message: string = ''\n MEDIA_ERR_ABORTED: 1 = 1\n MEDIA_ERR_NETWORK: 2 = 2\n MEDIA_ERR_DECODE: 3 = 3\n MEDIA_ERR_SRC_NOT_SUPPORTED: 4 = 4\n}\n\nexport class MockMediaKeyMessageEvent implements MediaKeyMessageEvent {\n message: ArrayBuffer = new ArrayBuffer(0)\n messageType: MediaKeyMessageType = 'individualization-request'\n bubbles: boolean = false\n cancelBubble: boolean = false\n cancelable: boolean = false\n composed: boolean = false\n currentTarget: EventTarget | null = null\n defaultPrevented: boolean = false\n eventPhase: number = 0\n isTrusted: boolean = false\n returnValue: boolean = false\n srcElement: EventTarget | null = null\n target: EventTarget | null = null\n timeStamp: DOMHighResTimeStamp = 0\n type: string = ''\n NONE: 0 = 0\n CAPTURING_PHASE: 1 = 1\n AT_TARGET: 2 = 2\n BUBBLING_PHASE: 3 = 3\n\n composedPath =\n createSpy2<MediaKeyMessageEvent['composedPath']>('composedPath')\n initEvent = createSpy2<MediaKeyMessageEvent['initEvent']>('initEvent')\n preventDefault =\n createSpy2<MediaKeyMessageEvent['preventDefault']>('preventDefault')\n stopImmediatePropagation = createSpy2<\n MediaKeyMessageEvent['stopImmediatePropagation']\n >('stopImmediatePropagation')\n stopPropagation =\n createSpy2<MediaKeyMessageEvent['stopPropagation']>('stopPropagation')\n}\n\nexport class MockMediaKeySession implements MediaKeySession {\n closed: Promise<MediaKeySessionClosedReason> = undefined as any\n expiration: number = 0\n keyStatuses: MediaKeyStatusMap = undefined as any\n onkeystatuseschange: ((this: MediaKeySession, ev: Event) => any) | null =\n null\n onmessage:\n | ((this: MediaKeySession, ev: MediaKeyMessageEvent) => any)\n | null = null\n sessionId: string = ''\n\n close = createSpy2<MediaKeySession['close']>('close')\n generateRequest =\n createSpy2<MediaKeySession['generateRequest']>('generateRequest')\n load = createSpy2<MediaKeySession['load']>('load')\n remove = createSpy2<MediaKeySession['remove']>('remove')\n update = createSpy2<MediaKeySession['update']>('update')\n addEventListener =\n createSpy2<MediaKeySession['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<MediaKeySession['removeEventListener']>(\n 'removeEventListener'\n )\n dispatchEvent =\n createSpy2<MediaKeySession['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockMediaKeySystemAccess implements MediaKeySystemAccess {\n keySystem: string = ''\n\n createMediaKeys =\n createSpy2<MediaKeySystemAccess['createMediaKeys']>('createMediaKeys')\n getConfiguration =\n createSpy2<MediaKeySystemAccess['getConfiguration']>('getConfiguration')\n}\n\nexport class MockMediaKeys implements MediaKeys {\n createSession = createSpy2<MediaKeys['createSession']>('createSession')\n getStatusForPolicy =\n createSpy2<MediaKeys['getStatusForPolicy']>('getStatusForPolicy')\n setServerCertificate = createSpy2<MediaKeys['setServerCertificate']>(\n 'setServerCertificate'\n )\n}\n\nexport class MockMediaSource implements MediaSource {\n activeSourceBuffers: SourceBufferList = undefined as any\n duration: number = 0\n onsourceclose: ((this: MediaSource, ev: Event) => any) | null = null\n onsourceended: ((this: MediaSource, ev: Event) => any) | null = null\n onsourceopen: ((this: MediaSource, ev: Event) => any) | null = null\n readyState: ReadyState = 'closed'\n sourceBuffers: SourceBufferList = undefined as any\n\n addSourceBuffer =\n createSpy2<MediaSource['addSourceBuffer']>('addSourceBuffer')\n clearLiveSeekableRange = createSpy2<MediaSource['clearLiveSeekableRange']>(\n 'clearLiveSeekableRange'\n )\n endOfStream = createSpy2<MediaSource['endOfStream']>('endOfStream')\n removeSourceBuffer =\n createSpy2<MediaSource['removeSourceBuffer']>('removeSourceBuffer')\n setLiveSeekableRange = createSpy2<MediaSource['setLiveSeekableRange']>(\n 'setLiveSeekableRange'\n )\n addEventListener =\n createSpy2<MediaSource['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<MediaSource['removeEventListener']>(\n 'removeEventListener'\n )\n dispatchEvent = createSpy2<MediaSource['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockMediaStream implements MediaStream {\n active: boolean = false\n id: string = ''\n onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null =\n null\n onremovetrack:\n | ((this: MediaStream, ev: MediaStreamTrackEvent) => any)\n | null = null\n\n addTrack = createSpy2<MediaStream['addTrack']>('addTrack')\n clone = createSpy2<MediaStream['clone']>('clone')\n getAudioTracks = createSpy2<MediaStream['getAudioTracks']>('getAudioTracks')\n getTrackById = createSpy2<MediaStream['getTrackById']>('getTrackById')\n getTracks = createSpy2<MediaStream['getTracks']>('getTracks')\n getVideoTracks = createSpy2<MediaStream['getVideoTracks']>('getVideoTracks')\n removeTrack = createSpy2<MediaStream['removeTrack']>('removeTrack')\n addEventListener =\n createSpy2<MediaStream['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<MediaStream['removeEventListener']>(\n 'removeEventListener'\n )\n dispatchEvent = createSpy2<MediaStream['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockNavigator implements Navigator {\n clipboard: Clipboard = undefined as any\n credentials: CredentialsContainer = undefined as any\n doNotTrack: string | null = ''\n geolocation: Geolocation = undefined as any\n login: NavigatorLogin = undefined as any\n maxTouchPoints: number = 0\n mediaCapabilities: MediaCapabilities = undefined as any\n mediaDevices: MediaDevices = undefined as any\n mediaSession: MediaSession = undefined as any\n permissions: Permissions = undefined as any\n serviceWorker: ServiceWorkerContainer = undefined as any\n userActivation: UserActivation = undefined as any\n wakeLock: WakeLock = undefined as any\n webdriver: boolean = false\n hardwareConcurrency: number = 0\n cookieEnabled: boolean = false\n appCodeName: string = ''\n appName: string = ''\n appVersion: string = ''\n platform: string = ''\n product: string = ''\n productSub: string = ''\n userAgent: string = ''\n vendor: string = ''\n vendorSub: string = ''\n language: string = ''\n languages: ReadonlyArray<string> = []\n locks: LockManager = undefined as any\n onLine: boolean = false\n mimeTypes: MimeTypeArray = undefined as any\n pdfViewerEnabled: boolean = false\n plugins: PluginArray = undefined as any\n storage: StorageManager = undefined as any\n\n canShare = createSpy2<Navigator['canShare']>('canShare')\n getGamepads = createSpy2<Navigator['getGamepads']>('getGamepads')\n requestMIDIAccess =\n createSpy2<Navigator['requestMIDIAccess']>('requestMIDIAccess')\n requestMediaKeySystemAccess = createSpy2<\n Navigator['requestMediaKeySystemAccess']\n >('requestMediaKeySystemAccess')\n sendBeacon = createSpy2<Navigator['sendBeacon']>('sendBeacon')\n share = createSpy2<Navigator['share']>('share')\n vibrate = createSpy2<Navigator['vibrate']>('vibrate')\n clearAppBadge = createSpy2<Navigator['clearAppBadge']>('clearAppBadge')\n setAppBadge = createSpy2<Navigator['setAppBadge']>('setAppBadge')\n registerProtocolHandler = createSpy2<Navigator['registerProtocolHandler']>(\n 'registerProtocolHandler'\n )\n javaEnabled = createSpy2<Navigator['javaEnabled']>('javaEnabled')\n}\n\nexport class MockNode implements Node {\n baseURI: string = ''\n childNodes: NodeListOf<ChildNode> = undefined as any\n firstChild: ChildNode | null = null\n isConnected: boolean = false\n lastChild: ChildNode | null = null\n nextSibling: ChildNode | null = null\n nodeName: string = ''\n nodeType: number = 0\n nodeValue: string | null = ''\n ownerDocument: Document | null = null\n parentElement: HTMLElement | null = null\n parentNode: ParentNode | null = null\n previousSibling: ChildNode | null = null\n textContent: string | null = ''\n ELEMENT_NODE: 1 = 1\n ATTRIBUTE_NODE: 2 = 2\n TEXT_NODE: 3 = 3\n CDATA_SECTION_NODE: 4 = 4\n ENTITY_REFERENCE_NODE: 5 = 5\n ENTITY_NODE: 6 = 6\n PROCESSING_INSTRUCTION_NODE: 7 = 7\n COMMENT_NODE: 8 = 8\n DOCUMENT_NODE: 9 = 9\n DOCUMENT_TYPE_NODE: 10 = 10\n DOCUMENT_FRAGMENT_NODE: 11 = 11\n NOTATION_NODE: 12 = 12\n DOCUMENT_POSITION_DISCONNECTED: 0x01 = 1\n DOCUMENT_POSITION_PRECEDING: 0x02 = 2\n DOCUMENT_POSITION_FOLLOWING: 0x04 = 4\n DOCUMENT_POSITION_CONTAINS: 0x08 = 8\n DOCUMENT_POSITION_CONTAINED_BY: 0x10 = 16\n DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20 = 32\n\n appendChild = createSpy2<Node['appendChild']>('appendChild')\n cloneNode = createSpy2<Node['cloneNode']>('cloneNode')\n compareDocumentPosition = createSpy2<Node['compareDocumentPosition']>(\n 'compareDocumentPosition'\n )\n contains = createSpy2<Node['contains']>('contains')\n getRootNode = createSpy2<Node['getRootNode']>('getRootNode')\n hasChildNodes = createSpy2<Node['hasChildNodes']>('hasChildNodes')\n insertBefore = createSpy2<Node['insertBefore']>('insertBefore')\n isDefaultNamespace =\n createSpy2<Node['isDefaultNamespace']>('isDefaultNamespace')\n isEqualNode = createSpy2<Node['isEqualNode']>('isEqualNode')\n isSameNode = createSpy2<Node['isSameNode']>('isSameNode')\n lookupNamespaceURI =\n createSpy2<Node['lookupNamespaceURI']>('lookupNamespaceURI')\n lookupPrefix = createSpy2<Node['lookupPrefix']>('lookupPrefix')\n normalize = createSpy2<Node['normalize']>('normalize')\n removeChild = createSpy2<Node['removeChild']>('removeChild')\n replaceChild = createSpy2<Node['replaceChild']>('replaceChild')\n addEventListener = createSpy2<Node['addEventListener']>('addEventListener')\n dispatchEvent = createSpy2<Node['dispatchEvent']>('dispatchEvent')\n removeEventListener = createSpy2<Node['removeEventListener']>(\n 'removeEventListener'\n )\n}\n\nexport class MockProgressEvent<\n T extends EventTarget = EventTarget,\n> implements ProgressEvent<T> {\n lengthComputable: boolean = false\n loaded: number = 0\n target: T | null = undefined as any\n total: number = 0\n bubbles: boolean = false\n cancelBubble: boolean = false\n cancelable: boolean = false\n composed: boolean = false\n currentTarget: EventTarget | null = null\n defaultPrevented: boolean = false\n eventPhase: number = 0\n isTrusted: boolean = false\n returnValue: boolean = false\n srcElement: EventTarget | null = null\n timeStamp: DOMHighResTimeStamp = 0\n type: string = ''\n NONE: 0 = 0\n CAPTURING_PHASE: 1 = 1\n AT_TARGET: 2 = 2\n BUBBLING_PHASE: 3 = 3\n\n composedPath = createSpy2<ProgressEvent<T>['composedPath']>('composedPath')\n initEvent = createSpy2<ProgressEvent<T>['initEvent']>('initEvent')\n preventDefault =\n createSpy2<ProgressEvent<T>['preventDefault']>('preventDefault')\n stopImmediatePropagation = createSpy2<\n ProgressEvent<T>['stopImmediatePropagation']\n >('stopImmediatePropagation')\n stopPropagation =\n createSpy2<ProgressEvent<T>['stopPropagation']>('stopPropagation')\n}\n\nexport class MockPromiseRejectionEvent implements PromiseRejectionEvent {\n promise: Promise<any> = undefined as any\n reason: any = undefined\n bubbles: boolean = false\n cancelBubble: boolean = false\n cancelable: boolean = false\n composed: boolean = false\n currentTarget: EventTarget | null = null\n defaultPrevented: boolean = false\n eventPhase: number = 0\n isTrusted: boolean = false\n returnValue: boolean = false\n srcElement: EventTarget | null = null\n target: EventTarget | null = null\n timeStamp: DOMHighResTimeStamp = 0\n type: string = ''\n NONE: 0 = 0\n CAPTURING_PHASE: 1 = 1\n AT_TARGET: 2 = 2\n BUBBLING_PHASE: 3 = 3\n\n composedPath =\n createSpy2<PromiseRejectionEvent['composedPath']>('composedPath')\n initEvent = createSpy2<PromiseRejectionEvent['initEvent']>('initEvent')\n preventDefault =\n createSpy2<PromiseRejectionEvent['preventDefault']>('preventDefault')\n stopImmediatePropagation = createSpy2<\n PromiseRejectionEvent['stopImmediatePropagation']\n >('stopImmediatePropagation')\n stopPropagation =\n createSpy2<PromiseRejectionEvent['stopPropagation']>('stopPropagation')\n}\n\nexport class MockSourceBuffer implements SourceBuffer {\n appendWindowEnd: number = 0\n appendWindowStart: number = 0\n buffered: TimeRanges = undefined as any\n mode: AppendMode = 'segments'\n onabort: ((this: SourceBuffer, ev: Event) => any) | null = null\n onerror: ((this: SourceBuffer, ev: Event) => any) | null = null\n onupdate: ((this: SourceBuffer, ev: Event) => any) | null = null\n onupdateend: ((this: SourceBuffer, ev: Event) => any) | null = null\n onupdatestart: ((this: SourceBuffer, ev: Event) => any) | null = null\n timestampOffset: number = 0\n updating: boolean = false\n\n abort = createSpy2<SourceBuffer['abort']>('abort')\n appendBuffer = createSpy2<SourceBuffer['appendBuffer']>('appendBuffer')\n changeType = createSpy2<SourceBuffer['changeType']>('changeType')\n remove = createSpy2<SourceBuffer['remove']>('remove')\n addEventListener =\n createSpy2<SourceBuffer['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<SourceBuffer['removeEventListener']>(\n 'removeEventListener'\n )\n dispatchEvent = createSpy2<SourceBuffer['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockStorage implements Storage {\n [key: string]: any\n\n length: number = 0\n\n clear = createSpy2<Storage['clear']>('clear')\n getItem = createSpy2<Storage['getItem']>('getItem')\n key = createSpy2<Storage['key']>('key')\n removeItem = createSpy2<Storage['removeItem']>('removeItem')\n setItem = createSpy2<Storage['setItem']>('setItem')\n}\n\nexport class MockText implements Text {\n wholeText: string = ''\n data: string = ''\n length: number = 0\n ownerDocument: Document = undefined as any\n textContent: any = undefined\n assignedSlot: HTMLSlotElement | null = null\n baseURI: string = ''\n childNodes: NodeListOf<ChildNode> = undefined as any\n firstChild: ChildNode | null = null\n isConnected: boolean = false\n lastChild: ChildNode | null = null\n nextSibling: ChildNode | null = null\n nodeName: string = ''\n nodeType: number = 0\n nodeValue: string | null = ''\n parentElement: HTMLElement | null = null\n parentNode: ParentNode | null = null\n previousSibling: ChildNode | null = null\n ELEMENT_NODE: 1 = 1\n ATTRIBUTE_NODE: 2 = 2\n TEXT_NODE: 3 = 3\n CDATA_SECTION_NODE: 4 = 4\n ENTITY_REFERENCE_NODE: 5 = 5\n ENTITY_NODE: 6 = 6\n PROCESSING_INSTRUCTION_NODE: 7 = 7\n COMMENT_NODE: 8 = 8\n DOCUMENT_NODE: 9 = 9\n DOCUMENT_TYPE_NODE: 10 = 10\n DOCUMENT_FRAGMENT_NODE: 11 = 11\n NOTATION_NODE: 12 = 12\n DOCUMENT_POSITION_DISCONNECTED: 0x01 = 1\n DOCUMENT_POSITION_PRECEDING: 0x02 = 2\n DOCUMENT_POSITION_FOLLOWING: 0x04 = 4\n DOCUMENT_POSITION_CONTAINS: 0x08 = 8\n DOCUMENT_POSITION_CONTAINED_BY: 0x10 = 16\n DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20 = 32\n nextElementSibling: Element | null = null\n previousElementSibling: Element | null = null\n\n splitText = createSpy2<Text['splitText']>('splitText')\n appendData = createSpy2<Text['appendData']>('appendData')\n deleteData = createSpy2<Text['deleteData']>('deleteData')\n insertData = createSpy2<Text['insertData']>('insertData')\n replaceData = createSpy2<Text['replaceData']>('replaceData')\n substringData = createSpy2<Text['substringData']>('substringData')\n appendChild = createSpy2<Text['appendChild']>('appendChild')\n cloneNode = createSpy2<Text['cloneNode']>('cloneNode')\n compareDocumentPosition = createSpy2<Text['compareDocumentPosition']>(\n 'compareDocumentPosition'\n )\n contains = createSpy2<Text['contains']>('contains')\n getRootNode = createSpy2<Text['getRootNode']>('getRootNode')\n hasChildNodes = createSpy2<Text['hasChildNodes']>('hasChildNodes')\n insertBefore = createSpy2<Text['insertBefore']>('insertBefore')\n isDefaultNamespace =\n createSpy2<Text['isDefaultNamespace']>('isDefaultNamespace')\n isEqualNode = createSpy2<Text['isEqualNode']>('isEqualNode')\n isSameNode = createSpy2<Text['isSameNode']>('isSameNode')\n lookupNamespaceURI =\n createSpy2<Text['lookupNamespaceURI']>('lookupNamespaceURI')\n lookupPrefix = createSpy2<Text['lookupPrefix']>('lookupPrefix')\n normalize = createSpy2<Text['normalize']>('normalize')\n removeChild = createSpy2<Text['removeChild']>('removeChild')\n replaceChild = createSpy2<Text['replaceChild']>('replaceChild')\n after = createSpy2<Text['after']>('after')\n before = createSpy2<Text['before']>('before')\n remove = createSpy2<Text['remove']>('remove')\n replaceWith = createSpy2<Text['replaceWith']>('replaceWith')\n addEventListener = createSpy2<Text['addEventListener']>('addEventListener')\n dispatchEvent = createSpy2<Text['dispatchEvent']>('dispatchEvent')\n removeEventListener = createSpy2<Text['removeEventListener']>(\n 'removeEventListener'\n )\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MockAbortSignal, MockMediaSource } from './lib.dom'\nimport { createSpy2 } from '../createSpyFactory'\n\nexport class MockMediaSourceGlobal extends MockMediaSource {\n static canConstructInDedicatedWorker = false\n static isTypeSupported =\n createSpy2<(typeof global.MediaSource)['isTypeSupported']>(\n 'isTypeSupported'\n )\n}\n\nexport class MockAbortSignalGlobal extends MockAbortSignal {\n static abort = createSpy2<(typeof global.AbortSignal)['abort']>('abort')\n static any = createSpy2<(typeof global.AbortSignal)['any']>('any')\n static timeout =\n createSpy2<(typeof global.AbortSignal)['timeout']>('timeout')\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MockEvent } from './lib.dom'\n\n/**\n * A convenience function to create a MockEvent with a given type.\n * @param type\n */\nexport function mockEvent(type: string): MockEvent {\n const e = new MockEvent()\n e.type = type\n return e\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * An implementation of DOM TimeRanges that uses a source array of start/end tuples.\n * For testing purposes only.\n */\nexport class MockTimeRanges implements TimeRanges {\n constructor(\n private ranges: ReadonlyArray<\n readonly [start: number, end: number]\n > = []\n ) {\n // check the ranges are valid\n for (let i = 1; i < ranges.length; i++) {\n const prev = ranges[i - 1]\n const range = ranges[i]\n if (range[0] >= range[1] || range[0] <= prev[1])\n throw new Error('invalid ranges')\n }\n }\n\n get length(): number {\n return this.ranges.length\n }\n\n start(index: number): number {\n return this.ranges[index][0]\n }\n\n end(index: number): number {\n return this.ranges[index][1]\n }\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { MockEvent } from './dom/lib.dom'\nimport { asSpy } from './asSpy'\n\ntype Callback = (event: Event) => any\ninterface CallbackOptions {\n once: boolean\n}\n\nexport interface EventFakesHandle {\n /**\n * Returns true if there are any remaining listeners on this event target.\n */\n hasAnyListeners(): boolean\n}\n\n/**\n * Implements addEventListener, dispatchEvent, and removeEventListener.\n * Simulates browser behavior for dispatching events.\n *\n * Does not differentiate between passive and active listeners or work with a dom hierarchy\n * for bubble/capture phases.\n *\n * `dispatchEvent` must use subtypes of MockEvent.\n */\nexport function implementEventFakes(target: EventTarget): EventFakesHandle {\n // type -> capture -> options\n const callbacks = new Map<\n string,\n Map<boolean, Map<Callback, CallbackOptions>>\n >()\n\n asSpy(target, 'addEventListener').and.callFake(\n (\n type: string,\n callback: Callback,\n addOptions?: AddEventListenerOptions | boolean\n ) => {\n if (!callbacks.has(type)) callbacks.set(type, new Map())\n const captureMap = callbacks.get(type)!\n let newOptions: CallbackOptions\n let capture: boolean\n if (addOptions == null) {\n newOptions = { once: false }\n capture = false\n } else if (typeof addOptions === 'boolean') {\n newOptions = { once: false }\n capture = addOptions\n } else {\n newOptions = { once: addOptions.once ?? false }\n capture = addOptions.capture ?? false\n }\n\n if (!captureMap.has(capture)) captureMap.set(capture, new Map())\n const callbacksMap = captureMap.get(capture)!\n if (!callbacksMap.has(callback)) {\n // A repeat call to addEventListener with the same type and callback but with\n // a different `once` value will not overwrite the previous once. This is normal\n // browser behavior.\n callbacksMap.set(callback, newOptions)\n }\n }\n )\n\n asSpy(target, 'removeEventListener').and.callFake(\n (\n type: string,\n callback: Callback,\n options?: EventListenerOptions | boolean\n ) => {\n if (!callbacks.has(type)) return\n const captureMap = callbacks.get(type)!\n const capture =\n typeof options === 'boolean'\n ? options\n : (options?.capture ?? false)\n if (!captureMap.has(capture)) return\n const callbacksMap = captureMap.get(capture)!\n callbacksMap.delete(callback)\n }\n )\n\n asSpy(target, 'dispatchEvent').and.callFake((event: MockEvent): boolean => {\n // Note, does not support a display hierarchy and bubble/capture phases. Simulates only\n // at target such as an EventTarget object would support.\n if (!callbacks.has(event.type)) return true\n const captureMap = callbacks.get(event.type)!\n event.eventPhase = event.AT_TARGET\n event.currentTarget = target\n event.target = target\n\n if (captureMap.has(true)) {\n const captureCallbacks = captureMap.get(true)!\n for (const [callback, options] of captureCallbacks.entries()) {\n if (event.stopImmediatePropagation.calls.any()) break\n if (\n event.eventPhase === event.AT_TARGET ||\n event.eventPhase === event.CAPTURING_PHASE\n ) {\n if (options.once) {\n target.removeEventListener(event.type, callback, true)\n }\n callback(event)\n }\n }\n }\n if (captureMap.has(false)) {\n const bubbleCallbacks = captureMap.get(false)!\n for (const [callback, options] of bubbleCallbacks.entries()) {\n if (event.stopImmediatePropagation.calls.any()) break\n if (\n event.eventPhase === event.AT_TARGET ||\n event.eventPhase === event.BUBBLING_PHASE\n ) {\n if (options.once) {\n target.removeEventListener(event.type, callback, false)\n }\n callback(event)\n }\n }\n }\n return !event.cancelable || !event.preventDefault.calls.any()\n })\n\n return {\n hasAnyListeners(): boolean {\n for (const typeMap of callbacks.values()) {\n for (const captureMap of typeMap.values()) {\n if (captureMap.size > 0) return true\n }\n }\n return false\n },\n }\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MockEvent } from './dom/lib.dom'\n\nclass FakeCustomEvent<T = any> extends MockEvent implements CustomEvent<T> {\n readonly detail: T\n\n constructor(type: string, eventInitDict?: CustomEventInit<T>) {\n super()\n this.type = type\n this.detail = eventInitDict?.detail as T\n this.bubbles = eventInitDict?.bubbles ?? false\n this.cancelable = eventInitDict?.cancelable ?? false\n }\n\n initCustomEvent() {}\n}\n\nexport function polyfillCustomEvent() {\n beforeEach(() => {\n if (typeof window === 'undefined')\n (global as any).CustomEvent = FakeCustomEvent\n })\n\n afterEach(() => {\n if (typeof window === 'undefined') delete (global as any).CustomEvent\n })\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport CustomReporter = jasmine.CustomReporter\nimport JasmineStartedInfo = jasmine.JasmineStartedInfo\nimport SpecResult = jasmine.SpecResult\nimport FailedExpectation = jasmine.FailedExpectation\n\nexport class ConsoleReporter implements CustomReporter {\n private errors: FailedExpectation[] = []\n\n jasmineStarted(suiteInfo: JasmineStartedInfo): void {\n console.log(\n `Running suite with ${suiteInfo.totalSpecsDefined} specs, seed ${suiteInfo.order.seed}`\n )\n console.log(\n 'Testing for UA:',\n typeof navigator === 'object' ? navigator.userAgent : 'Node.js/<21'\n )\n }\n\n specDone(result: SpecResult): void {\n if (result.failedExpectations.length > 0) {\n console.warn(`Spec failed: ${result.fullName}`)\n for (let i = 0; i < result.failedExpectations.length; i++) {\n console.warn(`Failure: ${result.failedExpectations[i].message}`)\n console.warn(result.failedExpectations[i].stack)\n this.errors.push(result.failedExpectations[i])\n }\n }\n }\n\n jasmineDone(): void {\n if (this.errors.length > 0) {\n console.log(`There were ${this.errors.length} errors:`)\n this.errors.forEach((error, index) => {\n console.error(`Error ${index + 1}:`, error)\n })\n } else {\n console.log('No errors were found.')\n }\n }\n}\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,IAAM,YAAY;AAKX,SAAS,gBAA+B;AAC3C,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC5B,cAAU,MAAM,QAAQ,MAAM,CAAC;AAAA,EACnC,CAAC;AACL;AA4BO,SAAS,cAAwB;AACpC,QAAM,QAAe,QAAQ,MAAM;AAEnC,aAAW,MAAM;AACb,UAAM,QAAQ;AACd,UAAM,SAAS,oBAAI,KAAK,CAAC,CAAC;AAAA,EAC9B,CAAC;AAED,YAAU,MAAM;AACZ,UAAM,UAAU;AAAA,EACpB,CAAC;AAED,QAAM,WAAqB;AAAA,IACvB,MAAM,QAAQ,MAAwC;AAClD,UAAI,CAAC,KAAK,QAAQ;AACd,cAAM,KAAK,CAAC;AACZ,cAAM,cAAc;AAAA,MACxB;AACA,iBAAW,KAAK,MAAM;AAClB,cAAM,KAAK,IAAI,GAAI;AACnB,cAAM,cAAc;AAAA,MACxB;AAAA,IACJ;AAAA,IAEA,SAAS,MAAmB;AACxB,YAAM,SAAS,IAAI;AAAA,IACvB;AAAA,EACJ;AACA,SAAO;AACX;;;AC7DO,SAAS,WACZ,MACA,QAGA,QACkC;AAClC,SAAO,OAAO,UAAmC;AAC7C,UAAM,OAAO,MAAM,KAAK;AACxB,aAAS,IAAI,GAAG,IAAI,MAAM,QAAQ,KAAK;AACnC,YAAM,OAAO,MAAM,CAAC;AACpB,YAAM,SAAS,OAAO,IAAI;AAC1B,UAAI,CAAC,OAAQ,OAAM,IAAI,MAAM,oBAAoB,IAAI,GAAG;AACxD,YAAM,OAAO,IAAI;AAAA,IACrB;AACA,WAAO,OAAO,IAAI;AAAA,EACtB;AACJ;;;ACxBA,IAAO,YAAY,QAAQ;AAepB,SAAS,yBACZ,OACA,cACkC;AAClC,SAAO;AAAA,IAKH,MAAM;AACF,YAAM,SAAS,oBAAI,KAAK,CAAC,CAAC;AAC1B,UAAI,OAAO;AACX,UAAI,aAAa;AACjB,YAAM,YAAY,MAAM;AACpB,cAAM,QAAQ,KAAK,IAAI;AACvB,gBAAQ,IAAI,QAAQ,QAAQ,cAAc,GAAI;AAC9C,qBAAa;AAAA,MACjB;AACA,YAAM,MAAM,UAAU,OAAO,EAAE,IAAI,SAAS,MAAM;AAC9C,kBAAU;AACV,gBAAQ;AAAA,MACZ,CAAC;AACD,YAAM,YAAY,aAAa,GAAG;AAClC,aAAO;AAAA,QACH;AAAA,QACA;AAAA,QACA,IAAI,MAAM;AACN,iBAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ;AAAA,IACA;AAAA,MACI,KAAK,MAAM;AACP,eAAO,MAAM,KAAK,CAAC;AAAA,MACvB;AAAA,MACA,GAAG,CAAC,SAAS;AACT,aAAK,UAAU;AAAA,MACnB;AAAA,IACJ;AAAA,IACA,OAAO,MAAM;AAGT,eAAS,IAAI,GAAG,IAAI,IAAI,KAAK;AACzB,cAAM,MAAM,KAAK,CAAC;AAAA,MACtB;AACA,aAAO,EAAE;AAAA,IACb;AAAA,EACJ;AACJ;;;AC3DA,IAAI;AACJ,IACI,OAAO,WAAW,eAClB,OAAO,OAAO,gBAAgB,eAC9B,OAAO,OAAO,YAAY,QAAQ,aACpC;AACE,QAAM,MAAM,OAAO,YAAY,IAAI;AACvC,WACI,OAAO,SAAS,eAChB,OAAO,KAAK,gBAAgB,eAC5B,OAAO,KAAK,YAAY,QAAQ,aAClC;AACE,QAAM,MAAM,KAAK,YAAY,IAAI;AACrC,OAAO;AACH,QAAM,MAAM,KAAK,IAAI;AACzB;AAiCO,IAAM,sBAAN,MAA0B;AAAA,EA6C7B,YAAqB,MAAc;AAAd;AA5CrB,wBAAS,gBAAyB,CAAC;AAEnC,wBAAQ,iBAAgB;AAAA,EA0CY;AAAA,EAzCpC,IAAI,eAAuB;AACvB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,yBAAmC;AACnC,UAAM,KAAK,KAAK;AAChB,UAAM,MAAM,QAAQ,KAAK,YAAY;AACrC,WAAO,KAAK,aAAa,OAAO,CAAC,MAAM;AACnC,YAAM,UAAU,MAAM,KAAK;AAC3B,aAAO,KAAK,IAAI,MAAM,IAAI;AAAA,IAC9B,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,gBAAwB;AACxB,WAAO,QAAQ,KAAK,sBAAsB;AAAA,EAC9C;AAAA,EAEA,IAAI,oBAA4B;AAC5B,WAAO,kBAAkB,KAAK,YAAY;AAAA,EAC9C;AAAA,EAEA,IAAI,WAAmB;AACnB,WAAO,KAAK,oBAAoB,KAAK;AAAA,EACzC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,aAAqB;AACrB,UAAM,OAAO,KAAK,cAAc,eAAe,QAAW;AAAA,MACtD,0BAA0B;AAAA,IAC9B,CAAC;AACD,UAAM,WAAW,KAAK,SAAS,eAAe,QAAW;AAAA,MACrD,OAAO;AAAA,IACX,CAAC;AACD,WAAO,GAAG,IAAI,QAAK,QAAQ;AAAA,EAC/B;AAAA,EAIA,IAAI,OAAqB;AACrB,UAAM,eAAe,MAAM,MAAM,MAAM;AACvC,QAAI,QAAQ,KAAK,aAAa,UAAU,CAAC,UAAU,eAAe,KAAK;AACvE,QAAI,QAAQ,EAAG,SAAQ,KAAK,aAAa;AACzC,SAAK,aAAa,OAAO,OAAO,GAAG,YAAY;AAC/C,SAAK,iBAAiB,MAAM;AAAA,EAChC;AAAA,EAEA,WAAmB;AACf,QAAI,CAAC,KAAK,aAAa,OAAQ,QAAO;AACtC,WAAO,GAAG,KAAK,IAAI,KAAK,KAAK,UAAU;AAAA,EAC3C;AACJ;AAEO,IAAM,uBAAN,MAA2B;AAAA,EAM9B,YACa,MACT,SACF;AAFW;AAHb;AAAA;AAAA;AAAA,wBAAS;AAML,SAAK,UAAU,QAAQ,KAAK,CAAC,GAAG,MAAM;AAClC,aAAO,EAAE,gBAAgB,EAAE;AAAA,IAC/B,CAAC;AAAA,EACL;AAAA,EAEA,aAAmB;AACf,UAAM,IAAI,KAAK,QAAQ,IAAI,CAAC,QAAQ;AAChC,YAAM,WAAW,IAAI,SAAS,eAAe,QAAW;AAAA,QACpD,OAAO;AAAA,MACX,CAAC;AACD,YAAM,OAAO,IAAI,cAAc,eAAe,QAAW;AAAA,QACrD,0BAA0B;AAAA,MAC9B,CAAC;AAED,aAAO;AAAA,QACH,MAAM,IAAI;AAAA,QACV,MAAM,GAAG,IAAI,QAAK,QAAQ;AAAA,QAC1B,SAAS,IAAI;AAAA,QACb,SAAS,KAAK,sBAAsB,GAAG;AAAA,MAC3C;AAAA,IACJ,CAAC;AAED,UAAM,QAAQ,EAAE,OAAY,CAAC,KAAK,OAAmB;AAAnB,mBAAE,OAzJ5C,IAyJ0C,IAAW,cAAX,IAAW,CAAT;AAChC,UAAI,IAAI,IAAI;AACZ,aAAO;AAAA,IACX,GAAG,CAAC,CAAC;AACL,YAAQ,IAAI,OAAO,KAAK,IAAI;AAC5B,YAAQ,MAAM,KAAK;AAAA,EACvB;AAAA,EAEA,sBAAsB,KAAkC;AAjK5D;AAkKQ,UAAM,YAAW,gBAAK,QAAQ,CAAC,MAAd,mBAAiB,kBAAjB,YAAkC;AACnD,UAAM,gBAAgB,IAAI,gBAAgB,WAAW;AACrD,WAAO,gBAAgB,OACjB,MACA,cAAc,eAAe,QAAW;AAAA,MACpC,OAAO;AAAA,IACX,CAAC,IAAI;AAAA,EACf;AACJ;AAEO,SAAS,eACZ,SACG,SACiB;AACpB,SAAO,IAAI,qBAAqB,MAAM,OAAO;AACjD;AAEA,IAAM,0BAA4C;AAAA,EAC9C,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,QAAQ;AACZ;AAEO,IAAM,aAAN,MAAM,WAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAanB,YACa,MACA,UACT,SACF;AAHW;AACA;AAZb,wBAAiB;AAeb,SAAK,UAAU,kCAAK,0BAA4B;AAAA,EACpD;AAAA,EAEA,MAAM,MAAoC;AACtC,UAAM,OAAO,KAAK;AAElB,UAAM,WAAU;AAEhB,UAAM,eAAe,KAAK,aAAa;AACvC,UAAM,aAAa,IAAI;AACvB,QAAI,UAAU;AACd,OAAG;AACC,YAAM,SAAS,KAAK,SAAS;AAG7B,gBAAU,WAAY,UAAU,OAAO,OAAO,SAAS;AACvD,UAAI,QAAS,OAAM;AAAA,IACvB,SAAS,IAAI,IAAI,aAAa;AAC9B,UAAM,kBAAgD,YAAY;AAC9D,YAAM,UAAU,IAAI,oBAAoB,KAAK,IAAI;AACjD,eAAS,IAAI,GAAG,IAAI,KAAK,QAAQ,KAAK;AAClC,cAAM,eAAe,MAAM,KAAK,SAAS,OAAO;AAChD,gBAAQ,IAAI,YAAY;AACxB,cAAM,UAAU;AAAA,MACpB;AACA,aAAO;AAAA,IACX,GAAG;AACH,eAAU,YAAY;AACtB,WAAO,MAAM;AAAA,EACjB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,MAAc,SAAS,SAAyC;AAC5D,UAAM,UAAU,KAAK,QAAQ,mBAAmB;AAChD,QAAI,MAAM;AACV,UAAM,aAAa,IAAI;AACvB,OAAG;AACC,YAAM,SAAS,KAAK,SAAS;AAC7B,UAAI,QAAS,OAAM;AACnB;AAAA,IACJ,SAAS,IAAI,IAAI,aAAa;AAC9B,UAAM,YAAY,IAAI,IAAI,cAAc;AACxC,WAAO;AAAA,MACH;AAAA,MACA;AAAA,IACJ;AAAA,EACJ;AACJ;AAtEI,cADS,YACM,aAA0B,UAAU;AADhD,IAAM,YAAN;AAgFA,SAAS,UACZ,MACA,UACA,SAC4B;AAC5B,QAAMA,aAAY,IAAI,UAAU,MAAM,UAAU,OAAO;AACvD,SAAOA,WAAU,IAAI,EAAE,KAAK,CAAC,YAAY;AACrC,YAAQ,IAAI,QAAQ,SAAS,CAAC;AAC9B,WAAO;AAAA,EACX,CAAC;AACL;AAKA,SAAS,YAA2B;AAChC,SAAO,IAAI,QAAQ,CAAC,YAAY;AAC5B,eAAW,OAAO;AAAA,EACtB,CAAC;AACL;AAOA,SAAS,kBAAkB,QAAmC;AAC1D,QAAM,MAAM,QAAQ,MAAM;AAC1B,QAAM,cAAc,OAAO,IAAI,CAAC,UAAU;AACtC,UAAM,OAAO,QAAQ;AACrB,WAAO,OAAO;AAAA,EAClB,CAAC;AACD,QAAM,gBAAgB,QAAQ,WAAW;AACzC,SAAO,KAAK,KAAK,aAAa;AAClC;AAOA,SAAS,QAAQ,QAAmC;AAChD,QAAM,MAAM,OAAO,OAAO,CAAC,KAAK,UAAU,MAAM,OAAO,CAAC;AACxD,SAAO,MAAM,OAAO;AACxB;;;AChTA,IAAI,4BAAqC;AAOlC,SAAS,eAAe,SAAiB;AAC5C,MAAI,kBAAiC;AACrC,aAAW,MAAM;AACb,sBAAkB,QAAQ;AAC1B,QAAI,CAAC;AACD,cAAQ,2BAA2B,UAAU;AAAA,EACrD,CAAC;AAED,YAAU,MAAM;AACZ,QAAI,gBAAiB,SAAQ,2BAA2B;AACxD,QAAI,0BAA2B,6BAA4B;AAAA,EAC/D,CAAC;AACL;AAQO,SAAS,mBAAmB,SAAiB;AAChD,8BAA4B;AAC5B,UAAQ,2BAA2B,UAAU;AACjD;;;ACxBO,SAAS,qBACZ,MACA,MACF;AACE,SAAO,MAAM,KAAK,IAAI,CAAC,EAAE,QAAQ,MAAM,KAAK,IAAI,CAAC;AACrD;;;ACRO,SAAS,gBAAgB;AAC5B,SAAO,IAAI,EAAE,WAAW;AAC5B;;;ACWO,SAAS,gBAAgB,YAAuB,SAAsB;AACzE,QAAM,IAAI,QAAQ;AAClB,UAAQ,QAAQ,CAAC,UAAU,OAAO,CAAC,EAAE,eAAe,KAAK,CAAC;AAC1D,QAAM,MAAM,MAAM,QAAQ,QAAQ,SAAS,CAAC,GAAG,MAAM;AACrD,MAAI,IAAI,YAAY,IAAI;AACxB,QAAM,KAAK,QAAQ;AACnB,UAAQ,QAAQ,CAAC,UAAU,OAAO,EAAE,EAAE,eAAe,KAAK,CAAC;AAC/D;;;ACAO,SAAS,yBACZ,UACI;AACJ,SAAO,IAAI,EAAE,SAAS;AAC1B;AASO,SAAS,iBACZ,UACI;AACJ,SAAO,IAAI,EAAE,SAAS;AAC1B;AAQO,SAAS,kBACZ,UACI;AACJ,SAAO,IAAI,EAAE,SAAS;AAC1B;AAMO,SAAS,iBAAuC;AACnD,SAAO,IAAI,EAAE,SAAS;AAC1B;AAMO,SAAS,kBAAyC;AACrD,SAAO,IAAI,EAAE,SAAS;AAC1B;;;AC9DO,SAAS,uBAAuB;AACnC,aAAW,WAAY;AACnB,YAAQ,YAAY;AAAA,MAChB,mBAAmB,WAA2B;AAC1C,eAAO;AAAA,UACH,SAAS,SACL,QACA,UACA,YAAoB,OAAO,SAC7B;AAEE,gBAAI,aAAa,MAAM;AACnB,oBAAM,IAAI,MAAM,mCAAmC;AAAA,YACvD;AAEA,kBAAM,OAAO,KAAK,IAAI,WAAW,MAAM,KAAK;AAC5C,kBAAM,UAAU,OACV,YAAY,MAAM,mBAAmB,QAAQ,mBAAmB,SAAS,KACzE,YAAY,MAAM,mBAAmB,QAAQ,mBAAmB,SAAS;AAE/E,mBAAO,EAAE,MAAY,QAAiB;AAAA,UAC1C;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL,CAAC;AACL;;;ACrBO,SAAS,oBAAoB;AAChC,uBAAqB;AACzB;;;ACEO,SAAS,MACZ,QACA,QAOF;AACE,MAAI,UAAU,QAAQ,OAAO,MAAM,KAAK,MAAM;AAC1C,UAAM,IAAI,MAAM,wBAAwB;AAAA,EAC5C;AACA,QAAM,MAAM,OAAO,MAAM;AACzB,MAAI,WAAW,KAAK;AAChB,WAAO;AAAA,EACX,OAAO;AACH,WAAO,MAAM,QAAQ,MAAa;AAAA,EACtC;AACJ;;;AClCA,IAAOC,aAAY,QAAQ;AAuCpB,SAAS,iBACZ,YACa;AACb,SAAO,CAAC,QAAyB;AAC7B,UAAM,MAAMA,WAAU,OAAO,GAAG,CAAC;AACjC,QAAI,WAAY,KAAI,IAAI,SAAS,WAAW,GAAG,CAAC;AAChD,WAAO;AAAA,EACX;AACJ;AAOO,SAASC,YACZ,KACiC;AACjC,SAAOD,WAAU,OAAO,GAAG,CAAC;AAChC;;;AChDO,IAAM,sBAAN,MAAqD;AAAA,EAArD;AACH;AAEA,iCAAQE,YAAqC,OAAO;AAAA;AACxD;AAEO,IAAM,kBAAN,MAA6C;AAAA,EAA7C;AACH,mCAAmB;AACnB,mCAA0D;AAC1D;AAEA,0CAAiBA,YAA0C,gBAAgB;AAC3E,4CACIA,YAA4C,kBAAkB;AAClE,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,yCAAgBA,YAAyC,eAAe;AAAA;AAC5E;AAEO,IAAM,mBAAN,MAA+C;AAAA,EAA/C;AACH,uCAAsB;AACtB,yCAAwB;AACxB;AACA,uCAAsB;AACtB;AACA;AACA,yCAAqE;AACrE,sCAAqB;AACrB,iCAA2B;AAE3B,iCAAQA,YAAkC,OAAO;AACjD,oDAA2BA,YAEzB,0BAA0B;AAC5B,wDAA+BA,YAE7B,8BAA8B;AAChC,mDAA0BA,YAExB,yBAAyB;AAC3B,8CACIA,YAA+C,oBAAoB;AACvE,kCAASA,YAAmC,QAAQ;AACpD,mCAAUA,YAAoC,SAAS;AACvD,4CACIA,YAA6C,kBAAkB;AACnE,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,0CACIA,YAA2C,gBAAgB;AAC/D,8CACIA,YAA+C,oBAAoB;AACvE,wCAAeA,YAAyC,cAAc;AACtE,8CACIA,YAA+C,oBAAoB;AACvE,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,iDAAwBA;AAAA,MACpB;AAAA,IACJ;AACA,gDAAuBA;AAAA,MACnB;AAAA,IACJ;AACA,2CACIA,YAA4C,iBAAiB;AACjE,uCAAcA,YAAwC,aAAa;AACnE,oDAA2BA,YAEzB,0BAA0B;AAC5B,sCAAaA,YAAuC,YAAY;AAChE,2CACIA,YAA4C,iBAAiB;AACjE,4CACIA,YAA6C,kBAAkB;AACnE,wCAAeA,YAAyC,cAAc;AACtE,8CACIA,YAA+C,oBAAoB;AACvE,iDAAwBA;AAAA,MACpB;AAAA,IACJ;AACA,8CACIA,YAA+C,oBAAoB;AACvE,4CACIA,YAA6C,kBAAkB;AACnE,2CACIA,YAA4C,iBAAiB;AACjE,yCAAgBA,YAA0C,eAAe;AAAA;AAC7E;AAEO,IAAM,YAAN,MAAiC;AAAA,EAAjC;AACH,+BAAMA,YAAyB,KAAK;AACpC,kCAASA,YAA4B,QAAQ;AAC7C,kCAASA,YAA4B,QAAQ;AAC7C,gCAAOA,YAA0B,MAAM;AACvC,iCAAQA,YAA2B,OAAO;AAC1C,oCAAWA,YAA8B,UAAU;AACnD,+BAAMA,YAAyB,KAAK;AAAA;AACxC;AAEO,IAAM,mBAAN,MAA+C;AAAA,EAA/C;AACH,kCAASA,YAAmC,QAAQ;AACpD,+BAAMA,YAAgC,KAAK;AAC3C,gCAAOA,YAAiC,MAAM;AAC9C,iCAAQA,YAAkC,OAAO;AACjD,gCAAOA,YAAiC,MAAM;AAAA;AAClD;AAEO,IAAM,kBAAN,MAAyD;AAAA,EAAzD;AACH;AACA,mCAAmB;AACnB,wCAAwB;AACxB,sCAAsB;AACtB,oCAAoB;AACpB,yCAAoC;AACpC,4CAA4B;AAC5B,sCAAqB;AACrB,qCAAqB;AACrB,uCAAuB;AACvB,sCAAiC;AACjC,kCAA6B;AAC7B,qCAAiC;AACjC,gCAAe;AACf,gCAAU;AACV,2CAAqB;AACrB,qCAAe;AACf,0CAAoB;AAEpB,2CACIA,YAA8C,iBAAiB;AACnE,wCAAeA,YAA2C,cAAc;AACxE,qCAAYA,YAAwC,WAAW;AAC/D,0CACIA,YAA6C,gBAAgB;AACjE,oDAA2BA,YAEzB,0BAA0B;AAC5B,2CACIA,YAA8C,iBAAiB;AAAA;AACvE;AAEO,IAAM,eAAN,MAAuC;AAAA,EAAvC;AACH,+BAAc;AACd,sCAAqB;AACrB;AACA;AACA;AACA,mCAAkB;AAClB;AACA,wCAAuB;AACvB,mCAAkB;AAClB,sCAAqB;AACrB,uCAAsB;AACtB,kCAAiB;AACjB;AACA;AACA,sCAAqB;AACrB,+BAAc;AACd,mCAA+B;AAC/B;AACA,uCAAsB;AACtB,kCAAiB;AACjB;AACA,mCAAkB;AAClB;AACA;AACA,sCAAsB;AACtB,6CAA6B;AAC7B;AACA,kCAAkB;AAClB;AACA;AACA,yCAAwB;AACxB,wCAAuB;AACvB,qCAAoB;AACpB;AAEA,8CAAkE;AAClE,6CAAiE;AACjE,+CAAmE;AACnE,8CAAkE;AAClE,8CAAkE;AAClE,8CAAkE;AAClE,yCAAsB;AACtB,mDAAmC;AACnC;AACA,sCAAiC;AACjC,oCAAmB;AACnB,uCAAoC;AACpC;AACA,4CAAmC;AACnC;AACA,iCAAgB;AAChB,2CAA2C;AAC3C,sCAAqB;AACrB;AACA,uCAAoB;AACpB,mCAAkB;AAClB;AACA,sCAA+B;AAC/B,uCAAuB;AACvB,qCAA8B;AAC9B,uCAAgC;AAChC,oCAAmB;AACnB,oCAAmB;AACnB,qCAA2B;AAC3B,yCAAoC;AACpC,sCAAgC;AAChC,2CAAoC;AACpC,wCAAkB;AAClB,0CAAoB;AACpB,qCAAe;AACf,8CAAwB;AACxB,iDAA2B;AAC3B,uCAAiB;AACjB,uDAAiC;AACjC,wCAAkB;AAClB,yCAAmB;AACnB,8CAAyB;AACzB,kDAA6B;AAC7B,yCAAoB;AACpB,0DAAuC;AACvC,uDAAoC;AACpC,uDAAoC;AACpC,sDAAmC;AACnC,0DAAuC;AACvC,qEAAkD;AAClD,yCAAgC;AAChC,8CAAsC,CAAC;AACvC,6CAAoC;AACpC,mDAA0C;AAC1C,8CAAqC;AACrC;AACA;AACA,mCAAoE;AACpE,6CAEa;AACb,0CAEa;AACb,gDAEa;AACb,4CAEa;AACb,sCACI;AACJ,yCACI;AACJ,yCAAwE;AACxE,0CAEa;AACb,kCAAsE;AACtE,oCAAmE;AACnE,qCAAoE;AACpE,4CACI;AACJ,oCAAmE;AACnE,mCACI;AACJ,mCAAkE;AAClE,yCAAwE;AACxE,yCAEa;AACb,6CACI;AACJ,kCACI;AACJ,uCAAsE;AACtE,iCACI;AACJ,sCACI;AACJ,kCAAqE;AACrE,qCAAwE;AACxE,uCACI;AACJ,uCACI;AACJ,sCACI;AACJ,uCACI;AACJ,kCAAqE;AACrE,4CACI;AACJ,qCAAoE;AACpE,mCAAkE;AAClE;AACA,mCAAuE;AACvE,sCACI;AACJ,+CAEa;AACb,mCAAkE;AAClE,qCAAoE;AACpE,qCACI;AACJ,sCACI;AACJ,mCACI;AACJ,kCAAiE;AACjE,wCAAuE;AACvE,4CACI;AACJ,uCAAsE;AACtE,gDAEa;AACb,uCACI;AACJ,wCACI;AACJ,wCACI;AACJ,uCACI;AACJ,sCACI;AACJ,uCACI;AACJ,qCACI;AACJ,mCACI;AACJ,mCAAkE;AAClE,kCAAiE;AACjE,qCAAoE;AACpE,2CAEa;AACb,yCAEa;AACb,0CAEa;AACb,0CAEa;AACb,yCAEa;AACb,wCAEa;AACb,yCAEa;AACb,8CACI;AACJ,uCACI;AACJ,sCACI;AACJ,wCAAuE;AACvE,mCAAkE;AAClE,oCAAqE;AACrE,oCAAmE;AACnE,uCAAsE;AACtE,qDAEa;AACb,oCAAmE;AACnE,qCAAoE;AACpE,oCAAmE;AACnE,6CACI;AACJ,yCAAwE;AACxE,wCAAuE;AACvE,qCAAoE;AACpE,oCACI;AACJ,qCAAoE;AACpE,wCAAuE;AACvE,oCACI;AACJ,8CAEa;AACb,2CAEa;AACb,2CAEa;AACb,6CAEa;AACb,0CACI;AACJ,qCAAoE;AACpE,gDAEa;AACb,sDAEa;AACb,kDAEa;AACb,iDAEa;AACb,mCAAuE;AACvE,6CAA4B;AAC5B;AACA,6CAAoC;AACpC,4CAAmC;AAEnC,qCAAYA,YAAkC,WAAW;AACzD,yCAAgBA,YAAsC,eAAe;AACrE,kDAAyBA;AAAA,MACrB;AAAA,IACJ;AACA,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,iCAAQA,YAA8B,OAAO;AAC7C,iCAAQA,YAA8B,OAAO;AAC7C,2CAAkBA,YAAwC,iBAAiB;AAC3E,6CACIA,YAA0C,mBAAmB;AACjE,8CACIA,YAA2C,oBAAoB;AACnE,yCAAgBA,YAAsC,eAAe;AACrE,kDAAyBA;AAAA,MACrB;AAAA,IACJ;AACA,yCAAgBA,YAAsC,eAAe;AACrE,2CAAkBA,YAAwC,iBAAiB;AAC3E,uCAAcA,YAAoC,aAAa;AAC/D,8CACIA,YAA2C,oBAAoB;AACnE,uDAA8BA,YAE5B,6BAA6B;AAC/B,uCAAcA,YAAoC,aAAa;AAC/D,0CAAiBA,YAAuC,gBAAgB;AACxE,4CACIA,YAAyC,kBAAkB;AAC/D,uCAAcA,YAAoC,aAAa;AAC/D,0CAAiBA,YAAuC,gBAAgB;AACxE,gDAAuBA;AAAA,MACnB;AAAA,IACJ;AACA,2CAAkBA,YAAwC,iBAAiB;AAC3E,0CAAiBA,YAAuC,gBAAgB;AACxE,kDAAyBA;AAAA,MACrB;AAAA,IACJ;AACA,6CACIA,YAA0C,mBAAmB;AACjE,gDAAuBA;AAAA,MACnB;AAAA,IACJ;AACA,kDAAyBA;AAAA,MACrB;AAAA,IACJ;AACA,wCAAeA,YAAqC,cAAc;AAClE,oCAAWA,YAAiC,UAAU;AACtD,4CACIA,YAAyC,kBAAkB;AAC/D,sCAAaA,YAAmC,YAAY;AAC5D,gCAAOA,YAA6B,MAAM;AAC1C,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,gDAAuBA;AAAA,MACnB;AAAA,IACJ;AACA,6CACIA,YAA0C,mBAAmB;AACjE,iDAAwBA;AAAA,MACpB;AAAA,IACJ;AACA,6CACIA,YAA0C,mBAAmB;AACjE,yCAAgBA,YAAsC,eAAe;AACrE,gDAAuBA;AAAA,MACnB;AAAA,IACJ;AACA,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,iCAAQA,YAA8B,OAAO;AAC7C,mCAAUA,YAAgC,SAAS;AACnD,4CACIA,YAAyC,kBAAkB;AAC/D,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,uCAAcA,YAAoC,aAAa;AAC/D,qCAAYA,YAAkC,WAAW;AACzD,mDAA0BA;AAAA,MACtB;AAAA,IACJ;AACA,oCAAWA,YAAiC,UAAU;AACtD,uCAAcA,YAAoC,aAAa;AAC/D,yCAAgBA,YAAsC,eAAe;AACrE,wCAAeA,YAAqC,cAAc;AAClE,8CACIA,YAA2C,oBAAoB;AACnE,uCAAcA,YAAoC,aAAa;AAC/D,sCAAaA,YAAmC,YAAY;AAC5D,8CACIA,YAA2C,oBAAoB;AACnE,wCAAeA,YAAqC,cAAc;AAClE,qCAAYA,YAAkC,WAAW;AACzD,uCAAcA,YAAoC,aAAa;AAC/D,wCAAeA,YAAqC,cAAc;AAClE,4CACIA,YAAyC,kBAAkB;AAC/D,6CACIA,YAA0C,mBAAmB;AACjE,yCAAgBA,YAAsC,eAAe;AACrE,kCAASA,YAA+B,QAAQ;AAChD,mCAAUA,YAAgC,SAAS;AACnD,yCAAgBA,YAAsC,eAAe;AACrE,4CACIA,YAAyC,kBAAkB;AAC/D,2CAAkBA,YAAwC,iBAAiB;AAC3E,4CACIA,YAAyC,kBAAkB;AAC/D,4CACIA,YAAyC,kBAAkB;AAC/D,oCAAWA,YAAiC,UAAU;AACtD,yCAAgBA,YAAsC,eAAe;AAAA;AACzE;AAEO,IAAM,iBAAN,MAA2C;AAAA,EAA3C;AACH,iCAAgB;AAChB;AACA,oCAAmB;AACnB,kCAAiB;AACjB,mCAAkB;AAClB,mCAAmB;AACnB,wCAAwB;AACxB,sCAAsB;AACtB,oCAAoB;AACpB,yCAAoC;AACpC,4CAA4B;AAC5B,sCAAqB;AACrB,qCAAqB;AACrB,uCAAuB;AACvB,sCAAiC;AACjC,kCAA6B;AAC7B,qCAAiC;AACjC,gCAAe;AACf,gCAAU;AACV,2CAAqB;AACrB,qCAAe;AACf,0CAAoB;AAEpB,wCAAeA,YAAuC,cAAc;AACpE,qCAAYA,YAAoC,WAAW;AAC3D,0CAAiBA,YAAyC,gBAAgB;AAC1E,oDAA2BA,YAEzB,0BAA0B;AAC5B,2CACIA,YAA0C,iBAAiB;AAAA;AACnE;AAEO,IAAM,YAAN,MAAiC;AAAA,EAAjC;AACH,mCAAmB;AACnB,wCAAwB;AACxB,sCAAsB;AACtB,oCAAoB;AACpB,yCAAoC;AACpC,4CAA4B;AAC5B,sCAAqB;AACrB,qCAAqB;AACrB,uCAAuB;AACvB,sCAAiC;AACjC,kCAA6B;AAC7B,qCAAiC;AACjC,gCAAe;AACf,gCAAU;AACV,2CAAqB;AACrB,qCAAe;AACf,0CAAoB;AAEpB,wCAAeA,YAAkC,cAAc;AAC/D,qCAAYA,YAA+B,WAAW;AACtD,0CAAiBA,YAAoC,gBAAgB;AACrE,oDAA2BA;AAAA,MACvB;AAAA,IACJ;AACA,2CAAkBA,YAAqC,iBAAiB;AAAA;AAC5E;AAEO,IAAM,kBAAN,MAA6C;AAAA,EAA7C;AACH,4CACIA,YAA4C,kBAAkB;AAClE,yCAAgBA,YAAyC,eAAe;AACxE,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AAAA;AACJ;AAEO,IAAM,uBAAN,MAAuD;AAAA,EAAvD;AACH,oCAAoB;AACpB;AACA,oCAAoB;AACpB,uCAA6B;AAC7B,sCAAqB;AACrB,uCAAsB;AACtB,wCAAwB;AACxB,+CAA8B;AAC9B,iDAAiC;AACjC,oCAAmB;AACnB,iCAAiB;AACjB,iCAA2B;AAC3B,gCAAgB;AAChB,qCAA8B;AAC9B,iCAAiB;AACjB,wCAAuB;AACvB,uCAEa;AACb,2CAAuE;AACvE,kCAAkB;AAClB,wCAAuB;AACvB;AACA,mCAA6C;AAC7C,0CAA0B;AAC1B,sCAAqB;AACrB;AACA;AACA,mCAAmB;AACnB,kCAAiB;AACjB,+BAAc;AACd;AACA;AACA,kCAAiB;AACjB,yCAAmB;AACnB,wCAAkB;AAClB,2CAAqB;AACrB,6CAAuB;AACvB,wCAAkB;AAClB,yCAAmB;AACnB,6CAAuB;AACvB,4CAAsB;AACtB,4CAAsB;AACtB,qCAAoB;AACpB,0CAAyB;AACzB,0CAAyB;AACzB,uCAAuB;AACvB,+BAAc;AACd,qCAAqB;AACrB,kCAAkB;AAClB,iCAAiB;AACjB,qCAAoB;AACpB,gCAAe;AACf,wCAAuB;AACvB,sCAAqB;AACrB,wCAA+B;AAC/B,qCAAoB;AACpB,uCAAsB;AACtB,qCAAoB;AACpB,mCAAyB;AACzB,sCAAsB;AACtB,iCAAgB;AAChB,qCAAqB;AACrB,8CAA6B;AAC7B;AACA,qCAAoB;AACpB,wCAAuB;AACvB,sCAAqB;AACrB,qCAAoB;AACpB,uCAAsB;AACtB,0CAAyB;AACzB,8BAAa;AACb,qCAAoB;AACpB,qCAAoB;AACpB,wCAA8B;AAC9B,8CAAiE;AACjE,6CAAgE;AAChE,qCAAoB;AACpB;AACA,kCAAwB;AACxB,wCAAuB;AACvB,sCAAqB;AACrB,qCAAoB;AACpB,uCAAsB;AACtB,sCAAgC;AAChC,gCAAe;AACf,mCAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,2CAA0B;AAC1B,wCAAuB;AACvB,qCAAoB;AACpB,6CAA6B;AAC7B,mCAAoE;AACpE,6CAEa;AACb,0CAEa;AACb,gDAEa;AACb,4CAEa;AACb,sCACI;AACJ,yCACI;AACJ,yCAAwE;AACxE,0CAEa;AACb,kCAAsE;AACtE,oCAAmE;AACnE,qCAAoE;AACpE,4CACI;AACJ,oCAAmE;AACnE,mCACI;AACJ,mCAAkE;AAClE,yCAAwE;AACxE,yCAEa;AACb,6CACI;AACJ,kCACI;AACJ,uCAAsE;AACtE,iCACI;AACJ,sCACI;AACJ,kCAAqE;AACrE,qCAAwE;AACxE,uCACI;AACJ,uCACI;AACJ,sCACI;AACJ,uCACI;AACJ,kCAAqE;AACrE,4CACI;AACJ,qCAAoE;AACpE,mCAAkE;AAClE;AACA,mCAAuE;AACvE,sCACI;AACJ,+CAEa;AACb,mCAAkE;AAClE,qCAAoE;AACpE,qCACI;AACJ,sCACI;AACJ,mCACI;AACJ,kCAAiE;AACjE,wCAAuE;AACvE,4CACI;AACJ,uCAAsE;AACtE,gDAEa;AACb,uCACI;AACJ,wCACI;AACJ,wCACI;AACJ,uCACI;AACJ,sCACI;AACJ,uCACI;AACJ,qCACI;AACJ,mCACI;AACJ,mCAAkE;AAClE,kCAAiE;AACjE,qCAAoE;AACpE,2CAEa;AACb,yCAEa;AACb,0CAEa;AACb,0CAEa;AACb,yCAEa;AACb,wCAEa;AACb,yCAEa;AACb,8CACI;AACJ,uCACI;AACJ,sCACI;AACJ,wCAAuE;AACvE,mCAAkE;AAClE,oCAAqE;AACrE,oCAAmE;AACnE,uCAAsE;AACtE,qDAEa;AACb,oCAAmE;AACnE,qCAAoE;AACpE,oCAAmE;AACnE,6CACI;AACJ,yCAAwE;AACxE,wCAAuE;AACvE,qCAAoE;AACpE,oCACI;AACJ,qCAAoE;AACpE,wCAAuE;AACvE,oCACI;AACJ,8CAEa;AACb,2CAEa;AACb,2CAEa;AACb,6CAEa;AACb,0CACI;AACJ,qCAAoE;AACpE,gDAEa;AACb,sDAEa;AACb,kDAEa;AACb,iDAEa;AACb,mCAAuE;AACvE,qCAAqB;AACrB;AACA,oCAAmB;AACnB,mCAAkB;AAClB;AACA,sCAA+B;AAC/B,uCAAuB;AACvB,qCAA8B;AAC9B,uCAAgC;AAChC,oCAAmB;AACnB,oCAAmB;AACnB,qCAA2B;AAC3B,yCAAoC;AACpC,sCAAgC;AAChC,2CAAoC;AACpC,wCAAkB;AAClB,0CAAoB;AACpB,qCAAe;AACf,8CAAwB;AACxB,iDAA2B;AAC3B,uCAAiB;AACjB,uDAAiC;AACjC,wCAAkB;AAClB,yCAAmB;AACnB,8CAAyB;AACzB,kDAA6B;AAC7B,yCAAoB;AACpB,0DAAuC;AACvC,uDAAoC;AACpC,uDAAoC;AACpC,sDAAmC;AACnC,0DAAuC;AACvC,qEAAkD;AAClD,uDAA8C;AAC9C,sCAA4B;AAC5B,4CAAkC;AAClC,4CAAkC;AAClC,sDAA4C;AAC5C,oCAA0B;AAC1B,uCAA6B;AAC7B,wCAA8B;AAC9B,wCAA8B;AAC9B,4CAAkC;AAClC,uCAA6B;AAC7B,gDAAsD;AACtD,uCAA6B;AAC7B,mDAAyD;AACzD,2CAAiC;AACjC,+CAAqD;AACrD,wCAA8B;AAC9B,oDAA0D;AAC1D,wCAA8B;AAC9B,8CAAoD;AACpD,wCAA8B;AAC9B,sCAA4B;AAC5B,uCAA6B;AAC7B,4CAAkC;AAClC,qCAA2B;AAC3B,kDAAwD;AACxD,qCAA2B;AAC3B,oCAA0B;AAC1B,qCAA2B;AAC3B,yCAA+B;AAC/B,+CAAqC;AACrC,2CAAiC;AACjC,4CAAkD;AAClD,2CAAiC;AACjC,wCAA8B;AAC9B,uCAA6B;AAC7B,wCAA8B;AAC9B,wCAA8B;AAC9B,wCAA8B;AAC9B,+CAAqC;AACrC,wCAA8B;AAC9B,wCAA8B;AAC9B,4CAAkC;AAClC,uCAA6B;AAC7B,wCAA8B;AAC9B,uCAA6B;AAC7B,oCAA0B;AAC1B,wCAA8B;AAC9B,wCAA8B;AAC9B,wCAA8B;AAC9B,yCAA+B;AAC/B,gCAAsB;AACtB,8CAAqC;AACrC,kDAAyC;AACzC,6CAA4B;AAC5B;AACA,6CAAoC;AACpC,4CAAmC;AACnC,wCAAuC;AAEvC,4CACIA,YAAiD,kBAAkB;AACvE,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,wCAAeA,YAA6C,cAAc;AAC1E,uCAAcA,YAA4C,aAAa;AACvE,oCAAWA,YAAyC,UAAU;AAC9D,gCAAOA,YAAqC,MAAM;AAClD,iCAAQA,YAAsC,OAAO;AACrD,gCAAOA,YAAqC,MAAM;AAClD,wCAAeA,YAA6C,cAAc;AAC1E,qCAAYA,YAA0C,WAAW;AACjE,2CACIA,YAAgD,iBAAiB;AACrE,iCAAQA,YAAsC,OAAO;AACrD,uCAAcA,YAA4C,aAAa;AACvE,uCAAcA,YAA4C,aAAa;AACvE,yCACIA,YAA8C,eAAe;AACjE,wCAAeA,YAA6C,cAAc;AAC1E,2CACIA,YAAgD,iBAAiB;AACrE,mCAAUA,YAAwC,SAAS;AAC3D,4CACIA,YAAiD,kBAAkB;AACvE,wCAAeA,YAA6C,cAAc;AAC1E,0CACIA,YAA+C,gBAAgB;AACnE,6CACIA,YAAkD,mBAAmB;AACzE,4CACIA,YAAiD,kBAAkB;AACvE,8CACIA,YAAmD,oBAAoB;AAC3E,iDAAwBA,YAEtB,uBAAuB;AACzB,0CACIA,YAA+C,gBAAgB;AACnE,kDAAyBA,YAEvB,wBAAwB;AAC1B,gDAAuBA;AAAA,MACnB;AAAA,IACJ;AACA,kDAAyBA,YAEvB,wBAAwB;AAC1B,mCAAUA,YAAwC,SAAS;AAC3D,wCAAeA,YAA6C,cAAc;AAC1E,0CACIA,YAA+C,gBAAgB;AACnE,yCACIA,YAA8C,eAAe;AACjE,6CACIA,YAAkD,mBAAmB;AACzE,iDAAwBA,YAEtB,uBAAuB;AACzB,8CACIA,YAAmD,oBAAoB;AAC3E,8CACIA,YAAmD,oBAAoB;AAC3E,mCAAUA,YAAwC,SAAS;AAC3D,iDAAwBA,YAEtB,uBAAuB;AACzB,2CACIA,YAAgD,iBAAiB;AACrE,6CACIA,YAAkD,mBAAmB;AACzE,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,6CACIA,YAAkD,mBAAmB;AACzE,8CACIA,YAAmD,oBAAoB;AAC3E,kCAASA,YAAuC,QAAQ;AACxD,oCAAWA,YAAyC,UAAU;AAC9D,0CACIA,YAA+C,gBAAgB;AACnE,oCAAWA,YAAyC,UAAU;AAC9D,wCAAeA,YAA6C,cAAc;AAC1E,0CACIA,YAA+C,gBAAgB;AACnE,4CACIA,YAAiD,kBAAkB;AACvE,8CACIA,YAAmD,oBAAoB;AAC3E,yCACIA,YAA8C,eAAe;AACjE,6CACIA,YAAkD,mBAAmB;AACzE,2CACIA,YAAgD,iBAAiB;AACrE,iDAAwBA,YAEtB,uBAAuB;AACzB,gCAAOA,YAAqC,MAAM;AAClD,iCAAQA,YAAsC,OAAO;AACrD,uCAAcA,YAA4C,aAAa;AACvE,qCAAYA,YAA0C,WAAW;AACjE,mDAA0BA,YAExB,yBAAyB;AAC3B,oCAAWA,YAAyC,UAAU;AAC9D,uCAAcA,YAA4C,aAAa;AACvE,yCACIA,YAA8C,eAAe;AACjE,wCAAeA,YAA6C,cAAc;AAC1E,8CACIA,YAAmD,oBAAoB;AAC3E,uCAAcA,YAA4C,aAAa;AACvE,sCAAaA,YAA2C,YAAY;AACpE,8CACIA,YAAmD,oBAAoB;AAC3E,wCAAeA,YAA6C,cAAc;AAC1E,qCAAYA,YAA0C,WAAW;AACjE,uCAAcA,YAA4C,aAAa;AACvE,wCAAeA,YAA6C,cAAc;AAC1E,mCAAUA,YAAwC,SAAS;AAC3D,yCACIA,YAA8C,eAAe;AACjE,iCAAQA,YAAsC,OAAO;AACrD,kCAASA,YAAuC,QAAQ;AACxD,kCAASA,YAAuC,QAAQ;AACxD,uCAAcA,YAA4C,aAAa;AACvE,kCAASA,YAAuC,QAAQ;AACxD,mCAAUA,YAAwC,SAAS;AAC3D,yCACIA,YAA8C,eAAe;AACjE,4CACIA,YAAiD,kBAAkB;AACvE,2CACIA,YAAgD,iBAAiB;AACrE,yCACIA,YAA8C,eAAe;AAAA;AACrE;AAEO,IAAM,qBAAN,MAAmD;AAAA,EAAnD;AACH,iCAAgB;AAChB,qCAAoB;AACpB,0CAAyB;AACzB,0CAAyB;AACzB,uCAAuB;AACvB,+BAAc;AACd,qCAAqB;AACrB,kCAAkB;AAClB,iCAAiB;AACjB,qCAAoB;AACpB,gCAAe;AACf,wCAAuB;AACvB,sCAAqB;AACrB,wCAA+B;AAC/B,qCAAoB;AACpB,uCAAsB;AACtB,qCAAoB;AACpB,mCAAyB;AACzB,sCAAsB;AACtB,iCAAgB;AAChB,qCAAqB;AACrB,8CAA6B;AAC7B;AACA,qCAAoB;AACpB,wCAAuB;AACvB,sCAAqB;AACrB,qCAAoB;AACpB,uCAAsB;AACtB,0CAAyB;AACzB,8BAAa;AACb,qCAAoB;AACpB,qCAAoB;AACpB,wCAA8B;AAC9B,8CAAiE;AACjE,6CAAgE;AAChE,qCAAoB;AACpB;AACA,kCAAwB;AACxB,wCAAuB;AACvB,sCAAqB;AACrB,qCAAoB;AACpB,uCAAsB;AACtB,sCAAgC;AAChC,gCAAe;AACf,mCAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,2CAA0B;AAC1B,wCAAuB;AACvB,qCAAoB;AACpB,6CAA6B;AAC7B,mCAAoE;AACpE,6CAEa;AACb,0CAEa;AACb,gDAEa;AACb,4CAEa;AACb,sCACI;AACJ,yCACI;AACJ,yCAAwE;AACxE,0CAEa;AACb,kCAAsE;AACtE,oCAAmE;AACnE,qCAAoE;AACpE,4CACI;AACJ,oCAAmE;AACnE,mCACI;AACJ,mCAAkE;AAClE,yCAAwE;AACxE,yCAEa;AACb,6CACI;AACJ,kCACI;AACJ,uCAAsE;AACtE,iCACI;AACJ,sCACI;AACJ,kCAAqE;AACrE,qCAAwE;AACxE,uCACI;AACJ,uCACI;AACJ,sCACI;AACJ,uCACI;AACJ,kCAAqE;AACrE,4CACI;AACJ,qCAAoE;AACpE,mCAAkE;AAClE;AACA,mCAAuE;AACvE,sCACI;AACJ,+CAEa;AACb,mCAAkE;AAClE,qCAAoE;AACpE,qCACI;AACJ,sCACI;AACJ,mCACI;AACJ,kCAAiE;AACjE,wCAAuE;AACvE,4CACI;AACJ,uCAAsE;AACtE,gDAEa;AACb,uCACI;AACJ,wCACI;AACJ,wCACI;AACJ,uCACI;AACJ,sCACI;AACJ,uCACI;AACJ,qCACI;AACJ,mCACI;AACJ,mCAAkE;AAClE,kCAAiE;AACjE,qCAAoE;AACpE,2CAEa;AACb,yCAEa;AACb,0CAEa;AACb,0CAEa;AACb,yCAEa;AACb,wCAEa;AACb,yCAEa;AACb,8CACI;AACJ,uCACI;AACJ,sCACI;AACJ,wCAAuE;AACvE,mCAAkE;AAClE,oCAAqE;AACrE,oCAAmE;AACnE,uCAAsE;AACtE,qDAEa;AACb,oCAAmE;AACnE,qCAAoE;AACpE,oCAAmE;AACnE,6CACI;AACJ,yCAAwE;AACxE,wCAAuE;AACvE,qCAAoE;AACpE,oCACI;AACJ,qCAAoE;AACpE,wCAAuE;AACvE,oCACI;AACJ,8CAEa;AACb,2CAEa;AACb,2CAEa;AACb,6CAEa;AACb,0CACI;AACJ,qCAAoE;AACpE,gDAEa;AACb,sDAEa;AACb,kDAEa;AACb,iDAEa;AACb,mCAAuE;AACvE,qCAAqB;AACrB;AACA,oCAAmB;AACnB,mCAAkB;AAClB;AACA,sCAA+B;AAC/B,uCAAuB;AACvB,qCAA8B;AAC9B,uCAAgC;AAChC,oCAAmB;AACnB,oCAAmB;AACnB,qCAA2B;AAC3B,yCAAoC;AACpC,sCAAgC;AAChC,2CAAoC;AACpC,wCAAkB;AAClB,0CAAoB;AACpB,qCAAe;AACf,8CAAwB;AACxB,iDAA2B;AAC3B,uCAAiB;AACjB,uDAAiC;AACjC,wCAAkB;AAClB,yCAAmB;AACnB,8CAAyB;AACzB,kDAA6B;AAC7B,yCAAoB;AACpB,0DAAuC;AACvC,uDAAoC;AACpC,uDAAoC;AACpC,sDAAmC;AACnC,0DAAuC;AACvC,qEAAkD;AAClD,uDAA8C;AAC9C,sCAA4B;AAC5B,4CAAkC;AAClC,4CAAkC;AAClC,sDAA4C;AAC5C,oCAA0B;AAC1B,uCAA6B;AAC7B,wCAA8B;AAC9B,wCAA8B;AAC9B,4CAAkC;AAClC,uCAA6B;AAC7B,gDAAsD;AACtD,uCAA6B;AAC7B,mDAAyD;AACzD,2CAAiC;AACjC,+CAAqD;AACrD,wCAA8B;AAC9B,oDAA0D;AAC1D,wCAA8B;AAC9B,8CAAoD;AACpD,wCAA8B;AAC9B,sCAA4B;AAC5B,uCAA6B;AAC7B,4CAAkC;AAClC,qCAA2B;AAC3B,kDAAwD;AACxD,qCAA2B;AAC3B,oCAA0B;AAC1B,qCAA2B;AAC3B,yCAA+B;AAC/B,+CAAqC;AACrC,2CAAiC;AACjC,4CAAkD;AAClD,2CAAiC;AACjC,wCAA8B;AAC9B,uCAA6B;AAC7B,wCAA8B;AAC9B,wCAA8B;AAC9B,wCAA8B;AAC9B,+CAAqC;AACrC,wCAA8B;AAC9B,wCAA8B;AAC9B,4CAAkC;AAClC,uCAA6B;AAC7B,wCAA8B;AAC9B,uCAA6B;AAC7B,oCAA0B;AAC1B,wCAA8B;AAC9B,wCAA8B;AAC9B,wCAA8B;AAC9B,yCAA+B;AAC/B,gCAAsB;AACtB,8CAAqC;AACrC,kDAAyC;AACzC,6CAA4B;AAC5B;AACA,6CAAoC;AACpC,4CAAmC;AACnC,wCAAuC;AAEvC,4CACIA,YAA+C,kBAAkB;AACrE,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,2CACIA,YAA8C,iBAAiB;AACnE,iCAAQA,YAAoC,OAAO;AACnD,uCAAcA,YAA0C,aAAa;AACrE,uCAAcA,YAA0C,aAAa;AACrE,yCAAgBA,YAA4C,eAAe;AAC3E,wCAAeA,YAA2C,cAAc;AACxE,2CACIA,YAA8C,iBAAiB;AACnE,mCAAUA,YAAsC,SAAS;AACzD,4CACIA,YAA+C,kBAAkB;AACrE,wCAAeA,YAA2C,cAAc;AACxE,0CACIA,YAA6C,gBAAgB;AACjE,6CACIA,YAAgD,mBAAmB;AACvE,4CACIA,YAA+C,kBAAkB;AACrE,8CACIA,YAAiD,oBAAoB;AACzE,iDAAwBA;AAAA,MACpB;AAAA,IACJ;AACA,0CACIA,YAA6C,gBAAgB;AACjE,kDAAyBA,YAEvB,wBAAwB;AAC1B,gDAAuBA;AAAA,MACnB;AAAA,IACJ;AACA,kDAAyBA,YAEvB,wBAAwB;AAC1B,mCAAUA,YAAsC,SAAS;AACzD,wCAAeA,YAA2C,cAAc;AACxE,0CACIA,YAA6C,gBAAgB;AACjE,yCAAgBA,YAA4C,eAAe;AAC3E,6CACIA,YAAgD,mBAAmB;AACvE,iDAAwBA;AAAA,MACpB;AAAA,IACJ;AACA,8CACIA,YAAiD,oBAAoB;AACzE,8CACIA,YAAiD,oBAAoB;AACzE,mCAAUA,YAAsC,SAAS;AACzD,iDAAwBA;AAAA,MACpB;AAAA,IACJ;AACA,2CACIA,YAA8C,iBAAiB;AACnE,6CACIA,YAAgD,mBAAmB;AACvE,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,6CACIA,YAAgD,mBAAmB;AACvE,8CACIA,YAAiD,oBAAoB;AACzE,kCAASA,YAAqC,QAAQ;AACtD,oCAAWA,YAAuC,UAAU;AAC5D,0CACIA,YAA6C,gBAAgB;AACjE,oCAAWA,YAAuC,UAAU;AAC5D,wCAAeA,YAA2C,cAAc;AACxE,0CACIA,YAA6C,gBAAgB;AACjE,4CACIA,YAA+C,kBAAkB;AACrE,8CACIA,YAAiD,oBAAoB;AACzE,yCAAgBA,YAA4C,eAAe;AAC3E,6CACIA,YAAgD,mBAAmB;AACvE,2CACIA,YAA8C,iBAAiB;AACnE,iDAAwBA;AAAA,MACpB;AAAA,IACJ;AACA,gCAAOA,YAAmC,MAAM;AAChD,iCAAQA,YAAoC,OAAO;AACnD,uCAAcA,YAA0C,aAAa;AACrE,qCAAYA,YAAwC,WAAW;AAC/D,mDAA0BA,YAExB,yBAAyB;AAC3B,oCAAWA,YAAuC,UAAU;AAC5D,uCAAcA,YAA0C,aAAa;AACrE,yCAAgBA,YAA4C,eAAe;AAC3E,wCAAeA,YAA2C,cAAc;AACxE,8CACIA,YAAiD,oBAAoB;AACzE,uCAAcA,YAA0C,aAAa;AACrE,sCAAaA,YAAyC,YAAY;AAClE,8CACIA,YAAiD,oBAAoB;AACzE,wCAAeA,YAA2C,cAAc;AACxE,qCAAYA,YAAwC,WAAW;AAC/D,uCAAcA,YAA0C,aAAa;AACrE,wCAAeA,YAA2C,cAAc;AACxE,mCAAUA,YAAsC,SAAS;AACzD,yCAAgBA,YAA4C,eAAe;AAC3E,iCAAQA,YAAoC,OAAO;AACnD,kCAASA,YAAqC,QAAQ;AACtD,kCAASA,YAAqC,QAAQ;AACtD,uCAAcA,YAA0C,aAAa;AACrE,kCAASA,YAAqC,QAAQ;AACtD,mCAAUA,YAAsC,SAAS;AACzD,yCAAgBA,YAA4C,eAAe;AAC3E,4CACIA,YAA+C,kBAAkB;AACrE,2CACIA,YAA8C,iBAAiB;AACnE,yCAAgBA,YAA4C,eAAe;AAAA;AAC/E;AAEO,IAAM,uBAAN,MAAuD;AAAA,EAAvD;AACH,oCAAoB;AACpB;AACA,oCAAoB;AACpB,uCAA6B;AAC7B,sCAAqB;AACrB,uCAAsB;AACtB,wCAAwB;AACxB,+CAA8B;AAC9B,iDAAiC;AACjC,oCAAmB;AACnB,iCAAiB;AACjB,iCAA2B;AAC3B,gCAAgB;AAChB,qCAA8B;AAC9B,iCAAiB;AACjB,wCAAuB;AACvB,uCAEa;AACb,2CAAuE;AACvE,kCAAkB;AAClB,wCAAuB;AACvB;AACA,mCAA6C;AAC7C,0CAA0B;AAC1B,sCAAqB;AACrB;AACA;AACA,mCAAmB;AACnB,kCAAiB;AACjB,+BAAc;AACd;AACA;AACA,kCAAiB;AACjB,yCAAmB;AACnB,wCAAkB;AAClB,2CAAqB;AACrB,6CAAuB;AACvB,wCAAkB;AAClB,yCAAmB;AACnB,6CAAuB;AACvB,4CAAsB;AACtB,4CAAsB;AACtB,qCAAoB;AACpB,0CAAyB;AACzB,0CAAyB;AACzB,uCAAuB;AACvB,+BAAc;AACd,qCAAqB;AACrB,kCAAkB;AAClB,iCAAiB;AACjB,qCAAoB;AACpB,gCAAe;AACf,wCAAuB;AACvB,sCAAqB;AACrB,wCAA+B;AAC/B,qCAAoB;AACpB,uCAAsB;AACtB,qCAAoB;AACpB,mCAAyB;AACzB,sCAAsB;AACtB,iCAAgB;AAChB,qCAAqB;AACrB,8CAA6B;AAC7B;AACA,qCAAoB;AACpB,wCAAuB;AACvB,sCAAqB;AACrB,qCAAoB;AACpB,uCAAsB;AACtB,0CAAyB;AACzB,8BAAa;AACb,qCAAoB;AACpB,qCAAoB;AACpB,wCAA8B;AAC9B,8CAAiE;AACjE,6CAAgE;AAChE,qCAAoB;AACpB;AACA,kCAAwB;AACxB,wCAAuB;AACvB,sCAAqB;AACrB,qCAAoB;AACpB,uCAAsB;AACtB,sCAAgC;AAChC,gCAAe;AACf,mCAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,2CAA0B;AAC1B,wCAAuB;AACvB,qCAAoB;AACpB,6CAA6B;AAC7B,mCAAoE;AACpE,6CAEa;AACb,0CAEa;AACb,gDAEa;AACb,4CAEa;AACb,sCACI;AACJ,yCACI;AACJ,yCAAwE;AACxE,0CAEa;AACb,kCAAsE;AACtE,oCAAmE;AACnE,qCAAoE;AACpE,4CACI;AACJ,oCAAmE;AACnE,mCACI;AACJ,mCAAkE;AAClE,yCAAwE;AACxE,yCAEa;AACb,6CACI;AACJ,kCACI;AACJ,uCAAsE;AACtE,iCACI;AACJ,sCACI;AACJ,kCAAqE;AACrE,qCAAwE;AACxE,uCACI;AACJ,uCACI;AACJ,sCACI;AACJ,uCACI;AACJ,kCAAqE;AACrE,4CACI;AACJ,qCAAoE;AACpE,mCAAkE;AAClE;AACA,mCAAuE;AACvE,sCACI;AACJ,+CAEa;AACb,mCAAkE;AAClE,qCAAoE;AACpE,qCACI;AACJ,sCACI;AACJ,mCACI;AACJ,kCAAiE;AACjE,wCAAuE;AACvE,4CACI;AACJ,uCAAsE;AACtE,gDAEa;AACb,uCACI;AACJ,wCACI;AACJ,wCACI;AACJ,uCACI;AACJ,sCACI;AACJ,uCACI;AACJ,qCACI;AACJ,mCACI;AACJ,mCAAkE;AAClE,kCAAiE;AACjE,qCAAoE;AACpE,2CAEa;AACb,yCAEa;AACb,0CAEa;AACb,0CAEa;AACb,yCAEa;AACb,wCAEa;AACb,yCAEa;AACb,8CACI;AACJ,uCACI;AACJ,sCACI;AACJ,wCAAuE;AACvE,mCAAkE;AAClE,oCAAqE;AACrE,oCAAmE;AACnE,uCAAsE;AACtE,qDAEa;AACb,oCAAmE;AACnE,qCAAoE;AACpE,oCAAmE;AACnE,6CACI;AACJ,yCAAwE;AACxE,wCAAuE;AACvE,qCAAoE;AACpE,oCACI;AACJ,qCAAoE;AACpE,wCAAuE;AACvE,oCACI;AACJ,8CAEa;AACb,2CAEa;AACb,2CAEa;AACb,6CAEa;AACb,0CACI;AACJ,qCAAoE;AACpE,gDAEa;AACb,sDAEa;AACb,kDAEa;AACb,iDAEa;AACb,mCAAuE;AACvE,qCAAqB;AACrB;AACA,oCAAmB;AACnB,mCAAkB;AAClB;AACA,sCAA+B;AAC/B,uCAAuB;AACvB,qCAA8B;AAC9B,uCAAgC;AAChC,oCAAmB;AACnB,oCAAmB;AACnB,qCAA2B;AAC3B,yCAAoC;AACpC,sCAAgC;AAChC,2CAAoC;AACpC,wCAAkB;AAClB,0CAAoB;AACpB,qCAAe;AACf,8CAAwB;AACxB,iDAA2B;AAC3B,uCAAiB;AACjB,uDAAiC;AACjC,wCAAkB;AAClB,yCAAmB;AACnB,8CAAyB;AACzB,kDAA6B;AAC7B,yCAAoB;AACpB,0DAAuC;AACvC,uDAAoC;AACpC,uDAAoC;AACpC,sDAAmC;AACnC,0DAAuC;AACvC,qEAAkD;AAClD,uDAA8C;AAC9C,sCAA4B;AAC5B,4CAAkC;AAClC,4CAAkC;AAClC,sDAA4C;AAC5C,oCAA0B;AAC1B,uCAA6B;AAC7B,wCAA8B;AAC9B,wCAA8B;AAC9B,4CAAkC;AAClC,uCAA6B;AAC7B,gDAAsD;AACtD,uCAA6B;AAC7B,mDAAyD;AACzD,2CAAiC;AACjC,+CAAqD;AACrD,wCAA8B;AAC9B,oDAA0D;AAC1D,wCAA8B;AAC9B,8CAAoD;AACpD,wCAA8B;AAC9B,sCAA4B;AAC5B,uCAA6B;AAC7B,4CAAkC;AAClC,qCAA2B;AAC3B,kDAAwD;AACxD,qCAA2B;AAC3B,oCAA0B;AAC1B,qCAA2B;AAC3B,yCAA+B;AAC/B,+CAAqC;AACrC,2CAAiC;AACjC,4CAAkD;AAClD,2CAAiC;AACjC,wCAA8B;AAC9B,uCAA6B;AAC7B,wCAA8B;AAC9B,wCAA8B;AAC9B,wCAA8B;AAC9B,+CAAqC;AACrC,wCAA8B;AAC9B,wCAA8B;AAC9B,4CAAkC;AAClC,uCAA6B;AAC7B,wCAA8B;AAC9B,uCAA6B;AAC7B,oCAA0B;AAC1B,wCAA8B;AAC9B,wCAA8B;AAC9B,wCAA8B;AAC9B,yCAA+B;AAC/B,gCAAsB;AACtB,8CAAqC;AACrC,kDAAyC;AACzC,6CAA4B;AAC5B;AACA,6CAAoC;AACpC,4CAAmC;AACnC,wCAAuC;AAEvC,wCAAeA,YAA6C,cAAc;AAC1E,uCAAcA,YAA4C,aAAa;AACvE,oCAAWA,YAAyC,UAAU;AAC9D,gCAAOA,YAAqC,MAAM;AAClD,iCAAQA,YAAsC,OAAO;AACrD,gCAAOA,YAAqC,MAAM;AAClD,wCAAeA,YAA6C,cAAc;AAC1E,qCAAYA,YAA0C,WAAW;AACjE,4CACIA,YAAiD,kBAAkB;AACvE,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,2CACIA,YAAgD,iBAAiB;AACrE,iCAAQA,YAAsC,OAAO;AACrD,uCAAcA,YAA4C,aAAa;AACvE,uCAAcA,YAA4C,aAAa;AACvE,yCACIA,YAA8C,eAAe;AACjE,wCAAeA,YAA6C,cAAc;AAC1E,2CACIA,YAAgD,iBAAiB;AACrE,mCAAUA,YAAwC,SAAS;AAC3D,4CACIA,YAAiD,kBAAkB;AACvE,wCAAeA,YAA6C,cAAc;AAC1E,0CACIA,YAA+C,gBAAgB;AACnE,6CACIA,YAAkD,mBAAmB;AACzE,4CACIA,YAAiD,kBAAkB;AACvE,8CACIA,YAAmD,oBAAoB;AAC3E,iDAAwBA,YAEtB,uBAAuB;AACzB,0CACIA,YAA+C,gBAAgB;AACnE,kDAAyBA,YAEvB,wBAAwB;AAC1B,gDAAuBA;AAAA,MACnB;AAAA,IACJ;AACA,kDAAyBA,YAEvB,wBAAwB;AAC1B,mCAAUA,YAAwC,SAAS;AAC3D,wCAAeA,YAA6C,cAAc;AAC1E,0CACIA,YAA+C,gBAAgB;AACnE,yCACIA,YAA8C,eAAe;AACjE,6CACIA,YAAkD,mBAAmB;AACzE,iDAAwBA,YAEtB,uBAAuB;AACzB,8CACIA,YAAmD,oBAAoB;AAC3E,8CACIA,YAAmD,oBAAoB;AAC3E,mCAAUA,YAAwC,SAAS;AAC3D,iDAAwBA,YAEtB,uBAAuB;AACzB,2CACIA,YAAgD,iBAAiB;AACrE,6CACIA,YAAkD,mBAAmB;AACzE,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,6CACIA,YAAkD,mBAAmB;AACzE,8CACIA,YAAmD,oBAAoB;AAC3E,kCAASA,YAAuC,QAAQ;AACxD,oCAAWA,YAAyC,UAAU;AAC9D,0CACIA,YAA+C,gBAAgB;AACnE,oCAAWA,YAAyC,UAAU;AAC9D,wCAAeA,YAA6C,cAAc;AAC1E,0CACIA,YAA+C,gBAAgB;AACnE,4CACIA,YAAiD,kBAAkB;AACvE,8CACIA,YAAmD,oBAAoB;AAC3E,yCACIA,YAA8C,eAAe;AACjE,6CACIA,YAAkD,mBAAmB;AACzE,2CACIA,YAAgD,iBAAiB;AACrE,iDAAwBA,YAEtB,uBAAuB;AACzB,gCAAOA,YAAqC,MAAM;AAClD,iCAAQA,YAAsC,OAAO;AACrD,uCAAcA,YAA4C,aAAa;AACvE,qCAAYA,YAA0C,WAAW;AACjE,mDAA0BA,YAExB,yBAAyB;AAC3B,oCAAWA,YAAyC,UAAU;AAC9D,uCAAcA,YAA4C,aAAa;AACvE,yCACIA,YAA8C,eAAe;AACjE,wCAAeA,YAA6C,cAAc;AAC1E,8CACIA,YAAmD,oBAAoB;AAC3E,uCAAcA,YAA4C,aAAa;AACvE,sCAAaA,YAA2C,YAAY;AACpE,8CACIA,YAAmD,oBAAoB;AAC3E,wCAAeA,YAA6C,cAAc;AAC1E,qCAAYA,YAA0C,WAAW;AACjE,uCAAcA,YAA4C,aAAa;AACvE,wCAAeA,YAA6C,cAAc;AAC1E,mCAAUA,YAAwC,SAAS;AAC3D,yCACIA,YAA8C,eAAe;AACjE,iCAAQA,YAAsC,OAAO;AACrD,kCAASA,YAAuC,QAAQ;AACxD,kCAASA,YAAuC,QAAQ;AACxD,uCAAcA,YAA4C,aAAa;AACvE,kCAASA,YAAuC,QAAQ;AACxD,mCAAUA,YAAwC,SAAS;AAC3D,yCACIA,YAA8C,eAAe;AACjE,4CACIA,YAAiD,kBAAkB;AACvE,2CACIA,YAAgD,iBAAiB;AACrE,yCACIA,YAA8C,eAAe;AAAA;AACrE;AAEO,IAAM,iBAAN,MAA2C;AAAA,EAA3C;AACH,gCAAe;AACf,mCAAkB;AAClB,6CAAuB;AACvB,6CAAuB;AACvB,4CAAsB;AACtB,uDAAiC;AAAA;AACrC;AAEO,IAAM,2BAAN,MAA+D;AAAA,EAA/D;AACH,mCAAuB,IAAI,YAAY,CAAC;AACxC,uCAAmC;AACnC,mCAAmB;AACnB,wCAAwB;AACxB,sCAAsB;AACtB,oCAAoB;AACpB,yCAAoC;AACpC,4CAA4B;AAC5B,sCAAqB;AACrB,qCAAqB;AACrB,uCAAuB;AACvB,sCAAiC;AACjC,kCAA6B;AAC7B,qCAAiC;AACjC,gCAAe;AACf,gCAAU;AACV,2CAAqB;AACrB,qCAAe;AACf,0CAAoB;AAEpB,wCACIA,YAAiD,cAAc;AACnE,qCAAYA,YAA8C,WAAW;AACrE,0CACIA,YAAmD,gBAAgB;AACvE,oDAA2BA,YAEzB,0BAA0B;AAC5B,2CACIA,YAAoD,iBAAiB;AAAA;AAC7E;AAEO,IAAM,sBAAN,MAAqD;AAAA,EAArD;AACH;AACA,sCAAqB;AACrB;AACA,+CACI;AACJ,qCAEa;AACb,qCAAoB;AAEpB,iCAAQA,YAAqC,OAAO;AACpD,2CACIA,YAA+C,iBAAiB;AACpE,gCAAOA,YAAoC,MAAM;AACjD,kCAASA,YAAsC,QAAQ;AACvD,kCAASA,YAAsC,QAAQ;AACvD,4CACIA,YAAgD,kBAAkB;AACtE,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,yCACIA,YAA6C,eAAe;AAAA;AACpE;AAEO,IAAM,2BAAN,MAA+D;AAAA,EAA/D;AACH,qCAAoB;AAEpB,2CACIA,YAAoD,iBAAiB;AACzE,4CACIA,YAAqD,kBAAkB;AAAA;AAC/E;AAEO,IAAM,gBAAN,MAAyC;AAAA,EAAzC;AACH,yCAAgBA,YAAuC,eAAe;AACtE,8CACIA,YAA4C,oBAAoB;AACpE,gDAAuBA;AAAA,MACnB;AAAA,IACJ;AAAA;AACJ;AAEO,IAAM,kBAAN,MAA6C;AAAA,EAA7C;AACH;AACA,oCAAmB;AACnB,yCAAgE;AAChE,yCAAgE;AAChE,wCAA+D;AAC/D,sCAAyB;AACzB;AAEA,2CACIA,YAA2C,iBAAiB;AAChE,kDAAyBA;AAAA,MACrB;AAAA,IACJ;AACA,uCAAcA,YAAuC,aAAa;AAClE,8CACIA,YAA8C,oBAAoB;AACtE,gDAAuBA;AAAA,MACnB;AAAA,IACJ;AACA,4CACIA,YAA4C,kBAAkB;AAClE,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,yCAAgBA,YAAyC,eAAe;AAAA;AAC5E;AAEO,IAAM,kBAAN,MAA6C;AAAA,EAA7C;AACH,kCAAkB;AAClB,8BAAa;AACb,sCACI;AACJ,yCAEa;AAEb,oCAAWA,YAAoC,UAAU;AACzD,iCAAQA,YAAiC,OAAO;AAChD,0CAAiBA,YAA0C,gBAAgB;AAC3E,wCAAeA,YAAwC,cAAc;AACrE,qCAAYA,YAAqC,WAAW;AAC5D,0CAAiBA,YAA0C,gBAAgB;AAC3E,uCAAcA,YAAuC,aAAa;AAClE,4CACIA,YAA4C,kBAAkB;AAClE,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,yCAAgBA,YAAyC,eAAe;AAAA;AAC5E;AAEO,IAAM,gBAAN,MAAyC;AAAA,EAAzC;AACH;AACA;AACA,sCAA4B;AAC5B;AACA;AACA,0CAAyB;AACzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqB;AACrB,+CAA8B;AAC9B,yCAAyB;AACzB,uCAAsB;AACtB,mCAAkB;AAClB,sCAAqB;AACrB,oCAAmB;AACnB,mCAAkB;AAClB,sCAAqB;AACrB,qCAAoB;AACpB,kCAAiB;AACjB,qCAAoB;AACpB,oCAAmB;AACnB,qCAAmC,CAAC;AACpC;AACA,kCAAkB;AAClB;AACA,4CAA4B;AAC5B;AACA;AAEA,oCAAWA,YAAkC,UAAU;AACvD,uCAAcA,YAAqC,aAAa;AAChE,6CACIA,YAA2C,mBAAmB;AAClE,uDAA8BA,YAE5B,6BAA6B;AAC/B,sCAAaA,YAAoC,YAAY;AAC7D,iCAAQA,YAA+B,OAAO;AAC9C,mCAAUA,YAAiC,SAAS;AACpD,yCAAgBA,YAAuC,eAAe;AACtE,uCAAcA,YAAqC,aAAa;AAChE,mDAA0BA;AAAA,MACtB;AAAA,IACJ;AACA,uCAAcA,YAAqC,aAAa;AAAA;AACpE;AAEO,IAAM,WAAN,MAA+B;AAAA,EAA/B;AACH,mCAAkB;AAClB;AACA,sCAA+B;AAC/B,uCAAuB;AACvB,qCAA8B;AAC9B,uCAAgC;AAChC,oCAAmB;AACnB,oCAAmB;AACnB,qCAA2B;AAC3B,yCAAiC;AACjC,yCAAoC;AACpC,sCAAgC;AAChC,2CAAoC;AACpC,uCAA6B;AAC7B,wCAAkB;AAClB,0CAAoB;AACpB,qCAAe;AACf,8CAAwB;AACxB,iDAA2B;AAC3B,uCAAiB;AACjB,uDAAiC;AACjC,wCAAkB;AAClB,yCAAmB;AACnB,8CAAyB;AACzB,kDAA6B;AAC7B,yCAAoB;AACpB,0DAAuC;AACvC,uDAAoC;AACpC,uDAAoC;AACpC,sDAAmC;AACnC,0DAAuC;AACvC,qEAAkD;AAElD,uCAAcA,YAAgC,aAAa;AAC3D,qCAAYA,YAA8B,WAAW;AACrD,mDAA0BA;AAAA,MACtB;AAAA,IACJ;AACA,oCAAWA,YAA6B,UAAU;AAClD,uCAAcA,YAAgC,aAAa;AAC3D,yCAAgBA,YAAkC,eAAe;AACjE,wCAAeA,YAAiC,cAAc;AAC9D,8CACIA,YAAuC,oBAAoB;AAC/D,uCAAcA,YAAgC,aAAa;AAC3D,sCAAaA,YAA+B,YAAY;AACxD,8CACIA,YAAuC,oBAAoB;AAC/D,wCAAeA,YAAiC,cAAc;AAC9D,qCAAYA,YAA8B,WAAW;AACrD,uCAAcA,YAAgC,aAAa;AAC3D,wCAAeA,YAAiC,cAAc;AAC9D,4CAAmBA,YAAqC,kBAAkB;AAC1E,yCAAgBA,YAAkC,eAAe;AACjE,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AAAA;AACJ;AAEO,IAAM,oBAAN,MAEuB;AAAA,EAFvB;AAGH,4CAA4B;AAC5B,kCAAiB;AACjB;AACA,iCAAgB;AAChB,mCAAmB;AACnB,wCAAwB;AACxB,sCAAsB;AACtB,oCAAoB;AACpB,yCAAoC;AACpC,4CAA4B;AAC5B,sCAAqB;AACrB,qCAAqB;AACrB,uCAAuB;AACvB,sCAAiC;AACjC,qCAAiC;AACjC,gCAAe;AACf,gCAAU;AACV,2CAAqB;AACrB,qCAAe;AACf,0CAAoB;AAEpB,wCAAeA,YAA6C,cAAc;AAC1E,qCAAYA,YAA0C,WAAW;AACjE,0CACIA,YAA+C,gBAAgB;AACnE,oDAA2BA,YAEzB,0BAA0B;AAC5B,2CACIA,YAAgD,iBAAiB;AAAA;AACzE;AAEO,IAAM,4BAAN,MAAiE;AAAA,EAAjE;AACH;AACA;AACA,mCAAmB;AACnB,wCAAwB;AACxB,sCAAsB;AACtB,oCAAoB;AACpB,yCAAoC;AACpC,4CAA4B;AAC5B,sCAAqB;AACrB,qCAAqB;AACrB,uCAAuB;AACvB,sCAAiC;AACjC,kCAA6B;AAC7B,qCAAiC;AACjC,gCAAe;AACf,gCAAU;AACV,2CAAqB;AACrB,qCAAe;AACf,0CAAoB;AAEpB,wCACIA,YAAkD,cAAc;AACpE,qCAAYA,YAA+C,WAAW;AACtE,0CACIA,YAAoD,gBAAgB;AACxE,oDAA2BA,YAEzB,0BAA0B;AAC5B,2CACIA,YAAqD,iBAAiB;AAAA;AAC9E;AAEO,IAAM,mBAAN,MAA+C;AAAA,EAA/C;AACH,2CAA0B;AAC1B,6CAA4B;AAC5B;AACA,gCAAmB;AACnB,mCAA2D;AAC3D,mCAA2D;AAC3D,oCAA4D;AAC5D,uCAA+D;AAC/D,yCAAiE;AACjE,2CAA0B;AAC1B,oCAAoB;AAEpB,iCAAQA,YAAkC,OAAO;AACjD,wCAAeA,YAAyC,cAAc;AACtE,sCAAaA,YAAuC,YAAY;AAChE,kCAASA,YAAmC,QAAQ;AACpD,4CACIA,YAA6C,kBAAkB;AACnE,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AACA,yCAAgBA,YAA0C,eAAe;AAAA;AAC7E;AAEO,IAAM,cAAN,MAAqC;AAAA,EAArC;AAGH,kCAAiB;AAEjB,iCAAQA,YAA6B,OAAO;AAC5C,mCAAUA,YAA+B,SAAS;AAClD,+BAAMA,YAA2B,KAAK;AACtC,sCAAaA,YAAkC,YAAY;AAC3D,mCAAUA,YAA+B,SAAS;AAAA;AACtD;AAEO,IAAM,WAAN,MAA+B;AAAA,EAA/B;AACH,qCAAoB;AACpB,gCAAe;AACf,kCAAiB;AACjB;AACA;AACA,wCAAuC;AACvC,mCAAkB;AAClB;AACA,sCAA+B;AAC/B,uCAAuB;AACvB,qCAA8B;AAC9B,uCAAgC;AAChC,oCAAmB;AACnB,oCAAmB;AACnB,qCAA2B;AAC3B,yCAAoC;AACpC,sCAAgC;AAChC,2CAAoC;AACpC,wCAAkB;AAClB,0CAAoB;AACpB,qCAAe;AACf,8CAAwB;AACxB,iDAA2B;AAC3B,uCAAiB;AACjB,uDAAiC;AACjC,wCAAkB;AAClB,yCAAmB;AACnB,8CAAyB;AACzB,kDAA6B;AAC7B,yCAAoB;AACpB,0DAAuC;AACvC,uDAAoC;AACpC,uDAAoC;AACpC,sDAAmC;AACnC,0DAAuC;AACvC,qEAAkD;AAClD,8CAAqC;AACrC,kDAAyC;AAEzC,qCAAYA,YAA8B,WAAW;AACrD,sCAAaA,YAA+B,YAAY;AACxD,sCAAaA,YAA+B,YAAY;AACxD,sCAAaA,YAA+B,YAAY;AACxD,uCAAcA,YAAgC,aAAa;AAC3D,yCAAgBA,YAAkC,eAAe;AACjE,uCAAcA,YAAgC,aAAa;AAC3D,qCAAYA,YAA8B,WAAW;AACrD,mDAA0BA;AAAA,MACtB;AAAA,IACJ;AACA,oCAAWA,YAA6B,UAAU;AAClD,uCAAcA,YAAgC,aAAa;AAC3D,yCAAgBA,YAAkC,eAAe;AACjE,wCAAeA,YAAiC,cAAc;AAC9D,8CACIA,YAAuC,oBAAoB;AAC/D,uCAAcA,YAAgC,aAAa;AAC3D,sCAAaA,YAA+B,YAAY;AACxD,8CACIA,YAAuC,oBAAoB;AAC/D,wCAAeA,YAAiC,cAAc;AAC9D,qCAAYA,YAA8B,WAAW;AACrD,uCAAcA,YAAgC,aAAa;AAC3D,wCAAeA,YAAiC,cAAc;AAC9D,iCAAQA,YAA0B,OAAO;AACzC,kCAASA,YAA2B,QAAQ;AAC5C,kCAASA,YAA2B,QAAQ;AAC5C,uCAAcA,YAAgC,aAAa;AAC3D,4CAAmBA,YAAqC,kBAAkB;AAC1E,yCAAgBA,YAAkC,eAAe;AACjE,+CAAsBA;AAAA,MAClB;AAAA,IACJ;AAAA;AACJ;;;ACj9EO,IAAM,wBAAN,cAAoC,gBAAgB;AAM3D;AALI,cADS,uBACF,iCAAgC;AACvC,cAFS,uBAEF,mBACHC;AAAA,EACI;AACJ;AAGD,IAAM,wBAAN,cAAoC,gBAAgB;AAK3D;AAJI,cADS,uBACF,SAAQA,YAAiD,OAAO;AACvE,cAFS,uBAEF,OAAMA,YAA+C,KAAK;AACjE,cAHS,uBAGF,WACHA,YAAmD,SAAS;;;ACT7D,SAAS,UAAU,MAAyB;AAC/C,QAAM,IAAI,IAAI,UAAU;AACxB,IAAE,OAAO;AACT,SAAO;AACX;;;ACNO,IAAM,iBAAN,MAA2C;AAAA,EAC9C,YACY,SAEJ,CAAC,GACP;AAHU;AAKR,aAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AACpC,YAAM,OAAO,OAAO,IAAI,CAAC;AACzB,YAAM,QAAQ,OAAO,CAAC;AACtB,UAAI,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,MAAM,CAAC,KAAK,KAAK,CAAC;AAC1C,cAAM,IAAI,MAAM,gBAAgB;AAAA,IACxC;AAAA,EACJ;AAAA,EAEA,IAAI,SAAiB;AACjB,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EAEA,MAAM,OAAuB;AACzB,WAAO,KAAK,OAAO,KAAK,EAAE,CAAC;AAAA,EAC/B;AAAA,EAEA,IAAI,OAAuB;AACvB,WAAO,KAAK,OAAO,KAAK,EAAE,CAAC;AAAA,EAC/B;AACJ;;;ACNO,SAAS,oBAAoB,QAAuC;AAEvE,QAAM,YAAY,oBAAI,IAGpB;AAEF,QAAM,QAAQ,kBAAkB,EAAE,IAAI;AAAA,IAClC,CACI,MACA,UACA,eACC;AAzCb;AA0CY,UAAI,CAAC,UAAU,IAAI,IAAI,EAAG,WAAU,IAAI,MAAM,oBAAI,IAAI,CAAC;AACvD,YAAM,aAAa,UAAU,IAAI,IAAI;AACrC,UAAI;AACJ,UAAI;AACJ,UAAI,cAAc,MAAM;AACpB,qBAAa,EAAE,MAAM,MAAM;AAC3B,kBAAU;AAAA,MACd,WAAW,OAAO,eAAe,WAAW;AACxC,qBAAa,EAAE,MAAM,MAAM;AAC3B,kBAAU;AAAA,MACd,OAAO;AACH,qBAAa,EAAE,OAAM,gBAAW,SAAX,YAAmB,MAAM;AAC9C,mBAAU,gBAAW,YAAX,YAAsB;AAAA,MACpC;AAEA,UAAI,CAAC,WAAW,IAAI,OAAO,EAAG,YAAW,IAAI,SAAS,oBAAI,IAAI,CAAC;AAC/D,YAAM,eAAe,WAAW,IAAI,OAAO;AAC3C,UAAI,CAAC,aAAa,IAAI,QAAQ,GAAG;AAI7B,qBAAa,IAAI,UAAU,UAAU;AAAA,MACzC;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,QAAQ,qBAAqB,EAAE,IAAI;AAAA,IACrC,CACI,MACA,UACA,YACC;AAzEb;AA0EY,UAAI,CAAC,UAAU,IAAI,IAAI,EAAG;AAC1B,YAAM,aAAa,UAAU,IAAI,IAAI;AACrC,YAAM,UACF,OAAO,YAAY,YACb,WACC,wCAAS,YAAT,YAAoB;AAC/B,UAAI,CAAC,WAAW,IAAI,OAAO,EAAG;AAC9B,YAAM,eAAe,WAAW,IAAI,OAAO;AAC3C,mBAAa,OAAO,QAAQ;AAAA,IAChC;AAAA,EACJ;AAEA,QAAM,QAAQ,eAAe,EAAE,IAAI,SAAS,CAAC,UAA8B;AAGvE,QAAI,CAAC,UAAU,IAAI,MAAM,IAAI,EAAG,QAAO;AACvC,UAAM,aAAa,UAAU,IAAI,MAAM,IAAI;AAC3C,UAAM,aAAa,MAAM;AACzB,UAAM,gBAAgB;AACtB,UAAM,SAAS;AAEf,QAAI,WAAW,IAAI,IAAI,GAAG;AACtB,YAAM,mBAAmB,WAAW,IAAI,IAAI;AAC5C,iBAAW,CAAC,UAAU,OAAO,KAAK,iBAAiB,QAAQ,GAAG;AAC1D,YAAI,MAAM,yBAAyB,MAAM,IAAI,EAAG;AAChD,YACI,MAAM,eAAe,MAAM,aAC3B,MAAM,eAAe,MAAM,iBAC7B;AACE,cAAI,QAAQ,MAAM;AACd,mBAAO,oBAAoB,MAAM,MAAM,UAAU,IAAI;AAAA,UACzD;AACA,mBAAS,KAAK;AAAA,QAClB;AAAA,MACJ;AAAA,IACJ;AACA,QAAI,WAAW,IAAI,KAAK,GAAG;AACvB,YAAM,kBAAkB,WAAW,IAAI,KAAK;AAC5C,iBAAW,CAAC,UAAU,OAAO,KAAK,gBAAgB,QAAQ,GAAG;AACzD,YAAI,MAAM,yBAAyB,MAAM,IAAI,EAAG;AAChD,YACI,MAAM,eAAe,MAAM,aAC3B,MAAM,eAAe,MAAM,gBAC7B;AACE,cAAI,QAAQ,MAAM;AACd,mBAAO,oBAAoB,MAAM,MAAM,UAAU,KAAK;AAAA,UAC1D;AACA,mBAAS,KAAK;AAAA,QAClB;AAAA,MACJ;AAAA,IACJ;AACA,WAAO,CAAC,MAAM,cAAc,CAAC,MAAM,eAAe,MAAM,IAAI;AAAA,EAChE,CAAC;AAED,SAAO;AAAA,IACH,kBAA2B;AACvB,iBAAW,WAAW,UAAU,OAAO,GAAG;AACtC,mBAAW,cAAc,QAAQ,OAAO,GAAG;AACvC,cAAI,WAAW,OAAO,EAAG,QAAO;AAAA,QACpC;AAAA,MACJ;AACA,aAAO;AAAA,IACX;AAAA,EACJ;AACJ;;;ACnIA,IAAM,kBAAN,cAAuC,UAAoC;AAAA,EAGvE,YAAY,MAAc,eAAoC;AAVlE;AAWQ,UAAM;AAHV,wBAAS;AAIL,SAAK,OAAO;AACZ,SAAK,SAAS,+CAAe;AAC7B,SAAK,WAAU,oDAAe,YAAf,YAA0B;AACzC,SAAK,cAAa,oDAAe,eAAf,YAA6B;AAAA,EACnD;AAAA,EAEA,kBAAkB;AAAA,EAAC;AACvB;AAEO,SAAS,sBAAsB;AAClC,aAAW,MAAM;AACb,QAAI,OAAO,WAAW;AAClB,MAAC,WAAe,cAAc;AAAA,EACtC,CAAC;AAED,YAAU,MAAM;AACZ,QAAI,OAAO,WAAW,YAAa,QAAQ,WAAe;AAAA,EAC9D,CAAC;AACL;;;ACpBO,IAAM,kBAAN,MAAgD;AAAA,EAAhD;AACH,wBAAQ,UAA8B,CAAC;AAAA;AAAA,EAEvC,eAAe,WAAqC;AAChD,YAAQ;AAAA,MACJ,sBAAsB,UAAU,iBAAiB,gBAAgB,UAAU,MAAM,IAAI;AAAA,IACzF;AACA,YAAQ;AAAA,MACJ;AAAA,MACA,OAAO,cAAc,WAAW,UAAU,YAAY;AAAA,IAC1D;AAAA,EACJ;AAAA,EAEA,SAAS,QAA0B;AAC/B,QAAI,OAAO,mBAAmB,SAAS,GAAG;AACtC,cAAQ,KAAK,gBAAgB,OAAO,QAAQ,EAAE;AAC9C,eAAS,IAAI,GAAG,IAAI,OAAO,mBAAmB,QAAQ,KAAK;AACvD,gBAAQ,KAAK,YAAY,OAAO,mBAAmB,CAAC,EAAE,OAAO,EAAE;AAC/D,gBAAQ,KAAK,OAAO,mBAAmB,CAAC,EAAE,KAAK;AAC/C,aAAK,OAAO,KAAK,OAAO,mBAAmB,CAAC,CAAC;AAAA,MACjD;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,cAAoB;AAChB,QAAI,KAAK,OAAO,SAAS,GAAG;AACxB,cAAQ,IAAI,cAAc,KAAK,OAAO,MAAM,UAAU;AACtD,WAAK,OAAO,QAAQ,CAAC,OAAO,UAAU;AAClC,gBAAQ,MAAM,SAAS,QAAQ,CAAC,KAAK,KAAK;AAAA,MAC9C,CAAC;AAAA,IACL,OAAO;AACH,cAAQ,IAAI,uBAAuB;AAAA,IACvC;AAAA,EACJ;AACJ;",
|
|
4
|
+
"sourcesContent": ["/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport Clock = jasmine.Clock\n\n/**\n * Fixed to setTimeout before any mocks can take place.\n */\nconst scheduler = setTimeout\n\n/**\n * Returns a promise, when awaited, will ensure that all promise handlers are invoked.\n */\nexport function flushPromises(): Promise<void> {\n return new Promise((resolve) => {\n scheduler(() => resolve(void 0))\n })\n}\n\nexport interface MockTime {\n /**\n * Ticks forward `time` seconds, incrementally for each time argument.\n * After each time increment, promises will be flushed.\n * If no time values are provided, {@link flushPromises}, time will not be incremented, but\n * will still be called.\n *\n * @param time (in seconds)\n * @return Returns a promise which resolves after the last time increment and promise flush.\n */\n tick(...time: number[]): Promise<void>\n\n /**\n * Sets the current date to the given date.\n *\n * @param date\n */\n mockDate(date?: Date): void\n}\n\n/**\n * Call within a `describe` block to install jasmine's mock clock between tests.\n * The returned object has one difference from jasmine's Clock tick and setTime; a promise is\n * returned, which when awaited, will ensure that promise handlers based on timed events will be\n * called in the order in which they were intended.\n */\nexport function useMockTime(): MockTime {\n const clock: Clock = jasmine.clock()\n\n beforeEach(() => {\n clock.install()\n clock.mockDate(new Date(0))\n })\n\n afterEach(() => {\n clock.uninstall()\n })\n\n const mockTime: MockTime = {\n async tick(...time: readonly number[]): Promise<void> {\n if (!time.length) {\n clock.tick(0)\n await flushPromises()\n }\n for (const s of time) {\n clock.tick(s * 1000)\n await flushPromises()\n }\n },\n\n mockDate(date?: Date): void {\n clock.mockDate(date)\n },\n } as const\n return mockTime\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Creates a marble test, returning a function (input: string) => string where the input is a\n * sequence of characters, each character mapping to the legend, and the output a string\n * produced by the output generator.\n *\n * @param init\n * @param legend An object whose keys are characters, and the values are functions to invoke when\n * the character is found in the input string.\n * @param output A method to invoke at the end of the actions to return the output sequence.\n */\nexport function marbleTest<T>(\n init: () => Promise<T> | T,\n legend: Readonly<\n Record<string, ((test: T) => Promise<void> | void) | undefined>\n >,\n output: (test: T) => Promise<string> | string\n): (input: string) => Promise<string> {\n return async (input: string): Promise<string> => {\n const test = await init()\n for (let i = 0; i < input.length; i++) {\n const char = input[i]\n const action = legend[char]\n if (!action) throw new Error(`Unknown marble: '${char}'`)\n await action(test)\n }\n return output(test)\n }\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { marbleTest } from './marble'\nimport type { MockTime } from './async'\nimport Spy = jasmine.Spy\nimport createSpy = jasmine.createSpy\n\n/**\n * Creates a marble test for callback timing.\n * This provides an easy way to test callback timing, for example a debounce or throttle function.\n *\n * The returned function takes an input string where dashes represent a wait of 1 second, and x's represent\n * invoking the function returned by wrapCallback. The resolved string will be the timing of when the inner function is\n * invoked.\n * An x does not represent passage of time. For example a marble diagram of x-xx-x represents execution at:\n * 0s, 1s, 1s, 2s\n *\n * @param clock\n * @param wrapCallback\n */\nexport function createCallbackTimingTest(\n clock: MockTime,\n wrapCallback: (inner: () => void) => () => void\n): (input: string) => Promise<string> {\n return marbleTest<{\n spy: Spy\n throttled: () => void\n out: string\n }>(\n () => {\n clock.mockDate(new Date(0))\n let _out = ''\n let lastTimeMs = 0\n const writeTime = () => {\n const nowMs = Date.now()\n _out += '-'.repeat((nowMs - lastTimeMs) / 1000)\n lastTimeMs = nowMs\n }\n const spy = createSpy('inner').and.callFake(() => {\n writeTime()\n _out += 'x'\n })\n const throttled = wrapCallback(spy)\n return {\n spy,\n throttled,\n get out() {\n return _out\n },\n }\n },\n {\n '-': () => {\n return clock.tick(1)\n },\n x: (test) => {\n test.throttled()\n },\n },\n async (o) => {\n // Flush any pending timeouts up to 10s in the future, ticking in 1s increments\n // in order to get correct mock time resolution:\n for (let i = 0; i < 10; i++) {\n await clock.tick(1)\n }\n return o.out\n }\n )\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n//-------------------------------------------------------------------------\n// A Benchmarking utility for testing and comparing performance.\n//-------------------------------------------------------------------------\n\n/**\n * Gets the current high resolution timestamp, platform dependent.\n */\nlet now: () => number\nif (\n typeof window !== 'undefined' &&\n typeof window.performance !== 'undefined' &&\n typeof window.performance.now !== 'undefined'\n) {\n now = () => window.performance.now()\n} else if (\n typeof self !== 'undefined' &&\n typeof self.performance !== 'undefined' &&\n typeof self.performance.now !== 'undefined'\n) {\n now = () => self.performance.now()\n} else {\n now = () => Date.now()\n}\n\nexport interface BenchMarkOptions {\n /**\n * The amount of time to run the executor before beginning measurement (in seconds).\n */\n readonly warmupTime: number\n\n /**\n * When time has elapsed past this duration during a cycle (in seconds), there will be no\n * operations.\n * The cycle will end when `maxCycleDuration` has been reached.\n */\n readonly maxCycleDuration: number\n\n /**\n * The number of trials to run.\n */\n readonly cycles: number\n}\n\nexport interface CycleResults {\n /**\n * The number of seconds the cycle ran.\n */\n readonly duration: number\n\n /**\n * The number of completed executions.\n */\n readonly ops: number\n}\n\nexport class BenchmarkRunResults {\n readonly cycleResults: number[] = []\n\n private _totalSamples = 0\n get totalSamples(): number {\n return this._totalSamples\n }\n\n get cycleResultsNoOutliers(): number[] {\n const sD = this.standardDeviation\n const avg = average(this.cycleResults)\n return this.cycleResults.filter((e) => {\n const zScore = (avg - e) / sD\n return Math.abs(zScore) < 3\n })\n }\n\n /**\n * Returns the mean ops per second minus outliers of greater than 3 standard deviations.\n */\n get meanOpsPerSec(): number {\n return average(this.cycleResultsNoOutliers)\n }\n\n get standardDeviation(): number {\n return standardDeviation(this.cycleResults)\n }\n\n get variance(): number {\n return this.standardDeviation / this.meanOpsPerSec\n }\n\n /**\n * Returns the mean ops / s \u00B1 variance % as a string.\n */\n get meanOpsStr(): string {\n const mean = this.meanOpsPerSec.toLocaleString(undefined, {\n maximumSignificantDigits: 4,\n })\n const variance = this.variance.toLocaleString(undefined, {\n style: 'percent',\n })\n return `${mean} \u00B1${variance}`\n }\n\n constructor(readonly name: string) {}\n\n add(cycle: CycleResults) {\n const opsPerSecond = cycle.ops / cycle.duration\n let index = this.cycleResults.findIndex((value) => opsPerSecond < value)\n if (index < 0) index = this.cycleResults.length\n this.cycleResults.splice(index, 0, opsPerSecond)\n this._totalSamples += cycle.ops\n }\n\n toString(): string {\n if (!this.cycleResults.length) return 'No results'\n return `${this.name}: ${this.meanOpsStr} ops/sec`\n }\n}\n\nexport class RunResultsComparison {\n /**\n * Sorted by median ops/s from slowest to fastest.\n */\n readonly results: BenchmarkRunResults[]\n\n constructor(\n readonly name: string,\n results: BenchmarkRunResults[]\n ) {\n this.results = results.sort((a, b) => {\n return a.meanOpsPerSec - b.meanOpsPerSec\n })\n }\n\n logToTable(): void {\n const r = this.results.map((run) => {\n const variance = run.variance.toLocaleString(undefined, {\n style: 'percent',\n })\n const mean = run.meanOpsPerSec.toLocaleString(undefined, {\n maximumSignificantDigits: 4,\n })\n\n return {\n Name: run.name,\n Mean: `${mean} \u00B1${variance}`,\n Samples: run.totalSamples,\n Compare: this.runComparisonToString(run),\n }\n })\n // Use the names as the index.\n const table = r.reduce<any>((acc, { Name, ...x }) => {\n acc[Name] = x\n return acc\n }, {})\n console.log('\\n' + this.name)\n console.table(table)\n }\n\n runComparisonToString(run: BenchmarkRunResults): string {\n const baseline = this.results[0]?.meanOpsPerSec ?? 0\n const fasterPercent = run.meanOpsPerSec / baseline - 1\n return fasterPercent < 0.01\n ? '-'\n : fasterPercent.toLocaleString(undefined, {\n style: 'percent',\n }) + ' faster'\n }\n}\n\nexport function compareResults(\n name: string,\n ...results: BenchmarkRunResults[]\n): RunResultsComparison {\n return new RunResultsComparison(name, results)\n}\n\nconst defaultBenchmarkOptions: BenchMarkOptions = {\n warmupTime: 0.5,\n maxCycleDuration: 0.5,\n cycles: 9,\n} as const\n\nexport class Benchmark {\n private static semaphore: Promise<any> = nextFrame()\n\n private readonly options: BenchMarkOptions\n\n /**\n * Constructs a new Benchmark.\n *\n * @param name The name of the benchmark, to be used when logging.\n * @param executor The method to execute and measure. If this method returns a promise, the\n * promise will be awaited. The executor should either always return a promise, or never.\n * @param options Optional configuration for the benchmark.\n */\n constructor(\n readonly name: string,\n readonly executor: () => any,\n options?: Partial<BenchMarkOptions>\n ) {\n this.options = { ...defaultBenchmarkOptions, ...options }\n }\n\n async run(): Promise<BenchmarkRunResults> {\n const opts = this.options\n // Wait for any currently running work to complete.\n await Benchmark.semaphore\n\n const warmupTimeMs = opts.warmupTime * 1000\n const cycleStart = now()\n let isAsync = false\n do {\n const result = this.executor()\n // If the executor returns a promise, it is considered an async test and the benchmark\n // should await its result.\n isAsync = isAsync || (result && typeof result.then === 'function')\n if (isAsync) await result\n } while (now() - cycleStart < warmupTimeMs)\n const resultsPromise: Promise<BenchmarkRunResults> = (async () => {\n const results = new BenchmarkRunResults(this.name)\n for (let i = 0; i < opts.cycles; i++) {\n const cycleResults = await this.runCycle(isAsync)\n results.add(cycleResults)\n await nextFrame()\n }\n return results\n })()\n Benchmark.semaphore = resultsPromise\n return await resultsPromise\n }\n\n /**\n * Runs one cycle. A cycle will repeat the executor approximately `options.maxCycleDuration`\n * seconds.\n *\n * @param isAsync\n * @return Returns the duration (in seconds) and number of operations the cycle repeated.\n */\n private async runCycle(isAsync: boolean): Promise<CycleResults> {\n const cycleMs = this.options.maxCycleDuration * 1000\n let ops = 0\n const cycleStart = now()\n do {\n const result = this.executor()\n if (isAsync) await result\n ops++\n } while (now() - cycleStart < cycleMs)\n const duration = (now() - cycleStart) / 1000\n return {\n duration,\n ops,\n }\n }\n}\n\n/**\n * Creates and runs a benchmark, logging the result.\n *\n * @param name\n * @param executor\n * @param options\n */\nexport function benchmark(\n name: string,\n executor: () => any,\n options?: Partial<BenchMarkOptions>\n): Promise<BenchmarkRunResults> {\n const benchmark = new Benchmark(name, executor, options)\n return benchmark.run().then((results) => {\n console.log(results.toString())\n return results\n })\n}\n\n/**\n * To avoid killing the browser's frame.\n */\nfunction nextFrame(): Promise<void> {\n return new Promise((resolve) => {\n setTimeout(resolve)\n })\n}\n\n/**\n * Returns the standard deviation of the given values.\n *\n * @param values\n */\nfunction standardDeviation(values: readonly number[]): number {\n const avg = average(values)\n const squareDiffs = values.map((value) => {\n const diff = value - avg\n return diff * diff\n })\n const avgSquareDiff = average(squareDiffs)\n return Math.sqrt(avgSquareDiff)\n}\n\n/**\n * Returns the mean/average of the given values.\n *\n * @param values\n */\nfunction average(values: readonly number[]): number {\n const sum = values.reduce((acc, value) => acc + value, 0)\n return sum / values.length\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nlet nextTestTimeoutOverridden: boolean = false\n\n/**\n * Sets the timeout for the current describe block.\n *\n * @param timeout The test timeout, in seconds.\n */\nexport function setTestTimeout(timeout: number) {\n let originalTimeout: number | null = null\n beforeEach(() => {\n originalTimeout = jasmine.DEFAULT_TIMEOUT_INTERVAL\n if (!nextTestTimeoutOverridden)\n jasmine.DEFAULT_TIMEOUT_INTERVAL = timeout * 1000\n })\n\n afterEach(() => {\n if (originalTimeout) jasmine.DEFAULT_TIMEOUT_INTERVAL = originalTimeout\n if (nextTestTimeoutOverridden) nextTestTimeoutOverridden = false\n })\n}\n\n/**\n * Sets the timeout for the next test and only the next test,\n * overriding any value set subsequently to setTestTimeout.\n *\n * @param timeout The test timeout, in seconds.\n */\nexport function setNextTestTimeout(timeout: number) {\n nextTestTimeoutOverridden = true\n jasmine.DEFAULT_TIMEOUT_INTERVAL = timeout * 1000\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Expects that two iterable objects have the same elements.\n *\n * @param arr1\n * @param arr2\n */\nexport function expectIterableEquals<T>(\n arr1: Iterable<T> | ArrayLike<T>,\n arr2: Iterable<T> | ArrayLike<T>\n) {\n expect(Array.from(arr1)).toEqual(Array.from(arr2))\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Some tests (such as benchmarks or type expectations) have no jasmine expectations.\n */\nexport function expectNothing() {\n expect(true).toBeTruthy()\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * Expect that the given factory produces an instance of `clazz` and `superClass`\n * This is different from `expect(e).toBeInstanceOf` in that it accounts for TypeScript's branching\n * if _super.call returns undefined.\n *\n * For example, IllegalArgumentError extends Error will produce the following constructor:\n * ```\n * var _this = _super.call(this, message) || this;\n * Object.setPrototypeOf(_this, IllegalArgumentError.prototype);\n * ```\n * The branch of _super.call || this requires two tests for perfect coverage, one for the falsy\n * case, and one for the truthy case.\n *\n * @param factory\n * @param classes\n */\nexport function expectPrototype(factory: () => any, ...classes: any[]): void {\n const e = factory()\n classes.forEach((clazz) => expect(e).toBeInstanceOf(clazz))\n const spy = spyOn(classes[classes.length - 1], 'call')\n spy.and.returnValue(null)\n const e2 = factory()\n classes.forEach((clazz) => expect(e2).toBeInstanceOf(clazz))\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n//----------------------------------------------------------------------------\n// Tests to validate that Types are what we expect them to be.\n// These tests are for the compiler only and have no runtime significance.\n//\n// expect(true).toBeTrue() is to avoid jasmine no-expectation warnings for\n// tests that only have compile-time assertions.\n//----------------------------------------------------------------------------\n\ntype LooseEqual<Left, Right> = [Left] extends [Right]\n ? [Right] extends [Left]\n ? true\n : false\n : false\n\ntype Strict<Left, Right> =\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters\n (<T>() => T extends Left ? 0 : 1) extends <T>() => T extends Right ? 0 : 1\n ? LooseEqual<Left, Right>\n : false\n\n/**\n * Adds a compile-time check that types Left and Right are identical.\n */\nexport function expectTypeStrictlyEquals<Left, Right>(\n _matches: Strict<Left, Right>\n): void {\n expect(true).toBeTrue()\n}\n\n// noinspection JSUnusedLocalSymbols\n/**\n * Adds a compile-time check that type Left extends Right and Right extends Left.\n * This is not as strict as `expectTypeStrictlyEquals`, it does not validate:\n * - unknown types\n * - any types\n */\nexport function expectTypeEquals<Left, Right>(\n _matches: LooseEqual<Left, Right>\n): void {\n expect(true).toBeTrue()\n}\n\n// noinspection JSUnusedLocalSymbols\n/**\n * Adds a compile-time check that Sub extends Super.\n * This is distributive, so `expectTypeExtends<1, 1 | 2>` will expect true.\n */\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters\nexport function expectTypeExtends<Sub, Super>(\n _matches: [Sub] extends [Super] ? true : false\n): void {\n expect(true).toBeTrue()\n}\n\n/**\n * Adds a compile-time check that expects that the given type is exactly true.\n */\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters,@typescript-eslint/no-unused-vars\nexport function expectTypeTrue<T extends true>(): void {\n expect(true).toBeTrue()\n}\n\n/**\n * Adds a compile-time check that expects that the given type is exactly false.\n */\n// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-parameters,@typescript-eslint/no-unused-vars\nexport function expectTypeFalse<T extends false>(): void {\n expect(true).toBeTrue()\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport CustomMatcher = jasmine.CustomMatcher\n\nexport interface WithToBeCloseToWithinMatcher {\n toBeCloseToWithin(expected: number, tolerance?: number): boolean\n}\n\nexport function addToBeCloseToWithin() {\n beforeEach(function () {\n jasmine.addMatchers({\n toBeCloseToWithin: function (): CustomMatcher {\n return {\n compare: function (\n actual: number,\n expected: number,\n tolerance: number = Number.EPSILON\n ) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n if (tolerance == null) {\n throw new Error('You must supply a tolerance value')\n }\n\n const pass = Math.abs(expected - actual) <= tolerance\n const message = pass\n ? `Expected ${actual} to be close to ${expected} with tolerance ${tolerance}`\n : `Expected ${actual} to be close to ${expected} with tolerance ${tolerance}, but it was not`\n\n return { pass: pass, message: message }\n },\n }\n },\n })\n })\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { WithToBeCloseToWithinMatcher } from './toBeCloseToWithin'\nimport { addToBeCloseToWithin } from './toBeCloseToWithin'\n\ndeclare global {\n // eslint-disable-next-line @typescript-eslint/no-namespace\n namespace jasmine {\n // eslint-disable-next-line\n interface Matchers<T> extends WithToBeCloseToWithinMatcher {}\n }\n}\n\nexport function addCustomMatchers() {\n addToBeCloseToWithin()\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport Spy = jasmine.Spy\n\n/**\n * A type representing any type of function.\n */\ntype Fun = (...args: any[]) => any\n\n/**\n * Creates or returns a Spy for a function on an object.\n * If the method is already a spy, it will be returned.\n * If not, a spy will be created.\n *\n * @param object\n * @param method\n */\nexport function asSpy<T, K extends keyof T = keyof T>(\n object: T,\n method: T[K] extends Fun ? K : never\n): Spy<\n T[K] extends jasmine.Func\n ? T[K]\n : T[K] extends { new (...args: infer A): infer V }\n ? (...args: A) => V\n : never\n> {\n if (object == null || object[method] == null) {\n throw new Error('method not implemented')\n }\n const fun = object[method] as Fun\n if ('calls' in fun) {\n return fun as Spy\n } else {\n return spyOn(object, method as any)\n }\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport createSpy = jasmine.createSpy\nimport Spy = jasmine.Spy\nimport SpyAnd = jasmine.SpyAnd\nimport Calls = jasmine.Calls\nimport MatchableArgs = jasmine.MatchableArgs\n\ntype Fun = (...args: any[]) => any\n\n/**\n * A SpyFactory creates spies by member access. The spies will be named based on the key,\n * and the type interface of the Spy will match the corresponding interface function.\n */\nexport interface SpyFactory<T> {\n <K extends FunctionKeys<T>>(\n key: K\n ): T[K] extends Fun ? Spy2<NoThisType<NonNullable<T[K]>>> : never\n}\n\n/**\n * Fixes Jasmine's Spy type.\n * Jasmine's Spy interface has a call signature instead of intersecting the original function type.\n * This causes parameterized types of the call signature to be dropped.\n */\nexport type Spy2<Fn extends Fun> = Fn & {\n and: SpyAnd<Fn>\n calls: Calls<Fn>\n withArgs(...args: MatchableArgs<Fn>): Spy<Fn>\n}\n\nexport type FunctionKeys<T> = {\n [P in keyof T]: T[P] extends Fun ? P : never\n}[keyof T]\n\n/**\n * Creates a new spy factory.\n *\n * @param createFake If provided, all spies will be created with the fake implementation createFake\n * returns for the given key.\n */\nexport function createSpyFactory<T>(\n createFake?: (key: FunctionKeys<T>) => Fun\n): SpyFactory<T> {\n return (key: FunctionKeys<T>) => {\n const spy = createSpy(String(key))\n if (createFake) spy.and.callFake(createFake(key))\n return spy as any\n }\n}\n\n/**\n * Creates a Spy.\n * This is an alias to jasmine.createSpy with fixed type parameters.\n * @param key\n */\nexport function createSpy2<Fn extends Fun | undefined>(\n key: keyof any\n): Spy2<NoThisType<NonNullable<Fn>>> {\n return createSpy(String(key)) as any\n}\n\n/**\n * Replaces `this` type with `any` in a method signature.\n */\nexport type NoThisType<Fn extends Fun> =\n ReturnType<Fn> extends ThisType<any>\n ? Fn & ((...args: Parameters<Fn>) => any)\n : Fn\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/*\n * AUTO-GENERATED FILE - DO NOT EDIT\n * Generated by @amazon/vinyl-mock-generator\n */\n\n/* eslint-disable @typescript-eslint/prefer-as-const */\n/* eslint-disable @typescript-eslint/no-deprecated */\n\nimport { createSpy2 } from '../createSpyFactory'\n\nexport class MockAbortController implements AbortController {\n signal: AbortSignal = undefined as any\n\n abort = createSpy2<AbortController['abort']>('abort')\n}\n\nexport class MockAbortSignal implements AbortSignal {\n aborted: boolean = false\n onabort: ((this: AbortSignal, ev: Event) => any) | null = null\n reason: any = undefined\n\n throwIfAborted = createSpy2<AbortSignal['throwIfAborted']>('throwIfAborted')\n addEventListener =\n createSpy2<AbortSignal['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<AbortSignal['removeEventListener']>(\n 'removeEventListener'\n )\n dispatchEvent = createSpy2<AbortSignal['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockAudioContext implements AudioContext {\n baseLatency: number = 0\n outputLatency: number = 0\n audioWorklet: AudioWorklet = undefined as any\n currentTime: number = 0\n destination: AudioDestinationNode = undefined as any\n listener: AudioListener = undefined as any\n onstatechange: ((this: BaseAudioContext, ev: Event) => any) | null = null\n sampleRate: number = 0\n state: AudioContextState = 'closed'\n\n close = createSpy2<AudioContext['close']>('close')\n createMediaElementSource = createSpy2<\n AudioContext['createMediaElementSource']\n >('createMediaElementSource')\n createMediaStreamDestination = createSpy2<\n AudioContext['createMediaStreamDestination']\n >('createMediaStreamDestination')\n createMediaStreamSource = createSpy2<\n AudioContext['createMediaStreamSource']\n >('createMediaStreamSource')\n getOutputTimestamp =\n createSpy2<AudioContext['getOutputTimestamp']>('getOutputTimestamp')\n resume = createSpy2<AudioContext['resume']>('resume')\n suspend = createSpy2<AudioContext['suspend']>('suspend')\n addEventListener =\n createSpy2<AudioContext['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<AudioContext['removeEventListener']>(\n 'removeEventListener'\n )\n createAnalyser =\n createSpy2<AudioContext['createAnalyser']>('createAnalyser')\n createBiquadFilter =\n createSpy2<AudioContext['createBiquadFilter']>('createBiquadFilter')\n createBuffer = createSpy2<AudioContext['createBuffer']>('createBuffer')\n createBufferSource =\n createSpy2<AudioContext['createBufferSource']>('createBufferSource')\n createChannelMerger = createSpy2<AudioContext['createChannelMerger']>(\n 'createChannelMerger'\n )\n createChannelSplitter = createSpy2<AudioContext['createChannelSplitter']>(\n 'createChannelSplitter'\n )\n createConstantSource = createSpy2<AudioContext['createConstantSource']>(\n 'createConstantSource'\n )\n createConvolver =\n createSpy2<AudioContext['createConvolver']>('createConvolver')\n createDelay = createSpy2<AudioContext['createDelay']>('createDelay')\n createDynamicsCompressor = createSpy2<\n AudioContext['createDynamicsCompressor']\n >('createDynamicsCompressor')\n createGain = createSpy2<AudioContext['createGain']>('createGain')\n createIIRFilter =\n createSpy2<AudioContext['createIIRFilter']>('createIIRFilter')\n createOscillator =\n createSpy2<AudioContext['createOscillator']>('createOscillator')\n createPanner = createSpy2<AudioContext['createPanner']>('createPanner')\n createPeriodicWave =\n createSpy2<AudioContext['createPeriodicWave']>('createPeriodicWave')\n createScriptProcessor = createSpy2<AudioContext['createScriptProcessor']>(\n 'createScriptProcessor'\n )\n createStereoPanner =\n createSpy2<AudioContext['createStereoPanner']>('createStereoPanner')\n createWaveShaper =\n createSpy2<AudioContext['createWaveShaper']>('createWaveShaper')\n decodeAudioData =\n createSpy2<AudioContext['decodeAudioData']>('decodeAudioData')\n dispatchEvent = createSpy2<AudioContext['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockCache implements Cache {\n add = createSpy2<Cache['add']>('add')\n addAll = createSpy2<Cache['addAll']>('addAll')\n delete = createSpy2<Cache['delete']>('delete')\n keys = createSpy2<Cache['keys']>('keys')\n match = createSpy2<Cache['match']>('match')\n matchAll = createSpy2<Cache['matchAll']>('matchAll')\n put = createSpy2<Cache['put']>('put')\n}\n\nexport class MockCacheStorage implements CacheStorage {\n delete = createSpy2<CacheStorage['delete']>('delete')\n has = createSpy2<CacheStorage['has']>('has')\n keys = createSpy2<CacheStorage['keys']>('keys')\n match = createSpy2<CacheStorage['match']>('match')\n open = createSpy2<CacheStorage['open']>('open')\n}\n\nexport class MockCustomEvent<T = any> implements CustomEvent<T> {\n detail: T = undefined as any\n bubbles: boolean = false\n cancelBubble: boolean = false\n cancelable: boolean = false\n composed: boolean = false\n currentTarget: EventTarget | null = null\n defaultPrevented: boolean = false\n eventPhase: number = 0\n isTrusted: boolean = false\n returnValue: boolean = false\n srcElement: EventTarget | null = null\n target: EventTarget | null = null\n timeStamp: DOMHighResTimeStamp = 0\n type: string = ''\n NONE: 0 = 0\n CAPTURING_PHASE: 1 = 1\n AT_TARGET: 2 = 2\n BUBBLING_PHASE: 3 = 3\n\n initCustomEvent =\n createSpy2<CustomEvent<T>['initCustomEvent']>('initCustomEvent')\n composedPath = createSpy2<CustomEvent<T>['composedPath']>('composedPath')\n initEvent = createSpy2<CustomEvent<T>['initEvent']>('initEvent')\n preventDefault =\n createSpy2<CustomEvent<T>['preventDefault']>('preventDefault')\n stopImmediatePropagation = createSpy2<\n CustomEvent<T>['stopImmediatePropagation']\n >('stopImmediatePropagation')\n stopPropagation =\n createSpy2<CustomEvent<T>['stopPropagation']>('stopPropagation')\n}\n\nexport class MockDocument implements Document {\n URL: string = ''\n alinkColor: string = ''\n all: HTMLAllCollection = undefined as any\n anchors: HTMLCollectionOf<HTMLAnchorElement> = undefined as any\n applets: HTMLCollection = undefined as any\n bgColor: string = ''\n body: HTMLElement = undefined as any\n characterSet: string = ''\n charset: string = ''\n compatMode: string = ''\n contentType: string = ''\n cookie: string = ''\n currentScript: HTMLOrSVGScriptElement | null = undefined as any\n defaultView: (WindowProxy & typeof globalThis) | null = undefined as any\n designMode: string = ''\n dir: string = ''\n doctype: DocumentType | null = null\n documentElement: HTMLElement = undefined as any\n documentURI: string = ''\n domain: string = ''\n embeds: HTMLCollectionOf<HTMLEmbedElement> = undefined as any\n fgColor: string = ''\n forms: HTMLCollectionOf<HTMLFormElement> = undefined as any\n fragmentDirective: FragmentDirective = undefined as any\n fullscreen: boolean = false\n fullscreenEnabled: boolean = false\n head: HTMLHeadElement = undefined as any\n hidden: boolean = false\n images: HTMLCollectionOf<HTMLImageElement> = undefined as any\n implementation: DOMImplementation = undefined as any\n inputEncoding: string = ''\n lastModified: string = ''\n linkColor: string = ''\n links: HTMLCollectionOf<HTMLAnchorElement | HTMLAreaElement> =\n undefined as any\n onfullscreenchange: ((this: Document, ev: Event) => any) | null = null\n onfullscreenerror: ((this: Document, ev: Event) => any) | null = null\n onpointerlockchange: ((this: Document, ev: Event) => any) | null = null\n onpointerlockerror: ((this: Document, ev: Event) => any) | null = null\n onreadystatechange: ((this: Document, ev: Event) => any) | null = null\n onvisibilitychange: ((this: Document, ev: Event) => any) | null = null\n ownerDocument: null = null\n pictureInPictureEnabled: boolean = false\n plugins: HTMLCollectionOf<HTMLEmbedElement> = undefined as any\n readyState: DocumentReadyState = 'complete'\n referrer: string = ''\n rootElement: SVGSVGElement | null = null\n scripts: HTMLCollectionOf<HTMLScriptElement> = undefined as any\n scrollingElement: Element | null = null\n timeline: DocumentTimeline = undefined as any\n title: string = ''\n visibilityState: DocumentVisibilityState = 'hidden'\n vlinkColor: string = ''\n location: any = undefined\n textContent: null = null\n baseURI: string = ''\n childNodes: NodeListOf<ChildNode> = undefined as any\n firstChild: ChildNode | null = null\n isConnected: boolean = false\n lastChild: ChildNode | null = null\n nextSibling: ChildNode | null = null\n nodeName: string = ''\n nodeType: number = 0\n nodeValue: string | null = ''\n parentElement: HTMLElement | null = null\n parentNode: ParentNode | null = null\n previousSibling: ChildNode | null = null\n ELEMENT_NODE: 1 = 1\n ATTRIBUTE_NODE: 2 = 2\n TEXT_NODE: 3 = 3\n CDATA_SECTION_NODE: 4 = 4\n ENTITY_REFERENCE_NODE: 5 = 5\n ENTITY_NODE: 6 = 6\n PROCESSING_INSTRUCTION_NODE: 7 = 7\n COMMENT_NODE: 8 = 8\n DOCUMENT_NODE: 9 = 9\n DOCUMENT_TYPE_NODE: 10 = 10\n DOCUMENT_FRAGMENT_NODE: 11 = 11\n NOTATION_NODE: 12 = 12\n DOCUMENT_POSITION_DISCONNECTED: 0x01 = 1\n DOCUMENT_POSITION_PRECEDING: 0x02 = 2\n DOCUMENT_POSITION_FOLLOWING: 0x04 = 4\n DOCUMENT_POSITION_CONTAINS: 0x08 = 8\n DOCUMENT_POSITION_CONTAINED_BY: 0x10 = 16\n DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20 = 32\n activeElement: Element | null = null\n adoptedStyleSheets: CSSStyleSheet[] = []\n fullscreenElement: Element | null = null\n pictureInPictureElement: Element | null = null\n pointerLockElement: Element | null = null\n styleSheets: StyleSheetList = undefined as any\n fonts: FontFaceSet = undefined as any\n onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null = null\n onanimationcancel:\n ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null = null\n onanimationend:\n ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null = null\n onanimationiteration:\n ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null = null\n onanimationstart:\n ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null = null\n onauxclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null =\n null\n onbeforematch: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onbeforetoggle:\n ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null = null\n onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null = null\n oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncontextmenu:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onended: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onerror: OnErrorEventHandler = undefined as any\n onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null = null\n onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null =\n null\n ongotpointercapture:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onload: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onlostpointercapture:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onpointercancel:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerdown:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerenter:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerleave:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointermove:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerout:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerover:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerrawupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null =\n null\n onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null = null\n onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onsecuritypolicyviolation:\n | ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any)\n | null = null\n onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null =\n null\n onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n ontoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null =\n null\n ontransitioncancel:\n ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null = null\n ontransitionend:\n ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null = null\n ontransitionrun:\n ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null = null\n ontransitionstart:\n ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null = null\n onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkitanimationend:\n ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkitanimationiteration:\n ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkitanimationstart:\n ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkittransitionend:\n ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null = null\n childElementCount: number = 0\n children: HTMLCollection = undefined as any\n firstElementChild: Element | null = null\n lastElementChild: Element | null = null\n\n adoptNode = createSpy2<Document['adoptNode']>('adoptNode')\n captureEvents = createSpy2<Document['captureEvents']>('captureEvents')\n caretPositionFromPoint = createSpy2<Document['caretPositionFromPoint']>(\n 'caretPositionFromPoint'\n )\n caretRangeFromPoint = createSpy2<Document['caretRangeFromPoint']>(\n 'caretRangeFromPoint'\n )\n clear = createSpy2<Document['clear']>('clear')\n close = createSpy2<Document['close']>('close')\n createAttribute = createSpy2<Document['createAttribute']>('createAttribute')\n createAttributeNS =\n createSpy2<Document['createAttributeNS']>('createAttributeNS')\n createCDATASection =\n createSpy2<Document['createCDATASection']>('createCDATASection')\n createComment = createSpy2<Document['createComment']>('createComment')\n createDocumentFragment = createSpy2<Document['createDocumentFragment']>(\n 'createDocumentFragment'\n )\n createElement = createSpy2<Document['createElement']>('createElement')\n createElementNS = createSpy2<Document['createElementNS']>('createElementNS')\n createEvent = createSpy2<Document['createEvent']>('createEvent')\n createNodeIterator =\n createSpy2<Document['createNodeIterator']>('createNodeIterator')\n createProcessingInstruction = createSpy2<\n Document['createProcessingInstruction']\n >('createProcessingInstruction')\n createRange = createSpy2<Document['createRange']>('createRange')\n createTextNode = createSpy2<Document['createTextNode']>('createTextNode')\n createTreeWalker =\n createSpy2<Document['createTreeWalker']>('createTreeWalker')\n execCommand = createSpy2<Document['execCommand']>('execCommand')\n exitFullscreen = createSpy2<Document['exitFullscreen']>('exitFullscreen')\n exitPictureInPicture = createSpy2<Document['exitPictureInPicture']>(\n 'exitPictureInPicture'\n )\n exitPointerLock = createSpy2<Document['exitPointerLock']>('exitPointerLock')\n getElementById = createSpy2<Document['getElementById']>('getElementById')\n getElementsByClassName = createSpy2<Document['getElementsByClassName']>(\n 'getElementsByClassName'\n )\n getElementsByName =\n createSpy2<Document['getElementsByName']>('getElementsByName')\n getElementsByTagName = createSpy2<Document['getElementsByTagName']>(\n 'getElementsByTagName'\n )\n getElementsByTagNameNS = createSpy2<Document['getElementsByTagNameNS']>(\n 'getElementsByTagNameNS'\n )\n getSelection = createSpy2<Document['getSelection']>('getSelection')\n hasFocus = createSpy2<Document['hasFocus']>('hasFocus')\n hasStorageAccess =\n createSpy2<Document['hasStorageAccess']>('hasStorageAccess')\n importNode = createSpy2<Document['importNode']>('importNode')\n open = createSpy2<Document['open']>('open')\n queryCommandEnabled = createSpy2<Document['queryCommandEnabled']>(\n 'queryCommandEnabled'\n )\n queryCommandIndeterm = createSpy2<Document['queryCommandIndeterm']>(\n 'queryCommandIndeterm'\n )\n queryCommandState =\n createSpy2<Document['queryCommandState']>('queryCommandState')\n queryCommandSupported = createSpy2<Document['queryCommandSupported']>(\n 'queryCommandSupported'\n )\n queryCommandValue =\n createSpy2<Document['queryCommandValue']>('queryCommandValue')\n releaseEvents = createSpy2<Document['releaseEvents']>('releaseEvents')\n requestStorageAccess = createSpy2<Document['requestStorageAccess']>(\n 'requestStorageAccess'\n )\n startViewTransition = createSpy2<Document['startViewTransition']>(\n 'startViewTransition'\n )\n write = createSpy2<Document['write']>('write')\n writeln = createSpy2<Document['writeln']>('writeln')\n addEventListener =\n createSpy2<Document['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<Document['removeEventListener']>(\n 'removeEventListener'\n )\n appendChild = createSpy2<Document['appendChild']>('appendChild')\n cloneNode = createSpy2<Document['cloneNode']>('cloneNode')\n compareDocumentPosition = createSpy2<Document['compareDocumentPosition']>(\n 'compareDocumentPosition'\n )\n contains = createSpy2<Document['contains']>('contains')\n getRootNode = createSpy2<Document['getRootNode']>('getRootNode')\n hasChildNodes = createSpy2<Document['hasChildNodes']>('hasChildNodes')\n insertBefore = createSpy2<Document['insertBefore']>('insertBefore')\n isDefaultNamespace =\n createSpy2<Document['isDefaultNamespace']>('isDefaultNamespace')\n isEqualNode = createSpy2<Document['isEqualNode']>('isEqualNode')\n isSameNode = createSpy2<Document['isSameNode']>('isSameNode')\n lookupNamespaceURI =\n createSpy2<Document['lookupNamespaceURI']>('lookupNamespaceURI')\n lookupPrefix = createSpy2<Document['lookupPrefix']>('lookupPrefix')\n normalize = createSpy2<Document['normalize']>('normalize')\n removeChild = createSpy2<Document['removeChild']>('removeChild')\n replaceChild = createSpy2<Document['replaceChild']>('replaceChild')\n elementFromPoint =\n createSpy2<Document['elementFromPoint']>('elementFromPoint')\n elementsFromPoint =\n createSpy2<Document['elementsFromPoint']>('elementsFromPoint')\n getAnimations = createSpy2<Document['getAnimations']>('getAnimations')\n append = createSpy2<Document['append']>('append')\n prepend = createSpy2<Document['prepend']>('prepend')\n querySelector = createSpy2<Document['querySelector']>('querySelector')\n querySelectorAll =\n createSpy2<Document['querySelectorAll']>('querySelectorAll')\n replaceChildren = createSpy2<Document['replaceChildren']>('replaceChildren')\n createExpression =\n createSpy2<Document['createExpression']>('createExpression')\n createNSResolver =\n createSpy2<Document['createNSResolver']>('createNSResolver')\n evaluate = createSpy2<Document['evaluate']>('evaluate')\n dispatchEvent = createSpy2<Document['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockErrorEvent implements ErrorEvent {\n colno: number = 0\n error: any = undefined\n filename: string = ''\n lineno: number = 0\n message: string = ''\n bubbles: boolean = false\n cancelBubble: boolean = false\n cancelable: boolean = false\n composed: boolean = false\n currentTarget: EventTarget | null = null\n defaultPrevented: boolean = false\n eventPhase: number = 0\n isTrusted: boolean = false\n returnValue: boolean = false\n srcElement: EventTarget | null = null\n target: EventTarget | null = null\n timeStamp: DOMHighResTimeStamp = 0\n type: string = ''\n NONE: 0 = 0\n CAPTURING_PHASE: 1 = 1\n AT_TARGET: 2 = 2\n BUBBLING_PHASE: 3 = 3\n\n composedPath = createSpy2<ErrorEvent['composedPath']>('composedPath')\n initEvent = createSpy2<ErrorEvent['initEvent']>('initEvent')\n preventDefault = createSpy2<ErrorEvent['preventDefault']>('preventDefault')\n stopImmediatePropagation = createSpy2<\n ErrorEvent['stopImmediatePropagation']\n >('stopImmediatePropagation')\n stopPropagation =\n createSpy2<ErrorEvent['stopPropagation']>('stopPropagation')\n}\n\nexport class MockEvent implements Event {\n bubbles: boolean = false\n cancelBubble: boolean = false\n cancelable: boolean = false\n composed: boolean = false\n currentTarget: EventTarget | null = null\n defaultPrevented: boolean = false\n eventPhase: number = 0\n isTrusted: boolean = false\n returnValue: boolean = false\n srcElement: EventTarget | null = null\n target: EventTarget | null = null\n timeStamp: DOMHighResTimeStamp = 0\n type: string = ''\n NONE: 0 = 0\n CAPTURING_PHASE: 1 = 1\n AT_TARGET: 2 = 2\n BUBBLING_PHASE: 3 = 3\n\n composedPath = createSpy2<Event['composedPath']>('composedPath')\n initEvent = createSpy2<Event['initEvent']>('initEvent')\n preventDefault = createSpy2<Event['preventDefault']>('preventDefault')\n stopImmediatePropagation = createSpy2<Event['stopImmediatePropagation']>(\n 'stopImmediatePropagation'\n )\n stopPropagation = createSpy2<Event['stopPropagation']>('stopPropagation')\n}\n\nexport class MockEventTarget implements EventTarget {\n addEventListener =\n createSpy2<EventTarget['addEventListener']>('addEventListener')\n dispatchEvent = createSpy2<EventTarget['dispatchEvent']>('dispatchEvent')\n removeEventListener = createSpy2<EventTarget['removeEventListener']>(\n 'removeEventListener'\n )\n}\n\nexport class MockHTMLAudioElement implements HTMLAudioElement {\n autoplay: boolean = false\n buffered: TimeRanges = undefined as any\n controls: boolean = false\n crossOrigin: string | null = ''\n currentSrc: string = ''\n currentTime: number = 0\n defaultMuted: boolean = false\n defaultPlaybackRate: number = 0\n disableRemotePlayback: boolean = false\n duration: number = 0\n ended: boolean = false\n error: MediaError | null = null\n loop: boolean = false\n mediaKeys: MediaKeys | null = null\n muted: boolean = false\n networkState: number = 0\n onencrypted:\n ((this: HTMLMediaElement, ev: MediaEncryptedEvent) => any) | null = null\n onwaitingforkey: ((this: HTMLMediaElement, ev: Event) => any) | null = null\n paused: boolean = false\n playbackRate: number = 0\n played: TimeRanges = undefined as any\n preload: 'none' | 'metadata' | 'auto' | '' = 'none'\n preservesPitch: boolean = false\n readyState: number = 0\n remote: RemotePlayback = undefined as any\n seekable: TimeRanges = undefined as any\n seeking: boolean = false\n sinkId: string = ''\n src: string = ''\n srcObject: MediaProvider | null = undefined as any\n textTracks: TextTrackList = undefined as any\n volume: number = 0\n NETWORK_EMPTY: 0 = 0\n NETWORK_IDLE: 1 = 1\n NETWORK_LOADING: 2 = 2\n NETWORK_NO_SOURCE: 3 = 3\n HAVE_NOTHING: 0 = 0\n HAVE_METADATA: 1 = 1\n HAVE_CURRENT_DATA: 2 = 2\n HAVE_FUTURE_DATA: 3 = 3\n HAVE_ENOUGH_DATA: 4 = 4\n accessKey: string = ''\n accessKeyLabel: string = ''\n autocapitalize: string = ''\n autocorrect: boolean = false\n dir: string = ''\n draggable: boolean = false\n hidden: boolean = false\n inert: boolean = false\n innerText: string = ''\n lang: string = ''\n offsetHeight: number = 0\n offsetLeft: number = 0\n offsetParent: Element | null = null\n offsetTop: number = 0\n offsetWidth: number = 0\n outerText: string = ''\n popover: string | null = ''\n spellcheck: boolean = false\n title: string = ''\n translate: boolean = false\n writingSuggestions: string = ''\n attributes: NamedNodeMap = undefined as any\n className: string = ''\n clientHeight: number = 0\n clientLeft: number = 0\n clientTop: number = 0\n clientWidth: number = 0\n currentCSSZoom: number = 0\n id: string = ''\n innerHTML: string = ''\n localName: string = ''\n namespaceURI: string | null = ''\n onfullscreenchange: ((this: Element, ev: Event) => any) | null = null\n onfullscreenerror: ((this: Element, ev: Event) => any) | null = null\n outerHTML: string = ''\n ownerDocument: Document = undefined as any\n prefix: string | null = ''\n scrollHeight: number = 0\n scrollLeft: number = 0\n scrollTop: number = 0\n scrollWidth: number = 0\n shadowRoot: ShadowRoot | null = null\n slot: string = ''\n tagName: string = ''\n classList: any = undefined\n part: any = undefined\n textContent: any = undefined\n attributeStyleMap: StylePropertyMap = undefined as any\n style: any = undefined\n contentEditable: string = ''\n enterKeyHint: string = ''\n inputMode: string = ''\n isContentEditable: boolean = false\n onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null = null\n onanimationcancel:\n ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null = null\n onanimationend:\n ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null = null\n onanimationiteration:\n ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null = null\n onanimationstart:\n ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null = null\n onauxclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null =\n null\n onbeforematch: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onbeforetoggle:\n ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null = null\n onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null = null\n oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncontextmenu:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onended: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onerror: OnErrorEventHandler = undefined as any\n onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null = null\n onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null =\n null\n ongotpointercapture:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onload: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onlostpointercapture:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onpointercancel:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerdown:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerenter:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerleave:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointermove:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerout:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerover:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerrawupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null =\n null\n onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null = null\n onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onsecuritypolicyviolation:\n | ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any)\n | null = null\n onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null =\n null\n onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n ontoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null =\n null\n ontransitioncancel:\n ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null = null\n ontransitionend:\n ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null = null\n ontransitionrun:\n ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null = null\n ontransitionstart:\n ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null = null\n onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkitanimationend:\n ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkitanimationiteration:\n ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkitanimationstart:\n ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkittransitionend:\n ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null = null\n autofocus: boolean = false\n dataset: DOMStringMap = undefined as any\n tabIndex: number = 0\n baseURI: string = ''\n childNodes: NodeListOf<ChildNode> = undefined as any\n firstChild: ChildNode | null = null\n isConnected: boolean = false\n lastChild: ChildNode | null = null\n nextSibling: ChildNode | null = null\n nodeName: string = ''\n nodeType: number = 0\n nodeValue: string | null = ''\n parentElement: HTMLElement | null = null\n parentNode: ParentNode | null = null\n previousSibling: ChildNode | null = null\n ELEMENT_NODE: 1 = 1\n ATTRIBUTE_NODE: 2 = 2\n TEXT_NODE: 3 = 3\n CDATA_SECTION_NODE: 4 = 4\n ENTITY_REFERENCE_NODE: 5 = 5\n ENTITY_NODE: 6 = 6\n PROCESSING_INSTRUCTION_NODE: 7 = 7\n COMMENT_NODE: 8 = 8\n DOCUMENT_NODE: 9 = 9\n DOCUMENT_TYPE_NODE: 10 = 10\n DOCUMENT_FRAGMENT_NODE: 11 = 11\n NOTATION_NODE: 12 = 12\n DOCUMENT_POSITION_DISCONNECTED: 0x01 = 1\n DOCUMENT_POSITION_PRECEDING: 0x02 = 2\n DOCUMENT_POSITION_FOLLOWING: 0x04 = 4\n DOCUMENT_POSITION_CONTAINS: 0x08 = 8\n DOCUMENT_POSITION_CONTAINED_BY: 0x10 = 16\n DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20 = 32\n ariaActiveDescendantElement: Element | null = null\n ariaAtomic: string | null = ''\n ariaAutoComplete: string | null = ''\n ariaBrailleLabel: string | null = ''\n ariaBrailleRoleDescription: string | null = ''\n ariaBusy: string | null = ''\n ariaChecked: string | null = ''\n ariaColCount: string | null = ''\n ariaColIndex: string | null = ''\n ariaColIndexText: string | null = ''\n ariaColSpan: string | null = ''\n ariaControlsElements: ReadonlyArray<Element> | null = null\n ariaCurrent: string | null = ''\n ariaDescribedByElements: ReadonlyArray<Element> | null = null\n ariaDescription: string | null = ''\n ariaDetailsElements: ReadonlyArray<Element> | null = null\n ariaDisabled: string | null = ''\n ariaErrorMessageElements: ReadonlyArray<Element> | null = null\n ariaExpanded: string | null = ''\n ariaFlowToElements: ReadonlyArray<Element> | null = null\n ariaHasPopup: string | null = ''\n ariaHidden: string | null = ''\n ariaInvalid: string | null = ''\n ariaKeyShortcuts: string | null = ''\n ariaLabel: string | null = ''\n ariaLabelledByElements: ReadonlyArray<Element> | null = null\n ariaLevel: string | null = ''\n ariaLive: string | null = ''\n ariaModal: string | null = ''\n ariaMultiLine: string | null = ''\n ariaMultiSelectable: string | null = ''\n ariaOrientation: string | null = ''\n ariaOwnsElements: ReadonlyArray<Element> | null = null\n ariaPlaceholder: string | null = ''\n ariaPosInSet: string | null = ''\n ariaPressed: string | null = ''\n ariaReadOnly: string | null = ''\n ariaRelevant: string | null = ''\n ariaRequired: string | null = ''\n ariaRoleDescription: string | null = ''\n ariaRowCount: string | null = ''\n ariaRowIndex: string | null = ''\n ariaRowIndexText: string | null = ''\n ariaRowSpan: string | null = ''\n ariaSelected: string | null = ''\n ariaSetSize: string | null = ''\n ariaSort: string | null = ''\n ariaValueMax: string | null = ''\n ariaValueMin: string | null = ''\n ariaValueNow: string | null = ''\n ariaValueText: string | null = ''\n role: string | null = ''\n nextElementSibling: Element | null = null\n previousElementSibling: Element | null = null\n childElementCount: number = 0\n children: HTMLCollection = undefined as any\n firstElementChild: Element | null = null\n lastElementChild: Element | null = null\n assignedSlot: HTMLSlotElement | null = null\n\n addEventListener =\n createSpy2<HTMLAudioElement['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<HTMLAudioElement['removeEventListener']>(\n 'removeEventListener'\n )\n addTextTrack = createSpy2<HTMLAudioElement['addTextTrack']>('addTextTrack')\n canPlayType = createSpy2<HTMLAudioElement['canPlayType']>('canPlayType')\n fastSeek = createSpy2<HTMLAudioElement['fastSeek']>('fastSeek')\n load = createSpy2<HTMLAudioElement['load']>('load')\n pause = createSpy2<HTMLAudioElement['pause']>('pause')\n play = createSpy2<HTMLAudioElement['play']>('play')\n setMediaKeys = createSpy2<HTMLAudioElement['setMediaKeys']>('setMediaKeys')\n setSinkId = createSpy2<HTMLAudioElement['setSinkId']>('setSinkId')\n attachInternals =\n createSpy2<HTMLAudioElement['attachInternals']>('attachInternals')\n click = createSpy2<HTMLAudioElement['click']>('click')\n hidePopover = createSpy2<HTMLAudioElement['hidePopover']>('hidePopover')\n showPopover = createSpy2<HTMLAudioElement['showPopover']>('showPopover')\n togglePopover =\n createSpy2<HTMLAudioElement['togglePopover']>('togglePopover')\n attachShadow = createSpy2<HTMLAudioElement['attachShadow']>('attachShadow')\n checkVisibility =\n createSpy2<HTMLAudioElement['checkVisibility']>('checkVisibility')\n closest = createSpy2<HTMLAudioElement['closest']>('closest')\n computedStyleMap =\n createSpy2<HTMLAudioElement['computedStyleMap']>('computedStyleMap')\n getAttribute = createSpy2<HTMLAudioElement['getAttribute']>('getAttribute')\n getAttributeNS =\n createSpy2<HTMLAudioElement['getAttributeNS']>('getAttributeNS')\n getAttributeNames =\n createSpy2<HTMLAudioElement['getAttributeNames']>('getAttributeNames')\n getAttributeNode =\n createSpy2<HTMLAudioElement['getAttributeNode']>('getAttributeNode')\n getAttributeNodeNS =\n createSpy2<HTMLAudioElement['getAttributeNodeNS']>('getAttributeNodeNS')\n getBoundingClientRect = createSpy2<\n HTMLAudioElement['getBoundingClientRect']\n >('getBoundingClientRect')\n getClientRects =\n createSpy2<HTMLAudioElement['getClientRects']>('getClientRects')\n getElementsByClassName = createSpy2<\n HTMLAudioElement['getElementsByClassName']\n >('getElementsByClassName')\n getElementsByTagName = createSpy2<HTMLAudioElement['getElementsByTagName']>(\n 'getElementsByTagName'\n )\n getElementsByTagNameNS = createSpy2<\n HTMLAudioElement['getElementsByTagNameNS']\n >('getElementsByTagNameNS')\n getHTML = createSpy2<HTMLAudioElement['getHTML']>('getHTML')\n hasAttribute = createSpy2<HTMLAudioElement['hasAttribute']>('hasAttribute')\n hasAttributeNS =\n createSpy2<HTMLAudioElement['hasAttributeNS']>('hasAttributeNS')\n hasAttributes =\n createSpy2<HTMLAudioElement['hasAttributes']>('hasAttributes')\n hasPointerCapture =\n createSpy2<HTMLAudioElement['hasPointerCapture']>('hasPointerCapture')\n insertAdjacentElement = createSpy2<\n HTMLAudioElement['insertAdjacentElement']\n >('insertAdjacentElement')\n insertAdjacentHTML =\n createSpy2<HTMLAudioElement['insertAdjacentHTML']>('insertAdjacentHTML')\n insertAdjacentText =\n createSpy2<HTMLAudioElement['insertAdjacentText']>('insertAdjacentText')\n matches = createSpy2<HTMLAudioElement['matches']>('matches')\n releasePointerCapture = createSpy2<\n HTMLAudioElement['releasePointerCapture']\n >('releasePointerCapture')\n removeAttribute =\n createSpy2<HTMLAudioElement['removeAttribute']>('removeAttribute')\n removeAttributeNS =\n createSpy2<HTMLAudioElement['removeAttributeNS']>('removeAttributeNS')\n removeAttributeNode = createSpy2<HTMLAudioElement['removeAttributeNode']>(\n 'removeAttributeNode'\n )\n requestFullscreen =\n createSpy2<HTMLAudioElement['requestFullscreen']>('requestFullscreen')\n requestPointerLock =\n createSpy2<HTMLAudioElement['requestPointerLock']>('requestPointerLock')\n scroll = createSpy2<HTMLAudioElement['scroll']>('scroll')\n scrollBy = createSpy2<HTMLAudioElement['scrollBy']>('scrollBy')\n scrollIntoView =\n createSpy2<HTMLAudioElement['scrollIntoView']>('scrollIntoView')\n scrollTo = createSpy2<HTMLAudioElement['scrollTo']>('scrollTo')\n setAttribute = createSpy2<HTMLAudioElement['setAttribute']>('setAttribute')\n setAttributeNS =\n createSpy2<HTMLAudioElement['setAttributeNS']>('setAttributeNS')\n setAttributeNode =\n createSpy2<HTMLAudioElement['setAttributeNode']>('setAttributeNode')\n setAttributeNodeNS =\n createSpy2<HTMLAudioElement['setAttributeNodeNS']>('setAttributeNodeNS')\n setHTMLUnsafe =\n createSpy2<HTMLAudioElement['setHTMLUnsafe']>('setHTMLUnsafe')\n setPointerCapture =\n createSpy2<HTMLAudioElement['setPointerCapture']>('setPointerCapture')\n toggleAttribute =\n createSpy2<HTMLAudioElement['toggleAttribute']>('toggleAttribute')\n webkitMatchesSelector = createSpy2<\n HTMLAudioElement['webkitMatchesSelector']\n >('webkitMatchesSelector')\n blur = createSpy2<HTMLAudioElement['blur']>('blur')\n focus = createSpy2<HTMLAudioElement['focus']>('focus')\n appendChild = createSpy2<HTMLAudioElement['appendChild']>('appendChild')\n cloneNode = createSpy2<HTMLAudioElement['cloneNode']>('cloneNode')\n compareDocumentPosition = createSpy2<\n HTMLAudioElement['compareDocumentPosition']\n >('compareDocumentPosition')\n contains = createSpy2<HTMLAudioElement['contains']>('contains')\n getRootNode = createSpy2<HTMLAudioElement['getRootNode']>('getRootNode')\n hasChildNodes =\n createSpy2<HTMLAudioElement['hasChildNodes']>('hasChildNodes')\n insertBefore = createSpy2<HTMLAudioElement['insertBefore']>('insertBefore')\n isDefaultNamespace =\n createSpy2<HTMLAudioElement['isDefaultNamespace']>('isDefaultNamespace')\n isEqualNode = createSpy2<HTMLAudioElement['isEqualNode']>('isEqualNode')\n isSameNode = createSpy2<HTMLAudioElement['isSameNode']>('isSameNode')\n lookupNamespaceURI =\n createSpy2<HTMLAudioElement['lookupNamespaceURI']>('lookupNamespaceURI')\n lookupPrefix = createSpy2<HTMLAudioElement['lookupPrefix']>('lookupPrefix')\n normalize = createSpy2<HTMLAudioElement['normalize']>('normalize')\n removeChild = createSpy2<HTMLAudioElement['removeChild']>('removeChild')\n replaceChild = createSpy2<HTMLAudioElement['replaceChild']>('replaceChild')\n animate = createSpy2<HTMLAudioElement['animate']>('animate')\n getAnimations =\n createSpy2<HTMLAudioElement['getAnimations']>('getAnimations')\n after = createSpy2<HTMLAudioElement['after']>('after')\n before = createSpy2<HTMLAudioElement['before']>('before')\n remove = createSpy2<HTMLAudioElement['remove']>('remove')\n replaceWith = createSpy2<HTMLAudioElement['replaceWith']>('replaceWith')\n append = createSpy2<HTMLAudioElement['append']>('append')\n prepend = createSpy2<HTMLAudioElement['prepend']>('prepend')\n querySelector =\n createSpy2<HTMLAudioElement['querySelector']>('querySelector')\n querySelectorAll =\n createSpy2<HTMLAudioElement['querySelectorAll']>('querySelectorAll')\n replaceChildren =\n createSpy2<HTMLAudioElement['replaceChildren']>('replaceChildren')\n dispatchEvent =\n createSpy2<HTMLAudioElement['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockHTMLDivElement implements HTMLDivElement {\n align: string = ''\n accessKey: string = ''\n accessKeyLabel: string = ''\n autocapitalize: string = ''\n autocorrect: boolean = false\n dir: string = ''\n draggable: boolean = false\n hidden: boolean = false\n inert: boolean = false\n innerText: string = ''\n lang: string = ''\n offsetHeight: number = 0\n offsetLeft: number = 0\n offsetParent: Element | null = null\n offsetTop: number = 0\n offsetWidth: number = 0\n outerText: string = ''\n popover: string | null = ''\n spellcheck: boolean = false\n title: string = ''\n translate: boolean = false\n writingSuggestions: string = ''\n attributes: NamedNodeMap = undefined as any\n className: string = ''\n clientHeight: number = 0\n clientLeft: number = 0\n clientTop: number = 0\n clientWidth: number = 0\n currentCSSZoom: number = 0\n id: string = ''\n innerHTML: string = ''\n localName: string = ''\n namespaceURI: string | null = ''\n onfullscreenchange: ((this: Element, ev: Event) => any) | null = null\n onfullscreenerror: ((this: Element, ev: Event) => any) | null = null\n outerHTML: string = ''\n ownerDocument: Document = undefined as any\n prefix: string | null = ''\n scrollHeight: number = 0\n scrollLeft: number = 0\n scrollTop: number = 0\n scrollWidth: number = 0\n shadowRoot: ShadowRoot | null = null\n slot: string = ''\n tagName: string = ''\n classList: any = undefined\n part: any = undefined\n textContent: any = undefined\n attributeStyleMap: StylePropertyMap = undefined as any\n style: any = undefined\n contentEditable: string = ''\n enterKeyHint: string = ''\n inputMode: string = ''\n isContentEditable: boolean = false\n onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null = null\n onanimationcancel:\n ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null = null\n onanimationend:\n ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null = null\n onanimationiteration:\n ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null = null\n onanimationstart:\n ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null = null\n onauxclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null =\n null\n onbeforematch: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onbeforetoggle:\n ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null = null\n onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null = null\n oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncontextmenu:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onended: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onerror: OnErrorEventHandler = undefined as any\n onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null = null\n onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null =\n null\n ongotpointercapture:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onload: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onlostpointercapture:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onpointercancel:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerdown:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerenter:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerleave:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointermove:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerout:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerover:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerrawupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null =\n null\n onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null = null\n onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onsecuritypolicyviolation:\n | ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any)\n | null = null\n onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null =\n null\n onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n ontoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null =\n null\n ontransitioncancel:\n ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null = null\n ontransitionend:\n ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null = null\n ontransitionrun:\n ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null = null\n ontransitionstart:\n ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null = null\n onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkitanimationend:\n ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkitanimationiteration:\n ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkitanimationstart:\n ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkittransitionend:\n ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null = null\n autofocus: boolean = false\n dataset: DOMStringMap = undefined as any\n tabIndex: number = 0\n baseURI: string = ''\n childNodes: NodeListOf<ChildNode> = undefined as any\n firstChild: ChildNode | null = null\n isConnected: boolean = false\n lastChild: ChildNode | null = null\n nextSibling: ChildNode | null = null\n nodeName: string = ''\n nodeType: number = 0\n nodeValue: string | null = ''\n parentElement: HTMLElement | null = null\n parentNode: ParentNode | null = null\n previousSibling: ChildNode | null = null\n ELEMENT_NODE: 1 = 1\n ATTRIBUTE_NODE: 2 = 2\n TEXT_NODE: 3 = 3\n CDATA_SECTION_NODE: 4 = 4\n ENTITY_REFERENCE_NODE: 5 = 5\n ENTITY_NODE: 6 = 6\n PROCESSING_INSTRUCTION_NODE: 7 = 7\n COMMENT_NODE: 8 = 8\n DOCUMENT_NODE: 9 = 9\n DOCUMENT_TYPE_NODE: 10 = 10\n DOCUMENT_FRAGMENT_NODE: 11 = 11\n NOTATION_NODE: 12 = 12\n DOCUMENT_POSITION_DISCONNECTED: 0x01 = 1\n DOCUMENT_POSITION_PRECEDING: 0x02 = 2\n DOCUMENT_POSITION_FOLLOWING: 0x04 = 4\n DOCUMENT_POSITION_CONTAINS: 0x08 = 8\n DOCUMENT_POSITION_CONTAINED_BY: 0x10 = 16\n DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20 = 32\n ariaActiveDescendantElement: Element | null = null\n ariaAtomic: string | null = ''\n ariaAutoComplete: string | null = ''\n ariaBrailleLabel: string | null = ''\n ariaBrailleRoleDescription: string | null = ''\n ariaBusy: string | null = ''\n ariaChecked: string | null = ''\n ariaColCount: string | null = ''\n ariaColIndex: string | null = ''\n ariaColIndexText: string | null = ''\n ariaColSpan: string | null = ''\n ariaControlsElements: ReadonlyArray<Element> | null = null\n ariaCurrent: string | null = ''\n ariaDescribedByElements: ReadonlyArray<Element> | null = null\n ariaDescription: string | null = ''\n ariaDetailsElements: ReadonlyArray<Element> | null = null\n ariaDisabled: string | null = ''\n ariaErrorMessageElements: ReadonlyArray<Element> | null = null\n ariaExpanded: string | null = ''\n ariaFlowToElements: ReadonlyArray<Element> | null = null\n ariaHasPopup: string | null = ''\n ariaHidden: string | null = ''\n ariaInvalid: string | null = ''\n ariaKeyShortcuts: string | null = ''\n ariaLabel: string | null = ''\n ariaLabelledByElements: ReadonlyArray<Element> | null = null\n ariaLevel: string | null = ''\n ariaLive: string | null = ''\n ariaModal: string | null = ''\n ariaMultiLine: string | null = ''\n ariaMultiSelectable: string | null = ''\n ariaOrientation: string | null = ''\n ariaOwnsElements: ReadonlyArray<Element> | null = null\n ariaPlaceholder: string | null = ''\n ariaPosInSet: string | null = ''\n ariaPressed: string | null = ''\n ariaReadOnly: string | null = ''\n ariaRelevant: string | null = ''\n ariaRequired: string | null = ''\n ariaRoleDescription: string | null = ''\n ariaRowCount: string | null = ''\n ariaRowIndex: string | null = ''\n ariaRowIndexText: string | null = ''\n ariaRowSpan: string | null = ''\n ariaSelected: string | null = ''\n ariaSetSize: string | null = ''\n ariaSort: string | null = ''\n ariaValueMax: string | null = ''\n ariaValueMin: string | null = ''\n ariaValueNow: string | null = ''\n ariaValueText: string | null = ''\n role: string | null = ''\n nextElementSibling: Element | null = null\n previousElementSibling: Element | null = null\n childElementCount: number = 0\n children: HTMLCollection = undefined as any\n firstElementChild: Element | null = null\n lastElementChild: Element | null = null\n assignedSlot: HTMLSlotElement | null = null\n\n addEventListener =\n createSpy2<HTMLDivElement['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<HTMLDivElement['removeEventListener']>(\n 'removeEventListener'\n )\n attachInternals =\n createSpy2<HTMLDivElement['attachInternals']>('attachInternals')\n click = createSpy2<HTMLDivElement['click']>('click')\n hidePopover = createSpy2<HTMLDivElement['hidePopover']>('hidePopover')\n showPopover = createSpy2<HTMLDivElement['showPopover']>('showPopover')\n togglePopover = createSpy2<HTMLDivElement['togglePopover']>('togglePopover')\n attachShadow = createSpy2<HTMLDivElement['attachShadow']>('attachShadow')\n checkVisibility =\n createSpy2<HTMLDivElement['checkVisibility']>('checkVisibility')\n closest = createSpy2<HTMLDivElement['closest']>('closest')\n computedStyleMap =\n createSpy2<HTMLDivElement['computedStyleMap']>('computedStyleMap')\n getAttribute = createSpy2<HTMLDivElement['getAttribute']>('getAttribute')\n getAttributeNS =\n createSpy2<HTMLDivElement['getAttributeNS']>('getAttributeNS')\n getAttributeNames =\n createSpy2<HTMLDivElement['getAttributeNames']>('getAttributeNames')\n getAttributeNode =\n createSpy2<HTMLDivElement['getAttributeNode']>('getAttributeNode')\n getAttributeNodeNS =\n createSpy2<HTMLDivElement['getAttributeNodeNS']>('getAttributeNodeNS')\n getBoundingClientRect = createSpy2<HTMLDivElement['getBoundingClientRect']>(\n 'getBoundingClientRect'\n )\n getClientRects =\n createSpy2<HTMLDivElement['getClientRects']>('getClientRects')\n getElementsByClassName = createSpy2<\n HTMLDivElement['getElementsByClassName']\n >('getElementsByClassName')\n getElementsByTagName = createSpy2<HTMLDivElement['getElementsByTagName']>(\n 'getElementsByTagName'\n )\n getElementsByTagNameNS = createSpy2<\n HTMLDivElement['getElementsByTagNameNS']\n >('getElementsByTagNameNS')\n getHTML = createSpy2<HTMLDivElement['getHTML']>('getHTML')\n hasAttribute = createSpy2<HTMLDivElement['hasAttribute']>('hasAttribute')\n hasAttributeNS =\n createSpy2<HTMLDivElement['hasAttributeNS']>('hasAttributeNS')\n hasAttributes = createSpy2<HTMLDivElement['hasAttributes']>('hasAttributes')\n hasPointerCapture =\n createSpy2<HTMLDivElement['hasPointerCapture']>('hasPointerCapture')\n insertAdjacentElement = createSpy2<HTMLDivElement['insertAdjacentElement']>(\n 'insertAdjacentElement'\n )\n insertAdjacentHTML =\n createSpy2<HTMLDivElement['insertAdjacentHTML']>('insertAdjacentHTML')\n insertAdjacentText =\n createSpy2<HTMLDivElement['insertAdjacentText']>('insertAdjacentText')\n matches = createSpy2<HTMLDivElement['matches']>('matches')\n releasePointerCapture = createSpy2<HTMLDivElement['releasePointerCapture']>(\n 'releasePointerCapture'\n )\n removeAttribute =\n createSpy2<HTMLDivElement['removeAttribute']>('removeAttribute')\n removeAttributeNS =\n createSpy2<HTMLDivElement['removeAttributeNS']>('removeAttributeNS')\n removeAttributeNode = createSpy2<HTMLDivElement['removeAttributeNode']>(\n 'removeAttributeNode'\n )\n requestFullscreen =\n createSpy2<HTMLDivElement['requestFullscreen']>('requestFullscreen')\n requestPointerLock =\n createSpy2<HTMLDivElement['requestPointerLock']>('requestPointerLock')\n scroll = createSpy2<HTMLDivElement['scroll']>('scroll')\n scrollBy = createSpy2<HTMLDivElement['scrollBy']>('scrollBy')\n scrollIntoView =\n createSpy2<HTMLDivElement['scrollIntoView']>('scrollIntoView')\n scrollTo = createSpy2<HTMLDivElement['scrollTo']>('scrollTo')\n setAttribute = createSpy2<HTMLDivElement['setAttribute']>('setAttribute')\n setAttributeNS =\n createSpy2<HTMLDivElement['setAttributeNS']>('setAttributeNS')\n setAttributeNode =\n createSpy2<HTMLDivElement['setAttributeNode']>('setAttributeNode')\n setAttributeNodeNS =\n createSpy2<HTMLDivElement['setAttributeNodeNS']>('setAttributeNodeNS')\n setHTMLUnsafe = createSpy2<HTMLDivElement['setHTMLUnsafe']>('setHTMLUnsafe')\n setPointerCapture =\n createSpy2<HTMLDivElement['setPointerCapture']>('setPointerCapture')\n toggleAttribute =\n createSpy2<HTMLDivElement['toggleAttribute']>('toggleAttribute')\n webkitMatchesSelector = createSpy2<HTMLDivElement['webkitMatchesSelector']>(\n 'webkitMatchesSelector'\n )\n blur = createSpy2<HTMLDivElement['blur']>('blur')\n focus = createSpy2<HTMLDivElement['focus']>('focus')\n appendChild = createSpy2<HTMLDivElement['appendChild']>('appendChild')\n cloneNode = createSpy2<HTMLDivElement['cloneNode']>('cloneNode')\n compareDocumentPosition = createSpy2<\n HTMLDivElement['compareDocumentPosition']\n >('compareDocumentPosition')\n contains = createSpy2<HTMLDivElement['contains']>('contains')\n getRootNode = createSpy2<HTMLDivElement['getRootNode']>('getRootNode')\n hasChildNodes = createSpy2<HTMLDivElement['hasChildNodes']>('hasChildNodes')\n insertBefore = createSpy2<HTMLDivElement['insertBefore']>('insertBefore')\n isDefaultNamespace =\n createSpy2<HTMLDivElement['isDefaultNamespace']>('isDefaultNamespace')\n isEqualNode = createSpy2<HTMLDivElement['isEqualNode']>('isEqualNode')\n isSameNode = createSpy2<HTMLDivElement['isSameNode']>('isSameNode')\n lookupNamespaceURI =\n createSpy2<HTMLDivElement['lookupNamespaceURI']>('lookupNamespaceURI')\n lookupPrefix = createSpy2<HTMLDivElement['lookupPrefix']>('lookupPrefix')\n normalize = createSpy2<HTMLDivElement['normalize']>('normalize')\n removeChild = createSpy2<HTMLDivElement['removeChild']>('removeChild')\n replaceChild = createSpy2<HTMLDivElement['replaceChild']>('replaceChild')\n animate = createSpy2<HTMLDivElement['animate']>('animate')\n getAnimations = createSpy2<HTMLDivElement['getAnimations']>('getAnimations')\n after = createSpy2<HTMLDivElement['after']>('after')\n before = createSpy2<HTMLDivElement['before']>('before')\n remove = createSpy2<HTMLDivElement['remove']>('remove')\n replaceWith = createSpy2<HTMLDivElement['replaceWith']>('replaceWith')\n append = createSpy2<HTMLDivElement['append']>('append')\n prepend = createSpy2<HTMLDivElement['prepend']>('prepend')\n querySelector = createSpy2<HTMLDivElement['querySelector']>('querySelector')\n querySelectorAll =\n createSpy2<HTMLDivElement['querySelectorAll']>('querySelectorAll')\n replaceChildren =\n createSpy2<HTMLDivElement['replaceChildren']>('replaceChildren')\n dispatchEvent = createSpy2<HTMLDivElement['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockHTMLMediaElement implements HTMLMediaElement {\n autoplay: boolean = false\n buffered: TimeRanges = undefined as any\n controls: boolean = false\n crossOrigin: string | null = ''\n currentSrc: string = ''\n currentTime: number = 0\n defaultMuted: boolean = false\n defaultPlaybackRate: number = 0\n disableRemotePlayback: boolean = false\n duration: number = 0\n ended: boolean = false\n error: MediaError | null = null\n loop: boolean = false\n mediaKeys: MediaKeys | null = null\n muted: boolean = false\n networkState: number = 0\n onencrypted:\n ((this: HTMLMediaElement, ev: MediaEncryptedEvent) => any) | null = null\n onwaitingforkey: ((this: HTMLMediaElement, ev: Event) => any) | null = null\n paused: boolean = false\n playbackRate: number = 0\n played: TimeRanges = undefined as any\n preload: 'none' | 'metadata' | 'auto' | '' = 'none'\n preservesPitch: boolean = false\n readyState: number = 0\n remote: RemotePlayback = undefined as any\n seekable: TimeRanges = undefined as any\n seeking: boolean = false\n sinkId: string = ''\n src: string = ''\n srcObject: MediaProvider | null = undefined as any\n textTracks: TextTrackList = undefined as any\n volume: number = 0\n NETWORK_EMPTY: 0 = 0\n NETWORK_IDLE: 1 = 1\n NETWORK_LOADING: 2 = 2\n NETWORK_NO_SOURCE: 3 = 3\n HAVE_NOTHING: 0 = 0\n HAVE_METADATA: 1 = 1\n HAVE_CURRENT_DATA: 2 = 2\n HAVE_FUTURE_DATA: 3 = 3\n HAVE_ENOUGH_DATA: 4 = 4\n accessKey: string = ''\n accessKeyLabel: string = ''\n autocapitalize: string = ''\n autocorrect: boolean = false\n dir: string = ''\n draggable: boolean = false\n hidden: boolean = false\n inert: boolean = false\n innerText: string = ''\n lang: string = ''\n offsetHeight: number = 0\n offsetLeft: number = 0\n offsetParent: Element | null = null\n offsetTop: number = 0\n offsetWidth: number = 0\n outerText: string = ''\n popover: string | null = ''\n spellcheck: boolean = false\n title: string = ''\n translate: boolean = false\n writingSuggestions: string = ''\n attributes: NamedNodeMap = undefined as any\n className: string = ''\n clientHeight: number = 0\n clientLeft: number = 0\n clientTop: number = 0\n clientWidth: number = 0\n currentCSSZoom: number = 0\n id: string = ''\n innerHTML: string = ''\n localName: string = ''\n namespaceURI: string | null = ''\n onfullscreenchange: ((this: Element, ev: Event) => any) | null = null\n onfullscreenerror: ((this: Element, ev: Event) => any) | null = null\n outerHTML: string = ''\n ownerDocument: Document = undefined as any\n prefix: string | null = ''\n scrollHeight: number = 0\n scrollLeft: number = 0\n scrollTop: number = 0\n scrollWidth: number = 0\n shadowRoot: ShadowRoot | null = null\n slot: string = ''\n tagName: string = ''\n classList: any = undefined\n part: any = undefined\n textContent: any = undefined\n attributeStyleMap: StylePropertyMap = undefined as any\n style: any = undefined\n contentEditable: string = ''\n enterKeyHint: string = ''\n inputMode: string = ''\n isContentEditable: boolean = false\n onabort: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null = null\n onanimationcancel:\n ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null = null\n onanimationend:\n ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null = null\n onanimationiteration:\n ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null = null\n onanimationstart:\n ((this: GlobalEventHandlers, ev: AnimationEvent) => any) | null = null\n onauxclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onbeforeinput: ((this: GlobalEventHandlers, ev: InputEvent) => any) | null =\n null\n onbeforematch: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onbeforetoggle:\n ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null = null\n onblur: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null = null\n oncancel: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncanplay: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncanplaythrough: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onchange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onclick: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onclose: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncontextlost: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncontextmenu:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n oncontextrestored: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n oncopy: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n oncuechange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oncut: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n ondblclick: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n ondrag: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondragend: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondragenter: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragleave: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragover: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondragstart: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null =\n null\n ondrop: ((this: GlobalEventHandlers, ev: DragEvent) => any) | null = null\n ondurationchange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onemptied: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onended: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onerror: OnErrorEventHandler = undefined as any\n onfocus: ((this: GlobalEventHandlers, ev: FocusEvent) => any) | null = null\n onformdata: ((this: GlobalEventHandlers, ev: FormDataEvent) => any) | null =\n null\n ongotpointercapture:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n oninput: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n oninvalid: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onkeydown: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onkeypress: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onkeyup: ((this: GlobalEventHandlers, ev: KeyboardEvent) => any) | null =\n null\n onload: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onloadeddata: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onloadedmetadata: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onloadstart: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onlostpointercapture:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onmousedown: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseenter: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseleave: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmousemove: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseout: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseover: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onmouseup: ((this: GlobalEventHandlers, ev: MouseEvent) => any) | null =\n null\n onpaste: ((this: GlobalEventHandlers, ev: ClipboardEvent) => any) | null =\n null\n onpause: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onplay: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onplaying: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onpointercancel:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerdown:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerenter:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerleave:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointermove:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerout:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerover:\n ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null = null\n onpointerrawupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onpointerup: ((this: GlobalEventHandlers, ev: PointerEvent) => any) | null =\n null\n onprogress: ((this: GlobalEventHandlers, ev: ProgressEvent) => any) | null =\n null\n onratechange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onreset: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onresize: ((this: GlobalEventHandlers, ev: UIEvent) => any) | null = null\n onscroll: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onscrollend: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onsecuritypolicyviolation:\n | ((this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any)\n | null = null\n onseeked: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onseeking: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onselect: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onselectionchange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onselectstart: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onslotchange: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onstalled: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onsubmit: ((this: GlobalEventHandlers, ev: SubmitEvent) => any) | null =\n null\n onsuspend: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n ontimeupdate: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n ontoggle: ((this: GlobalEventHandlers, ev: ToggleEvent) => any) | null =\n null\n ontransitioncancel:\n ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null = null\n ontransitionend:\n ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null = null\n ontransitionrun:\n ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null = null\n ontransitionstart:\n ((this: GlobalEventHandlers, ev: TransitionEvent) => any) | null = null\n onvolumechange: ((this: GlobalEventHandlers, ev: Event) => any) | null =\n null\n onwaiting: ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkitanimationend:\n ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkitanimationiteration:\n ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkitanimationstart:\n ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwebkittransitionend:\n ((this: GlobalEventHandlers, ev: Event) => any) | null = null\n onwheel: ((this: GlobalEventHandlers, ev: WheelEvent) => any) | null = null\n autofocus: boolean = false\n dataset: DOMStringMap = undefined as any\n tabIndex: number = 0\n baseURI: string = ''\n childNodes: NodeListOf<ChildNode> = undefined as any\n firstChild: ChildNode | null = null\n isConnected: boolean = false\n lastChild: ChildNode | null = null\n nextSibling: ChildNode | null = null\n nodeName: string = ''\n nodeType: number = 0\n nodeValue: string | null = ''\n parentElement: HTMLElement | null = null\n parentNode: ParentNode | null = null\n previousSibling: ChildNode | null = null\n ELEMENT_NODE: 1 = 1\n ATTRIBUTE_NODE: 2 = 2\n TEXT_NODE: 3 = 3\n CDATA_SECTION_NODE: 4 = 4\n ENTITY_REFERENCE_NODE: 5 = 5\n ENTITY_NODE: 6 = 6\n PROCESSING_INSTRUCTION_NODE: 7 = 7\n COMMENT_NODE: 8 = 8\n DOCUMENT_NODE: 9 = 9\n DOCUMENT_TYPE_NODE: 10 = 10\n DOCUMENT_FRAGMENT_NODE: 11 = 11\n NOTATION_NODE: 12 = 12\n DOCUMENT_POSITION_DISCONNECTED: 0x01 = 1\n DOCUMENT_POSITION_PRECEDING: 0x02 = 2\n DOCUMENT_POSITION_FOLLOWING: 0x04 = 4\n DOCUMENT_POSITION_CONTAINS: 0x08 = 8\n DOCUMENT_POSITION_CONTAINED_BY: 0x10 = 16\n DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20 = 32\n ariaActiveDescendantElement: Element | null = null\n ariaAtomic: string | null = ''\n ariaAutoComplete: string | null = ''\n ariaBrailleLabel: string | null = ''\n ariaBrailleRoleDescription: string | null = ''\n ariaBusy: string | null = ''\n ariaChecked: string | null = ''\n ariaColCount: string | null = ''\n ariaColIndex: string | null = ''\n ariaColIndexText: string | null = ''\n ariaColSpan: string | null = ''\n ariaControlsElements: ReadonlyArray<Element> | null = null\n ariaCurrent: string | null = ''\n ariaDescribedByElements: ReadonlyArray<Element> | null = null\n ariaDescription: string | null = ''\n ariaDetailsElements: ReadonlyArray<Element> | null = null\n ariaDisabled: string | null = ''\n ariaErrorMessageElements: ReadonlyArray<Element> | null = null\n ariaExpanded: string | null = ''\n ariaFlowToElements: ReadonlyArray<Element> | null = null\n ariaHasPopup: string | null = ''\n ariaHidden: string | null = ''\n ariaInvalid: string | null = ''\n ariaKeyShortcuts: string | null = ''\n ariaLabel: string | null = ''\n ariaLabelledByElements: ReadonlyArray<Element> | null = null\n ariaLevel: string | null = ''\n ariaLive: string | null = ''\n ariaModal: string | null = ''\n ariaMultiLine: string | null = ''\n ariaMultiSelectable: string | null = ''\n ariaOrientation: string | null = ''\n ariaOwnsElements: ReadonlyArray<Element> | null = null\n ariaPlaceholder: string | null = ''\n ariaPosInSet: string | null = ''\n ariaPressed: string | null = ''\n ariaReadOnly: string | null = ''\n ariaRelevant: string | null = ''\n ariaRequired: string | null = ''\n ariaRoleDescription: string | null = ''\n ariaRowCount: string | null = ''\n ariaRowIndex: string | null = ''\n ariaRowIndexText: string | null = ''\n ariaRowSpan: string | null = ''\n ariaSelected: string | null = ''\n ariaSetSize: string | null = ''\n ariaSort: string | null = ''\n ariaValueMax: string | null = ''\n ariaValueMin: string | null = ''\n ariaValueNow: string | null = ''\n ariaValueText: string | null = ''\n role: string | null = ''\n nextElementSibling: Element | null = null\n previousElementSibling: Element | null = null\n childElementCount: number = 0\n children: HTMLCollection = undefined as any\n firstElementChild: Element | null = null\n lastElementChild: Element | null = null\n assignedSlot: HTMLSlotElement | null = null\n\n addTextTrack = createSpy2<HTMLMediaElement['addTextTrack']>('addTextTrack')\n canPlayType = createSpy2<HTMLMediaElement['canPlayType']>('canPlayType')\n fastSeek = createSpy2<HTMLMediaElement['fastSeek']>('fastSeek')\n load = createSpy2<HTMLMediaElement['load']>('load')\n pause = createSpy2<HTMLMediaElement['pause']>('pause')\n play = createSpy2<HTMLMediaElement['play']>('play')\n setMediaKeys = createSpy2<HTMLMediaElement['setMediaKeys']>('setMediaKeys')\n setSinkId = createSpy2<HTMLMediaElement['setSinkId']>('setSinkId')\n addEventListener =\n createSpy2<HTMLMediaElement['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<HTMLMediaElement['removeEventListener']>(\n 'removeEventListener'\n )\n attachInternals =\n createSpy2<HTMLMediaElement['attachInternals']>('attachInternals')\n click = createSpy2<HTMLMediaElement['click']>('click')\n hidePopover = createSpy2<HTMLMediaElement['hidePopover']>('hidePopover')\n showPopover = createSpy2<HTMLMediaElement['showPopover']>('showPopover')\n togglePopover =\n createSpy2<HTMLMediaElement['togglePopover']>('togglePopover')\n attachShadow = createSpy2<HTMLMediaElement['attachShadow']>('attachShadow')\n checkVisibility =\n createSpy2<HTMLMediaElement['checkVisibility']>('checkVisibility')\n closest = createSpy2<HTMLMediaElement['closest']>('closest')\n computedStyleMap =\n createSpy2<HTMLMediaElement['computedStyleMap']>('computedStyleMap')\n getAttribute = createSpy2<HTMLMediaElement['getAttribute']>('getAttribute')\n getAttributeNS =\n createSpy2<HTMLMediaElement['getAttributeNS']>('getAttributeNS')\n getAttributeNames =\n createSpy2<HTMLMediaElement['getAttributeNames']>('getAttributeNames')\n getAttributeNode =\n createSpy2<HTMLMediaElement['getAttributeNode']>('getAttributeNode')\n getAttributeNodeNS =\n createSpy2<HTMLMediaElement['getAttributeNodeNS']>('getAttributeNodeNS')\n getBoundingClientRect = createSpy2<\n HTMLMediaElement['getBoundingClientRect']\n >('getBoundingClientRect')\n getClientRects =\n createSpy2<HTMLMediaElement['getClientRects']>('getClientRects')\n getElementsByClassName = createSpy2<\n HTMLMediaElement['getElementsByClassName']\n >('getElementsByClassName')\n getElementsByTagName = createSpy2<HTMLMediaElement['getElementsByTagName']>(\n 'getElementsByTagName'\n )\n getElementsByTagNameNS = createSpy2<\n HTMLMediaElement['getElementsByTagNameNS']\n >('getElementsByTagNameNS')\n getHTML = createSpy2<HTMLMediaElement['getHTML']>('getHTML')\n hasAttribute = createSpy2<HTMLMediaElement['hasAttribute']>('hasAttribute')\n hasAttributeNS =\n createSpy2<HTMLMediaElement['hasAttributeNS']>('hasAttributeNS')\n hasAttributes =\n createSpy2<HTMLMediaElement['hasAttributes']>('hasAttributes')\n hasPointerCapture =\n createSpy2<HTMLMediaElement['hasPointerCapture']>('hasPointerCapture')\n insertAdjacentElement = createSpy2<\n HTMLMediaElement['insertAdjacentElement']\n >('insertAdjacentElement')\n insertAdjacentHTML =\n createSpy2<HTMLMediaElement['insertAdjacentHTML']>('insertAdjacentHTML')\n insertAdjacentText =\n createSpy2<HTMLMediaElement['insertAdjacentText']>('insertAdjacentText')\n matches = createSpy2<HTMLMediaElement['matches']>('matches')\n releasePointerCapture = createSpy2<\n HTMLMediaElement['releasePointerCapture']\n >('releasePointerCapture')\n removeAttribute =\n createSpy2<HTMLMediaElement['removeAttribute']>('removeAttribute')\n removeAttributeNS =\n createSpy2<HTMLMediaElement['removeAttributeNS']>('removeAttributeNS')\n removeAttributeNode = createSpy2<HTMLMediaElement['removeAttributeNode']>(\n 'removeAttributeNode'\n )\n requestFullscreen =\n createSpy2<HTMLMediaElement['requestFullscreen']>('requestFullscreen')\n requestPointerLock =\n createSpy2<HTMLMediaElement['requestPointerLock']>('requestPointerLock')\n scroll = createSpy2<HTMLMediaElement['scroll']>('scroll')\n scrollBy = createSpy2<HTMLMediaElement['scrollBy']>('scrollBy')\n scrollIntoView =\n createSpy2<HTMLMediaElement['scrollIntoView']>('scrollIntoView')\n scrollTo = createSpy2<HTMLMediaElement['scrollTo']>('scrollTo')\n setAttribute = createSpy2<HTMLMediaElement['setAttribute']>('setAttribute')\n setAttributeNS =\n createSpy2<HTMLMediaElement['setAttributeNS']>('setAttributeNS')\n setAttributeNode =\n createSpy2<HTMLMediaElement['setAttributeNode']>('setAttributeNode')\n setAttributeNodeNS =\n createSpy2<HTMLMediaElement['setAttributeNodeNS']>('setAttributeNodeNS')\n setHTMLUnsafe =\n createSpy2<HTMLMediaElement['setHTMLUnsafe']>('setHTMLUnsafe')\n setPointerCapture =\n createSpy2<HTMLMediaElement['setPointerCapture']>('setPointerCapture')\n toggleAttribute =\n createSpy2<HTMLMediaElement['toggleAttribute']>('toggleAttribute')\n webkitMatchesSelector = createSpy2<\n HTMLMediaElement['webkitMatchesSelector']\n >('webkitMatchesSelector')\n blur = createSpy2<HTMLMediaElement['blur']>('blur')\n focus = createSpy2<HTMLMediaElement['focus']>('focus')\n appendChild = createSpy2<HTMLMediaElement['appendChild']>('appendChild')\n cloneNode = createSpy2<HTMLMediaElement['cloneNode']>('cloneNode')\n compareDocumentPosition = createSpy2<\n HTMLMediaElement['compareDocumentPosition']\n >('compareDocumentPosition')\n contains = createSpy2<HTMLMediaElement['contains']>('contains')\n getRootNode = createSpy2<HTMLMediaElement['getRootNode']>('getRootNode')\n hasChildNodes =\n createSpy2<HTMLMediaElement['hasChildNodes']>('hasChildNodes')\n insertBefore = createSpy2<HTMLMediaElement['insertBefore']>('insertBefore')\n isDefaultNamespace =\n createSpy2<HTMLMediaElement['isDefaultNamespace']>('isDefaultNamespace')\n isEqualNode = createSpy2<HTMLMediaElement['isEqualNode']>('isEqualNode')\n isSameNode = createSpy2<HTMLMediaElement['isSameNode']>('isSameNode')\n lookupNamespaceURI =\n createSpy2<HTMLMediaElement['lookupNamespaceURI']>('lookupNamespaceURI')\n lookupPrefix = createSpy2<HTMLMediaElement['lookupPrefix']>('lookupPrefix')\n normalize = createSpy2<HTMLMediaElement['normalize']>('normalize')\n removeChild = createSpy2<HTMLMediaElement['removeChild']>('removeChild')\n replaceChild = createSpy2<HTMLMediaElement['replaceChild']>('replaceChild')\n animate = createSpy2<HTMLMediaElement['animate']>('animate')\n getAnimations =\n createSpy2<HTMLMediaElement['getAnimations']>('getAnimations')\n after = createSpy2<HTMLMediaElement['after']>('after')\n before = createSpy2<HTMLMediaElement['before']>('before')\n remove = createSpy2<HTMLMediaElement['remove']>('remove')\n replaceWith = createSpy2<HTMLMediaElement['replaceWith']>('replaceWith')\n append = createSpy2<HTMLMediaElement['append']>('append')\n prepend = createSpy2<HTMLMediaElement['prepend']>('prepend')\n querySelector =\n createSpy2<HTMLMediaElement['querySelector']>('querySelector')\n querySelectorAll =\n createSpy2<HTMLMediaElement['querySelectorAll']>('querySelectorAll')\n replaceChildren =\n createSpy2<HTMLMediaElement['replaceChildren']>('replaceChildren')\n dispatchEvent =\n createSpy2<HTMLMediaElement['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockMediaError implements MediaError {\n code: number = 0\n message: string = ''\n MEDIA_ERR_ABORTED: 1 = 1\n MEDIA_ERR_NETWORK: 2 = 2\n MEDIA_ERR_DECODE: 3 = 3\n MEDIA_ERR_SRC_NOT_SUPPORTED: 4 = 4\n}\n\nexport class MockMediaKeyMessageEvent implements MediaKeyMessageEvent {\n message: ArrayBuffer = new ArrayBuffer(0)\n messageType: MediaKeyMessageType = 'individualization-request'\n bubbles: boolean = false\n cancelBubble: boolean = false\n cancelable: boolean = false\n composed: boolean = false\n currentTarget: EventTarget | null = null\n defaultPrevented: boolean = false\n eventPhase: number = 0\n isTrusted: boolean = false\n returnValue: boolean = false\n srcElement: EventTarget | null = null\n target: EventTarget | null = null\n timeStamp: DOMHighResTimeStamp = 0\n type: string = ''\n NONE: 0 = 0\n CAPTURING_PHASE: 1 = 1\n AT_TARGET: 2 = 2\n BUBBLING_PHASE: 3 = 3\n\n composedPath =\n createSpy2<MediaKeyMessageEvent['composedPath']>('composedPath')\n initEvent = createSpy2<MediaKeyMessageEvent['initEvent']>('initEvent')\n preventDefault =\n createSpy2<MediaKeyMessageEvent['preventDefault']>('preventDefault')\n stopImmediatePropagation = createSpy2<\n MediaKeyMessageEvent['stopImmediatePropagation']\n >('stopImmediatePropagation')\n stopPropagation =\n createSpy2<MediaKeyMessageEvent['stopPropagation']>('stopPropagation')\n}\n\nexport class MockMediaKeySession implements MediaKeySession {\n closed: Promise<MediaKeySessionClosedReason> = undefined as any\n expiration: number = 0\n keyStatuses: MediaKeyStatusMap = undefined as any\n onkeystatuseschange: ((this: MediaKeySession, ev: Event) => any) | null =\n null\n onmessage:\n ((this: MediaKeySession, ev: MediaKeyMessageEvent) => any) | null = null\n sessionId: string = ''\n\n close = createSpy2<MediaKeySession['close']>('close')\n generateRequest =\n createSpy2<MediaKeySession['generateRequest']>('generateRequest')\n load = createSpy2<MediaKeySession['load']>('load')\n remove = createSpy2<MediaKeySession['remove']>('remove')\n update = createSpy2<MediaKeySession['update']>('update')\n addEventListener =\n createSpy2<MediaKeySession['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<MediaKeySession['removeEventListener']>(\n 'removeEventListener'\n )\n dispatchEvent =\n createSpy2<MediaKeySession['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockMediaKeySystemAccess implements MediaKeySystemAccess {\n keySystem: string = ''\n\n createMediaKeys =\n createSpy2<MediaKeySystemAccess['createMediaKeys']>('createMediaKeys')\n getConfiguration =\n createSpy2<MediaKeySystemAccess['getConfiguration']>('getConfiguration')\n}\n\nexport class MockMediaKeys implements MediaKeys {\n createSession = createSpy2<MediaKeys['createSession']>('createSession')\n getStatusForPolicy =\n createSpy2<MediaKeys['getStatusForPolicy']>('getStatusForPolicy')\n setServerCertificate = createSpy2<MediaKeys['setServerCertificate']>(\n 'setServerCertificate'\n )\n}\n\nexport class MockMediaSource implements MediaSource {\n activeSourceBuffers: SourceBufferList = undefined as any\n duration: number = 0\n onsourceclose: ((this: MediaSource, ev: Event) => any) | null = null\n onsourceended: ((this: MediaSource, ev: Event) => any) | null = null\n onsourceopen: ((this: MediaSource, ev: Event) => any) | null = null\n readyState: ReadyState = 'closed'\n sourceBuffers: SourceBufferList = undefined as any\n\n addSourceBuffer =\n createSpy2<MediaSource['addSourceBuffer']>('addSourceBuffer')\n clearLiveSeekableRange = createSpy2<MediaSource['clearLiveSeekableRange']>(\n 'clearLiveSeekableRange'\n )\n endOfStream = createSpy2<MediaSource['endOfStream']>('endOfStream')\n removeSourceBuffer =\n createSpy2<MediaSource['removeSourceBuffer']>('removeSourceBuffer')\n setLiveSeekableRange = createSpy2<MediaSource['setLiveSeekableRange']>(\n 'setLiveSeekableRange'\n )\n addEventListener =\n createSpy2<MediaSource['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<MediaSource['removeEventListener']>(\n 'removeEventListener'\n )\n dispatchEvent = createSpy2<MediaSource['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockMediaStream implements MediaStream {\n active: boolean = false\n id: string = ''\n onaddtrack: ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null =\n null\n onremovetrack:\n ((this: MediaStream, ev: MediaStreamTrackEvent) => any) | null = null\n\n addTrack = createSpy2<MediaStream['addTrack']>('addTrack')\n clone = createSpy2<MediaStream['clone']>('clone')\n getAudioTracks = createSpy2<MediaStream['getAudioTracks']>('getAudioTracks')\n getTrackById = createSpy2<MediaStream['getTrackById']>('getTrackById')\n getTracks = createSpy2<MediaStream['getTracks']>('getTracks')\n getVideoTracks = createSpy2<MediaStream['getVideoTracks']>('getVideoTracks')\n removeTrack = createSpy2<MediaStream['removeTrack']>('removeTrack')\n addEventListener =\n createSpy2<MediaStream['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<MediaStream['removeEventListener']>(\n 'removeEventListener'\n )\n dispatchEvent = createSpy2<MediaStream['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockNavigator implements Navigator {\n clipboard: Clipboard = undefined as any\n credentials: CredentialsContainer = undefined as any\n doNotTrack: string | null = ''\n geolocation: Geolocation = undefined as any\n login: NavigatorLogin = undefined as any\n maxTouchPoints: number = 0\n mediaCapabilities: MediaCapabilities = undefined as any\n mediaDevices: MediaDevices = undefined as any\n mediaSession: MediaSession = undefined as any\n permissions: Permissions = undefined as any\n serviceWorker: ServiceWorkerContainer = undefined as any\n userActivation: UserActivation = undefined as any\n wakeLock: WakeLock = undefined as any\n webdriver: boolean = false\n hardwareConcurrency: number = 0\n cookieEnabled: boolean = false\n appCodeName: string = ''\n appName: string = ''\n appVersion: string = ''\n platform: string = ''\n product: string = ''\n productSub: string = ''\n userAgent: string = ''\n vendor: string = ''\n vendorSub: string = ''\n language: string = ''\n languages: ReadonlyArray<string> = []\n locks: LockManager = undefined as any\n onLine: boolean = false\n mimeTypes: MimeTypeArray = undefined as any\n pdfViewerEnabled: boolean = false\n plugins: PluginArray = undefined as any\n storage: StorageManager = undefined as any\n\n canShare = createSpy2<Navigator['canShare']>('canShare')\n getGamepads = createSpy2<Navigator['getGamepads']>('getGamepads')\n requestMIDIAccess =\n createSpy2<Navigator['requestMIDIAccess']>('requestMIDIAccess')\n requestMediaKeySystemAccess = createSpy2<\n Navigator['requestMediaKeySystemAccess']\n >('requestMediaKeySystemAccess')\n sendBeacon = createSpy2<Navigator['sendBeacon']>('sendBeacon')\n share = createSpy2<Navigator['share']>('share')\n vibrate = createSpy2<Navigator['vibrate']>('vibrate')\n clearAppBadge = createSpy2<Navigator['clearAppBadge']>('clearAppBadge')\n setAppBadge = createSpy2<Navigator['setAppBadge']>('setAppBadge')\n registerProtocolHandler = createSpy2<Navigator['registerProtocolHandler']>(\n 'registerProtocolHandler'\n )\n javaEnabled = createSpy2<Navigator['javaEnabled']>('javaEnabled')\n}\n\nexport class MockNode implements Node {\n baseURI: string = ''\n childNodes: NodeListOf<ChildNode> = undefined as any\n firstChild: ChildNode | null = null\n isConnected: boolean = false\n lastChild: ChildNode | null = null\n nextSibling: ChildNode | null = null\n nodeName: string = ''\n nodeType: number = 0\n nodeValue: string | null = ''\n ownerDocument: Document | null = null\n parentElement: HTMLElement | null = null\n parentNode: ParentNode | null = null\n previousSibling: ChildNode | null = null\n textContent: string | null = ''\n ELEMENT_NODE: 1 = 1\n ATTRIBUTE_NODE: 2 = 2\n TEXT_NODE: 3 = 3\n CDATA_SECTION_NODE: 4 = 4\n ENTITY_REFERENCE_NODE: 5 = 5\n ENTITY_NODE: 6 = 6\n PROCESSING_INSTRUCTION_NODE: 7 = 7\n COMMENT_NODE: 8 = 8\n DOCUMENT_NODE: 9 = 9\n DOCUMENT_TYPE_NODE: 10 = 10\n DOCUMENT_FRAGMENT_NODE: 11 = 11\n NOTATION_NODE: 12 = 12\n DOCUMENT_POSITION_DISCONNECTED: 0x01 = 1\n DOCUMENT_POSITION_PRECEDING: 0x02 = 2\n DOCUMENT_POSITION_FOLLOWING: 0x04 = 4\n DOCUMENT_POSITION_CONTAINS: 0x08 = 8\n DOCUMENT_POSITION_CONTAINED_BY: 0x10 = 16\n DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20 = 32\n\n appendChild = createSpy2<Node['appendChild']>('appendChild')\n cloneNode = createSpy2<Node['cloneNode']>('cloneNode')\n compareDocumentPosition = createSpy2<Node['compareDocumentPosition']>(\n 'compareDocumentPosition'\n )\n contains = createSpy2<Node['contains']>('contains')\n getRootNode = createSpy2<Node['getRootNode']>('getRootNode')\n hasChildNodes = createSpy2<Node['hasChildNodes']>('hasChildNodes')\n insertBefore = createSpy2<Node['insertBefore']>('insertBefore')\n isDefaultNamespace =\n createSpy2<Node['isDefaultNamespace']>('isDefaultNamespace')\n isEqualNode = createSpy2<Node['isEqualNode']>('isEqualNode')\n isSameNode = createSpy2<Node['isSameNode']>('isSameNode')\n lookupNamespaceURI =\n createSpy2<Node['lookupNamespaceURI']>('lookupNamespaceURI')\n lookupPrefix = createSpy2<Node['lookupPrefix']>('lookupPrefix')\n normalize = createSpy2<Node['normalize']>('normalize')\n removeChild = createSpy2<Node['removeChild']>('removeChild')\n replaceChild = createSpy2<Node['replaceChild']>('replaceChild')\n addEventListener = createSpy2<Node['addEventListener']>('addEventListener')\n dispatchEvent = createSpy2<Node['dispatchEvent']>('dispatchEvent')\n removeEventListener = createSpy2<Node['removeEventListener']>(\n 'removeEventListener'\n )\n}\n\nexport class MockProgressEvent<\n T extends EventTarget = EventTarget,\n> implements ProgressEvent<T> {\n lengthComputable: boolean = false\n loaded: number = 0\n target: T | null = undefined as any\n total: number = 0\n bubbles: boolean = false\n cancelBubble: boolean = false\n cancelable: boolean = false\n composed: boolean = false\n currentTarget: EventTarget | null = null\n defaultPrevented: boolean = false\n eventPhase: number = 0\n isTrusted: boolean = false\n returnValue: boolean = false\n srcElement: EventTarget | null = null\n timeStamp: DOMHighResTimeStamp = 0\n type: string = ''\n NONE: 0 = 0\n CAPTURING_PHASE: 1 = 1\n AT_TARGET: 2 = 2\n BUBBLING_PHASE: 3 = 3\n\n composedPath = createSpy2<ProgressEvent<T>['composedPath']>('composedPath')\n initEvent = createSpy2<ProgressEvent<T>['initEvent']>('initEvent')\n preventDefault =\n createSpy2<ProgressEvent<T>['preventDefault']>('preventDefault')\n stopImmediatePropagation = createSpy2<\n ProgressEvent<T>['stopImmediatePropagation']\n >('stopImmediatePropagation')\n stopPropagation =\n createSpy2<ProgressEvent<T>['stopPropagation']>('stopPropagation')\n}\n\nexport class MockPromiseRejectionEvent implements PromiseRejectionEvent {\n promise: Promise<any> = undefined as any\n reason: any = undefined\n bubbles: boolean = false\n cancelBubble: boolean = false\n cancelable: boolean = false\n composed: boolean = false\n currentTarget: EventTarget | null = null\n defaultPrevented: boolean = false\n eventPhase: number = 0\n isTrusted: boolean = false\n returnValue: boolean = false\n srcElement: EventTarget | null = null\n target: EventTarget | null = null\n timeStamp: DOMHighResTimeStamp = 0\n type: string = ''\n NONE: 0 = 0\n CAPTURING_PHASE: 1 = 1\n AT_TARGET: 2 = 2\n BUBBLING_PHASE: 3 = 3\n\n composedPath =\n createSpy2<PromiseRejectionEvent['composedPath']>('composedPath')\n initEvent = createSpy2<PromiseRejectionEvent['initEvent']>('initEvent')\n preventDefault =\n createSpy2<PromiseRejectionEvent['preventDefault']>('preventDefault')\n stopImmediatePropagation = createSpy2<\n PromiseRejectionEvent['stopImmediatePropagation']\n >('stopImmediatePropagation')\n stopPropagation =\n createSpy2<PromiseRejectionEvent['stopPropagation']>('stopPropagation')\n}\n\nexport class MockSourceBuffer implements SourceBuffer {\n appendWindowEnd: number = 0\n appendWindowStart: number = 0\n buffered: TimeRanges = undefined as any\n mode: AppendMode = 'segments'\n onabort: ((this: SourceBuffer, ev: Event) => any) | null = null\n onerror: ((this: SourceBuffer, ev: Event) => any) | null = null\n onupdate: ((this: SourceBuffer, ev: Event) => any) | null = null\n onupdateend: ((this: SourceBuffer, ev: Event) => any) | null = null\n onupdatestart: ((this: SourceBuffer, ev: Event) => any) | null = null\n timestampOffset: number = 0\n updating: boolean = false\n\n abort = createSpy2<SourceBuffer['abort']>('abort')\n appendBuffer = createSpy2<SourceBuffer['appendBuffer']>('appendBuffer')\n changeType = createSpy2<SourceBuffer['changeType']>('changeType')\n remove = createSpy2<SourceBuffer['remove']>('remove')\n addEventListener =\n createSpy2<SourceBuffer['addEventListener']>('addEventListener')\n removeEventListener = createSpy2<SourceBuffer['removeEventListener']>(\n 'removeEventListener'\n )\n dispatchEvent = createSpy2<SourceBuffer['dispatchEvent']>('dispatchEvent')\n}\n\nexport class MockStorage implements Storage {\n [key: string]: any\n\n length: number = 0\n\n clear = createSpy2<Storage['clear']>('clear')\n getItem = createSpy2<Storage['getItem']>('getItem')\n key = createSpy2<Storage['key']>('key')\n removeItem = createSpy2<Storage['removeItem']>('removeItem')\n setItem = createSpy2<Storage['setItem']>('setItem')\n}\n\nexport class MockText implements Text {\n wholeText: string = ''\n data: string = ''\n length: number = 0\n ownerDocument: Document = undefined as any\n textContent: any = undefined\n assignedSlot: HTMLSlotElement | null = null\n baseURI: string = ''\n childNodes: NodeListOf<ChildNode> = undefined as any\n firstChild: ChildNode | null = null\n isConnected: boolean = false\n lastChild: ChildNode | null = null\n nextSibling: ChildNode | null = null\n nodeName: string = ''\n nodeType: number = 0\n nodeValue: string | null = ''\n parentElement: HTMLElement | null = null\n parentNode: ParentNode | null = null\n previousSibling: ChildNode | null = null\n ELEMENT_NODE: 1 = 1\n ATTRIBUTE_NODE: 2 = 2\n TEXT_NODE: 3 = 3\n CDATA_SECTION_NODE: 4 = 4\n ENTITY_REFERENCE_NODE: 5 = 5\n ENTITY_NODE: 6 = 6\n PROCESSING_INSTRUCTION_NODE: 7 = 7\n COMMENT_NODE: 8 = 8\n DOCUMENT_NODE: 9 = 9\n DOCUMENT_TYPE_NODE: 10 = 10\n DOCUMENT_FRAGMENT_NODE: 11 = 11\n NOTATION_NODE: 12 = 12\n DOCUMENT_POSITION_DISCONNECTED: 0x01 = 1\n DOCUMENT_POSITION_PRECEDING: 0x02 = 2\n DOCUMENT_POSITION_FOLLOWING: 0x04 = 4\n DOCUMENT_POSITION_CONTAINS: 0x08 = 8\n DOCUMENT_POSITION_CONTAINED_BY: 0x10 = 16\n DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: 0x20 = 32\n nextElementSibling: Element | null = null\n previousElementSibling: Element | null = null\n\n splitText = createSpy2<Text['splitText']>('splitText')\n appendData = createSpy2<Text['appendData']>('appendData')\n deleteData = createSpy2<Text['deleteData']>('deleteData')\n insertData = createSpy2<Text['insertData']>('insertData')\n replaceData = createSpy2<Text['replaceData']>('replaceData')\n substringData = createSpy2<Text['substringData']>('substringData')\n appendChild = createSpy2<Text['appendChild']>('appendChild')\n cloneNode = createSpy2<Text['cloneNode']>('cloneNode')\n compareDocumentPosition = createSpy2<Text['compareDocumentPosition']>(\n 'compareDocumentPosition'\n )\n contains = createSpy2<Text['contains']>('contains')\n getRootNode = createSpy2<Text['getRootNode']>('getRootNode')\n hasChildNodes = createSpy2<Text['hasChildNodes']>('hasChildNodes')\n insertBefore = createSpy2<Text['insertBefore']>('insertBefore')\n isDefaultNamespace =\n createSpy2<Text['isDefaultNamespace']>('isDefaultNamespace')\n isEqualNode = createSpy2<Text['isEqualNode']>('isEqualNode')\n isSameNode = createSpy2<Text['isSameNode']>('isSameNode')\n lookupNamespaceURI =\n createSpy2<Text['lookupNamespaceURI']>('lookupNamespaceURI')\n lookupPrefix = createSpy2<Text['lookupPrefix']>('lookupPrefix')\n normalize = createSpy2<Text['normalize']>('normalize')\n removeChild = createSpy2<Text['removeChild']>('removeChild')\n replaceChild = createSpy2<Text['replaceChild']>('replaceChild')\n after = createSpy2<Text['after']>('after')\n before = createSpy2<Text['before']>('before')\n remove = createSpy2<Text['remove']>('remove')\n replaceWith = createSpy2<Text['replaceWith']>('replaceWith')\n addEventListener = createSpy2<Text['addEventListener']>('addEventListener')\n dispatchEvent = createSpy2<Text['dispatchEvent']>('dispatchEvent')\n removeEventListener = createSpy2<Text['removeEventListener']>(\n 'removeEventListener'\n )\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MockAbortSignal, MockMediaSource } from './lib.dom'\nimport { createSpy2 } from '../createSpyFactory'\n\nexport class MockMediaSourceGlobal extends MockMediaSource {\n static canConstructInDedicatedWorker = false\n static isTypeSupported =\n createSpy2<(typeof global.MediaSource)['isTypeSupported']>(\n 'isTypeSupported'\n )\n}\n\nexport class MockAbortSignalGlobal extends MockAbortSignal {\n static abort = createSpy2<(typeof global.AbortSignal)['abort']>('abort')\n static any = createSpy2<(typeof global.AbortSignal)['any']>('any')\n static timeout =\n createSpy2<(typeof global.AbortSignal)['timeout']>('timeout')\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MockEvent } from './lib.dom'\n\n/**\n * A convenience function to create a MockEvent with a given type.\n * @param type\n */\nexport function mockEvent(type: string): MockEvent {\n const e = new MockEvent()\n e.type = type\n return e\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\n/**\n * An implementation of DOM TimeRanges that uses a source array of start/end tuples.\n * For testing purposes only.\n */\nexport class MockTimeRanges implements TimeRanges {\n constructor(\n private ranges: ReadonlyArray<\n readonly [start: number, end: number]\n > = []\n ) {\n // check the ranges are valid\n for (let i = 1; i < ranges.length; i++) {\n const prev = ranges[i - 1]\n const range = ranges[i]\n if (range[0] >= range[1] || range[0] <= prev[1])\n throw new Error('invalid ranges')\n }\n }\n\n get length(): number {\n return this.ranges.length\n }\n\n start(index: number): number {\n return this.ranges[index][0]\n }\n\n end(index: number): number {\n return this.ranges[index][1]\n }\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport type { MockEvent } from './dom/lib.dom'\nimport { asSpy } from './asSpy'\n\ntype Callback = (event: Event) => any\ninterface CallbackOptions {\n once: boolean\n}\n\nexport interface EventFakesHandle {\n /**\n * Returns true if there are any remaining listeners on this event target.\n */\n hasAnyListeners(): boolean\n}\n\n/**\n * Implements addEventListener, dispatchEvent, and removeEventListener.\n * Simulates browser behavior for dispatching events.\n *\n * Does not differentiate between passive and active listeners or work with a dom hierarchy\n * for bubble/capture phases.\n *\n * `dispatchEvent` must use subtypes of MockEvent.\n */\nexport function implementEventFakes(target: EventTarget): EventFakesHandle {\n // type -> capture -> options\n const callbacks = new Map<\n string,\n Map<boolean, Map<Callback, CallbackOptions>>\n >()\n\n asSpy(target, 'addEventListener').and.callFake(\n (\n type: string,\n callback: Callback,\n addOptions?: AddEventListenerOptions | boolean\n ) => {\n if (!callbacks.has(type)) callbacks.set(type, new Map())\n const captureMap = callbacks.get(type)!\n let newOptions: CallbackOptions\n let capture: boolean\n if (addOptions == null) {\n newOptions = { once: false }\n capture = false\n } else if (typeof addOptions === 'boolean') {\n newOptions = { once: false }\n capture = addOptions\n } else {\n newOptions = { once: addOptions.once ?? false }\n capture = addOptions.capture ?? false\n }\n\n if (!captureMap.has(capture)) captureMap.set(capture, new Map())\n const callbacksMap = captureMap.get(capture)!\n if (!callbacksMap.has(callback)) {\n // A repeat call to addEventListener with the same type and callback but with\n // a different `once` value will not overwrite the previous once. This is normal\n // browser behavior.\n callbacksMap.set(callback, newOptions)\n }\n }\n )\n\n asSpy(target, 'removeEventListener').and.callFake(\n (\n type: string,\n callback: Callback,\n options?: EventListenerOptions | boolean\n ) => {\n if (!callbacks.has(type)) return\n const captureMap = callbacks.get(type)!\n const capture =\n typeof options === 'boolean'\n ? options\n : (options?.capture ?? false)\n if (!captureMap.has(capture)) return\n const callbacksMap = captureMap.get(capture)!\n callbacksMap.delete(callback)\n }\n )\n\n asSpy(target, 'dispatchEvent').and.callFake((event: MockEvent): boolean => {\n // Note, does not support a display hierarchy and bubble/capture phases. Simulates only\n // at target such as an EventTarget object would support.\n if (!callbacks.has(event.type)) return true\n const captureMap = callbacks.get(event.type)!\n event.eventPhase = event.AT_TARGET\n event.currentTarget = target\n event.target = target\n\n if (captureMap.has(true)) {\n const captureCallbacks = captureMap.get(true)!\n for (const [callback, options] of captureCallbacks.entries()) {\n if (event.stopImmediatePropagation.calls.any()) break\n if (\n event.eventPhase === event.AT_TARGET ||\n event.eventPhase === event.CAPTURING_PHASE\n ) {\n if (options.once) {\n target.removeEventListener(event.type, callback, true)\n }\n callback(event)\n }\n }\n }\n if (captureMap.has(false)) {\n const bubbleCallbacks = captureMap.get(false)!\n for (const [callback, options] of bubbleCallbacks.entries()) {\n if (event.stopImmediatePropagation.calls.any()) break\n if (\n event.eventPhase === event.AT_TARGET ||\n event.eventPhase === event.BUBBLING_PHASE\n ) {\n if (options.once) {\n target.removeEventListener(event.type, callback, false)\n }\n callback(event)\n }\n }\n }\n return !event.cancelable || !event.preventDefault.calls.any()\n })\n\n return {\n hasAnyListeners(): boolean {\n for (const typeMap of callbacks.values()) {\n for (const captureMap of typeMap.values()) {\n if (captureMap.size > 0) return true\n }\n }\n return false\n },\n }\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport { MockEvent } from './dom/lib.dom'\n\nclass FakeCustomEvent<T = any> extends MockEvent implements CustomEvent<T> {\n readonly detail: T\n\n constructor(type: string, eventInitDict?: CustomEventInit<T>) {\n super()\n this.type = type\n this.detail = eventInitDict?.detail as T\n this.bubbles = eventInitDict?.bubbles ?? false\n this.cancelable = eventInitDict?.cancelable ?? false\n }\n\n initCustomEvent() {}\n}\n\nexport function polyfillCustomEvent() {\n beforeEach(() => {\n if (typeof window === 'undefined')\n (global as any).CustomEvent = FakeCustomEvent\n })\n\n afterEach(() => {\n if (typeof window === 'undefined') delete (global as any).CustomEvent\n })\n}\n", "/*\n * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n\nimport CustomReporter = jasmine.CustomReporter\nimport JasmineStartedInfo = jasmine.JasmineStartedInfo\nimport SpecResult = jasmine.SpecResult\nimport FailedExpectation = jasmine.FailedExpectation\n\nexport class ConsoleReporter implements CustomReporter {\n private errors: FailedExpectation[] = []\n\n jasmineStarted(suiteInfo: JasmineStartedInfo): void {\n console.log(\n `Running suite with ${suiteInfo.totalSpecsDefined} specs, seed ${suiteInfo.order.seed}`\n )\n console.log(\n 'Testing for UA:',\n typeof navigator === 'object' ? navigator.userAgent : 'Node.js/<21'\n )\n }\n\n specDone(result: SpecResult): void {\n if (result.failedExpectations.length > 0) {\n console.warn(`Spec failed: ${result.fullName}`)\n for (let i = 0; i < result.failedExpectations.length; i++) {\n console.warn(`Failure: ${result.failedExpectations[i].message}`)\n console.warn(result.failedExpectations[i].stack)\n this.errors.push(result.failedExpectations[i])\n }\n }\n }\n\n jasmineDone(): void {\n if (this.errors.length > 0) {\n console.log(`There were ${this.errors.length} errors:`)\n this.errors.forEach((error, index) => {\n console.error(`Error ${index + 1}:`, error)\n })\n } else {\n console.log('No errors were found.')\n }\n }\n}\n"],
|
|
5
|
+
"mappings": "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ACvB,sCAAqB;AACrB,qCAAoB;AACpB,uCAAsB;AACtB,sCAAgC;AAChC,gCAAe;AACf,mCAAkB;AAClB;AACA;AACA;AACA;AACA;AACA,2CAA0B;AAC1B,wCAAuB;AACvB,qCAAoB;AACpB,6CAA6B;AAC7B,mCAAoE;AACpE,6CACsE;AACtE,0CACsE;AACtE,gDACsE;AACtE,4CACsE;AACtE,sCACI;AACJ,yCACI;AACJ,yCAAwE;AACxE,0CACmE;AACnE,kCAAsE;AACtE,oCAAmE;AACnE,qCAAoE;AACpE,4CACI;AACJ,oCAAmE;AACnE,mCACI;AACJ,mCAAkE;AAClE,yCAAwE;AACxE,yCACoE;AACpE,6CACI;AACJ,kCACI;AACJ,uCAAsE;AACtE,iCACI;AACJ,sCACI;AACJ,kCAAqE;AACrE,qCAAwE;AACxE,uCACI;AACJ,uCACI;AACJ,sCACI;AACJ,uCACI;AACJ,kCAAqE;AACrE,4CACI;AACJ,qCAAoE;AACpE,mCAAkE;AAClE;AACA,mCAAuE;AACvE,sCACI;AACJ,+CACoE;AACpE,mCAAkE;AAClE,qCAAoE;AACpE,qCACI;AACJ,sCACI;AACJ,mCACI;AACJ,kCAAiE;AACjE,wCAAuE;AACvE,4CACI;AACJ,uCAAsE;AACtE,gDACoE;AACpE,uCACI;AACJ,wCACI;AACJ,wCACI;AACJ,uCACI;AACJ,sCACI;AACJ,uCACI;AACJ,qCACI;AACJ,mCACI;AACJ,mCAAkE;AAClE,kCAAiE;AACjE,qCAAoE;AACpE,2CACoE;AACpE,yCACoE;AACpE,0CACoE;AACpE,0CACoE;AACpE,yCACoE;AACpE,wCACoE;AACpE,yCACoE;AACpE,8CACI;AACJ,uCACI;AACJ,sCACI;AACJ,wCAAuE;AACvE,mCAAkE;AAClE,oCAAqE;AACrE,oCAAmE;AACnE,uCAAsE;AACtE,qDAEa;AACb,oCAAmE;AACnE,qCAAoE;AACpE,oCAAmE;AACnE,6CACI;AACJ,yCAAwE;AACxE,wCAAuE;AACvE,qCAAoE;AACpE,oCACI;AACJ,qCAAoE;AACpE,wCAAuE;AACvE,oCACI;AACJ,8CACuE;AACv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;AAC7B,mCAAoE;AACpE,6CACsE;AACtE,0CACsE;AACtE,gDACsE;AACtE,4CACsE;AACtE,sCACI;AACJ,yCACI;AACJ,yCAAwE;AACxE,0CACmE;AACnE,kCAAsE;AACtE,oCAAmE;AACnE,qCAAoE;AACpE,4CACI;AACJ,oCAAmE;AACnE,mCACI;AACJ,mCAAkE;AAClE,yCAAwE;AACxE,yCACoE;AACpE,6CACI;AACJ,kCACI;AACJ,uCAAsE;AACtE,iCACI;AACJ,sCACI;AACJ,kCAAqE;AACrE,qCAAwE;AACxE,uCACI;AACJ,uCACI;AACJ,sCACI;AACJ,uCACI;AACJ,kCAAqE;AACrE,4CACI;AACJ,qCAAoE;AACpE,mCAAkE;AAClE;AACA,mCAAuE;AACvE,sCACI;AACJ,+CACoE;AACpE,mCAAkE;AAClE,qCAAoE;AACpE,qCACI;AACJ,sCACI;AACJ,mCACI;AACJ,kCAAiE;AACjE,wCAAuE;AACvE,4CACI;AACJ,uCAAsE;AACtE,gDACoE;AACpE,uCACI;AACJ,wCACI;AACJ,wCACI;AACJ,uCACI;AACJ,sCACI;AACJ,uCACI;AACJ,qCACI;AACJ,mCACI;AACJ,mCAAkE;AAClE,kCAAiE;AACjE,qCAAoE;AACpE,2CACoE;AACpE,yCACoE;AACpE,0CACoE;AACpE,0CACoE;AACpE,yCACoE;AACpE,wCACoE;AACpE,yCACoE;AACpE,8CACI;AACJ,uCACI;AACJ,sCACI;AACJ,wCAAuE;AACvE,mCAAkE;AAClE,oCAAqE;AACrE,oCAAmE;AACnE,uCAAsE;AACtE,qDAEa;AACb,oCAAmE;AACnE,qCAAoE;AACpE,oCAAmE;AACnE,6CACI;AACJ,yCAAwE;AACxE,wCAAuE;AACvE,qCAAoE;AACpE,oCACI;AACJ,qCAAoE;AACpE,wCAAuE;AACvE,oCACI;AACJ,8CACuE;AACvE,2CACuE;AACvE,2CACuE;AACvE,6CACuE;AACvE,0CACI;AACJ,qCAAoE;AACpE,gDAC6D;AAC7D,sDAC6D;AAC7D,kDAC6D;AAC7D,iDAC6D;AAC7D,mCAAuE;AACvE,qCAAqB;AACrB;AACA,oCA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",
|
|
6
6
|
"names": ["benchmark", "createSpy", "createSpy2", "createSpy2", "createSpy2"]
|
|
7
7
|
}
|