v1.1 update - stable
this version will run with npm start, but when attempting to run the built version behind nginx, it appears to have issues
This commit is contained in:
5
node_modules/@testing-library/dom/CHANGELOG.md
generated
vendored
5
node_modules/@testing-library/dom/CHANGELOG.md
generated
vendored
@@ -1,5 +0,0 @@
|
||||
# CHANGELOG
|
||||
|
||||
The changelog is automatically updated using
|
||||
[semantic-release](https://github.com/semantic-release/semantic-release). You
|
||||
can see it on the [releases page](../../releases).
|
||||
20
node_modules/@testing-library/dom/LICENSE
generated
vendored
20
node_modules/@testing-library/dom/LICENSE
generated
vendored
@@ -1,20 +0,0 @@
|
||||
The MIT License (MIT)
|
||||
Copyright (c) 2017 Kent C. Dodds
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
378
node_modules/@testing-library/dom/README.md
generated
vendored
378
node_modules/@testing-library/dom/README.md
generated
vendored
@@ -1,378 +0,0 @@
|
||||
<div align="center">
|
||||
<h1>DOM Testing Library</h1>
|
||||
|
||||
<a href="https://www.emojione.com/emoji/1f419">
|
||||
<img
|
||||
height="80"
|
||||
width="80"
|
||||
alt="octopus"
|
||||
src="https://raw.githubusercontent.com/testing-library/dom-testing-library/main/other/octopus.png"
|
||||
/>
|
||||
</a>
|
||||
|
||||
<p>Simple and complete DOM testing utilities that encourage good testing
|
||||
practices.</p>
|
||||
|
||||
[**Read the docs**](https://testing-library.com/dom) |
|
||||
[Edit the docs](https://github.com/testing-library/testing-library-docs)
|
||||
|
||||
</div>
|
||||
|
||||
<hr />
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
[![Build Status][build-badge]][build]
|
||||
[![Code Coverage][coverage-badge]][coverage]
|
||||
[![version][version-badge]][package]
|
||||
[![downloads][downloads-badge]][npmtrends]
|
||||
[![MIT License][license-badge]][license]
|
||||
[![All Contributors][all-contributors-badge]](#contributors)
|
||||
[![PRs Welcome][prs-badge]][prs]
|
||||
[![Code of Conduct][coc-badge]][coc]
|
||||
[![Discord][discord-badge]][discord]
|
||||
|
||||
[![Watch on GitHub][github-watch-badge]][github-watch]
|
||||
[![Star on GitHub][github-star-badge]][github-star]
|
||||
[![Tweet][twitter-badge]][twitter]
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
<div align="center">
|
||||
<a href="https://testingjavascript.com">
|
||||
<img
|
||||
width="500"
|
||||
alt="TestingJavaScript.com Learn the smart, efficient way to test any JavaScript application."
|
||||
src="https://raw.githubusercontent.com/testing-library/dom-testing-library/main/other/testingjavascript.jpg"
|
||||
/>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
## Table of Contents
|
||||
|
||||
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||
|
||||
- [The Problem](#the-problem)
|
||||
- [This Solution](#this-solution)
|
||||
- [Installation](#installation)
|
||||
- [Documentation](#documentation)
|
||||
- [Guiding Principles](#guiding-principles)
|
||||
- [Contributors](#contributors)
|
||||
- [LICENSE](#license)
|
||||
|
||||
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||
|
||||
## The Problem
|
||||
|
||||
You want to write maintainable tests for your Web UI. As a part of this goal,
|
||||
you want your tests to avoid including implementation details of your components
|
||||
and rather focus on making your tests give you the confidence for which they are
|
||||
intended. As part of this, you want your testbase to be maintainable in the long
|
||||
run so refactors of your components (changes to implementation but not
|
||||
functionality) don't break your tests and slow you and your team down.
|
||||
|
||||
## This Solution
|
||||
|
||||
The `DOM Testing Library` is a very light-weight solution for testing DOM nodes
|
||||
(whether simulated with [`JSDOM`](https://github.com/jsdom/jsdom) as provided by
|
||||
default with [Jest][] or in the browser). The main utilities it provides involve
|
||||
querying the DOM for nodes in a way that's similar to how the user finds
|
||||
elements on the page. In this way, the library helps ensure your tests give you
|
||||
confidence in your UI code. The `DOM Testing Library`'s primary guiding
|
||||
principle is:
|
||||
|
||||
> [The more your tests resemble the way your software is used, the more
|
||||
> confidence they can give you.][guiding-principle]
|
||||
|
||||
## Installation
|
||||
|
||||
This module is distributed via [npm][npm] which is bundled with [node][node] and
|
||||
should be installed as one of your project's `devDependencies`:
|
||||
|
||||
```
|
||||
npm install --save-dev @testing-library/dom
|
||||
```
|
||||
|
||||
> [**Docs**](https://testing-library.com/docs/install)
|
||||
|
||||
## Documentation
|
||||
|
||||
Read the docs (and discover framework and tool-specific implementations) at
|
||||
[testing-library.com](https://testing-library.com/dom)
|
||||
|
||||
## Guiding Principles
|
||||
|
||||
> [The more your tests resemble the way your software is used, the more
|
||||
> confidence they can give you.][guiding-principle]
|
||||
|
||||
We try to only expose methods and utilities that encourage you to write tests
|
||||
that closely resemble how your web pages are used.
|
||||
|
||||
Utilities are included in this project based on the following guiding
|
||||
principles:
|
||||
|
||||
1. If it relates to rendering components, it deals with DOM nodes rather than
|
||||
component instances, nor should it encourage dealing with component
|
||||
instances.
|
||||
2. It should be generally useful for testing the application components in the
|
||||
way the user would use it. We _are_ making some trade-offs here because
|
||||
we're using a computer and often a simulated browser environment, but in
|
||||
general, utilities should encourage tests that use the components the way
|
||||
they're intended to be used.
|
||||
3. Utility implementations and APIs should be simple and flexible.
|
||||
|
||||
At the end of the day, what we want is for this library to be pretty
|
||||
light-weight, simple, and understandable.
|
||||
|
||||
## Contributors
|
||||
|
||||
Thanks goes to these people ([emoji key][emojis]):
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
||||
<!-- prettier-ignore-start -->
|
||||
<!-- markdownlint-disable -->
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center"><a href="https://kentcdodds.com"><img src="https://avatars.githubusercontent.com/u/1500684?v=3?s=100" width="100px;" alt=""/><br /><sub><b>Kent C. Dodds</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=kentcdodds" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=kentcdodds" title="Documentation">📖</a> <a href="#infra-kentcdodds" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=kentcdodds" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://www.smooth-code.com"><img src="https://avatars2.githubusercontent.com/u/266302?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Greg Bergé</b></sub></a><br /><a href="#ideas-neoziro" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center"><a href="http://audiolion.github.io"><img src="https://avatars1.githubusercontent.com/u/2430381?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ryan Castner</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=audiolion" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://www.dnlsandiego.com"><img src="https://avatars0.githubusercontent.com/u/8008023?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Daniel Sandiego</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=dnlsandiego" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/Miklet"><img src="https://avatars2.githubusercontent.com/u/12592677?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Paweł Mikołajczyk</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=Miklet" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://co.linkedin.com/in/alejandronanez/"><img src="https://avatars3.githubusercontent.com/u/464978?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alejandro Ñáñez Ortiz</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=alejandronanez" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/pbomb"><img src="https://avatars0.githubusercontent.com/u/1402095?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matt Parrish</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/issues?q=author%3Apbomb" title="Bug reports">🐛</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=pbomb" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=pbomb" title="Documentation">📖</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=pbomb" title="Tests">⚠️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/wKovacs64"><img src="https://avatars1.githubusercontent.com/u/1288694?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Justin Hall</b></sub></a><br /><a href="#platform-wKovacs64" title="Packaging/porting to new platform">📦</a></td>
|
||||
<td align="center"><a href="https://github.com/antoaravinth"><img src="https://avatars1.githubusercontent.com/u/1241511?s=460&v=4?s=100" width="100px;" alt=""/><br /><sub><b>Anto Aravinth</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=antoaravinth" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=antoaravinth" title="Tests">⚠️</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=antoaravinth" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/JonahMoses"><img src="https://avatars2.githubusercontent.com/u/3462296?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jonah Moses</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=JonahMoses" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://team.thebrain.pro"><img src="https://avatars1.githubusercontent.com/u/4002543?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Łukasz Gandecki</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=lgandecki" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=lgandecki" title="Tests">⚠️</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=lgandecki" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://sompylasar.github.io"><img src="https://avatars2.githubusercontent.com/u/498274?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ivan Babak</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/issues?q=author%3Asompylasar" title="Bug reports">🐛</a> <a href="#ideas-sompylasar" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=sompylasar" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=sompylasar" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/jday3"><img src="https://avatars3.githubusercontent.com/u/4439618?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jesse Day</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=jday3" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://gnapse.github.io"><img src="https://avatars0.githubusercontent.com/u/15199?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ernesto García</b></sub></a><br /><a href="#question-gnapse" title="Answering Questions">💬</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=gnapse" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=gnapse" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://jomaxx.com"><img src="https://avatars2.githubusercontent.com/u/2747424?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Josef Maxx Blake</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=jomaxx" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=jomaxx" title="Documentation">📖</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=jomaxx" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/alecook"><img src="https://avatars3.githubusercontent.com/u/725236?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alex Cook</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=alecook" title="Documentation">📖</a> <a href="#example-alecook" title="Examples">💡</a> <a href="https://github.com/testing-library/dom-testing-library/pulls?q=is%3Apr+reviewed-by%3Aalecook" title="Reviewed Pull Requests">👀</a></td>
|
||||
<td align="center"><a href="https://github.com/dfcook"><img src="https://avatars3.githubusercontent.com/u/10348212?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Daniel Cook</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=dfcook" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=dfcook" title="Documentation">📖</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=dfcook" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/thchia"><img src="https://avatars2.githubusercontent.com/u/21194045?s=400&v=4?s=100" width="100px;" alt=""/><br /><sub><b>Thomas Chia</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/issues?q=author%3Athchia" title="Bug reports">🐛</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=thchia" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/tdeschryver"><img src="https://avatars1.githubusercontent.com/u/28659384?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tim Deschryver</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=tdeschryver" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=tdeschryver" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://alexkrolick.com"><img src="https://avatars3.githubusercontent.com/u/1571667?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alex Krolick</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=alexkrolick" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://www.maddijoyce.com"><img src="https://avatars2.githubusercontent.com/u/2224291?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Maddi Joyce</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=maddijoyce" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/npeterkamps"><img src="https://avatars1.githubusercontent.com/u/25429764?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Peter Kamps</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/issues?q=author%3Anpeterkamps" title="Bug reports">🐛</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=npeterkamps" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=npeterkamps" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://jonathanstoye.de"><img src="https://avatars2.githubusercontent.com/u/21689428?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jonathan Stoye</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=JonathanStoye" title="Documentation">📖</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=JonathanStoye" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/yongdamsh"><img src="https://avatars2.githubusercontent.com/u/4126644?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sanghyeon Lee</b></sub></a><br /><a href="#example-yongdamsh" title="Examples">💡</a></td>
|
||||
<td align="center"><a href="https://github.com/Dajust"><img src="https://avatars3.githubusercontent.com/u/8015514?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Justice Mba </b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=Dajust" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=Dajust" title="Documentation">📖</a> <a href="#ideas-Dajust" title="Ideas, Planning, & Feedback">🤔</a></td>
|
||||
<td align="center"><a href="https://github.com/wgcrouch"><img src="https://avatars3.githubusercontent.com/u/340761?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Wayne Crouch</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=wgcrouch" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://benjaminelliott.co.uk"><img src="https://avatars1.githubusercontent.com/u/4996462?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ben Elliott</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=benelliott" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://nuances.co"><img src="https://avatars3.githubusercontent.com/u/577921?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ruben Costa</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=rubencosta" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://rbrtsmith.com/"><img src="https://avatars2.githubusercontent.com/u/4982001?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Robert Smith</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/issues?q=author%3Arbrtsmith" title="Bug reports">🐛</a> <a href="#ideas-rbrtsmith" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=rbrtsmith" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/dadamssg"><img src="https://avatars3.githubusercontent.com/u/881986?v=4?s=100" width="100px;" alt=""/><br /><sub><b>dadamssg</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=dadamssg" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://neilkistner.com/"><img src="https://avatars1.githubusercontent.com/u/186971?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Neil Kistner</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=wyze" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=wyze" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://bdchauvette.net/"><img src="https://avatars3.githubusercontent.com/u/1448597?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ben Chauvette</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=bdchauvette" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/JeffBaumgardt"><img src="https://avatars2.githubusercontent.com/u/777527?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jeff Baumgardt</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=JeffBaumgardt" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=JeffBaumgardt" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://matchai.me"><img src="https://avatars0.githubusercontent.com/u/4658208?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matan Kushner</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=matchai" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=matchai" title="Documentation">📖</a> <a href="#ideas-matchai" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=matchai" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://www.wendtedesigns.com/"><img src="https://avatars2.githubusercontent.com/u/5779538?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alex Wendte</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=themostcolm" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=themostcolm" title="Documentation">📖</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=themostcolm" title="Tests">⚠️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/ruffle1986"><img src="https://avatars0.githubusercontent.com/u/2196208?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tamas Fodor</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=ruffle1986" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/BenjaminEckardt"><img src="https://avatars3.githubusercontent.com/u/14793495?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Benjamin Eckardt</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=BenjaminEckardt" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/campbellr"><img src="https://avatars3.githubusercontent.com/u/205752?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ryan Campbell</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=campbellr" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://taylor-briggs.com"><img src="https://avatars2.githubusercontent.com/u/1335519?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Taylor Briggs</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=TaylorBriggs" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/jgoz"><img src="https://avatars2.githubusercontent.com/u/132233?v=4?s=100" width="100px;" alt=""/><br /><sub><b>John Gozde</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=jgoz" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/chentsulin"><img src="https://avatars2.githubusercontent.com/u/3382565?v=4?s=100" width="100px;" alt=""/><br /><sub><b>C. T. Lin</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=chentsulin" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://terrencewwong.com"><img src="https://avatars3.githubusercontent.com/u/5312329?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Terrence Wong</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=terrencewwong" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://www.ossfinder.com"><img src="https://avatars0.githubusercontent.com/u/12230408?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Soo Jae Hwang</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=misoguy" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/RoystonS"><img src="https://avatars0.githubusercontent.com/u/19773?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Royston Shufflebotham</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/issues?q=author%3ARoystonS" title="Bug reports">🐛</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=RoystonS" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=RoystonS" title="Documentation">📖</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=RoystonS" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://www.vadimbrodsky.com"><img src="https://avatars0.githubusercontent.com/u/591673?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Vadim Brodsky</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=VadimBrodsky" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://twitter.com/eunjae_lee"><img src="https://avatars3.githubusercontent.com/u/499898?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Eunjae Lee</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=eunjae-lee" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://davidpeter.me"><img src="https://avatars2.githubusercontent.com/u/167743?v=4?s=100" width="100px;" alt=""/><br /><sub><b>David Peter</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=sarenji" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://twitter.com/@puemos"><img src="https://avatars0.githubusercontent.com/u/13174025?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Shy Alter</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=puemos" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=puemos" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://lukaszmakuch.pl"><img src="https://avatars1.githubusercontent.com/u/11966621?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Łukasz Makuch</b></sub></a><br /><a href="#platform-lukaszmakuch" title="Packaging/porting to new platform">📦</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/tylerthehaas"><img src="https://avatars1.githubusercontent.com/u/11150235?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tyler Haas</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=tylerthehaas" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=tylerthehaas" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://vesalaakso.com"><img src="https://avatars2.githubusercontent.com/u/482561?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Vesa Laakso</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=valscion" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=valscion" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/Tolsee"><img src="https://avatars0.githubusercontent.com/u/16590492?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tulsi Sapkota</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=Tolsee" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/tnunes"><img src="https://avatars1.githubusercontent.com/u/163187?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tiago Nunes</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=tnunes" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=tnunes" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/JaxCavalera"><img src="https://avatars1.githubusercontent.com/u/15429762?v=4?s=100" width="100px;" alt=""/><br /><sub><b>JaxCavalera</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=JaxCavalera" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/pulls?q=is%3Apr+reviewed-by%3AJaxCavalera" title="Reviewed Pull Requests">👀</a></td>
|
||||
<td align="center"><a href="https://github.com/bopfer"><img src="https://avatars2.githubusercontent.com/u/824368?v=4?s=100" width="100px;" alt=""/><br /><sub><b>bopfer</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=bopfer" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://blog.alfrescian.com"><img src="https://avatars0.githubusercontent.com/u/1340740?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jan Pfitzner</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=alfrescian" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/dbismut"><img src="https://avatars2.githubusercontent.com/u/5003380?v=4?s=100" width="100px;" alt=""/><br /><sub><b>David</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=dbismut" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://twitter.com/diego_codes"><img src="https://avatars0.githubusercontent.com/u/5973294?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Diego Hernandez</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=diego-codes" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=diego-codes" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/foray1010"><img src="https://avatars3.githubusercontent.com/u/3212221?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Alex Young</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=foray1010" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/paularmstrong"><img src="https://avatars1.githubusercontent.com/u/33297?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Paul Armstrong</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=paularmstrong" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=paularmstrong" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://hu.linkedin.com/pub/tamas-szabo/57/a4b/242"><img src="https://avatars0.githubusercontent.com/u/3720079?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tamás Szabó</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=szabototo89" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=szabototo89" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://twitter.com/dylan_piercey"><img src="https://avatars2.githubusercontent.com/u/4985201?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dylan Piercey</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=DylanPiercey" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=DylanPiercey" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/michaellasky"><img src="https://avatars2.githubusercontent.com/u/6646599?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Lasky</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=michaellasky" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=michaellasky" title="Tests">⚠️</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=michaellasky" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://twitter.com/sebsilbermann"><img src="https://avatars3.githubusercontent.com/u/12292047?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sebastian Silbermann</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=eps1lon" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=eps1lon" title="Tests">⚠️</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=eps1lon" title="Documentation">📖</a> <a href="#infra-eps1lon" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
||||
<td align="center"><a href="https://dylanvann.com/"><img src="https://avatars0.githubusercontent.com/u/1537615?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dylan Vann</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=DylanVann" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://afontcu.dev"><img src="https://avatars0.githubusercontent.com/u/9197791?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Adrià Fontcuberta</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=afontcu" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=afontcu" title="Tests">⚠️</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=afontcu" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="http://thomlom.dev"><img src="https://avatars3.githubusercontent.com/u/16003285?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Thomas Lombart</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=thomlom" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://twitter.com/SavePointSam"><img src="https://avatars0.githubusercontent.com/u/8203211?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Sam Horton</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=SavePointSam" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=SavePointSam" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://andrewhillcode.com"><img src="https://avatars1.githubusercontent.com/u/12396191?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Andrew Hill</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=andrewhillcode" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://amann.me"><img src="https://avatars1.githubusercontent.com/u/4038316?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jan Amann</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=amannn" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=amannn" title="Tests">⚠️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/brapifra"><img src="https://avatars3.githubusercontent.com/u/17855450?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Brais Piñeiro</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=brapifra" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=brapifra" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://www.dominykas.com/"><img src="https://avatars1.githubusercontent.com/u/505619?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dominykas Blyžė</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=dominykas" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=dominykas" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://olzhas.de"><img src="https://avatars3.githubusercontent.com/u/15848876?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Olzhas Askar</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=pheeria" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=pheeria" title="Tests">⚠️</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=pheeria" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://twitter.com/mbelsky_"><img src="https://avatars1.githubusercontent.com/u/3923527?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Max Belsky</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=mbelsky" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=mbelsky" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/mmantel"><img src="https://avatars2.githubusercontent.com/u/1326403?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael Mantel</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=mmantel" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://tomdoes.tech/"><img src="https://avatars1.githubusercontent.com/u/8683577?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tom Nagle</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=tomanagle" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://westbrookjohnson.com"><img src="https://avatars0.githubusercontent.com/u/1156657?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Westbrook Johnson</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=Westbrook" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://aziz.js.org"><img src="https://avatars3.githubusercontent.com/u/17024120?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Mohammad Aziz</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=iAziz786" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=iAziz786" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://www.linkedin.com/in/seetdev/"><img src="https://avatars2.githubusercontent.com/u/35116035?v=4?s=100" width="100px;" alt=""/><br /><sub><b>seetdev</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=seetdev" title="Tests">⚠️</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=seetdev" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://twitter.com/xgbuils"><img src="https://avatars2.githubusercontent.com/u/6483614?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Xavier Garcia Buils</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=xgbuils" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=xgbuils" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/aw-davidson"><img src="https://avatars2.githubusercontent.com/u/32170938?v=4?s=100" width="100px;" alt=""/><br /><sub><b>aw-davidson</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=aw-davidson" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=aw-davidson" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://michaeldeboey.be"><img src="https://avatars3.githubusercontent.com/u/6643991?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michaël De Boey</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=MichaelDeBoey" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://twitter.com/minh_ngvyen"><img src="https://avatars3.githubusercontent.com/u/2852660?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Minh Nguyen</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=NMinhNguyen" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/egilsster"><img src="https://avatars0.githubusercontent.com/u/5672257?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Egill Sveinbjörnsson</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=egilsster" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://pustovalov.dev"><img src="https://avatars2.githubusercontent.com/u/1568885?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Pavel Pustovalov</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=pustovalov" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/apalaniuk"><img src="https://avatars1.githubusercontent.com/u/17710124?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Adam Palaniuk</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=apalaniuk" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=apalaniuk" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/Yama-Tomo"><img src="https://avatars0.githubusercontent.com/u/4970917?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Yama-Tomo</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=Yama-Tomo" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=Yama-Tomo" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/airjp73"><img src="https://avatars2.githubusercontent.com/u/25882770?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Aaron Pettengill</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=airjp73" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=airjp73" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://kwboyd.com"><img src="https://avatars0.githubusercontent.com/u/13855750?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kate W. Boyd</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=kwboyd" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/rahulchavan30"><img src="https://avatars2.githubusercontent.com/u/5296464?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Rahul Suryakanth</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=rahulchavan30" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=rahulchavan30" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://jamie.tokyo"><img src="https://avatars0.githubusercontent.com/u/5964236?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jamie</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=jamsinclair" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=jamsinclair" title="Tests">⚠️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/nstepien"><img src="https://avatars0.githubusercontent.com/u/567105?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nicolas Stepien</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=nstepien" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://knpw.rs"><img src="https://avatars0.githubusercontent.com/u/174864?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ken Powers</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=knpwrs" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/mzdunek93"><img src="https://avatars0.githubusercontent.com/u/10826511?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michał Zdunek</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=mzdunek93" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/Lagily"><img src="https://avatars2.githubusercontent.com/u/42535205?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ali Nasserzadeh</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=Lagily" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://darekkay.com"><img src="https://avatars0.githubusercontent.com/u/3101914?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Darek Kay</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=darekkay" title="Documentation">📖</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=darekkay" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=darekkay" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/Lukas-Kullmann"><img src="https://avatars0.githubusercontent.com/u/387547?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Lukas</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=Lukas-Kullmann" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=Lukas-Kullmann" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://twitter.com/pelotom"><img src="https://avatars2.githubusercontent.com/u/128019?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Tom Crockett</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=pelotom" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=pelotom" title="Tests">⚠️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/appleJax"><img src="https://avatars1.githubusercontent.com/u/13618860?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kevin Brewer</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=appleJax" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=appleJax" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/benmonro"><img src="https://avatars3.githubusercontent.com/u/399236?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ben Monro</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=benmonro" title="Code">💻</a> <a href="#ideas-benmonro" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=benmonro" title="Tests">⚠️</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=benmonro" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/smeijer"><img src="https://avatars1.githubusercontent.com/u/1196524?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Stephan Meijer</b></sub></a><br /><a href="#ideas-smeijer" title="Ideas, Planning, & Feedback">🤔</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=smeijer" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=smeijer" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://joaoforja.com/"><img src="https://avatars2.githubusercontent.com/u/7002157?v=4?s=100" width="100px;" alt=""/><br /><sub><b>João Forja</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=Jnforja" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=Jnforja" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://nickmccurdy.com/"><img src="https://avatars0.githubusercontent.com/u/927220?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nick McCurdy</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=nickmccurdy" title="Documentation">📖</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=nickmccurdy" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=nickmccurdy" title="Tests">⚠️</a> <a href="https://github.com/testing-library/dom-testing-library/pulls?q=is%3Apr+reviewed-by%3Anickmccurdy" title="Reviewed Pull Requests">👀</a> <a href="#infra-nickmccurdy" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
||||
<td align="center"><a href="http://calebmer.com"><img src="https://avatars1.githubusercontent.com/u/8282507?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Caleb Meredith</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=calebmer" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/marcosvega91"><img src="https://avatars2.githubusercontent.com/u/5365582?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Marco Moretti</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=marcosvega91" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=marcosvega91" title="Tests">⚠️</a> <a href="https://github.com/testing-library/dom-testing-library/pulls?q=is%3Apr+reviewed-by%3Amarcosvega91" title="Reviewed Pull Requests">👀</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/tjefferson08"><img src="https://avatars2.githubusercontent.com/u/3535390?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Travis Jefferson</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=tjefferson08" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=tjefferson08" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/mdjastrzebski"><img src="https://avatars2.githubusercontent.com/u/6368606?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Maciej Jastrzebski</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/issues?q=author%3Amdjastrzebski" title="Bug reports">🐛</a></td>
|
||||
<td align="center"><a href="https://commonlit.org"><img src="https://avatars3.githubusercontent.com/u/319471?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Geoff Harcourt</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=geoffharcourt" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://www.joshuakgoldberg.com"><img src="https://avatars1.githubusercontent.com/u/3335181?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Josh Goldberg</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=JoshuaKGoldberg" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=JoshuaKGoldberg" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://kengregory.com"><img src="https://avatars0.githubusercontent.com/u/3155127?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ken Gregory</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=kgregory" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=kgregory" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://www.jacobparis.com/"><img src="https://avatars2.githubusercontent.com/u/5633704?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jacob Paris</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=JacobParis" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=JacobParis" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://keiya01.github.io/portfolio"><img src="https://avatars1.githubusercontent.com/u/34934510?v=4?s=100" width="100px;" alt=""/><br /><sub><b>keiya sasaki</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=keiya01" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/idanen"><img src="https://avatars2.githubusercontent.com/u/1687893?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Idan Entin</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=idanen" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=idanen" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://www.linkedin.com/in/deniz-susman-92b40a145/"><img src="https://avatars1.githubusercontent.com/u/39295979?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Deniz Susman</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=DenrizSusam" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/delca85"><img src="https://avatars1.githubusercontent.com/u/4076043?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Bianca Del Carretto</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=delca85" title="Tests">⚠️</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=delca85" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://www.linkedin.com/in/joshlalonde3/"><img src="https://avatars3.githubusercontent.com/u/9097492?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Josh Lalonde</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=ryuuji3" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=ryuuji3" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/ipap360"><img src="https://avatars2.githubusercontent.com/u/11017666?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ioannis Papadopoulos</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=ipap360" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=ipap360" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/maxnewlands"><img src="https://avatars3.githubusercontent.com/u/1304166?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Maxwell Newlands</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=maxnewlands" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=maxnewlands" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://www.jaredlux.com"><img src="https://avatars0.githubusercontent.com/u/450478?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jared Luxenberg</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=jluxenberg" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=jluxenberg" title="Tests">⚠️</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/Snizhana"><img src="https://avatars3.githubusercontent.com/u/18139946?v=4?s=100" width="100px;" alt=""/><br /><sub><b>snizhana</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=Snizhana" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=Snizhana" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/micha149"><img src="https://avatars2.githubusercontent.com/u/298880?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Michael van Engelshoven</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/pulls?q=is%3Apr+reviewed-by%3Amicha149" title="Reviewed Pull Requests">👀</a></td>
|
||||
<td align="center"><a href="https://ashertuggle.wixsite.com/portfolio"><img src="https://avatars2.githubusercontent.com/u/10679635?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Asher Tuggle</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/issues?q=author%3Aawesomeunleashed" title="Bug reports">🐛</a></td>
|
||||
<td align="center"><a href="https://github.com/winterlamon"><img src="https://avatars0.githubusercontent.com/u/16295605?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Winter LaMon</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=winterlamon" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=winterlamon" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://victorandcode.com"><img src="https://avatars0.githubusercontent.com/u/18427801?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Victor Cordova</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=victorandcode" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=victorandcode" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/slowselfip"><img src="https://avatars3.githubusercontent.com/u/9762906?v=4?s=100" width="100px;" alt=""/><br /><sub><b>slowselfip</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/issues?q=author%3Aslowselfip" title="Bug reports">🐛</a></td>
|
||||
<td align="center"><a href="https://github.com/Semigradsky"><img src="https://avatars3.githubusercontent.com/u/1198848?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dmitry Semigradsky</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=Semigradsky" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/Tismas"><img src="https://avatars2.githubusercontent.com/u/13601275?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Adam</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=Tismas" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=Tismas" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/balavishnuvj"><img src="https://avatars3.githubusercontent.com/u/13718688?v=4?s=100" width="100px;" alt=""/><br /><sub><b>balavishnuvj</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=balavishnuvj" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://chriscolborne.com"><img src="https://avatars2.githubusercontent.com/u/101371?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Chris Colborne</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=zorfling" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/romain-trotard"><img src="https://avatars0.githubusercontent.com/u/17161484?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Romain Trotard</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=romain-trotard" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://www.thomasmarshall.com"><img src="https://avatars0.githubusercontent.com/u/770763?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Thomas Marshall</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=thomasmarshall" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=thomasmarshall" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/johnjesse"><img src="https://avatars1.githubusercontent.com/u/6839660?v=4?s=100" width="100px;" alt=""/><br /><sub><b>johnjessewood</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/issues?q=author%3Ajohnjesse" title="Bug reports">🐛</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=johnjesse" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://codepen.io/ariperkkio/"><img src="https://avatars2.githubusercontent.com/u/14806298?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ari Perkkiö</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/issues?q=author%3AAriPerkkio" title="Bug reports">🐛</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=AriPerkkio" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=AriPerkkio" title="Documentation">📖</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/nathanforce"><img src="https://avatars2.githubusercontent.com/u/6694194?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nathan Force</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=nathanforce" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/ph-fritsche"><img src="https://avatars.githubusercontent.com/u/39068198?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Philipp Fritsche</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=ph-fritsche" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://medium.com/@renatoalencar"><img src="https://avatars.githubusercontent.com/u/6964593?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Renato Alencar</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=renatoalencar" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=renatoalencar" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/SimenB"><img src="https://avatars.githubusercontent.com/u/1404810?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Simen Bekkhus</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/issues?q=author%3ASimenB" title="Bug reports">🐛</a></td>
|
||||
<td align="center"><a href="https://github.com/gaearon"><img src="https://avatars.githubusercontent.com/u/810438?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dan Abramov</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/issues?q=author%3Agaearon" title="Bug reports">🐛</a> <a href="https://github.com/testing-library/dom-testing-library/pulls?q=is%3Apr+reviewed-by%3Agaearon" title="Reviewed Pull Requests">👀</a></td>
|
||||
<td align="center"><a href="https://matan.io"><img src="https://avatars.githubusercontent.com/u/12711091?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Matan Borenkraout</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=MatanBobi" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/simcha90"><img src="https://avatars.githubusercontent.com/u/56388545?v=4?s=100" width="100px;" alt=""/><br /><sub><b>simcha90</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=simcha90" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/amitmiran137"><img src="https://avatars.githubusercontent.com/u/47772523?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Amit Miran</b></sub></a><br /><a href="#infra-amitmiran137" title="Infrastructure (Hosting, Build-Tools, etc)">🚇</a></td>
|
||||
<td align="center"><a href="https://github.com/leschdom"><img src="https://avatars.githubusercontent.com/u/62334278?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Dominik Lesch</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=leschdom" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/G-Rath"><img src="https://avatars.githubusercontent.com/u/3151613?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Gareth Jones</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=G-Rath" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=G-Rath" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="https://github.com/riotrah"><img src="https://avatars.githubusercontent.com/u/22646419?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Rayat Rahman</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=riotrah" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/savcni01"><img src="https://avatars.githubusercontent.com/u/18025894?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Nik Savchenko</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=savcni01" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://www.hawkeye.dog"><img src="https://avatars.githubusercontent.com/u/7245931?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Kevin Fleischman</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=istateside" title="Code">💻</a> <a href="https://github.com/testing-library/dom-testing-library/commits?author=istateside" title="Tests">⚠️</a></td>
|
||||
<td align="center"><a href="http://dfdx.us"><img src="https://avatars.githubusercontent.com/u/3087358?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Beth Hitch</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=dfoverdx" title="Code">💻</a></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="http://www.jacklaurence.net"><img src="https://avatars.githubusercontent.com/u/12763356?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Jack Laurence</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=jacklaurencegaray" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/Lusito"><img src="https://avatars.githubusercontent.com/u/53570854?v=4?s=100" width="100px;" alt=""/><br /><sub><b>SantoJambit</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=SantoJambit" title="Code">💻</a></td>
|
||||
<td align="center"><a href="https://github.com/mittalyashu"><img src="https://avatars.githubusercontent.com/u/29014463?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Yashu Mittal</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=mittalyashu" title="Documentation">📖</a></td>
|
||||
<td align="center"><a href="https://github.com/IanVS"><img src="https://avatars.githubusercontent.com/u/4616705?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Ian VanSchooten</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/commits?author=IanVS" title="Code">💻</a></td>
|
||||
<td align="center"><a href="http://supervanya.com"><img src="https://avatars.githubusercontent.com/u/12336038?v=4?s=100" width="100px;" alt=""/><br /><sub><b>Vanya Prokopovich</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/issues?q=author%3Asupervanya" title="Bug reports">🐛</a></td>
|
||||
<td align="center"><a href="https://github.com/jrnail23"><img src="https://avatars.githubusercontent.com/u/392612?v=4?s=100" width="100px;" alt=""/><br /><sub><b>James Nail</b></sub></a><br /><a href="https://github.com/testing-library/dom-testing-library/issues?q=author%3Ajrnail23" title="Bug reports">🐛</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<!-- markdownlint-restore -->
|
||||
<!-- prettier-ignore-end -->
|
||||
|
||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
||||
|
||||
This project follows the [all-contributors][all-contributors] specification.
|
||||
Contributions of any kind welcome!
|
||||
|
||||
## LICENSE
|
||||
|
||||
[MIT](LICENSE)
|
||||
|
||||
<!-- prettier-ignore-start -->
|
||||
|
||||
[npm]: https://www.npmjs.com/
|
||||
[node]: https://nodejs.org
|
||||
[build-badge]: https://img.shields.io/github/workflow/status/testing-library/dom-testing-library/validate?logo=github&style=flat-square
|
||||
[build]: https://github.com/testing-library/dom-testing-library/actions?query=workflow%3Avalidate
|
||||
[coverage-badge]: https://img.shields.io/codecov/c/github/testing-library/dom-testing-library.svg?style=flat-square
|
||||
[coverage]: https://codecov.io/github/testing-library/dom-testing-library
|
||||
[version-badge]: https://img.shields.io/npm/v/@testing-library/dom.svg?style=flat-square
|
||||
[package]: https://www.npmjs.com/package/@testing-library/dom
|
||||
[downloads-badge]: https://img.shields.io/npm/dm/@testing-library/dom.svg?style=flat-square
|
||||
[npmtrends]: http://www.npmtrends.com/@testing-library/dom
|
||||
[license-badge]: https://img.shields.io/npm/l/@testing-library/dom.svg?style=flat-square
|
||||
[license]: https://github.com/testing-library/dom-testing-library/blob/main/LICENSE
|
||||
[prs-badge]: https://img.shields.io/badge/PRs-welcome-brightgreen.svg?style=flat-square
|
||||
[prs]: http://makeapullrequest.com
|
||||
[coc-badge]: https://img.shields.io/badge/code%20of-conduct-ff69b4.svg?style=flat-square
|
||||
[coc]: https://github.com/testing-library/dom-testing-library/blob/main/CODE_OF_CONDUCT.md
|
||||
[github-watch-badge]: https://img.shields.io/github/watchers/testing-library/dom-testing-library.svg?style=social
|
||||
[github-watch]: https://github.com/testing-library/dom-testing-library/watchers
|
||||
[github-star-badge]: https://img.shields.io/github/stars/testing-library/dom-testing-library.svg?style=social
|
||||
[github-star]: https://github.com/testing-library/dom-testing-library/stargazers
|
||||
[twitter]: https://twitter.com/intent/tweet?text=Check%20out%20dom-testing-library%20by%20%40testing-library%20https%3A%2F%2Fgithub.com%2Ftesting-library%2Fdom-testing-library%20%F0%9F%91%8D
|
||||
[twitter-badge]: https://img.shields.io/twitter/url/https/github.com/testing-library/dom-testing-library.svg?style=social
|
||||
[emojis]: https://github.com/all-contributors/all-contributors#emoji-key
|
||||
[all-contributors]: https://github.com/all-contributors/all-contributors
|
||||
[all-contributors-badge]: https://img.shields.io/github/all-contributors/testing-library/dom-testing-library?color=orange&style=flat-square
|
||||
[set-immediate]: https://developer.mozilla.org/en-US/docs/Web/API/Window/setImmediate
|
||||
[guiding-principle]: https://twitter.com/kentcdodds/status/977018512689455106
|
||||
[jest]: https://facebook.github.io/jest
|
||||
[discord-badge]: https://img.shields.io/discord/723559267868737556.svg?color=7389D8&labelColor=6A7EC2&logo=discord&logoColor=ffffff&style=flat-square
|
||||
[discord]: https://discord.gg/testing-library
|
||||
|
||||
<!-- prettier-ignore-end -->
|
||||
3259
node_modules/@testing-library/dom/dist/@testing-library/dom.cjs.js
generated
vendored
3259
node_modules/@testing-library/dom/dist/@testing-library/dom.cjs.js
generated
vendored
File diff suppressed because it is too large
Load Diff
3153
node_modules/@testing-library/dom/dist/@testing-library/dom.esm.js
generated
vendored
3153
node_modules/@testing-library/dom/dist/@testing-library/dom.esm.js
generated
vendored
File diff suppressed because it is too large
Load Diff
13804
node_modules/@testing-library/dom/dist/@testing-library/dom.umd.js
generated
vendored
13804
node_modules/@testing-library/dom/dist/@testing-library/dom.umd.js
generated
vendored
File diff suppressed because it is too large
Load Diff
1
node_modules/@testing-library/dom/dist/@testing-library/dom.umd.js.map
generated
vendored
1
node_modules/@testing-library/dom/dist/@testing-library/dom.umd.js.map
generated
vendored
File diff suppressed because one or more lines are too long
2
node_modules/@testing-library/dom/dist/@testing-library/dom.umd.min.js
generated
vendored
2
node_modules/@testing-library/dom/dist/@testing-library/dom.umd.min.js
generated
vendored
File diff suppressed because one or more lines are too long
1
node_modules/@testing-library/dom/dist/@testing-library/dom.umd.min.js.map
generated
vendored
1
node_modules/@testing-library/dom/dist/@testing-library/dom.umd.min.js.map
generated
vendored
File diff suppressed because one or more lines are too long
142
node_modules/@testing-library/dom/dist/DOMElementFilter.js
generated
vendored
142
node_modules/@testing-library/dom/dist/DOMElementFilter.js
generated
vendored
@@ -1,142 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.default = createDOMElementFilter;
|
||||
exports.test = void 0;
|
||||
|
||||
/**
|
||||
* Source: https://github.com/facebook/jest/blob/e7bb6a1e26ffab90611b2593912df15b69315611/packages/pretty-format/src/plugins/DOMElement.ts
|
||||
*/
|
||||
|
||||
/* eslint-disable -- trying to stay as close to the original as possible */
|
||||
|
||||
/* istanbul ignore file */
|
||||
function escapeHTML(str) {
|
||||
return str.replace(/</g, '<').replace(/>/g, '>');
|
||||
} // Return empty string if keys is empty.
|
||||
|
||||
|
||||
const printProps = (keys, props, config, indentation, depth, refs, printer) => {
|
||||
const indentationNext = indentation + config.indent;
|
||||
const colors = config.colors;
|
||||
return keys.map(key => {
|
||||
const value = props[key];
|
||||
let printed = printer(value, config, indentationNext, depth, refs);
|
||||
|
||||
if (typeof value !== 'string') {
|
||||
if (printed.indexOf('\n') !== -1) {
|
||||
printed = config.spacingOuter + indentationNext + printed + config.spacingOuter + indentation;
|
||||
}
|
||||
|
||||
printed = '{' + printed + '}';
|
||||
}
|
||||
|
||||
return config.spacingInner + indentation + colors.prop.open + key + colors.prop.close + '=' + colors.value.open + printed + colors.value.close;
|
||||
}).join('');
|
||||
}; // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType#node_type_constants
|
||||
|
||||
|
||||
const NodeTypeTextNode = 3; // Return empty string if children is empty.
|
||||
|
||||
const printChildren = (children, config, indentation, depth, refs, printer) => children.map(child => {
|
||||
const printedChild = typeof child === 'string' ? printText(child, config) : printer(child, config, indentation, depth, refs);
|
||||
|
||||
if (printedChild === '' && typeof child === 'object' && child !== null && child.nodeType !== NodeTypeTextNode) {
|
||||
// A plugin serialized this Node to '' meaning we should ignore it.
|
||||
return '';
|
||||
}
|
||||
|
||||
return config.spacingOuter + indentation + printedChild;
|
||||
}).join('');
|
||||
|
||||
const printText = (text, config) => {
|
||||
const contentColor = config.colors.content;
|
||||
return contentColor.open + escapeHTML(text) + contentColor.close;
|
||||
};
|
||||
|
||||
const printComment = (comment, config) => {
|
||||
const commentColor = config.colors.comment;
|
||||
return commentColor.open + '<!--' + escapeHTML(comment) + '-->' + commentColor.close;
|
||||
}; // Separate the functions to format props, children, and element,
|
||||
// so a plugin could override a particular function, if needed.
|
||||
// Too bad, so sad: the traditional (but unnecessary) space
|
||||
// in a self-closing tagColor requires a second test of printedProps.
|
||||
|
||||
|
||||
const printElement = (type, printedProps, printedChildren, config, indentation) => {
|
||||
const tagColor = config.colors.tag;
|
||||
return tagColor.open + '<' + type + (printedProps && tagColor.close + printedProps + config.spacingOuter + indentation + tagColor.open) + (printedChildren ? '>' + tagColor.close + printedChildren + config.spacingOuter + indentation + tagColor.open + '</' + type : (printedProps && !config.min ? '' : ' ') + '/') + '>' + tagColor.close;
|
||||
};
|
||||
|
||||
const printElementAsLeaf = (type, config) => {
|
||||
const tagColor = config.colors.tag;
|
||||
return tagColor.open + '<' + type + tagColor.close + ' …' + tagColor.open + ' />' + tagColor.close;
|
||||
};
|
||||
|
||||
const ELEMENT_NODE = 1;
|
||||
const TEXT_NODE = 3;
|
||||
const COMMENT_NODE = 8;
|
||||
const FRAGMENT_NODE = 11;
|
||||
const ELEMENT_REGEXP = /^((HTML|SVG)\w*)?Element$/;
|
||||
|
||||
const testNode = val => {
|
||||
const constructorName = val.constructor.name;
|
||||
const {
|
||||
nodeType,
|
||||
tagName
|
||||
} = val;
|
||||
const isCustomElement = typeof tagName === 'string' && tagName.includes('-') || typeof val.hasAttribute === 'function' && val.hasAttribute('is');
|
||||
return nodeType === ELEMENT_NODE && (ELEMENT_REGEXP.test(constructorName) || isCustomElement) || nodeType === TEXT_NODE && constructorName === 'Text' || nodeType === COMMENT_NODE && constructorName === 'Comment' || nodeType === FRAGMENT_NODE && constructorName === 'DocumentFragment';
|
||||
};
|
||||
|
||||
const test = val => {
|
||||
var _val$constructor;
|
||||
|
||||
return (val == null ? void 0 : (_val$constructor = val.constructor) == null ? void 0 : _val$constructor.name) && testNode(val);
|
||||
};
|
||||
|
||||
exports.test = test;
|
||||
|
||||
function nodeIsText(node) {
|
||||
return node.nodeType === TEXT_NODE;
|
||||
}
|
||||
|
||||
function nodeIsComment(node) {
|
||||
return node.nodeType === COMMENT_NODE;
|
||||
}
|
||||
|
||||
function nodeIsFragment(node) {
|
||||
return node.nodeType === FRAGMENT_NODE;
|
||||
}
|
||||
|
||||
function createDOMElementFilter(filterNode) {
|
||||
return {
|
||||
test: val => {
|
||||
var _val$constructor2;
|
||||
|
||||
return (val == null ? void 0 : (_val$constructor2 = val.constructor) == null ? void 0 : _val$constructor2.name) && testNode(val);
|
||||
},
|
||||
serialize: (node, config, indentation, depth, refs, printer) => {
|
||||
if (nodeIsText(node)) {
|
||||
return printText(node.data, config);
|
||||
}
|
||||
|
||||
if (nodeIsComment(node)) {
|
||||
return printComment(node.data, config);
|
||||
}
|
||||
|
||||
const type = nodeIsFragment(node) ? `DocumentFragment` : node.tagName.toLowerCase();
|
||||
|
||||
if (++depth > config.maxDepth) {
|
||||
return printElementAsLeaf(type, config);
|
||||
}
|
||||
|
||||
return printElement(type, printProps(nodeIsFragment(node) ? [] : Array.from(node.attributes).map(attr => attr.name).sort(), nodeIsFragment(node) ? {} : Array.from(node.attributes).reduce((props, attribute) => {
|
||||
props[attribute.name] = attribute.value;
|
||||
return props;
|
||||
}, {}), 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);
|
||||
}
|
||||
};
|
||||
}
|
||||
71
node_modules/@testing-library/dom/dist/config.js
generated
vendored
71
node_modules/@testing-library/dom/dist/config.js
generated
vendored
@@ -1,71 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.configure = configure;
|
||||
exports.getConfig = getConfig;
|
||||
exports.runWithExpensiveErrorDiagnosticsDisabled = runWithExpensiveErrorDiagnosticsDisabled;
|
||||
|
||||
var _prettyDom = require("./pretty-dom");
|
||||
|
||||
// It would be cleaner for this to live inside './queries', but
|
||||
// other parts of the code assume that all exports from
|
||||
// './queries' are query functions.
|
||||
let config = {
|
||||
testIdAttribute: 'data-testid',
|
||||
asyncUtilTimeout: 1000,
|
||||
// asyncWrapper and advanceTimersWrapper is to support React's async `act` function.
|
||||
// forcing react-testing-library to wrap all async functions would've been
|
||||
// a total nightmare (consider wrapping every findBy* query and then also
|
||||
// updating `within` so those would be wrapped too. Total nightmare).
|
||||
// so we have this config option that's really only intended for
|
||||
// react-testing-library to use. For that reason, this feature will remain
|
||||
// undocumented.
|
||||
asyncWrapper: cb => cb(),
|
||||
unstable_advanceTimersWrapper: cb => cb(),
|
||||
eventWrapper: cb => cb(),
|
||||
// default value for the `hidden` option in `ByRole` queries
|
||||
defaultHidden: false,
|
||||
// showOriginalStackTrace flag to show the full error stack traces for async errors
|
||||
showOriginalStackTrace: false,
|
||||
// throw errors w/ suggestions for better queries. Opt in so off by default.
|
||||
throwSuggestions: false,
|
||||
|
||||
// called when getBy* queries fail. (message, container) => Error
|
||||
getElementError(message, container) {
|
||||
const prettifiedDOM = (0, _prettyDom.prettyDOM)(container);
|
||||
const error = new Error([message, `Ignored nodes: comments, <script />, <style />\n${prettifiedDOM}`].filter(Boolean).join('\n\n'));
|
||||
error.name = 'TestingLibraryElementError';
|
||||
return error;
|
||||
},
|
||||
|
||||
_disableExpensiveErrorDiagnostics: false,
|
||||
computedStyleSupportsPseudoElements: false
|
||||
};
|
||||
|
||||
function runWithExpensiveErrorDiagnosticsDisabled(callback) {
|
||||
try {
|
||||
config._disableExpensiveErrorDiagnostics = true;
|
||||
return callback();
|
||||
} finally {
|
||||
config._disableExpensiveErrorDiagnostics = false;
|
||||
}
|
||||
}
|
||||
|
||||
function configure(newConfig) {
|
||||
if (typeof newConfig === 'function') {
|
||||
// Pass the existing config out to the provided function
|
||||
// and accept a delta in return
|
||||
newConfig = newConfig(config);
|
||||
} // Merge the incoming config delta
|
||||
|
||||
|
||||
config = { ...config,
|
||||
...newConfig
|
||||
};
|
||||
}
|
||||
|
||||
function getConfig() {
|
||||
return config;
|
||||
}
|
||||
680
node_modules/@testing-library/dom/dist/event-map.js
generated
vendored
680
node_modules/@testing-library/dom/dist/event-map.js
generated
vendored
@@ -1,680 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.eventMap = exports.eventAliasMap = void 0;
|
||||
const eventMap = {
|
||||
// Clipboard Events
|
||||
copy: {
|
||||
EventType: 'ClipboardEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
cut: {
|
||||
EventType: 'ClipboardEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
paste: {
|
||||
EventType: 'ClipboardEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
// Composition Events
|
||||
compositionEnd: {
|
||||
EventType: 'CompositionEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
compositionStart: {
|
||||
EventType: 'CompositionEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
compositionUpdate: {
|
||||
EventType: 'CompositionEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
// Keyboard Events
|
||||
keyDown: {
|
||||
EventType: 'KeyboardEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
charCode: 0,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
keyPress: {
|
||||
EventType: 'KeyboardEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
charCode: 0,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
keyUp: {
|
||||
EventType: 'KeyboardEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
charCode: 0,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
// Focus Events
|
||||
focus: {
|
||||
EventType: 'FocusEvent',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
blur: {
|
||||
EventType: 'FocusEvent',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
focusIn: {
|
||||
EventType: 'FocusEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
focusOut: {
|
||||
EventType: 'FocusEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
// Form Events
|
||||
change: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
input: {
|
||||
EventType: 'InputEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
invalid: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: true
|
||||
}
|
||||
},
|
||||
submit: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true
|
||||
}
|
||||
},
|
||||
reset: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true
|
||||
}
|
||||
},
|
||||
// Mouse Events
|
||||
click: {
|
||||
EventType: 'MouseEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
button: 0,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
contextMenu: {
|
||||
EventType: 'MouseEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
dblClick: {
|
||||
EventType: 'MouseEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
drag: {
|
||||
EventType: 'DragEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
dragEnd: {
|
||||
EventType: 'DragEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
dragEnter: {
|
||||
EventType: 'DragEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
dragExit: {
|
||||
EventType: 'DragEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
dragLeave: {
|
||||
EventType: 'DragEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
dragOver: {
|
||||
EventType: 'DragEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
dragStart: {
|
||||
EventType: 'DragEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
drop: {
|
||||
EventType: 'DragEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
mouseDown: {
|
||||
EventType: 'MouseEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
mouseEnter: {
|
||||
EventType: 'MouseEvent',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
mouseLeave: {
|
||||
EventType: 'MouseEvent',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
mouseMove: {
|
||||
EventType: 'MouseEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
mouseOut: {
|
||||
EventType: 'MouseEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
mouseOver: {
|
||||
EventType: 'MouseEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
mouseUp: {
|
||||
EventType: 'MouseEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
// Selection Events
|
||||
select: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
// Touch Events
|
||||
touchCancel: {
|
||||
EventType: 'TouchEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
touchEnd: {
|
||||
EventType: 'TouchEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
touchMove: {
|
||||
EventType: 'TouchEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
touchStart: {
|
||||
EventType: 'TouchEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
// UI Events
|
||||
resize: {
|
||||
EventType: 'UIEvent',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
scroll: {
|
||||
EventType: 'UIEvent',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
// Wheel Events
|
||||
wheel: {
|
||||
EventType: 'WheelEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
// Media Events
|
||||
abort: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
canPlay: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
canPlayThrough: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
durationChange: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
emptied: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
encrypted: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
ended: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
loadedData: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
loadedMetadata: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
loadStart: {
|
||||
EventType: 'ProgressEvent',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
pause: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
play: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
playing: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
progress: {
|
||||
EventType: 'ProgressEvent',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
rateChange: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
seeked: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
seeking: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
stalled: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
suspend: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
timeUpdate: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
volumeChange: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
waiting: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
// Image Events
|
||||
load: {
|
||||
EventType: 'UIEvent',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
error: {
|
||||
EventType: 'Event',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
// Animation Events
|
||||
animationStart: {
|
||||
EventType: 'AnimationEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
animationEnd: {
|
||||
EventType: 'AnimationEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
animationIteration: {
|
||||
EventType: 'AnimationEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
// Transition Events
|
||||
transitionCancel: {
|
||||
EventType: 'TransitionEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
transitionEnd: {
|
||||
EventType: 'TransitionEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true
|
||||
}
|
||||
},
|
||||
transitionRun: {
|
||||
EventType: 'TransitionEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
transitionStart: {
|
||||
EventType: 'TransitionEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
// pointer events
|
||||
pointerOver: {
|
||||
EventType: 'PointerEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
pointerEnter: {
|
||||
EventType: 'PointerEvent',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
pointerDown: {
|
||||
EventType: 'PointerEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
pointerMove: {
|
||||
EventType: 'PointerEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
pointerUp: {
|
||||
EventType: 'PointerEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
pointerCancel: {
|
||||
EventType: 'PointerEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
pointerOut: {
|
||||
EventType: 'PointerEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: true,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
pointerLeave: {
|
||||
EventType: 'PointerEvent',
|
||||
defaultInit: {
|
||||
bubbles: false,
|
||||
cancelable: false
|
||||
}
|
||||
},
|
||||
gotPointerCapture: {
|
||||
EventType: 'PointerEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
lostPointerCapture: {
|
||||
EventType: 'PointerEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false,
|
||||
composed: true
|
||||
}
|
||||
},
|
||||
// history events
|
||||
popState: {
|
||||
EventType: 'PopStateEvent',
|
||||
defaultInit: {
|
||||
bubbles: true,
|
||||
cancelable: false
|
||||
}
|
||||
}
|
||||
};
|
||||
exports.eventMap = eventMap;
|
||||
const eventAliasMap = {
|
||||
doubleClick: 'dblClick'
|
||||
};
|
||||
exports.eventAliasMap = eventAliasMap;
|
||||
156
node_modules/@testing-library/dom/dist/events.js
generated
vendored
156
node_modules/@testing-library/dom/dist/events.js
generated
vendored
@@ -1,156 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.createEvent = createEvent;
|
||||
exports.fireEvent = fireEvent;
|
||||
|
||||
var _config = require("./config");
|
||||
|
||||
var _helpers = require("./helpers");
|
||||
|
||||
var _eventMap = require("./event-map");
|
||||
|
||||
function fireEvent(element, event) {
|
||||
return (0, _config.getConfig)().eventWrapper(() => {
|
||||
if (!event) {
|
||||
throw new Error(`Unable to fire an event - please provide an event object.`);
|
||||
}
|
||||
|
||||
if (!element) {
|
||||
throw new Error(`Unable to fire a "${event.type}" event - please provide a DOM element.`);
|
||||
}
|
||||
|
||||
return element.dispatchEvent(event);
|
||||
});
|
||||
}
|
||||
|
||||
function createEvent(eventName, node, init, {
|
||||
EventType = 'Event',
|
||||
defaultInit = {}
|
||||
} = {}) {
|
||||
if (!node) {
|
||||
throw new Error(`Unable to fire a "${eventName}" event - please provide a DOM element.`);
|
||||
}
|
||||
|
||||
const eventInit = { ...defaultInit,
|
||||
...init
|
||||
};
|
||||
const {
|
||||
target: {
|
||||
value,
|
||||
files,
|
||||
...targetProperties
|
||||
} = {}
|
||||
} = eventInit;
|
||||
|
||||
if (value !== undefined) {
|
||||
setNativeValue(node, value);
|
||||
}
|
||||
|
||||
if (files !== undefined) {
|
||||
// input.files is a read-only property so this is not allowed:
|
||||
// input.files = [file]
|
||||
// so we have to use this workaround to set the property
|
||||
Object.defineProperty(node, 'files', {
|
||||
configurable: true,
|
||||
enumerable: true,
|
||||
writable: true,
|
||||
value: files
|
||||
});
|
||||
}
|
||||
|
||||
Object.assign(node, targetProperties);
|
||||
const window = (0, _helpers.getWindowFromNode)(node);
|
||||
const EventConstructor = window[EventType] || window.Event;
|
||||
let event;
|
||||
/* istanbul ignore else */
|
||||
|
||||
if (typeof EventConstructor === 'function') {
|
||||
event = new EventConstructor(eventName, eventInit);
|
||||
} else {
|
||||
// IE11 polyfill from https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent/CustomEvent#Polyfill
|
||||
event = window.document.createEvent(EventType);
|
||||
const {
|
||||
bubbles,
|
||||
cancelable,
|
||||
detail,
|
||||
...otherInit
|
||||
} = eventInit;
|
||||
event.initEvent(eventName, bubbles, cancelable, detail);
|
||||
Object.keys(otherInit).forEach(eventKey => {
|
||||
event[eventKey] = otherInit[eventKey];
|
||||
});
|
||||
} // DataTransfer is not supported in jsdom: https://github.com/jsdom/jsdom/issues/1568
|
||||
|
||||
|
||||
const dataTransferProperties = ['dataTransfer', 'clipboardData'];
|
||||
dataTransferProperties.forEach(dataTransferKey => {
|
||||
const dataTransferValue = eventInit[dataTransferKey];
|
||||
|
||||
if (typeof dataTransferValue === 'object') {
|
||||
/* istanbul ignore if */
|
||||
if (typeof window.DataTransfer === 'function') {
|
||||
Object.defineProperty(event, dataTransferKey, {
|
||||
value: Object.getOwnPropertyNames(dataTransferValue).reduce((acc, propName) => {
|
||||
Object.defineProperty(acc, propName, {
|
||||
value: dataTransferValue[propName]
|
||||
});
|
||||
return acc;
|
||||
}, new window.DataTransfer())
|
||||
});
|
||||
} else {
|
||||
Object.defineProperty(event, dataTransferKey, {
|
||||
value: dataTransferValue
|
||||
});
|
||||
}
|
||||
}
|
||||
});
|
||||
return event;
|
||||
}
|
||||
|
||||
Object.keys(_eventMap.eventMap).forEach(key => {
|
||||
const {
|
||||
EventType,
|
||||
defaultInit
|
||||
} = _eventMap.eventMap[key];
|
||||
const eventName = key.toLowerCase();
|
||||
|
||||
createEvent[key] = (node, init) => createEvent(eventName, node, init, {
|
||||
EventType,
|
||||
defaultInit
|
||||
});
|
||||
|
||||
fireEvent[key] = (node, init) => fireEvent(node, createEvent[key](node, init));
|
||||
}); // function written after some investigation here:
|
||||
// https://github.com/facebook/react/issues/10135#issuecomment-401496776
|
||||
|
||||
function setNativeValue(element, value) {
|
||||
const {
|
||||
set: valueSetter
|
||||
} = Object.getOwnPropertyDescriptor(element, 'value') || {};
|
||||
const prototype = Object.getPrototypeOf(element);
|
||||
const {
|
||||
set: prototypeValueSetter
|
||||
} = Object.getOwnPropertyDescriptor(prototype, 'value') || {};
|
||||
|
||||
if (prototypeValueSetter && valueSetter !== prototypeValueSetter) {
|
||||
prototypeValueSetter.call(element, value);
|
||||
} else {
|
||||
/* istanbul ignore if */
|
||||
// eslint-disable-next-line no-lonely-if -- Can't be ignored by istanbul otherwise
|
||||
if (valueSetter) {
|
||||
valueSetter.call(element, value);
|
||||
} else {
|
||||
throw new Error('The given element does not have a value setter');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Object.keys(_eventMap.eventAliasMap).forEach(aliasKey => {
|
||||
const key = _eventMap.eventAliasMap[aliasKey];
|
||||
|
||||
fireEvent[aliasKey] = (...args) => fireEvent[key](...args);
|
||||
});
|
||||
/* eslint complexity:["error", 9] */
|
||||
16
node_modules/@testing-library/dom/dist/get-node-text.js
generated
vendored
16
node_modules/@testing-library/dom/dist/get-node-text.js
generated
vendored
@@ -1,16 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.getNodeText = getNodeText;
|
||||
|
||||
var _helpers = require("./helpers");
|
||||
|
||||
function getNodeText(node) {
|
||||
if (node.matches('input[type=submit], input[type=button], input[type=reset]')) {
|
||||
return node.value;
|
||||
}
|
||||
|
||||
return Array.from(node.childNodes).filter(child => child.nodeType === _helpers.TEXT_NODE && Boolean(child.textContent)).map(c => c.textContent).join('');
|
||||
}
|
||||
30
node_modules/@testing-library/dom/dist/get-queries-for-element.js
generated
vendored
30
node_modules/@testing-library/dom/dist/get-queries-for-element.js
generated
vendored
@@ -1,30 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.getQueriesForElement = getQueriesForElement;
|
||||
|
||||
var defaultQueries = _interopRequireWildcard(require("./queries"));
|
||||
|
||||
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
||||
|
||||
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||||
|
||||
/**
|
||||
* @typedef {{[key: string]: Function}} FuncMap
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param {HTMLElement} element container
|
||||
* @param {FuncMap} queries object of functions
|
||||
* @param {Object} initialValue for reducer
|
||||
* @returns {FuncMap} returns object of functions bound to container
|
||||
*/
|
||||
function getQueriesForElement(element, queries = defaultQueries, initialValue = {}) {
|
||||
return Object.keys(queries).reduce((helpers, key) => {
|
||||
const fn = queries[key];
|
||||
helpers[key] = fn.bind(null, element);
|
||||
return helpers;
|
||||
}, initialValue);
|
||||
}
|
||||
60
node_modules/@testing-library/dom/dist/get-user-code-frame.js
generated
vendored
60
node_modules/@testing-library/dom/dist/get-user-code-frame.js
generated
vendored
@@ -1,60 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.getUserCodeFrame = getUserCodeFrame;
|
||||
// We try to load node dependencies
|
||||
let chalk = null;
|
||||
let readFileSync = null;
|
||||
let codeFrameColumns = null;
|
||||
|
||||
try {
|
||||
const nodeRequire = module && module.require;
|
||||
readFileSync = nodeRequire.call(module, 'fs').readFileSync;
|
||||
codeFrameColumns = nodeRequire.call(module, '@babel/code-frame').codeFrameColumns;
|
||||
chalk = nodeRequire.call(module, 'chalk');
|
||||
} catch {// We're in a browser environment
|
||||
} // frame has the form "at myMethod (location/to/my/file.js:10:2)"
|
||||
|
||||
|
||||
function getCodeFrame(frame) {
|
||||
const locationStart = frame.indexOf('(') + 1;
|
||||
const locationEnd = frame.indexOf(')');
|
||||
const frameLocation = frame.slice(locationStart, locationEnd);
|
||||
const frameLocationElements = frameLocation.split(':');
|
||||
const [filename, line, column] = [frameLocationElements[0], parseInt(frameLocationElements[1], 10), parseInt(frameLocationElements[2], 10)];
|
||||
let rawFileContents = '';
|
||||
|
||||
try {
|
||||
rawFileContents = readFileSync(filename, 'utf-8');
|
||||
} catch {
|
||||
return '';
|
||||
}
|
||||
|
||||
const codeFrame = codeFrameColumns(rawFileContents, {
|
||||
start: {
|
||||
line,
|
||||
column
|
||||
}
|
||||
}, {
|
||||
highlightCode: true,
|
||||
linesBelow: 0
|
||||
});
|
||||
return `${chalk.dim(frameLocation)}\n${codeFrame}\n`;
|
||||
}
|
||||
|
||||
function getUserCodeFrame() {
|
||||
// If we couldn't load dependencies, we can't generate the user trace
|
||||
|
||||
/* istanbul ignore next */
|
||||
if (!readFileSync || !codeFrameColumns) {
|
||||
return '';
|
||||
}
|
||||
|
||||
const err = new Error();
|
||||
const firstClientCodeFrame = err.stack.split('\n').slice(1) // Remove first line which has the form "Error: TypeError"
|
||||
.find(frame => !frame.includes('node_modules/')); // Ignore frames from 3rd party libraries
|
||||
|
||||
return getCodeFrame(firstClientCodeFrame);
|
||||
}
|
||||
72
node_modules/@testing-library/dom/dist/helpers.js
generated
vendored
72
node_modules/@testing-library/dom/dist/helpers.js
generated
vendored
@@ -1,72 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.TEXT_NODE = void 0;
|
||||
exports.checkContainerType = checkContainerType;
|
||||
exports.getDocument = getDocument;
|
||||
exports.getWindowFromNode = getWindowFromNode;
|
||||
exports.jestFakeTimersAreEnabled = jestFakeTimersAreEnabled;
|
||||
// Constant node.nodeType for text nodes, see:
|
||||
// https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType#Node_type_constants
|
||||
const TEXT_NODE = 3;
|
||||
exports.TEXT_NODE = TEXT_NODE;
|
||||
|
||||
function jestFakeTimersAreEnabled() {
|
||||
/* istanbul ignore else */
|
||||
if (typeof jest !== 'undefined' && jest !== null) {
|
||||
return (// legacy timers
|
||||
setTimeout._isMockFunction === true || // modern timers
|
||||
Object.prototype.hasOwnProperty.call(setTimeout, 'clock')
|
||||
);
|
||||
} // istanbul ignore next
|
||||
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function getDocument() {
|
||||
/* istanbul ignore if */
|
||||
if (typeof window === 'undefined') {
|
||||
throw new Error('Could not find default container');
|
||||
}
|
||||
|
||||
return window.document;
|
||||
}
|
||||
|
||||
function getWindowFromNode(node) {
|
||||
if (node.defaultView) {
|
||||
// node is document
|
||||
return node.defaultView;
|
||||
} else if (node.ownerDocument && node.ownerDocument.defaultView) {
|
||||
// node is a DOM node
|
||||
return node.ownerDocument.defaultView;
|
||||
} else if (node.window) {
|
||||
// node is window
|
||||
return node.window;
|
||||
} else if (node.then instanceof Function) {
|
||||
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...\`?`);
|
||||
} else if (Array.isArray(node)) {
|
||||
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...\`?`);
|
||||
} else if (typeof node.debug === 'function' && typeof node.logTestingPlaygroundURL === 'function') {
|
||||
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..., \`?`);
|
||||
} else {
|
||||
// The user passed something unusual to a calling function
|
||||
throw new Error(`Unable to find the "window" object for the given node. Please file an issue with the code that's causing you to see this error: https://github.com/testing-library/dom-testing-library/issues/new`);
|
||||
}
|
||||
}
|
||||
|
||||
function checkContainerType(container) {
|
||||
if (!container || !(typeof container.querySelector === 'function') || !(typeof container.querySelectorAll === 'function')) {
|
||||
throw new TypeError(`Expected container to be an Element, a Document or a DocumentFragment but got ${getTypeName(container)}.`);
|
||||
}
|
||||
|
||||
function getTypeName(object) {
|
||||
if (typeof object === 'object') {
|
||||
return object === null ? 'null' : object.constructor.name;
|
||||
}
|
||||
|
||||
return typeof object;
|
||||
}
|
||||
}
|
||||
211
node_modules/@testing-library/dom/dist/index.js
generated
vendored
211
node_modules/@testing-library/dom/dist/index.js
generated
vendored
@@ -1,211 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
var _exportNames = {
|
||||
within: true,
|
||||
queries: true,
|
||||
queryHelpers: true,
|
||||
getDefaultNormalizer: true,
|
||||
getRoles: true,
|
||||
logRoles: true,
|
||||
isInaccessible: true,
|
||||
configure: true,
|
||||
getConfig: true
|
||||
};
|
||||
Object.defineProperty(exports, "configure", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _config.configure;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "getConfig", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _config.getConfig;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "getDefaultNormalizer", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _matches.getDefaultNormalizer;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "getRoles", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _roleHelpers.getRoles;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "isInaccessible", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _roleHelpers.isInaccessible;
|
||||
}
|
||||
});
|
||||
Object.defineProperty(exports, "logRoles", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _roleHelpers.logRoles;
|
||||
}
|
||||
});
|
||||
exports.queryHelpers = exports.queries = void 0;
|
||||
Object.defineProperty(exports, "within", {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _getQueriesForElement.getQueriesForElement;
|
||||
}
|
||||
});
|
||||
|
||||
var _getQueriesForElement = require("./get-queries-for-element");
|
||||
|
||||
Object.keys(_getQueriesForElement).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
||||
if (key in exports && exports[key] === _getQueriesForElement[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _getQueriesForElement[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var queries = _interopRequireWildcard(require("./queries"));
|
||||
|
||||
exports.queries = queries;
|
||||
Object.keys(queries).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
||||
if (key in exports && exports[key] === queries[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return queries[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var queryHelpers = _interopRequireWildcard(require("./query-helpers"));
|
||||
|
||||
exports.queryHelpers = queryHelpers;
|
||||
Object.keys(queryHelpers).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
||||
if (key in exports && exports[key] === queryHelpers[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return queryHelpers[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _waitFor = require("./wait-for");
|
||||
|
||||
Object.keys(_waitFor).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
||||
if (key in exports && exports[key] === _waitFor[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _waitFor[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _waitForElementToBeRemoved = require("./wait-for-element-to-be-removed");
|
||||
|
||||
Object.keys(_waitForElementToBeRemoved).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
||||
if (key in exports && exports[key] === _waitForElementToBeRemoved[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _waitForElementToBeRemoved[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _matches = require("./matches");
|
||||
|
||||
var _getNodeText = require("./get-node-text");
|
||||
|
||||
Object.keys(_getNodeText).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
||||
if (key in exports && exports[key] === _getNodeText[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _getNodeText[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _events = require("./events");
|
||||
|
||||
Object.keys(_events).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
||||
if (key in exports && exports[key] === _events[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _events[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _screen = require("./screen");
|
||||
|
||||
Object.keys(_screen).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
||||
if (key in exports && exports[key] === _screen[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _screen[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _roleHelpers = require("./role-helpers");
|
||||
|
||||
var _prettyDom = require("./pretty-dom");
|
||||
|
||||
Object.keys(_prettyDom).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
||||
if (key in exports && exports[key] === _prettyDom[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _prettyDom[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _config = require("./config");
|
||||
|
||||
var _suggestions = require("./suggestions");
|
||||
|
||||
Object.keys(_suggestions).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (Object.prototype.hasOwnProperty.call(_exportNames, key)) return;
|
||||
if (key in exports && exports[key] === _suggestions[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _suggestions[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
||||
|
||||
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||||
76
node_modules/@testing-library/dom/dist/label-helpers.js
generated
vendored
76
node_modules/@testing-library/dom/dist/label-helpers.js
generated
vendored
@@ -1,76 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.getLabelContent = getLabelContent;
|
||||
exports.getLabels = getLabels;
|
||||
exports.getRealLabels = getRealLabels;
|
||||
|
||||
var _helpers = require("./helpers");
|
||||
|
||||
const labelledNodeNames = ['button', 'meter', 'output', 'progress', 'select', 'textarea', 'input'];
|
||||
|
||||
function getTextContent(node) {
|
||||
if (labelledNodeNames.includes(node.nodeName.toLowerCase())) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (node.nodeType === _helpers.TEXT_NODE) return node.textContent;
|
||||
return Array.from(node.childNodes).map(childNode => getTextContent(childNode)).join('');
|
||||
}
|
||||
|
||||
function getLabelContent(element) {
|
||||
let textContent;
|
||||
|
||||
if (element.tagName.toLowerCase() === 'label') {
|
||||
textContent = getTextContent(element);
|
||||
} else {
|
||||
textContent = element.value || element.textContent;
|
||||
}
|
||||
|
||||
return textContent;
|
||||
} // Based on https://github.com/eps1lon/dom-accessibility-api/pull/352
|
||||
|
||||
|
||||
function getRealLabels(element) {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition -- types are not aware of older browsers that don't implement `labels`
|
||||
if (element.labels !== undefined) {
|
||||
var _labels;
|
||||
|
||||
return (_labels = element.labels) != null ? _labels : [];
|
||||
}
|
||||
|
||||
if (!isLabelable(element)) return [];
|
||||
const labels = element.ownerDocument.querySelectorAll('label');
|
||||
return Array.from(labels).filter(label => label.control === element);
|
||||
}
|
||||
|
||||
function isLabelable(element) {
|
||||
return /BUTTON|METER|OUTPUT|PROGRESS|SELECT|TEXTAREA/.test(element.tagName) || element.tagName === 'INPUT' && element.getAttribute('type') !== 'hidden';
|
||||
}
|
||||
|
||||
function getLabels(container, element, {
|
||||
selector = '*'
|
||||
} = {}) {
|
||||
const ariaLabelledBy = element.getAttribute('aria-labelledby');
|
||||
const labelsId = ariaLabelledBy ? ariaLabelledBy.split(' ') : [];
|
||||
return labelsId.length ? labelsId.map(labelId => {
|
||||
const labellingElement = container.querySelector(`[id="${labelId}"]`);
|
||||
return labellingElement ? {
|
||||
content: getLabelContent(labellingElement),
|
||||
formControl: null
|
||||
} : {
|
||||
content: '',
|
||||
formControl: null
|
||||
};
|
||||
}) : Array.from(getRealLabels(element)).map(label => {
|
||||
const textToMatch = getLabelContent(label);
|
||||
const formControlSelector = 'button, input, meter, output, progress, select, textarea';
|
||||
const labelledFormControl = Array.from(label.querySelectorAll(formControlSelector)).filter(formControlElement => formControlElement.matches(selector))[0];
|
||||
return {
|
||||
content: textToMatch,
|
||||
formControl: labelledFormControl
|
||||
};
|
||||
});
|
||||
}
|
||||
94
node_modules/@testing-library/dom/dist/matches.js
generated
vendored
94
node_modules/@testing-library/dom/dist/matches.js
generated
vendored
@@ -1,94 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.fuzzyMatches = fuzzyMatches;
|
||||
exports.getDefaultNormalizer = getDefaultNormalizer;
|
||||
exports.makeNormalizer = makeNormalizer;
|
||||
exports.matches = matches;
|
||||
|
||||
function assertNotNullOrUndefined(matcher) {
|
||||
if (matcher === null || matcher === undefined) {
|
||||
throw new Error( // eslint-disable-next-line @typescript-eslint/restrict-template-expressions -- implicitly converting `T` to `string`
|
||||
`It looks like ${matcher} was passed instead of a matcher. Did you do something like getByText(${matcher})?`);
|
||||
}
|
||||
}
|
||||
|
||||
function fuzzyMatches(textToMatch, node, matcher, normalizer) {
|
||||
if (typeof textToMatch !== 'string') {
|
||||
return false;
|
||||
}
|
||||
|
||||
assertNotNullOrUndefined(matcher);
|
||||
const normalizedText = normalizer(textToMatch);
|
||||
|
||||
if (typeof matcher === 'string' || typeof matcher === 'number') {
|
||||
return normalizedText.toLowerCase().includes(matcher.toString().toLowerCase());
|
||||
} else if (typeof matcher === 'function') {
|
||||
return matcher(normalizedText, node);
|
||||
} else {
|
||||
return matcher.test(normalizedText);
|
||||
}
|
||||
}
|
||||
|
||||
function matches(textToMatch, node, matcher, normalizer) {
|
||||
if (typeof textToMatch !== 'string') {
|
||||
return false;
|
||||
}
|
||||
|
||||
assertNotNullOrUndefined(matcher);
|
||||
const normalizedText = normalizer(textToMatch);
|
||||
|
||||
if (matcher instanceof Function) {
|
||||
return matcher(normalizedText, node);
|
||||
} else if (matcher instanceof RegExp) {
|
||||
return matcher.test(normalizedText);
|
||||
} else {
|
||||
return normalizedText === String(matcher);
|
||||
}
|
||||
}
|
||||
|
||||
function getDefaultNormalizer({
|
||||
trim = true,
|
||||
collapseWhitespace = true
|
||||
} = {}) {
|
||||
return text => {
|
||||
let normalizedText = text;
|
||||
normalizedText = trim ? normalizedText.trim() : normalizedText;
|
||||
normalizedText = collapseWhitespace ? normalizedText.replace(/\s+/g, ' ') : normalizedText;
|
||||
return normalizedText;
|
||||
};
|
||||
}
|
||||
/**
|
||||
* Constructs a normalizer to pass to functions in matches.js
|
||||
* @param {boolean|undefined} trim The user-specified value for `trim`, without
|
||||
* any defaulting having been applied
|
||||
* @param {boolean|undefined} collapseWhitespace The user-specified value for
|
||||
* `collapseWhitespace`, without any defaulting having been applied
|
||||
* @param {Function|undefined} normalizer The user-specified normalizer
|
||||
* @returns {Function} A normalizer
|
||||
*/
|
||||
|
||||
|
||||
function makeNormalizer({
|
||||
trim,
|
||||
collapseWhitespace,
|
||||
normalizer
|
||||
}) {
|
||||
if (normalizer) {
|
||||
// User has specified a custom normalizer
|
||||
if (typeof trim !== 'undefined' || typeof collapseWhitespace !== 'undefined') {
|
||||
// They've also specified a value for trim or collapseWhitespace
|
||||
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');
|
||||
}
|
||||
|
||||
return normalizer;
|
||||
} else {
|
||||
// No custom normalizer specified. Just use default.
|
||||
return getDefaultNormalizer({
|
||||
trim,
|
||||
collapseWhitespace
|
||||
});
|
||||
}
|
||||
}
|
||||
95
node_modules/@testing-library/dom/dist/pretty-dom.js
generated
vendored
95
node_modules/@testing-library/dom/dist/pretty-dom.js
generated
vendored
@@ -1,95 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.logDOM = void 0;
|
||||
exports.prettyDOM = prettyDOM;
|
||||
exports.prettyFormat = void 0;
|
||||
|
||||
var prettyFormat = _interopRequireWildcard(require("pretty-format"));
|
||||
|
||||
exports.prettyFormat = prettyFormat;
|
||||
|
||||
var _DOMElementFilter = _interopRequireDefault(require("./DOMElementFilter"));
|
||||
|
||||
var _getUserCodeFrame = require("./get-user-code-frame");
|
||||
|
||||
var _helpers = require("./helpers");
|
||||
|
||||
var _shared = require("./shared");
|
||||
|
||||
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
||||
|
||||
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||||
|
||||
const inNode = () => typeof process !== 'undefined' && process.versions !== undefined && process.versions.node !== undefined;
|
||||
|
||||
const {
|
||||
DOMCollection
|
||||
} = prettyFormat.plugins; // https://developer.mozilla.org/en-US/docs/Web/API/Node/nodeType#node_type_constants
|
||||
|
||||
const ELEMENT_NODE = 1;
|
||||
const COMMENT_NODE = 8; // https://github.com/facebook/jest/blob/615084195ae1ae61ddd56162c62bbdda17587569/packages/pretty-format/src/plugins/DOMElement.ts#L50
|
||||
|
||||
function filterCommentsAndDefaultIgnoreTagsTags(value) {
|
||||
return value.nodeType !== COMMENT_NODE && ( // value.nodeType === ELEMENT_NODE => !value.matches(DEFAULT_IGNORE_TAGS)
|
||||
value.nodeType !== ELEMENT_NODE || !value.matches(_shared.DEFAULT_IGNORE_TAGS));
|
||||
}
|
||||
|
||||
function prettyDOM(dom, maxLength, options = {}) {
|
||||
if (!dom) {
|
||||
dom = (0, _helpers.getDocument)().body;
|
||||
}
|
||||
|
||||
if (typeof maxLength !== 'number') {
|
||||
maxLength = typeof process !== 'undefined' && process.env.DEBUG_PRINT_LIMIT || 7000;
|
||||
}
|
||||
|
||||
if (maxLength === 0) {
|
||||
return '';
|
||||
}
|
||||
|
||||
if (dom.documentElement) {
|
||||
dom = dom.documentElement;
|
||||
}
|
||||
|
||||
let domTypeName = typeof dom;
|
||||
|
||||
if (domTypeName === 'object') {
|
||||
domTypeName = dom.constructor.name;
|
||||
} else {
|
||||
// To don't fall with `in` operator
|
||||
dom = {};
|
||||
}
|
||||
|
||||
if (!('outerHTML' in dom)) {
|
||||
throw new TypeError(`Expected an element or document but got ${domTypeName}`);
|
||||
}
|
||||
|
||||
const {
|
||||
filterNode = filterCommentsAndDefaultIgnoreTagsTags,
|
||||
...prettyFormatOptions
|
||||
} = options;
|
||||
const debugContent = prettyFormat.format(dom, {
|
||||
plugins: [(0, _DOMElementFilter.default)(filterNode), DOMCollection],
|
||||
printFunctionName: false,
|
||||
highlight: inNode(),
|
||||
...prettyFormatOptions
|
||||
});
|
||||
return maxLength !== undefined && dom.outerHTML.length > maxLength ? `${debugContent.slice(0, maxLength)}...` : debugContent;
|
||||
}
|
||||
|
||||
const logDOM = (...args) => {
|
||||
const userCodeFrame = (0, _getUserCodeFrame.getUserCodeFrame)();
|
||||
|
||||
if (userCodeFrame) {
|
||||
console.log(`${prettyDOM(...args)}\n\n${userCodeFrame}`);
|
||||
} else {
|
||||
console.log(prettyDOM(...args));
|
||||
}
|
||||
};
|
||||
|
||||
exports.logDOM = logDOM;
|
||||
57
node_modules/@testing-library/dom/dist/queries/all-utils.js
generated
vendored
57
node_modules/@testing-library/dom/dist/queries/all-utils.js
generated
vendored
@@ -1,57 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _matches = require("../matches");
|
||||
|
||||
Object.keys(_matches).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (key in exports && exports[key] === _matches[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _matches[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _getNodeText = require("../get-node-text");
|
||||
|
||||
Object.keys(_getNodeText).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (key in exports && exports[key] === _getNodeText[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _getNodeText[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _queryHelpers = require("../query-helpers");
|
||||
|
||||
Object.keys(_queryHelpers).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (key in exports && exports[key] === _queryHelpers[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _queryHelpers[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _config = require("../config");
|
||||
|
||||
Object.keys(_config).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (key in exports && exports[key] === _config[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _config[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
33
node_modules/@testing-library/dom/dist/queries/alt-text.js
generated
vendored
33
node_modules/@testing-library/dom/dist/queries/alt-text.js
generated
vendored
@@ -1,33 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.queryByAltText = exports.queryAllByAltText = exports.getByAltText = exports.getAllByAltText = exports.findByAltText = exports.findAllByAltText = void 0;
|
||||
|
||||
var _queryHelpers = require("../query-helpers");
|
||||
|
||||
var _helpers = require("../helpers");
|
||||
|
||||
var _allUtils = require("./all-utils");
|
||||
|
||||
// Valid tags are img, input, area and custom elements
|
||||
const VALID_TAG_REGEXP = /^(img|input|area|.+-.+)$/i;
|
||||
|
||||
const queryAllByAltText = (container, alt, options = {}) => {
|
||||
(0, _helpers.checkContainerType)(container);
|
||||
return (0, _queryHelpers.queryAllByAttribute)('alt', container, alt, options).filter(node => VALID_TAG_REGEXP.test(node.tagName));
|
||||
};
|
||||
|
||||
const getMultipleError = (c, alt) => `Found multiple elements with the alt text: ${alt}`;
|
||||
|
||||
const getMissingError = (c, alt) => `Unable to find an element with the alt text: ${alt}`;
|
||||
|
||||
const queryAllByAltTextWithSuggestions = (0, _queryHelpers.wrapAllByQueryWithSuggestion)(queryAllByAltText, queryAllByAltText.name, 'queryAll');
|
||||
exports.queryAllByAltText = queryAllByAltTextWithSuggestions;
|
||||
const [queryByAltText, getAllByAltText, getByAltText, findAllByAltText, findByAltText] = (0, _allUtils.buildQueries)(queryAllByAltText, getMultipleError, getMissingError);
|
||||
exports.findByAltText = findByAltText;
|
||||
exports.findAllByAltText = findAllByAltText;
|
||||
exports.getByAltText = getByAltText;
|
||||
exports.getAllByAltText = getAllByAltText;
|
||||
exports.queryByAltText = queryByAltText;
|
||||
48
node_modules/@testing-library/dom/dist/queries/display-value.js
generated
vendored
48
node_modules/@testing-library/dom/dist/queries/display-value.js
generated
vendored
@@ -1,48 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.queryByDisplayValue = exports.queryAllByDisplayValue = exports.getByDisplayValue = exports.getAllByDisplayValue = exports.findByDisplayValue = exports.findAllByDisplayValue = void 0;
|
||||
|
||||
var _queryHelpers = require("../query-helpers");
|
||||
|
||||
var _helpers = require("../helpers");
|
||||
|
||||
var _allUtils = require("./all-utils");
|
||||
|
||||
const queryAllByDisplayValue = (container, value, {
|
||||
exact = true,
|
||||
collapseWhitespace,
|
||||
trim,
|
||||
normalizer
|
||||
} = {}) => {
|
||||
(0, _helpers.checkContainerType)(container);
|
||||
const matcher = exact ? _allUtils.matches : _allUtils.fuzzyMatches;
|
||||
const matchNormalizer = (0, _allUtils.makeNormalizer)({
|
||||
collapseWhitespace,
|
||||
trim,
|
||||
normalizer
|
||||
});
|
||||
return Array.from(container.querySelectorAll(`input,textarea,select`)).filter(node => {
|
||||
if (node.tagName === 'SELECT') {
|
||||
const selectedOptions = Array.from(node.options).filter(option => option.selected);
|
||||
return selectedOptions.some(optionNode => matcher((0, _allUtils.getNodeText)(optionNode), optionNode, value, matchNormalizer));
|
||||
} else {
|
||||
return matcher(node.value, node, value, matchNormalizer);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const getMultipleError = (c, value) => `Found multiple elements with the display value: ${value}.`;
|
||||
|
||||
const getMissingError = (c, value) => `Unable to find an element with the display value: ${value}.`;
|
||||
|
||||
const queryAllByDisplayValueWithSuggestions = (0, _queryHelpers.wrapAllByQueryWithSuggestion)(queryAllByDisplayValue, queryAllByDisplayValue.name, 'queryAll');
|
||||
exports.queryAllByDisplayValue = queryAllByDisplayValueWithSuggestions;
|
||||
const [queryByDisplayValue, getAllByDisplayValue, getByDisplayValue, findAllByDisplayValue, findByDisplayValue] = (0, _allUtils.buildQueries)(queryAllByDisplayValue, getMultipleError, getMissingError);
|
||||
exports.findByDisplayValue = findByDisplayValue;
|
||||
exports.findAllByDisplayValue = findAllByDisplayValue;
|
||||
exports.getByDisplayValue = getByDisplayValue;
|
||||
exports.getAllByDisplayValue = getAllByDisplayValue;
|
||||
exports.queryByDisplayValue = queryByDisplayValue;
|
||||
109
node_modules/@testing-library/dom/dist/queries/index.js
generated
vendored
109
node_modules/@testing-library/dom/dist/queries/index.js
generated
vendored
@@ -1,109 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
|
||||
var _labelText = require("./label-text");
|
||||
|
||||
Object.keys(_labelText).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (key in exports && exports[key] === _labelText[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _labelText[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _placeholderText = require("./placeholder-text");
|
||||
|
||||
Object.keys(_placeholderText).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (key in exports && exports[key] === _placeholderText[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _placeholderText[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _text = require("./text");
|
||||
|
||||
Object.keys(_text).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (key in exports && exports[key] === _text[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _text[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _displayValue = require("./display-value");
|
||||
|
||||
Object.keys(_displayValue).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (key in exports && exports[key] === _displayValue[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _displayValue[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _altText = require("./alt-text");
|
||||
|
||||
Object.keys(_altText).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (key in exports && exports[key] === _altText[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _altText[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _title = require("./title");
|
||||
|
||||
Object.keys(_title).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (key in exports && exports[key] === _title[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _title[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _role = require("./role");
|
||||
|
||||
Object.keys(_role).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (key in exports && exports[key] === _role[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _role[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
var _testId = require("./test-id");
|
||||
|
||||
Object.keys(_testId).forEach(function (key) {
|
||||
if (key === "default" || key === "__esModule") return;
|
||||
if (key in exports && exports[key] === _testId[key]) return;
|
||||
Object.defineProperty(exports, key, {
|
||||
enumerable: true,
|
||||
get: function () {
|
||||
return _testId[key];
|
||||
}
|
||||
});
|
||||
});
|
||||
149
node_modules/@testing-library/dom/dist/queries/label-text.js
generated
vendored
149
node_modules/@testing-library/dom/dist/queries/label-text.js
generated
vendored
@@ -1,149 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.queryByLabelText = exports.queryAllByLabelText = exports.getByLabelText = exports.getAllByLabelText = exports.findByLabelText = exports.findAllByLabelText = void 0;
|
||||
|
||||
var _config = require("../config");
|
||||
|
||||
var _helpers = require("../helpers");
|
||||
|
||||
var _labelHelpers = require("../label-helpers");
|
||||
|
||||
var _allUtils = require("./all-utils");
|
||||
|
||||
function queryAllLabels(container) {
|
||||
return Array.from(container.querySelectorAll('label,input')).map(node => {
|
||||
return {
|
||||
node,
|
||||
textToMatch: (0, _labelHelpers.getLabelContent)(node)
|
||||
};
|
||||
}).filter(({
|
||||
textToMatch
|
||||
}) => textToMatch !== null);
|
||||
}
|
||||
|
||||
const queryAllLabelsByText = (container, text, {
|
||||
exact = true,
|
||||
trim,
|
||||
collapseWhitespace,
|
||||
normalizer
|
||||
} = {}) => {
|
||||
const matcher = exact ? _allUtils.matches : _allUtils.fuzzyMatches;
|
||||
const matchNormalizer = (0, _allUtils.makeNormalizer)({
|
||||
collapseWhitespace,
|
||||
trim,
|
||||
normalizer
|
||||
});
|
||||
const textToMatchByLabels = queryAllLabels(container);
|
||||
return textToMatchByLabels.filter(({
|
||||
node,
|
||||
textToMatch
|
||||
}) => matcher(textToMatch, node, text, matchNormalizer)).map(({
|
||||
node
|
||||
}) => node);
|
||||
};
|
||||
|
||||
const queryAllByLabelText = (container, text, {
|
||||
selector = '*',
|
||||
exact = true,
|
||||
collapseWhitespace,
|
||||
trim,
|
||||
normalizer
|
||||
} = {}) => {
|
||||
(0, _helpers.checkContainerType)(container);
|
||||
const matcher = exact ? _allUtils.matches : _allUtils.fuzzyMatches;
|
||||
const matchNormalizer = (0, _allUtils.makeNormalizer)({
|
||||
collapseWhitespace,
|
||||
trim,
|
||||
normalizer
|
||||
});
|
||||
const matchingLabelledElements = Array.from(container.querySelectorAll('*')).filter(element => {
|
||||
return (0, _labelHelpers.getRealLabels)(element).length || element.hasAttribute('aria-labelledby');
|
||||
}).reduce((labelledElements, labelledElement) => {
|
||||
const labelList = (0, _labelHelpers.getLabels)(container, labelledElement, {
|
||||
selector
|
||||
});
|
||||
labelList.filter(label => Boolean(label.formControl)).forEach(label => {
|
||||
if (matcher(label.content, label.formControl, text, matchNormalizer) && label.formControl) labelledElements.push(label.formControl);
|
||||
});
|
||||
const labelsValue = labelList.filter(label => Boolean(label.content)).map(label => label.content);
|
||||
if (matcher(labelsValue.join(' '), labelledElement, text, matchNormalizer)) labelledElements.push(labelledElement);
|
||||
|
||||
if (labelsValue.length > 1) {
|
||||
labelsValue.forEach((labelValue, index) => {
|
||||
if (matcher(labelValue, labelledElement, text, matchNormalizer)) labelledElements.push(labelledElement);
|
||||
const labelsFiltered = [...labelsValue];
|
||||
labelsFiltered.splice(index, 1);
|
||||
|
||||
if (labelsFiltered.length > 1) {
|
||||
if (matcher(labelsFiltered.join(' '), labelledElement, text, matchNormalizer)) labelledElements.push(labelledElement);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
return labelledElements;
|
||||
}, []).concat((0, _allUtils.queryAllByAttribute)('aria-label', container, text, {
|
||||
exact,
|
||||
normalizer: matchNormalizer
|
||||
}));
|
||||
return Array.from(new Set(matchingLabelledElements)).filter(element => element.matches(selector));
|
||||
}; // the getAll* query would normally look like this:
|
||||
// const getAllByLabelText = makeGetAllQuery(
|
||||
// queryAllByLabelText,
|
||||
// (c, text) => `Unable to find a label with the text of: ${text}`,
|
||||
// )
|
||||
// however, we can give a more helpful error message than the generic one,
|
||||
// so we're writing this one out by hand.
|
||||
|
||||
|
||||
const getAllByLabelText = (container, text, ...rest) => {
|
||||
const els = queryAllByLabelText(container, text, ...rest);
|
||||
|
||||
if (!els.length) {
|
||||
const labels = queryAllLabelsByText(container, text, ...rest);
|
||||
|
||||
if (labels.length) {
|
||||
const tagNames = labels.map(label => getTagNameOfElementAssociatedWithLabelViaFor(container, label)).filter(tagName => !!tagName);
|
||||
|
||||
if (tagNames.length) {
|
||||
throw (0, _config.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);
|
||||
} else {
|
||||
throw (0, _config.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);
|
||||
}
|
||||
} else {
|
||||
throw (0, _config.getConfig)().getElementError(`Unable to find a label with the text of: ${text}`, container);
|
||||
}
|
||||
}
|
||||
|
||||
return els;
|
||||
};
|
||||
|
||||
function getTagNameOfElementAssociatedWithLabelViaFor(container, label) {
|
||||
const htmlFor = label.getAttribute('for');
|
||||
|
||||
if (!htmlFor) {
|
||||
return null;
|
||||
}
|
||||
|
||||
const element = container.querySelector(`[id="${htmlFor}"]`);
|
||||
return element ? element.tagName.toLowerCase() : null;
|
||||
} // the reason mentioned above is the same reason we're not using buildQueries
|
||||
|
||||
|
||||
const getMultipleError = (c, text) => `Found multiple elements with the text of: ${text}`;
|
||||
|
||||
const queryByLabelText = (0, _allUtils.wrapSingleQueryWithSuggestion)((0, _allUtils.makeSingleQuery)(queryAllByLabelText, getMultipleError), queryAllByLabelText.name, 'query');
|
||||
exports.queryByLabelText = queryByLabelText;
|
||||
const getByLabelText = (0, _allUtils.makeSingleQuery)(getAllByLabelText, getMultipleError);
|
||||
const findAllByLabelText = (0, _allUtils.makeFindQuery)((0, _allUtils.wrapAllByQueryWithSuggestion)(getAllByLabelText, getAllByLabelText.name, 'findAll'));
|
||||
exports.findAllByLabelText = findAllByLabelText;
|
||||
const findByLabelText = (0, _allUtils.makeFindQuery)((0, _allUtils.wrapSingleQueryWithSuggestion)(getByLabelText, getAllByLabelText.name, 'find'));
|
||||
exports.findByLabelText = findByLabelText;
|
||||
const getAllByLabelTextWithSuggestions = (0, _allUtils.wrapAllByQueryWithSuggestion)(getAllByLabelText, getAllByLabelText.name, 'getAll');
|
||||
exports.getAllByLabelText = getAllByLabelTextWithSuggestions;
|
||||
const getByLabelTextWithSuggestions = (0, _allUtils.wrapSingleQueryWithSuggestion)(getByLabelText, getAllByLabelText.name, 'get');
|
||||
exports.getByLabelText = getByLabelTextWithSuggestions;
|
||||
const queryAllByLabelTextWithSuggestions = (0, _allUtils.wrapAllByQueryWithSuggestion)(queryAllByLabelText, queryAllByLabelText.name, 'queryAll');
|
||||
exports.queryAllByLabelText = queryAllByLabelTextWithSuggestions;
|
||||
30
node_modules/@testing-library/dom/dist/queries/placeholder-text.js
generated
vendored
30
node_modules/@testing-library/dom/dist/queries/placeholder-text.js
generated
vendored
@@ -1,30 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.queryByPlaceholderText = exports.queryAllByPlaceholderText = exports.getByPlaceholderText = exports.getAllByPlaceholderText = exports.findByPlaceholderText = exports.findAllByPlaceholderText = void 0;
|
||||
|
||||
var _queryHelpers = require("../query-helpers");
|
||||
|
||||
var _helpers = require("../helpers");
|
||||
|
||||
var _allUtils = require("./all-utils");
|
||||
|
||||
const queryAllByPlaceholderText = (...args) => {
|
||||
(0, _helpers.checkContainerType)(args[0]);
|
||||
return (0, _allUtils.queryAllByAttribute)('placeholder', ...args);
|
||||
};
|
||||
|
||||
const getMultipleError = (c, text) => `Found multiple elements with the placeholder text of: ${text}`;
|
||||
|
||||
const getMissingError = (c, text) => `Unable to find an element with the placeholder text of: ${text}`;
|
||||
|
||||
const queryAllByPlaceholderTextWithSuggestions = (0, _queryHelpers.wrapAllByQueryWithSuggestion)(queryAllByPlaceholderText, queryAllByPlaceholderText.name, 'queryAll');
|
||||
exports.queryAllByPlaceholderText = queryAllByPlaceholderTextWithSuggestions;
|
||||
const [queryByPlaceholderText, getAllByPlaceholderText, getByPlaceholderText, findAllByPlaceholderText, findByPlaceholderText] = (0, _allUtils.buildQueries)(queryAllByPlaceholderText, getMultipleError, getMissingError);
|
||||
exports.findByPlaceholderText = findByPlaceholderText;
|
||||
exports.findAllByPlaceholderText = findAllByPlaceholderText;
|
||||
exports.getByPlaceholderText = getByPlaceholderText;
|
||||
exports.getAllByPlaceholderText = getAllByPlaceholderText;
|
||||
exports.queryByPlaceholderText = queryByPlaceholderText;
|
||||
263
node_modules/@testing-library/dom/dist/queries/role.js
generated
vendored
263
node_modules/@testing-library/dom/dist/queries/role.js
generated
vendored
@@ -1,263 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.queryByRole = exports.queryAllByRole = exports.getByRole = exports.getAllByRole = exports.findByRole = exports.findAllByRole = void 0;
|
||||
|
||||
var _domAccessibilityApi = require("dom-accessibility-api");
|
||||
|
||||
var _ariaQuery = require("aria-query");
|
||||
|
||||
var _roleHelpers = require("../role-helpers");
|
||||
|
||||
var _queryHelpers = require("../query-helpers");
|
||||
|
||||
var _helpers = require("../helpers");
|
||||
|
||||
var _allUtils = require("./all-utils");
|
||||
|
||||
function queryAllByRole(container, role, {
|
||||
exact = true,
|
||||
collapseWhitespace,
|
||||
hidden = (0, _allUtils.getConfig)().defaultHidden,
|
||||
name,
|
||||
trim,
|
||||
normalizer,
|
||||
queryFallbacks = false,
|
||||
selected,
|
||||
checked,
|
||||
pressed,
|
||||
current,
|
||||
level,
|
||||
expanded
|
||||
} = {}) {
|
||||
(0, _helpers.checkContainerType)(container);
|
||||
const matcher = exact ? _allUtils.matches : _allUtils.fuzzyMatches;
|
||||
const matchNormalizer = (0, _allUtils.makeNormalizer)({
|
||||
collapseWhitespace,
|
||||
trim,
|
||||
normalizer
|
||||
});
|
||||
|
||||
if (selected !== undefined) {
|
||||
var _allRoles$get;
|
||||
|
||||
// guard against unknown roles
|
||||
if (((_allRoles$get = _ariaQuery.roles.get(role)) == null ? void 0 : _allRoles$get.props['aria-selected']) === undefined) {
|
||||
throw new Error(`"aria-selected" is not supported on role "${role}".`);
|
||||
}
|
||||
}
|
||||
|
||||
if (checked !== undefined) {
|
||||
var _allRoles$get2;
|
||||
|
||||
// guard against unknown roles
|
||||
if (((_allRoles$get2 = _ariaQuery.roles.get(role)) == null ? void 0 : _allRoles$get2.props['aria-checked']) === undefined) {
|
||||
throw new Error(`"aria-checked" is not supported on role "${role}".`);
|
||||
}
|
||||
}
|
||||
|
||||
if (pressed !== undefined) {
|
||||
var _allRoles$get3;
|
||||
|
||||
// guard against unknown roles
|
||||
if (((_allRoles$get3 = _ariaQuery.roles.get(role)) == null ? void 0 : _allRoles$get3.props['aria-pressed']) === undefined) {
|
||||
throw new Error(`"aria-pressed" is not supported on role "${role}".`);
|
||||
}
|
||||
}
|
||||
|
||||
if (current !== undefined) {
|
||||
var _allRoles$get4;
|
||||
|
||||
/* istanbul ignore next */
|
||||
// guard against unknown roles
|
||||
// All currently released ARIA versions support `aria-current` on all roles.
|
||||
// Leaving this for symetry and forward compatibility
|
||||
if (((_allRoles$get4 = _ariaQuery.roles.get(role)) == null ? void 0 : _allRoles$get4.props['aria-current']) === undefined) {
|
||||
throw new Error(`"aria-current" is not supported on role "${role}".`);
|
||||
}
|
||||
}
|
||||
|
||||
if (level !== undefined) {
|
||||
// guard against using `level` option with any role other than `heading`
|
||||
if (role !== 'heading') {
|
||||
throw new Error(`Role "${role}" cannot have "level" property.`);
|
||||
}
|
||||
}
|
||||
|
||||
if (expanded !== undefined) {
|
||||
var _allRoles$get5;
|
||||
|
||||
// guard against unknown roles
|
||||
if (((_allRoles$get5 = _ariaQuery.roles.get(role)) == null ? void 0 : _allRoles$get5.props['aria-expanded']) === undefined) {
|
||||
throw new Error(`"aria-expanded" is not supported on role "${role}".`);
|
||||
}
|
||||
}
|
||||
|
||||
const subtreeIsInaccessibleCache = new WeakMap();
|
||||
|
||||
function cachedIsSubtreeInaccessible(element) {
|
||||
if (!subtreeIsInaccessibleCache.has(element)) {
|
||||
subtreeIsInaccessibleCache.set(element, (0, _roleHelpers.isSubtreeInaccessible)(element));
|
||||
}
|
||||
|
||||
return subtreeIsInaccessibleCache.get(element);
|
||||
}
|
||||
|
||||
return Array.from(container.querySelectorAll( // Only query elements that can be matched by the following filters
|
||||
makeRoleSelector(role, exact, normalizer ? matchNormalizer : undefined))).filter(node => {
|
||||
const isRoleSpecifiedExplicitly = node.hasAttribute('role');
|
||||
|
||||
if (isRoleSpecifiedExplicitly) {
|
||||
const roleValue = node.getAttribute('role');
|
||||
|
||||
if (queryFallbacks) {
|
||||
return roleValue.split(' ').filter(Boolean).some(text => matcher(text, node, role, matchNormalizer));
|
||||
} // if a custom normalizer is passed then let normalizer handle the role value
|
||||
|
||||
|
||||
if (normalizer) {
|
||||
return matcher(roleValue, node, role, matchNormalizer);
|
||||
} // other wise only send the first word to match
|
||||
|
||||
|
||||
const [firstWord] = roleValue.split(' ');
|
||||
return matcher(firstWord, node, role, matchNormalizer);
|
||||
}
|
||||
|
||||
const implicitRoles = (0, _roleHelpers.getImplicitAriaRoles)(node);
|
||||
return implicitRoles.some(implicitRole => matcher(implicitRole, node, role, matchNormalizer));
|
||||
}).filter(element => {
|
||||
if (selected !== undefined) {
|
||||
return selected === (0, _roleHelpers.computeAriaSelected)(element);
|
||||
}
|
||||
|
||||
if (checked !== undefined) {
|
||||
return checked === (0, _roleHelpers.computeAriaChecked)(element);
|
||||
}
|
||||
|
||||
if (pressed !== undefined) {
|
||||
return pressed === (0, _roleHelpers.computeAriaPressed)(element);
|
||||
}
|
||||
|
||||
if (current !== undefined) {
|
||||
return current === (0, _roleHelpers.computeAriaCurrent)(element);
|
||||
}
|
||||
|
||||
if (expanded !== undefined) {
|
||||
return expanded === (0, _roleHelpers.computeAriaExpanded)(element);
|
||||
}
|
||||
|
||||
if (level !== undefined) {
|
||||
return level === (0, _roleHelpers.computeHeadingLevel)(element);
|
||||
} // don't care if aria attributes are unspecified
|
||||
|
||||
|
||||
return true;
|
||||
}).filter(element => {
|
||||
if (name === undefined) {
|
||||
// Don't care
|
||||
return true;
|
||||
}
|
||||
|
||||
return (0, _allUtils.matches)((0, _domAccessibilityApi.computeAccessibleName)(element, {
|
||||
computedStyleSupportsPseudoElements: (0, _allUtils.getConfig)().computedStyleSupportsPseudoElements
|
||||
}), element, name, text => text);
|
||||
}).filter(element => {
|
||||
return hidden === false ? (0, _roleHelpers.isInaccessible)(element, {
|
||||
isSubtreeInaccessible: cachedIsSubtreeInaccessible
|
||||
}) === false : true;
|
||||
});
|
||||
}
|
||||
|
||||
function makeRoleSelector(role, exact, customNormalizer) {
|
||||
var _roleElements$get;
|
||||
|
||||
if (typeof role !== 'string') {
|
||||
// For non-string role parameters we can not determine the implicitRoleSelectors.
|
||||
return '*';
|
||||
}
|
||||
|
||||
const explicitRoleSelector = exact && !customNormalizer ? `*[role~="${role}"]` : '*[role]';
|
||||
const roleRelations = (_roleElements$get = _ariaQuery.roleElements.get(role)) != null ? _roleElements$get : new Set();
|
||||
const implicitRoleSelectors = new Set(Array.from(roleRelations).map(({
|
||||
name
|
||||
}) => name)); // Current transpilation config sometimes assumes `...` is always applied to arrays.
|
||||
// `...` is equivalent to `Array.prototype.concat` for arrays.
|
||||
// If you replace this code with `[explicitRoleSelector, ...implicitRoleSelectors]`, make sure every transpilation target retains the `...` in favor of `Array.prototype.concat`.
|
||||
|
||||
return [explicitRoleSelector].concat(Array.from(implicitRoleSelectors)).join(',');
|
||||
}
|
||||
|
||||
const getMultipleError = (c, role, {
|
||||
name
|
||||
} = {}) => {
|
||||
let nameHint = '';
|
||||
|
||||
if (name === undefined) {
|
||||
nameHint = '';
|
||||
} else if (typeof name === 'string') {
|
||||
nameHint = ` and name "${name}"`;
|
||||
} else {
|
||||
nameHint = ` and name \`${name}\``;
|
||||
}
|
||||
|
||||
return `Found multiple elements with the role "${role}"${nameHint}`;
|
||||
};
|
||||
|
||||
const getMissingError = (container, role, {
|
||||
hidden = (0, _allUtils.getConfig)().defaultHidden,
|
||||
name
|
||||
} = {}) => {
|
||||
if ((0, _allUtils.getConfig)()._disableExpensiveErrorDiagnostics) {
|
||||
return `Unable to find role="${role}"`;
|
||||
}
|
||||
|
||||
let roles = '';
|
||||
Array.from(container.children).forEach(childElement => {
|
||||
roles += (0, _roleHelpers.prettyRoles)(childElement, {
|
||||
hidden,
|
||||
includeName: name !== undefined
|
||||
});
|
||||
});
|
||||
let roleMessage;
|
||||
|
||||
if (roles.length === 0) {
|
||||
if (hidden === false) {
|
||||
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';
|
||||
} else {
|
||||
roleMessage = 'There are no available roles.';
|
||||
}
|
||||
} else {
|
||||
roleMessage = `
|
||||
Here are the ${hidden === false ? 'accessible' : 'available'} roles:
|
||||
|
||||
${roles.replace(/\n/g, '\n ').replace(/\n\s\s\n/g, '\n\n')}
|
||||
`.trim();
|
||||
}
|
||||
|
||||
let nameHint = '';
|
||||
|
||||
if (name === undefined) {
|
||||
nameHint = '';
|
||||
} else if (typeof name === 'string') {
|
||||
nameHint = ` and name "${name}"`;
|
||||
} else {
|
||||
nameHint = ` and name \`${name}\``;
|
||||
}
|
||||
|
||||
return `
|
||||
Unable to find an ${hidden === false ? 'accessible ' : ''}element with the role "${role}"${nameHint}
|
||||
|
||||
${roleMessage}`.trim();
|
||||
};
|
||||
|
||||
const queryAllByRoleWithSuggestions = (0, _queryHelpers.wrapAllByQueryWithSuggestion)(queryAllByRole, queryAllByRole.name, 'queryAll');
|
||||
exports.queryAllByRole = queryAllByRoleWithSuggestions;
|
||||
const [queryByRole, getAllByRole, getByRole, findAllByRole, findByRole] = (0, _allUtils.buildQueries)(queryAllByRole, getMultipleError, getMissingError);
|
||||
exports.findByRole = findByRole;
|
||||
exports.findAllByRole = findAllByRole;
|
||||
exports.getByRole = getByRole;
|
||||
exports.getAllByRole = getAllByRole;
|
||||
exports.queryByRole = queryByRole;
|
||||
32
node_modules/@testing-library/dom/dist/queries/test-id.js
generated
vendored
32
node_modules/@testing-library/dom/dist/queries/test-id.js
generated
vendored
@@ -1,32 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.queryByTestId = exports.queryAllByTestId = exports.getByTestId = exports.getAllByTestId = exports.findByTestId = exports.findAllByTestId = void 0;
|
||||
|
||||
var _helpers = require("../helpers");
|
||||
|
||||
var _queryHelpers = require("../query-helpers");
|
||||
|
||||
var _allUtils = require("./all-utils");
|
||||
|
||||
const getTestIdAttribute = () => (0, _allUtils.getConfig)().testIdAttribute;
|
||||
|
||||
const queryAllByTestId = (...args) => {
|
||||
(0, _helpers.checkContainerType)(args[0]);
|
||||
return (0, _allUtils.queryAllByAttribute)(getTestIdAttribute(), ...args);
|
||||
};
|
||||
|
||||
const getMultipleError = (c, id) => `Found multiple elements by: [${getTestIdAttribute()}="${id}"]`;
|
||||
|
||||
const getMissingError = (c, id) => `Unable to find an element by: [${getTestIdAttribute()}="${id}"]`;
|
||||
|
||||
const queryAllByTestIdWithSuggestions = (0, _queryHelpers.wrapAllByQueryWithSuggestion)(queryAllByTestId, queryAllByTestId.name, 'queryAll');
|
||||
exports.queryAllByTestId = queryAllByTestIdWithSuggestions;
|
||||
const [queryByTestId, getAllByTestId, getByTestId, findAllByTestId, findByTestId] = (0, _allUtils.buildQueries)(queryAllByTestId, getMultipleError, getMissingError);
|
||||
exports.findByTestId = findByTestId;
|
||||
exports.findAllByTestId = findAllByTestId;
|
||||
exports.getByTestId = getByTestId;
|
||||
exports.getAllByTestId = getAllByTestId;
|
||||
exports.queryByTestId = queryByTestId;
|
||||
52
node_modules/@testing-library/dom/dist/queries/text.js
generated
vendored
52
node_modules/@testing-library/dom/dist/queries/text.js
generated
vendored
@@ -1,52 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.queryByText = exports.queryAllByText = exports.getByText = exports.getAllByText = exports.findByText = exports.findAllByText = void 0;
|
||||
|
||||
var _queryHelpers = require("../query-helpers");
|
||||
|
||||
var _helpers = require("../helpers");
|
||||
|
||||
var _shared = require("../shared");
|
||||
|
||||
var _allUtils = require("./all-utils");
|
||||
|
||||
const queryAllByText = (container, text, {
|
||||
selector = '*',
|
||||
exact = true,
|
||||
collapseWhitespace,
|
||||
trim,
|
||||
ignore = _shared.DEFAULT_IGNORE_TAGS,
|
||||
normalizer
|
||||
} = {}) => {
|
||||
(0, _helpers.checkContainerType)(container);
|
||||
const matcher = exact ? _allUtils.matches : _allUtils.fuzzyMatches;
|
||||
const matchNormalizer = (0, _allUtils.makeNormalizer)({
|
||||
collapseWhitespace,
|
||||
trim,
|
||||
normalizer
|
||||
});
|
||||
let baseArray = [];
|
||||
|
||||
if (typeof container.matches === 'function' && container.matches(selector)) {
|
||||
baseArray = [container];
|
||||
}
|
||||
|
||||
return [...baseArray, ...Array.from(container.querySelectorAll(selector))] // TODO: `matches` according lib.dom.d.ts can get only `string` but according our code it can handle also boolean :)
|
||||
.filter(node => !ignore || !node.matches(ignore)).filter(node => matcher((0, _allUtils.getNodeText)(node), node, text, matchNormalizer));
|
||||
};
|
||||
|
||||
const getMultipleError = (c, text) => `Found multiple elements with the text: ${text}`;
|
||||
|
||||
const getMissingError = (c, text) => `Unable to find an element with the text: ${text}. 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.`;
|
||||
|
||||
const queryAllByTextWithSuggestions = (0, _queryHelpers.wrapAllByQueryWithSuggestion)(queryAllByText, queryAllByText.name, 'queryAll');
|
||||
exports.queryAllByText = queryAllByTextWithSuggestions;
|
||||
const [queryByText, getAllByText, getByText, findAllByText, findByText] = (0, _allUtils.buildQueries)(queryAllByText, getMultipleError, getMissingError);
|
||||
exports.findByText = findByText;
|
||||
exports.findAllByText = findAllByText;
|
||||
exports.getByText = getByText;
|
||||
exports.getAllByText = getAllByText;
|
||||
exports.queryByText = queryByText;
|
||||
47
node_modules/@testing-library/dom/dist/queries/title.js
generated
vendored
47
node_modules/@testing-library/dom/dist/queries/title.js
generated
vendored
@@ -1,47 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.queryByTitle = exports.queryAllByTitle = exports.getByTitle = exports.getAllByTitle = exports.findByTitle = exports.findAllByTitle = void 0;
|
||||
|
||||
var _queryHelpers = require("../query-helpers");
|
||||
|
||||
var _helpers = require("../helpers");
|
||||
|
||||
var _allUtils = require("./all-utils");
|
||||
|
||||
const isSvgTitle = node => {
|
||||
var _node$parentElement;
|
||||
|
||||
return node.tagName.toLowerCase() === 'title' && ((_node$parentElement = node.parentElement) == null ? void 0 : _node$parentElement.tagName.toLowerCase()) === 'svg';
|
||||
};
|
||||
|
||||
const queryAllByTitle = (container, text, {
|
||||
exact = true,
|
||||
collapseWhitespace,
|
||||
trim,
|
||||
normalizer
|
||||
} = {}) => {
|
||||
(0, _helpers.checkContainerType)(container);
|
||||
const matcher = exact ? _allUtils.matches : _allUtils.fuzzyMatches;
|
||||
const matchNormalizer = (0, _allUtils.makeNormalizer)({
|
||||
collapseWhitespace,
|
||||
trim,
|
||||
normalizer
|
||||
});
|
||||
return Array.from(container.querySelectorAll('[title], svg > title')).filter(node => matcher(node.getAttribute('title'), node, text, matchNormalizer) || isSvgTitle(node) && matcher((0, _allUtils.getNodeText)(node), node, text, matchNormalizer));
|
||||
};
|
||||
|
||||
const getMultipleError = (c, title) => `Found multiple elements with the title: ${title}.`;
|
||||
|
||||
const getMissingError = (c, title) => `Unable to find an element with the title: ${title}.`;
|
||||
|
||||
const queryAllByTitleWithSuggestions = (0, _queryHelpers.wrapAllByQueryWithSuggestion)(queryAllByTitle, queryAllByTitle.name, 'queryAll');
|
||||
exports.queryAllByTitle = queryAllByTitleWithSuggestions;
|
||||
const [queryByTitle, getAllByTitle, getByTitle, findAllByTitle, findByTitle] = (0, _allUtils.buildQueries)(queryAllByTitle, getMultipleError, getMissingError);
|
||||
exports.findByTitle = findByTitle;
|
||||
exports.findAllByTitle = findAllByTitle;
|
||||
exports.getByTitle = getByTitle;
|
||||
exports.getAllByTitle = getAllByTitle;
|
||||
exports.queryByTitle = queryByTitle;
|
||||
168
node_modules/@testing-library/dom/dist/query-helpers.js
generated
vendored
168
node_modules/@testing-library/dom/dist/query-helpers.js
generated
vendored
@@ -1,168 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.buildQueries = buildQueries;
|
||||
exports.getElementError = getElementError;
|
||||
exports.getMultipleElementsFoundError = getMultipleElementsFoundError;
|
||||
exports.makeFindQuery = makeFindQuery;
|
||||
exports.makeGetAllQuery = makeGetAllQuery;
|
||||
exports.makeSingleQuery = makeSingleQuery;
|
||||
exports.queryAllByAttribute = queryAllByAttribute;
|
||||
exports.queryByAttribute = queryByAttribute;
|
||||
exports.wrapSingleQueryWithSuggestion = exports.wrapAllByQueryWithSuggestion = void 0;
|
||||
|
||||
var _suggestions = require("./suggestions");
|
||||
|
||||
var _matches = require("./matches");
|
||||
|
||||
var _waitFor = require("./wait-for");
|
||||
|
||||
var _config = require("./config");
|
||||
|
||||
function getElementError(message, container) {
|
||||
return (0, _config.getConfig)().getElementError(message, container);
|
||||
}
|
||||
|
||||
function getMultipleElementsFoundError(message, container) {
|
||||
return getElementError(`${message}\n\n(If this is intentional, then use the \`*AllBy*\` variant of the query (like \`queryAllByText\`, \`getAllByText\`, or \`findAllByText\`)).`, container);
|
||||
}
|
||||
|
||||
function queryAllByAttribute(attribute, container, text, {
|
||||
exact = true,
|
||||
collapseWhitespace,
|
||||
trim,
|
||||
normalizer
|
||||
} = {}) {
|
||||
const matcher = exact ? _matches.matches : _matches.fuzzyMatches;
|
||||
const matchNormalizer = (0, _matches.makeNormalizer)({
|
||||
collapseWhitespace,
|
||||
trim,
|
||||
normalizer
|
||||
});
|
||||
return Array.from(container.querySelectorAll(`[${attribute}]`)).filter(node => matcher(node.getAttribute(attribute), node, text, matchNormalizer));
|
||||
}
|
||||
|
||||
function queryByAttribute(attribute, container, text, options) {
|
||||
const els = queryAllByAttribute(attribute, container, text, options);
|
||||
|
||||
if (els.length > 1) {
|
||||
throw getMultipleElementsFoundError(`Found multiple elements by [${attribute}=${text}]`, container);
|
||||
}
|
||||
|
||||
return els[0] || null;
|
||||
} // this accepts a query function and returns a function which throws an error
|
||||
// if more than one elements is returned, otherwise it returns the first
|
||||
// element or null
|
||||
|
||||
|
||||
function makeSingleQuery(allQuery, getMultipleError) {
|
||||
return (container, ...args) => {
|
||||
const els = allQuery(container, ...args);
|
||||
|
||||
if (els.length > 1) {
|
||||
const elementStrings = els.map(element => getElementError(null, element).message).join('\n\n');
|
||||
throw getMultipleElementsFoundError(`${getMultipleError(container, ...args)}
|
||||
|
||||
Here are the matching elements:
|
||||
|
||||
${elementStrings}`, container);
|
||||
}
|
||||
|
||||
return els[0] || null;
|
||||
};
|
||||
}
|
||||
|
||||
function getSuggestionError(suggestion, container) {
|
||||
return (0, _config.getConfig)().getElementError(`A better query is available, try this:
|
||||
${suggestion.toString()}
|
||||
`, container);
|
||||
} // this accepts a query function and returns a function which throws an error
|
||||
// if an empty list of elements is returned
|
||||
|
||||
|
||||
function makeGetAllQuery(allQuery, getMissingError) {
|
||||
return (container, ...args) => {
|
||||
const els = allQuery(container, ...args);
|
||||
|
||||
if (!els.length) {
|
||||
throw (0, _config.getConfig)().getElementError(getMissingError(container, ...args), container);
|
||||
}
|
||||
|
||||
return els;
|
||||
};
|
||||
} // this accepts a getter query function and returns a function which calls
|
||||
// waitFor and passing a function which invokes the getter.
|
||||
|
||||
|
||||
function makeFindQuery(getter) {
|
||||
return (container, text, options, waitForOptions) => {
|
||||
return (0, _waitFor.waitFor)(() => {
|
||||
return getter(container, text, options);
|
||||
}, {
|
||||
container,
|
||||
...waitForOptions
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
const wrapSingleQueryWithSuggestion = (query, queryAllByName, variant) => (container, ...args) => {
|
||||
const element = query(container, ...args);
|
||||
const [{
|
||||
suggest = (0, _config.getConfig)().throwSuggestions
|
||||
} = {}] = args.slice(-1);
|
||||
|
||||
if (element && suggest) {
|
||||
const suggestion = (0, _suggestions.getSuggestedQuery)(element, variant);
|
||||
|
||||
if (suggestion && !queryAllByName.endsWith(suggestion.queryName)) {
|
||||
throw getSuggestionError(suggestion.toString(), container);
|
||||
}
|
||||
}
|
||||
|
||||
return element;
|
||||
};
|
||||
|
||||
exports.wrapSingleQueryWithSuggestion = wrapSingleQueryWithSuggestion;
|
||||
|
||||
const wrapAllByQueryWithSuggestion = (query, queryAllByName, variant) => (container, ...args) => {
|
||||
const els = query(container, ...args);
|
||||
const [{
|
||||
suggest = (0, _config.getConfig)().throwSuggestions
|
||||
} = {}] = args.slice(-1);
|
||||
|
||||
if (els.length && suggest) {
|
||||
// get a unique list of all suggestion messages. We are only going to make a suggestion if
|
||||
// all the suggestions are the same
|
||||
const uniqueSuggestionMessages = [...new Set(els.map(element => {
|
||||
var _getSuggestedQuery;
|
||||
|
||||
return (_getSuggestedQuery = (0, _suggestions.getSuggestedQuery)(element, variant)) == null ? void 0 : _getSuggestedQuery.toString();
|
||||
}))];
|
||||
|
||||
if ( // only want to suggest if all the els have the same suggestion.
|
||||
uniqueSuggestionMessages.length === 1 && !queryAllByName.endsWith( // eslint-disable-next-line @typescript-eslint/no-non-null-assertion -- TODO: Can this be null at runtime?
|
||||
(0, _suggestions.getSuggestedQuery)(els[0], variant).queryName)) {
|
||||
throw getSuggestionError(uniqueSuggestionMessages[0], container);
|
||||
}
|
||||
}
|
||||
|
||||
return els;
|
||||
}; // TODO: This deviates from the published declarations
|
||||
// However, the implementation always required a dyadic (after `container`) not variadic `queryAllBy` considering the implementation of `makeFindQuery`
|
||||
// This is at least statically true and can be verified by accepting `QueryMethod<Arguments, HTMLElement[]>`
|
||||
|
||||
|
||||
exports.wrapAllByQueryWithSuggestion = wrapAllByQueryWithSuggestion;
|
||||
|
||||
function buildQueries(queryAllBy, getMultipleError, getMissingError) {
|
||||
const queryBy = wrapSingleQueryWithSuggestion(makeSingleQuery(queryAllBy, getMultipleError), queryAllBy.name, 'query');
|
||||
const getAllBy = makeGetAllQuery(queryAllBy, getMissingError);
|
||||
const getBy = makeSingleQuery(getAllBy, getMultipleError);
|
||||
const getByWithSuggestions = wrapSingleQueryWithSuggestion(getBy, queryAllBy.name, 'get');
|
||||
const getAllWithSuggestions = wrapAllByQueryWithSuggestion(getAllBy, queryAllBy.name.replace('query', 'get'), 'getAll');
|
||||
const findAllBy = makeFindQuery(wrapAllByQueryWithSuggestion(getAllBy, queryAllBy.name, 'findAll'));
|
||||
const findBy = makeFindQuery(wrapSingleQueryWithSuggestion(getBy, queryAllBy.name, 'find'));
|
||||
return [queryBy, getAllWithSuggestions, getByWithSuggestions, findAllBy, findBy];
|
||||
}
|
||||
334
node_modules/@testing-library/dom/dist/role-helpers.js
generated
vendored
334
node_modules/@testing-library/dom/dist/role-helpers.js
generated
vendored
@@ -1,334 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.computeAriaChecked = computeAriaChecked;
|
||||
exports.computeAriaCurrent = computeAriaCurrent;
|
||||
exports.computeAriaExpanded = computeAriaExpanded;
|
||||
exports.computeAriaPressed = computeAriaPressed;
|
||||
exports.computeAriaSelected = computeAriaSelected;
|
||||
exports.computeHeadingLevel = computeHeadingLevel;
|
||||
exports.getImplicitAriaRoles = getImplicitAriaRoles;
|
||||
exports.getRoles = getRoles;
|
||||
exports.isInaccessible = isInaccessible;
|
||||
exports.isSubtreeInaccessible = isSubtreeInaccessible;
|
||||
exports.logRoles = void 0;
|
||||
exports.prettyRoles = prettyRoles;
|
||||
|
||||
var _ariaQuery = require("aria-query");
|
||||
|
||||
var _domAccessibilityApi = require("dom-accessibility-api");
|
||||
|
||||
var _prettyDom = require("./pretty-dom");
|
||||
|
||||
var _config = require("./config");
|
||||
|
||||
const elementRoleList = buildElementRoleList(_ariaQuery.elementRoles);
|
||||
/**
|
||||
* @param {Element} element -
|
||||
* @returns {boolean} - `true` if `element` and its subtree are inaccessible
|
||||
*/
|
||||
|
||||
function isSubtreeInaccessible(element) {
|
||||
if (element.hidden === true) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (element.getAttribute('aria-hidden') === 'true') {
|
||||
return true;
|
||||
}
|
||||
|
||||
const window = element.ownerDocument.defaultView;
|
||||
|
||||
if (window.getComputedStyle(element).display === 'none') {
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
/**
|
||||
* Partial implementation https://www.w3.org/TR/wai-aria-1.2/#tree_exclusion
|
||||
* which should only be used for elements with a non-presentational role i.e.
|
||||
* `role="none"` and `role="presentation"` will not be excluded.
|
||||
*
|
||||
* Implements aria-hidden semantics (i.e. parent overrides child)
|
||||
* Ignores "Child Presentational: True" characteristics
|
||||
*
|
||||
* @param {Element} element -
|
||||
* @param {object} [options] -
|
||||
* @param {function (element: Element): boolean} options.isSubtreeInaccessible -
|
||||
* can be used to return cached results from previous isSubtreeInaccessible calls
|
||||
* @returns {boolean} true if excluded, otherwise false
|
||||
*/
|
||||
|
||||
|
||||
function isInaccessible(element, options = {}) {
|
||||
const {
|
||||
isSubtreeInaccessible: isSubtreeInaccessibleImpl = isSubtreeInaccessible
|
||||
} = options;
|
||||
const window = element.ownerDocument.defaultView; // since visibility is inherited we can exit early
|
||||
|
||||
if (window.getComputedStyle(element).visibility === 'hidden') {
|
||||
return true;
|
||||
}
|
||||
|
||||
let currentElement = element;
|
||||
|
||||
while (currentElement) {
|
||||
if (isSubtreeInaccessibleImpl(currentElement)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
currentElement = currentElement.parentElement;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
function getImplicitAriaRoles(currentNode) {
|
||||
// eslint bug here:
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
for (const {
|
||||
match,
|
||||
roles
|
||||
} of elementRoleList) {
|
||||
if (match(currentNode)) {
|
||||
return [...roles];
|
||||
}
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
|
||||
function buildElementRoleList(elementRolesMap) {
|
||||
function makeElementSelector({
|
||||
name,
|
||||
attributes
|
||||
}) {
|
||||
return `${name}${attributes.map(({
|
||||
name: attributeName,
|
||||
value,
|
||||
constraints = []
|
||||
}) => {
|
||||
const shouldNotExist = constraints.indexOf('undefined') !== -1;
|
||||
|
||||
if (shouldNotExist) {
|
||||
return `:not([${attributeName}])`;
|
||||
} else if (value) {
|
||||
return `[${attributeName}="${value}"]`;
|
||||
} else {
|
||||
return `[${attributeName}]`;
|
||||
}
|
||||
}).join('')}`;
|
||||
}
|
||||
|
||||
function getSelectorSpecificity({
|
||||
attributes = []
|
||||
}) {
|
||||
return attributes.length;
|
||||
}
|
||||
|
||||
function bySelectorSpecificity({
|
||||
specificity: leftSpecificity
|
||||
}, {
|
||||
specificity: rightSpecificity
|
||||
}) {
|
||||
return rightSpecificity - leftSpecificity;
|
||||
}
|
||||
|
||||
function match(element) {
|
||||
return node => {
|
||||
let {
|
||||
attributes = []
|
||||
} = element; // https://github.com/testing-library/dom-testing-library/issues/814
|
||||
|
||||
const typeTextIndex = attributes.findIndex(attribute => attribute.value && attribute.name === 'type' && attribute.value === 'text');
|
||||
|
||||
if (typeTextIndex >= 0) {
|
||||
// not using splice to not mutate the attributes array
|
||||
attributes = [...attributes.slice(0, typeTextIndex), ...attributes.slice(typeTextIndex + 1)];
|
||||
|
||||
if (node.type !== 'text') {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
return node.matches(makeElementSelector({ ...element,
|
||||
attributes
|
||||
}));
|
||||
};
|
||||
}
|
||||
|
||||
let result = []; // eslint bug here:
|
||||
// eslint-disable-next-line no-unused-vars
|
||||
|
||||
for (const [element, roles] of elementRolesMap.entries()) {
|
||||
result = [...result, {
|
||||
match: match(element),
|
||||
roles: Array.from(roles),
|
||||
specificity: getSelectorSpecificity(element)
|
||||
}];
|
||||
}
|
||||
|
||||
return result.sort(bySelectorSpecificity);
|
||||
}
|
||||
|
||||
function getRoles(container, {
|
||||
hidden = false
|
||||
} = {}) {
|
||||
function flattenDOM(node) {
|
||||
return [node, ...Array.from(node.children).reduce((acc, child) => [...acc, ...flattenDOM(child)], [])];
|
||||
}
|
||||
|
||||
return flattenDOM(container).filter(element => {
|
||||
return hidden === false ? isInaccessible(element) === false : true;
|
||||
}).reduce((acc, node) => {
|
||||
let roles = []; // TODO: This violates html-aria which does not allow any role on every element
|
||||
|
||||
if (node.hasAttribute('role')) {
|
||||
roles = node.getAttribute('role').split(' ').slice(0, 1);
|
||||
} else {
|
||||
roles = getImplicitAriaRoles(node);
|
||||
}
|
||||
|
||||
return roles.reduce((rolesAcc, role) => Array.isArray(rolesAcc[role]) ? { ...rolesAcc,
|
||||
[role]: [...rolesAcc[role], node]
|
||||
} : { ...rolesAcc,
|
||||
[role]: [node]
|
||||
}, acc);
|
||||
}, {});
|
||||
}
|
||||
|
||||
function prettyRoles(dom, {
|
||||
hidden
|
||||
}) {
|
||||
const roles = getRoles(dom, {
|
||||
hidden
|
||||
}); // We prefer to skip generic role, we don't recommend it
|
||||
|
||||
return Object.entries(roles).filter(([role]) => role !== 'generic').map(([role, elements]) => {
|
||||
const delimiterBar = '-'.repeat(50);
|
||||
const elementsString = elements.map(el => {
|
||||
const nameString = `Name "${(0, _domAccessibilityApi.computeAccessibleName)(el, {
|
||||
computedStyleSupportsPseudoElements: (0, _config.getConfig)().computedStyleSupportsPseudoElements
|
||||
})}":\n`;
|
||||
const domString = (0, _prettyDom.prettyDOM)(el.cloneNode(false));
|
||||
return `${nameString}${domString}`;
|
||||
}).join('\n\n');
|
||||
return `${role}:\n\n${elementsString}\n\n${delimiterBar}`;
|
||||
}).join('\n');
|
||||
}
|
||||
|
||||
const logRoles = (dom, {
|
||||
hidden = false
|
||||
} = {}) => console.log(prettyRoles(dom, {
|
||||
hidden
|
||||
}));
|
||||
/**
|
||||
* @param {Element} element -
|
||||
* @returns {boolean | undefined} - false/true if (not)selected, undefined if not selectable
|
||||
*/
|
||||
|
||||
|
||||
exports.logRoles = logRoles;
|
||||
|
||||
function computeAriaSelected(element) {
|
||||
// implicit value from html-aam mappings: https://www.w3.org/TR/html-aam-1.0/#html-attribute-state-and-property-mappings
|
||||
// https://www.w3.org/TR/html-aam-1.0/#details-id-97
|
||||
if (element.tagName === 'OPTION') {
|
||||
return element.selected;
|
||||
} // explicit value
|
||||
|
||||
|
||||
return checkBooleanAttribute(element, 'aria-selected');
|
||||
}
|
||||
/**
|
||||
* @param {Element} element -
|
||||
* @returns {boolean | undefined} - false/true if (not)checked, undefined if not checked-able
|
||||
*/
|
||||
|
||||
|
||||
function computeAriaChecked(element) {
|
||||
// implicit value from html-aam mappings: https://www.w3.org/TR/html-aam-1.0/#html-attribute-state-and-property-mappings
|
||||
// https://www.w3.org/TR/html-aam-1.0/#details-id-56
|
||||
// https://www.w3.org/TR/html-aam-1.0/#details-id-67
|
||||
if ('indeterminate' in element && element.indeterminate) {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
if ('checked' in element) {
|
||||
return element.checked;
|
||||
} // explicit value
|
||||
|
||||
|
||||
return checkBooleanAttribute(element, 'aria-checked');
|
||||
}
|
||||
/**
|
||||
* @param {Element} element -
|
||||
* @returns {boolean | undefined} - false/true if (not)pressed, undefined if not press-able
|
||||
*/
|
||||
|
||||
|
||||
function computeAriaPressed(element) {
|
||||
// https://www.w3.org/TR/wai-aria-1.1/#aria-pressed
|
||||
return checkBooleanAttribute(element, 'aria-pressed');
|
||||
}
|
||||
/**
|
||||
* @param {Element} element -
|
||||
* @returns {boolean | string | null} -
|
||||
*/
|
||||
|
||||
|
||||
function computeAriaCurrent(element) {
|
||||
var _ref, _checkBooleanAttribut;
|
||||
|
||||
// https://www.w3.org/TR/wai-aria-1.1/#aria-current
|
||||
return (_ref = (_checkBooleanAttribut = checkBooleanAttribute(element, 'aria-current')) != null ? _checkBooleanAttribut : element.getAttribute('aria-current')) != null ? _ref : false;
|
||||
}
|
||||
/**
|
||||
* @param {Element} element -
|
||||
* @returns {boolean | undefined} - false/true if (not)expanded, undefined if not expand-able
|
||||
*/
|
||||
|
||||
|
||||
function computeAriaExpanded(element) {
|
||||
// https://www.w3.org/TR/wai-aria-1.1/#aria-expanded
|
||||
return checkBooleanAttribute(element, 'aria-expanded');
|
||||
}
|
||||
|
||||
function checkBooleanAttribute(element, attribute) {
|
||||
const attributeValue = element.getAttribute(attribute);
|
||||
|
||||
if (attributeValue === 'true') {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (attributeValue === 'false') {
|
||||
return false;
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
/**
|
||||
* @param {Element} element -
|
||||
* @returns {number | undefined} - number if implicit heading or aria-level present, otherwise undefined
|
||||
*/
|
||||
|
||||
|
||||
function computeHeadingLevel(element) {
|
||||
// https://w3c.github.io/html-aam/#el-h1-h6
|
||||
// https://w3c.github.io/html-aam/#el-h1-h6
|
||||
const implicitHeadingLevels = {
|
||||
H1: 1,
|
||||
H2: 2,
|
||||
H3: 3,
|
||||
H4: 4,
|
||||
H5: 5,
|
||||
H6: 6
|
||||
}; // explicit aria-level value
|
||||
// https://www.w3.org/TR/wai-aria-1.2/#aria-level
|
||||
|
||||
const ariaLevelAttribute = element.getAttribute('aria-level') && Number(element.getAttribute('aria-level'));
|
||||
return ariaLevelAttribute || implicitHeadingLevels[element.tagName];
|
||||
}
|
||||
69
node_modules/@testing-library/dom/dist/screen.js
generated
vendored
69
node_modules/@testing-library/dom/dist/screen.js
generated
vendored
@@ -1,69 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.screen = void 0;
|
||||
|
||||
var _lzString = require("lz-string");
|
||||
|
||||
var _getQueriesForElement = require("./get-queries-for-element");
|
||||
|
||||
var _helpers = require("./helpers");
|
||||
|
||||
var _prettyDom = require("./pretty-dom");
|
||||
|
||||
var queries = _interopRequireWildcard(require("./queries"));
|
||||
|
||||
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
||||
|
||||
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
||||
|
||||
function unindent(string) {
|
||||
// remove white spaces first, to save a few bytes.
|
||||
// testing-playground will reformat on load any ways.
|
||||
return string.replace(/[ \t]*[\n][ \t]*/g, '\n');
|
||||
}
|
||||
|
||||
function encode(value) {
|
||||
return (0, _lzString.compressToEncodedURIComponent)(unindent(value));
|
||||
}
|
||||
|
||||
function getPlaygroundUrl(markup) {
|
||||
return `https://testing-playground.com/#markup=${encode(markup)}`;
|
||||
}
|
||||
|
||||
const debug = (element, maxLength, options) => Array.isArray(element) ? element.forEach(el => (0, _prettyDom.logDOM)(el, maxLength, options)) : (0, _prettyDom.logDOM)(element, maxLength, options);
|
||||
|
||||
const logTestingPlaygroundURL = (element = (0, _helpers.getDocument)().body) => {
|
||||
// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
if (!element || !('innerHTML' in element)) {
|
||||
console.log(`The element you're providing isn't a valid DOM element.`);
|
||||
return;
|
||||
} // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
|
||||
|
||||
|
||||
if (!element.innerHTML) {
|
||||
console.log(`The provided element doesn't have any children.`);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`Open this URL in your browser\n\n${getPlaygroundUrl(element.innerHTML)}`);
|
||||
};
|
||||
|
||||
const initialValue = {
|
||||
debug,
|
||||
logTestingPlaygroundURL
|
||||
};
|
||||
const screen = typeof document !== 'undefined' && document.body // eslint-disable-line @typescript-eslint/no-unnecessary-condition
|
||||
? (0, _getQueriesForElement.getQueriesForElement)(document.body, queries, initialValue) : Object.keys(queries).reduce((helpers, key) => {
|
||||
// `key` is for all intents and purposes the type of keyof `helpers`, which itself is the type of `initialValue` plus incoming properties from `queries`
|
||||
// if `Object.keys(something)` returned Array<keyof typeof something> this explicit type assertion would not be necessary
|
||||
// see https://stackoverflow.com/questions/55012174/why-doesnt-object-keys-return-a-keyof-type-in-typescript
|
||||
helpers[key] = () => {
|
||||
throw new TypeError('For queries bound to document.body a global document has to be available... Learn more: https://testing-library.com/s/screen-global-error');
|
||||
};
|
||||
|
||||
return helpers;
|
||||
}, initialValue);
|
||||
exports.screen = screen;
|
||||
8
node_modules/@testing-library/dom/dist/shared.js
generated
vendored
8
node_modules/@testing-library/dom/dist/shared.js
generated
vendored
@@ -1,8 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.DEFAULT_IGNORE_TAGS = void 0;
|
||||
const DEFAULT_IGNORE_TAGS = 'script, style';
|
||||
exports.DEFAULT_IGNORE_TAGS = DEFAULT_IGNORE_TAGS;
|
||||
156
node_modules/@testing-library/dom/dist/suggestions.js
generated
vendored
156
node_modules/@testing-library/dom/dist/suggestions.js
generated
vendored
@@ -1,156 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.getSuggestedQuery = getSuggestedQuery;
|
||||
|
||||
var _domAccessibilityApi = require("dom-accessibility-api");
|
||||
|
||||
var _matches = require("./matches");
|
||||
|
||||
var _getNodeText = require("./get-node-text");
|
||||
|
||||
var _config = require("./config");
|
||||
|
||||
var _roleHelpers = require("./role-helpers");
|
||||
|
||||
var _labelHelpers = require("./label-helpers");
|
||||
|
||||
var _shared = require("./shared");
|
||||
|
||||
const normalize = (0, _matches.getDefaultNormalizer)();
|
||||
|
||||
function escapeRegExp(string) {
|
||||
return string.replace(/[.*+\-?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
|
||||
}
|
||||
|
||||
function getRegExpMatcher(string) {
|
||||
return new RegExp(escapeRegExp(string.toLowerCase()), 'i');
|
||||
}
|
||||
|
||||
function makeSuggestion(queryName, element, content, {
|
||||
variant,
|
||||
name
|
||||
}) {
|
||||
let warning = '';
|
||||
const queryOptions = {};
|
||||
const queryArgs = [['Role', 'TestId'].includes(queryName) ? content : getRegExpMatcher(content)];
|
||||
|
||||
if (name) {
|
||||
queryOptions.name = getRegExpMatcher(name);
|
||||
}
|
||||
|
||||
if (queryName === 'Role' && (0, _roleHelpers.isInaccessible)(element)) {
|
||||
queryOptions.hidden = true;
|
||||
warning = `Element is inaccessible. This means that the element and all its children are invisible to screen readers.
|
||||
If you are using the aria-hidden prop, make sure this is the right choice for your case.
|
||||
`;
|
||||
}
|
||||
|
||||
if (Object.keys(queryOptions).length > 0) {
|
||||
queryArgs.push(queryOptions);
|
||||
}
|
||||
|
||||
const queryMethod = `${variant}By${queryName}`;
|
||||
return {
|
||||
queryName,
|
||||
queryMethod,
|
||||
queryArgs,
|
||||
variant,
|
||||
warning,
|
||||
|
||||
toString() {
|
||||
if (warning) {
|
||||
console.warn(warning);
|
||||
}
|
||||
|
||||
let [text, options] = queryArgs;
|
||||
text = typeof text === 'string' ? `'${text}'` : text;
|
||||
options = options ? `, { ${Object.entries(options).map(([k, v]) => `${k}: ${v}`).join(', ')} }` : '';
|
||||
return `${queryMethod}(${text}${options})`;
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
function canSuggest(currentMethod, requestedMethod, data) {
|
||||
return data && (!requestedMethod || requestedMethod.toLowerCase() === currentMethod.toLowerCase());
|
||||
}
|
||||
|
||||
function getSuggestedQuery(element, variant = 'get', method) {
|
||||
var _element$getAttribute, _getImplicitAriaRoles;
|
||||
|
||||
// don't create suggestions for script and style elements
|
||||
if (element.matches(_shared.DEFAULT_IGNORE_TAGS)) {
|
||||
return undefined;
|
||||
} //We prefer to suggest something else if the role is generic
|
||||
|
||||
|
||||
const role = (_element$getAttribute = element.getAttribute('role')) != null ? _element$getAttribute : (_getImplicitAriaRoles = (0, _roleHelpers.getImplicitAriaRoles)(element)) == null ? void 0 : _getImplicitAriaRoles[0];
|
||||
|
||||
if (role !== 'generic' && canSuggest('Role', method, role)) {
|
||||
return makeSuggestion('Role', element, role, {
|
||||
variant,
|
||||
name: (0, _domAccessibilityApi.computeAccessibleName)(element, {
|
||||
computedStyleSupportsPseudoElements: (0, _config.getConfig)().computedStyleSupportsPseudoElements
|
||||
})
|
||||
});
|
||||
}
|
||||
|
||||
const labelText = (0, _labelHelpers.getLabels)(document, element).map(label => label.content).join(' ');
|
||||
|
||||
if (canSuggest('LabelText', method, labelText)) {
|
||||
return makeSuggestion('LabelText', element, labelText, {
|
||||
variant
|
||||
});
|
||||
}
|
||||
|
||||
const placeholderText = element.getAttribute('placeholder');
|
||||
|
||||
if (canSuggest('PlaceholderText', method, placeholderText)) {
|
||||
return makeSuggestion('PlaceholderText', element, placeholderText, {
|
||||
variant
|
||||
});
|
||||
}
|
||||
|
||||
const textContent = normalize((0, _getNodeText.getNodeText)(element));
|
||||
|
||||
if (canSuggest('Text', method, textContent)) {
|
||||
return makeSuggestion('Text', element, textContent, {
|
||||
variant
|
||||
});
|
||||
}
|
||||
|
||||
if (canSuggest('DisplayValue', method, element.value)) {
|
||||
return makeSuggestion('DisplayValue', element, normalize(element.value), {
|
||||
variant
|
||||
});
|
||||
}
|
||||
|
||||
const alt = element.getAttribute('alt');
|
||||
|
||||
if (canSuggest('AltText', method, alt)) {
|
||||
return makeSuggestion('AltText', element, alt, {
|
||||
variant
|
||||
});
|
||||
}
|
||||
|
||||
const title = element.getAttribute('title');
|
||||
|
||||
if (canSuggest('Title', method, title)) {
|
||||
return makeSuggestion('Title', element, title, {
|
||||
variant
|
||||
});
|
||||
}
|
||||
|
||||
const testId = element.getAttribute((0, _config.getConfig)().testIdAttribute);
|
||||
|
||||
if (canSuggest('TestId', method, testId)) {
|
||||
return makeSuggestion('TestId', element, testId, {
|
||||
variant
|
||||
});
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}
|
||||
63
node_modules/@testing-library/dom/dist/wait-for-element-to-be-removed.js
generated
vendored
63
node_modules/@testing-library/dom/dist/wait-for-element-to-be-removed.js
generated
vendored
@@ -1,63 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.waitForElementToBeRemoved = waitForElementToBeRemoved;
|
||||
|
||||
var _waitFor = require("./wait-for");
|
||||
|
||||
const isRemoved = result => !result || Array.isArray(result) && !result.length; // Check if the element is not present.
|
||||
// As the name implies, waitForElementToBeRemoved should check `present` --> `removed`
|
||||
|
||||
|
||||
function initialCheck(elements) {
|
||||
if (isRemoved(elements)) {
|
||||
throw new Error('The element(s) given to waitForElementToBeRemoved are already removed. waitForElementToBeRemoved requires that the element(s) exist(s) before waiting for removal.');
|
||||
}
|
||||
}
|
||||
|
||||
async function waitForElementToBeRemoved(callback, options) {
|
||||
// created here so we get a nice stacktrace
|
||||
const timeoutError = new Error('Timed out in waitForElementToBeRemoved.');
|
||||
|
||||
if (typeof callback !== 'function') {
|
||||
initialCheck(callback);
|
||||
const elements = Array.isArray(callback) ? callback : [callback];
|
||||
const getRemainingElements = elements.map(element => {
|
||||
let parent = element.parentElement;
|
||||
if (parent === null) return () => null;
|
||||
|
||||
while (parent.parentElement) parent = parent.parentElement;
|
||||
|
||||
return () => parent.contains(element) ? element : null;
|
||||
});
|
||||
|
||||
callback = () => getRemainingElements.map(c => c()).filter(Boolean);
|
||||
}
|
||||
|
||||
initialCheck(callback());
|
||||
return (0, _waitFor.waitFor)(() => {
|
||||
let result;
|
||||
|
||||
try {
|
||||
result = callback();
|
||||
} catch (error) {
|
||||
if (error.name === 'TestingLibraryElementError') {
|
||||
return undefined;
|
||||
}
|
||||
|
||||
throw error;
|
||||
}
|
||||
|
||||
if (!isRemoved(result)) {
|
||||
throw timeoutError;
|
||||
}
|
||||
|
||||
return undefined;
|
||||
}, options);
|
||||
}
|
||||
/*
|
||||
eslint
|
||||
require-await: "off"
|
||||
*/
|
||||
196
node_modules/@testing-library/dom/dist/wait-for.js
generated
vendored
196
node_modules/@testing-library/dom/dist/wait-for.js
generated
vendored
@@ -1,196 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
Object.defineProperty(exports, "__esModule", {
|
||||
value: true
|
||||
});
|
||||
exports.waitFor = waitForWrapper;
|
||||
|
||||
var _helpers = require("./helpers");
|
||||
|
||||
var _config = require("./config");
|
||||
|
||||
// This is so the stack trace the developer sees is one that's
|
||||
// closer to their code (because async stack traces are hard to follow).
|
||||
function copyStackTrace(target, source) {
|
||||
target.stack = source.stack.replace(source.message, target.message);
|
||||
}
|
||||
|
||||
function waitFor(callback, {
|
||||
container = (0, _helpers.getDocument)(),
|
||||
timeout = (0, _config.getConfig)().asyncUtilTimeout,
|
||||
showOriginalStackTrace = (0, _config.getConfig)().showOriginalStackTrace,
|
||||
stackTraceError,
|
||||
interval = 50,
|
||||
onTimeout = error => {
|
||||
error.message = (0, _config.getConfig)().getElementError(error.message, container).message;
|
||||
return error;
|
||||
},
|
||||
mutationObserverOptions = {
|
||||
subtree: true,
|
||||
childList: true,
|
||||
attributes: true,
|
||||
characterData: true
|
||||
}
|
||||
}) {
|
||||
if (typeof callback !== 'function') {
|
||||
throw new TypeError('Received `callback` arg must be a function');
|
||||
}
|
||||
|
||||
return new Promise(async (resolve, reject) => {
|
||||
let lastError, intervalId, observer;
|
||||
let finished = false;
|
||||
let promiseStatus = 'idle';
|
||||
const overallTimeoutTimer = setTimeout(handleTimeout, timeout);
|
||||
const usingJestFakeTimers = (0, _helpers.jestFakeTimersAreEnabled)();
|
||||
|
||||
if (usingJestFakeTimers) {
|
||||
const {
|
||||
unstable_advanceTimersWrapper: advanceTimersWrapper
|
||||
} = (0, _config.getConfig)();
|
||||
checkCallback(); // this is a dangerous rule to disable because it could lead to an
|
||||
// infinite loop. However, eslint isn't smart enough to know that we're
|
||||
// setting finished inside `onDone` which will be called when we're done
|
||||
// waiting or when we've timed out.
|
||||
// eslint-disable-next-line no-unmodified-loop-condition
|
||||
|
||||
while (!finished) {
|
||||
if (!(0, _helpers.jestFakeTimersAreEnabled)()) {
|
||||
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`);
|
||||
if (!showOriginalStackTrace) copyStackTrace(error, stackTraceError);
|
||||
reject(error);
|
||||
return;
|
||||
} // we *could* (maybe should?) use `advanceTimersToNextTimer` but it's
|
||||
// possible that could make this loop go on forever if someone is using
|
||||
// third party code that's setting up recursive timers so rapidly that
|
||||
// the user's timer's don't get a chance to resolve. So we'll advance
|
||||
// by an interval instead. (We have a test for this case).
|
||||
|
||||
|
||||
advanceTimersWrapper(() => {
|
||||
jest.advanceTimersByTime(interval);
|
||||
}); // It's really important that checkCallback is run *before* we flush
|
||||
// in-flight promises. To be honest, I'm not sure why, and I can't quite
|
||||
// think of a way to reproduce the problem in a test, but I spent
|
||||
// an entire day banging my head against a wall on this.
|
||||
|
||||
checkCallback();
|
||||
|
||||
if (finished) {
|
||||
break;
|
||||
} // In this rare case, we *need* to wait for in-flight promises
|
||||
// to resolve before continuing. We don't need to take advantage
|
||||
// of parallelization so we're fine.
|
||||
// https://stackoverflow.com/a/59243586/971592
|
||||
// eslint-disable-next-line no-await-in-loop
|
||||
|
||||
|
||||
await advanceTimersWrapper(async () => {
|
||||
await new Promise(r => {
|
||||
setTimeout(r, 0);
|
||||
jest.advanceTimersByTime(0);
|
||||
});
|
||||
});
|
||||
}
|
||||
} else {
|
||||
try {
|
||||
(0, _helpers.checkContainerType)(container);
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
return;
|
||||
}
|
||||
|
||||
intervalId = setInterval(checkRealTimersCallback, interval);
|
||||
const {
|
||||
MutationObserver
|
||||
} = (0, _helpers.getWindowFromNode)(container);
|
||||
observer = new MutationObserver(checkRealTimersCallback);
|
||||
observer.observe(container, mutationObserverOptions);
|
||||
checkCallback();
|
||||
}
|
||||
|
||||
function onDone(error, result) {
|
||||
finished = true;
|
||||
clearTimeout(overallTimeoutTimer);
|
||||
|
||||
if (!usingJestFakeTimers) {
|
||||
clearInterval(intervalId);
|
||||
observer.disconnect();
|
||||
}
|
||||
|
||||
if (error) {
|
||||
reject(error);
|
||||
} else {
|
||||
resolve(result);
|
||||
}
|
||||
}
|
||||
|
||||
function checkRealTimersCallback() {
|
||||
if ((0, _helpers.jestFakeTimersAreEnabled)()) {
|
||||
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`);
|
||||
if (!showOriginalStackTrace) copyStackTrace(error, stackTraceError);
|
||||
return reject(error);
|
||||
} else {
|
||||
return checkCallback();
|
||||
}
|
||||
}
|
||||
|
||||
function checkCallback() {
|
||||
if (promiseStatus === 'pending') return;
|
||||
|
||||
try {
|
||||
const result = (0, _config.runWithExpensiveErrorDiagnosticsDisabled)(callback);
|
||||
|
||||
if (typeof (result == null ? void 0 : result.then) === 'function') {
|
||||
promiseStatus = 'pending';
|
||||
result.then(resolvedValue => {
|
||||
promiseStatus = 'resolved';
|
||||
onDone(null, resolvedValue);
|
||||
}, rejectedValue => {
|
||||
promiseStatus = 'rejected';
|
||||
lastError = rejectedValue;
|
||||
});
|
||||
} else {
|
||||
onDone(null, result);
|
||||
} // If `callback` throws, wait for the next mutation, interval, or timeout.
|
||||
|
||||
} catch (error) {
|
||||
// Save the most recent callback error to reject the promise with it in the event of a timeout
|
||||
lastError = error;
|
||||
}
|
||||
}
|
||||
|
||||
function handleTimeout() {
|
||||
let error;
|
||||
|
||||
if (lastError) {
|
||||
error = lastError;
|
||||
|
||||
if (!showOriginalStackTrace && error.name === 'TestingLibraryElementError') {
|
||||
copyStackTrace(error, stackTraceError);
|
||||
}
|
||||
} else {
|
||||
error = new Error('Timed out in waitFor.');
|
||||
|
||||
if (!showOriginalStackTrace) {
|
||||
copyStackTrace(error, stackTraceError);
|
||||
}
|
||||
}
|
||||
|
||||
onDone(onTimeout(error), null);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function waitForWrapper(callback, options) {
|
||||
// create the error here so its stack trace is as close to the
|
||||
// calling code as possible
|
||||
const stackTraceError = new Error('STACK_TRACE_MESSAGE');
|
||||
return (0, _config.getConfig)().asyncWrapper(() => waitFor(callback, {
|
||||
stackTraceError,
|
||||
...options
|
||||
}));
|
||||
}
|
||||
/*
|
||||
eslint
|
||||
max-lines-per-function: ["error", {"max": 200}],
|
||||
*/
|
||||
22
node_modules/@testing-library/dom/node_modules/@babel/runtime/LICENSE
generated
vendored
22
node_modules/@testing-library/dom/node_modules/@babel/runtime/LICENSE
generated
vendored
@@ -1,22 +0,0 @@
|
||||
MIT License
|
||||
|
||||
Copyright (c) 2014-present Sebastian McKenzie and other contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
"Software"), to deal in the Software without restriction, including
|
||||
without limitation the rights to use, copy, modify, merge, publish,
|
||||
distribute, sublicense, and/or sell copies of the Software, and to
|
||||
permit persons to whom the Software is furnished to do so, subject to
|
||||
the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
|
||||
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
|
||||
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
|
||||
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
19
node_modules/@testing-library/dom/node_modules/@babel/runtime/README.md
generated
vendored
19
node_modules/@testing-library/dom/node_modules/@babel/runtime/README.md
generated
vendored
@@ -1,19 +0,0 @@
|
||||
# @babel/runtime
|
||||
|
||||
> babel's modular runtime helpers
|
||||
|
||||
See our website [@babel/runtime](https://babeljs.io/docs/en/babel-runtime) for more information.
|
||||
|
||||
## Install
|
||||
|
||||
Using npm:
|
||||
|
||||
```sh
|
||||
npm install --save @babel/runtime
|
||||
```
|
||||
|
||||
or using yarn:
|
||||
|
||||
```sh
|
||||
yarn add @babel/runtime
|
||||
```
|
||||
99
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/AsyncGenerator.js
generated
vendored
99
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/AsyncGenerator.js
generated
vendored
@@ -1,99 +0,0 @@
|
||||
var AwaitValue = require("./AwaitValue.js");
|
||||
|
||||
function AsyncGenerator(gen) {
|
||||
var front, back;
|
||||
|
||||
function send(key, arg) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var request = {
|
||||
key: key,
|
||||
arg: arg,
|
||||
resolve: resolve,
|
||||
reject: reject,
|
||||
next: null
|
||||
};
|
||||
|
||||
if (back) {
|
||||
back = back.next = request;
|
||||
} else {
|
||||
front = back = request;
|
||||
resume(key, arg);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function resume(key, arg) {
|
||||
try {
|
||||
var result = gen[key](arg);
|
||||
var value = result.value;
|
||||
var wrappedAwait = value instanceof AwaitValue;
|
||||
Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) {
|
||||
if (wrappedAwait) {
|
||||
resume(key === "return" ? "return" : "next", arg);
|
||||
return;
|
||||
}
|
||||
|
||||
settle(result.done ? "return" : "normal", arg);
|
||||
}, function (err) {
|
||||
resume("throw", err);
|
||||
});
|
||||
} catch (err) {
|
||||
settle("throw", err);
|
||||
}
|
||||
}
|
||||
|
||||
function settle(type, value) {
|
||||
switch (type) {
|
||||
case "return":
|
||||
front.resolve({
|
||||
value: value,
|
||||
done: true
|
||||
});
|
||||
break;
|
||||
|
||||
case "throw":
|
||||
front.reject(value);
|
||||
break;
|
||||
|
||||
default:
|
||||
front.resolve({
|
||||
value: value,
|
||||
done: false
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
front = front.next;
|
||||
|
||||
if (front) {
|
||||
resume(front.key, front.arg);
|
||||
} else {
|
||||
back = null;
|
||||
}
|
||||
}
|
||||
|
||||
this._invoke = send;
|
||||
|
||||
if (typeof gen["return"] !== "function") {
|
||||
this["return"] = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
AsyncGenerator.prototype[typeof Symbol === "function" && Symbol.asyncIterator || "@@asyncIterator"] = function () {
|
||||
return this;
|
||||
};
|
||||
|
||||
AsyncGenerator.prototype.next = function (arg) {
|
||||
return this._invoke("next", arg);
|
||||
};
|
||||
|
||||
AsyncGenerator.prototype["throw"] = function (arg) {
|
||||
return this._invoke("throw", arg);
|
||||
};
|
||||
|
||||
AsyncGenerator.prototype["return"] = function (arg) {
|
||||
return this._invoke("return", arg);
|
||||
};
|
||||
|
||||
module.exports = AsyncGenerator;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
6
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/AwaitValue.js
generated
vendored
6
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/AwaitValue.js
generated
vendored
@@ -1,6 +0,0 @@
|
||||
function _AwaitValue(value) {
|
||||
this.wrapped = value;
|
||||
}
|
||||
|
||||
module.exports = _AwaitValue;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,31 +0,0 @@
|
||||
function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {
|
||||
var desc = {};
|
||||
Object.keys(descriptor).forEach(function (key) {
|
||||
desc[key] = descriptor[key];
|
||||
});
|
||||
desc.enumerable = !!desc.enumerable;
|
||||
desc.configurable = !!desc.configurable;
|
||||
|
||||
if ('value' in desc || desc.initializer) {
|
||||
desc.writable = true;
|
||||
}
|
||||
|
||||
desc = decorators.slice().reverse().reduce(function (desc, decorator) {
|
||||
return decorator(target, property, desc) || desc;
|
||||
}, desc);
|
||||
|
||||
if (context && desc.initializer !== void 0) {
|
||||
desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
|
||||
desc.initializer = undefined;
|
||||
}
|
||||
|
||||
if (desc.initializer === void 0) {
|
||||
Object.defineProperty(target, property, desc);
|
||||
desc = null;
|
||||
}
|
||||
|
||||
return desc;
|
||||
}
|
||||
|
||||
module.exports = _applyDecoratedDescriptor;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,12 +0,0 @@
|
||||
function _arrayLikeToArray(arr, len) {
|
||||
if (len == null || len > arr.length) len = arr.length;
|
||||
|
||||
for (var i = 0, arr2 = new Array(len); i < len; i++) {
|
||||
arr2[i] = arr[i];
|
||||
}
|
||||
|
||||
return arr2;
|
||||
}
|
||||
|
||||
module.exports = _arrayLikeToArray;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,6 +0,0 @@
|
||||
function _arrayWithHoles(arr) {
|
||||
if (Array.isArray(arr)) return arr;
|
||||
}
|
||||
|
||||
module.exports = _arrayWithHoles;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,8 +0,0 @@
|
||||
var arrayLikeToArray = require("./arrayLikeToArray.js");
|
||||
|
||||
function _arrayWithoutHoles(arr) {
|
||||
if (Array.isArray(arr)) return arrayLikeToArray(arr);
|
||||
}
|
||||
|
||||
module.exports = _arrayWithoutHoles;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,10 +0,0 @@
|
||||
function _assertThisInitialized(self) {
|
||||
if (self === void 0) {
|
||||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
|
||||
module.exports = _assertThisInitialized;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,57 +0,0 @@
|
||||
function _asyncGeneratorDelegate(inner, awaitWrap) {
|
||||
var iter = {},
|
||||
waiting = false;
|
||||
|
||||
function pump(key, value) {
|
||||
waiting = true;
|
||||
value = new Promise(function (resolve) {
|
||||
resolve(inner[key](value));
|
||||
});
|
||||
return {
|
||||
done: false,
|
||||
value: awaitWrap(value)
|
||||
};
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
iter[typeof Symbol !== "undefined" && Symbol.iterator || "@@iterator"] = function () {
|
||||
return this;
|
||||
};
|
||||
|
||||
iter.next = function (value) {
|
||||
if (waiting) {
|
||||
waiting = false;
|
||||
return value;
|
||||
}
|
||||
|
||||
return pump("next", value);
|
||||
};
|
||||
|
||||
if (typeof inner["throw"] === "function") {
|
||||
iter["throw"] = function (value) {
|
||||
if (waiting) {
|
||||
waiting = false;
|
||||
throw value;
|
||||
}
|
||||
|
||||
return pump("throw", value);
|
||||
};
|
||||
}
|
||||
|
||||
if (typeof inner["return"] === "function") {
|
||||
iter["return"] = function (value) {
|
||||
if (waiting) {
|
||||
waiting = false;
|
||||
return value;
|
||||
}
|
||||
|
||||
return pump("return", value);
|
||||
};
|
||||
}
|
||||
|
||||
return iter;
|
||||
}
|
||||
|
||||
module.exports = _asyncGeneratorDelegate;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
77
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/asyncIterator.js
generated
vendored
77
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/asyncIterator.js
generated
vendored
@@ -1,77 +0,0 @@
|
||||
function _asyncIterator(iterable) {
|
||||
var method,
|
||||
async,
|
||||
sync,
|
||||
retry = 2;
|
||||
|
||||
if (typeof Symbol !== "undefined") {
|
||||
async = Symbol.asyncIterator;
|
||||
sync = Symbol.iterator;
|
||||
}
|
||||
|
||||
while (retry--) {
|
||||
if (async && (method = iterable[async]) != null) {
|
||||
return method.call(iterable);
|
||||
}
|
||||
|
||||
if (sync && (method = iterable[sync]) != null) {
|
||||
return new AsyncFromSyncIterator(method.call(iterable));
|
||||
}
|
||||
|
||||
async = "@@asyncIterator";
|
||||
sync = "@@iterator";
|
||||
}
|
||||
|
||||
throw new TypeError("Object is not async iterable");
|
||||
}
|
||||
|
||||
function AsyncFromSyncIterator(s) {
|
||||
AsyncFromSyncIterator = function AsyncFromSyncIterator(s) {
|
||||
this.s = s;
|
||||
this.n = s.next;
|
||||
};
|
||||
|
||||
AsyncFromSyncIterator.prototype = {
|
||||
s: null,
|
||||
n: null,
|
||||
next: function next() {
|
||||
return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
|
||||
},
|
||||
"return": function _return(value) {
|
||||
var ret = this.s["return"];
|
||||
|
||||
if (ret === undefined) {
|
||||
return Promise.resolve({
|
||||
value: value,
|
||||
done: true
|
||||
});
|
||||
}
|
||||
|
||||
return AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments));
|
||||
},
|
||||
"throw": function _throw(value) {
|
||||
var thr = this.s["return"];
|
||||
if (thr === undefined) return Promise.reject(value);
|
||||
return AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments));
|
||||
}
|
||||
};
|
||||
|
||||
function AsyncFromSyncIteratorContinuation(r) {
|
||||
if (Object(r) !== r) {
|
||||
return Promise.reject(new TypeError(r + " is not an object."));
|
||||
}
|
||||
|
||||
var done = r.done;
|
||||
return Promise.resolve(r.value).then(function (value) {
|
||||
return {
|
||||
value: value,
|
||||
done: done
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
return new AsyncFromSyncIterator(s);
|
||||
}
|
||||
|
||||
module.exports = _asyncIterator;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,38 +0,0 @@
|
||||
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
||||
try {
|
||||
var info = gen[key](arg);
|
||||
var value = info.value;
|
||||
} catch (error) {
|
||||
reject(error);
|
||||
return;
|
||||
}
|
||||
|
||||
if (info.done) {
|
||||
resolve(value);
|
||||
} else {
|
||||
Promise.resolve(value).then(_next, _throw);
|
||||
}
|
||||
}
|
||||
|
||||
function _asyncToGenerator(fn) {
|
||||
return function () {
|
||||
var self = this,
|
||||
args = arguments;
|
||||
return new Promise(function (resolve, reject) {
|
||||
var gen = fn.apply(self, args);
|
||||
|
||||
function _next(value) {
|
||||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
||||
}
|
||||
|
||||
function _throw(err) {
|
||||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
||||
}
|
||||
|
||||
_next(undefined);
|
||||
});
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = _asyncToGenerator;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,8 +0,0 @@
|
||||
var AwaitValue = require("./AwaitValue.js");
|
||||
|
||||
function _awaitAsyncGenerator(value) {
|
||||
return new AwaitValue(value);
|
||||
}
|
||||
|
||||
module.exports = _awaitAsyncGenerator;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,8 +0,0 @@
|
||||
function _checkPrivateRedeclaration(obj, privateCollection) {
|
||||
if (privateCollection.has(obj)) {
|
||||
throw new TypeError("Cannot initialize the same private elements twice on an object");
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = _checkPrivateRedeclaration;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,23 +0,0 @@
|
||||
function _classApplyDescriptorDestructureSet(receiver, descriptor) {
|
||||
if (descriptor.set) {
|
||||
if (!("__destrObj" in descriptor)) {
|
||||
descriptor.__destrObj = {
|
||||
set value(v) {
|
||||
descriptor.set.call(receiver, v);
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
return descriptor.__destrObj;
|
||||
} else {
|
||||
if (!descriptor.writable) {
|
||||
throw new TypeError("attempted to set read only private field");
|
||||
}
|
||||
|
||||
return descriptor;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = _classApplyDescriptorDestructureSet;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,10 +0,0 @@
|
||||
function _classApplyDescriptorGet(receiver, descriptor) {
|
||||
if (descriptor.get) {
|
||||
return descriptor.get.call(receiver);
|
||||
}
|
||||
|
||||
return descriptor.value;
|
||||
}
|
||||
|
||||
module.exports = _classApplyDescriptorGet;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,14 +0,0 @@
|
||||
function _classApplyDescriptorSet(receiver, descriptor, value) {
|
||||
if (descriptor.set) {
|
||||
descriptor.set.call(receiver, value);
|
||||
} else {
|
||||
if (!descriptor.writable) {
|
||||
throw new TypeError("attempted to set read only private field");
|
||||
}
|
||||
|
||||
descriptor.value = value;
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = _classApplyDescriptorSet;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,8 +0,0 @@
|
||||
function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = _classCallCheck;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,8 +0,0 @@
|
||||
function _classCheckPrivateStaticAccess(receiver, classConstructor) {
|
||||
if (receiver !== classConstructor) {
|
||||
throw new TypeError("Private static access of wrong provenance");
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = _classCheckPrivateStaticAccess;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,8 +0,0 @@
|
||||
function _classCheckPrivateStaticFieldDescriptor(descriptor, action) {
|
||||
if (descriptor === undefined) {
|
||||
throw new TypeError("attempted to " + action + " private static field before its declaration");
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = _classCheckPrivateStaticFieldDescriptor;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,10 +0,0 @@
|
||||
function _classExtractFieldDescriptor(receiver, privateMap, action) {
|
||||
if (!privateMap.has(receiver)) {
|
||||
throw new TypeError("attempted to " + action + " private field on non-instance");
|
||||
}
|
||||
|
||||
return privateMap.get(receiver);
|
||||
}
|
||||
|
||||
module.exports = _classExtractFieldDescriptor;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,6 +0,0 @@
|
||||
function _classNameTDZError(name) {
|
||||
throw new Error("Class \"" + name + "\" cannot be referenced in computed property keys.");
|
||||
}
|
||||
|
||||
module.exports = _classNameTDZError;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,11 +0,0 @@
|
||||
var classApplyDescriptorDestructureSet = require("./classApplyDescriptorDestructureSet.js");
|
||||
|
||||
var classExtractFieldDescriptor = require("./classExtractFieldDescriptor.js");
|
||||
|
||||
function _classPrivateFieldDestructureSet(receiver, privateMap) {
|
||||
var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set");
|
||||
return classApplyDescriptorDestructureSet(receiver, descriptor);
|
||||
}
|
||||
|
||||
module.exports = _classPrivateFieldDestructureSet;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,11 +0,0 @@
|
||||
var classApplyDescriptorGet = require("./classApplyDescriptorGet.js");
|
||||
|
||||
var classExtractFieldDescriptor = require("./classExtractFieldDescriptor.js");
|
||||
|
||||
function _classPrivateFieldGet(receiver, privateMap) {
|
||||
var descriptor = classExtractFieldDescriptor(receiver, privateMap, "get");
|
||||
return classApplyDescriptorGet(receiver, descriptor);
|
||||
}
|
||||
|
||||
module.exports = _classPrivateFieldGet;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,9 +0,0 @@
|
||||
var checkPrivateRedeclaration = require("./checkPrivateRedeclaration.js");
|
||||
|
||||
function _classPrivateFieldInitSpec(obj, privateMap, value) {
|
||||
checkPrivateRedeclaration(obj, privateMap);
|
||||
privateMap.set(obj, value);
|
||||
}
|
||||
|
||||
module.exports = _classPrivateFieldInitSpec;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,10 +0,0 @@
|
||||
function _classPrivateFieldBase(receiver, privateKey) {
|
||||
if (!Object.prototype.hasOwnProperty.call(receiver, privateKey)) {
|
||||
throw new TypeError("attempted to use private field on non-instance");
|
||||
}
|
||||
|
||||
return receiver;
|
||||
}
|
||||
|
||||
module.exports = _classPrivateFieldBase;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,8 +0,0 @@
|
||||
var id = 0;
|
||||
|
||||
function _classPrivateFieldKey(name) {
|
||||
return "__private_" + id++ + "_" + name;
|
||||
}
|
||||
|
||||
module.exports = _classPrivateFieldKey;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,12 +0,0 @@
|
||||
var classApplyDescriptorSet = require("./classApplyDescriptorSet.js");
|
||||
|
||||
var classExtractFieldDescriptor = require("./classExtractFieldDescriptor.js");
|
||||
|
||||
function _classPrivateFieldSet(receiver, privateMap, value) {
|
||||
var descriptor = classExtractFieldDescriptor(receiver, privateMap, "set");
|
||||
classApplyDescriptorSet(receiver, descriptor, value);
|
||||
return value;
|
||||
}
|
||||
|
||||
module.exports = _classPrivateFieldSet;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,10 +0,0 @@
|
||||
function _classPrivateMethodGet(receiver, privateSet, fn) {
|
||||
if (!privateSet.has(receiver)) {
|
||||
throw new TypeError("attempted to get private field on non-instance");
|
||||
}
|
||||
|
||||
return fn;
|
||||
}
|
||||
|
||||
module.exports = _classPrivateMethodGet;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,9 +0,0 @@
|
||||
var checkPrivateRedeclaration = require("./checkPrivateRedeclaration.js");
|
||||
|
||||
function _classPrivateMethodInitSpec(obj, privateSet) {
|
||||
checkPrivateRedeclaration(obj, privateSet);
|
||||
privateSet.add(obj);
|
||||
}
|
||||
|
||||
module.exports = _classPrivateMethodInitSpec;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,6 +0,0 @@
|
||||
function _classPrivateMethodSet() {
|
||||
throw new TypeError("attempted to reassign private method");
|
||||
}
|
||||
|
||||
module.exports = _classPrivateMethodSet;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,14 +0,0 @@
|
||||
var classApplyDescriptorDestructureSet = require("./classApplyDescriptorDestructureSet.js");
|
||||
|
||||
var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js");
|
||||
|
||||
var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js");
|
||||
|
||||
function _classStaticPrivateFieldDestructureSet(receiver, classConstructor, descriptor) {
|
||||
classCheckPrivateStaticAccess(receiver, classConstructor);
|
||||
classCheckPrivateStaticFieldDescriptor(descriptor, "set");
|
||||
return classApplyDescriptorDestructureSet(receiver, descriptor);
|
||||
}
|
||||
|
||||
module.exports = _classStaticPrivateFieldDestructureSet;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,14 +0,0 @@
|
||||
var classApplyDescriptorGet = require("./classApplyDescriptorGet.js");
|
||||
|
||||
var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js");
|
||||
|
||||
var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js");
|
||||
|
||||
function _classStaticPrivateFieldSpecGet(receiver, classConstructor, descriptor) {
|
||||
classCheckPrivateStaticAccess(receiver, classConstructor);
|
||||
classCheckPrivateStaticFieldDescriptor(descriptor, "get");
|
||||
return classApplyDescriptorGet(receiver, descriptor);
|
||||
}
|
||||
|
||||
module.exports = _classStaticPrivateFieldSpecGet;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,15 +0,0 @@
|
||||
var classApplyDescriptorSet = require("./classApplyDescriptorSet.js");
|
||||
|
||||
var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js");
|
||||
|
||||
var classCheckPrivateStaticFieldDescriptor = require("./classCheckPrivateStaticFieldDescriptor.js");
|
||||
|
||||
function _classStaticPrivateFieldSpecSet(receiver, classConstructor, descriptor, value) {
|
||||
classCheckPrivateStaticAccess(receiver, classConstructor);
|
||||
classCheckPrivateStaticFieldDescriptor(descriptor, "set");
|
||||
classApplyDescriptorSet(receiver, descriptor, value);
|
||||
return value;
|
||||
}
|
||||
|
||||
module.exports = _classStaticPrivateFieldSpecSet;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,9 +0,0 @@
|
||||
var classCheckPrivateStaticAccess = require("./classCheckPrivateStaticAccess.js");
|
||||
|
||||
function _classStaticPrivateMethodGet(receiver, classConstructor, method) {
|
||||
classCheckPrivateStaticAccess(receiver, classConstructor);
|
||||
return method;
|
||||
}
|
||||
|
||||
module.exports = _classStaticPrivateMethodGet;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,6 +0,0 @@
|
||||
function _classStaticPrivateMethodSet() {
|
||||
throw new TypeError("attempted to set read only static private field");
|
||||
}
|
||||
|
||||
module.exports = _classStaticPrivateMethodSet;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
26
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/construct.js
generated
vendored
26
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/construct.js
generated
vendored
@@ -1,26 +0,0 @@
|
||||
var setPrototypeOf = require("./setPrototypeOf.js");
|
||||
|
||||
var isNativeReflectConstruct = require("./isNativeReflectConstruct.js");
|
||||
|
||||
function _construct(Parent, args, Class) {
|
||||
if (isNativeReflectConstruct()) {
|
||||
module.exports = _construct = Reflect.construct;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
} else {
|
||||
module.exports = _construct = function _construct(Parent, args, Class) {
|
||||
var a = [null];
|
||||
a.push.apply(a, args);
|
||||
var Constructor = Function.bind.apply(Parent, a);
|
||||
var instance = new Constructor();
|
||||
if (Class) setPrototypeOf(instance, Class.prototype);
|
||||
return instance;
|
||||
};
|
||||
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
}
|
||||
|
||||
return _construct.apply(null, arguments);
|
||||
}
|
||||
|
||||
module.exports = _construct;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
18
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/createClass.js
generated
vendored
18
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/createClass.js
generated
vendored
@@ -1,18 +0,0 @@
|
||||
function _defineProperties(target, props) {
|
||||
for (var i = 0; i < props.length; i++) {
|
||||
var descriptor = props[i];
|
||||
descriptor.enumerable = descriptor.enumerable || false;
|
||||
descriptor.configurable = true;
|
||||
if ("value" in descriptor) descriptor.writable = true;
|
||||
Object.defineProperty(target, descriptor.key, descriptor);
|
||||
}
|
||||
}
|
||||
|
||||
function _createClass(Constructor, protoProps, staticProps) {
|
||||
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
|
||||
if (staticProps) _defineProperties(Constructor, staticProps);
|
||||
return Constructor;
|
||||
}
|
||||
|
||||
module.exports = _createClass;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,61 +0,0 @@
|
||||
var unsupportedIterableToArray = require("./unsupportedIterableToArray.js");
|
||||
|
||||
function _createForOfIteratorHelper(o, allowArrayLike) {
|
||||
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
||||
|
||||
if (!it) {
|
||||
if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
||||
if (it) o = it;
|
||||
var i = 0;
|
||||
|
||||
var F = function F() {};
|
||||
|
||||
return {
|
||||
s: F,
|
||||
n: function n() {
|
||||
if (i >= o.length) return {
|
||||
done: true
|
||||
};
|
||||
return {
|
||||
done: false,
|
||||
value: o[i++]
|
||||
};
|
||||
},
|
||||
e: function e(_e) {
|
||||
throw _e;
|
||||
},
|
||||
f: F
|
||||
};
|
||||
}
|
||||
|
||||
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
||||
}
|
||||
|
||||
var normalCompletion = true,
|
||||
didErr = false,
|
||||
err;
|
||||
return {
|
||||
s: function s() {
|
||||
it = it.call(o);
|
||||
},
|
||||
n: function n() {
|
||||
var step = it.next();
|
||||
normalCompletion = step.done;
|
||||
return step;
|
||||
},
|
||||
e: function e(_e2) {
|
||||
didErr = true;
|
||||
err = _e2;
|
||||
},
|
||||
f: function f() {
|
||||
try {
|
||||
if (!normalCompletion && it["return"] != null) it["return"]();
|
||||
} finally {
|
||||
if (didErr) throw err;
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = _createForOfIteratorHelper;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,25 +0,0 @@
|
||||
var unsupportedIterableToArray = require("./unsupportedIterableToArray.js");
|
||||
|
||||
function _createForOfIteratorHelperLoose(o, allowArrayLike) {
|
||||
var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"];
|
||||
if (it) return (it = it.call(o)).next.bind(it);
|
||||
|
||||
if (Array.isArray(o) || (it = unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") {
|
||||
if (it) o = it;
|
||||
var i = 0;
|
||||
return function () {
|
||||
if (i >= o.length) return {
|
||||
done: true
|
||||
};
|
||||
return {
|
||||
done: false,
|
||||
value: o[i++]
|
||||
};
|
||||
};
|
||||
}
|
||||
|
||||
throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.");
|
||||
}
|
||||
|
||||
module.exports = _createForOfIteratorHelperLoose;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
25
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/createSuper.js
generated
vendored
25
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/createSuper.js
generated
vendored
@@ -1,25 +0,0 @@
|
||||
var getPrototypeOf = require("./getPrototypeOf.js");
|
||||
|
||||
var isNativeReflectConstruct = require("./isNativeReflectConstruct.js");
|
||||
|
||||
var possibleConstructorReturn = require("./possibleConstructorReturn.js");
|
||||
|
||||
function _createSuper(Derived) {
|
||||
var hasNativeReflectConstruct = isNativeReflectConstruct();
|
||||
return function _createSuperInternal() {
|
||||
var Super = getPrototypeOf(Derived),
|
||||
result;
|
||||
|
||||
if (hasNativeReflectConstruct) {
|
||||
var NewTarget = getPrototypeOf(this).constructor;
|
||||
result = Reflect.construct(Super, arguments, NewTarget);
|
||||
} else {
|
||||
result = Super.apply(this, arguments);
|
||||
}
|
||||
|
||||
return possibleConstructorReturn(this, result);
|
||||
};
|
||||
}
|
||||
|
||||
module.exports = _createSuper;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
401
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/decorate.js
generated
vendored
401
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/decorate.js
generated
vendored
@@ -1,401 +0,0 @@
|
||||
var toArray = require("./toArray.js");
|
||||
|
||||
var toPropertyKey = require("./toPropertyKey.js");
|
||||
|
||||
function _decorate(decorators, factory, superClass, mixins) {
|
||||
var api = _getDecoratorsApi();
|
||||
|
||||
if (mixins) {
|
||||
for (var i = 0; i < mixins.length; i++) {
|
||||
api = mixins[i](api);
|
||||
}
|
||||
}
|
||||
|
||||
var r = factory(function initialize(O) {
|
||||
api.initializeInstanceElements(O, decorated.elements);
|
||||
}, superClass);
|
||||
var decorated = api.decorateClass(_coalesceClassElements(r.d.map(_createElementDescriptor)), decorators);
|
||||
api.initializeClassElements(r.F, decorated.elements);
|
||||
return api.runClassFinishers(r.F, decorated.finishers);
|
||||
}
|
||||
|
||||
function _getDecoratorsApi() {
|
||||
_getDecoratorsApi = function _getDecoratorsApi() {
|
||||
return api;
|
||||
};
|
||||
|
||||
var api = {
|
||||
elementsDefinitionOrder: [["method"], ["field"]],
|
||||
initializeInstanceElements: function initializeInstanceElements(O, elements) {
|
||||
["method", "field"].forEach(function (kind) {
|
||||
elements.forEach(function (element) {
|
||||
if (element.kind === kind && element.placement === "own") {
|
||||
this.defineClassElement(O, element);
|
||||
}
|
||||
}, this);
|
||||
}, this);
|
||||
},
|
||||
initializeClassElements: function initializeClassElements(F, elements) {
|
||||
var proto = F.prototype;
|
||||
["method", "field"].forEach(function (kind) {
|
||||
elements.forEach(function (element) {
|
||||
var placement = element.placement;
|
||||
|
||||
if (element.kind === kind && (placement === "static" || placement === "prototype")) {
|
||||
var receiver = placement === "static" ? F : proto;
|
||||
this.defineClassElement(receiver, element);
|
||||
}
|
||||
}, this);
|
||||
}, this);
|
||||
},
|
||||
defineClassElement: function defineClassElement(receiver, element) {
|
||||
var descriptor = element.descriptor;
|
||||
|
||||
if (element.kind === "field") {
|
||||
var initializer = element.initializer;
|
||||
descriptor = {
|
||||
enumerable: descriptor.enumerable,
|
||||
writable: descriptor.writable,
|
||||
configurable: descriptor.configurable,
|
||||
value: initializer === void 0 ? void 0 : initializer.call(receiver)
|
||||
};
|
||||
}
|
||||
|
||||
Object.defineProperty(receiver, element.key, descriptor);
|
||||
},
|
||||
decorateClass: function decorateClass(elements, decorators) {
|
||||
var newElements = [];
|
||||
var finishers = [];
|
||||
var placements = {
|
||||
"static": [],
|
||||
prototype: [],
|
||||
own: []
|
||||
};
|
||||
elements.forEach(function (element) {
|
||||
this.addElementPlacement(element, placements);
|
||||
}, this);
|
||||
elements.forEach(function (element) {
|
||||
if (!_hasDecorators(element)) return newElements.push(element);
|
||||
var elementFinishersExtras = this.decorateElement(element, placements);
|
||||
newElements.push(elementFinishersExtras.element);
|
||||
newElements.push.apply(newElements, elementFinishersExtras.extras);
|
||||
finishers.push.apply(finishers, elementFinishersExtras.finishers);
|
||||
}, this);
|
||||
|
||||
if (!decorators) {
|
||||
return {
|
||||
elements: newElements,
|
||||
finishers: finishers
|
||||
};
|
||||
}
|
||||
|
||||
var result = this.decorateConstructor(newElements, decorators);
|
||||
finishers.push.apply(finishers, result.finishers);
|
||||
result.finishers = finishers;
|
||||
return result;
|
||||
},
|
||||
addElementPlacement: function addElementPlacement(element, placements, silent) {
|
||||
var keys = placements[element.placement];
|
||||
|
||||
if (!silent && keys.indexOf(element.key) !== -1) {
|
||||
throw new TypeError("Duplicated element (" + element.key + ")");
|
||||
}
|
||||
|
||||
keys.push(element.key);
|
||||
},
|
||||
decorateElement: function decorateElement(element, placements) {
|
||||
var extras = [];
|
||||
var finishers = [];
|
||||
|
||||
for (var decorators = element.decorators, i = decorators.length - 1; i >= 0; i--) {
|
||||
var keys = placements[element.placement];
|
||||
keys.splice(keys.indexOf(element.key), 1);
|
||||
var elementObject = this.fromElementDescriptor(element);
|
||||
var elementFinisherExtras = this.toElementFinisherExtras((0, decorators[i])(elementObject) || elementObject);
|
||||
element = elementFinisherExtras.element;
|
||||
this.addElementPlacement(element, placements);
|
||||
|
||||
if (elementFinisherExtras.finisher) {
|
||||
finishers.push(elementFinisherExtras.finisher);
|
||||
}
|
||||
|
||||
var newExtras = elementFinisherExtras.extras;
|
||||
|
||||
if (newExtras) {
|
||||
for (var j = 0; j < newExtras.length; j++) {
|
||||
this.addElementPlacement(newExtras[j], placements);
|
||||
}
|
||||
|
||||
extras.push.apply(extras, newExtras);
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
element: element,
|
||||
finishers: finishers,
|
||||
extras: extras
|
||||
};
|
||||
},
|
||||
decorateConstructor: function decorateConstructor(elements, decorators) {
|
||||
var finishers = [];
|
||||
|
||||
for (var i = decorators.length - 1; i >= 0; i--) {
|
||||
var obj = this.fromClassDescriptor(elements);
|
||||
var elementsAndFinisher = this.toClassDescriptor((0, decorators[i])(obj) || obj);
|
||||
|
||||
if (elementsAndFinisher.finisher !== undefined) {
|
||||
finishers.push(elementsAndFinisher.finisher);
|
||||
}
|
||||
|
||||
if (elementsAndFinisher.elements !== undefined) {
|
||||
elements = elementsAndFinisher.elements;
|
||||
|
||||
for (var j = 0; j < elements.length - 1; j++) {
|
||||
for (var k = j + 1; k < elements.length; k++) {
|
||||
if (elements[j].key === elements[k].key && elements[j].placement === elements[k].placement) {
|
||||
throw new TypeError("Duplicated element (" + elements[j].key + ")");
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return {
|
||||
elements: elements,
|
||||
finishers: finishers
|
||||
};
|
||||
},
|
||||
fromElementDescriptor: function fromElementDescriptor(element) {
|
||||
var obj = {
|
||||
kind: element.kind,
|
||||
key: element.key,
|
||||
placement: element.placement,
|
||||
descriptor: element.descriptor
|
||||
};
|
||||
var desc = {
|
||||
value: "Descriptor",
|
||||
configurable: true
|
||||
};
|
||||
Object.defineProperty(obj, Symbol.toStringTag, desc);
|
||||
if (element.kind === "field") obj.initializer = element.initializer;
|
||||
return obj;
|
||||
},
|
||||
toElementDescriptors: function toElementDescriptors(elementObjects) {
|
||||
if (elementObjects === undefined) return;
|
||||
return toArray(elementObjects).map(function (elementObject) {
|
||||
var element = this.toElementDescriptor(elementObject);
|
||||
this.disallowProperty(elementObject, "finisher", "An element descriptor");
|
||||
this.disallowProperty(elementObject, "extras", "An element descriptor");
|
||||
return element;
|
||||
}, this);
|
||||
},
|
||||
toElementDescriptor: function toElementDescriptor(elementObject) {
|
||||
var kind = String(elementObject.kind);
|
||||
|
||||
if (kind !== "method" && kind !== "field") {
|
||||
throw new TypeError('An element descriptor\'s .kind property must be either "method" or' + ' "field", but a decorator created an element descriptor with' + ' .kind "' + kind + '"');
|
||||
}
|
||||
|
||||
var key = toPropertyKey(elementObject.key);
|
||||
var placement = String(elementObject.placement);
|
||||
|
||||
if (placement !== "static" && placement !== "prototype" && placement !== "own") {
|
||||
throw new TypeError('An element descriptor\'s .placement property must be one of "static",' + ' "prototype" or "own", but a decorator created an element descriptor' + ' with .placement "' + placement + '"');
|
||||
}
|
||||
|
||||
var descriptor = elementObject.descriptor;
|
||||
this.disallowProperty(elementObject, "elements", "An element descriptor");
|
||||
var element = {
|
||||
kind: kind,
|
||||
key: key,
|
||||
placement: placement,
|
||||
descriptor: Object.assign({}, descriptor)
|
||||
};
|
||||
|
||||
if (kind !== "field") {
|
||||
this.disallowProperty(elementObject, "initializer", "A method descriptor");
|
||||
} else {
|
||||
this.disallowProperty(descriptor, "get", "The property descriptor of a field descriptor");
|
||||
this.disallowProperty(descriptor, "set", "The property descriptor of a field descriptor");
|
||||
this.disallowProperty(descriptor, "value", "The property descriptor of a field descriptor");
|
||||
element.initializer = elementObject.initializer;
|
||||
}
|
||||
|
||||
return element;
|
||||
},
|
||||
toElementFinisherExtras: function toElementFinisherExtras(elementObject) {
|
||||
var element = this.toElementDescriptor(elementObject);
|
||||
|
||||
var finisher = _optionalCallableProperty(elementObject, "finisher");
|
||||
|
||||
var extras = this.toElementDescriptors(elementObject.extras);
|
||||
return {
|
||||
element: element,
|
||||
finisher: finisher,
|
||||
extras: extras
|
||||
};
|
||||
},
|
||||
fromClassDescriptor: function fromClassDescriptor(elements) {
|
||||
var obj = {
|
||||
kind: "class",
|
||||
elements: elements.map(this.fromElementDescriptor, this)
|
||||
};
|
||||
var desc = {
|
||||
value: "Descriptor",
|
||||
configurable: true
|
||||
};
|
||||
Object.defineProperty(obj, Symbol.toStringTag, desc);
|
||||
return obj;
|
||||
},
|
||||
toClassDescriptor: function toClassDescriptor(obj) {
|
||||
var kind = String(obj.kind);
|
||||
|
||||
if (kind !== "class") {
|
||||
throw new TypeError('A class descriptor\'s .kind property must be "class", but a decorator' + ' created a class descriptor with .kind "' + kind + '"');
|
||||
}
|
||||
|
||||
this.disallowProperty(obj, "key", "A class descriptor");
|
||||
this.disallowProperty(obj, "placement", "A class descriptor");
|
||||
this.disallowProperty(obj, "descriptor", "A class descriptor");
|
||||
this.disallowProperty(obj, "initializer", "A class descriptor");
|
||||
this.disallowProperty(obj, "extras", "A class descriptor");
|
||||
|
||||
var finisher = _optionalCallableProperty(obj, "finisher");
|
||||
|
||||
var elements = this.toElementDescriptors(obj.elements);
|
||||
return {
|
||||
elements: elements,
|
||||
finisher: finisher
|
||||
};
|
||||
},
|
||||
runClassFinishers: function runClassFinishers(constructor, finishers) {
|
||||
for (var i = 0; i < finishers.length; i++) {
|
||||
var newConstructor = (0, finishers[i])(constructor);
|
||||
|
||||
if (newConstructor !== undefined) {
|
||||
if (typeof newConstructor !== "function") {
|
||||
throw new TypeError("Finishers must return a constructor.");
|
||||
}
|
||||
|
||||
constructor = newConstructor;
|
||||
}
|
||||
}
|
||||
|
||||
return constructor;
|
||||
},
|
||||
disallowProperty: function disallowProperty(obj, name, objectType) {
|
||||
if (obj[name] !== undefined) {
|
||||
throw new TypeError(objectType + " can't have a ." + name + " property.");
|
||||
}
|
||||
}
|
||||
};
|
||||
return api;
|
||||
}
|
||||
|
||||
function _createElementDescriptor(def) {
|
||||
var key = toPropertyKey(def.key);
|
||||
var descriptor;
|
||||
|
||||
if (def.kind === "method") {
|
||||
descriptor = {
|
||||
value: def.value,
|
||||
writable: true,
|
||||
configurable: true,
|
||||
enumerable: false
|
||||
};
|
||||
} else if (def.kind === "get") {
|
||||
descriptor = {
|
||||
get: def.value,
|
||||
configurable: true,
|
||||
enumerable: false
|
||||
};
|
||||
} else if (def.kind === "set") {
|
||||
descriptor = {
|
||||
set: def.value,
|
||||
configurable: true,
|
||||
enumerable: false
|
||||
};
|
||||
} else if (def.kind === "field") {
|
||||
descriptor = {
|
||||
configurable: true,
|
||||
writable: true,
|
||||
enumerable: true
|
||||
};
|
||||
}
|
||||
|
||||
var element = {
|
||||
kind: def.kind === "field" ? "field" : "method",
|
||||
key: key,
|
||||
placement: def["static"] ? "static" : def.kind === "field" ? "own" : "prototype",
|
||||
descriptor: descriptor
|
||||
};
|
||||
if (def.decorators) element.decorators = def.decorators;
|
||||
if (def.kind === "field") element.initializer = def.value;
|
||||
return element;
|
||||
}
|
||||
|
||||
function _coalesceGetterSetter(element, other) {
|
||||
if (element.descriptor.get !== undefined) {
|
||||
other.descriptor.get = element.descriptor.get;
|
||||
} else {
|
||||
other.descriptor.set = element.descriptor.set;
|
||||
}
|
||||
}
|
||||
|
||||
function _coalesceClassElements(elements) {
|
||||
var newElements = [];
|
||||
|
||||
var isSameElement = function isSameElement(other) {
|
||||
return other.kind === "method" && other.key === element.key && other.placement === element.placement;
|
||||
};
|
||||
|
||||
for (var i = 0; i < elements.length; i++) {
|
||||
var element = elements[i];
|
||||
var other;
|
||||
|
||||
if (element.kind === "method" && (other = newElements.find(isSameElement))) {
|
||||
if (_isDataDescriptor(element.descriptor) || _isDataDescriptor(other.descriptor)) {
|
||||
if (_hasDecorators(element) || _hasDecorators(other)) {
|
||||
throw new ReferenceError("Duplicated methods (" + element.key + ") can't be decorated.");
|
||||
}
|
||||
|
||||
other.descriptor = element.descriptor;
|
||||
} else {
|
||||
if (_hasDecorators(element)) {
|
||||
if (_hasDecorators(other)) {
|
||||
throw new ReferenceError("Decorators can't be placed on different accessors with for " + "the same property (" + element.key + ").");
|
||||
}
|
||||
|
||||
other.decorators = element.decorators;
|
||||
}
|
||||
|
||||
_coalesceGetterSetter(element, other);
|
||||
}
|
||||
} else {
|
||||
newElements.push(element);
|
||||
}
|
||||
}
|
||||
|
||||
return newElements;
|
||||
}
|
||||
|
||||
function _hasDecorators(element) {
|
||||
return element.decorators && element.decorators.length;
|
||||
}
|
||||
|
||||
function _isDataDescriptor(desc) {
|
||||
return desc !== undefined && !(desc.value === undefined && desc.writable === undefined);
|
||||
}
|
||||
|
||||
function _optionalCallableProperty(obj, name) {
|
||||
var value = obj[name];
|
||||
|
||||
if (value !== undefined && typeof value !== "function") {
|
||||
throw new TypeError("Expected '" + name + "' to be a function");
|
||||
}
|
||||
|
||||
return value;
|
||||
}
|
||||
|
||||
module.exports = _decorate;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
17
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/defaults.js
generated
vendored
17
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/defaults.js
generated
vendored
@@ -1,17 +0,0 @@
|
||||
function _defaults(obj, defaults) {
|
||||
var keys = Object.getOwnPropertyNames(defaults);
|
||||
|
||||
for (var i = 0; i < keys.length; i++) {
|
||||
var key = keys[i];
|
||||
var value = Object.getOwnPropertyDescriptor(defaults, key);
|
||||
|
||||
if (value && value.configurable && obj[key] === undefined) {
|
||||
Object.defineProperty(obj, key, value);
|
||||
}
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
module.exports = _defaults;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,25 +0,0 @@
|
||||
function _defineEnumerableProperties(obj, descs) {
|
||||
for (var key in descs) {
|
||||
var desc = descs[key];
|
||||
desc.configurable = desc.enumerable = true;
|
||||
if ("value" in desc) desc.writable = true;
|
||||
Object.defineProperty(obj, key, desc);
|
||||
}
|
||||
|
||||
if (Object.getOwnPropertySymbols) {
|
||||
var objectSymbols = Object.getOwnPropertySymbols(descs);
|
||||
|
||||
for (var i = 0; i < objectSymbols.length; i++) {
|
||||
var sym = objectSymbols[i];
|
||||
var desc = descs[sym];
|
||||
desc.configurable = desc.enumerable = true;
|
||||
if ("value" in desc) desc.writable = true;
|
||||
Object.defineProperty(obj, sym, desc);
|
||||
}
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
module.exports = _defineEnumerableProperties;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
17
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/defineProperty.js
generated
vendored
17
node_modules/@testing-library/dom/node_modules/@babel/runtime/helpers/defineProperty.js
generated
vendored
@@ -1,17 +0,0 @@
|
||||
function _defineProperty(obj, key, value) {
|
||||
if (key in obj) {
|
||||
Object.defineProperty(obj, key, {
|
||||
value: value,
|
||||
enumerable: true,
|
||||
configurable: true,
|
||||
writable: true
|
||||
});
|
||||
} else {
|
||||
obj[key] = value;
|
||||
}
|
||||
|
||||
return obj;
|
||||
}
|
||||
|
||||
module.exports = _defineProperty;
|
||||
module.exports["default"] = module.exports, module.exports.__esModule = true;
|
||||
@@ -1,95 +0,0 @@
|
||||
import AwaitValue from "./AwaitValue.js";
|
||||
export default function AsyncGenerator(gen) {
|
||||
var front, back;
|
||||
|
||||
function send(key, arg) {
|
||||
return new Promise(function (resolve, reject) {
|
||||
var request = {
|
||||
key: key,
|
||||
arg: arg,
|
||||
resolve: resolve,
|
||||
reject: reject,
|
||||
next: null
|
||||
};
|
||||
|
||||
if (back) {
|
||||
back = back.next = request;
|
||||
} else {
|
||||
front = back = request;
|
||||
resume(key, arg);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function resume(key, arg) {
|
||||
try {
|
||||
var result = gen[key](arg);
|
||||
var value = result.value;
|
||||
var wrappedAwait = value instanceof AwaitValue;
|
||||
Promise.resolve(wrappedAwait ? value.wrapped : value).then(function (arg) {
|
||||
if (wrappedAwait) {
|
||||
resume(key === "return" ? "return" : "next", arg);
|
||||
return;
|
||||
}
|
||||
|
||||
settle(result.done ? "return" : "normal", arg);
|
||||
}, function (err) {
|
||||
resume("throw", err);
|
||||
});
|
||||
} catch (err) {
|
||||
settle("throw", err);
|
||||
}
|
||||
}
|
||||
|
||||
function settle(type, value) {
|
||||
switch (type) {
|
||||
case "return":
|
||||
front.resolve({
|
||||
value: value,
|
||||
done: true
|
||||
});
|
||||
break;
|
||||
|
||||
case "throw":
|
||||
front.reject(value);
|
||||
break;
|
||||
|
||||
default:
|
||||
front.resolve({
|
||||
value: value,
|
||||
done: false
|
||||
});
|
||||
break;
|
||||
}
|
||||
|
||||
front = front.next;
|
||||
|
||||
if (front) {
|
||||
resume(front.key, front.arg);
|
||||
} else {
|
||||
back = null;
|
||||
}
|
||||
}
|
||||
|
||||
this._invoke = send;
|
||||
|
||||
if (typeof gen["return"] !== "function") {
|
||||
this["return"] = undefined;
|
||||
}
|
||||
}
|
||||
|
||||
AsyncGenerator.prototype[typeof Symbol === "function" && Symbol.asyncIterator || "@@asyncIterator"] = function () {
|
||||
return this;
|
||||
};
|
||||
|
||||
AsyncGenerator.prototype.next = function (arg) {
|
||||
return this._invoke("next", arg);
|
||||
};
|
||||
|
||||
AsyncGenerator.prototype["throw"] = function (arg) {
|
||||
return this._invoke("throw", arg);
|
||||
};
|
||||
|
||||
AsyncGenerator.prototype["return"] = function (arg) {
|
||||
return this._invoke("return", arg);
|
||||
};
|
||||
@@ -1,3 +0,0 @@
|
||||
export default function _AwaitValue(value) {
|
||||
this.wrapped = value;
|
||||
}
|
||||
@@ -1,28 +0,0 @@
|
||||
export default function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) {
|
||||
var desc = {};
|
||||
Object.keys(descriptor).forEach(function (key) {
|
||||
desc[key] = descriptor[key];
|
||||
});
|
||||
desc.enumerable = !!desc.enumerable;
|
||||
desc.configurable = !!desc.configurable;
|
||||
|
||||
if ('value' in desc || desc.initializer) {
|
||||
desc.writable = true;
|
||||
}
|
||||
|
||||
desc = decorators.slice().reverse().reduce(function (desc, decorator) {
|
||||
return decorator(target, property, desc) || desc;
|
||||
}, desc);
|
||||
|
||||
if (context && desc.initializer !== void 0) {
|
||||
desc.value = desc.initializer ? desc.initializer.call(context) : void 0;
|
||||
desc.initializer = undefined;
|
||||
}
|
||||
|
||||
if (desc.initializer === void 0) {
|
||||
Object.defineProperty(target, property, desc);
|
||||
desc = null;
|
||||
}
|
||||
|
||||
return desc;
|
||||
}
|
||||
@@ -1,9 +0,0 @@
|
||||
export default function _arrayLikeToArray(arr, len) {
|
||||
if (len == null || len > arr.length) len = arr.length;
|
||||
|
||||
for (var i = 0, arr2 = new Array(len); i < len; i++) {
|
||||
arr2[i] = arr[i];
|
||||
}
|
||||
|
||||
return arr2;
|
||||
}
|
||||
@@ -1,3 +0,0 @@
|
||||
export default function _arrayWithHoles(arr) {
|
||||
if (Array.isArray(arr)) return arr;
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
import arrayLikeToArray from "./arrayLikeToArray.js";
|
||||
export default function _arrayWithoutHoles(arr) {
|
||||
if (Array.isArray(arr)) return arrayLikeToArray(arr);
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
export default function _assertThisInitialized(self) {
|
||||
if (self === void 0) {
|
||||
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
|
||||
}
|
||||
|
||||
return self;
|
||||
}
|
||||
@@ -1,54 +0,0 @@
|
||||
export default function _asyncGeneratorDelegate(inner, awaitWrap) {
|
||||
var iter = {},
|
||||
waiting = false;
|
||||
|
||||
function pump(key, value) {
|
||||
waiting = true;
|
||||
value = new Promise(function (resolve) {
|
||||
resolve(inner[key](value));
|
||||
});
|
||||
return {
|
||||
done: false,
|
||||
value: awaitWrap(value)
|
||||
};
|
||||
}
|
||||
|
||||
;
|
||||
|
||||
iter[typeof Symbol !== "undefined" && Symbol.iterator || "@@iterator"] = function () {
|
||||
return this;
|
||||
};
|
||||
|
||||
iter.next = function (value) {
|
||||
if (waiting) {
|
||||
waiting = false;
|
||||
return value;
|
||||
}
|
||||
|
||||
return pump("next", value);
|
||||
};
|
||||
|
||||
if (typeof inner["throw"] === "function") {
|
||||
iter["throw"] = function (value) {
|
||||
if (waiting) {
|
||||
waiting = false;
|
||||
throw value;
|
||||
}
|
||||
|
||||
return pump("throw", value);
|
||||
};
|
||||
}
|
||||
|
||||
if (typeof inner["return"] === "function") {
|
||||
iter["return"] = function (value) {
|
||||
if (waiting) {
|
||||
waiting = false;
|
||||
return value;
|
||||
}
|
||||
|
||||
return pump("return", value);
|
||||
};
|
||||
}
|
||||
|
||||
return iter;
|
||||
}
|
||||
@@ -1,74 +0,0 @@
|
||||
export default function _asyncIterator(iterable) {
|
||||
var method,
|
||||
async,
|
||||
sync,
|
||||
retry = 2;
|
||||
|
||||
if (typeof Symbol !== "undefined") {
|
||||
async = Symbol.asyncIterator;
|
||||
sync = Symbol.iterator;
|
||||
}
|
||||
|
||||
while (retry--) {
|
||||
if (async && (method = iterable[async]) != null) {
|
||||
return method.call(iterable);
|
||||
}
|
||||
|
||||
if (sync && (method = iterable[sync]) != null) {
|
||||
return new AsyncFromSyncIterator(method.call(iterable));
|
||||
}
|
||||
|
||||
async = "@@asyncIterator";
|
||||
sync = "@@iterator";
|
||||
}
|
||||
|
||||
throw new TypeError("Object is not async iterable");
|
||||
}
|
||||
|
||||
function AsyncFromSyncIterator(s) {
|
||||
AsyncFromSyncIterator = function AsyncFromSyncIterator(s) {
|
||||
this.s = s;
|
||||
this.n = s.next;
|
||||
};
|
||||
|
||||
AsyncFromSyncIterator.prototype = {
|
||||
s: null,
|
||||
n: null,
|
||||
next: function next() {
|
||||
return AsyncFromSyncIteratorContinuation(this.n.apply(this.s, arguments));
|
||||
},
|
||||
"return": function _return(value) {
|
||||
var ret = this.s["return"];
|
||||
|
||||
if (ret === undefined) {
|
||||
return Promise.resolve({
|
||||
value: value,
|
||||
done: true
|
||||
});
|
||||
}
|
||||
|
||||
return AsyncFromSyncIteratorContinuation(ret.apply(this.s, arguments));
|
||||
},
|
||||
"throw": function _throw(value) {
|
||||
var thr = this.s["return"];
|
||||
if (thr === undefined) return Promise.reject(value);
|
||||
return AsyncFromSyncIteratorContinuation(thr.apply(this.s, arguments));
|
||||
}
|
||||
};
|
||||
|
||||
function AsyncFromSyncIteratorContinuation(r) {
|
||||
if (Object(r) !== r) {
|
||||
return Promise.reject(new TypeError(r + " is not an object."));
|
||||
}
|
||||
|
||||
var done = r.done;
|
||||
return Promise.resolve(r.value).then(function (value) {
|
||||
return {
|
||||
value: value,
|
||||
done: done
|
||||
};
|
||||
});
|
||||
}
|
||||
|
||||
return new AsyncFromSyncIterator(s);
|
||||
}
|
||||
@@ -1,35 +0,0 @@
|
||||
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {
|
||||
try {
|
||||
var info = gen[key](arg);
|
||||
var value = info.value;
|
||||
} catch (error) {
|
||||
reject(error);
|
||||
return;
|
||||
}
|
||||
|
||||
if (info.done) {
|
||||
resolve(value);
|
||||
} else {
|
||||
Promise.resolve(value).then(_next, _throw);
|
||||
}
|
||||
}
|
||||
|
||||
export default function _asyncToGenerator(fn) {
|
||||
return function () {
|
||||
var self = this,
|
||||
args = arguments;
|
||||
return new Promise(function (resolve, reject) {
|
||||
var gen = fn.apply(self, args);
|
||||
|
||||
function _next(value) {
|
||||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value);
|
||||
}
|
||||
|
||||
function _throw(err) {
|
||||
asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err);
|
||||
}
|
||||
|
||||
_next(undefined);
|
||||
});
|
||||
};
|
||||
}
|
||||
@@ -1,4 +0,0 @@
|
||||
import AwaitValue from "./AwaitValue.js";
|
||||
export default function _awaitAsyncGenerator(value) {
|
||||
return new AwaitValue(value);
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
export default function _checkPrivateRedeclaration(obj, privateCollection) {
|
||||
if (privateCollection.has(obj)) {
|
||||
throw new TypeError("Cannot initialize the same private elements twice on an object");
|
||||
}
|
||||
}
|
||||
@@ -1,20 +0,0 @@
|
||||
export default function _classApplyDescriptorDestructureSet(receiver, descriptor) {
|
||||
if (descriptor.set) {
|
||||
if (!("__destrObj" in descriptor)) {
|
||||
descriptor.__destrObj = {
|
||||
set value(v) {
|
||||
descriptor.set.call(receiver, v);
|
||||
}
|
||||
|
||||
};
|
||||
}
|
||||
|
||||
return descriptor.__destrObj;
|
||||
} else {
|
||||
if (!descriptor.writable) {
|
||||
throw new TypeError("attempted to set read only private field");
|
||||
}
|
||||
|
||||
return descriptor;
|
||||
}
|
||||
}
|
||||
@@ -1,7 +0,0 @@
|
||||
export default function _classApplyDescriptorGet(receiver, descriptor) {
|
||||
if (descriptor.get) {
|
||||
return descriptor.get.call(receiver);
|
||||
}
|
||||
|
||||
return descriptor.value;
|
||||
}
|
||||
@@ -1,11 +0,0 @@
|
||||
export default function _classApplyDescriptorSet(receiver, descriptor, value) {
|
||||
if (descriptor.set) {
|
||||
descriptor.set.call(receiver, value);
|
||||
} else {
|
||||
if (!descriptor.writable) {
|
||||
throw new TypeError("attempted to set read only private field");
|
||||
}
|
||||
|
||||
descriptor.value = value;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
export default function _classCallCheck(instance, Constructor) {
|
||||
if (!(instance instanceof Constructor)) {
|
||||
throw new TypeError("Cannot call a class as a function");
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
export default function _classCheckPrivateStaticAccess(receiver, classConstructor) {
|
||||
if (receiver !== classConstructor) {
|
||||
throw new TypeError("Private static access of wrong provenance");
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user