{"version":3,"sources":["jsdelivr-header.js","/npm/jest-stencil-runner@0.0.9/dist/index.js"],"names":[],"mappings":"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","file":"/npm/jest-stencil-runner@0.0.9/dist/index.js","sourceRoot":"","sourcesContent":["/**\n * Minified by jsDelivr using Terser v5.39.0.\n * Original file: /npm/jest-stencil-runner@0.0.9/dist/index.js\n *\n * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files\n */\n","//#region rolldown:runtime\nvar __create = Object.create;\nvar __defProp = Object.defineProperty;\nvar __getOwnPropDesc = Object.getOwnPropertyDescriptor;\nvar __getOwnPropNames = Object.getOwnPropertyNames;\nvar __getProtoOf = Object.getPrototypeOf;\nvar __hasOwnProp = Object.prototype.hasOwnProperty;\nvar __export = (target, all) => {\n\tfor (var name in all) __defProp(target, name, {\n\t\tget: all[name],\n\t\tenumerable: true\n\t});\n};\nvar __copyProps = (to, from, except, desc) => {\n\tif (from && typeof from === \"object\" || typeof from === \"function\") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {\n\t\tkey = keys[i];\n\t\tif (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {\n\t\t\tget: ((k) => from[k]).bind(null, key),\n\t\t\tenumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable\n\t\t});\n\t}\n\treturn to;\n};\nvar __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, \"default\", {\n\tvalue: mod,\n\tenumerable: true\n}) : target, mod));\n\n//#endregion\nconst node_path = __toESM(require(\"node:path\"));\nconst node_url = __toESM(require(\"node:url\"));\nconst node_process = __toESM(require(\"node:process\"));\nconst jest_runner = __toESM(require(\"jest-runner\"));\nconst __stencil_core_internal_testing = __toESM(require(\"@stencil/core/internal/testing\"));\nconst __stencil_core_mock_doc = __toESM(require(\"@stencil/core/mock-doc\"));\nconst __stencil_core_internal_app_data = __toESM(require(\"@stencil/core/internal/app-data\"));\n\n//#region src/preset.ts\nconst __dirname$1 = node_path.default.dirname(node_url.default.fileURLToPath(require(\"url\").pathToFileURL(__filename).href));\nconst moduleExtensions = [\n\t\"ts\",\n\t\"tsx\",\n\t\"js\",\n\t\"mjs\",\n\t\"jsx\"\n];\nconst moduleExtensionRegexp = `(${moduleExtensions.join(\"|\")})`;\n/**\n* Create a Jest preset configuration for Stencil components.\n*/\nfunction createJestStencilPreset(options = {}) {\n\tconst preset = {\n\t\ttestEnvironment: \"node\",\n\t\tmoduleFileExtensions: [\n\t\t\t...moduleExtensions,\n\t\t\t\"json\",\n\t\t\t\"d.ts\"\n\t\t],\n\t\tmoduleNameMapper: {\n\t\t\t\"^@stencil/core/testing$\": \"jest-stencil-runner\",\n\t\t\t\"^@stencil/core$\": \"@stencil/core\",\n\t\t\t...options.moduleNameMapper\n\t\t},\n\t\tsetupFilesAfterEnv: [\"jest-stencil-runner/setup\"],\n\t\ttestPathIgnorePatterns: [\n\t\t\t\"/.cache\",\n\t\t\t\"/.stencil\",\n\t\t\t\"/.vscode\",\n\t\t\t\"/dist\",\n\t\t\t\"/node_modules\",\n\t\t\t\"/www\"\n\t\t],\n\t\ttestRegex: `${String.raw`(/__tests__/.*|\\.?(test|spec))\\.` + moduleExtensionRegexp}$`,\n\t\ttransform: { \"^.+\\\\.(ts|tsx|jsx|js|mjs|css)(\\\\?.*)?$\": node_path.default.resolve(__dirname$1, \"preprocessor.js\") },\n\t\twatchPathIgnorePatterns: [String.raw`^.+\\.d\\.ts$`],\n\t\tcollectCoverageFrom: [\n\t\t\t\"src/**/*.{ts,tsx}\",\n\t\t\t\"!src/**/*.d.ts\",\n\t\t\t\"!src/**/*.spec.{ts,tsx}\",\n\t\t\t\"!src/**/*.e2e.{ts,tsx}\"\n\t\t],\n\t\ttestTimeout: 3e4,\n\t\tsnapshotSerializers: [node_path.default.resolve(__dirname$1, \"snapshot.js\")]\n\t};\n\treturn preset;\n}\n\n//#endregion\n//#region src/runner.ts\n/**\n* Custom Jest test runner for Stencil components.\n* Compatible with Jest v30 and provides Stencil-specific test filtering.\n*/\nvar JestStencilRunner = class extends jest_runner.default {\n\t/**\n\t* Run tests with Stencil-specific filtering and setup.\n\t*/\n\trunTests(tests, watcher, options) {\n\t\tthis.setupStencilEnvironment();\n\t\tconst filteredTests = tests.filter((test) => this.shouldIncludeTest(test.path));\n\t\treturn super.runTests(filteredTests, watcher, options);\n\t}\n\t/**\n\t* Setup Stencil-specific environment variables.\n\t*/\n\tsetupStencilEnvironment() {\n\t\tif (!node_process.default.env.STENCIL_DEFAULT_TIMEOUT) {\n\t\t\tconst isCI = node_process.default.env.CI === \"true\";\n\t\t\tconst isE2E = node_process.default.env.STENCIL_E2E_TESTS === \"true\";\n\t\t\tif (isCI || isE2E) node_process.default.env.STENCIL_DEFAULT_TIMEOUT = \"30000\";\n\t\t\telse node_process.default.env.STENCIL_DEFAULT_TIMEOUT = \"15000\";\n\t\t}\n\t\tif (!node_process.default.env.STENCIL_SPEC_TESTS && !node_process.default.env.STENCIL_E2E_TESTS) node_process.default.env.STENCIL_SPEC_TESTS = \"true\";\n\t}\n\t/**\n\t* Determine if a test file should be included based on its path and environment.\n\t*/\n\tshouldIncludeTest(testPath) {\n\t\tconst normalizedPath = testPath.toLowerCase().replaceAll(\"\\\\\", \"/\");\n\t\tconst isE2ETest = normalizedPath.includes(\".e2e.\") || normalizedPath.includes(\"/e2e.\");\n\t\tconst runE2ETests = node_process.default.env.STENCIL_E2E_TESTS === \"true\";\n\t\tconst runSpecTests = node_process.default.env.STENCIL_SPEC_TESTS === \"true\";\n\t\tif (runE2ETests && isE2ETest) return true;\n\t\tif (runSpecTests && !isE2ETest) return true;\n\t\tif (!runE2ETests && !runSpecTests) return !isE2ETest;\n\t\treturn false;\n\t}\n};\n\n//#endregion\n//#region src/preprocessor.ts\n/**\n* Jest preprocessor for transforming TypeScript, JSX, and CSS files for Stencil components.\n* This uses Stencil's own transpiler to properly handle decorators and component transformations.\n*/\nconst JestStencilPreprocessor = {\n\tprocess(sourceText, sourcePath, options) {\n\t\tconst ext = getFileExtension(sourcePath);\n\t\tif (ext === \"css\") return { code: transformCSS(sourceText) };\n\t\treturn { code: transpileWithStencil(sourceText, sourcePath, options) };\n\t},\n\tgetCacheKey(sourceText, sourcePath, options) {\n\t\tconst key = [\n\t\t\tnode_process.default.version,\n\t\t\tsourceText,\n\t\t\tsourcePath,\n\t\t\tJSON.stringify(options),\n\t\t\t\"stencil-jest-preprocessor-v3\"\n\t\t];\n\t\treturn key.join(\":\");\n\t}\n};\n/**\n* Transpile TypeScript/JSX using Stencil's transpiler.\n*/\nfunction transpileWithStencil(sourceText, sourcePath, options) {\n\tconst { transpileSync } = require(\"@stencil/core/compiler\");\n\tconst transpileOptions = {\n\t\tfile: sourcePath,\n\t\tcurrentDirectory: options.config.rootDir || node_process.default.cwd(),\n\t\tcomponentExport: null,\n\t\tcomponentMetadata: \"compilerstatic\",\n\t\tcoreImportPath: \"@stencil/core/internal/testing\",\n\t\tmodule: \"cjs\",\n\t\tproxy: null,\n\t\tsourceMap: \"inline\",\n\t\tstyle: null,\n\t\tstyleImportData: \"queryparams\",\n\t\ttarget: \"es2017\",\n\t\ttransformAliasedImportPaths: false\n\t};\n\tconst results = transpileSync(sourceText, transpileOptions);\n\tconst hasErrors = results.diagnostics && results.diagnostics.some((diagnostic) => diagnostic.level === \"error\");\n\tif (hasErrors) {\n\t\tconst msg = results.diagnostics.map((diagnostic) => {\n\t\t\tlet m = \"\";\n\t\t\tif (diagnostic.relFilePath) {\n\t\t\t\tm += diagnostic.relFilePath;\n\t\t\t\tif (typeof diagnostic.lineNumber === \"number\") {\n\t\t\t\t\tm += `:${diagnostic.lineNumber + 1}`;\n\t\t\t\t\tif (typeof diagnostic.columnNumber === \"number\") m += `:${diagnostic.columnNumber}`;\n\t\t\t\t}\n\t\t\t\tm += \"\\n\";\n\t\t\t}\n\t\t\tm += diagnostic.messageText;\n\t\t\treturn m;\n\t\t}).join(\"\\n\\n\");\n\t\tthrow new Error(msg);\n\t}\n\treturn results.code || sourceText;\n}\n/**\n* Get file extension from path.\n*/\nfunction getFileExtension(filePath) {\n\treturn (filePath.split(\".\").pop() ?? \"\").toLowerCase().split(\"?\")[0];\n}\n/**\n* Transform CSS to a CommonJS module.\n*/\nfunction transformCSS(sourceText) {\n\treturn `module.exports = ${JSON.stringify(sourceText)};`;\n}\n\n//#endregion\n//#region src/environment.ts\n/**\n* Jest environment that provides the Stencil testing platform.\n* This sets up the proper DOM mocking and Stencil utilities.\n*/\nvar StencilEnvironment = class {\n\tglobal;\n\tconstructor() {\n\t\tthis.global = global;\n\t\tthis.setupStencilGlobals();\n\t}\n\tsetupStencilGlobals() {\n\t\t(0, __stencil_core_internal_testing.resetPlatform)();\n\t\tconst win$1 = __stencil_core_internal_testing.win;\n\t\tthis.global.window = win$1;\n\t\tthis.global.document = win$1.document;\n\t\tthis.global.HTMLElement = win$1.HTMLElement;\n\t\tthis.global.customElements = win$1.customElements;\n\t\tthis.global.Event = win$1.Event;\n\t\tthis.global.CustomEvent = win$1.CustomEvent;\n\t\tthis.global.MouseEvent = win$1.MouseEvent;\n\t\tthis.global.KeyboardEvent = win$1.KeyboardEvent;\n\t\tthis.global.addEventListener = win$1.addEventListener.bind(win$1);\n\t\tthis.global.removeEventListener = win$1.removeEventListener.bind(win$1);\n\t\tthis.global.requestAnimationFrame = win$1.requestAnimationFrame.bind(win$1);\n\t\tthis.global.cancelAnimationFrame = win$1.cancelAnimationFrame.bind(win$1);\n\t\tthis.global.localStorage = win$1.localStorage;\n\t\tthis.global.sessionStorage = win$1.sessionStorage;\n\t\tthis.global.location = win$1.location;\n\t\tthis.global.history = win$1.history;\n\t\tthis.global.navigator = win$1.navigator;\n\t\tthis.global.fetch = win$1.fetch;\n\t\tthis.global.console = console;\n\t\tthis.global.setTimeout = win$1.setTimeout.bind(win$1);\n\t\tthis.global.clearTimeout = win$1.clearTimeout.bind(win$1);\n\t\tthis.global.setInterval = win$1.setInterval.bind(win$1);\n\t\tthis.global.clearInterval = win$1.clearInterval.bind(win$1);\n\t\tthis.global.URL = win$1.URL;\n\t}\n\tsetup() {\n\t\t(0, __stencil_core_internal_testing.resetPlatform)();\n\t}\n\tasync teardown() {}\n\tgetVmContext() {\n\t\treturn this.global;\n\t}\n};\n\n//#endregion\n//#region src/matcher/html.ts\n/**\n* Custom matcher to check if an element's HTML matches the expected HTML.\n* @param input - The input to check.\n* @param shouldEqual - The expected HTML to compare against.\n* @returns A Jest matcher result object.\n*/\nfunction toEqualHtml(input, shouldEqual) {\n\treturn compareHtml(input, shouldEqual, true);\n}\n/**\n* Custom matcher to check if an element's Light DOM matches the expected HTML.\n* @param input - The input to check.\n* @param shouldEqual - The expected HTML to compare against.\n* @returns A Jest matcher result object.\n*/\nfunction toEqualLightHtml(input, shouldEqual) {\n\treturn compareHtml(input, shouldEqual, false);\n}\n/**\n* Helper function to compare HTML.\n* @param input - The input to check.\n* @param shouldEqual - The expected HTML to compare against.\n* @param serializeShadowRoot - Whether to serialize the shadow root.\n* @returns A Jest matcher result object.\n*/\nfunction compareHtml(input, shouldEqual, serializeShadowRoot) {\n\tif (input == null) throw new Error(`expect toEqualHtml() value is \"${input}\"`);\n\tif (typeof input.then === \"function\") throw new TypeError(`element must be a resolved value, not a promise, before it can be tested`);\n\tconst baseSerializationOptions = {\n\t\tprettyHtml: true,\n\t\touterHtml: true,\n\t\tremoveHtmlComments: false,\n\t\texcludeTags: [\"body\"],\n\t\tserializeShadowRoot\n\t};\n\tlet serializeA;\n\tif (input.nodeType === __stencil_core_mock_doc.NODE_TYPES.ELEMENT_NODE) {\n\t\tconst options = getSpecOptions(input);\n\t\tserializeA = (0, __stencil_core_mock_doc.serializeNodeToHtml)(input, {\n\t\t\t...baseSerializationOptions,\n\t\t\tremoveHtmlComments: options.includeAnnotations === false\n\t\t});\n\t} else if (input.nodeType === __stencil_core_mock_doc.NODE_TYPES.DOCUMENT_FRAGMENT_NODE) serializeA = (0, __stencil_core_mock_doc.serializeNodeToHtml)(input, {\n\t\t...baseSerializationOptions,\n\t\touterHtml: false,\n\t\texcludeTags: [\"style\"],\n\t\texcludeTagContent: [\"style\"]\n\t});\n\telse if (typeof input === \"string\") {\n\t\tconst parseA = (0, __stencil_core_mock_doc.parseHtmlToFragment)(input);\n\t\tserializeA = (0, __stencil_core_mock_doc.serializeNodeToHtml)(parseA, {\n\t\t\t...baseSerializationOptions,\n\t\t\touterHtml: false\n\t\t});\n\t} else throw new TypeError(`expect toEqualHtml() value should be an element, shadow root or string.`);\n\tconst parseB = (0, __stencil_core_mock_doc.parseHtmlToFragment)(shouldEqual);\n\tconst serializeB = (0, __stencil_core_mock_doc.serializeNodeToHtml)(parseB, {\n\t\t...baseSerializationOptions,\n\t\touterHtml: false\n\t});\n\tconst prettifiedA = prettifyHtml(serializeA);\n\tconst prettifiedB = prettifyHtml(serializeB);\n\tif (prettifiedA !== prettifiedB) {\n\t\texpect(prettifiedA).toBe(prettifiedB);\n\t\treturn {\n\t\t\tmessage: () => \"HTML does not match\",\n\t\t\tpass: false\n\t\t};\n\t}\n\treturn {\n\t\tmessage: () => \"expect HTML to match\",\n\t\tpass: true\n\t};\n}\n/**\n* Custom HTML prettifier that handles template elements properly\n*/\nfunction prettifyHtml(html) {\n\tconst lines = [];\n\tlet indentLevel = 0;\n\tconst indentSize = 2;\n\thtml = html.replaceAll(\"\\r\\n\", \"\\n\").replaceAll(\"\\r\", \"\\n\").replaceAll(/>\\s*</g, \"><\").trim();\n\tconst parts = html.split(/(<[^>]*>)/);\n\tfor (const part_ of parts) {\n\t\tconst part = part_.trim();\n\t\tif (!part) continue;\n\t\tif (part.startsWith(\"<\")) if (part.startsWith(\"</\")) {\n\t\t\tindentLevel = Math.max(0, indentLevel - 1);\n\t\t\tlines.push(\" \".repeat(indentLevel * indentSize) + part);\n\t\t} else if (part.endsWith(\"/>\")) lines.push(\" \".repeat(indentLevel * indentSize) + part);\n\t\telse {\n\t\t\tlines.push(\" \".repeat(indentLevel * indentSize) + part);\n\t\t\tconst tagName = part.match(/<([a-z][a-z0-9-]*)/i)?.[1]?.toLowerCase();\n\t\t\tconst voidElements = [\n\t\t\t\t\"area\",\n\t\t\t\t\"base\",\n\t\t\t\t\"br\",\n\t\t\t\t\"col\",\n\t\t\t\t\"embed\",\n\t\t\t\t\"hr\",\n\t\t\t\t\"img\",\n\t\t\t\t\"input\",\n\t\t\t\t\"link\",\n\t\t\t\t\"meta\",\n\t\t\t\t\"param\",\n\t\t\t\t\"source\",\n\t\t\t\t\"track\",\n\t\t\t\t\"wbr\"\n\t\t\t];\n\t\t\tif (!voidElements.includes(tagName || \"\")) indentLevel++;\n\t\t}\n\t\telse if (part.length > 0) lines.push(\" \".repeat(indentLevel * indentSize) + part);\n\t}\n\treturn lines.join(\"\\n\");\n}\nfunction getSpecOptions(el) {\n\tif (el && el.ownerDocument && el.ownerDocument.defaultView) return el.ownerDocument.defaultView.__stencil_spec_options || {};\n\treturn {};\n}\n\n//#endregion\n//#region src/matcher/utils.ts\n/**\n* Deep equal comparison of two values.\n* @param a - The first value to compare.\n* @param b - The second value to compare.\n* @returns True if the values are equal, false otherwise.\n*/\nfunction deepEqual(a, b) {\n\tif (a === b) return true;\n\tif (a && b && typeof a === \"object\" && typeof b === \"object\") {\n\t\tconst arrA = Array.isArray(a), arrB = Array.isArray(b);\n\t\tlet i, length, key;\n\t\tif (arrA && arrB) {\n\t\t\tlength = a.length;\n\t\t\tif (length !== b.length) return false;\n\t\t\tfor (i = length; i-- !== 0;) if (!deepEqual(a[i], b[i])) return false;\n\t\t\treturn true;\n\t\t}\n\t\tif (arrA !== arrB) return false;\n\t\tconst dateA = a instanceof Date, dateB = b instanceof Date;\n\t\tif (dateA !== dateB) return false;\n\t\tif (dateA && dateB) return a.getTime() === b.getTime();\n\t\tconst regexpA = a instanceof RegExp, regexpB = b instanceof RegExp;\n\t\tif (regexpA !== regexpB) return false;\n\t\tif (regexpA && regexpB) return a.toString() === b.toString();\n\t\tconst keys = Object.keys(a);\n\t\tlength = keys.length;\n\t\tif (length !== Object.keys(b).length) return false;\n\t\tfor (i = length; i-- !== 0;) if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\t\tfor (i = length; i-- !== 0;) {\n\t\t\tkey = keys[i];\n\t\t\tif (!deepEqual(a[key], b[key])) return false;\n\t\t}\n\t\treturn true;\n\t}\n\treturn a !== a && b !== b;\n}\n\n//#endregion\n//#region src/matcher/events.ts\n/**\n* Custom matcher to check if an event has been received.\n* @param eventSpy - The event spy to check.\n* @returns A Jest matcher result object.\n*/\nfunction toHaveReceivedEvent(eventSpy) {\n\tif (!eventSpy) throw new Error(`toHaveReceivedEvent event spy is null`);\n\tif (typeof eventSpy.then === \"function\") throw new TypeError(`event spy must be a resolved value, not a promise, before it can be tested`);\n\tif (!eventSpy.eventName) throw new Error(`toHaveReceivedEvent did not receive an event spy`);\n\tconst pass = eventSpy.events.length > 0;\n\treturn {\n\t\tmessage: () => `expected to have ${pass ? \"not \" : \"\"}called \"${eventSpy.eventName}\" event`,\n\t\tpass\n\t};\n}\n/**\n* Custom matcher to check if an event has been received a specific number of times.\n* @param eventSpy - The event spy to check.\n* @param count - The number of times the event should have been received.\n* @returns A Jest matcher result object.\n*/\nfunction toHaveReceivedEventTimes(eventSpy, count) {\n\tif (!eventSpy) throw new Error(`toHaveReceivedEventTimes event spy is null`);\n\tif (typeof eventSpy.then === \"function\") throw new TypeError(`event spy must be a resolved value, not a promise, before it can be tested`);\n\tif (!eventSpy.eventName) throw new Error(`toHaveReceivedEventTimes did not receive an event spy`);\n\tconst pass = eventSpy.length === count;\n\treturn {\n\t\tmessage: () => `expected event \"${eventSpy.eventName}\" to have been called ${count} times, but was called ${eventSpy.events.length} time${eventSpy.events.length > 1 ? \"s\" : \"\"}`,\n\t\tpass\n\t};\n}\n/**\n* Custom matcher to check if an event has received a specific detail.\n* @param eventSpy - The event spy to check.\n* @param eventDetail - The detail to check for.\n* @returns A Jest matcher result object.\n*/\nfunction toHaveReceivedEventDetail(eventSpy, eventDetail) {\n\tif (!eventSpy) throw new Error(`toHaveReceivedEventDetail event spy is null`);\n\tif (typeof eventSpy.then === \"function\") throw new TypeError(`event spy must be a resolved value, not a promise, before it can be tested`);\n\tif (!eventSpy.eventName) throw new Error(`toHaveReceivedEventDetail did not receive an event spy`);\n\tif (!eventSpy.lastEvent) throw new Error(`event \"${eventSpy.eventName}\" was not received`);\n\tconst pass = deepEqual(eventSpy.lastEvent.detail, eventDetail);\n\texpect(eventSpy.lastEvent.detail).toEqual(eventDetail);\n\treturn {\n\t\tmessage: () => `expected event \"${eventSpy.eventName}\" detail to ${pass ? \"not \" : \"\"}equal`,\n\t\tpass\n\t};\n}\n/**\n* Custom matcher to check if an event has received the first detail.\n* @param eventSpy - The event spy to check.\n* @param eventDetail - The detail to check for.\n* @returns A Jest matcher result object.\n*/\nfunction toHaveFirstReceivedEventDetail(eventSpy, eventDetail) {\n\tif (!eventSpy) throw new Error(`toHaveFirstReceivedEventDetail event spy is null`);\n\tif (typeof eventSpy.then === \"function\") throw new TypeError(`event spy must be a resolved value, not a promise, before it can be tested`);\n\tif (!eventSpy.eventName) throw new Error(`toHaveFirstReceivedEventDetail did not receive an event spy`);\n\tif (!eventSpy.firstEvent) throw new Error(`event \"${eventSpy.eventName}\" was not received`);\n\tconst pass = deepEqual(eventSpy.firstEvent.detail, eventDetail);\n\texpect(eventSpy.firstEvent.detail).toEqual(eventDetail);\n\treturn {\n\t\tmessage: () => `expected event \"${eventSpy.eventName}\" detail to ${pass ? \"not \" : \"\"}equal`,\n\t\tpass\n\t};\n}\n/**\n* Custom matcher to check if an event has received the last detail.\n* @param eventSpy - The event spy to check.\n* @param eventDetail - The detail to check for.\n* @returns A Jest matcher result object.\n*/\nfunction toHaveLastReceivedEventDetail(eventSpy, eventDetail) {\n\tif (!eventSpy) throw new Error(`toHaveLastReceivedEventDetail event spy is null`);\n\tif (typeof eventSpy.then === \"function\") throw new TypeError(`event spy must be a resolved value, not a promise, before it can be tested`);\n\tif (!eventSpy.eventName) throw new Error(`toHaveLastReceivedEventDetail did not receive an event spy`);\n\tif (!eventSpy.firstEvent) throw new Error(`event \"${eventSpy.eventName}\" was not received`);\n\tconst pass = deepEqual(eventSpy.lastEvent.detail, eventDetail);\n\texpect(eventSpy.lastEvent.detail).toEqual(eventDetail);\n\treturn {\n\t\tmessage: () => `expected event \"${eventSpy.eventName}\" detail to ${pass ? \"not \" : \"\"}equal`,\n\t\tpass\n\t};\n}\n/**\n* Custom matcher to check if an event has received the detail at a specific index.\n* @param eventSpy - The event spy to check.\n* @param index - The index of the event to check.\n* @param eventDetail - The detail to check for.\n* @returns A Jest matcher result object.\n*/\nfunction toHaveNthReceivedEventDetail(eventSpy, index, eventDetail) {\n\tif (!eventSpy) throw new Error(`toHaveNthReceivedEventDetail event spy is null`);\n\tif (typeof eventSpy.then === \"function\") throw new TypeError(`event spy must be a resolved value, not a promise, before it can be tested`);\n\tif (!eventSpy.eventName) throw new Error(`toHaveNthReceivedEventDetail did not receive an event spy`);\n\tif (!eventSpy.firstEvent) throw new Error(`event \"${eventSpy.eventName}\" was not received`);\n\tconst event = eventSpy.events[index];\n\tif (!event) throw new Error(`event at index ${index} was not received`);\n\tconst pass = deepEqual(event.detail, eventDetail);\n\texpect(event.detail).toEqual(eventDetail);\n\treturn {\n\t\tmessage: () => `expected event \"${eventSpy.eventName}\" detail to ${pass ? \"not \" : \"\"}equal`,\n\t\tpass\n\t};\n}\n\n//#endregion\n//#region src/matcher/attribute.ts\n/**\n* Custom matcher to check if an element has a specific attribute value.\n* @param elm - The element to check.\n* @param expectAttrName - The name of the attribute to check for.\n* @param expectAttrValue - The value of the attribute to check for.\n* @returns A Jest matcher result object.\n*/\nfunction toEqualAttribute(elm, expectAttrName, expectAttrValue) {\n\tif (!elm) throw new Error(`expect toMatchAttribute value is null`);\n\tif (typeof elm.then === \"function\") throw new TypeError(`element must be a resolved value, not a promise, before it can be tested`);\n\tif (elm.nodeType !== __stencil_core_mock_doc.NODE_TYPES.ELEMENT_NODE) throw new Error(`expect toMatchAttribute value is not an element`);\n\tlet receivedAttrValue = elm.getAttribute(expectAttrName);\n\tif (expectAttrValue != null) expectAttrValue = String(expectAttrValue);\n\tif (receivedAttrValue != null) receivedAttrValue = String(receivedAttrValue);\n\tconst pass = expectAttrValue === receivedAttrValue;\n\treturn {\n\t\tmessage: () => `expected attribute ${expectAttrName} \"${expectAttrValue}\" to ${pass ? \"not \" : \"\"}equal \"${receivedAttrValue}\"`,\n\t\tpass\n\t};\n}\n/**\n* Custom matcher to check if an element has specific attributes.\n* @param elm - The element to check.\n* @param expectAttrs - The attributes to check for.\n* @returns A Jest matcher result object.\n*/\nfunction toEqualAttributes(elm, expectAttrs) {\n\tif (!elm) throw new Error(`expect toEqualAttributes value is null`);\n\tif (typeof elm.then === \"function\") throw new TypeError(`element must be a resolved value, not a promise, before it can be tested`);\n\tif (elm.nodeType !== __stencil_core_mock_doc.NODE_TYPES.ELEMENT_NODE) throw new Error(`expect toEqualAttributes value is not an element`);\n\tconst attrNames = Object.keys(expectAttrs);\n\tconst pass = attrNames.every((attrName) => {\n\t\tlet expectAttrValue = expectAttrs[attrName];\n\t\tif (expectAttrValue != null) expectAttrValue = String(expectAttrValue);\n\t\treturn elm.getAttribute(attrName) === expectAttrValue;\n\t});\n\treturn {\n\t\tmessage: () => `expected attributes to ${pass ? \"not \" : \"\"}equal ${attrNames.map((a) => `[${a}=\"${expectAttrs[a]}\"]`).join(\", \")}`,\n\t\tpass\n\t};\n}\n/**\n* Custom matcher to check if an element has a specific attribute.\n* @param elm - The element to check.\n* @param expectAttrName - The name of the attribute to check for.\n* @returns A Jest matcher result object.\n*/\nfunction toHaveAttribute(elm, expectAttrName) {\n\tif (!elm) throw new Error(`expect toHaveAttribute value is null`);\n\tif (typeof elm.then === \"function\") throw new TypeError(`element must be a resolved value, not a promise, before it can be tested`);\n\tif (elm.nodeType !== __stencil_core_mock_doc.NODE_TYPES.ELEMENT_NODE) throw new Error(`expect toHaveAttribute value is not an element`);\n\tconst pass = elm.hasAttribute(expectAttrName);\n\treturn {\n\t\tmessage: () => `expected to ${pass ? \"not \" : \"\"}have the attribute \"${expectAttrName}\"`,\n\t\tpass\n\t};\n}\n\n//#endregion\n//#region src/matcher/class.ts\n/**\n* Custom matcher to check if an element has a specific class.\n* @param elm - The element to check.\n* @param expectClassName - The class to check for.\n* @returns A Jest matcher result object.\n*/\nfunction toHaveClass(elm, expectClassName) {\n\tif (!elm) throw new Error(`expect toHaveClass value is null`);\n\tif (typeof elm.then === \"function\") throw new TypeError(`element must be a resolved value, not a promise, before it can be tested`);\n\tif (elm.nodeType !== 1) throw new Error(`expect toHaveClass value is not an element`);\n\tconst pass = elm.classList.contains(expectClassName);\n\treturn {\n\t\tmessage: () => `expected to ${pass ? \"not \" : \"\"}have css class \"${expectClassName}\"`,\n\t\tpass\n\t};\n}\n/**\n* Custom matcher to check if an element has specific classes.\n* @param elm - The element to check.\n* @param expectClassNames - The classes to check for.\n* @returns A Jest matcher result object.\n*/\nfunction toHaveClasses(elm, expectClassNames) {\n\tif (!elm) throw new Error(`expect toHaveClasses value is null`);\n\tif (typeof elm.then === \"function\") throw new TypeError(`element must be a resolved value, not a promise, before it can be tested`);\n\tif (elm.nodeType !== 1) throw new Error(`expect toHaveClasses value is not an element`);\n\tconst pass = expectClassNames.every((expectClassName) => {\n\t\treturn elm.classList.contains(expectClassName);\n\t});\n\treturn {\n\t\tmessage: () => `expected to ${pass ? \"not \" : \"\"}have css classes \"${expectClassNames.join(\" \")}\", but className is \"${elm.className}\"`,\n\t\tpass\n\t};\n}\n/**\n* Custom matcher to check if an element has the exact same css classes as the expected array of css classes.\n* @param elm - The element to check.\n* @param expectClassNames - The classes to check for.\n* @returns A Jest matcher result object.\n*/\nfunction toMatchClasses(elm, expectClassNames) {\n\tlet { pass } = toHaveClasses(elm, expectClassNames);\n\tif (pass) pass = expectClassNames.length === elm.classList.length;\n\treturn {\n\t\tmessage: () => `expected to ${pass ? \"not \" : \"\"}match css classes \"${expectClassNames.join(\" \")}\", but className is \"${elm.className}\"`,\n\t\tpass\n\t};\n}\n\n//#endregion\n//#region src/matcher/text.ts\nfunction toEqualText(input, expectTextContent) {\n\tif (input == null) throw new Error(`expect toEqualText() value is \"${input}\"`);\n\tif (typeof input.then === \"function\") throw new TypeError(`element must be a resolved value, not a promise, before it can be tested`);\n\tlet textContent;\n\tif (input.nodeType === __stencil_core_mock_doc.NODE_TYPES.ELEMENT_NODE) textContent = (input.textContent ?? \"\").replaceAll(/\\s{2,}/g, \" \").trim();\n\telse textContent = String(input).replaceAll(/\\s{2,}/g, \" \").trim();\n\tif (typeof expectTextContent === \"string\") expectTextContent = expectTextContent.replaceAll(/\\s{2,}/g, \" \").trim();\n\tconst pass = textContent === expectTextContent;\n\treturn {\n\t\tmessage: () => `expected textContent \"${expectTextContent}\" to ${pass ? \"not \" : \"\"}equal \"${textContent}\"`,\n\t\tpass\n\t};\n}\n\n//#endregion\n//#region src/matcher/index.ts\nvar matcher_exports = {};\n__export(matcher_exports, {\n\ttoEqualAttribute: () => toEqualAttribute,\n\ttoEqualAttributes: () => toEqualAttributes,\n\ttoEqualHtml: () => toEqualHtml,\n\ttoEqualLightHtml: () => toEqualLightHtml,\n\ttoEqualText: () => toEqualText,\n\ttoHaveAttribute: () => toHaveAttribute,\n\ttoHaveClass: () => toHaveClass,\n\ttoHaveClasses: () => toHaveClasses,\n\ttoHaveFirstReceivedEventDetail: () => toHaveFirstReceivedEventDetail,\n\ttoHaveLastReceivedEventDetail: () => toHaveLastReceivedEventDetail,\n\ttoHaveNthReceivedEventDetail: () => toHaveNthReceivedEventDetail,\n\ttoHaveReceivedEvent: () => toHaveReceivedEvent,\n\ttoHaveReceivedEventDetail: () => toHaveReceivedEventDetail,\n\ttoHaveReceivedEventTimes: () => toHaveReceivedEventTimes,\n\ttoMatchClasses: () => toMatchClasses\n});\n\n//#endregion\n//#region src/setup.ts\n/**\n* Setup function for Jest with Stencil testing.\n* This function is called after the test framework has been set up.\n*/\nfunction setupJestStencil() {\n\tsetupCustomMatchers();\n\tsetupTimeouts();\n}\n/**\n* Setup custom Jest matchers specific to Stencil testing.\n*/\nfunction setupCustomMatchers() {\n\tif (typeof expect !== \"undefined\" && expect.extend) expect.extend(matcher_exports);\n}\n/**\n* Configure test timeouts.\n*/\nfunction setupTimeouts() {\n\tif (typeof node_process.default !== \"undefined\" && node_process.default.env) {\n\t\tconst timeout = node_process.default.env.STENCIL_DEFAULT_TIMEOUT;\n\t\tif (timeout && typeof jest !== \"undefined\") jest.setTimeout(Number.parseInt(timeout, 10));\n\t}\n}\n\n//#endregion\n//#region src/reset-build-conditionals.ts\n/**\n* Reset build conditionals used for testing to a known \"good state\".\n*\n* This function does not return a value, but rather mutates its argument in place.\n* Certain values are set to `true` or `false` for testing purpose (see this function's implementation for the full\n* list). Build conditional options _not_ in that list that are set to `true` when this function is invoked will remain\n* set to `true`.\n*\n* @param b the build conditionals to reset.\n*/\nfunction resetBuildConditionals(b) {\n\tObject.keys(b).forEach((key) => {\n\t\tb[key] = true;\n\t});\n\tb.isDev = true;\n\tb.isTesting = true;\n\tb.isDebug = false;\n\tb.lazyLoad = true;\n\tb.member = true;\n\tb.reflect = true;\n\tb.scoped = true;\n\tb.shadowDom = true;\n\tb.slotRelocation = true;\n\tb.asyncLoading = true;\n\tb.svg = true;\n\tb.updatable = true;\n\tb.vdomAttribute = true;\n\tb.vdomClass = true;\n\tb.vdomFunctional = true;\n\tb.vdomKey = true;\n\tb.vdomPropOrAttr = true;\n\tb.vdomRef = true;\n\tb.vdomListener = true;\n\tb.vdomStyle = true;\n\tb.vdomText = true;\n\tb.vdomXlink = true;\n\tb.allRenderFn = false;\n\tb.devTools = false;\n\tb.hydrateClientSide = false;\n\tb.hydrateServerSide = false;\n\tb.cssAnnotations = false;\n\tb.style = false;\n\tb.hydratedAttribute = false;\n\tb.hydratedClass = true;\n\tb.invisiblePrehydration = true;\n\tb.appendChildSlotFix = false;\n\tb.cloneNodeFix = false;\n\tb.hotModuleReplacement = false;\n\tb.scriptDataOpts = false;\n\tb.scopedSlotTextContentFix = false;\n\tb.slotChildNodesFix = false;\n\tb.experimentalSlotFixes = false;\n\tb.experimentalScopedSlotChanges = false;\n}\n\n//#endregion\n//#region src/constants.ts\nlet MEMBER_FLAGS = /* @__PURE__ */ function(MEMBER_FLAGS$1) {\n\tMEMBER_FLAGS$1[MEMBER_FLAGS$1[\"String\"] = 1] = \"String\";\n\tMEMBER_FLAGS$1[MEMBER_FLAGS$1[\"Number\"] = 2] = \"Number\";\n\tMEMBER_FLAGS$1[MEMBER_FLAGS$1[\"Boolean\"] = 4] = \"Boolean\";\n\tMEMBER_FLAGS$1[MEMBER_FLAGS$1[\"Any\"] = 8] = \"Any\";\n\tMEMBER_FLAGS$1[MEMBER_FLAGS$1[\"Unknown\"] = 16] = \"Unknown\";\n\tMEMBER_FLAGS$1[MEMBER_FLAGS$1[\"State\"] = 32] = \"State\";\n\tMEMBER_FLAGS$1[MEMBER_FLAGS$1[\"Method\"] = 64] = \"Method\";\n\tMEMBER_FLAGS$1[MEMBER_FLAGS$1[\"Event\"] = 128] = \"Event\";\n\tMEMBER_FLAGS$1[MEMBER_FLAGS$1[\"Element\"] = 256] = \"Element\";\n\tMEMBER_FLAGS$1[MEMBER_FLAGS$1[\"ReflectAttr\"] = 512] = \"ReflectAttr\";\n\tMEMBER_FLAGS$1[MEMBER_FLAGS$1[\"Mutable\"] = 1024] = \"Mutable\";\n\tMEMBER_FLAGS$1[MEMBER_FLAGS$1[\"Getter\"] = 2048] = \"Getter\";\n\tMEMBER_FLAGS$1[MEMBER_FLAGS$1[\"Setter\"] = 4096] = \"Setter\";\n\tMEMBER_FLAGS$1[MEMBER_FLAGS$1[\"Prop\"] = 31] = \"Prop\";\n\tMEMBER_FLAGS$1[MEMBER_FLAGS$1[\"HasAttribute\"] = 15] = \"HasAttribute\";\n\tMEMBER_FLAGS$1[MEMBER_FLAGS$1[\"PropLike\"] = 63] = \"PropLike\";\n\treturn MEMBER_FLAGS$1;\n}({});\nlet LISTENER_FLAGS = /* @__PURE__ */ function(LISTENER_FLAGS$1) {\n\tLISTENER_FLAGS$1[LISTENER_FLAGS$1[\"Passive\"] = 1] = \"Passive\";\n\tLISTENER_FLAGS$1[LISTENER_FLAGS$1[\"Capture\"] = 2] = \"Capture\";\n\tLISTENER_FLAGS$1[LISTENER_FLAGS$1[\"TargetDocument\"] = 4] = \"TargetDocument\";\n\tLISTENER_FLAGS$1[LISTENER_FLAGS$1[\"TargetWindow\"] = 8] = \"TargetWindow\";\n\tLISTENER_FLAGS$1[LISTENER_FLAGS$1[\"TargetBody\"] = 16] = \"TargetBody\";\n\t/**\n\t* @deprecated Prevented from new apps, but left in for older collections\n\t*/\n\tLISTENER_FLAGS$1[LISTENER_FLAGS$1[\"TargetParent\"] = 32] = \"TargetParent\";\n\treturn LISTENER_FLAGS$1;\n}({});\n/**\n* A set of flags used for bitwise calculations against {@link ComponentRuntimeMeta#$flags$}.\n*\n* These flags should only be used in conjunction with {@link ComponentRuntimeMeta#$flags$}.\n* They should _not_ be used for calculations against other fields/numbers\n*/\nlet CMP_FLAGS = /* @__PURE__ */ function(CMP_FLAGS$1) {\n\t/**\n\t* Used to determine if a component is using the shadow DOM.\n\t* e.g. `shadow: true | {}` is set on the `@Component()` decorator\n\t*/\n\tCMP_FLAGS$1[CMP_FLAGS$1[\"shadowDomEncapsulation\"] = 1] = \"shadowDomEncapsulation\";\n\t/**\n\t* Used to determine if a component is using scoped stylesheets\n\t* e.g. `scoped: true` is set on the `@Component()` decorator\n\t*/\n\tCMP_FLAGS$1[CMP_FLAGS$1[\"scopedCssEncapsulation\"] = 2] = \"scopedCssEncapsulation\";\n\t/**\n\t* Used to determine if a component does not use the shadow DOM _and_ has `<slot/>` tags in its markup.\n\t*/\n\tCMP_FLAGS$1[CMP_FLAGS$1[\"hasSlotRelocation\"] = 4] = \"hasSlotRelocation\";\n\t/**\n\t* Determines if a shim for the shadow DOM is necessary.\n\t*\n\t* The shim should only be needed if a component requires {@link shadowDomEncapsulation} and if any output\n\t* target-specific criteria are met. Refer to this flag's usage to determine each output target's criteria.\n\t*/\n\tCMP_FLAGS$1[CMP_FLAGS$1[\"needsShadowDomShim\"] = 8] = \"needsShadowDomShim\";\n\t/**\n\t* Determines if `delegatesFocus` is enabled for a component that uses the shadow DOM.\n\t* e.g. `shadow: { delegatesFocus: true }` is set on the `@Component()` decorator\n\t*/\n\tCMP_FLAGS$1[CMP_FLAGS$1[\"shadowDelegatesFocus\"] = 16] = \"shadowDelegatesFocus\";\n\t/**\n\t* Determines if `mode` is set on the `@Component()` decorator\n\t*/\n\tCMP_FLAGS$1[CMP_FLAGS$1[\"hasMode\"] = 32] = \"hasMode\";\n\t/**\n\t* Determines if styles must be scoped due to either:\n\t* 1. A component is using scoped stylesheets ({@link scopedCssEncapsulation})\n\t* 2. A component is using the shadow DOM _and_ the output target's rules for requiring a shadow DOM shim have been\n\t* met ({@link needsShadowDomShim})\n\t*/\n\tCMP_FLAGS$1[CMP_FLAGS$1[\"needsScopedEncapsulation\"] = 10] = \"needsScopedEncapsulation\";\n\t/**\n\t* Determines if a component is form-associated or not. This is set based on\n\t* options passed to the `@Component` decorator.\n\t*/\n\tCMP_FLAGS$1[CMP_FLAGS$1[\"formAssociated\"] = 64] = \"formAssociated\";\n\t/**\n\t* Determines if a `shadow: true` component needs\n\t* to have its styles scoped during SSR as opposed to using DSD.\n\t*/\n\tCMP_FLAGS$1[CMP_FLAGS$1[\"shadowNeedsScopedCss\"] = 128] = \"shadowNeedsScopedCss\";\n\treturn CMP_FLAGS$1;\n}({});\n\n//#endregion\n//#region src/utils.ts\nconst formatLazyBundleRuntimeMeta = (bundleId, cmps) => {\n\treturn [bundleId, cmps.map((cmp) => formatComponentRuntimeMeta(cmp, true))];\n};\n/**\n* Transform metadata about a component from the compiler to a compact form for\n* use at runtime.\n*\n* @param compilerMeta component metadata gathered during compilation\n* @param includeMethods include methods in the component's members or not\n* @returns a compact format for component metadata, intended for runtime use\n*/\nconst formatComponentRuntimeMeta = (compilerMeta, includeMethods) => {\n\tlet flags = 0;\n\tif (compilerMeta.encapsulation === \"shadow\") {\n\t\tflags |= CMP_FLAGS.shadowDomEncapsulation;\n\t\tif (compilerMeta.shadowDelegatesFocus) flags |= CMP_FLAGS.shadowDelegatesFocus;\n\t} else if (compilerMeta.encapsulation === \"scoped\") flags |= CMP_FLAGS.scopedCssEncapsulation;\n\tif (compilerMeta.formAssociated) flags |= CMP_FLAGS.formAssociated;\n\tif (compilerMeta.encapsulation !== \"shadow\" && compilerMeta.htmlTagNames.includes(\"slot\")) flags |= CMP_FLAGS.hasSlotRelocation;\n\tif (compilerMeta.hasMode) flags |= CMP_FLAGS.hasMode;\n\tconst members = formatComponentRuntimeMembers(compilerMeta, includeMethods);\n\tconst hostListeners = formatHostListeners(compilerMeta);\n\tconst watchers = formatComponentRuntimeWatchers(compilerMeta);\n\treturn trimFalsy([\n\t\tflags,\n\t\tcompilerMeta.tagName,\n\t\tObject.keys(members).length > 0 ? members : void 0,\n\t\thostListeners.length > 0 ? hostListeners : void 0,\n\t\tObject.keys(watchers).length > 0 ? watchers : void 0\n\t]);\n};\n/**\n* Transforms Stencil compiler metadata into a {@link d.ComponentCompilerMeta} object.\n* This handles processing any compiler metadata transformed from components' uses of `@Watch()`.\n* The map of watched attributes to their callback(s) will be immediately available\n* to the runtime at bootstrap.\n*\n* @param compilerMeta Component metadata gathered during compilation\n* @returns An object mapping watched attributes to their respective callback(s)\n*/\nconst formatComponentRuntimeWatchers = (compilerMeta) => {\n\tconst watchers = {};\n\tcompilerMeta.watchers.forEach(({ propName, methodName }) => {\n\t\twatchers[propName] = [...watchers[propName] ?? [], methodName];\n\t});\n\treturn watchers;\n};\nconst formatComponentRuntimeMembers = (compilerMeta, includeMethods = true) => {\n\treturn {\n\t\t...formatPropertiesRuntimeMember(compilerMeta.properties),\n\t\t...formatStatesRuntimeMember(compilerMeta.states),\n\t\t...includeMethods ? formatMethodsRuntimeMember(compilerMeta.methods) : {}\n\t};\n};\nconst formatPropertiesRuntimeMember = (properties) => {\n\tconst runtimeMembers = {};\n\tproperties.forEach((member) => {\n\t\truntimeMembers[member.name] = trimFalsy([formatFlags(member), formatAttrName(member)]);\n\t});\n\treturn runtimeMembers;\n};\nconst formatFlags = (compilerProperty) => {\n\tlet type = formatPropType(compilerProperty.type);\n\tif (compilerProperty.mutable) type |= MEMBER_FLAGS.Mutable;\n\tif (compilerProperty.reflect) type |= MEMBER_FLAGS.ReflectAttr;\n\tif (compilerProperty.getter) type |= MEMBER_FLAGS.Getter;\n\tif (compilerProperty.setter) type |= MEMBER_FLAGS.Setter;\n\treturn type;\n};\n/**\n* We mainly add the alternative kebab-case attribute name because it might\n* be used in an HTML environment (non JSX). Since we support hydration of\n* complex types we provide a kebab-case attribute name for properties with\n* these types.\n*/\nconst kebabCaseSupportForTypes = [\"string\", \"unknown\"];\nconst formatAttrName = (compilerProperty) => {\n\tif (kebabCaseSupportForTypes.includes(typeof compilerProperty.attribute)) {\n\t\tif (compilerProperty.name === compilerProperty.attribute) return void 0;\n\t\treturn compilerProperty.attribute;\n\t}\n\treturn void 0;\n};\nconst formatPropType = (type) => {\n\tif (type === \"string\") return MEMBER_FLAGS.String;\n\tif (type === \"number\") return MEMBER_FLAGS.Number;\n\tif (type === \"boolean\") return MEMBER_FLAGS.Boolean;\n\tif (type === \"any\") return MEMBER_FLAGS.Any;\n\treturn MEMBER_FLAGS.Unknown;\n};\nconst formatStatesRuntimeMember = (states) => {\n\tconst runtimeMembers = {};\n\tstates.forEach((member) => {\n\t\truntimeMembers[member.name] = [MEMBER_FLAGS.State];\n\t});\n\treturn runtimeMembers;\n};\nconst formatMethodsRuntimeMember = (methods) => {\n\tconst runtimeMembers = {};\n\tmethods.forEach((member) => {\n\t\truntimeMembers[member.name] = [MEMBER_FLAGS.Method];\n\t});\n\treturn runtimeMembers;\n};\nconst formatHostListeners = (compilerMeta) => {\n\treturn compilerMeta.listeners.map((compilerListener) => {\n\t\tconst hostListener = [\n\t\t\tcomputeListenerFlags(compilerListener),\n\t\t\tcompilerListener.name,\n\t\t\tcompilerListener.method\n\t\t];\n\t\treturn hostListener;\n\t});\n};\nconst computeListenerFlags = (listener) => {\n\tlet flags = 0;\n\tif (listener.capture) flags |= LISTENER_FLAGS.Capture;\n\tif (listener.passive) flags |= LISTENER_FLAGS.Passive;\n\tswitch (listener.target) {\n\t\tcase \"document\":\n\t\t\tflags |= LISTENER_FLAGS.TargetDocument;\n\t\t\tbreak;\n\t\tcase \"window\":\n\t\t\tflags |= LISTENER_FLAGS.TargetWindow;\n\t\t\tbreak;\n\t\tcase \"body\":\n\t\t\tflags |= LISTENER_FLAGS.TargetBody;\n\t\t\tbreak;\n\t\tcase \"parent\":\n\t\t\tflags |= LISTENER_FLAGS.TargetParent;\n\t\t\tbreak;\n\t}\n\treturn flags;\n};\nconst trimFalsy = (data) => {\n\tconst arr = data;\n\tfor (let i = arr.length - 1; i >= 0; i--) {\n\t\tif (arr[i]) break;\n\t\tarr.pop();\n\t}\n\treturn arr;\n};\n\n//#endregion\n//#region src/testing.ts\n/**\n* Generates a random number for use in generating a bundle id\n* @returns a random number between 100000 and 999999\n*/\nconst generateRandBundleId = () => Math.round(Math.random() * 899999) + 1e5;\n/**\n* Creates a new spec page for unit testing\n* @param opts the options to apply to the spec page that influence its configuration and operation\n* @returns the created spec page\n*/\nasync function newSpecPage(opts) {\n\tif (opts == null) throw new Error(`NewSpecPageOptions required`);\n\t(0, __stencil_core_internal_testing.resetPlatform)(opts.platform ?? {});\n\tresetBuildConditionals(__stencil_core_internal_app_data.BUILD);\n\tif (Array.isArray(opts.components)) (0, __stencil_core_internal_testing.registerComponents)(opts.components);\n\tif (opts.hydrateClientSide) opts.includeAnnotations = true;\n\tif (opts.hydrateServerSide) {\n\t\topts.includeAnnotations = true;\n\t\t(0, __stencil_core_internal_testing.setSupportsShadowDom)(false);\n\t} else {\n\t\topts.includeAnnotations = !!opts.includeAnnotations;\n\t\tif (opts.supportsShadowDom === false) (0, __stencil_core_internal_testing.setSupportsShadowDom)(false);\n\t\telse (0, __stencil_core_internal_testing.setSupportsShadowDom)(true);\n\t}\n\t__stencil_core_internal_app_data.BUILD.cssAnnotations = opts.includeAnnotations;\n\tconst cmpTags = /* @__PURE__ */ new Set();\n\t__stencil_core_internal_testing.win.__stencil_spec_options = opts;\n\tconst doc = __stencil_core_internal_testing.win.document;\n\tconst page = {\n\t\twin: __stencil_core_internal_testing.win,\n\t\tdoc,\n\t\tbody: doc.body,\n\t\tbuild: __stencil_core_internal_app_data.BUILD,\n\t\tstyles: __stencil_core_internal_testing.styles,\n\t\tsetContent: (html) => {\n\t\t\tdoc.body.innerHTML = html;\n\t\t\treturn (0, __stencil_core_internal_testing.flushAll)();\n\t\t},\n\t\twaitForChanges: __stencil_core_internal_testing.flushAll,\n\t\tflushLoadModule: __stencil_core_internal_testing.flushLoadModule,\n\t\tflushQueue: __stencil_core_internal_testing.flushQueue\n\t};\n\tconst lazyBundles = opts.components.map((Cstr) => {\n\t\t/**\n\t\t* just pass through functional components that don't have styles nor any other metadata\n\t\t*/\n\t\tif (Cstr.COMPILER_META == null) {\n\t\t\t/**\n\t\t\t* the bundleId can be arbitrary, but must be unique\n\t\t\t*/\n\t\t\tconst arbitraryBundleId = `fc.${generateRandBundleId()}`;\n\t\t\treturn formatLazyBundleRuntimeMeta(arbitraryBundleId, []);\n\t\t}\n\t\tcmpTags.add(Cstr.COMPILER_META.tagName);\n\t\tCstr.isProxied = false;\n\t\tproxyComponentLifeCycles(Cstr);\n\t\tconst bundleId = `${Cstr.COMPILER_META.tagName}.${generateRandBundleId()}`;\n\t\tconst stylesMeta = Cstr.COMPILER_META.styles;\n\t\tif (Array.isArray(stylesMeta)) {\n\t\t\tif (stylesMeta.length > 1) {\n\t\t\t\tconst styles$1 = {};\n\t\t\t\tstylesMeta.forEach((style) => {\n\t\t\t\t\tstyles$1[style.modeName] = style.styleStr;\n\t\t\t\t});\n\t\t\t\tCstr.style = styles$1;\n\t\t\t} else if (stylesMeta.length === 1) Cstr.style = stylesMeta[0].styleStr;\n\t\t}\n\t\t(0, __stencil_core_internal_testing.registerModule)(bundleId, Cstr);\n\t\tconst lazyBundleRuntimeMeta = formatLazyBundleRuntimeMeta(bundleId, [Cstr.COMPILER_META]);\n\t\treturn lazyBundleRuntimeMeta;\n\t});\n\t__stencil_core_internal_app_data.BUILD.asyncLoading = true;\n\tif (opts.hydrateClientSide) {\n\t\t__stencil_core_internal_app_data.BUILD.hydrateClientSide = true;\n\t\t__stencil_core_internal_app_data.BUILD.hydrateServerSide = false;\n\t} else if (opts.hydrateServerSide) {\n\t\t__stencil_core_internal_app_data.BUILD.hydrateServerSide = true;\n\t\t__stencil_core_internal_app_data.BUILD.hydrateClientSide = false;\n\t}\n\t__stencil_core_internal_app_data.BUILD.cloneNodeFix = false;\n\t__stencil_core_internal_app_data.BUILD.shadowDomShim = false;\n\t__stencil_core_internal_app_data.BUILD.attachStyles = !!opts.attachStyles;\n\tif (typeof opts.url === \"string\") page.win.location.href = opts.url;\n\tif (typeof opts.direction === \"string\") page.doc.documentElement.setAttribute(\"dir\", opts.direction);\n\tif (typeof opts.language === \"string\") page.doc.documentElement.setAttribute(\"lang\", opts.language);\n\tif (typeof opts.cookie === \"string\") try {\n\t\tpage.doc.cookie = opts.cookie;\n\t} catch {}\n\tif (typeof opts.referrer === \"string\") try {\n\t\tpage.doc.referrer = opts.referrer;\n\t} catch {}\n\tif (typeof opts.userAgent === \"string\") try {\n\t\tpage.win.navigator.userAgent = opts.userAgent;\n\t} catch {}\n\t(0, __stencil_core_internal_testing.bootstrapLazy)(lazyBundles);\n\tif (typeof opts.template === \"function\") {\n\t\tconst cmpMeta = {\n\t\t\t$flags$: 0,\n\t\t\t$tagName$: \"body\"\n\t\t};\n\t\tconst ref = {\n\t\t\t$ancestorComponent$: void 0,\n\t\t\t$flags$: 0,\n\t\t\t$modeName$: void 0,\n\t\t\t$cmpMeta$: cmpMeta,\n\t\t\t$hostElement$: page.body\n\t\t};\n\t\t(0, __stencil_core_internal_testing.renderVdom)(ref, opts.template());\n\t} else if (typeof opts.html === \"string\") page.body.innerHTML = opts.html;\n\tif (opts.flushQueue !== false) await page.waitForChanges();\n\tlet rootComponent = null;\n\tObject.defineProperty(page, \"root\", { get() {\n\t\tif (rootComponent == null) rootComponent = findRootComponent(cmpTags, page.body);\n\t\tif (rootComponent != null) return rootComponent;\n\t\tconst firstElementChild = page.body.firstElementChild;\n\t\tif (firstElementChild != null) return firstElementChild;\n\t\treturn null;\n\t} });\n\tObject.defineProperty(page, \"rootInstance\", { get() {\n\t\tconst hostRef = (0, __stencil_core_internal_testing.getHostRef)(page.root);\n\t\tif (hostRef != null) return hostRef.$lazyInstance$;\n\t\treturn null;\n\t} });\n\tif (opts.hydrateServerSide) (0, __stencil_core_internal_testing.insertVdomAnnotations)(doc, []);\n\tif (opts.autoApplyChanges) {\n\t\t(0, __stencil_core_internal_testing.startAutoApplyChanges)();\n\t\tpage.waitForChanges = () => {\n\t\t\tconsole.error(\"waitForChanges() cannot be used manually if the \\\"startAutoApplyChanges\\\" option is enabled\");\n\t\t\treturn Promise.resolve();\n\t\t};\n\t}\n\treturn page;\n}\n/**\n* A helper method that proxies Stencil lifecycle methods by mutating the provided component class\n* @param Cstr the component class whose lifecycle methods will be proxied\n*/\nfunction proxyComponentLifeCycles(Cstr) {\n\tif (typeof Cstr.prototype?.__componentWillLoad === \"function\") {\n\t\tCstr.prototype.componentWillLoad = Cstr.prototype.__componentWillLoad;\n\t\tCstr.prototype.__componentWillLoad = null;\n\t}\n\tif (typeof Cstr.prototype?.__componentWillUpdate === \"function\") {\n\t\tCstr.prototype.componentWillUpdate = Cstr.prototype.__componentWillUpdate;\n\t\tCstr.prototype.__componentWillUpdate = null;\n\t}\n\tif (typeof Cstr.prototype?.__componentWillRender === \"function\") {\n\t\tCstr.prototype.componentWillRender = Cstr.prototype.__componentWillRender;\n\t\tCstr.prototype.__componentWillRender = null;\n\t}\n\tif (typeof Cstr.prototype?.componentWillLoad === \"function\") {\n\t\tCstr.prototype.__componentWillLoad = Cstr.prototype.componentWillLoad;\n\t\tCstr.prototype.componentWillLoad = function() {\n\t\t\tconst result = this.__componentWillLoad();\n\t\t\tif (result != null && typeof result.then === \"function\") (0, __stencil_core_internal_testing.writeTask)(() => result);\n\t\t\telse (0, __stencil_core_internal_testing.writeTask)(() => Promise.resolve());\n\t\t\treturn result;\n\t\t};\n\t}\n\tif (typeof Cstr.prototype?.componentWillUpdate === \"function\") {\n\t\tCstr.prototype.__componentWillUpdate = Cstr.prototype.componentWillUpdate;\n\t\tCstr.prototype.componentWillUpdate = function() {\n\t\t\tconst result = this.__componentWillUpdate();\n\t\t\tif (result != null && typeof result.then === \"function\") (0, __stencil_core_internal_testing.writeTask)(() => result);\n\t\t\telse (0, __stencil_core_internal_testing.writeTask)(() => Promise.resolve());\n\t\t\treturn result;\n\t\t};\n\t}\n\tif (typeof Cstr.prototype?.componentWillRender === \"function\") {\n\t\tCstr.prototype.__componentWillRender = Cstr.prototype.componentWillRender;\n\t\tCstr.prototype.componentWillRender = function() {\n\t\t\tconst result = this.__componentWillRender();\n\t\t\tif (result != null && typeof result.then === \"function\") (0, __stencil_core_internal_testing.writeTask)(() => result);\n\t\t\telse (0, __stencil_core_internal_testing.writeTask)(() => Promise.resolve());\n\t\t\treturn result;\n\t\t};\n\t}\n}\n/**\n* Return the first Element whose {@link Element#nodeName} property matches a tag found in the provided `cmpTags`\n* argument.\n*\n* If the `nodeName` property on the element matches any of the names found in the provided `cmpTags` argument, that\n* element is returned. If no match is found on the current element, the children will be inspected in a depth-first\n* search manner. This process continues until either:\n* - an element is found (and execution ends)\n* - no element is found after an exhaustive search\n*\n* @param cmpTags component tag names to use in the match criteria\n* @param node the node whose children are to be inspected\n* @returns An element whose name matches one of the strings in the provided `cmpTags`. If no match is found, `null` is\n* returned\n*/\nfunction findRootComponent(cmpTags, node) {\n\tif (node != null) {\n\t\tconst children = node.children;\n\t\tconst childrenLength = children.length;\n\t\tfor (let i = 0; i < childrenLength; i++) {\n\t\t\tconst elm = children[i];\n\t\t\tif (cmpTags.has(elm.nodeName.toLowerCase())) return elm;\n\t\t}\n\t\tfor (let i = 0; i < childrenLength; i++) {\n\t\t\tconst r = findRootComponent(cmpTags, children[i]);\n\t\t\tif (r != null) return r;\n\t\t}\n\t}\n\treturn null;\n}\n\n//#endregion\nexports.JestStencilPreprocessor = JestStencilPreprocessor;\nexports.JestStencilRunner = JestStencilRunner;\nexports.StencilEnvironment = StencilEnvironment;\nexports.createJestStencilPreset = createJestStencilPreset;\nexports.newSpecPage = newSpecPage;\nexports.setupJestStencil = setupJestStencil;"]}