{"version":3,"file":"272034190ac9c24f2dcfe3.js?3.6.14.7428b935c.1723600572441","mappings":"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","sources":["webpack://mono-repo/./node_modules/@testing-library/dom/dist/@testing-library/dom.esm.js"],"sourcesContent":["import * as prettyFormat from 'pretty-format';\nexport { prettyFormat };\nimport { computeAccessibleName, computeAccessibleDescription } from 'dom-accessibility-api';\nimport { elementRoles, roles, roleElements } from 'aria-query';\nimport lzString from 'lz-string';\n\n/**\n * Source: https://github.com/facebook/jest/blob/e7bb6a1e26ffab90611b2593912df15b69315611/packages/pretty-format/src/plugins/DOMElement.ts\n */\n/* eslint-disable -- trying to stay as close to the original as possible */\n/* istanbul ignore file */\n\nfunction escapeHTML(str) {\n return str.replace(//g, '>');\n}\n// Return empty string if keys is empty.\nconst printProps = (keys, props, config, indentation, depth, refs, printer) => {\n const indentationNext = indentation + config.indent;\n const colors = config.colors;\n return keys.map(key => {\n const value = props[key];\n let printed = printer(value, config, indentationNext, depth, refs);\n if (typeof value !== 'string') {\n if (printed.indexOf('\\n') !== -1) {\n printed = config.spacingOuter + indentationNext + printed + config.spacingOuter + indentation;\n }\n printed = '{' + printed + '}';\n }\n return config.spacingInner + indentation + colors.prop.open + key + colors.prop.close + '=' + colors.value.open + printed + colors.value.close;\n }).join('');\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType#node_type_constants\nconst NodeTypeTextNode = 3;\n\n// Return empty string if children is empty.\nconst printChildren = (children, config, indentation, depth, refs, printer) => children.map(child => {\n const printedChild = typeof child === 'string' ? printText(child, config) : printer(child, config, indentation, depth, refs);\n if (printedChild === '' && typeof child === 'object' && child !== null && child.nodeType !== NodeTypeTextNode) {\n // A plugin serialized this Node to '' meaning we should ignore it.\n return '';\n }\n return config.spacingOuter + indentation + printedChild;\n}).join('');\nconst printText = (text, config) => {\n const contentColor = config.colors.content;\n return contentColor.open + escapeHTML(text) + contentColor.close;\n};\nconst printComment = (comment, config) => {\n const commentColor = config.colors.comment;\n return commentColor.open + '' + commentColor.close;\n};\n\n// Separate the functions to format props, children, and element,\n// so a plugin could override a particular function, if needed.\n// Too bad, so sad: the traditional (but unnecessary) space\n// in a self-closing tagColor requires a second test of printedProps.\nconst printElement = (type, printedProps, printedChildren, config, indentation) => {\n const tagColor = config.colors.tag;\n return tagColor.open + '<' + type + (printedProps && tagColor.close + printedProps + config.spacingOuter + indentation + tagColor.open) + (printedChildren ? '>' + tagColor.close + printedChildren + config.spacingOuter + indentation + tagColor.open + '' + tagColor.close;\n};\nconst printElementAsLeaf = (type, config) => {\n const tagColor = config.colors.tag;\n return tagColor.open + '<' + type + tagColor.close + ' …' + tagColor.open + ' />' + tagColor.close;\n};\nconst ELEMENT_NODE$1 = 1;\nconst TEXT_NODE$1 = 3;\nconst COMMENT_NODE$1 = 8;\nconst FRAGMENT_NODE = 11;\nconst ELEMENT_REGEXP = /^((HTML|SVG)\\w*)?Element$/;\nconst testNode = val => {\n const constructorName = val.constructor.name;\n const {\n nodeType,\n tagName\n } = val;\n const isCustomElement = typeof tagName === 'string' && tagName.includes('-') || typeof val.hasAttribute === 'function' && val.hasAttribute('is');\n return nodeType === ELEMENT_NODE$1 && (ELEMENT_REGEXP.test(constructorName) || isCustomElement) || nodeType === TEXT_NODE$1 && constructorName === 'Text' || nodeType === COMMENT_NODE$1 && constructorName === 'Comment' || nodeType === FRAGMENT_NODE && constructorName === 'DocumentFragment';\n};\nfunction nodeIsText(node) {\n return node.nodeType === TEXT_NODE$1;\n}\nfunction nodeIsComment(node) {\n return node.nodeType === COMMENT_NODE$1;\n}\nfunction nodeIsFragment(node) {\n return node.nodeType === FRAGMENT_NODE;\n}\nfunction createDOMElementFilter(filterNode) {\n return {\n test: val => {\n var _val$constructor2;\n return (val == null ? void 0 : (_val$constructor2 = val.constructor) == null ? void 0 : _val$constructor2.name) && testNode(val);\n },\n serialize: (node, config, indentation, depth, refs, printer) => {\n if (nodeIsText(node)) {\n return printText(node.data, config);\n }\n if (nodeIsComment(node)) {\n return printComment(node.data, config);\n }\n const type = nodeIsFragment(node) ? \"DocumentFragment\" : node.tagName.toLowerCase();\n if (++depth > config.maxDepth) {\n return printElementAsLeaf(type, config);\n }\n return printElement(type, printProps(nodeIsFragment(node) ? [] : Array.from(node.attributes).map(attr => attr.name).sort(), nodeIsFragment(node) ? {} : Array.from(node.attributes).reduce((props, attribute) => {\n props[attribute.name] = attribute.value;\n return props;\n }, {}), config, indentation + config.indent, depth, refs, printer), printChildren(Array.prototype.slice.call(node.childNodes || node.children).filter(filterNode), config, indentation + config.indent, depth, refs, printer), config, indentation);\n }\n };\n}\n\n// We try to load node dependencies\nlet chalk = null;\nlet readFileSync = null;\nlet codeFrameColumns = null;\ntry {\n const nodeRequire = module && module.require;\n readFileSync = nodeRequire.call(module, 'fs').readFileSync;\n codeFrameColumns = nodeRequire.call(module, '@babel/code-frame').codeFrameColumns;\n chalk = nodeRequire.call(module, 'chalk');\n} catch {\n // We're in a browser environment\n}\n\n// frame has the form \"at myMethod (location/to/my/file.js:10:2)\"\nfunction getCodeFrame(frame) {\n const locationStart = frame.indexOf('(') + 1;\n const locationEnd = frame.indexOf(')');\n const frameLocation = frame.slice(locationStart, locationEnd);\n const frameLocationElements = frameLocation.split(':');\n const [filename, line, column] = [frameLocationElements[0], parseInt(frameLocationElements[1], 10), parseInt(frameLocationElements[2], 10)];\n let rawFileContents = '';\n try {\n rawFileContents = readFileSync(filename, 'utf-8');\n } catch {\n return '';\n }\n const codeFrame = codeFrameColumns(rawFileContents, {\n start: {\n line,\n column\n }\n }, {\n highlightCode: true,\n linesBelow: 0\n });\n return chalk.dim(frameLocation) + \"\\n\" + codeFrame + \"\\n\";\n}\nfunction getUserCodeFrame() {\n // If we couldn't load dependencies, we can't generate the user trace\n /* istanbul ignore next */\n if (!readFileSync || !codeFrameColumns) {\n return '';\n }\n const err = new Error();\n const firstClientCodeFrame = err.stack.split('\\n').slice(1) // Remove first line which has the form \"Error: TypeError\"\n .find(frame => !frame.includes('node_modules/')); // Ignore frames from 3rd party libraries\n\n return getCodeFrame(firstClientCodeFrame);\n}\n\n// Constant node.nodeType for text nodes, see:\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType#Node_type_constants\nconst TEXT_NODE = 3;\nfunction jestFakeTimersAreEnabled() {\n /* istanbul ignore else */\n // eslint-disable-next-line\n if (typeof jest !== 'undefined' && jest !== null) {\n return (\n // legacy timers\n setTimeout._isMockFunction === true ||\n // modern timers\n // eslint-disable-next-line prefer-object-has-own -- not supported by our support matrix\n Object.prototype.hasOwnProperty.call(setTimeout, 'clock')\n );\n }\n // istanbul ignore next\n return false;\n}\nfunction getDocument() {\n /* istanbul ignore if */\n if (typeof window === 'undefined') {\n throw new Error('Could not find default container');\n }\n return window.document;\n}\nfunction getWindowFromNode(node) {\n if (node.defaultView) {\n // node is document\n return node.defaultView;\n } else if (node.ownerDocument && node.ownerDocument.defaultView) {\n // node is a DOM node\n return node.ownerDocument.defaultView;\n } else if (node.window) {\n // node is window\n return node.window;\n } else if (node.ownerDocument && node.ownerDocument.defaultView === null) {\n throw new Error(\"It looks like the window object is not available for the provided node.\");\n } else if (node.then instanceof Function) {\n throw new Error(\"It looks like you passed a Promise object instead of a DOM node. Did you do something like `fireEvent.click(screen.findBy...` when you meant to use a `getBy` query `fireEvent.click(screen.getBy...`, or await the findBy query `fireEvent.click(await screen.findBy...`?\");\n } else if (Array.isArray(node)) {\n throw new Error(\"It looks like you passed an Array instead of a DOM node. Did you do something like `fireEvent.click(screen.getAllBy...` when you meant to use a `getBy` query `fireEvent.click(screen.getBy...`?\");\n } else if (typeof node.debug === 'function' && typeof node.logTestingPlaygroundURL === 'function') {\n throw new Error(\"It looks like you passed a `screen` object. Did you do something like `fireEvent.click(screen, ...` when you meant to use a query, e.g. `fireEvent.click(screen.getBy..., `?\");\n } else {\n // The user passed something unusual to a calling function\n throw new Error(\"The given node is not an Element, the node type is: \" + typeof node + \".\");\n }\n}\nfunction checkContainerType(container) {\n if (!container || !(typeof container.querySelector === 'function') || !(typeof container.querySelectorAll === 'function')) {\n throw new TypeError(\"Expected container to be an Element, a Document or a DocumentFragment but got \" + getTypeName(container) + \".\");\n }\n function getTypeName(object) {\n if (typeof object === 'object') {\n return object === null ? 'null' : object.constructor.name;\n }\n return typeof object;\n }\n}\n\nconst shouldHighlight = () => {\n let colors;\n try {\n var _process, _process$env;\n colors = JSON.parse((_process = process) == null ? void 0 : (_process$env = _process.env) == null ? void 0 : _process$env.COLORS);\n } catch (e) {\n // If this throws, process?.env?.COLORS wasn't parsable. Since we only\n // care about `true` or `false`, we can safely ignore the error.\n }\n if (typeof colors === 'boolean') {\n // If `colors` is set explicitly (both `true` and `false`), use that value.\n return colors;\n } else {\n // If `colors` is not set, colorize if we're in node.\n return typeof process !== 'undefined' && process.versions !== undefined && process.versions.node !== undefined;\n }\n};\nconst {\n DOMCollection\n} = prettyFormat.plugins;\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType#node_type_constants\nconst ELEMENT_NODE = 1;\nconst COMMENT_NODE = 8;\n\n// https://github.com/facebook/jest/blob/615084195ae1ae61ddd56162c62bbdda17587569/packages/pretty-format/src/plugins/DOMElement.ts#L50\nfunction filterCommentsAndDefaultIgnoreTagsTags(value) {\n return value.nodeType !== COMMENT_NODE && (value.nodeType !== ELEMENT_NODE || !value.matches(getConfig().defaultIgnore));\n}\nfunction prettyDOM(dom, maxLength, options) {\n if (options === void 0) {\n options = {};\n }\n if (!dom) {\n dom = getDocument().body;\n }\n if (typeof maxLength !== 'number') {\n maxLength = typeof process !== 'undefined' && process.env.DEBUG_PRINT_LIMIT || 7000;\n }\n if (maxLength === 0) {\n return '';\n }\n if (dom.documentElement) {\n dom = dom.documentElement;\n }\n let domTypeName = typeof dom;\n if (domTypeName === 'object') {\n domTypeName = dom.constructor.name;\n } else {\n // To don't fall with `in` operator\n dom = {};\n }\n if (!('outerHTML' in dom)) {\n throw new TypeError(\"Expected an element or document but got \" + domTypeName);\n }\n const {\n filterNode = filterCommentsAndDefaultIgnoreTagsTags,\n ...prettyFormatOptions\n } = options;\n const debugContent = prettyFormat.format(dom, {\n plugins: [createDOMElementFilter(filterNode), DOMCollection],\n printFunctionName: false,\n highlight: shouldHighlight(),\n ...prettyFormatOptions\n });\n return maxLength !== undefined && dom.outerHTML.length > maxLength ? debugContent.slice(0, maxLength) + \"...\" : debugContent;\n}\nconst logDOM = function () {\n const userCodeFrame = getUserCodeFrame();\n if (userCodeFrame) {\n console.log(prettyDOM(...arguments) + \"\\n\\n\" + userCodeFrame);\n } else {\n console.log(prettyDOM(...arguments));\n }\n};\n\n// It would be cleaner for this to live inside './queries', but\n// other parts of the code assume that all exports from\n// './queries' are query functions.\nlet config = {\n testIdAttribute: 'data-testid',\n asyncUtilTimeout: 1000,\n // asyncWrapper and advanceTimersWrapper is to support React's async `act` function.\n // forcing react-testing-library to wrap all async functions would've been\n // a total nightmare (consider wrapping every findBy* query and then also\n // updating `within` so those would be wrapped too. Total nightmare).\n // so we have this config option that's really only intended for\n // react-testing-library to use. For that reason, this feature will remain\n // undocumented.\n asyncWrapper: cb => cb(),\n unstable_advanceTimersWrapper: cb => cb(),\n eventWrapper: cb => cb(),\n // default value for the `hidden` option in `ByRole` queries\n defaultHidden: false,\n // default value for the `ignore` option in `ByText` queries\n defaultIgnore: 'script, style',\n // showOriginalStackTrace flag to show the full error stack traces for async errors\n showOriginalStackTrace: false,\n // throw errors w/ suggestions for better queries. Opt in so off by default.\n throwSuggestions: false,\n // called when getBy* queries fail. (message, container) => Error\n getElementError(message, container) {\n const prettifiedDOM = prettyDOM(container);\n const error = new Error([message, \"Ignored nodes: comments, \" + config.defaultIgnore + \"\\n\" + prettifiedDOM].filter(Boolean).join('\\n\\n'));\n error.name = 'TestingLibraryElementError';\n return error;\n },\n _disableExpensiveErrorDiagnostics: false,\n computedStyleSupportsPseudoElements: false\n};\nfunction runWithExpensiveErrorDiagnosticsDisabled(callback) {\n try {\n config._disableExpensiveErrorDiagnostics = true;\n return callback();\n } finally {\n config._disableExpensiveErrorDiagnostics = false;\n }\n}\nfunction configure(newConfig) {\n if (typeof newConfig === 'function') {\n // Pass the existing config out to the provided function\n // and accept a delta in return\n newConfig = newConfig(config);\n }\n\n // Merge the incoming config delta\n config = {\n ...config,\n ...newConfig\n };\n}\nfunction getConfig() {\n return config;\n}\n\nconst labelledNodeNames = ['button', 'meter', 'output', 'progress', 'select', 'textarea', 'input'];\nfunction getTextContent(node) {\n if (labelledNodeNames.includes(node.nodeName.toLowerCase())) {\n return '';\n }\n if (node.nodeType === TEXT_NODE) return node.textContent;\n return Array.from(node.childNodes).map(childNode => getTextContent(childNode)).join('');\n}\nfunction getLabelContent(element) {\n let textContent;\n if (element.tagName.toLowerCase() === 'label') {\n textContent = getTextContent(element);\n } else {\n textContent = element.value || element.textContent;\n }\n return textContent;\n}\n\n// Based on https://github.com/eps1lon/dom-accessibility-api/pull/352\nfunction getRealLabels(element) {\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- types are not aware of older browsers that don't implement `labels`\n if (element.labels !== undefined) {\n var _labels;\n return (_labels = element.labels) != null ? _labels : [];\n }\n if (!isLabelable(element)) return [];\n const labels = element.ownerDocument.querySelectorAll('label');\n return Array.from(labels).filter(label => label.control === element);\n}\nfunction isLabelable(element) {\n return /BUTTON|METER|OUTPUT|PROGRESS|SELECT|TEXTAREA/.test(element.tagName) || element.tagName === 'INPUT' && element.getAttribute('type') !== 'hidden';\n}\nfunction getLabels(container, element, _temp) {\n let {\n selector = '*'\n } = _temp === void 0 ? {} : _temp;\n const ariaLabelledBy = element.getAttribute('aria-labelledby');\n const labelsId = ariaLabelledBy ? ariaLabelledBy.split(' ') : [];\n return labelsId.length ? labelsId.map(labelId => {\n const labellingElement = container.querySelector(\"[id=\\\"\" + labelId + \"\\\"]\");\n return labellingElement ? {\n content: getLabelContent(labellingElement),\n formControl: null\n } : {\n content: '',\n formControl: null\n };\n }) : Array.from(getRealLabels(element)).map(label => {\n const textToMatch = getLabelContent(label);\n const formControlSelector = 'button, input, meter, output, progress, select, textarea';\n const labelledFormControl = Array.from(label.querySelectorAll(formControlSelector)).filter(formControlElement => formControlElement.matches(selector))[0];\n return {\n content: textToMatch,\n formControl: labelledFormControl\n };\n });\n}\n\nfunction assertNotNullOrUndefined(matcher) {\n if (matcher === null || matcher === undefined) {\n throw new Error( // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- implicitly converting `T` to `string`\n \"It looks like \" + matcher + \" was passed instead of a matcher. Did you do something like getByText(\" + matcher + \")?\");\n }\n}\nfunction fuzzyMatches(textToMatch, node, matcher, normalizer) {\n if (typeof textToMatch !== 'string') {\n return false;\n }\n assertNotNullOrUndefined(matcher);\n const normalizedText = normalizer(textToMatch);\n if (typeof matcher === 'string' || typeof matcher === 'number') {\n return normalizedText.toLowerCase().includes(matcher.toString().toLowerCase());\n } else if (typeof matcher === 'function') {\n return matcher(normalizedText, node);\n } else {\n return matchRegExp(matcher, normalizedText);\n }\n}\nfunction matches(textToMatch, node, matcher, normalizer) {\n if (typeof textToMatch !== 'string') {\n return false;\n }\n assertNotNullOrUndefined(matcher);\n const normalizedText = normalizer(textToMatch);\n if (matcher instanceof Function) {\n return matcher(normalizedText, node);\n } else if (matcher instanceof RegExp) {\n return matchRegExp(matcher, normalizedText);\n } else {\n return normalizedText === String(matcher);\n }\n}\nfunction getDefaultNormalizer(_temp) {\n let {\n trim = true,\n collapseWhitespace = true\n } = _temp === void 0 ? {} : _temp;\n return text => {\n let normalizedText = text;\n normalizedText = trim ? normalizedText.trim() : normalizedText;\n normalizedText = collapseWhitespace ? normalizedText.replace(/\\s+/g, ' ') : normalizedText;\n return normalizedText;\n };\n}\n\n/**\n * Constructs a normalizer to pass to functions in matches.js\n * @param {boolean|undefined} trim The user-specified value for `trim`, without\n * any defaulting having been applied\n * @param {boolean|undefined} collapseWhitespace The user-specified value for\n * `collapseWhitespace`, without any defaulting having been applied\n * @param {Function|undefined} normalizer The user-specified normalizer\n * @returns {Function} A normalizer\n */\n\nfunction makeNormalizer(_ref) {\n let {\n trim,\n collapseWhitespace,\n normalizer\n } = _ref;\n if (!normalizer) {\n // No custom normalizer specified. Just use default.\n return getDefaultNormalizer({\n trim,\n collapseWhitespace\n });\n }\n if (typeof trim !== 'undefined' || typeof collapseWhitespace !== 'undefined') {\n // They've also specified a value for trim or collapseWhitespace\n throw new Error('trim and collapseWhitespace are not supported with a normalizer. ' + 'If you want to use the default trim and collapseWhitespace logic in your normalizer, ' + 'use \"getDefaultNormalizer({trim, collapseWhitespace})\" and compose that into your normalizer');\n }\n return normalizer;\n}\nfunction matchRegExp(matcher, text) {\n const match = matcher.test(text);\n if (matcher.global && matcher.lastIndex !== 0) {\n console.warn(\"To match all elements we had to reset the lastIndex of the RegExp because the global flag is enabled. We encourage to remove the global flag from the RegExp.\");\n matcher.lastIndex = 0;\n }\n return match;\n}\n\nfunction getNodeText(node) {\n if (node.matches('input[type=submit], input[type=button], input[type=reset]')) {\n return node.value;\n }\n return Array.from(node.childNodes).filter(child => child.nodeType === TEXT_NODE && Boolean(child.textContent)).map(c => c.textContent).join('');\n}\n\nconst elementRoleList = buildElementRoleList(elementRoles);\n\n/**\n * @param {Element} element -\n * @returns {boolean} - `true` if `element` and its subtree are inaccessible\n */\nfunction isSubtreeInaccessible(element) {\n if (element.hidden === true) {\n return true;\n }\n if (element.getAttribute('aria-hidden') === 'true') {\n return true;\n }\n const window = element.ownerDocument.defaultView;\n if (window.getComputedStyle(element).display === 'none') {\n return true;\n }\n return false;\n}\n\n/**\n * Partial implementation https://www.w3.org/TR/wai-aria-1.2/#tree_exclusion\n * which should only be used for elements with a non-presentational role i.e.\n * `role=\"none\"` and `role=\"presentation\"` will not be excluded.\n *\n * Implements aria-hidden semantics (i.e. parent overrides child)\n * Ignores \"Child Presentational: True\" characteristics\n *\n * @param {Element} element -\n * @param {object} [options] -\n * @param {function (element: Element): boolean} options.isSubtreeInaccessible -\n * can be used to return cached results from previous isSubtreeInaccessible calls\n * @returns {boolean} true if excluded, otherwise false\n */\nfunction isInaccessible(element, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n isSubtreeInaccessible: isSubtreeInaccessibleImpl = isSubtreeInaccessible\n } = options;\n const window = element.ownerDocument.defaultView;\n // since visibility is inherited we can exit early\n if (window.getComputedStyle(element).visibility === 'hidden') {\n return true;\n }\n let currentElement = element;\n while (currentElement) {\n if (isSubtreeInaccessibleImpl(currentElement)) {\n return true;\n }\n currentElement = currentElement.parentElement;\n }\n return false;\n}\nfunction getImplicitAriaRoles(currentNode) {\n // eslint bug here:\n // eslint-disable-next-line no-unused-vars\n for (const {\n match,\n roles\n } of elementRoleList) {\n if (match(currentNode)) {\n return [...roles];\n }\n }\n return [];\n}\nfunction buildElementRoleList(elementRolesMap) {\n function makeElementSelector(_ref) {\n let {\n name,\n attributes\n } = _ref;\n return \"\" + name + attributes.map(_ref2 => {\n let {\n name: attributeName,\n value,\n constraints = []\n } = _ref2;\n const shouldNotExist = constraints.indexOf('undefined') !== -1;\n if (shouldNotExist) {\n return \":not([\" + attributeName + \"])\";\n } else if (value) {\n return \"[\" + attributeName + \"=\\\"\" + value + \"\\\"]\";\n } else {\n return \"[\" + attributeName + \"]\";\n }\n }).join('');\n }\n function getSelectorSpecificity(_ref3) {\n let {\n attributes = []\n } = _ref3;\n return attributes.length;\n }\n function bySelectorSpecificity(_ref4, _ref5) {\n let {\n specificity: leftSpecificity\n } = _ref4;\n let {\n specificity: rightSpecificity\n } = _ref5;\n return rightSpecificity - leftSpecificity;\n }\n function match(element) {\n let {\n attributes = []\n } = element;\n\n // https://github.com/testing-library/dom-testing-library/issues/814\n const typeTextIndex = attributes.findIndex(attribute => attribute.value && attribute.name === 'type' && attribute.value === 'text');\n if (typeTextIndex >= 0) {\n // not using splice to not mutate the attributes array\n attributes = [...attributes.slice(0, typeTextIndex), ...attributes.slice(typeTextIndex + 1)];\n }\n const selector = makeElementSelector({\n ...element,\n attributes\n });\n return node => {\n if (typeTextIndex >= 0 && node.type !== 'text') {\n return false;\n }\n return node.matches(selector);\n };\n }\n let result = [];\n\n // eslint bug here:\n // eslint-disable-next-line no-unused-vars\n for (const [element, roles] of elementRolesMap.entries()) {\n result = [...result, {\n match: match(element),\n roles: Array.from(roles),\n specificity: getSelectorSpecificity(element)\n }];\n }\n return result.sort(bySelectorSpecificity);\n}\nfunction getRoles(container, _temp) {\n let {\n hidden = false\n } = _temp === void 0 ? {} : _temp;\n function flattenDOM(node) {\n return [node, ...Array.from(node.children).reduce((acc, child) => [...acc, ...flattenDOM(child)], [])];\n }\n return flattenDOM(container).filter(element => {\n return hidden === false ? isInaccessible(element) === false : true;\n }).reduce((acc, node) => {\n let roles = [];\n // TODO: This violates html-aria which does not allow any role on every element\n if (node.hasAttribute('role')) {\n roles = node.getAttribute('role').split(' ').slice(0, 1);\n } else {\n roles = getImplicitAriaRoles(node);\n }\n return roles.reduce((rolesAcc, role) => Array.isArray(rolesAcc[role]) ? {\n ...rolesAcc,\n [role]: [...rolesAcc[role], node]\n } : {\n ...rolesAcc,\n [role]: [node]\n }, acc);\n }, {});\n}\nfunction prettyRoles(dom, _ref6) {\n let {\n hidden,\n includeDescription\n } = _ref6;\n const roles = getRoles(dom, {\n hidden\n });\n // We prefer to skip generic role, we don't recommend it\n return Object.entries(roles).filter(_ref7 => {\n let [role] = _ref7;\n return role !== 'generic';\n }).map(_ref8 => {\n let [role, elements] = _ref8;\n const delimiterBar = '-'.repeat(50);\n const elementsString = elements.map(el => {\n const nameString = \"Name \\\"\" + computeAccessibleName(el, {\n computedStyleSupportsPseudoElements: getConfig().computedStyleSupportsPseudoElements\n }) + \"\\\":\\n\";\n const domString = prettyDOM(el.cloneNode(false));\n if (includeDescription) {\n const descriptionString = \"Description \\\"\" + computeAccessibleDescription(el, {\n computedStyleSupportsPseudoElements: getConfig().computedStyleSupportsPseudoElements\n }) + \"\\\":\\n\";\n return \"\" + nameString + descriptionString + domString;\n }\n return \"\" + nameString + domString;\n }).join('\\n\\n');\n return role + \":\\n\\n\" + elementsString + \"\\n\\n\" + delimiterBar;\n }).join('\\n');\n}\nconst logRoles = function (dom, _temp2) {\n let {\n hidden = false\n } = _temp2 === void 0 ? {} : _temp2;\n return console.log(prettyRoles(dom, {\n hidden\n }));\n};\n\n/**\n * @param {Element} element -\n * @returns {boolean | undefined} - false/true if (not)selected, undefined if not selectable\n */\nfunction computeAriaSelected(element) {\n // implicit value from html-aam mappings: https://www.w3.org/TR/html-aam-1.0/#html-attribute-state-and-property-mappings\n // https://www.w3.org/TR/html-aam-1.0/#details-id-97\n if (element.tagName === 'OPTION') {\n return element.selected;\n }\n\n // explicit value\n return checkBooleanAttribute(element, 'aria-selected');\n}\n\n/**\n * @param {Element} element -\n * @returns {boolean} -\n */\nfunction computeAriaBusy(element) {\n // https://www.w3.org/TR/wai-aria-1.1/#aria-busy\n return element.getAttribute('aria-busy') === 'true';\n}\n\n/**\n * @param {Element} element -\n * @returns {boolean | undefined} - false/true if (not)checked, undefined if not checked-able\n */\nfunction computeAriaChecked(element) {\n // implicit value from html-aam mappings: https://www.w3.org/TR/html-aam-1.0/#html-attribute-state-and-property-mappings\n // https://www.w3.org/TR/html-aam-1.0/#details-id-56\n // https://www.w3.org/TR/html-aam-1.0/#details-id-67\n if ('indeterminate' in element && element.indeterminate) {\n return undefined;\n }\n if ('checked' in element) {\n return element.checked;\n }\n\n // explicit value\n return checkBooleanAttribute(element, 'aria-checked');\n}\n\n/**\n * @param {Element} element -\n * @returns {boolean | undefined} - false/true if (not)pressed, undefined if not press-able\n */\nfunction computeAriaPressed(element) {\n // https://www.w3.org/TR/wai-aria-1.1/#aria-pressed\n return checkBooleanAttribute(element, 'aria-pressed');\n}\n\n/**\n * @param {Element} element -\n * @returns {boolean | string | null} -\n */\nfunction computeAriaCurrent(element) {\n var _ref9, _checkBooleanAttribut;\n // https://www.w3.org/TR/wai-aria-1.1/#aria-current\n return (_ref9 = (_checkBooleanAttribut = checkBooleanAttribute(element, 'aria-current')) != null ? _checkBooleanAttribut : element.getAttribute('aria-current')) != null ? _ref9 : false;\n}\n\n/**\n * @param {Element} element -\n * @returns {boolean | undefined} - false/true if (not)expanded, undefined if not expand-able\n */\nfunction computeAriaExpanded(element) {\n // https://www.w3.org/TR/wai-aria-1.1/#aria-expanded\n return checkBooleanAttribute(element, 'aria-expanded');\n}\nfunction checkBooleanAttribute(element, attribute) {\n const attributeValue = element.getAttribute(attribute);\n if (attributeValue === 'true') {\n return true;\n }\n if (attributeValue === 'false') {\n return false;\n }\n return undefined;\n}\n\n/**\n * @param {Element} element -\n * @returns {number | undefined} - number if implicit heading or aria-level present, otherwise undefined\n */\nfunction computeHeadingLevel(element) {\n // https://w3c.github.io/html-aam/#el-h1-h6\n // https://w3c.github.io/html-aam/#el-h1-h6\n const implicitHeadingLevels = {\n H1: 1,\n H2: 2,\n H3: 3,\n H4: 4,\n H5: 5,\n H6: 6\n };\n // explicit aria-level value\n // https://www.w3.org/TR/wai-aria-1.2/#aria-level\n const ariaLevelAttribute = element.getAttribute('aria-level') && Number(element.getAttribute('aria-level'));\n return ariaLevelAttribute || implicitHeadingLevels[element.tagName];\n}\n\n/**\n * @param {Element} element -\n * @returns {number | undefined} -\n */\nfunction computeAriaValueNow(element) {\n const valueNow = element.getAttribute('aria-valuenow');\n return valueNow === null ? undefined : +valueNow;\n}\n\n/**\n * @param {Element} element -\n * @returns {number | undefined} -\n */\nfunction computeAriaValueMax(element) {\n const valueMax = element.getAttribute('aria-valuemax');\n return valueMax === null ? undefined : +valueMax;\n}\n\n/**\n * @param {Element} element -\n * @returns {number | undefined} -\n */\nfunction computeAriaValueMin(element) {\n const valueMin = element.getAttribute('aria-valuemin');\n return valueMin === null ? undefined : +valueMin;\n}\n\n/**\n * @param {Element} element -\n * @returns {string | undefined} -\n */\nfunction computeAriaValueText(element) {\n const valueText = element.getAttribute('aria-valuetext');\n return valueText === null ? undefined : valueText;\n}\n\nconst normalize = getDefaultNormalizer();\nfunction escapeRegExp(string) {\n return string.replace(/[.*+\\-?^${}()|[\\]\\\\]/g, '\\\\$&'); // $& means the whole matched string\n}\n\nfunction getRegExpMatcher(string) {\n return new RegExp(escapeRegExp(string.toLowerCase()), 'i');\n}\nfunction makeSuggestion(queryName, element, content, _ref) {\n let {\n variant,\n name\n } = _ref;\n let warning = '';\n const queryOptions = {};\n const queryArgs = [['Role', 'TestId'].includes(queryName) ? content : getRegExpMatcher(content)];\n if (name) {\n queryOptions.name = getRegExpMatcher(name);\n }\n if (queryName === 'Role' && isInaccessible(element)) {\n queryOptions.hidden = true;\n warning = \"Element is inaccessible. This means that the element and all its children are invisible to screen readers.\\n If you are using the aria-hidden prop, make sure this is the right choice for your case.\\n \";\n }\n if (Object.keys(queryOptions).length > 0) {\n queryArgs.push(queryOptions);\n }\n const queryMethod = variant + \"By\" + queryName;\n return {\n queryName,\n queryMethod,\n queryArgs,\n variant,\n warning,\n toString() {\n if (warning) {\n console.warn(warning);\n }\n let [text, options] = queryArgs;\n text = typeof text === 'string' ? \"'\" + text + \"'\" : text;\n options = options ? \", { \" + Object.entries(options).map(_ref2 => {\n let [k, v] = _ref2;\n return k + \": \" + v;\n }).join(', ') + \" }\" : '';\n return queryMethod + \"(\" + text + options + \")\";\n }\n };\n}\nfunction canSuggest(currentMethod, requestedMethod, data) {\n return data && (!requestedMethod || requestedMethod.toLowerCase() === currentMethod.toLowerCase());\n}\nfunction getSuggestedQuery(element, variant, method) {\n var _element$getAttribute, _getImplicitAriaRoles;\n if (variant === void 0) {\n variant = 'get';\n }\n // don't create suggestions for script and style elements\n if (element.matches(getConfig().defaultIgnore)) {\n return undefined;\n }\n\n //We prefer to suggest something else if the role is generic\n const role = (_element$getAttribute = element.getAttribute('role')) != null ? _element$getAttribute : (_getImplicitAriaRoles = getImplicitAriaRoles(element)) == null ? void 0 : _getImplicitAriaRoles[0];\n if (role !== 'generic' && canSuggest('Role', method, role)) {\n return makeSuggestion('Role', element, role, {\n variant,\n name: computeAccessibleName(element, {\n computedStyleSupportsPseudoElements: getConfig().computedStyleSupportsPseudoElements\n })\n });\n }\n const labelText = getLabels(document, element).map(label => label.content).join(' ');\n if (canSuggest('LabelText', method, labelText)) {\n return makeSuggestion('LabelText', element, labelText, {\n variant\n });\n }\n const placeholderText = element.getAttribute('placeholder');\n if (canSuggest('PlaceholderText', method, placeholderText)) {\n return makeSuggestion('PlaceholderText', element, placeholderText, {\n variant\n });\n }\n const textContent = normalize(getNodeText(element));\n if (canSuggest('Text', method, textContent)) {\n return makeSuggestion('Text', element, textContent, {\n variant\n });\n }\n if (canSuggest('DisplayValue', method, element.value)) {\n return makeSuggestion('DisplayValue', element, normalize(element.value), {\n variant\n });\n }\n const alt = element.getAttribute('alt');\n if (canSuggest('AltText', method, alt)) {\n return makeSuggestion('AltText', element, alt, {\n variant\n });\n }\n const title = element.getAttribute('title');\n if (canSuggest('Title', method, title)) {\n return makeSuggestion('Title', element, title, {\n variant\n });\n }\n const testId = element.getAttribute(getConfig().testIdAttribute);\n if (canSuggest('TestId', method, testId)) {\n return makeSuggestion('TestId', element, testId, {\n variant\n });\n }\n return undefined;\n}\n\n// This is so the stack trace the developer sees is one that's\n// closer to their code (because async stack traces are hard to follow).\nfunction copyStackTrace(target, source) {\n target.stack = source.stack.replace(source.message, target.message);\n}\nfunction waitFor(callback, _ref) {\n let {\n container = getDocument(),\n timeout = getConfig().asyncUtilTimeout,\n showOriginalStackTrace = getConfig().showOriginalStackTrace,\n stackTraceError,\n interval = 50,\n onTimeout = error => {\n error.message = getConfig().getElementError(error.message, container).message;\n return error;\n },\n mutationObserverOptions = {\n subtree: true,\n childList: true,\n attributes: true,\n characterData: true\n }\n } = _ref;\n if (typeof callback !== 'function') {\n throw new TypeError('Received `callback` arg must be a function');\n }\n return new Promise(async (resolve, reject) => {\n let lastError, intervalId, observer;\n let finished = false;\n let promiseStatus = 'idle';\n const overallTimeoutTimer = setTimeout(handleTimeout, timeout);\n const usingJestFakeTimers = jestFakeTimersAreEnabled();\n if (usingJestFakeTimers) {\n const {\n unstable_advanceTimersWrapper: advanceTimersWrapper\n } = getConfig();\n checkCallback();\n // this is a dangerous rule to disable because it could lead to an\n // infinite loop. However, eslint isn't smart enough to know that we're\n // setting finished inside `onDone` which will be called when we're done\n // waiting or when we've timed out.\n // eslint-disable-next-line no-unmodified-loop-condition\n while (!finished) {\n if (!jestFakeTimersAreEnabled()) {\n const error = new Error(\"Changed from using fake timers to real timers while using waitFor. This is not allowed and will result in very strange behavior. Please ensure you're awaiting all async things your test is doing before changing to real timers. For more info, please go to https://github.com/testing-library/dom-testing-library/issues/830\");\n if (!showOriginalStackTrace) copyStackTrace(error, stackTraceError);\n reject(error);\n return;\n }\n\n // In this rare case, we *need* to wait for in-flight promises\n // to resolve before continuing. We don't need to take advantage\n // of parallelization so we're fine.\n // https://stackoverflow.com/a/59243586/971592\n // eslint-disable-next-line no-await-in-loop\n await advanceTimersWrapper(async () => {\n // we *could* (maybe should?) use `advanceTimersToNextTimer` but it's\n // possible that could make this loop go on forever if someone is using\n // third party code that's setting up recursive timers so rapidly that\n // the user's timer's don't get a chance to resolve. So we'll advance\n // by an interval instead. (We have a test for this case).\n jest.advanceTimersByTime(interval);\n });\n\n // It's really important that checkCallback is run *before* we flush\n // in-flight promises. To be honest, I'm not sure why, and I can't quite\n // think of a way to reproduce the problem in a test, but I spent\n // an entire day banging my head against a wall on this.\n checkCallback();\n if (finished) {\n break;\n }\n }\n } else {\n try {\n checkContainerType(container);\n } catch (e) {\n reject(e);\n return;\n }\n intervalId = setInterval(checkRealTimersCallback, interval);\n const {\n MutationObserver\n } = getWindowFromNode(container);\n observer = new MutationObserver(checkRealTimersCallback);\n observer.observe(container, mutationObserverOptions);\n checkCallback();\n }\n function onDone(error, result) {\n finished = true;\n clearTimeout(overallTimeoutTimer);\n if (!usingJestFakeTimers) {\n clearInterval(intervalId);\n observer.disconnect();\n }\n if (error) {\n reject(error);\n } else {\n resolve(result);\n }\n }\n function checkRealTimersCallback() {\n if (jestFakeTimersAreEnabled()) {\n const error = new Error(\"Changed from using real timers to fake timers while using waitFor. This is not allowed and will result in very strange behavior. Please ensure you're awaiting all async things your test is doing before changing to fake timers. For more info, please go to https://github.com/testing-library/dom-testing-library/issues/830\");\n if (!showOriginalStackTrace) copyStackTrace(error, stackTraceError);\n return reject(error);\n } else {\n return checkCallback();\n }\n }\n function checkCallback() {\n if (promiseStatus === 'pending') return;\n try {\n const result = runWithExpensiveErrorDiagnosticsDisabled(callback);\n if (typeof (result == null ? void 0 : result.then) === 'function') {\n promiseStatus = 'pending';\n result.then(resolvedValue => {\n promiseStatus = 'resolved';\n onDone(null, resolvedValue);\n }, rejectedValue => {\n promiseStatus = 'rejected';\n lastError = rejectedValue;\n });\n } else {\n onDone(null, result);\n }\n // If `callback` throws, wait for the next mutation, interval, or timeout.\n } catch (error) {\n // Save the most recent callback error to reject the promise with it in the event of a timeout\n lastError = error;\n }\n }\n function handleTimeout() {\n let error;\n if (lastError) {\n error = lastError;\n if (!showOriginalStackTrace && error.name === 'TestingLibraryElementError') {\n copyStackTrace(error, stackTraceError);\n }\n } else {\n error = new Error('Timed out in waitFor.');\n if (!showOriginalStackTrace) {\n copyStackTrace(error, stackTraceError);\n }\n }\n onDone(onTimeout(error), null);\n }\n });\n}\nfunction waitForWrapper(callback, options) {\n // create the error here so its stack trace is as close to the\n // calling code as possible\n const stackTraceError = new Error('STACK_TRACE_MESSAGE');\n return getConfig().asyncWrapper(() => waitFor(callback, {\n stackTraceError,\n ...options\n }));\n}\n\n/*\neslint\n max-lines-per-function: [\"error\", {\"max\": 200}],\n*/\n\nfunction getElementError(message, container) {\n return getConfig().getElementError(message, container);\n}\nfunction getMultipleElementsFoundError(message, container) {\n return getElementError(message + \"\\n\\n(If this is intentional, then use the `*AllBy*` variant of the query (like `queryAllByText`, `getAllByText`, or `findAllByText`)).\", container);\n}\nfunction queryAllByAttribute(attribute, container, text, _temp) {\n let {\n exact = true,\n collapseWhitespace,\n trim,\n normalizer\n } = _temp === void 0 ? {} : _temp;\n const matcher = exact ? matches : fuzzyMatches;\n const matchNormalizer = makeNormalizer({\n collapseWhitespace,\n trim,\n normalizer\n });\n return Array.from(container.querySelectorAll(\"[\" + attribute + \"]\")).filter(node => matcher(node.getAttribute(attribute), node, text, matchNormalizer));\n}\nfunction queryByAttribute(attribute, container, text, options) {\n const els = queryAllByAttribute(attribute, container, text, options);\n if (els.length > 1) {\n throw getMultipleElementsFoundError(\"Found multiple elements by [\" + attribute + \"=\" + text + \"]\", container);\n }\n return els[0] || null;\n}\n\n// this accepts a query function and returns a function which throws an error\n// if more than one elements is returned, otherwise it returns the first\n// element or null\nfunction makeSingleQuery(allQuery, getMultipleError) {\n return function (container) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n const els = allQuery(container, ...args);\n if (els.length > 1) {\n const elementStrings = els.map(element => getElementError(null, element).message).join('\\n\\n');\n throw getMultipleElementsFoundError(getMultipleError(container, ...args) + \"\\n\\nHere are the matching elements:\\n\\n\" + elementStrings, container);\n }\n return els[0] || null;\n };\n}\nfunction getSuggestionError(suggestion, container) {\n return getConfig().getElementError(\"A better query is available, try this:\\n\" + suggestion.toString() + \"\\n\", container);\n}\n\n// this accepts a query function and returns a function which throws an error\n// if an empty list of elements is returned\nfunction makeGetAllQuery(allQuery, getMissingError) {\n return function (container) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n const els = allQuery(container, ...args);\n if (!els.length) {\n throw getConfig().getElementError(getMissingError(container, ...args), container);\n }\n return els;\n };\n}\n\n// this accepts a getter query function and returns a function which calls\n// waitFor and passing a function which invokes the getter.\nfunction makeFindQuery(getter) {\n return (container, text, options, waitForOptions) => {\n return waitForWrapper(() => {\n return getter(container, text, options);\n }, {\n container,\n ...waitForOptions\n });\n };\n}\nconst wrapSingleQueryWithSuggestion = (query, queryAllByName, variant) => function (container) {\n for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) {\n args[_key3 - 1] = arguments[_key3];\n }\n const element = query(container, ...args);\n const [{\n suggest = getConfig().throwSuggestions\n } = {}] = args.slice(-1);\n if (element && suggest) {\n const suggestion = getSuggestedQuery(element, variant);\n if (suggestion && !queryAllByName.endsWith(suggestion.queryName)) {\n throw getSuggestionError(suggestion.toString(), container);\n }\n }\n return element;\n};\nconst wrapAllByQueryWithSuggestion = (query, queryAllByName, variant) => function (container) {\n for (var _len4 = arguments.length, args = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n args[_key4 - 1] = arguments[_key4];\n }\n const els = query(container, ...args);\n const [{\n suggest = getConfig().throwSuggestions\n } = {}] = args.slice(-1);\n if (els.length && suggest) {\n // get a unique list of all suggestion messages. We are only going to make a suggestion if\n // all the suggestions are the same\n const uniqueSuggestionMessages = [...new Set(els.map(element => {\n var _getSuggestedQuery;\n return (_getSuggestedQuery = getSuggestedQuery(element, variant)) == null ? void 0 : _getSuggestedQuery.toString();\n }))];\n if (\n // only want to suggest if all the els have the same suggestion.\n uniqueSuggestionMessages.length === 1 && !queryAllByName.endsWith(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Can this be null at runtime?\n getSuggestedQuery(els[0], variant).queryName)) {\n throw getSuggestionError(uniqueSuggestionMessages[0], container);\n }\n }\n return els;\n};\n\n// TODO: This deviates from the published declarations\n// However, the implementation always required a dyadic (after `container`) not variadic `queryAllBy` considering the implementation of `makeFindQuery`\n// This is at least statically true and can be verified by accepting `QueryMethod`\nfunction buildQueries(queryAllBy, getMultipleError, getMissingError) {\n const queryBy = wrapSingleQueryWithSuggestion(makeSingleQuery(queryAllBy, getMultipleError), queryAllBy.name, 'query');\n const getAllBy = makeGetAllQuery(queryAllBy, getMissingError);\n const getBy = makeSingleQuery(getAllBy, getMultipleError);\n const getByWithSuggestions = wrapSingleQueryWithSuggestion(getBy, queryAllBy.name, 'get');\n const getAllWithSuggestions = wrapAllByQueryWithSuggestion(getAllBy, queryAllBy.name.replace('query', 'get'), 'getAll');\n const findAllBy = makeFindQuery(wrapAllByQueryWithSuggestion(getAllBy, queryAllBy.name, 'findAll'));\n const findBy = makeFindQuery(wrapSingleQueryWithSuggestion(getBy, queryAllBy.name, 'find'));\n return [queryBy, getAllWithSuggestions, getByWithSuggestions, findAllBy, findBy];\n}\n\nvar queryHelpers = /*#__PURE__*/Object.freeze({\n __proto__: null,\n getElementError: getElementError,\n wrapAllByQueryWithSuggestion: wrapAllByQueryWithSuggestion,\n wrapSingleQueryWithSuggestion: wrapSingleQueryWithSuggestion,\n getMultipleElementsFoundError: getMultipleElementsFoundError,\n queryAllByAttribute: queryAllByAttribute,\n queryByAttribute: queryByAttribute,\n makeSingleQuery: makeSingleQuery,\n makeGetAllQuery: makeGetAllQuery,\n makeFindQuery: makeFindQuery,\n buildQueries: buildQueries\n});\n\nfunction queryAllLabels(container) {\n return Array.from(container.querySelectorAll('label,input')).map(node => {\n return {\n node,\n textToMatch: getLabelContent(node)\n };\n }).filter(_ref => {\n let {\n textToMatch\n } = _ref;\n return textToMatch !== null;\n });\n}\nconst queryAllLabelsByText = function (container, text, _temp) {\n let {\n exact = true,\n trim,\n collapseWhitespace,\n normalizer\n } = _temp === void 0 ? {} : _temp;\n const matcher = exact ? matches : fuzzyMatches;\n const matchNormalizer = makeNormalizer({\n collapseWhitespace,\n trim,\n normalizer\n });\n const textToMatchByLabels = queryAllLabels(container);\n return textToMatchByLabels.filter(_ref2 => {\n let {\n node,\n textToMatch\n } = _ref2;\n return matcher(textToMatch, node, text, matchNormalizer);\n }).map(_ref3 => {\n let {\n node\n } = _ref3;\n return node;\n });\n};\nconst queryAllByLabelText = function (container, text, _temp2) {\n let {\n selector = '*',\n exact = true,\n collapseWhitespace,\n trim,\n normalizer\n } = _temp2 === void 0 ? {} : _temp2;\n checkContainerType(container);\n const matcher = exact ? matches : fuzzyMatches;\n const matchNormalizer = makeNormalizer({\n collapseWhitespace,\n trim,\n normalizer\n });\n const matchingLabelledElements = Array.from(container.querySelectorAll('*')).filter(element => {\n return getRealLabels(element).length || element.hasAttribute('aria-labelledby');\n }).reduce((labelledElements, labelledElement) => {\n const labelList = getLabels(container, labelledElement, {\n selector\n });\n labelList.filter(label => Boolean(label.formControl)).forEach(label => {\n if (matcher(label.content, label.formControl, text, matchNormalizer) && label.formControl) {\n labelledElements.push(label.formControl);\n }\n });\n const labelsValue = labelList.filter(label => Boolean(label.content)).map(label => label.content);\n if (matcher(labelsValue.join(' '), labelledElement, text, matchNormalizer)) {\n labelledElements.push(labelledElement);\n }\n if (labelsValue.length > 1) {\n labelsValue.forEach((labelValue, index) => {\n if (matcher(labelValue, labelledElement, text, matchNormalizer)) {\n labelledElements.push(labelledElement);\n }\n const labelsFiltered = [...labelsValue];\n labelsFiltered.splice(index, 1);\n if (labelsFiltered.length > 1) {\n if (matcher(labelsFiltered.join(' '), labelledElement, text, matchNormalizer)) {\n labelledElements.push(labelledElement);\n }\n }\n });\n }\n return labelledElements;\n }, []).concat(queryAllByAttribute('aria-label', container, text, {\n exact,\n normalizer: matchNormalizer\n }));\n return Array.from(new Set(matchingLabelledElements)).filter(element => element.matches(selector));\n};\n\n// the getAll* query would normally look like this:\n// const getAllByLabelText = makeGetAllQuery(\n// queryAllByLabelText,\n// (c, text) => `Unable to find a label with the text of: ${text}`,\n// )\n// however, we can give a more helpful error message than the generic one,\n// so we're writing this one out by hand.\nconst getAllByLabelText = function (container, text) {\n for (var _len = arguments.length, rest = new Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n rest[_key - 2] = arguments[_key];\n }\n const els = queryAllByLabelText(container, text, ...rest);\n if (!els.length) {\n const labels = queryAllLabelsByText(container, text, ...rest);\n if (labels.length) {\n const tagNames = labels.map(label => getTagNameOfElementAssociatedWithLabelViaFor(container, label)).filter(tagName => !!tagName);\n if (tagNames.length) {\n throw getConfig().getElementError(tagNames.map(tagName => \"Found a label with the text of: \" + text + \", however the element associated with this label (<\" + tagName + \" />) is non-labellable [https://html.spec.whatwg.org/multipage/forms.html#category-label]. If you really need to label a <\" + tagName + \" />, you can use aria-label or aria-labelledby instead.\").join('\\n\\n'), container);\n } else {\n throw getConfig().getElementError(\"Found a label with the text of: \" + text + \", however no form control was found associated to that label. Make sure you're using the \\\"for\\\" attribute or \\\"aria-labelledby\\\" attribute correctly.\", container);\n }\n } else {\n throw getConfig().getElementError(\"Unable to find a label with the text of: \" + text, container);\n }\n }\n return els;\n};\nfunction getTagNameOfElementAssociatedWithLabelViaFor(container, label) {\n const htmlFor = label.getAttribute('for');\n if (!htmlFor) {\n return null;\n }\n const element = container.querySelector(\"[id=\\\"\" + htmlFor + \"\\\"]\");\n return element ? element.tagName.toLowerCase() : null;\n}\n\n// the reason mentioned above is the same reason we're not using buildQueries\nconst getMultipleError$7 = (c, text) => \"Found multiple elements with the text of: \" + text;\nconst queryByLabelText = wrapSingleQueryWithSuggestion(makeSingleQuery(queryAllByLabelText, getMultipleError$7), queryAllByLabelText.name, 'query');\nconst getByLabelText = makeSingleQuery(getAllByLabelText, getMultipleError$7);\nconst findAllByLabelText = makeFindQuery(wrapAllByQueryWithSuggestion(getAllByLabelText, getAllByLabelText.name, 'findAll'));\nconst findByLabelText = makeFindQuery(wrapSingleQueryWithSuggestion(getByLabelText, getAllByLabelText.name, 'find'));\nconst getAllByLabelTextWithSuggestions = wrapAllByQueryWithSuggestion(getAllByLabelText, getAllByLabelText.name, 'getAll');\nconst getByLabelTextWithSuggestions = wrapSingleQueryWithSuggestion(getByLabelText, getAllByLabelText.name, 'get');\nconst queryAllByLabelTextWithSuggestions = wrapAllByQueryWithSuggestion(queryAllByLabelText, queryAllByLabelText.name, 'queryAll');\n\nconst queryAllByPlaceholderText = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n checkContainerType(args[0]);\n return queryAllByAttribute('placeholder', ...args);\n};\nconst getMultipleError$6 = (c, text) => \"Found multiple elements with the placeholder text of: \" + text;\nconst getMissingError$6 = (c, text) => \"Unable to find an element with the placeholder text of: \" + text;\nconst queryAllByPlaceholderTextWithSuggestions = wrapAllByQueryWithSuggestion(queryAllByPlaceholderText, queryAllByPlaceholderText.name, 'queryAll');\nconst [queryByPlaceholderText, getAllByPlaceholderText, getByPlaceholderText, findAllByPlaceholderText, findByPlaceholderText] = buildQueries(queryAllByPlaceholderText, getMultipleError$6, getMissingError$6);\n\nconst queryAllByText = function (container, text, _temp) {\n let {\n selector = '*',\n exact = true,\n collapseWhitespace,\n trim,\n ignore = getConfig().defaultIgnore,\n normalizer\n } = _temp === void 0 ? {} : _temp;\n checkContainerType(container);\n const matcher = exact ? matches : fuzzyMatches;\n const matchNormalizer = makeNormalizer({\n collapseWhitespace,\n trim,\n normalizer\n });\n let baseArray = [];\n if (typeof container.matches === 'function' && container.matches(selector)) {\n baseArray = [container];\n }\n return [...baseArray, ...Array.from(container.querySelectorAll(selector))]\n // TODO: `matches` according lib.dom.d.ts can get only `string` but according our code it can handle also boolean :)\n .filter(node => !ignore || !node.matches(ignore)).filter(node => matcher(getNodeText(node), node, text, matchNormalizer));\n};\nconst getMultipleError$5 = (c, text) => \"Found multiple elements with the text: \" + text;\nconst getMissingError$5 = function (c, text, options) {\n if (options === void 0) {\n options = {};\n }\n const {\n collapseWhitespace,\n trim,\n normalizer,\n selector\n } = options;\n const matchNormalizer = makeNormalizer({\n collapseWhitespace,\n trim,\n normalizer\n });\n const normalizedText = matchNormalizer(text.toString());\n const isNormalizedDifferent = normalizedText !== text.toString();\n const isCustomSelector = (selector != null ? selector : '*') !== '*';\n return \"Unable to find an element with the text: \" + (isNormalizedDifferent ? normalizedText + \" (normalized from '\" + text + \"')\" : text) + (isCustomSelector ? \", which matches selector '\" + selector + \"'\" : '') + \". This could be because the text is broken up by multiple elements. In this case, you can provide a function for your text matcher to make your matcher more flexible.\";\n};\nconst queryAllByTextWithSuggestions = wrapAllByQueryWithSuggestion(queryAllByText, queryAllByText.name, 'queryAll');\nconst [queryByText, getAllByText, getByText, findAllByText, findByText] = buildQueries(queryAllByText, getMultipleError$5, getMissingError$5);\n\nconst queryAllByDisplayValue = function (container, value, _temp) {\n let {\n exact = true,\n collapseWhitespace,\n trim,\n normalizer\n } = _temp === void 0 ? {} : _temp;\n checkContainerType(container);\n const matcher = exact ? matches : fuzzyMatches;\n const matchNormalizer = makeNormalizer({\n collapseWhitespace,\n trim,\n normalizer\n });\n return Array.from(container.querySelectorAll(\"input,textarea,select\")).filter(node => {\n if (node.tagName === 'SELECT') {\n const selectedOptions = Array.from(node.options).filter(option => option.selected);\n return selectedOptions.some(optionNode => matcher(getNodeText(optionNode), optionNode, value, matchNormalizer));\n } else {\n return matcher(node.value, node, value, matchNormalizer);\n }\n });\n};\nconst getMultipleError$4 = (c, value) => \"Found multiple elements with the display value: \" + value + \".\";\nconst getMissingError$4 = (c, value) => \"Unable to find an element with the display value: \" + value + \".\";\nconst queryAllByDisplayValueWithSuggestions = wrapAllByQueryWithSuggestion(queryAllByDisplayValue, queryAllByDisplayValue.name, 'queryAll');\nconst [queryByDisplayValue, getAllByDisplayValue, getByDisplayValue, findAllByDisplayValue, findByDisplayValue] = buildQueries(queryAllByDisplayValue, getMultipleError$4, getMissingError$4);\n\n// Valid tags are img, input, area and custom elements\nconst VALID_TAG_REGEXP = /^(img|input|area|.+-.+)$/i;\nconst queryAllByAltText = function (container, alt, options) {\n if (options === void 0) {\n options = {};\n }\n checkContainerType(container);\n return queryAllByAttribute('alt', container, alt, options).filter(node => VALID_TAG_REGEXP.test(node.tagName));\n};\nconst getMultipleError$3 = (c, alt) => \"Found multiple elements with the alt text: \" + alt;\nconst getMissingError$3 = (c, alt) => \"Unable to find an element with the alt text: \" + alt;\nconst queryAllByAltTextWithSuggestions = wrapAllByQueryWithSuggestion(queryAllByAltText, queryAllByAltText.name, 'queryAll');\nconst [queryByAltText, getAllByAltText, getByAltText, findAllByAltText, findByAltText] = buildQueries(queryAllByAltText, getMultipleError$3, getMissingError$3);\n\nconst isSvgTitle = node => {\n var _node$parentElement;\n return node.tagName.toLowerCase() === 'title' && ((_node$parentElement = node.parentElement) == null ? void 0 : _node$parentElement.tagName.toLowerCase()) === 'svg';\n};\nconst queryAllByTitle = function (container, text, _temp) {\n let {\n exact = true,\n collapseWhitespace,\n trim,\n normalizer\n } = _temp === void 0 ? {} : _temp;\n checkContainerType(container);\n const matcher = exact ? matches : fuzzyMatches;\n const matchNormalizer = makeNormalizer({\n collapseWhitespace,\n trim,\n normalizer\n });\n return Array.from(container.querySelectorAll('[title], svg > title')).filter(node => matcher(node.getAttribute('title'), node, text, matchNormalizer) || isSvgTitle(node) && matcher(getNodeText(node), node, text, matchNormalizer));\n};\nconst getMultipleError$2 = (c, title) => \"Found multiple elements with the title: \" + title + \".\";\nconst getMissingError$2 = (c, title) => \"Unable to find an element with the title: \" + title + \".\";\nconst queryAllByTitleWithSuggestions = wrapAllByQueryWithSuggestion(queryAllByTitle, queryAllByTitle.name, 'queryAll');\nconst [queryByTitle, getAllByTitle, getByTitle, findAllByTitle, findByTitle] = buildQueries(queryAllByTitle, getMultipleError$2, getMissingError$2);\n\n/* eslint-disable complexity */\nconst queryAllByRole = function (container, role, _temp) {\n let {\n hidden = getConfig().defaultHidden,\n name,\n description,\n queryFallbacks = false,\n selected,\n busy,\n checked,\n pressed,\n current,\n level,\n expanded,\n value: {\n now: valueNow,\n min: valueMin,\n max: valueMax,\n text: valueText\n } = {}\n } = _temp === void 0 ? {} : _temp;\n checkContainerType(container);\n if (selected !== undefined) {\n var _allRoles$get;\n // guard against unknown roles\n if (((_allRoles$get = roles.get(role)) == null ? void 0 : _allRoles$get.props['aria-selected']) === undefined) {\n throw new Error(\"\\\"aria-selected\\\" is not supported on role \\\"\" + role + \"\\\".\");\n }\n }\n if (busy !== undefined) {\n var _allRoles$get2;\n // guard against unknown roles\n if (((_allRoles$get2 = roles.get(role)) == null ? void 0 : _allRoles$get2.props['aria-busy']) === undefined) {\n throw new Error(\"\\\"aria-busy\\\" is not supported on role \\\"\" + role + \"\\\".\");\n }\n }\n if (checked !== undefined) {\n var _allRoles$get3;\n // guard against unknown roles\n if (((_allRoles$get3 = roles.get(role)) == null ? void 0 : _allRoles$get3.props['aria-checked']) === undefined) {\n throw new Error(\"\\\"aria-checked\\\" is not supported on role \\\"\" + role + \"\\\".\");\n }\n }\n if (pressed !== undefined) {\n var _allRoles$get4;\n // guard against unknown roles\n if (((_allRoles$get4 = roles.get(role)) == null ? void 0 : _allRoles$get4.props['aria-pressed']) === undefined) {\n throw new Error(\"\\\"aria-pressed\\\" is not supported on role \\\"\" + role + \"\\\".\");\n }\n }\n if (current !== undefined) {\n var _allRoles$get5;\n /* istanbul ignore next */\n // guard against unknown roles\n // All currently released ARIA versions support `aria-current` on all roles.\n // Leaving this for symetry and forward compatibility\n if (((_allRoles$get5 = roles.get(role)) == null ? void 0 : _allRoles$get5.props['aria-current']) === undefined) {\n throw new Error(\"\\\"aria-current\\\" is not supported on role \\\"\" + role + \"\\\".\");\n }\n }\n if (level !== undefined) {\n // guard against using `level` option with any role other than `heading`\n if (role !== 'heading') {\n throw new Error(\"Role \\\"\" + role + \"\\\" cannot have \\\"level\\\" property.\");\n }\n }\n if (valueNow !== undefined) {\n var _allRoles$get6;\n // guard against unknown roles\n if (((_allRoles$get6 = roles.get(role)) == null ? void 0 : _allRoles$get6.props['aria-valuenow']) === undefined) {\n throw new Error(\"\\\"aria-valuenow\\\" is not supported on role \\\"\" + role + \"\\\".\");\n }\n }\n if (valueMax !== undefined) {\n var _allRoles$get7;\n // guard against unknown roles\n if (((_allRoles$get7 = roles.get(role)) == null ? void 0 : _allRoles$get7.props['aria-valuemax']) === undefined) {\n throw new Error(\"\\\"aria-valuemax\\\" is not supported on role \\\"\" + role + \"\\\".\");\n }\n }\n if (valueMin !== undefined) {\n var _allRoles$get8;\n // guard against unknown roles\n if (((_allRoles$get8 = roles.get(role)) == null ? void 0 : _allRoles$get8.props['aria-valuemin']) === undefined) {\n throw new Error(\"\\\"aria-valuemin\\\" is not supported on role \\\"\" + role + \"\\\".\");\n }\n }\n if (valueText !== undefined) {\n var _allRoles$get9;\n // guard against unknown roles\n if (((_allRoles$get9 = roles.get(role)) == null ? void 0 : _allRoles$get9.props['aria-valuetext']) === undefined) {\n throw new Error(\"\\\"aria-valuetext\\\" is not supported on role \\\"\" + role + \"\\\".\");\n }\n }\n if (expanded !== undefined) {\n var _allRoles$get10;\n // guard against unknown roles\n if (((_allRoles$get10 = roles.get(role)) == null ? void 0 : _allRoles$get10.props['aria-expanded']) === undefined) {\n throw new Error(\"\\\"aria-expanded\\\" is not supported on role \\\"\" + role + \"\\\".\");\n }\n }\n const subtreeIsInaccessibleCache = new WeakMap();\n function cachedIsSubtreeInaccessible(element) {\n if (!subtreeIsInaccessibleCache.has(element)) {\n subtreeIsInaccessibleCache.set(element, isSubtreeInaccessible(element));\n }\n return subtreeIsInaccessibleCache.get(element);\n }\n return Array.from(container.querySelectorAll(\n // Only query elements that can be matched by the following filters\n makeRoleSelector(role))).filter(node => {\n const isRoleSpecifiedExplicitly = node.hasAttribute('role');\n if (isRoleSpecifiedExplicitly) {\n const roleValue = node.getAttribute('role');\n if (queryFallbacks) {\n return roleValue.split(' ').filter(Boolean).some(roleAttributeToken => roleAttributeToken === role);\n }\n // other wise only send the first token to match\n const [firstRoleAttributeToken] = roleValue.split(' ');\n return firstRoleAttributeToken === role;\n }\n const implicitRoles = getImplicitAriaRoles(node);\n return implicitRoles.some(implicitRole => {\n return implicitRole === role;\n });\n }).filter(element => {\n if (selected !== undefined) {\n return selected === computeAriaSelected(element);\n }\n if (busy !== undefined) {\n return busy === computeAriaBusy(element);\n }\n if (checked !== undefined) {\n return checked === computeAriaChecked(element);\n }\n if (pressed !== undefined) {\n return pressed === computeAriaPressed(element);\n }\n if (current !== undefined) {\n return current === computeAriaCurrent(element);\n }\n if (expanded !== undefined) {\n return expanded === computeAriaExpanded(element);\n }\n if (level !== undefined) {\n return level === computeHeadingLevel(element);\n }\n if (valueNow !== undefined || valueMax !== undefined || valueMin !== undefined || valueText !== undefined) {\n let valueMatches = true;\n if (valueNow !== undefined) {\n valueMatches && (valueMatches = valueNow === computeAriaValueNow(element));\n }\n if (valueMax !== undefined) {\n valueMatches && (valueMatches = valueMax === computeAriaValueMax(element));\n }\n if (valueMin !== undefined) {\n valueMatches && (valueMatches = valueMin === computeAriaValueMin(element));\n }\n if (valueText !== undefined) {\n var _computeAriaValueText;\n valueMatches && (valueMatches = matches((_computeAriaValueText = computeAriaValueText(element)) != null ? _computeAriaValueText : null, element, valueText, text => text));\n }\n return valueMatches;\n }\n // don't care if aria attributes are unspecified\n return true;\n }).filter(element => {\n if (name === undefined) {\n // Don't care\n return true;\n }\n return matches(computeAccessibleName(element, {\n computedStyleSupportsPseudoElements: getConfig().computedStyleSupportsPseudoElements\n }), element, name, text => text);\n }).filter(element => {\n if (description === undefined) {\n // Don't care\n return true;\n }\n return matches(computeAccessibleDescription(element, {\n computedStyleSupportsPseudoElements: getConfig().computedStyleSupportsPseudoElements\n }), element, description, text => text);\n }).filter(element => {\n return hidden === false ? isInaccessible(element, {\n isSubtreeInaccessible: cachedIsSubtreeInaccessible\n }) === false : true;\n });\n};\nfunction makeRoleSelector(role) {\n var _roleElements$get;\n const explicitRoleSelector = \"*[role~=\\\"\" + role + \"\\\"]\";\n const roleRelations = (_roleElements$get = roleElements.get(role)) != null ? _roleElements$get : new Set();\n const implicitRoleSelectors = new Set(Array.from(roleRelations).map(_ref => {\n let {\n name\n } = _ref;\n return name;\n }));\n\n // Current transpilation config sometimes assumes `...` is always applied to arrays.\n // `...` is equivalent to `Array.prototype.concat` for arrays.\n // If you replace this code with `[explicitRoleSelector, ...implicitRoleSelectors]`, make sure every transpilation target retains the `...` in favor of `Array.prototype.concat`.\n return [explicitRoleSelector].concat(Array.from(implicitRoleSelectors)).join(',');\n}\nconst getNameHint = name => {\n let nameHint = '';\n if (name === undefined) {\n nameHint = '';\n } else if (typeof name === 'string') {\n nameHint = \" and name \\\"\" + name + \"\\\"\";\n } else {\n nameHint = \" and name `\" + name + \"`\";\n }\n return nameHint;\n};\nconst getMultipleError$1 = function (c, role, _temp2) {\n let {\n name\n } = _temp2 === void 0 ? {} : _temp2;\n return \"Found multiple elements with the role \\\"\" + role + \"\\\"\" + getNameHint(name);\n};\nconst getMissingError$1 = function (container, role, _temp3) {\n let {\n hidden = getConfig().defaultHidden,\n name,\n description\n } = _temp3 === void 0 ? {} : _temp3;\n if (getConfig()._disableExpensiveErrorDiagnostics) {\n return \"Unable to find role=\\\"\" + role + \"\\\"\" + getNameHint(name);\n }\n let roles = '';\n Array.from(container.children).forEach(childElement => {\n roles += prettyRoles(childElement, {\n hidden,\n includeDescription: description !== undefined\n });\n });\n let roleMessage;\n if (roles.length === 0) {\n if (hidden === false) {\n roleMessage = 'There are no accessible roles. But there might be some inaccessible roles. ' + 'If you wish to access them, then set the `hidden` option to `true`. ' + 'Learn more about this here: https://testing-library.com/docs/dom-testing-library/api-queries#byrole';\n } else {\n roleMessage = 'There are no available roles.';\n }\n } else {\n roleMessage = (\"\\nHere are the \" + (hidden === false ? 'accessible' : 'available') + \" roles:\\n\\n \" + roles.replace(/\\n/g, '\\n ').replace(/\\n\\s\\s\\n/g, '\\n\\n') + \"\\n\").trim();\n }\n let nameHint = '';\n if (name === undefined) {\n nameHint = '';\n } else if (typeof name === 'string') {\n nameHint = \" and name \\\"\" + name + \"\\\"\";\n } else {\n nameHint = \" and name `\" + name + \"`\";\n }\n let descriptionHint = '';\n if (description === undefined) {\n descriptionHint = '';\n } else if (typeof description === 'string') {\n descriptionHint = \" and description \\\"\" + description + \"\\\"\";\n } else {\n descriptionHint = \" and description `\" + description + \"`\";\n }\n return (\"\\nUnable to find an \" + (hidden === false ? 'accessible ' : '') + \"element with the role \\\"\" + role + \"\\\"\" + nameHint + descriptionHint + \"\\n\\n\" + roleMessage).trim();\n};\nconst queryAllByRoleWithSuggestions = wrapAllByQueryWithSuggestion(queryAllByRole, queryAllByRole.name, 'queryAll');\nconst [queryByRole, getAllByRole, getByRole, findAllByRole, findByRole] = buildQueries(queryAllByRole, getMultipleError$1, getMissingError$1);\n\nconst getTestIdAttribute = () => getConfig().testIdAttribute;\nconst queryAllByTestId = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n checkContainerType(args[0]);\n return queryAllByAttribute(getTestIdAttribute(), ...args);\n};\nconst getMultipleError = (c, id) => \"Found multiple elements by: [\" + getTestIdAttribute() + \"=\\\"\" + id + \"\\\"]\";\nconst getMissingError = (c, id) => \"Unable to find an element by: [\" + getTestIdAttribute() + \"=\\\"\" + id + \"\\\"]\";\nconst queryAllByTestIdWithSuggestions = wrapAllByQueryWithSuggestion(queryAllByTestId, queryAllByTestId.name, 'queryAll');\nconst [queryByTestId, getAllByTestId, getByTestId, findAllByTestId, findByTestId] = buildQueries(queryAllByTestId, getMultipleError, getMissingError);\n\nvar queries = /*#__PURE__*/Object.freeze({\n __proto__: null,\n queryAllByLabelText: queryAllByLabelTextWithSuggestions,\n queryByLabelText: queryByLabelText,\n getAllByLabelText: getAllByLabelTextWithSuggestions,\n getByLabelText: getByLabelTextWithSuggestions,\n findAllByLabelText: findAllByLabelText,\n findByLabelText: findByLabelText,\n queryByPlaceholderText: queryByPlaceholderText,\n queryAllByPlaceholderText: queryAllByPlaceholderTextWithSuggestions,\n getByPlaceholderText: getByPlaceholderText,\n getAllByPlaceholderText: getAllByPlaceholderText,\n findAllByPlaceholderText: findAllByPlaceholderText,\n findByPlaceholderText: findByPlaceholderText,\n queryByText: queryByText,\n queryAllByText: queryAllByTextWithSuggestions,\n getByText: getByText,\n getAllByText: getAllByText,\n findAllByText: findAllByText,\n findByText: findByText,\n queryByDisplayValue: queryByDisplayValue,\n queryAllByDisplayValue: queryAllByDisplayValueWithSuggestions,\n getByDisplayValue: getByDisplayValue,\n getAllByDisplayValue: getAllByDisplayValue,\n findAllByDisplayValue: findAllByDisplayValue,\n findByDisplayValue: findByDisplayValue,\n queryByAltText: queryByAltText,\n queryAllByAltText: queryAllByAltTextWithSuggestions,\n getByAltText: getByAltText,\n getAllByAltText: getAllByAltText,\n findAllByAltText: findAllByAltText,\n findByAltText: findByAltText,\n queryByTitle: queryByTitle,\n queryAllByTitle: queryAllByTitleWithSuggestions,\n getByTitle: getByTitle,\n getAllByTitle: getAllByTitle,\n findAllByTitle: findAllByTitle,\n findByTitle: findByTitle,\n queryByRole: queryByRole,\n queryAllByRole: queryAllByRoleWithSuggestions,\n getAllByRole: getAllByRole,\n getByRole: getByRole,\n findAllByRole: findAllByRole,\n findByRole: findByRole,\n queryByTestId: queryByTestId,\n queryAllByTestId: queryAllByTestIdWithSuggestions,\n getByTestId: getByTestId,\n getAllByTestId: getAllByTestId,\n findAllByTestId: findAllByTestId,\n findByTestId: findByTestId\n});\n\n/**\n * @typedef {{[key: string]: Function}} FuncMap\n */\n\n/**\n * @param {HTMLElement} element container\n * @param {FuncMap} queries object of functions\n * @param {Object} initialValue for reducer\n * @returns {FuncMap} returns object of functions bound to container\n */\nfunction getQueriesForElement(element, queries$1, initialValue) {\n if (queries$1 === void 0) {\n queries$1 = queries;\n }\n if (initialValue === void 0) {\n initialValue = {};\n }\n return Object.keys(queries$1).reduce((helpers, key) => {\n const fn = queries$1[key];\n helpers[key] = fn.bind(null, element);\n return helpers;\n }, initialValue);\n}\n\nconst isRemoved = result => !result || Array.isArray(result) && !result.length;\n\n// Check if the element is not present.\n// As the name implies, waitForElementToBeRemoved should check `present` --> `removed`\nfunction initialCheck(elements) {\n if (isRemoved(elements)) {\n throw new Error('The element(s) given to waitForElementToBeRemoved are already removed. waitForElementToBeRemoved requires that the element(s) exist(s) before waiting for removal.');\n }\n}\nasync function waitForElementToBeRemoved(callback, options) {\n // created here so we get a nice stacktrace\n const timeoutError = new Error('Timed out in waitForElementToBeRemoved.');\n if (typeof callback !== 'function') {\n initialCheck(callback);\n const elements = Array.isArray(callback) ? callback : [callback];\n const getRemainingElements = elements.map(element => {\n let parent = element.parentElement;\n if (parent === null) return () => null;\n while (parent.parentElement) parent = parent.parentElement;\n return () => parent.contains(element) ? element : null;\n });\n callback = () => getRemainingElements.map(c => c()).filter(Boolean);\n }\n initialCheck(callback());\n return waitForWrapper(() => {\n let result;\n try {\n result = callback();\n } catch (error) {\n if (error.name === 'TestingLibraryElementError') {\n return undefined;\n }\n throw error;\n }\n if (!isRemoved(result)) {\n throw timeoutError;\n }\n return undefined;\n }, options);\n}\n\n/*\neslint\n require-await: \"off\"\n*/\n\nconst eventMap = {\n // Clipboard Events\n copy: {\n EventType: 'ClipboardEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n cut: {\n EventType: 'ClipboardEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n paste: {\n EventType: 'ClipboardEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n // Composition Events\n compositionEnd: {\n EventType: 'CompositionEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n compositionStart: {\n EventType: 'CompositionEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n compositionUpdate: {\n EventType: 'CompositionEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n // Keyboard Events\n keyDown: {\n EventType: 'KeyboardEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n charCode: 0,\n composed: true\n }\n },\n keyPress: {\n EventType: 'KeyboardEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n charCode: 0,\n composed: true\n }\n },\n keyUp: {\n EventType: 'KeyboardEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n charCode: 0,\n composed: true\n }\n },\n // Focus Events\n focus: {\n EventType: 'FocusEvent',\n defaultInit: {\n bubbles: false,\n cancelable: false,\n composed: true\n }\n },\n blur: {\n EventType: 'FocusEvent',\n defaultInit: {\n bubbles: false,\n cancelable: false,\n composed: true\n }\n },\n focusIn: {\n EventType: 'FocusEvent',\n defaultInit: {\n bubbles: true,\n cancelable: false,\n composed: true\n }\n },\n focusOut: {\n EventType: 'FocusEvent',\n defaultInit: {\n bubbles: true,\n cancelable: false,\n composed: true\n }\n },\n // Form Events\n change: {\n EventType: 'Event',\n defaultInit: {\n bubbles: true,\n cancelable: false\n }\n },\n input: {\n EventType: 'InputEvent',\n defaultInit: {\n bubbles: true,\n cancelable: false,\n composed: true\n }\n },\n invalid: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: true\n }\n },\n submit: {\n EventType: 'Event',\n defaultInit: {\n bubbles: true,\n cancelable: true\n }\n },\n reset: {\n EventType: 'Event',\n defaultInit: {\n bubbles: true,\n cancelable: true\n }\n },\n // Mouse Events\n click: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n button: 0,\n composed: true\n }\n },\n contextMenu: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n dblClick: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n drag: {\n EventType: 'DragEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n dragEnd: {\n EventType: 'DragEvent',\n defaultInit: {\n bubbles: true,\n cancelable: false,\n composed: true\n }\n },\n dragEnter: {\n EventType: 'DragEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n dragExit: {\n EventType: 'DragEvent',\n defaultInit: {\n bubbles: true,\n cancelable: false,\n composed: true\n }\n },\n dragLeave: {\n EventType: 'DragEvent',\n defaultInit: {\n bubbles: true,\n cancelable: false,\n composed: true\n }\n },\n dragOver: {\n EventType: 'DragEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n dragStart: {\n EventType: 'DragEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n drop: {\n EventType: 'DragEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n mouseDown: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n mouseEnter: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: false,\n cancelable: false,\n composed: true\n }\n },\n mouseLeave: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: false,\n cancelable: false,\n composed: true\n }\n },\n mouseMove: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n mouseOut: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n mouseOver: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n mouseUp: {\n EventType: 'MouseEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n // Selection Events\n select: {\n EventType: 'Event',\n defaultInit: {\n bubbles: true,\n cancelable: false\n }\n },\n // Touch Events\n touchCancel: {\n EventType: 'TouchEvent',\n defaultInit: {\n bubbles: true,\n cancelable: false,\n composed: true\n }\n },\n touchEnd: {\n EventType: 'TouchEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n touchMove: {\n EventType: 'TouchEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n touchStart: {\n EventType: 'TouchEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n // UI Events\n resize: {\n EventType: 'UIEvent',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n scroll: {\n EventType: 'UIEvent',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n // Wheel Events\n wheel: {\n EventType: 'WheelEvent',\n defaultInit: {\n bubbles: true,\n cancelable: true,\n composed: true\n }\n },\n // Media Events\n abort: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n canPlay: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n canPlayThrough: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n durationChange: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n emptied: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n encrypted: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n ended: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n loadedData: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n loadedMetadata: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n loadStart: {\n EventType: 'ProgressEvent',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n pause: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n play: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n playing: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n progress: {\n EventType: 'ProgressEvent',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n rateChange: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n seeked: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n seeking: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n stalled: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n suspend: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n timeUpdate: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n volumeChange: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n waiting: {\n EventType: 'Event',\n defaultInit: {\n bubbles: false,\n cancelable: false\n }\n },\n // Events\n load: {\n // TODO: load events can be UIEvent or Event depending on what generated them\n // This is where this abstraction breaks down.\n // But the common targets are ,