Showing preview only (6,819K chars total). Download the full file or copy to clipboard to get everything.
Repository: AdobeXD/plugin-samples
Branch: master
Commit: 263538bdecd8
Files: 302
Total size: 6.5 MB
Directory structure:
gitextract_jm6swedw/
├── .gitignore
├── .meta/
│ └── cp-guide-plugins.sh
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── COPYRIGHT
├── LICENSE
├── README.md
├── e2e-adobe-stock/
│ ├── .gitignore
│ ├── .xdignore
│ ├── debug.json
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── readme.md
│ ├── src/
│ │ ├── App.css
│ │ ├── App.jsx
│ │ ├── apikey.json
│ │ ├── components/
│ │ │ ├── Card.css
│ │ │ ├── Card.jsx
│ │ │ ├── DraggableImage.jsx
│ │ │ ├── Grid.css
│ │ │ ├── Grid.jsx
│ │ │ ├── IconButton.css
│ │ │ ├── IconButton.jsx
│ │ │ ├── List.css
│ │ │ ├── List.jsx
│ │ │ ├── MaxResultsField.jsx
│ │ │ ├── Preferences.css
│ │ │ ├── Preferences.jsx
│ │ │ ├── SearchField.css
│ │ │ ├── SearchField.jsx
│ │ │ ├── StockSearch.css
│ │ │ ├── StockSearch.jsx
│ │ │ ├── ViewSwitcher.css
│ │ │ └── ViewSwitcher.jsx
│ │ ├── contexts/
│ │ │ └── StoreContext.js
│ │ ├── controllers/
│ │ │ └── PanelController.js
│ │ ├── main.jsx
│ │ ├── store/
│ │ │ └── Preferences.js
│ │ └── util/
│ │ ├── fetchBinary.js
│ │ ├── reactShim.js
│ │ └── search.js
│ └── webpack.config.js
├── e2e-colorize-text/
│ ├── README.md
│ ├── dialogs.js
│ ├── lib/
│ │ ├── dialogs.js
│ │ └── manifest.js
│ ├── main.js
│ └── manifest.json
├── e2e-create-magento-product/
│ ├── README.md
│ ├── config.json
│ ├── main.js
│ ├── manifest.json
│ └── package.json
├── e2e-create-polygon/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── e2e-customize-banner/
│ ├── README.md
│ ├── banner.xd
│ ├── main.js
│ └── manifest.json
├── e2e-stock-chart/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── how-to-create-path-objects/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── how-to-display-an-alert/
│ ├── README.md
│ ├── lib/
│ │ ├── dialogs.js
│ │ └── manifest.js
│ ├── main.js
│ └── manifest.json
├── how-to-draw-lines/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── how-to-export-a-rendition/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── how-to-integrate-with-OAuth/
│ ├── README.md
│ ├── main.js
│ ├── manifest.json
│ └── server/
│ ├── package.json
│ ├── public/
│ │ └── config.js
│ └── server/
│ └── index.js
├── how-to-make-network-requests/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── how-to-read-a-file/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── how-to-style-text/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── how-to-work-with-scenenodelist/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── i18n-pojo/
│ ├── main.js
│ ├── manifest.json
│ ├── readme.md
│ └── strings.json
├── package.json
├── quick-start/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── quick-start-panel/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── quick-start-react/
│ ├── README.md
│ ├── manifest.json
│ ├── package.json
│ ├── src/
│ │ ├── HelloForm.jsx
│ │ ├── main.jsx
│ │ └── react-shim.js
│ └── webpack.config.js
├── sg-chart-generator/
│ ├── main.js
│ └── manifest.json
├── sg-dummy-data/
│ ├── main.js
│ └── manifest.json
├── sg-dynamic-button/
│ ├── main.js
│ └── manifest.json
├── sg-fit-to-object/
│ ├── main.js
│ └── manifest.json
├── sg-lots-of-lines/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── sg-lots-of-rects/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── sg-margin-guides/
│ ├── main.js
│ └── manifest.json
├── sg-meme-me/
│ ├── main.js
│ └── manifest.json
├── sg-repeater/
│ ├── main.js
│ └── manifest.json
├── sg-turtle/
│ ├── main.js
│ └── manifest.json
├── sg-update-weather/
│ ├── main.js
│ └── manifest.json
├── ui-button-padding/
│ ├── README.md
│ ├── h.js
│ ├── main.js
│ └── manifest.json
├── ui-button-padding-hyperscript/
│ ├── .gitignore
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── src/
│ │ └── main.js
│ └── webpack.config.js
├── ui-buttons-galore/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── ui-context-menu/
│ ├── h.js
│ ├── main.js
│ └── manifest.json
├── ui-create-chart/
│ ├── README.md
│ ├── h.js
│ ├── main.js
│ └── manifest.json
├── ui-datagrid-react/
│ ├── .gitignore
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── readme.md
│ ├── src/
│ │ ├── DataGrid.jsx
│ │ ├── MainForm.jsx
│ │ ├── main.jsx
│ │ └── styles.css
│ └── webpack.config.js
├── ui-dialog-variations/
│ ├── README.md
│ ├── lib/
│ │ ├── dialogs.js
│ │ └── manifest.js
│ ├── main.js
│ └── manifest.json
├── ui-hello/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── ui-hello-h/
│ ├── README.md
│ ├── h.js
│ ├── main.js
│ └── manifest.json
├── ui-hello-react/
│ ├── .gitignore
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── readme.md
│ ├── src/
│ │ ├── main.jsx
│ │ ├── react-shim.js
│ │ └── styles.css
│ └── webpack.config.js
├── ui-hello-vue/
│ ├── .gitignore
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── readme.md
│ ├── src/
│ │ ├── hello.vue
│ │ ├── main.js
│ │ └── styles.css
│ └── webpack.config.js
├── ui-html/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── ui-html-playground/
│ ├── .gitignore
│ ├── .xdignore
│ ├── README.md
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── src/
│ │ ├── App.css
│ │ ├── App.jsx
│ │ ├── PanelController.js
│ │ ├── main.jsx
│ │ └── reactShim.js
│ ├── ui-html-playground.xdx
│ └── webpack.config.js
├── ui-jquery/
│ ├── README.md
│ ├── jquery.js
│ ├── main.js
│ └── manifest.json
├── ui-panel-button-padding/
│ ├── main.js
│ └── manifest.json
├── ui-panel-hello-react/
│ ├── .gitignore
│ ├── .xdignore
│ ├── debug.json
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── readme.md
│ ├── src/
│ │ ├── App.css
│ │ ├── App.jsx
│ │ ├── components/
│ │ │ ├── Clock.css
│ │ │ ├── Clock.jsx
│ │ │ ├── ColorPicker.css
│ │ │ ├── ColorPicker.jsx
│ │ │ ├── Hello.css
│ │ │ └── Hello.jsx
│ │ ├── controllers/
│ │ │ └── PanelController.js
│ │ ├── main.jsx
│ │ └── util/
│ │ └── reactShim.js
│ └── webpack.config.js
├── ui-panel-scaffold/
│ ├── main.js
│ └── manifest.json
├── ui-panel-show-renditions/
│ ├── debug.json
│ ├── main.js
│ └── manifest.json
├── ui-panel-simple-drag-and-drop/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── ui-panel-typography-react/
│ ├── .gitignore
│ ├── .xdignore
│ ├── debug.json
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── readme.md
│ ├── src/
│ │ ├── App.css
│ │ ├── App.jsx
│ │ ├── components/
│ │ │ ├── Clock.css
│ │ │ ├── Clock.jsx
│ │ │ ├── ColorPicker.css
│ │ │ ├── ColorPicker.jsx
│ │ │ ├── Hello.css
│ │ │ └── Hello.jsx
│ │ ├── controllers/
│ │ │ └── PanelController.js
│ │ ├── main.jsx
│ │ └── util/
│ │ └── reactShim.js
│ └── webpack.config.js
├── ui-playground/
│ ├── README.md
│ ├── main.js
│ ├── manifest.json
│ └── welcome/
│ ├── main.js
│ ├── mainPanel.js
│ ├── manifest.json
│ └── pages/
│ ├── apis.js
│ ├── button.js
│ ├── checkbox.js
│ ├── dropdown.js
│ ├── hbox-vbox.js
│ ├── image.js
│ ├── label.js
│ ├── slider.js
│ └── textField.js
├── ui-rename-artboards/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── ui-simple-form/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── ui-tabs-react/
│ ├── .gitignore
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── readme.md
│ ├── src/
│ │ └── main.jsx
│ └── webpack.config.js
├── ui-trello/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── ui-typography/
│ ├── main.js
│ └── manifest.json
└── ui-vectorize/
├── README.md
├── main.js
└── manifest.json
================================================
FILE CONTENTS
================================================
================================================
FILE: .gitignore
================================================
node_modules
.DS_Store
yarn-error.log
================================================
FILE: .meta/cp-guide-plugins.sh
================================================
#!/bin/bash
find ../../plugin-guides/Guides -name "manifest.json" | xargs -n 1 dirname | xargs -n 1 -I DIR cp -r DIR ..
================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Adobe Code of Conduct
## Our Pledge
In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to making participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, gender identity and expression, level of experience,
nationality, personal appearance, race, religion, or sexual identity and
orientation.
## Our Standards
Examples of behavior that contributes to creating a positive environment
include:
* Using welcoming and inclusive language
* Being respectful of differing viewpoints and experiences
* Gracefully accepting constructive criticism
* Focusing on what is best for the community
* Showing empathy towards other community members
Examples of unacceptable behavior by participants include:
* The use of sexualized language or imagery and unwelcome sexual attention or
advances
* Trolling, insulting/derogatory comments, and personal or political attacks
* Public or private harassment
* Publishing others' private information, such as a physical or electronic
address, without explicit permission
* Other conduct which could reasonably be considered inappropriate in a
professional setting
## Our Responsibilities
Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.
Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.
## Scope
This Code of Conduct applies both within project spaces and in public spaces
when an individual is representing the project or its community. Examples of
representing a project or community include using an official project e-mail
address, posting via an official social media account, or acting as an appointed
representative at an online or offline event. Representation of a project may be
further defined and clarified by project maintainers.
## Enforcement
Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at Grp-opensourceoffice@adobe.com. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.
Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.
## Attribution
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at [http://contributor-covenant.org/version/1/4][version]
[homepage]: http://contributor-covenant.org
[version]: http://contributor-covenant.org/version/1/4/
================================================
FILE: CONTRIBUTING.md
================================================
# Contributing
Thanks for choosing to contribute!
The following are a set of guidelines to follow when contributing to this project.
## Code Of Conduct
This project adheres to the Adobe [code of conduct](CODE_OF_CONDUCT.md). By participating,
you are expected to uphold this code. Please report unacceptable behavior to
[Grp-opensourceoffice@adobe.com](mailto:Grp-opensourceoffice@adobe.com).
## Have A Question?
Start by filing an issue. The existing committers on this project work to reach
consensus around project direction and issue solutions within issue threads
(when appropriate).
## Contributor License Agreement
All third-party contributions to this project must be accompanied by a signed contributor
license agreement. This gives Adobe permission to redistribute your contributions
as part of the project. [Sign our CLA](http://opensource.adobe.com/cla.html). You
only need to submit an Adobe CLA one time, so if you have submitted one previously,
you are good to go!
## Code Reviews
All submissions should come in the form of pull requests and need to be reviewed
by project committers. Read [GitHub's pull request documentation](https://help.github.com/articles/about-pull-requests/)
for more information on sending pull requests.
Lastly, please follow the [pull request template](PULL_REQUEST_TEMPLATE.md) when
submitting a pull request!
## From Contributor To Committer
We love contributions from our community! If you'd like to go a step beyond contributor
and become a committer with full write access and a say in the project, you must
be invited to the project. The existing committers employ an internal nomination
process that must reach lazy consensus (silence is approval) before invitations
are issued. If you feel you are qualified and want to get more deeply involved,
feel free to reach out to existing committers to have a conversation about that.
## Security Issues
Security issues shouldn't be reported on this issue tracker. Instead, [file an issue to our security experts](https://helpx.adobe.com/security/alertus.html).
================================================
FILE: COPYRIGHT
================================================
© Copyright 2015-2018 Adobe. All rights reserved.
Adobe holds the copyright for all the files found in this repository.
See the LICENSE file for licensing information.
================================================
FILE: LICENSE
================================================
MIT License
Copyright (c) 2018 Adobe
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.
================================================
FILE: README.md
================================================
# Plugin Samples
This repository contains a library of sample XD plugins to help you on your journey. You can use these samples to learn more about how to build plugins for Adobe XD.
For each sample, be sure to read the README as well as code comments. Note that samples that start with `how-to-` have companion tutorials in the [plugin-docs repo](https://github.com/AdobeXD/plugin-docs/), which can be viewed live on our developer portal at:
[https://adobexdplatform.com/plugin-docs/tutorials/](https://adobexdplatform.com/plugin-docs/tutorials/)
## Samples list
| Extension | Main APIs Used | Description | Minimum Version |
| ----------------------------------- | ----------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- | --------------- |
| e2e-adobe-stock | UI, Network I/O (Fetch) | Lets users use End-to-end Adobe Stock Photo Search | 13.0 |
| e2e-colorize-text | UI, Scenegraph, ScenenodeList | Provides several text color utilities | 13.0 |
| e2e-create-polygon | UI, Scenegraph, ScenenodeList | Lets users create a custom polygon | 19.0 |
| e2e-customize-banner | UI, Scenegraph | Provides a simple UI that lets user create custom sized banners | 13.0 |
| e2e-stock-chart | UI, File I/O, Scenegraph, Network I/O (Fetch) | Draws a line chart of the picked stock quote | 13.0 |
| quick-start | Scenegraph | Creates a rectangle object and inserts it into the artboard | 13.0 |
| quick-start-panel | Scenegraph | Increase the selected rectangle size by user's input value | 21.0 |
| quick-start-react | Scenegraph | Creates a rectangle object and inserts it into the artboard (using React) | 18.0 |
| how-to-show-an-alert | UI | Demonstrates how to show an alert and an error dialog | 13.0 |
| how-to-create-path-objects | Scenegraph | Demonstrates how to create shapes using path objects | 13.0 |
| how-to-draw-lines | Scenegraph | Demonstrates how to create line objects | 13.0 |
| how-to-generate-an-export-rendition | File I/O, Application(renditions) | Demonstrates how to generate an export rendition of an object | 13.0 |
| how-to-import | File I/O, Scenegraph | Demonstrates how to import a `.txt` file | 13.0 |
| how-to-integrate-with-OAuth | Network I/O (XHR, openExternal), Node.js server | Demonstrates how to integrate with a third-party OAuth | 13.0 |
| how-to-make-network-requests | Network I/O (XHR , Fetch), Scenegraph | Demonstrates how to make network requests | 13.0 |
| how-to-style-text | Scenegraph | Demonstrates how to create text nodes with styled text | 13.0 |
| how-to-work-with-scenenodelist | Scenegraph | Demonstrates how to create various objects and use scenenode list to filter and color | 13.0 |
| i18n-pojo | UI, Application(appLanguage) | Demonstrates how to localize your plugin | 13.0 |
| sg-chart-generator | Scenegraph, Commands | Demonstrates how to generate pie charts and bar charts | 13.0 |
| sg-dummy-data | Scenegraph, Commands | Demonstrates how to generate random data | 13.0 |
| sg-dynamic-button | Scenegraph, Commands | Updates a frame shape to wrap a text element exactly with a specified amount of padding | 13.0 |
| sg-fit-to-object | Scenegraph, Commands | Fits an object (image) to another object (rectangle) with three options- as-is, turn clockwise, turn counter-clockwise | 13.0 |
| sg-lots-of-lines | Scenegraph | Draws multiple lines | 13.0 |
| sg-margin-guides | Scenegraph, Commands | Create/remove margin guides around the existing objects in artboard(s) | 13.0 |
| sg-meme-me | Scenegraph, Commands | Takes text inputs and an image and convert them into a meme | 13.0 |
| sg-repeater | Scenegraph, Commands | Duplicates the selection horizontally or circularly | 13.0 |
| sg-turtle | Scenegraph, Commands | Draws a series of lines by following "turtle graphics" commands | 13.0 |
| sg-update-weather | Scenegraph, Network I/O (XHR) | Finds all text elements that follow a specific pattern and insert the temperatures | 13.0 |
| ui-button-padding | UI | Uses `h` function to create a simple UI with these UI elements: form, labrel, footer | 13.0 |
| ui-button-padding-hyperscript | UI | Uses hyperscript to create these UI elements: form, labrel, footer | 13.0 |
| ui-buttons-galore | UI | Uses `document.querySelector` to create these UI elements: different types of buttons | 13.0 |
| ui-context-menu | UI | Uses `h` function to create a context menu with these UI elements: form, footer, button | 13.0 |
| ui-create-chart | UI | Uses `h` function to create a menu optimized for generating charts with these UI elements: form, footer, button | 13.0 |
| ui-datagrid-react | UI | Uses React to create data grids | 18.0 |
| ui-dialog-variations | UI | Demonstrates several different dialog variations | 13.0 |
| ui-hello | UI | Simply shows a dialog with "Hello World" | 13.0 |
| ui-hello-h | UI | Used `h` function to simply show a dialog with "Hello World" | 13.0 |
| ui-hello-react | UI | Used React jsx to simply show a dialog with "Hello World" | 18.0 |
| ui-hello-vue | UI | Used Vue to simply show a dialog with "Hello World" | 13.0 |
| ui-html | UI | Creates a dialog showing simple UI elements: title, text, input field, and buttons | 13.0 |
| ui-jquery | UI | Used jquery to create a dialog showing simple UI elements: title, text, input field, and buttons | 13.0 |
| ui-panel-button-padding | UI | Creates a button padding around the selected object | 21.0 |
| ui-panel-hello-react | UI | Makes real-time changes to the color of the selected object based on user's input in the panel plugin | 21.0 |
| ui-panel-scaffold | UI | Demonstrates the structure of a panel plugin. There is no functionality of this plugin | 21.0 |
| ui-panel-show-renditions | UI | Creates renditions of the selected items and display them in the panel | 21.0 |
| ui-panel-simple-drag-and-drop | UI, Scenegraph | Demonstrates drag and drop on to XD canvas | 26.0 |
| ui-panel-typography-react | UI | Demonstrates various typography inside the panel UI | 21.0 |
| ui-playground | UI | Shows all the controls in a playground | 13.0 |
| ui-rename-artoboards | UI | Shows a sample UI for a plugin that renames artboards | 13.0 |
| ui-simple-form | UI | Shows a simple form with these UI elements: input, textarea, select, button | 13.0 |
| ui-trello | UI | Uses `h` function to create a UI that's suitable for a workflow management plugin like Trello | 13.0 |
| ui-vectorize | UI | Uses `h` function to create a simple UI with these UI elements: title, text, button | 13.0 |
| ui-tabs-react | UI | Uses React to create a simple UI with tabs | 18.0 |
## Recommended development setup
1. Go to the directory that stores your development plugin folder:
- Mac: `~/Library/Application\ Support/Adobe/Adobe\ XD/`
- Windows: `C:\Users\%USERNAME%\AppData\Local\Packages\Adobe.CC.XD_adky2gkssdxte\LocalState\`
2. Rename the `develop` directory, if it already exists:
- Mac: `mv plugins oldplugins`
- Windows: (use Windows Explorer)
If you don't have a `develop` directory yet, simply create one.
3. Clone this repository as the `develop` directory:
```
git clone git@github.com:AdobeXD/plugin-samples.git develop
```
4. Launch XD, or if already open, use COMMAND+SHIFT+R to reload plugins.
5. Run the plugins from XD's _Plugins_ menu.
Make sure to check out [XD Plugin Tutorials](https://adobexdplatform.com/plugin-docs/tutorials/) and [XD Plugin References](https://adobexdplatform.com/plugin-docs/reference).
================================================
FILE: e2e-adobe-stock/.gitignore
================================================
.debug.json
================================================
FILE: e2e-adobe-stock/.xdignore
================================================
.xdignore
.gitignore
.npmignore
src/
node_modules/
package-lock.json
package.json
webpack.config.js
yarn.lock
readme.md
================================================
FILE: e2e-adobe-stock/debug.json
================================================
{
"port": 9345
}
================================================
FILE: e2e-adobe-stock/main.js
================================================
module.exports =
/******/ (function(modules) { // webpackBootstrap
/******/ // The module cache
/******/ var installedModules = {};
/******/
/******/ // The require function
/******/ function __webpack_require__(moduleId) {
/******/
/******/ // Check if module is in cache
/******/ if(installedModules[moduleId]) {
/******/ return installedModules[moduleId].exports;
/******/ }
/******/ // Create a new module (and put it into the cache)
/******/ var module = installedModules[moduleId] = {
/******/ i: moduleId,
/******/ l: false,
/******/ exports: {}
/******/ };
/******/
/******/ // Execute the module function
/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
/******/
/******/ // Flag the module as loaded
/******/ module.l = true;
/******/
/******/ // Return the exports of the module
/******/ return module.exports;
/******/ }
/******/
/******/
/******/ // expose the modules object (__webpack_modules__)
/******/ __webpack_require__.m = modules;
/******/
/******/ // expose the module cache
/******/ __webpack_require__.c = installedModules;
/******/
/******/ // define getter function for harmony exports
/******/ __webpack_require__.d = function(exports, name, getter) {
/******/ if(!__webpack_require__.o(exports, name)) {
/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter });
/******/ }
/******/ };
/******/
/******/ // define __esModule on exports
/******/ __webpack_require__.r = function(exports) {
/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) {
/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });
/******/ }
/******/ Object.defineProperty(exports, '__esModule', { value: true });
/******/ };
/******/
/******/ // create a fake namespace object
/******/ // mode & 1: value is a module id, require it
/******/ // mode & 2: merge all properties of value into the ns
/******/ // mode & 4: return value when already ns object
/******/ // mode & 8|1: behave like require
/******/ __webpack_require__.t = function(value, mode) {
/******/ if(mode & 1) value = __webpack_require__(value);
/******/ if(mode & 8) return value;
/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;
/******/ var ns = Object.create(null);
/******/ __webpack_require__.r(ns);
/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value });
/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));
/******/ return ns;
/******/ };
/******/
/******/ // getDefaultExport function for compatibility with non-harmony modules
/******/ __webpack_require__.n = function(module) {
/******/ var getter = module && module.__esModule ?
/******/ function getDefault() { return module['default']; } :
/******/ function getModuleExports() { return module; };
/******/ __webpack_require__.d(getter, 'a', getter);
/******/ return getter;
/******/ };
/******/
/******/ // Object.prototype.hasOwnProperty.call
/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };
/******/
/******/ // __webpack_public_path__
/******/ __webpack_require__.p = "";
/******/
/******/
/******/ // Load entry module and return exports
/******/ return __webpack_require__(__webpack_require__.s = "./src/main.jsx");
/******/ })
/************************************************************************/
/******/ ({
/***/ "./node_modules/css-loader/index.js!./src/App.css":
/*!***********************************************!*\
!*** ./node_modules/css-loader!./src/App.css ***!
\***********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(/*! ../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports
// module
exports.push([module.i, "/*\nform {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n}\n\nh1 {\n display: flex;\n justify-content: space-between;\n flex: 0 0 auto;\n}\n\nh1 button {\n margin: 0;\n padding: 0;\n}\n\nfooter {\n flex: 0 0 auto;\n align-items: center;\n}\n*/\n.nogrow {\n flex: 0 0 auto;\n}\n\n.noshrink {\n flex: 0 0 auto;\n}\n\n.row {\n align-items: center;\n}\n\n.row label span {\n font-size: 100%;\n}\n\n.root.win {\n --margin: 8px;\n --margin-negative: -8px;\n --margin-double: 16px;\n --button-height: 32px;\n --panel-body-font-size: 12px;\n --panel-sub-heading-font-size: 12px;\n --panel-label-font-size: 12px;\n --panel-height: calc(100vh - 90px);\n --panel-footer-height: calc(var(--margin) + var(--button-height) );\n --panel-min-width: 240px;\n}\n\n.root.mac {\n --margin: 6px;\n --margin-negative: -6px;\n --margin-double: 12px;\n --button-height: 24px;\n --panel-body-font-size: 10px;\n --panel-sub-heading-font-size: 10px;\n --panel-label-font-size: 9px;\n --panel-height: calc(100vh - 80px);\n --panel-footer-height: calc(var(--margin) + var(--button-height) );\n --panel-min-width: 194px;\n}\n\n.root {\n margin: 0 var(--margin-negative);\n font-size: var(--panel-body-font-size);\n height: 100%;\n}\n\nbody {\n position: absolute;\n top: 0;\n left: 0;\n right: 0;\n bottom: 0;\n height: 100%;\n}\n\n._1nxuWNi_NVxi5PEec_QhmU {\n height: 100%;\n}", ""]);
// exports
exports.locals = {
"panel": "_1nxuWNi_NVxi5PEec_QhmU"
};
/***/ }),
/***/ "./node_modules/css-loader/index.js!./src/components/Card.css":
/*!***********************************************************!*\
!*** ./node_modules/css-loader!./src/components/Card.css ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports
// module
exports.push([module.i, "._2_iEmOzYsvPkfTcB_PCxUS {\n margin: var(--margin);\n border-radius: 8px;\n background-color: #EAEAEA;\n flex: 1 1 auto;\n display: flex;\n overflow: hidden;\n border: 1px solid #DDDDDD;\n position: relative;\n}\n\n.xTGEzNQjsx9lrAUnkOxSq {\n display: flex;\n flex: 1 1 auto;\n overflow: hidden;\n}\n\n._1wlnx6fZItI_zfDXSwO9uA {\n margin: auto auto;\n display: block;\n}\n\n.UBAN0AhKfmAGagvPQOOva {\n background-color: #1592E6;\n}\n.UBAN0AhKfmAGagvPQOOva .xTGEzNQjsx9lrAUnkOxSq {\n opacity: 0.75;\n}\n\n._1ZyBwiSA-bkJA2yS_O2XUC {\n}\n\n._2ljfFjg-6AJpyWWJvKK8hR {\n position: absolute;\n background-color: rgba(255, 255, 255, 0.75);\n right: var(--margin);\n bottom: var(--margin);\n display: none;\n}\n\n._2_iEmOzYsvPkfTcB_PCxUS:hover ._2ljfFjg-6AJpyWWJvKK8hR {\n display: block;\n}", ""]);
// exports
exports.locals = {
"cardWrapper": "_2_iEmOzYsvPkfTcB_PCxUS",
"cardHero": "xTGEzNQjsx9lrAUnkOxSq",
"cardHeroImg": "_1wlnx6fZItI_zfDXSwO9uA",
"selected": "UBAN0AhKfmAGagvPQOOva",
"unselected": "_1ZyBwiSA-bkJA2yS_O2XUC",
"cardHeroInfo": "_2ljfFjg-6AJpyWWJvKK8hR"
};
/***/ }),
/***/ "./node_modules/css-loader/index.js!./src/components/Grid.css":
/*!***********************************************************!*\
!*** ./node_modules/css-loader!./src/components/Grid.css ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports
// module
exports.push([module.i, "._7vRapmzDT_2McsZhK28yK {\n justify-content: center;\n flex: 0 0 auto;\n display: flex;\n flex-direction: row;\n flex-wrap: wrap;\n}", ""]);
// exports
exports.locals = {
"results": "_7vRapmzDT_2McsZhK28yK"
};
/***/ }),
/***/ "./node_modules/css-loader/index.js!./src/components/IconButton.css":
/*!*****************************************************************!*\
!*** ./node_modules/css-loader!./src/components/IconButton.css ***!
\*****************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports
// module
exports.push([module.i, "._1b6Aa5YIO2zspZqYHFGDcF {\n border: 1px solid transparent;\n padding: 4px 8px;\n border-radius: 4px;\n}\n._1b6Aa5YIO2zspZqYHFGDcF:not([disabled]):hover {\n border: 1px solid #D0D0D0;\n background-color: #E8E8E8;\n}\n\n._24j8vduLt_2feA23YoPIM4 {\n fill: #666;\n width: 12px;\n height: 12px;\n}\n\n._1b6Aa5YIO2zspZqYHFGDcF:hover ._24j8vduLt_2feA23YoPIM4 {\n fill: #333;\n}\n._1b6Aa5YIO2zspZqYHFGDcF[disabled] ._24j8vduLt_2feA23YoPIM4 {\n fill: #B8B8B8;\n}\n\n._1W6c9loc67YKyNrxv_Z2F5 {\n background-color: #E8E8E8;\n}", ""]);
// exports
exports.locals = {
"button": "_1b6Aa5YIO2zspZqYHFGDcF",
"icon": "_24j8vduLt_2feA23YoPIM4",
"selected": "_1W6c9loc67YKyNrxv_Z2F5"
};
/***/ }),
/***/ "./node_modules/css-loader/index.js!./src/components/List.css":
/*!***********************************************************!*\
!*** ./node_modules/css-loader!./src/components/List.css ***!
\***********************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports
// module
exports.push([module.i, "\n\n._3B6qEV2JFNH7yM35mrdoT6 {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n}\n\n._2gfWFo14nufmok4YPzGP-I {\n flex-direction: row;\n align-content: center;\n border-radius: 4px;\n height: 32px;\n padding: 4px;\n position: relative;\n}\n\n._2gfWFo14nufmok4YPzGP-I label span {\n text-overflow: ellipsis;\n white-space: nowrap;\n overflow: hidden;\n}\n\n\n.U-EHXjRgh1mjauVX5Hr3l {\n height: 32px;\n width: 32px;\n overflow: hidden;\n display: flex;\n flex: 0 0 auto;\n}\n\n.U-EHXjRgh1mjauVX5Hr3l img {\n margin: auto auto;\n padding: 0;\n max-height: 32px;\n}\n\n._2gfWFo14nufmok4YPzGP-I:hover {\n height: 96px;\n}\n\n._2gfWFo14nufmok4YPzGP-I:hover .U-EHXjRgh1mjauVX5Hr3l {\n height: 96px;\n width: 96px;\n}\n\n._2gfWFo14nufmok4YPzGP-I img {\n}\n\n._2gfWFo14nufmok4YPzGP-I:hover .U-EHXjRgh1mjauVX5Hr3l img {\n max-height: 96px;\n z-index: 99;\n}\n\n._2gfWFo14nufmok4YPzGP-I span {\n flex: 1 1 auto;\n}\n\n._36HMtlhQ5eSGdCLPjRyyL1 {\n margin-right: 4px;\n z-index: 99;\n align-self: flex-end;\n}\n\n._2gfWFo14nufmok4YPzGP-I ._36HMtlhQ5eSGdCLPjRyyL1 {\n display: none;\n}\n\n._2gfWFo14nufmok4YPzGP-I:hover {\n background-color: #EAEAEA;\n}\n\n._2gfWFo14nufmok4YPzGP-I:hover ._36HMtlhQ5eSGdCLPjRyyL1 {\n display: block;\n}\n", ""]);
// exports
exports.locals = {
"resultsList": "_3B6qEV2JFNH7yM35mrdoT6",
"resultRow": "_2gfWFo14nufmok4YPzGP-I",
"resultRowImageWrapper": "U-EHXjRgh1mjauVX5Hr3l",
"moreInfo": "_36HMtlhQ5eSGdCLPjRyyL1"
};
/***/ }),
/***/ "./node_modules/css-loader/index.js!./src/components/Preferences.css":
/*!******************************************************************!*\
!*** ./node_modules/css-loader!./src/components/Preferences.css ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports
// module
exports.push([module.i, "._3Qb-Vm_oH-t8K3-IuTCqph {\n height: 26px;\n}\n.JUGYhxjUKxyNBBar3FVta {\n width: 480px;\n}\n.fcGDDGCrynOS8K0nEQF-2 {\n flex: 0 0 auto;\n}\n._1kAnTKyyF_BSmsbIHTia7T input {\n flex: 1 1 auto;\n}\n._1kAnTKyyF_BSmsbIHTia7T ._2lXY17SyNDpw1SZOtBqzqu {\n flex: 0 0 auto;\n width: 32px;\n}", ""]);
// exports
exports.locals = {
"logo": "_3Qb-Vm_oH-t8K3-IuTCqph",
"form": "JUGYhxjUKxyNBBar3FVta",
"contents": "fcGDDGCrynOS8K0nEQF-2",
"apiKeyField": "_1kAnTKyyF_BSmsbIHTia7T",
"eyes": "_2lXY17SyNDpw1SZOtBqzqu"
};
/***/ }),
/***/ "./node_modules/css-loader/index.js!./src/components/SearchField.css":
/*!******************************************************************!*\
!*** ./node_modules/css-loader!./src/components/SearchField.css ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports
// module
exports.push([module.i, "._3rxFQZJyeXeB6FMmuu3uqu {\n flex: 1 1 auto;\n}", ""]);
// exports
exports.locals = {
"searchInput": "_3rxFQZJyeXeB6FMmuu3uqu"
};
/***/ }),
/***/ "./node_modules/css-loader/index.js!./src/components/StockSearch.css":
/*!******************************************************************!*\
!*** ./node_modules/css-loader!./src/components/StockSearch.css ***!
\******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports
// module
exports.push([module.i, ".Atk5kQzMcUCez3yKKOA4Y {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n padding: 0;\n height: 100%;\n}\n\n._3ad2qe1vtNd7ehzsMATN_Z {\n flex: 1 1 auto;\n overflow-x: hidden;\n overflow-y: scroll;\n display: flex;\n flex-direction: column;\n}\n\n._2-p7z_FMwnKgT9ivKQ1RlL {\n margin: 0;\n justify-content: flex-end;\n}\n\n._1iFezvs9c07pG_D8MU0nIc {\n border-top: 0.5px solid #D8D8D8;\n display: flex;\n flex: 0 0 auto;\n align-items: center;\n justify-content: flex-end;\n order: 99;\n padding-top: 24px;\n}\n\n._1iFezvs9c07pG_D8MU0nIc div, ._1iFezvs9c07pG_D8MU0nIc p {\n flex: 1 1 auto;\n text-overflow: ellipsis;\n overflow: hidden;\n white-space: nowrap;\n margin-top: 0;\n margin-bottom: 0;\n}\n\n._1iFezvs9c07pG_D8MU0nIc button {\n flex: 0 0 auto;\n margin-top: 0;\n margin-bottom: 0;\n}", ""]);
// exports
exports.locals = {
"form": "Atk5kQzMcUCez3yKKOA4Y",
"resultsWrapper": "_3ad2qe1vtNd7ehzsMATN_Z",
"resultsInfo": "_2-p7z_FMwnKgT9ivKQ1RlL",
"commandLine": "_1iFezvs9c07pG_D8MU0nIc"
};
/***/ }),
/***/ "./node_modules/css-loader/index.js!./src/components/ViewSwitcher.css":
/*!*******************************************************************!*\
!*** ./node_modules/css-loader!./src/components/ViewSwitcher.css ***!
\*******************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
exports = module.exports = __webpack_require__(/*! ../../node_modules/css-loader/lib/css-base.js */ "./node_modules/css-loader/lib/css-base.js")(false);
// imports
// module
exports.push([module.i, "._3vg7-k1a1Y0g7L4jri94Kb {\n display: flex;\n flex-direction: row;\n margin: 0;\n}\n\n._3vg7-k1a1Y0g7L4jri94Kb button {\n margin: 0;\n}", ""]);
// exports
exports.locals = {
"viewMode": "_3vg7-k1a1Y0g7L4jri94Kb"
};
/***/ }),
/***/ "./node_modules/css-loader/lib/css-base.js":
/*!*************************************************!*\
!*** ./node_modules/css-loader/lib/css-base.js ***!
\*************************************************/
/*! no static exports found */
/***/ (function(module, exports) {
/*
MIT License http://www.opensource.org/licenses/mit-license.php
Author Tobias Koppers @sokra
*/
// css base code, injected by the css-loader
module.exports = function(useSourceMap) {
var list = [];
// return the list of modules as css string
list.toString = function toString() {
return this.map(function (item) {
var content = cssWithMappingToString(item, useSourceMap);
if(item[2]) {
return "@media " + item[2] + "{" + content + "}";
} else {
return content;
}
}).join("");
};
// import a list of modules into the list
list.i = function(modules, mediaQuery) {
if(typeof modules === "string")
modules = [[null, modules, ""]];
var alreadyImportedModules = {};
for(var i = 0; i < this.length; i++) {
var id = this[i][0];
if(typeof id === "number")
alreadyImportedModules[id] = true;
}
for(i = 0; i < modules.length; i++) {
var item = modules[i];
// skip already imported module
// this implementation is not 100% perfect for weird media query combinations
// when a module is imported multiple times with different media queries.
// I hope this will never occur (Hey this way we have smaller bundles)
if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) {
if(mediaQuery && !item[2]) {
item[2] = mediaQuery;
} else if(mediaQuery) {
item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";
}
list.push(item);
}
}
};
return list;
};
function cssWithMappingToString(item, useSourceMap) {
var content = item[1] || '';
var cssMapping = item[3];
if (!cssMapping) {
return content;
}
if (useSourceMap && typeof btoa === 'function') {
var sourceMapping = toComment(cssMapping);
var sourceURLs = cssMapping.sources.map(function (source) {
return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'
});
return [content].concat(sourceURLs).concat([sourceMapping]).join('\n');
}
return [content].join('\n');
}
// Adapted from convert-source-map (MIT)
function toComment(sourceMap) {
// eslint-disable-next-line no-undef
var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));
var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;
return '/*# ' + data + ' */';
}
/***/ }),
/***/ "./node_modules/object-assign/index.js":
/*!*********************************************!*\
!*** ./node_modules/object-assign/index.js ***!
\*********************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
/* eslint-disable no-unused-vars */
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
function toObject(val) {
if (val === null || val === undefined) {
throw new TypeError('Object.assign cannot be called with null or undefined');
}
return Object(val);
}
function shouldUseNative() {
try {
if (!Object.assign) {
return false;
}
// Detect buggy property enumeration order in older V8 versions.
// https://bugs.chromium.org/p/v8/issues/detail?id=4118
var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
test1[5] = 'de';
if (Object.getOwnPropertyNames(test1)[0] === '5') {
return false;
}
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test2 = {};
for (var i = 0; i < 10; i++) {
test2['_' + String.fromCharCode(i)] = i;
}
var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
return test2[n];
});
if (order2.join('') !== '0123456789') {
return false;
}
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test3 = {};
'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
test3[letter] = letter;
});
if (Object.keys(Object.assign({}, test3)).join('') !==
'abcdefghijklmnopqrst') {
return false;
}
return true;
} catch (err) {
// We don't expect any of the above to throw, but better to be safe.
return false;
}
}
module.exports = shouldUseNative() ? Object.assign : function (target, source) {
var from;
var to = toObject(target);
var symbols;
for (var s = 1; s < arguments.length; s++) {
from = Object(arguments[s]);
for (var key in from) {
if (hasOwnProperty.call(from, key)) {
to[key] = from[key];
}
}
if (getOwnPropertySymbols) {
symbols = getOwnPropertySymbols(from);
for (var i = 0; i < symbols.length; i++) {
if (propIsEnumerable.call(from, symbols[i])) {
to[symbols[i]] = from[symbols[i]];
}
}
}
}
return to;
};
/***/ }),
/***/ "./node_modules/prop-types/checkPropTypes.js":
/*!***************************************************!*\
!*** ./node_modules/prop-types/checkPropTypes.js ***!
\***************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var printWarning = function() {};
if (true) {
var ReactPropTypesSecret = __webpack_require__(/*! ./lib/ReactPropTypesSecret */ "./node_modules/prop-types/lib/ReactPropTypesSecret.js");
var loggedTypeFailures = {};
var has = Function.call.bind(Object.prototype.hasOwnProperty);
printWarning = function(text) {
var message = 'Warning: ' + text;
if (typeof console !== 'undefined') {
console.error(message);
}
try {
// --- Welcome to debugging React ---
// This error was thrown as a convenience so that you can use this stack
// to find the callsite that caused this warning to fire.
throw new Error(message);
} catch (x) {}
};
}
/**
* Assert that the values match with the type specs.
* Error messages are memorized and will only be shown once.
*
* @param {object} typeSpecs Map of name to a ReactPropType
* @param {object} values Runtime values that need to be type-checked
* @param {string} location e.g. "prop", "context", "child context"
* @param {string} componentName Name of the component for error messages.
* @param {?Function} getStack Returns the component stack.
* @private
*/
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
if (true) {
for (var typeSpecName in typeSpecs) {
if (has(typeSpecs, typeSpecName)) {
var error;
// Prop type validation may throw. In case they do, we don't want to
// fail the render phase where it didn't fail before. So we log it.
// After these have been cleaned up, we'll let them throw.
try {
// This is intentionally an invariant that gets caught. It's the same
// behavior as without this statement except with a better message.
if (typeof typeSpecs[typeSpecName] !== 'function') {
var err = Error(
(componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +
'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.'
);
err.name = 'Invariant Violation';
throw err;
}
error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
} catch (ex) {
error = ex;
}
if (error && !(error instanceof Error)) {
printWarning(
(componentName || 'React class') + ': type specification of ' +
location + ' `' + typeSpecName + '` is invalid; the type checker ' +
'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +
'You may have forgotten to pass an argument to the type checker ' +
'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +
'shape all require an argument).'
);
}
if (error instanceof Error && !(error.message in loggedTypeFailures)) {
// Only monitor this failure once because there tends to be a lot of the
// same error.
loggedTypeFailures[error.message] = true;
var stack = getStack ? getStack() : '';
printWarning(
'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')
);
}
}
}
}
}
/**
* Resets warning cache when testing.
*
* @private
*/
checkPropTypes.resetWarningCache = function() {
if (true) {
loggedTypeFailures = {};
}
}
module.exports = checkPropTypes;
/***/ }),
/***/ "./node_modules/prop-types/lib/ReactPropTypesSecret.js":
/*!*************************************************************!*\
!*** ./node_modules/prop-types/lib/ReactPropTypesSecret.js ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
module.exports = ReactPropTypesSecret;
/***/ }),
/***/ "./node_modules/react-dom/cjs/react-dom.development.js":
/*!*************************************************************!*\
!*** ./node_modules/react-dom/cjs/react-dom.development.js ***!
\*************************************************************/
/*! no static exports found */
/***/ (function(module, exports, __webpack_require__) {
"use strict";
/** @license React v16.8.5
* react-dom.development.js
*
* Copyright (c) Facebook, Inc. and its affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
if (true) {
(function() {
'use strict';
var React = __webpack_require__(/*! react */ "./node_modules/react/index.js");
var _assign = __webpack_require__(/*! object-assign */ "./node_modules/object-assign/index.js");
var checkPropTypes = __webpack_require__(/*! prop-types/checkPropTypes */ "./node_modules/prop-types/checkPropTypes.js");
var scheduler = __webpack_require__(/*! scheduler */ "./node_modules/scheduler/index.js");
var tracing = __webpack_require__(/*! scheduler/tracing */ "./node_modules/scheduler/tracing.js");
/**
* Use invariant() to assert state which your program assumes to be true.
*
* Provide sprintf-style format (only %s is supported) and arguments
* to provide information about what broke and what you were
* expecting.
*
* The invariant message will be stripped in production, but the invariant
* will remain to ensure logic does not differ in production.
*/
var validateFormat = function () {};
{
validateFormat = function (format) {
if (format === undefined) {
throw new Error('invariant requires an error message argument');
}
};
}
function invariant(condition, format, a, b, c, d, e, f) {
validateFormat(format);
if (!condition) {
var error = void 0;
if (format === undefined) {
error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
} else {
var args = [a, b, c, d, e, f];
var argIndex = 0;
error = new Error(format.replace(/%s/g, function () {
return args[argIndex++];
}));
error.name = 'Invariant Violation';
}
error.framesToPop = 1; // we don't care about invariant's own frame
throw error;
}
}
// Relying on the `invariant()` implementation lets us
// preserve the format and params in the www builds.
!React ? invariant(false, 'ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM.') : void 0;
var invokeGuardedCallbackImpl = function (name, func, context, a, b, c, d, e, f) {
var funcArgs = Array.prototype.slice.call(arguments, 3);
try {
func.apply(context, funcArgs);
} catch (error) {
this.onError(error);
}
};
{
// In DEV mode, we swap out invokeGuardedCallback for a special version
// that plays more nicely with the browser's DevTools. The idea is to preserve
// "Pause on exceptions" behavior. Because React wraps all user-provided
// functions in invokeGuardedCallback, and the production version of
// invokeGuardedCallback uses a try-catch, all user exceptions are treated
// like caught exceptions, and the DevTools won't pause unless the developer
// takes the extra step of enabling pause on caught exceptions. This is
// unintuitive, though, because even though React has caught the error, from
// the developer's perspective, the error is uncaught.
//
// To preserve the expected "Pause on exceptions" behavior, we don't use a
// try-catch in DEV. Instead, we synchronously dispatch a fake event to a fake
// DOM node, and call the user-provided callback from inside an event handler
// for that fake event. If the callback throws, the error is "captured" using
// a global event handler. But because the error happens in a different
// event loop context, it does not interrupt the normal program flow.
// Effectively, this gives us try-catch behavior without actually using
// try-catch. Neat!
// Check that the browser supports the APIs we need to implement our special
// DEV version of invokeGuardedCallback
if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {
var fakeNode = document.createElement('react');
var invokeGuardedCallbackDev = function (name, func, context, a, b, c, d, e, f) {
// If document doesn't exist we know for sure we will crash in this method
// when we call document.createEvent(). However this can cause confusing
// errors: https://github.com/facebookincubator/create-react-app/issues/3482
// So we preemptively throw with a better message instead.
!(typeof document !== 'undefined') ? invariant(false, 'The `document` global was defined when React was initialized, but is not defined anymore. This can happen in a test environment if a component schedules an update from an asynchronous callback, but the test has already finished running. To solve this, you can either unmount the component at the end of your test (and ensure that any asynchronous operations get canceled in `componentWillUnmount`), or you can change the test itself to be asynchronous.') : void 0;
var evt = document.createEvent('Event');
// Keeps track of whether the user-provided callback threw an error. We
// set this to true at the beginning, then set it to false right after
// calling the function. If the function errors, `didError` will never be
// set to false. This strategy works even if the browser is flaky and
// fails to call our global error handler, because it doesn't rely on
// the error event at all.
var didError = true;
// Keeps track of the value of window.event so that we can reset it
// during the callback to let user code access window.event in the
// browsers that support it.
var windowEvent = window.event;
// Keeps track of the descriptor of window.event to restore it after event
// dispatching: https://github.com/facebook/react/issues/13688
var windowEventDescriptor = Object.getOwnPropertyDescriptor(window, 'event');
// Create an event handler for our fake event. We will synchronously
// dispatch our fake event using `dispatchEvent`. Inside the handler, we
// call the user-provided callback.
var funcArgs = Array.prototype.slice.call(arguments, 3);
function callCallback() {
// We immediately remove the callback from event listeners so that
// nested `invokeGuardedCallback` calls do not clash. Otherwise, a
// nested call would trigger the fake event handlers of any call higher
// in the stack.
fakeNode.removeEventListener(evtType, callCallback, false);
// We check for window.hasOwnProperty('event') to prevent the
// window.event assignment in both IE <= 10 as they throw an error
// "Member not found" in strict mode, and in Firefox which does not
// support window.event.
if (typeof window.event !== 'undefined' && window.hasOwnProperty('event')) {
window.event = windowEvent;
}
func.apply(context, funcArgs);
didError = false;
}
// Create a global error event handler. We use this to capture the value
// that was thrown. It's possible that this error handler will fire more
// than once; for example, if non-React code also calls `dispatchEvent`
// and a handler for that event throws. We should be resilient to most of
// those cases. Even if our error event handler fires more than once, the
// last error event is always used. If the callback actually does error,
// we know that the last error event is the correct one, because it's not
// possible for anything else to have happened in between our callback
// erroring and the code that follows the `dispatchEvent` call below. If
// the callback doesn't error, but the error event was fired, we know to
// ignore it because `didError` will be false, as described above.
var error = void 0;
// Use this to track whether the error event is ever called.
var didSetError = false;
var isCrossOriginError = false;
function handleWindowError(event) {
error = event.error;
didSetError = true;
if (error === null && event.colno === 0 && event.lineno === 0) {
isCrossOriginError = true;
}
if (event.defaultPrevented) {
// Some other error handler has prevented default.
// Browsers silence the error report if this happens.
// We'll remember this to later decide whether to log it or not.
if (error != null && typeof error === 'object') {
try {
error._suppressLogging = true;
} catch (inner) {
// Ignore.
}
}
}
}
// Create a fake event type.
var evtType = 'react-' + (name ? name : 'invokeguardedcallback');
// Attach our event handlers
window.addEventListener('error', handleWindowError);
fakeNode.addEventListener(evtType, callCallback, false);
// Synchronously dispatch our fake event. If the user-provided function
// errors, it will trigger our global error handler.
evt.initEvent(evtType, false, false);
fakeNode.dispatchEvent(evt);
if (windowEventDescriptor) {
Object.defineProperty(window, 'event', windowEventDescriptor);
}
if (didError) {
if (!didSetError) {
// The callback errored, but the error event never fired.
error = new Error('An error was thrown inside one of your components, but React ' + "doesn't know what it was. This is likely due to browser " + 'flakiness. React does its best to preserve the "Pause on ' + 'exceptions" behavior of the DevTools, which requires some ' + "DEV-mode only tricks. It's possible that these don't work in " + 'your browser. Try triggering the error in production mode, ' + 'or switching to a modern browser. If you suspect that this is ' + 'actually an issue with React, please file an issue.');
} else if (isCrossOriginError) {
error = new Error("A cross-origin error was thrown. React doesn't have access to " + 'the actual error object in development. ' + 'See https://fb.me/react-crossorigin-error for more information.');
}
this.onError(error);
}
// Remove our event listeners
window.removeEventListener('error', handleWindowError);
};
invokeGuardedCallbackImpl = invokeGuardedCallbackDev;
}
}
var invokeGuardedCallbackImpl$1 = invokeGuardedCallbackImpl;
// Used by Fiber to simulate a try-catch.
var hasError = false;
var caughtError = null;
// Used by event system to capture/rethrow the first error.
var hasRethrowError = false;
var rethrowError = null;
var reporter = {
onError: function (error) {
hasError = true;
caughtError = error;
}
};
/**
* Call a function while guarding against errors that happens within it.
* Returns an error if it throws, otherwise null.
*
* In production, this is implemented using a try-catch. The reason we don't
* use a try-catch directly is so that we can swap out a different
* implementation in DEV mode.
*
* @param {String} name of the guard to use for logging or debugging
* @param {Function} func The function to invoke
* @param {*} context The context to use when calling the function
* @param {...*} args Arguments for function
*/
function invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {
hasError = false;
caughtError = null;
invokeGuardedCallbackImpl$1.apply(reporter, arguments);
}
/**
* Same as invokeGuardedCallback, but instead of returning an error, it stores
* it in a global so it can be rethrown by `rethrowCaughtError` later.
* TODO: See if caughtError and rethrowError can be unified.
*
* @param {String} name of the guard to use for logging or debugging
* @param {Function} func The function to invoke
* @param {*} context The context to use when calling the function
* @param {...*} args Arguments for function
*/
function invokeGuardedCallbackAndCatchFirstError(name, func, context, a, b, c, d, e, f) {
invokeGuardedCallback.apply(this, arguments);
if (hasError) {
var error = clearCaughtError();
if (!hasRethrowError) {
hasRethrowError = true;
rethrowError = error;
}
}
}
/**
* During execution of guarded functions we will capture the first error which
* we will rethrow to be handled by the top level error handler.
*/
function rethrowCaughtError() {
if (hasRethrowError) {
var error = rethrowError;
hasRethrowError = false;
rethrowError = null;
throw error;
}
}
function hasCaughtError() {
return hasError;
}
function clearCaughtError() {
if (hasError) {
var error = caughtError;
hasError = false;
caughtError = null;
return error;
} else {
invariant(false, 'clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.');
}
}
/**
* Injectable ordering of event plugins.
*/
var eventPluginOrder = null;
/**
* Injectable mapping from names to event plugin modules.
*/
var namesToPlugins = {};
/**
* Recomputes the plugin list using the injected plugins and plugin ordering.
*
* @private
*/
function recomputePluginOrdering() {
if (!eventPluginOrder) {
// Wait until an `eventPluginOrder` is injected.
return;
}
for (var pluginName in namesToPlugins) {
var pluginModule = namesToPlugins[pluginName];
var pluginIndex = eventPluginOrder.indexOf(pluginName);
!(pluginIndex > -1) ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : void 0;
if (plugins[pluginIndex]) {
continue;
}
!pluginModule.extractEvents ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : void 0;
plugins[pluginIndex] = pluginModule;
var publishedEvents = pluginModule.eventTypes;
for (var eventName in publishedEvents) {
!publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName) ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : void 0;
}
}
}
/**
* Publishes an event so that it can be dispatched by the supplied plugin.
*
* @param {object} dispatchConfig Dispatch configuration for the event.
* @param {object} PluginModule Plugin publishing the event.
* @return {boolean} True if the event was successfully published.
* @private
*/
function publishEventForPlugin(dispatchConfig, pluginModule, eventName) {
!!eventNameDispatchConfigs.hasOwnProperty(eventName) ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : void 0;
eventNameDispatchConfigs[eventName] = dispatchConfig;
var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;
if (phasedRegistrationNames) {
for (var phaseName in phasedRegistrationNames) {
if (phasedRegistrationNames.hasOwnProperty(phaseName)) {
var phasedRegistrationName = phasedRegistrationNames[phaseName];
publishRegistrationName(phasedRegistrationName, pluginModule, eventName);
}
}
return true;
} else if (dispatchConfig.registrationName) {
publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName);
return true;
}
return false;
}
/**
* Publishes a registration name that is used to identify dispatched events.
*
* @param {string} registrationName Registration name to add.
* @param {object} PluginModule Plugin publishing the event.
* @private
*/
function publishRegistrationName(registrationName, pluginModule, eventName) {
!!registrationNameModules[registrationName] ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : void 0;
registrationNameModules[registrationName] = pluginModule;
registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies;
{
var lowerCasedName = registrationName.toLowerCase();
possibleRegistrationNames[lowerCasedName] = registrationName;
if (registrationName === 'onDoubleClick') {
possibleRegistrationNames.ondblclick = registrationName;
}
}
}
/**
* Registers plugins so that they can extract and dispatch events.
*
* @see {EventPluginHub}
*/
/**
* Ordered list of injected plugins.
*/
var plugins = [];
/**
* Mapping from event name to dispatch config
*/
var eventNameDispatchConfigs = {};
/**
* Mapping from registration name to plugin module
*/
var registrationNameModules = {};
/**
* Mapping from registration name to event name
*/
var registrationNameDependencies = {};
/**
* Mapping from lowercase registration names to the properly cased version,
* used to warn in the case of missing event handlers. Available
* only in true.
* @type {Object}
*/
var possibleRegistrationNames = {};
// Trust the developer to only use possibleRegistrationNames in true
/**
* Injects an ordering of plugins (by plugin name). This allows the ordering
* to be decoupled from injection of the actual plugins so that ordering is
* always deterministic regardless of packaging, on-the-fly injection, etc.
*
* @param {array} InjectedEventPluginOrder
* @internal
* @see {EventPluginHub.injection.injectEventPluginOrder}
*/
function injectEventPluginOrder(injectedEventPluginOrder) {
!!eventPluginOrder ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : void 0;
// Clone the ordering so it cannot be dynamically mutated.
eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder);
recomputePluginOrdering();
}
/**
* Injects plugins to be used by `EventPluginHub`. The plugin names must be
* in the ordering injected by `injectEventPluginOrder`.
*
* Plugins can be injected as part of page initialization or on-the-fly.
*
* @param {object} injectedNamesToPlugins Map from names to plugin modules.
* @internal
* @see {EventPluginHub.injection.injectEventPluginsByName}
*/
function injectEventPluginsByName(injectedNamesToPlugins) {
var isOrderingDirty = false;
for (var pluginName in injectedNamesToPlugins) {
if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {
continue;
}
var pluginModule = injectedNamesToPlugins[pluginName];
if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) {
!!namesToPlugins[pluginName] ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : void 0;
namesToPlugins[pluginName] = pluginModule;
isOrderingDirty = true;
}
}
if (isOrderingDirty) {
recomputePluginOrdering();
}
}
/**
* Similar to invariant but only logs a warning if the condition is not met.
* This can be used to log issues in development environments in critical
* paths. Removing the logging code for production environments will keep the
* same logic and follow the same code paths.
*/
var warningWithoutStack = function () {};
{
warningWithoutStack = function (condition, format) {
for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
args[_key - 2] = arguments[_key];
}
if (format === undefined) {
throw new Error('`warningWithoutStack(condition, format, ...args)` requires a warning ' + 'message argument');
}
if (args.length > 8) {
// Check before the condition to catch violations early.
throw new Error('warningWithoutStack() currently supports at most 8 arguments.');
}
if (condition) {
return;
}
if (typeof console !== 'undefined') {
var argsWithFormat = args.map(function (item) {
return '' + item;
});
argsWithFormat.unshift('Warning: ' + format);
// We intentionally don't use spread (or .apply) directly because it
// breaks IE9: https://github.com/facebook/react/issues/13610
Function.prototype.apply.call(console.error, console, argsWithFormat);
}
try {
// --- Welcome to debugging React ---
// This error was thrown as a convenience so that you can use this stack
// to find the callsite that caused this warning to fire.
var argIndex = 0;
var message = 'Warning: ' + format.replace(/%s/g, function () {
return args[argIndex++];
});
throw new Error(message);
} catch (x) {}
};
}
var warningWithoutStack$1 = warningWithoutStack;
var getFiberCurrentPropsFromNode = null;
var getInstanceFromNode = null;
var getNodeFromInstance = null;
function setComponentTree(getFiberCurrentPropsFromNodeImpl, getInstanceFromNodeImpl, getNodeFromInstanceImpl) {
getFiberCurrentPropsFromNode = getFiberCurrentPropsFromNodeImpl;
getInstanceFromNode = getInstanceFromNodeImpl;
getNodeFromInstance = getNodeFromInstanceImpl;
{
!(getNodeFromInstance && getInstanceFromNode) ? warningWithoutStack$1(false, 'EventPluginUtils.setComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.') : void 0;
}
}
var validateEventDispatches = void 0;
{
validateEventDispatches = function (event) {
var dispatchListeners = event._dispatchListeners;
var dispatchInstances = event._dispatchInstances;
var listenersIsArr = Array.isArray(dispatchListeners);
var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;
var instancesIsArr = Array.isArray(dispatchInstances);
var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;
!(instancesIsArr === listenersIsArr && instancesLen === listenersLen) ? warningWithoutStack$1(false, 'EventPluginUtils: Invalid `event`.') : void 0;
};
}
/**
* Dispatch the event to the listener.
* @param {SyntheticEvent} event SyntheticEvent to handle
* @param {function} listener Application-level callback
* @param {*} inst Internal component instance
*/
function executeDispatch(event, listener, inst) {
var type = event.type || 'unknown-event';
event.currentTarget = getNodeFromInstance(inst);
invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event);
event.currentTarget = null;
}
/**
* Standard/simple iteration through an event's collected dispatches.
*/
function executeDispatchesInOrder(event) {
var dispatchListeners = event._dispatchListeners;
var dispatchInstances = event._dispatchInstances;
{
validateEventDispatches(event);
}
if (Array.isArray(dispatchListeners)) {
for (var i = 0; i < dispatchListeners.length; i++) {
if (event.isPropagationStopped()) {
break;
}
// Listeners and Instances are two parallel arrays that are always in sync.
executeDispatch(event, dispatchListeners[i], dispatchInstances[i]);
}
} else if (dispatchListeners) {
executeDispatch(event, dispatchListeners, dispatchInstances);
}
event._dispatchListeners = null;
event._dispatchInstances = null;
}
/**
* @see executeDispatchesInOrderStopAtTrueImpl
*/
/**
* Execution of a "direct" dispatch - there must be at most one dispatch
* accumulated on the event or it is considered an error. It doesn't really make
* sense for an event with multiple dispatches (bubbled) to keep track of the
* return values at each dispatch execution, but it does tend to make sense when
* dealing with "direct" dispatches.
*
* @return {*} The return value of executing the single dispatch.
*/
/**
* @param {SyntheticEvent} event
* @return {boolean} True iff number of dispatches accumulated is greater than 0.
*/
/**
* Accumulates items that must not be null or undefined into the first one. This
* is used to conserve memory by avoiding array allocations, and thus sacrifices
* API cleanness. Since `current` can be null before being passed in and not
* null after this function, make sure to assign it back to `current`:
*
* `a = accumulateInto(a, b);`
*
* This API should be sparingly used. Try `accumulate` for something cleaner.
*
* @return {*|array<*>} An accumulation of items.
*/
function accumulateInto(current, next) {
!(next != null) ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : void 0;
if (current == null) {
return next;
}
// Both are not empty. Warning: Never call x.concat(y) when you are not
// certain that x is an Array (x could be a string with concat method).
if (Array.isArray(current)) {
if (Array.isArray(next)) {
current.push.apply(current, next);
return current;
}
current.push(next);
return current;
}
if (Array.isArray(next)) {
// A bit too dangerous to mutate `next`.
return [current].concat(next);
}
return [current, next];
}
/**
* @param {array} arr an "accumulation" of items which is either an Array or
* a single item. Useful when paired with the `accumulate` module. This is a
* simple utility that allows us to reason about a collection of items, but
* handling the case when there is exactly one item (and we do not need to
* allocate an array).
* @param {function} cb Callback invoked with each element or a collection.
* @param {?} [scope] Scope used as `this` in a callback.
*/
function forEachAccumulated(arr, cb, scope) {
if (Array.isArray(arr)) {
arr.forEach(cb, scope);
} else if (arr) {
cb.call(scope, arr);
}
}
/**
* Internal queue of events that have accumulated their dispatches and are
* waiting to have their dispatches executed.
*/
var eventQueue = null;
/**
* Dispatches an event and releases it back into the pool, unless persistent.
*
* @param {?object} event Synthetic event to be dispatched.
* @private
*/
var executeDispatchesAndRelease = function (event) {
if (event) {
executeDispatchesInOrder(event);
if (!event.isPersistent()) {
event.constructor.release(event);
}
}
};
var executeDispatchesAndReleaseTopLevel = function (e) {
return executeDispatchesAndRelease(e);
};
function isInteractive(tag) {
return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';
}
function shouldPreventMouseEvent(name, type, props) {
switch (name) {
case 'onClick':
case 'onClickCapture':
case 'onDoubleClick':
case 'onDoubleClickCapture':
case 'onMouseDown':
case 'onMouseDownCapture':
case 'onMouseMove':
case 'onMouseMoveCapture':
case 'onMouseUp':
case 'onMouseUpCapture':
return !!(props.disabled && isInteractive(type));
default:
return false;
}
}
/**
* This is a unified interface for event plugins to be installed and configured.
*
* Event plugins can implement the following properties:
*
* `extractEvents` {function(string, DOMEventTarget, string, object): *}
* Required. When a top-level event is fired, this method is expected to
* extract synthetic events that will in turn be queued and dispatched.
*
* `eventTypes` {object}
* Optional, plugins that fire events must publish a mapping of registration
* names that are used to register listeners. Values of this mapping must
* be objects that contain `registrationName` or `phasedRegistrationNames`.
*
* `executeDispatch` {function(object, function, string)}
* Optional, allows plugins to override how an event gets dispatched. By
* default, the listener is simply invoked.
*
* Each plugin that is injected into `EventsPluginHub` is immediately operable.
*
* @public
*/
/**
* Methods for injecting dependencies.
*/
var injection = {
/**
* @param {array} InjectedEventPluginOrder
* @public
*/
injectEventPluginOrder: injectEventPluginOrder,
/**
* @param {object} injectedNamesToPlugins Map from names to plugin modules.
*/
injectEventPluginsByName: injectEventPluginsByName
};
/**
* @param {object} inst The instance, which is the source of events.
* @param {string} registrationName Name of listener (e.g. `onClick`).
* @return {?function} The stored callback.
*/
function getListener(inst, registrationName) {
var listener = void 0;
// TODO: shouldPreventMouseEvent is DOM-specific and definitely should not
// live here; needs to be moved to a better place soon
var stateNode = inst.stateNode;
if (!stateNode) {
// Work in progress (ex: onload events in incremental mode).
return null;
}
var props = getFiberCurrentPropsFromNode(stateNode);
if (!props) {
// Work in progress.
return null;
}
listener = props[registrationName];
if (shouldPreventMouseEvent(registrationName, inst.type, props)) {
return null;
}
!(!listener || typeof listener === 'function') ? invariant(false, 'Expected `%s` listener to be a function, instead got a value of `%s` type.', registrationName, typeof listener) : void 0;
return listener;
}
/**
* Allows registered plugins an opportunity to extract events from top-level
* native browser events.
*
* @return {*} An accumulation of synthetic events.
* @internal
*/
function extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget) {
var events = null;
for (var i = 0; i < plugins.length; i++) {
// Not every plugin in the ordering may be loaded at runtime.
var possiblePlugin = plugins[i];
if (possiblePlugin) {
var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);
if (extractedEvents) {
events = accumulateInto(events, extractedEvents);
}
}
}
return events;
}
function runEventsInBatch(events) {
if (events !== null) {
eventQueue = accumulateInto(eventQueue, events);
}
// Set `eventQueue` to null before processing it so that we can tell if more
// events get enqueued while processing.
var processingEventQueue = eventQueue;
eventQueue = null;
if (!processingEventQueue) {
return;
}
forEachAccumulated(processingEventQueue, executeDispatchesAndReleaseTopLevel);
!!eventQueue ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : void 0;
// This would be a good time to rethrow if any of the event handlers threw.
rethrowCaughtError();
}
function runExtractedEventsInBatch(topLevelType, targetInst, nativeEvent, nativeEventTarget) {
var events = extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);
runEventsInBatch(events);
}
var FunctionComponent = 0;
var ClassComponent = 1;
var IndeterminateComponent = 2; // Before we know whether it is function or class
var HostRoot = 3; // Root of a host tree. Could be nested inside another node.
var HostPortal = 4; // A subtree. Could be an entry point to a different renderer.
var HostComponent = 5;
var HostText = 6;
var Fragment = 7;
var Mode = 8;
var ContextConsumer = 9;
var ContextProvider = 10;
var ForwardRef = 11;
var Profiler = 12;
var SuspenseComponent = 13;
var MemoComponent = 14;
var SimpleMemoComponent = 15;
var LazyComponent = 16;
var IncompleteClassComponent = 17;
var DehydratedSuspenseComponent = 18;
var randomKey = Math.random().toString(36).slice(2);
var internalInstanceKey = '__reactInternalInstance$' + randomKey;
var internalEventHandlersKey = '__reactEventHandlers$' + randomKey;
function precacheFiberNode(hostInst, node) {
node[internalInstanceKey] = hostInst;
}
/**
* Given a DOM node, return the closest ReactDOMComponent or
* ReactDOMTextComponent instance ancestor.
*/
function getClosestInstanceFromNode(node) {
if (node[internalInstanceKey]) {
return node[internalInstanceKey];
}
while (!node[internalInstanceKey]) {
if (node.parentNode) {
node = node.parentNode;
} else {
// Top of the tree. This node must not be part of a React tree (or is
// unmounted, potentially).
return null;
}
}
var inst = node[internalInstanceKey];
if (inst.tag === HostComponent || inst.tag === HostText) {
// In Fiber, this will always be the deepest root.
return inst;
}
return null;
}
/**
* Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent
* instance, or null if the node was not rendered by this React.
*/
function getInstanceFromNode$1(node) {
var inst = node[internalInstanceKey];
if (inst) {
if (inst.tag === HostComponent || inst.tag === HostText) {
return inst;
} else {
return null;
}
}
return null;
}
/**
* Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding
* DOM node.
*/
function getNodeFromInstance$1(inst) {
if (inst.tag === HostComponent || inst.tag === HostText) {
// In Fiber this, is just the state node right now. We assume it will be
// a host component or host text.
return inst.stateNode;
}
// Without this first invariant, passing a non-DOM-component triggers the next
// invariant for a missing parent, which is super confusing.
invariant(false, 'getNodeFromInstance: Invalid argument.');
}
function getFiberCurrentPropsFromNode$1(node) {
return node[internalEventHandlersKey] || null;
}
function updateFiberProps(node, props) {
node[internalEventHandlersKey] = props;
}
function getParent(inst) {
do {
inst = inst.return;
// TODO: If this is a HostRoot we might want to bail out.
// That is depending on if we want nested subtrees (layers) to bubble
// events to their parent. We could also go through parentNode on the
// host node but that wouldn't work for React Native and doesn't let us
// do the portal feature.
} while (inst && inst.tag !== HostComponent);
if (inst) {
return inst;
}
return null;
}
/**
* Return the lowest common ancestor of A and B, or null if they are in
* different trees.
*/
function getLowestCommonAncestor(instA, instB) {
var depthA = 0;
for (var tempA = instA; tempA; tempA = getParent(tempA)) {
depthA++;
}
var depthB = 0;
for (var tempB = instB; tempB; tempB = getParent(tempB)) {
depthB++;
}
// If A is deeper, crawl up.
while (depthA - depthB > 0) {
instA = getParent(instA);
depthA--;
}
// If B is deeper, crawl up.
while (depthB - depthA > 0) {
instB = getParent(instB);
depthB--;
}
// Walk in lockstep until we find a match.
var depth = depthA;
while (depth--) {
if (instA === instB || instA === instB.alternate) {
return instA;
}
instA = getParent(instA);
instB = getParent(instB);
}
return null;
}
/**
* Return if A is an ancestor of B.
*/
/**
* Return the parent instance of the passed-in instance.
*/
/**
* Simulates the traversal of a two-phase, capture/bubble event dispatch.
*/
function traverseTwoPhase(inst, fn, arg) {
var path = [];
while (inst) {
path.push(inst);
inst = getParent(inst);
}
var i = void 0;
for (i = path.length; i-- > 0;) {
fn(path[i], 'captured', arg);
}
for (i = 0; i < path.length; i++) {
fn(path[i], 'bubbled', arg);
}
}
/**
* Traverses the ID hierarchy and invokes the supplied `cb` on any IDs that
* should would receive a `mouseEnter` or `mouseLeave` event.
*
* Does not invoke the callback on the nearest common ancestor because nothing
* "entered" or "left" that element.
*/
function traverseEnterLeave(from, to, fn, argFrom, argTo) {
var common = from && to ? getLowestCommonAncestor(from, to) : null;
var pathFrom = [];
while (true) {
if (!from) {
break;
}
if (from === common) {
break;
}
var alternate = from.alternate;
if (alternate !== null && alternate === common) {
break;
}
pathFrom.push(from);
from = getParent(from);
}
var pathTo = [];
while (true) {
if (!to) {
break;
}
if (to === common) {
break;
}
var _alternate = to.alternate;
if (_alternate !== null && _alternate === common) {
break;
}
pathTo.push(to);
to = getParent(to);
}
for (var i = 0; i < pathFrom.length; i++) {
fn(pathFrom[i], 'bubbled', argFrom);
}
for (var _i = pathTo.length; _i-- > 0;) {
fn(pathTo[_i], 'captured', argTo);
}
}
/**
* Some event types have a notion of different registration names for different
* "phases" of propagation. This finds listeners by a given phase.
*/
function listenerAtPhase(inst, event, propagationPhase) {
var registrationName = event.dispatchConfig.phasedRegistrationNames[propagationPhase];
return getListener(inst, registrationName);
}
/**
* A small set of propagation patterns, each of which will accept a small amount
* of information, and generate a set of "dispatch ready event objects" - which
* are sets of events that have already been annotated with a set of dispatched
* listener functions/ids. The API is designed this way to discourage these
* propagation strategies from actually executing the dispatches, since we
* always want to collect the entire set of dispatches before executing even a
* single one.
*/
/**
* Tags a `SyntheticEvent` with dispatched listeners. Creating this function
* here, allows us to not have to bind or create functions for each event.
* Mutating the event's members allows us to not have to create a wrapping
* "dispatch" object that pairs the event with the listener.
*/
function accumulateDirectionalDispatches(inst, phase, event) {
{
!inst ? warningWithoutStack$1(false, 'Dispatching inst must not be null') : void 0;
}
var listener = listenerAtPhase(inst, event, phase);
if (listener) {
event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);
event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);
}
}
/**
* Collect dispatches (must be entirely collected before dispatching - see unit
* tests). Lazily allocate the array to conserve memory. We must loop through
* each event and perform the traversal for each one. We cannot perform a
* single traversal for the entire collection of events because each event may
* have a different target.
*/
function accumulateTwoPhaseDispatchesSingle(event) {
if (event && event.dispatchConfig.phasedRegistrationNames) {
traverseTwoPhase(event._targetInst, accumulateDirectionalDispatches, event);
}
}
/**
* Accumulates without regard to direction, does not look for phased
* registration names. Same as `accumulateDirectDispatchesSingle` but without
* requiring that the `dispatchMarker` be the same as the dispatched ID.
*/
function accumulateDispatches(inst, ignoredDirection, event) {
if (inst && event && event.dispatchConfig.registrationName) {
var registrationName = event.dispatchConfig.registrationName;
var listener = getListener(inst, registrationName);
if (listener) {
event._dispatchListeners = accumulateInto(event._dispatchListeners, listener);
event._dispatchInstances = accumulateInto(event._dispatchInstances, inst);
}
}
}
/**
* Accumulates dispatches on an `SyntheticEvent`, but only for the
* `dispatchMarker`.
* @param {SyntheticEvent} event
*/
function accumulateDirectDispatchesSingle(event) {
if (event && event.dispatchConfig.registrationName) {
accumulateDispatches(event._targetInst, null, event);
}
}
function accumulateTwoPhaseDispatches(events) {
forEachAccumulated(events, accumulateTwoPhaseDispatchesSingle);
}
function accumulateEnterLeaveDispatches(leave, enter, from, to) {
traverseEnterLeave(from, to, accumulateDispatches, leave, enter);
}
function accumulateDirectDispatches(events) {
forEachAccumulated(events, accumulateDirectDispatchesSingle);
}
var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
// Do not uses the below two methods directly!
// Instead use constants exported from DOMTopLevelEventTypes in ReactDOM.
// (It is the only module that is allowed to access these methods.)
function unsafeCastStringToDOMTopLevelType(topLevelType) {
return topLevelType;
}
function unsafeCastDOMTopLevelTypeToString(topLevelType) {
return topLevelType;
}
/**
* Generate a mapping of standard vendor prefixes using the defined style property and event name.
*
* @param {string} styleProp
* @param {string} eventName
* @returns {object}
*/
function makePrefixMap(styleProp, eventName) {
var prefixes = {};
prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();
prefixes['Webkit' + styleProp] = 'webkit' + eventName;
prefixes['Moz' + styleProp] = 'moz' + eventName;
return prefixes;
}
/**
* A list of event names to a configurable list of vendor prefixes.
*/
var vendorPrefixes = {
animationend: makePrefixMap('Animation', 'AnimationEnd'),
animationiteration: makePrefixMap('Animation', 'AnimationIteration'),
animationstart: makePrefixMap('Animation', 'AnimationStart'),
transitionend: makePrefixMap('Transition', 'TransitionEnd')
};
/**
* Event names that have already been detected and prefixed (if applicable).
*/
var prefixedEventNames = {};
/**
* Element to check for prefixes on.
*/
var style = {};
/**
* Bootstrap if a DOM exists.
*/
if (canUseDOM) {
style = document.createElement('div').style;
// On some platforms, in particular some releases of Android 4.x,
// the un-prefixed "animation" and "transition" properties are defined on the
// style object but the events that fire will still be prefixed, so we need
// to check if the un-prefixed events are usable, and if not remove them from the map.
if (!('AnimationEvent' in window)) {
delete vendorPrefixes.animationend.animation;
delete vendorPrefixes.animationiteration.animation;
delete vendorPrefixes.animationstart.animation;
}
// Same as above
if (!('TransitionEvent' in window)) {
delete vendorPrefixes.transitionend.transition;
}
}
/**
* Attempts to determine the correct vendor prefixed event name.
*
* @param {string} eventName
* @returns {string}
*/
function getVendorPrefixedEventName(eventName) {
if (prefixedEventNames[eventName]) {
return prefixedEventNames[eventName];
} else if (!vendorPrefixes[eventName]) {
return eventName;
}
var prefixMap = vendorPrefixes[eventName];
for (var styleProp in prefixMap) {
if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {
return prefixedEventNames[eventName] = prefixMap[styleProp];
}
}
return eventName;
}
/**
* To identify top level events in ReactDOM, we use constants defined by this
* module. This is the only module that uses the unsafe* methods to express
* that the constants actually correspond to the browser event names. This lets
* us save some bundle size by avoiding a top level type -> event name map.
* The rest of ReactDOM code should import top level types from this file.
*/
var TOP_ABORT = unsafeCastStringToDOMTopLevelType('abort');
var TOP_ANIMATION_END = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('animationend'));
var TOP_ANIMATION_ITERATION = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('animationiteration'));
var TOP_ANIMATION_START = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('animationstart'));
var TOP_BLUR = unsafeCastStringToDOMTopLevelType('blur');
var TOP_CAN_PLAY = unsafeCastStringToDOMTopLevelType('canplay');
var TOP_CAN_PLAY_THROUGH = unsafeCastStringToDOMTopLevelType('canplaythrough');
var TOP_CANCEL = unsafeCastStringToDOMTopLevelType('cancel');
var TOP_CHANGE = unsafeCastStringToDOMTopLevelType('change');
var TOP_CLICK = unsafeCastStringToDOMTopLevelType('click');
var TOP_CLOSE = unsafeCastStringToDOMTopLevelType('close');
var TOP_COMPOSITION_END = unsafeCastStringToDOMTopLevelType('compositionend');
var TOP_COMPOSITION_START = unsafeCastStringToDOMTopLevelType('compositionstart');
var TOP_COMPOSITION_UPDATE = unsafeCastStringToDOMTopLevelType('compositionupdate');
var TOP_CONTEXT_MENU = unsafeCastStringToDOMTopLevelType('contextmenu');
var TOP_COPY = unsafeCastStringToDOMTopLevelType('copy');
var TOP_CUT = unsafeCastStringToDOMTopLevelType('cut');
var TOP_DOUBLE_CLICK = unsafeCastStringToDOMTopLevelType('dblclick');
var TOP_AUX_CLICK = unsafeCastStringToDOMTopLevelType('auxclick');
var TOP_DRAG = unsafeCastStringToDOMTopLevelType('drag');
var TOP_DRAG_END = unsafeCastStringToDOMTopLevelType('dragend');
var TOP_DRAG_ENTER = unsafeCastStringToDOMTopLevelType('dragenter');
var TOP_DRAG_EXIT = unsafeCastStringToDOMTopLevelType('dragexit');
var TOP_DRAG_LEAVE = unsafeCastStringToDOMTopLevelType('dragleave');
var TOP_DRAG_OVER = unsafeCastStringToDOMTopLevelType('dragover');
var TOP_DRAG_START = unsafeCastStringToDOMTopLevelType('dragstart');
var TOP_DROP = unsafeCastStringToDOMTopLevelType('drop');
var TOP_DURATION_CHANGE = unsafeCastStringToDOMTopLevelType('durationchange');
var TOP_EMPTIED = unsafeCastStringToDOMTopLevelType('emptied');
var TOP_ENCRYPTED = unsafeCastStringToDOMTopLevelType('encrypted');
var TOP_ENDED = unsafeCastStringToDOMTopLevelType('ended');
var TOP_ERROR = unsafeCastStringToDOMTopLevelType('error');
var TOP_FOCUS = unsafeCastStringToDOMTopLevelType('focus');
var TOP_GOT_POINTER_CAPTURE = unsafeCastStringToDOMTopLevelType('gotpointercapture');
var TOP_INPUT = unsafeCastStringToDOMTopLevelType('input');
var TOP_INVALID = unsafeCastStringToDOMTopLevelType('invalid');
var TOP_KEY_DOWN = unsafeCastStringToDOMTopLevelType('keydown');
var TOP_KEY_PRESS = unsafeCastStringToDOMTopLevelType('keypress');
var TOP_KEY_UP = unsafeCastStringToDOMTopLevelType('keyup');
var TOP_LOAD = unsafeCastStringToDOMTopLevelType('load');
var TOP_LOAD_START = unsafeCastStringToDOMTopLevelType('loadstart');
var TOP_LOADED_DATA = unsafeCastStringToDOMTopLevelType('loadeddata');
var TOP_LOADED_METADATA = unsafeCastStringToDOMTopLevelType('loadedmetadata');
var TOP_LOST_POINTER_CAPTURE = unsafeCastStringToDOMTopLevelType('lostpointercapture');
var TOP_MOUSE_DOWN = unsafeCastStringToDOMTopLevelType('mousedown');
var TOP_MOUSE_MOVE = unsafeCastStringToDOMTopLevelType('mousemove');
var TOP_MOUSE_OUT = unsafeCastStringToDOMTopLevelType('mouseout');
var TOP_MOUSE_OVER = unsafeCastStringToDOMTopLevelType('mouseover');
var TOP_MOUSE_UP = unsafeCastStringToDOMTopLevelType('mouseup');
var TOP_PASTE = unsafeCastStringToDOMTopLevelType('paste');
var TOP_PAUSE = unsafeCastStringToDOMTopLevelType('pause');
var TOP_PLAY = unsafeCastStringToDOMTopLevelType('play');
var TOP_PLAYING = unsafeCastStringToDOMTopLevelType('playing');
var TOP_POINTER_CANCEL = unsafeCastStringToDOMTopLevelType('pointercancel');
var TOP_POINTER_DOWN = unsafeCastStringToDOMTopLevelType('pointerdown');
var TOP_POINTER_MOVE = unsafeCastStringToDOMTopLevelType('pointermove');
var TOP_POINTER_OUT = unsafeCastStringToDOMTopLevelType('pointerout');
var TOP_POINTER_OVER = unsafeCastStringToDOMTopLevelType('pointerover');
var TOP_POINTER_UP = unsafeCastStringToDOMTopLevelType('pointerup');
var TOP_PROGRESS = unsafeCastStringToDOMTopLevelType('progress');
var TOP_RATE_CHANGE = unsafeCastStringToDOMTopLevelType('ratechange');
var TOP_RESET = unsafeCastStringToDOMTopLevelType('reset');
var TOP_SCROLL = unsafeCastStringToDOMTopLevelType('scroll');
var TOP_SEEKED = unsafeCastStringToDOMTopLevelType('seeked');
var TOP_SEEKING = unsafeCastStringToDOMTopLevelType('seeking');
var TOP_SELECTION_CHANGE = unsafeCastStringToDOMTopLevelType('selectionchange');
var TOP_STALLED = unsafeCastStringToDOMTopLevelType('stalled');
var TOP_SUBMIT = unsafeCastStringToDOMTopLevelType('submit');
var TOP_SUSPEND = unsafeCastStringToDOMTopLevelType('suspend');
var TOP_TEXT_INPUT = unsafeCastStringToDOMTopLevelType('textInput');
var TOP_TIME_UPDATE = unsafeCastStringToDOMTopLevelType('timeupdate');
var TOP_TOGGLE = unsafeCastStringToDOMTopLevelType('toggle');
var TOP_TOUCH_CANCEL = unsafeCastStringToDOMTopLevelType('touchcancel');
var TOP_TOUCH_END = unsafeCastStringToDOMTopLevelType('touchend');
var TOP_TOUCH_MOVE = unsafeCastStringToDOMTopLevelType('touchmove');
var TOP_TOUCH_START = unsafeCastStringToDOMTopLevelType('touchstart');
var TOP_TRANSITION_END = unsafeCastStringToDOMTopLevelType(getVendorPrefixedEventName('transitionend'));
var TOP_VOLUME_CHANGE = unsafeCastStringToDOMTopLevelType('volumechange');
var TOP_WAITING = unsafeCastStringToDOMTopLevelType('waiting');
var TOP_WHEEL = unsafeCastStringToDOMTopLevelType('wheel');
// List of events that need to be individually attached to media elements.
// Note that events in this list will *not* be listened to at the top level
// unless they're explicitly whitelisted in `ReactBrowserEventEmitter.listenTo`.
var mediaEventTypes = [TOP_ABORT, TOP_CAN_PLAY, TOP_CAN_PLAY_THROUGH, TOP_DURATION_CHANGE, TOP_EMPTIED, TOP_ENCRYPTED, TOP_ENDED, TOP_ERROR, TOP_LOADED_DATA, TOP_LOADED_METADATA, TOP_LOAD_START, TOP_PAUSE, TOP_PLAY, TOP_PLAYING, TOP_PROGRESS, TOP_RATE_CHANGE, TOP_SEEKED, TOP_SEEKING, TOP_STALLED, TOP_SUSPEND, TOP_TIME_UPDATE, TOP_VOLUME_CHANGE, TOP_WAITING];
function getRawEventName(topLevelType) {
return unsafeCastDOMTopLevelTypeToString(topLevelType);
}
/**
* These variables store information about text content of a target node,
* allowing comparison of content before and after a given event.
*
* Identify the node where selection currently begins, then observe
* both its text content and its current position in the DOM. Since the
* browser may natively replace the target node during composition, we can
* use its position to find its replacement.
*
*
*/
var root = null;
var startText = null;
var fallbackText = null;
function initialize(nativeEventTarget) {
root = nativeEventTarget;
startText = getText();
return true;
}
function reset() {
root = null;
startText = null;
fallbackText = null;
}
function getData() {
if (fallbackText) {
return fallbackText;
}
var start = void 0;
var startValue = startText;
var startLength = startValue.length;
var end = void 0;
var endValue = getText();
var endLength = endValue.length;
for (start = 0; start < startLength; start++) {
if (startValue[start] !== endValue[start]) {
break;
}
}
var minEnd = startLength - start;
for (end = 1; end <= minEnd; end++) {
if (startValue[startLength - end] !== endValue[endLength - end]) {
break;
}
}
var sliceTail = end > 1 ? 1 - end : undefined;
fallbackText = endValue.slice(start, sliceTail);
return fallbackText;
}
function getText() {
if ('value' in root) {
return root.value;
}
return root.textContent;
}
/* eslint valid-typeof: 0 */
var EVENT_POOL_SIZE = 10;
/**
* @interface Event
* @see http://www.w3.org/TR/DOM-Level-3-Events/
*/
var EventInterface = {
type: null,
target: null,
// currentTarget is set when dispatching; no use in copying it here
currentTarget: function () {
return null;
},
eventPhase: null,
bubbles: null,
cancelable: null,
timeStamp: function (event) {
return event.timeStamp || Date.now();
},
defaultPrevented: null,
isTrusted: null
};
function functionThatReturnsTrue() {
return true;
}
function functionThatReturnsFalse() {
return false;
}
/**
* Synthetic events are dispatched by event plugins, typically in response to a
* top-level event delegation handler.
*
* These systems should generally use pooling to reduce the frequency of garbage
* collection. The system should check `isPersistent` to determine whether the
* event should be released into the pool after being dispatched. Users that
* need a persisted event should invoke `persist`.
*
* Synthetic events (and subclasses) implement the DOM Level 3 Events API by
* normalizing browser quirks. Subclasses do not necessarily have to implement a
* DOM interface; custom application-specific events can also subclass this.
*
* @param {object} dispatchConfig Configuration used to dispatch this event.
* @param {*} targetInst Marker identifying the event target.
* @param {object} nativeEvent Native browser event.
* @param {DOMEventTarget} nativeEventTarget Target node.
*/
function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeEventTarget) {
{
// these have a getter/setter for warnings
delete this.nativeEvent;
delete this.preventDefault;
delete this.stopPropagation;
delete this.isDefaultPrevented;
delete this.isPropagationStopped;
}
this.dispatchConfig = dispatchConfig;
this._targetInst = targetInst;
this.nativeEvent = nativeEvent;
var Interface = this.constructor.Interface;
for (var propName in Interface) {
if (!Interface.hasOwnProperty(propName)) {
continue;
}
{
delete this[propName]; // this has a getter/setter for warnings
}
var normalize = Interface[propName];
if (normalize) {
this[propName] = normalize(nativeEvent);
} else {
if (propName === 'target') {
this.target = nativeEventTarget;
} else {
this[propName] = nativeEvent[propName];
}
}
}
var defaultPrevented = nativeEvent.defaultPrevented != null ? nativeEvent.defaultPrevented : nativeEvent.returnValue === false;
if (defaultPrevented) {
this.isDefaultPrevented = functionThatReturnsTrue;
} else {
this.isDefaultPrevented = functionThatReturnsFalse;
}
this.isPropagationStopped = functionThatReturnsFalse;
return this;
}
_assign(SyntheticEvent.prototype, {
preventDefault: function () {
this.defaultPrevented = true;
var event = this.nativeEvent;
if (!event) {
return;
}
if (event.preventDefault) {
event.preventDefault();
} else if (typeof event.returnValue !== 'unknown') {
event.returnValue = false;
}
this.isDefaultPrevented = functionThatReturnsTrue;
},
stopPropagation: function () {
var event = this.nativeEvent;
if (!event) {
return;
}
if (event.stopPropagation) {
event.stopPropagation();
} else if (typeof event.cancelBubble !== 'unknown') {
// The ChangeEventPlugin registers a "propertychange" event for
// IE. This event does not support bubbling or cancelling, and
// any references to cancelBubble throw "Member not found". A
// typeof check of "unknown" circumvents this issue (and is also
// IE specific).
event.cancelBubble = true;
}
this.isPropagationStopped = functionThatReturnsTrue;
},
/**
* We release all dispatched `SyntheticEvent`s after each event loop, adding
* them back into the pool. This allows a way to hold onto a reference that
* won't be added back into the pool.
*/
persist: function () {
this.isPersistent = functionThatReturnsTrue;
},
/**
* Checks if this event should be released back into the pool.
*
* @return {boolean} True if this should not be released, false otherwise.
*/
isPersistent: functionThatReturnsFalse,
/**
* `PooledClass` looks for `destructor` on each instance it releases.
*/
destructor: function () {
var Interface = this.constructor.Interface;
for (var propName in Interface) {
{
Object.defineProperty(this, propName, getPooledWarningPropertyDefinition(propName, Interface[propName]));
}
}
this.dispatchConfig = null;
this._targetInst = null;
this.nativeEvent = null;
this.isDefaultPrevented = functionThatReturnsFalse;
this.isPropagationStopped = functionThatReturnsFalse;
this._dispatchListeners = null;
this._dispatchInstances = null;
{
Object.defineProperty(this, 'nativeEvent', getPooledWarningPropertyDefinition('nativeEvent', null));
Object.defineProperty(this, 'isDefaultPrevented', getPooledWarningPropertyDefinition('isDefaultPrevented', functionThatReturnsFalse));
Object.defineProperty(this, 'isPropagationStopped', getPooledWarningPropertyDefinition('isPropagationStopped', functionThatReturnsFalse));
Object.defineProperty(this, 'preventDefault', getPooledWarningPropertyDefinition('preventDefault', function () {}));
Object.defineProperty(this, 'stopPropagation', getPooledWarningPropertyDefinition('stopPropagation', function () {}));
}
}
});
SyntheticEvent.Interface = EventInterface;
/**
* Helper to reduce boilerplate when creating subclasses.
*/
SyntheticEvent.extend = function (Interface) {
var Super = this;
var E = function () {};
E.prototype = Super.prototype;
var prototype = new E();
function Class() {
return Super.apply(this, arguments);
}
_assign(prototype, Class.prototype);
Class.prototype = prototype;
Class.prototype.constructor = Class;
Class.Interface = _assign({}, Super.Interface, Interface);
Class.extend = Super.extend;
addEventPoolingTo(Class);
return Class;
};
addEventPoolingTo(SyntheticEvent);
/**
* Helper to nullify syntheticEvent instance properties when destructing
*
* @param {String} propName
* @param {?object} getVal
* @return {object} defineProperty object
*/
function getPooledWarningPropertyDefinition(propName, getVal) {
var isFunction = typeof getVal === 'function';
return {
configurable: true,
set: set,
get: get
};
function set(val) {
var action = isFunction ? 'setting the method' : 'setting the property';
warn(action, 'This is effectively a no-op');
return val;
}
function get() {
var action = isFunction ? 'accessing the method' : 'accessing the property';
var result = isFunction ? 'This is a no-op function' : 'This is set to null';
warn(action, result);
return getVal;
}
function warn(action, result) {
var warningCondition = false;
!warningCondition ? warningWithoutStack$1(false, "This synthetic event is reused for performance reasons. If you're seeing this, " + "you're %s `%s` on a released/nullified synthetic event. %s. " + 'If you must keep the original synthetic event around, use event.persist(). ' + 'See https://fb.me/react-event-pooling for more information.', action, propName, result) : void 0;
}
}
function getPooledEvent(dispatchConfig, targetInst, nativeEvent, nativeInst) {
var EventConstructor = this;
if (EventConstructor.eventPool.length) {
var instance = EventConstructor.eventPool.pop();
EventConstructor.call(instance, dispatchConfig, targetInst, nativeEvent, nativeInst);
return instance;
}
return new EventConstructor(dispatchConfig, targetInst, nativeEvent, nativeInst);
}
function releasePooledEvent(event) {
var EventConstructor = this;
!(event instanceof EventConstructor) ? invariant(false, 'Trying to release an event instance into a pool of a different type.') : void 0;
event.destructor();
if (EventConstructor.eventPool.length < EVENT_POOL_SIZE) {
EventConstructor.eventPool.push(event);
}
}
function addEventPoolingTo(EventConstructor) {
EventConstructor.eventPool = [];
EventConstructor.getPooled = getPooledEvent;
EventConstructor.release = releasePooledEvent;
}
/**
* @interface Event
* @see http://www.w3.org/TR/DOM-Level-3-Events/#events-compositionevents
*/
var SyntheticCompositionEvent = SyntheticEvent.extend({
data: null
});
/**
* @interface Event
* @see http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105
* /#events-inputevents
*/
var SyntheticInputEvent = SyntheticEvent.extend({
data: null
});
var END_KEYCODES = [9, 13, 27, 32]; // Tab, Return, Esc, Space
var START_KEYCODE = 229;
var canUseCompositionEvent = canUseDOM && 'CompositionEvent' in window;
var documentMode = null;
if (canUseDOM && 'documentMode' in document) {
documentMode = document.documentMode;
}
// Webkit offers a very useful `textInput` event that can be used to
// directly represent `beforeInput`. The IE `textinput` event is not as
// useful, so we don't use it.
var canUseTextInputEvent = canUseDOM && 'TextEvent' in window && !documentMode;
// In IE9+, we have access to composition events, but the data supplied
// by the native compositionend event may be incorrect. Japanese ideographic
// spaces, for instance (\u3000) are not recorded correctly.
var useFallbackCompositionData = canUseDOM && (!canUseCompositionEvent || documentMode && documentMode > 8 && documentMode <= 11);
var SPACEBAR_CODE = 32;
var SPACEBAR_CHAR = String.fromCharCode(SPACEBAR_CODE);
// Events and their corresponding property names.
var eventTypes = {
beforeInput: {
phasedRegistrationNames: {
bubbled: 'onBeforeInput',
captured: 'onBeforeInputCapture'
},
dependencies: [TOP_COMPOSITION_END, TOP_KEY_PRESS, TOP_TEXT_INPUT, TOP_PASTE]
},
compositionEnd: {
phasedRegistrationNames: {
bubbled: 'onCompositionEnd',
captured: 'onCompositionEndCapture'
},
dependencies: [TOP_BLUR, TOP_COMPOSITION_END, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_MOUSE_DOWN]
},
compositionStart: {
phasedRegistrationNames: {
bubbled: 'onCompositionStart',
captured: 'onCompositionStartCapture'
},
dependencies: [TOP_BLUR, TOP_COMPOSITION_START, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_MOUSE_DOWN]
},
compositionUpdate: {
phasedRegistrationNames: {
bubbled: 'onCompositionUpdate',
captured: 'onCompositionUpdateCapture'
},
dependencies: [TOP_BLUR, TOP_COMPOSITION_UPDATE, TOP_KEY_DOWN, TOP_KEY_PRESS, TOP_KEY_UP, TOP_MOUSE_DOWN]
}
};
// Track whether we've ever handled a keypress on the space key.
var hasSpaceKeypress = false;
/**
* Return whether a native keypress event is assumed to be a command.
* This is required because Firefox fires `keypress` events for key commands
* (cut, copy, select-all, etc.) even though no character is inserted.
*/
function isKeypressCommand(nativeEvent) {
return (nativeEvent.ctrlKey || nativeEvent.altKey || nativeEvent.metaKey) &&
// ctrlKey && altKey is equivalent to AltGr, and is not a command.
!(nativeEvent.ctrlKey && nativeEvent.altKey);
}
/**
* Translate native top level events into event types.
*
* @param {string} topLevelType
* @return {object}
*/
function getCompositionEventType(topLevelType) {
switch (topLevelType) {
case TOP_COMPOSITION_START:
return eventTypes.compositionStart;
case TOP_COMPOSITION_END:
return eventTypes.compositionEnd;
case TOP_COMPOSITION_UPDATE:
return eventTypes.compositionUpdate;
}
}
/**
* Does our fallback best-guess model think this event signifies that
* composition has begun?
*
* @param {string} topLevelType
* @param {object} nativeEvent
* @return {boolean}
*/
function isFallbackCompositionStart(topLevelType, nativeEvent) {
return topLevelType === TOP_KEY_DOWN && nativeEvent.keyCode === START_KEYCODE;
}
/**
* Does our fallback mode think that this event is the end of composition?
*
* @param {string} topLevelType
* @param {object} nativeEvent
* @return {boolean}
*/
function isFallbackCompositionEnd(topLevelType, nativeEvent) {
switch (topLevelType) {
case TOP_KEY_UP:
// Command keys insert or clear IME input.
return END_KEYCODES.indexOf(nativeEvent.keyCode) !== -1;
case TOP_KEY_DOWN:
// Expect IME keyCode on each keydown. If we get any other
// code we must have exited earlier.
return nativeEvent.keyCode !== START_KEYCODE;
case TOP_KEY_PRESS:
case TOP_MOUSE_DOWN:
case TOP_BLUR:
// Events are not possible without cancelling IME.
return true;
default:
return false;
}
}
/**
* Google Input Tools provides composition data via a CustomEvent,
* with the `data` property populated in the `detail` object. If this
* is available on the event object, use it. If not, this is a plain
* composition event and we have nothing special to extract.
*
* @param {object} nativeEvent
* @return {?string}
*/
function getDataFromCustomEvent(nativeEvent) {
var detail = nativeEvent.detail;
if (typeof detail === 'object' && 'data' in detail) {
return detail.data;
}
return null;
}
/**
* Check if a composition event was triggered by Korean IME.
* Our fallback mode does not work well with IE's Korean IME,
* so just use native composition events when Korean IME is used.
* Although CompositionEvent.locale property is deprecated,
* it is available in IE, where our fallback mode is enabled.
*
* @param {object} nativeEvent
* @return {boolean}
*/
function isUsingKoreanIME(nativeEvent) {
return nativeEvent.locale === 'ko';
}
// Track the current IME composition status, if any.
var isComposing = false;
/**
* @return {?object} A SyntheticCompositionEvent.
*/
function extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {
var eventType = void 0;
var fallbackData = void 0;
if (canUseCompositionEvent) {
eventType = getCompositionEventType(topLevelType);
} else if (!isComposing) {
if (isFallbackCompositionStart(topLevelType, nativeEvent)) {
eventType = eventTypes.compositionStart;
}
} else if (isFallbackCompositionEnd(topLevelType, nativeEvent)) {
eventType = eventTypes.compositionEnd;
}
if (!eventType) {
return null;
}
if (useFallbackCompositionData && !isUsingKoreanIME(nativeEvent)) {
// The current composition is stored statically and must not be
// overwritten while composition continues.
if (!isComposing && eventType === eventTypes.compositionStart) {
isComposing = initialize(nativeEventTarget);
} else if (eventType === eventTypes.compositionEnd) {
if (isComposing) {
fallbackData = getData();
}
}
}
var event = SyntheticCompositionEvent.getPooled(eventType, targetInst, nativeEvent, nativeEventTarget);
if (fallbackData) {
// Inject data generated from fallback path into the synthetic event.
// This matches the property of native CompositionEventInterface.
event.data = fallbackData;
} else {
var customData = getDataFromCustomEvent(nativeEvent);
if (customData !== null) {
event.data = customData;
}
}
accumulateTwoPhaseDispatches(event);
return event;
}
/**
* @param {TopLevelType} topLevelType Number from `TopLevelType`.
* @param {object} nativeEvent Native browser event.
* @return {?string} The string corresponding to this `beforeInput` event.
*/
function getNativeBeforeInputChars(topLevelType, nativeEvent) {
switch (topLevelType) {
case TOP_COMPOSITION_END:
return getDataFromCustomEvent(nativeEvent);
case TOP_KEY_PRESS:
/**
* If native `textInput` events are available, our goal is to make
* use of them. However, there is a special case: the spacebar key.
* In Webkit, preventing default on a spacebar `textInput` event
* cancels character insertion, but it *also* causes the browser
* to fall back to its default spacebar behavior of scrolling the
* page.
*
* Tracking at:
* https://code.google.com/p/chromium/issues/detail?id=355103
*
* To avoid this issue, use the keypress event as if no `textInput`
* event is available.
*/
var which = nativeEvent.which;
if (which !== SPACEBAR_CODE) {
return null;
}
hasSpaceKeypress = true;
return SPACEBAR_CHAR;
case TOP_TEXT_INPUT:
// Record the characters to be added to the DOM.
var chars = nativeEvent.data;
// If it's a spacebar character, assume that we have already handled
// it at the keypress level and bail immediately. Android Chrome
// doesn't give us keycodes, so we need to ignore it.
if (chars === SPACEBAR_CHAR && hasSpaceKeypress) {
return null;
}
return chars;
default:
// For other native event types, do nothing.
return null;
}
}
/**
* For browsers that do not provide the `textInput` event, extract the
* appropriate string to use for SyntheticInputEvent.
*
* @param {number} topLevelType Number from `TopLevelEventTypes`.
* @param {object} nativeEvent Native browser event.
* @return {?string} The fallback string for this `beforeInput` event.
*/
function getFallbackBeforeInputChars(topLevelType, nativeEvent) {
// If we are currently composing (IME) and using a fallback to do so,
// try to extract the composed characters from the fallback object.
// If composition event is available, we extract a string only at
// compositionevent, otherwise extract it at fallback events.
if (isComposing) {
if (topLevelType === TOP_COMPOSITION_END || !canUseCompositionEvent && isFallbackCompositionEnd(topLevelType, nativeEvent)) {
var chars = getData();
reset();
isComposing = false;
return chars;
}
return null;
}
switch (topLevelType) {
case TOP_PASTE:
// If a paste event occurs after a keypress, throw out the input
// chars. Paste events should not lead to BeforeInput events.
return null;
case TOP_KEY_PRESS:
/**
* As of v27, Firefox may fire keypress events even when no character
* will be inserted. A few possibilities:
*
* - `which` is `0`. Arrow keys, Esc key, etc.
*
* - `which` is the pressed key code, but no char is available.
* Ex: 'AltGr + d` in Polish. There is no modified character for
* this key combination and no character is inserted into the
* document, but FF fires the keypress for char code `100` anyway.
* No `input` event will occur.
*
* - `which` is the pressed key code, but a command combination is
* being used. Ex: `Cmd+C`. No character is inserted, and no
* `input` event will occur.
*/
if (!isKeypressCommand(nativeEvent)) {
// IE fires the `keypress` event when a user types an emoji via
// Touch keyboard of Windows. In such a case, the `char` property
// holds an emoji character like `\uD83D\uDE0A`. Because its length
// is 2, the property `which` does not represent an emoji correctly.
// In such a case, we directly return the `char` property instead of
// using `which`.
if (nativeEvent.char && nativeEvent.char.length > 1) {
return nativeEvent.char;
} else if (nativeEvent.which) {
return String.fromCharCode(nativeEvent.which);
}
}
return null;
case TOP_COMPOSITION_END:
return useFallbackCompositionData && !isUsingKoreanIME(nativeEvent) ? null : nativeEvent.data;
default:
return null;
}
}
/**
* Extract a SyntheticInputEvent for `beforeInput`, based on either native
* `textInput` or fallback behavior.
*
* @return {?object} A SyntheticInputEvent.
*/
function extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget) {
var chars = void 0;
if (canUseTextInputEvent) {
chars = getNativeBeforeInputChars(topLevelType, nativeEvent);
} else {
chars = getFallbackBeforeInputChars(topLevelType, nativeEvent);
}
// If no characters are being inserted, no BeforeInput event should
// be fired.
if (!chars) {
return null;
}
var event = SyntheticInputEvent.getPooled(eventTypes.beforeInput, targetInst, nativeEvent, nativeEventTarget);
event.data = chars;
accumulateTwoPhaseDispatches(event);
return event;
}
/**
* Create an `onBeforeInput` event to match
* http://www.w3.org/TR/2013/WD-DOM-Level-3-Events-20131105/#events-inputevents.
*
* This event plugin is based on the native `textInput` event
* available in Chrome, Safari, Opera, and IE. This event fires after
* `onKeyPress` and `onCompositionEnd`, but before `onInput`.
*
* `beforeInput` is spec'd but not implemented in any browsers, and
* the `input` event does not provide any useful information about what has
* actually been added, contrary to the spec. Thus, `textInput` is the best
* available event to identify the characters that have actually been inserted
* into the target node.
*
* This plugin is also responsible for emitting `composition` events, thus
* allowing us to share composition fallback code for both `beforeInput` and
* `composition` event types.
*/
var BeforeInputEventPlugin = {
eventTypes: eventTypes,
extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
var composition = extractCompositionEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget);
var beforeInput = extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, nativeEventTarget);
if (composition === null) {
return beforeInput;
}
if (beforeInput === null) {
return composition;
}
return [composition, beforeInput];
}
};
// Use to restore controlled state after a change event has fired.
var restoreImpl = null;
var restoreTarget = null;
var restoreQueue = null;
function restoreStateOfTarget(target) {
// We perform this translation at the end of the event loop so that we
// always receive the correct fiber here
var internalInstance = getInstanceFromNode(target);
if (!internalInstance) {
// Unmounted
return;
}
!(typeof restoreImpl === 'function') ? invariant(false, 'setRestoreImplementation() needs to be called to handle a target for controlled events. This error is likely caused by a bug in React. Please file an issue.') : void 0;
var props = getFiberCurrentPropsFromNode(internalInstance.stateNode);
restoreImpl(internalInstance.stateNode, internalInstance.type, props);
}
function setRestoreImplementation(impl) {
restoreImpl = impl;
}
function enqueueStateRestore(target) {
if (restoreTarget) {
if (restoreQueue) {
restoreQueue.push(target);
} else {
restoreQueue = [target];
}
} else {
restoreTarget = target;
}
}
function needsStateRestore() {
return restoreTarget !== null || restoreQueue !== null;
}
function restoreStateIfNeeded() {
if (!restoreTarget) {
return;
}
var target = restoreTarget;
var queuedTargets = restoreQueue;
restoreTarget = null;
restoreQueue = null;
restoreStateOfTarget(target);
if (queuedTargets) {
for (var i = 0; i < queuedTargets.length; i++) {
restoreStateOfTarget(queuedTargets[i]);
}
}
}
// Used as a way to call batchedUpdates when we don't have a reference to
// the renderer. Such as when we're dispatching events or if third party
// libraries need to call batchedUpdates. Eventually, this API will go away when
// everything is batched by default. We'll then have a similar API to opt-out of
// scheduled work and instead do synchronous work.
// Defaults
var _batchedUpdatesImpl = function (fn, bookkeeping) {
return fn(bookkeeping);
};
var _interactiveUpdatesImpl = function (fn, a, b) {
return fn(a, b);
};
var _flushInteractiveUpdatesImpl = function () {};
var isBatching = false;
function batchedUpdates(fn, bookkeeping) {
if (isBatching) {
// If we are currently inside another batch, we need to wait until it
// fully completes before restoring state.
return fn(bookkeeping);
}
isBatching = true;
try {
return _batchedUpdatesImpl(fn, bookkeeping);
} finally {
// Here we wait until all updates have propagated, which is important
// when using controlled components within layers:
// https://github.com/facebook/react/issues/1698
// Then we restore state of any controlled component.
isBatching = false;
var controlledComponentsHavePendingUpdates = needsStateRestore();
if (controlledComponentsHavePendingUpdates) {
// If a controlled event was fired, we may need to restore the state of
// the DOM node back to the controlled value. This is necessary when React
// bails out of the update without touching the DOM.
_flushInteractiveUpdatesImpl();
restoreStateIfNeeded();
}
}
}
function interactiveUpdates(fn, a, b) {
return _interactiveUpdatesImpl(fn, a, b);
}
function setBatchingImplementation(batchedUpdatesImpl, interactiveUpdatesImpl, flushInteractiveUpdatesImpl) {
_batchedUpdatesImpl = batchedUpdatesImpl;
_interactiveUpdatesImpl = interactiveUpdatesImpl;
_flushInteractiveUpdatesImpl = flushInteractiveUpdatesImpl;
}
/**
* @see http://www.whatwg.org/specs/web-apps/current-work/multipage/the-input-element.html#input-type-attr-summary
*/
var supportedInputTypes = {
color: true,
date: true,
datetime: true,
'datetime-local': true,
email: true,
month: true,
number: true,
password: true,
range: true,
search: true,
tel: true,
text: true,
time: true,
url: true,
week: true
};
function isTextInputElement(elem) {
var nodeName = elem && elem.nodeName && elem.nodeName.toLowerCase();
if (nodeName === 'input') {
return !!supportedInputTypes[elem.type];
}
if (nodeName === 'textarea') {
return true;
}
return false;
}
/**
* HTML nodeType values that represent the type of the node
*/
var ELEMENT_NODE = 1;
var TEXT_NODE = 3;
var COMMENT_NODE = 8;
var DOCUMENT_NODE = 9;
var DOCUMENT_FRAGMENT_NODE = 11;
/**
* Gets the target node from a native browser event by accounting for
* inconsistencies in browser DOM APIs.
*
* @param {object} nativeEvent Native browser event.
* @return {DOMEventTarget} Target node.
*/
function getEventTarget(nativeEvent) {
// Fallback to nativeEvent.srcElement for IE9
// https://github.com/facebook/react/issues/12506
var target = nativeEvent.target || nativeEvent.srcElement || window;
// Normalize SVG <use> element events #4963
if (target.correspondingUseElement) {
target = target.correspondingUseElement;
}
// Safari may fire events on text nodes (Node.TEXT_NODE is 3).
// @see http://www.quirksmode.org/js/events_properties.html
return target.nodeType === TEXT_NODE ? target.parentNode : target;
}
/**
* Checks if an event is supported in the current execution environment.
*
* NOTE: This will not work correctly for non-generic events such as `change`,
* `reset`, `load`, `error`, and `select`.
*
* Borrows from Modernizr.
*
* @param {string} eventNameSuffix Event name, e.g. "click".
* @return {boolean} True if the event is supported.
* @internal
* @license Modernizr 3.0.0pre (Custom Build) | MIT
*/
function isEventSupported(eventNameSuffix) {
if (!canUseDOM) {
return false;
}
var eventName = 'on' + eventNameSuffix;
var isSupported = eventName in document;
if (!isSupported) {
var element = document.createElement('div');
element.setAttribute(eventName, 'return;');
isSupported = typeof element[eventName] === 'function';
}
return isSupported;
}
function isCheckable(elem) {
var type = elem.type;
var nodeName = elem.nodeName;
return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');
}
function getTracker(node) {
return node._valueTracker;
}
function detachTracker(node) {
node._valueTracker = null;
}
function getValueFromNode(node) {
var value = '';
if (!node) {
return value;
}
if (isCheckable(node)) {
value = node.checked ? 'true' : 'false';
} else {
value = node.value;
}
return value;
}
function trackValueOnNode(node) {
var valueField = isCheckable(node) ? 'checked' : 'value';
var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);
var currentValue = '' + node[valueField];
// if someone has already defined a value or Safari, then bail
// and don't track value will cause over reporting of changes,
// but it's better then a hard failure
// (needed for certain tests that spyOn input values and Safari)
if (node.hasOwnProperty(valueField) || typeof descriptor === 'undefined' || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {
return;
}
var get = descriptor.get,
set = descriptor.set;
Object.defineProperty(node, valueField, {
configurable: true,
get: function () {
return get.call(this);
},
set: function (value) {
currentValue = '' + value;
set.call(this, value);
}
});
// We could've passed this the first time
// but it triggers a bug in IE11 and Edge 14/15.
// Calling defineProperty() again should be equivalent.
// https://github.com/facebook/react/issues/11768
Object.defineProperty(node, valueField, {
enumerable: descriptor.enumerable
});
var tracker = {
getValue: function () {
return currentValue;
},
setValue: function (value) {
currentValue = '' + value;
},
stopTracking: function () {
detachTracker(node);
delete node[valueField];
}
};
return tracker;
}
function track(node) {
if (getTracker(node)) {
return;
}
// TODO: Once it's just Fiber we can move this to node._wrapperState
node._valueTracker = trackValueOnNode(node);
}
function updateValueIfChanged(node) {
if (!node) {
return false;
}
var tracker = getTracker(node);
// if there is no tracker at this point it's unlikely
// that trying again will succeed
if (!tracker) {
return true;
}
var lastValue = tracker.getValue();
var nextValue = getValueFromNode(node);
if (nextValue !== lastValue) {
tracker.setValue(nextValue);
return true;
}
return false;
}
var ReactSharedInternals = React.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
// Prevent newer renderers from RTE when used with older react package versions.
// Current owner and dispatcher used to share the same ref,
// but PR #14548 split them out to better support the react-debug-tools package.
if (!ReactSharedInternals.hasOwnProperty('ReactCurrentDispatcher')) {
ReactSharedInternals.ReactCurrentDispatcher = {
current: null
};
}
var BEFORE_SLASH_RE = /^(.*)[\\\/]/;
var describeComponentFrame = function (name, source, ownerName) {
var sourceInfo = '';
if (source) {
var path = source.fileName;
var fileName = path.replace(BEFORE_SLASH_RE, '');
{
// In DEV, include code for a common special case:
// prefer "folder/index.js" instead of just "index.js".
if (/^index\./.test(fileName)) {
var match = path.match(BEFORE_SLASH_RE);
if (match) {
var pathBeforeSlash = match[1];
if (pathBeforeSlash) {
var folderName = pathBeforeSlash.replace(BEFORE_SLASH_RE, '');
fileName = folderName + '/' + fileName;
}
}
}
}
sourceInfo = ' (at ' + fileName + ':' + source.lineNumber + ')';
} else if (ownerName) {
sourceInfo = ' (created by ' + ownerName + ')';
}
return '\n in ' + (name || 'Unknown') + sourceInfo;
};
// The Symbol used to tag the ReactElement-like types. If there is no native Symbol
// nor polyfill, then a plain number is used for performance.
var hasSymbol = typeof Symbol === 'function' && Symbol.for;
var REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;
var REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;
var REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;
var REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;
var REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;
var REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;
var REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace;
var REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;
var REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;
var REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;
var REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;
var REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;
var MAYBE_ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
var FAUX_ITERATOR_SYMBOL = '@@iterator';
function getIteratorFn(maybeIterable) {
if (maybeIterable === null || typeof maybeIterable !== 'object') {
return null;
}
var maybeIterator = MAYBE_ITERATOR_SYMBOL && maybeIterable[MAYBE_ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL];
if (typeof maybeIterator === 'function') {
return maybeIterator;
}
return null;
}
var Pending = 0;
var Resolved = 1;
var Rejected = 2;
function refineResolvedLazyComponent(lazyComponent) {
return lazyComponent._status === Resolved ? lazyComponent._result : null;
}
function getWrappedName(outerType, innerType, wrapperName) {
var functionName = innerType.displayName || innerType.name || '';
return outerType.displayName || (functionName !== '' ? wrapperName + '(' + functionName + ')' : wrapperName);
}
function getComponentName(type) {
if (type == null) {
// Host root, text node or just invalid type.
return null;
}
{
if (typeof type.tag === 'number') {
warningWithoutStack$1(false, 'Received an unexpected object in getComponentName(). ' + 'This is likely a bug in React. Please file an issue.');
}
}
if (typeof type === 'function') {
return type.displayName || type.name || null;
}
if (typeof type === 'string') {
return type;
}
switch (type) {
case REACT_CONCURRENT_MODE_TYPE:
return 'ConcurrentMode';
case REACT_FRAGMENT_TYPE:
return 'Fragment';
case REACT_PORTAL_TYPE:
return 'Portal';
case REACT_PROFILER_TYPE:
return 'Profiler';
case REACT_STRICT_MODE_TYPE:
return 'StrictMode';
case REACT_SUSPENSE_TYPE:
return 'Suspense';
}
if (typeof type === 'object') {
switch (type.$$typeof) {
case REACT_CONTEXT_TYPE:
return 'Context.Consumer';
case REACT_PROVIDER_TYPE:
return 'Context.Provider';
case REACT_FORWARD_REF_TYPE:
return getWrappedName(type, type.render, 'ForwardRef');
case REACT_MEMO_TYPE:
return getComponentName(type.type);
case REACT_LAZY_TYPE:
{
var thenable = type;
var resolvedThenable = refineResolvedLazyComponent(thenable);
if (resolvedThenable) {
return getComponentName(resolvedThenable);
}
}
}
}
return null;
}
var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
function describeFiber(fiber) {
switch (fiber.tag) {
case HostRoot:
case HostPortal:
case HostText:
case Fragment:
case ContextProvider:
case ContextConsumer:
return '';
default:
var owner = fiber._debugOwner;
var source = fiber._debugSource;
var name = getComponentName(fiber.type);
var ownerName = null;
if (owner) {
ownerName = getComponentName(owner.type);
}
return describeComponentFrame(name, source, ownerName);
}
}
function getStackByFiberInDevAndProd(workInProgress) {
var info = '';
var node = workInProgress;
do {
info += describeFiber(node);
node = node.return;
} while (node);
return info;
}
var current = null;
var phase = null;
function getCurrentFiberOwnerNameInDevOrNull() {
{
if (current === null) {
return null;
}
var owner = current._debugOwner;
if (owner !== null && typeof owner !== 'undefined') {
return getComponentName(owner.type);
}
}
return null;
}
function getCurrentFiberStackInDev() {
{
if (current === null) {
return '';
}
// Safe because if current fiber exists, we are reconciling,
// and it is guaranteed to be the work-in-progress version.
return getStackByFiberInDevAndProd(current);
}
return '';
}
function resetCurrentFiber() {
{
ReactDebugCurrentFrame.getCurrentStack = null;
current = null;
phase = null;
}
}
function setCurrentFiber(fiber) {
{
ReactDebugCurrentFrame.getCurrentStack = getCurrentFiberStackInDev;
current = fiber;
phase = null;
}
}
function setCurrentPhase(lifeCyclePhase) {
{
phase = lifeCyclePhase;
}
}
/**
* Similar to invariant but only logs a warning if the condition is not met.
* This can be used to log issues in development environments in critical
* paths. Removing the logging code for production environments will keep the
* same logic and follow the same code paths.
*/
var warning = warningWithoutStack$1;
{
warning = function (condition, format) {
if (condition) {
return;
}
var ReactDebugCurrentFrame = ReactSharedInternals.ReactDebugCurrentFrame;
var stack = ReactDebugCurrentFrame.getStackAddendum();
// eslint-disable-next-line react-internal/warning-and-invariant-args
for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
args[_key - 2] = arguments[_key];
}
warningWithoutStack$1.apply(undefined, [false, format + '%s'].concat(args, [stack]));
};
}
var warning$1 = warning;
// A reserved attribute.
// It is handled by React separately and shouldn't be written to the DOM.
var RESERVED = 0;
// A simple string attribute.
// Attributes that aren't in the whitelist are presumed to have this type.
var STRING = 1;
// A string attribute that accepts booleans in React. In HTML, these are called
// "enumerated" attributes with "true" and "false" as possible values.
// When true, it should be set to a "true" string.
// When false, it should be set to a "false" string.
var BOOLEANISH_STRING = 2;
// A real boolean attribute.
// When true, it should be present (set either to an empty string or its name).
// When false, it should be omitted.
var BOOLEAN = 3;
// An attribute that can be used as a flag as well as with a value.
// When true, it should be present (set either to an empty string or its name).
// When false, it should be omitted.
// For any other value, should be present with that value.
var OVERLOADED_BOOLEAN = 4;
// An attribute that must be numeric or parse as a numeric.
// When falsy, it should be removed.
var NUMERIC = 5;
// An attribute that must be positive numeric or parse as a positive numeric.
// When falsy, it should be removed.
var POSITIVE_NUMERIC = 6;
/* eslint-disable max-len */
var ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD';
/* eslint-enable max-len */
var ATTRIBUTE_NAME_CHAR = ATTRIBUTE_NAME_START_CHAR + '\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040';
var ROOT_ATTRIBUTE_NAME = 'data-reactroot';
var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + ATTRIBUTE_NAME_START_CHAR + '][' + ATTRIBUTE_NAME_CHAR + ']*$');
var hasOwnProperty = Object.prototype.hasOwnProperty;
var illegalAttributeNameCache = {};
var validatedAttributeNameCache = {};
function isAttributeNameSafe(attributeName) {
if (hasOwnProperty.call(validatedAttributeNameCache, attributeName)) {
return true;
}
if (hasOwnProperty.call(illegalAttributeNameCache, attributeName)) {
return false;
}
if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {
validatedAttributeNameCache[attributeName] = true;
return true;
}
illegalAttributeNameCache[attributeName] = true;
{
warning$1(false, 'Invalid attribute name: `%s`', attributeName);
}
return false;
}
function shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {
if (propertyInfo !== null) {
return propertyInfo.type === RESERVED;
}
if (isCustomComponentTag) {
return false;
}
if (name.length > 2 && (name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) {
return true;
}
return false;
}
function shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag) {
if (propertyInfo !== null && propertyInfo.type === RESERVED) {
return false;
}
switch (typeof value) {
case 'function':
// $FlowIssue symbol is perfectly valid here
case 'symbol':
// eslint-disable-line
return true;
case 'boolean':
{
if (isCustomComponentTag) {
return false;
}
if (propertyInfo !== null) {
return !propertyInfo.acceptsBooleans;
} else {
var prefix = name.toLowerCase().slice(0, 5);
return prefix !== 'data-' && prefix !== 'aria-';
}
}
default:
return false;
}
}
function shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag) {
if (value === null || typeof value === 'undefined') {
return true;
}
if (shouldRemoveAttributeWithWarning(name, value, propertyInfo, isCustomComponentTag)) {
return true;
}
if (isCustomComponentTag) {
return false;
}
if (propertyInfo !== null) {
switch (propertyInfo.type) {
case BOOLEAN:
return !value;
case OVERLOADED_BOOLEAN:
return value === false;
case NUMERIC:
return isNaN(value);
case POSITIVE_NUMERIC:
return isNaN(value) || value < 1;
}
}
return false;
}
function getPropertyInfo(name) {
return properties.hasOwnProperty(name) ? properties[name] : null;
}
function PropertyInfoRecord(name, type, mustUseProperty, attributeName, attributeNamespace) {
this.acceptsBooleans = type === BOOLEANISH_STRING || type === BOOLEAN || type === OVERLOADED_BOOLEAN;
this.attributeName = attributeName;
this.attributeNamespace = attributeNamespace;
this.mustUseProperty = mustUseProperty;
this.propertyName = name;
this.type = type;
}
// When adding attributes to this list, be sure to also add them to
// the `possibleStandardNames` module to ensure casing and incorrect
// name warnings.
var properties = {};
// These props are reserved by React. They shouldn't be written to the DOM.
['children', 'dangerouslySetInnerHTML',
// TODO: This prevents the assignment of defaultValue to regular
// elements (not just inputs). Now that ReactDOMInput assigns to the
// defaultValue property -- do we need this?
'defaultValue', 'defaultChecked', 'innerHTML', 'suppressContentEditableWarning', 'suppressHydrationWarning', 'style'].forEach(function (name) {
properties[name] = new PropertyInfoRecord(name, RESERVED, false, // mustUseProperty
name, // attributeName
null);
} // attributeNamespace
);
// A few React string attributes have a different name.
// This is a mapping from React prop names to the attribute names.
[['acceptCharset', 'accept-charset'], ['className', 'class'], ['htmlFor', 'for'], ['httpEquiv', 'http-equiv']].forEach(function (_ref) {
var name = _ref[0],
attributeName = _ref[1];
properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty
attributeName, // attributeName
null);
} // attributeNamespace
);
// These are "enumerated" HTML attributes that accept "true" and "false".
// In React, we let users pass `true` and `false` even though technically
// these aren't boolean attributes (they are coerced to strings).
['contentEditable', 'draggable', 'spellCheck', 'value'].forEach(function (name) {
properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty
name.toLowerCase(), // attributeName
null);
} // attributeNamespace
);
// These are "enumerated" SVG attributes that accept "true" and "false".
// In React, we let users pass `true` and `false` even though technically
// these aren't boolean attributes (they are coerced to strings).
// Since these are SVG attributes, their attribute names are case-sensitive.
['autoReverse', 'externalResourcesRequired', 'focusable', 'preserveAlpha'].forEach(function (name) {
properties[name] = new PropertyInfoRecord(name, BOOLEANISH_STRING, false, // mustUseProperty
name, // attributeName
null);
} // attributeNamespace
);
// These are HTML boolean attributes.
['allowFullScreen', 'async',
// Note: there is a special case that prevents it from being written to the DOM
// on the client side because the browsers are inconsistent. Instead we call focus().
'autoFocus', 'autoPlay', 'controls', 'default', 'defer', 'disabled', 'formNoValidate', 'hidden', 'loop', 'noModule', 'noValidate', 'open', 'playsInline', 'readOnly', 'required', 'reversed', 'scoped', 'seamless',
// Microdata
'itemScope'].forEach(function (name) {
properties[name] = new PropertyInfoRecord(name, BOOLEAN, false, // mustUseProperty
name.toLowerCase(), // attributeName
null);
} // attributeNamespace
);
// These are the few React props that we set as DOM properties
// rather than attributes. These are all booleans.
['checked',
// Note: `option.selected` is not updated if `select.multiple` is
// disabled with `removeAttribute`. We have special logic for handling this.
'multiple', 'muted', 'selected'].forEach(function (name) {
properties[name] = new PropertyInfoRecord(name, BOOLEAN, true, // mustUseProperty
name, // attributeName
null);
} // attributeNamespace
);
// These are HTML attributes that are "overloaded booleans": they behave like
// booleans, but can also accept a string value.
['capture', 'download'].forEach(function (name) {
properties[name] = new PropertyInfoRecord(name, OVERLOADED_BOOLEAN, false, // mustUseProperty
name, // attributeName
null);
} // attributeNamespace
);
// These are HTML attributes that must be positive numbers.
['cols', 'rows', 'size', 'span'].forEach(function (name) {
properties[name] = new PropertyInfoRecord(name, POSITIVE_NUMERIC, false, // mustUseProperty
name, // attributeName
null);
} // attributeNamespace
);
// These are HTML attributes that must be numbers.
['rowSpan', 'start'].forEach(function (name) {
properties[name] = new PropertyInfoRecord(name, NUMERIC, false, // mustUseProperty
name.toLowerCase(), // attributeName
null);
} // attributeNamespace
);
var CAMELIZE = /[\-\:]([a-z])/g;
var capitalize = function (token) {
return token[1].toUpperCase();
};
// This is a list of all SVG attributes that need special casing, namespacing,
// or boolean value assignment. Regular attributes that just accept strings
// and have the same names are omitted, just like in the HTML whitelist.
// Some of these attributes can be hard to find. This list was created by
// scrapping the MDN documentation.
['accent-height', 'alignment-baseline', 'arabic-form', 'baseline-shift', 'cap-height', 'clip-path', 'clip-rule', 'color-interpolation', 'color-interpolation-filters', 'color-profile', 'color-rendering', 'dominant-baseline', 'enable-background', 'fill-opacity', 'fill-rule', 'flood-color', 'flood-opacity', 'font-family', 'font-size', 'font-size-adjust', 'font-stretch', 'font-style', 'font-variant', 'font-weight', 'glyph-name', 'glyph-orientation-horizontal', 'glyph-orientation-vertical', 'horiz-adv-x', 'horiz-origin-x', 'image-rendering', 'letter-spacing', 'lighting-color', 'marker-end', 'marker-mid', 'marker-start', 'overline-position', 'overline-thickness', 'paint-order', 'panose-1', 'pointer-events', 'rendering-intent', 'shape-rendering', 'stop-color', 'stop-opacity', 'strikethrough-position', 'strikethrough-thickness', 'stroke-dasharray', 'stroke-dashoffset', 'stroke-linecap', 'stroke-linejoin', 'stroke-miterlimit', 'stroke-opacity', 'stroke-width', 'text-anchor', 'text-decoration', 'text-rendering', 'underline-position', 'underline-thickness', 'unicode-bidi', 'unicode-range', 'units-per-em', 'v-alphabetic', 'v-hanging', 'v-ideographic', 'v-mathematical', 'vector-effect', 'vert-adv-y', 'vert-origin-x', 'vert-origin-y', 'word-spacing', 'writing-mode', 'xmlns:xlink', 'x-height'].forEach(function (attributeName) {
var name = attributeName.replace(CAMELIZE, capitalize);
properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty
attributeName, null);
} // attributeNamespace
);
// String SVG attributes with the xlink namespace.
['xlink:actuate', 'xlink:arcrole', 'xlink:href', 'xlink:role', 'xlink:show', 'xlink:title', 'xlink:type'].forEach(function (attributeName) {
var name = attributeName.replace(CAMELIZE, capitalize);
properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty
attributeName, 'http://www.w3.org/1999/xlink');
});
// String SVG attributes with the xml namespace.
['xml:base', 'xml:lang', 'xml:space'].forEach(function (attributeName) {
var name = attributeName.replace(CAMELIZE, capitalize);
properties[name] = new PropertyInfoRecord(name, STRING, false, // mustUseProperty
attributeName, 'http://www.w3.org/XML/1998/namespace');
});
// These attribute exists both in HTML and SVG.
// The attribute name is case-sensitive in SVG so we can't just use
// the React name like we do for attributes that exist only in HTML.
['tabIndex', 'crossOrigin'].forEach(function (attributeName) {
properties[attributeName] = new PropertyInfoRecord(attributeName, STRING, false, // mustUseProperty
attributeName.toLowerCase(), // attributeName
null);
} // attributeNamespace
);
/**
* Get the value for a property on a node. Only used in DEV for SSR validation.
* The "expected" argument is used as a hint of what the expected value is.
* Some properties have multiple equivalent values.
*/
function getValueForProperty(node, name, expected, propertyInfo) {
{
if (propertyInfo.mustUseProperty) {
var propertyName = propertyInfo.propertyName;
return node[propertyName];
} else {
var attributeName = propertyInfo.attributeName;
var stringValue = null;
if (propertyInfo.type === OVERLOADED_BOOLEAN) {
if (node.hasAttribute(attributeName)) {
var value = node.getAttribute(attributeName);
if (value === '') {
return true;
}
if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {
return value;
}
if (value === '' + expected) {
return expected;
}
return value;
}
} else if (node.hasAttribute(attributeName)) {
if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {
// We had an attribute but shouldn't have had one, so read it
// for the error message.
return node.getAttribute(attributeName);
}
if (propertyInfo.type === BOOLEAN) {
// If this was a boolean, it doesn't matter what the value is
// the fact that we have it is the same as the expected.
return expected;
}
// Even if this property uses a namespace we use getAttribute
// because we assume its namespaced name is the same as our config.
// To use getAttributeNS we need the local name which we don't have
// in our config atm.
stringValue = node.getAttribute(attributeName);
}
if (shouldRemoveAttribute(name, expected, propertyInfo, false)) {
return stringValue === null ? expected : stringValue;
} else if (stringValue === '' + expected) {
return expected;
} else {
return stringValue;
}
}
}
}
/**
* Get the value for a attribute on a node. Only used in DEV for SSR validation.
* The third argument is used as a hint of what the expected value is. Some
* attributes have multiple equivalent values.
*/
function getValueForAttribute(node, name, expected) {
{
if (!isAttributeNameSafe(name)) {
return;
}
if (!node.hasAttribute(name)) {
return expected === undefined ? undefined : null;
}
var value = node.getAttribute(name);
if (value === '' + expected) {
return expected;
}
return value;
}
}
/**
* Sets the value for a property on a node.
*
* @param {DOMElement} node
* @param {string} name
* @param {*} value
*/
function setValueForProperty(node, name, value, isCustomComponentTag) {
var propertyInfo = getPropertyInfo(name);
if (shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag)) {
return;
}
if (shouldRemoveAttribute(name, value, propertyInfo, isCustomComponentTag)) {
value = null;
}
// If the prop isn't in the special list, treat it as a simple attribute.
if (isCustomComponentTag || propertyInfo === null) {
if (isAttributeNameSafe(name)) {
var _attributeName = name;
if (value === null) {
node.removeAttribute(_attributeName);
} else {
node.setAttribute(_attributeName, '' + value);
}
}
return;
}
var mustUseProperty = propertyInfo.mustUseProperty;
if (mustUseProperty) {
var propertyName = propertyInfo.propertyName;
if (value === null) {
var type = propertyInfo.type;
node[propertyName] = type === BOOLEAN ? false : '';
} else {
// Contrary to `setAttribute`, object properties are properly
// `toString`ed by IE8/9.
node[propertyName] = value;
}
return;
}
// The rest are treated as attributes with special cases.
var attributeName = propertyInfo.attributeName,
attributeNamespace = propertyInfo.attributeNamespace;
if (value === null) {
node.removeAttribute(attributeName);
} else {
var _type = propertyInfo.type;
var attributeValue = void 0;
if (_type === BOOLEAN || _type === OVERLOADED_BOOLEAN && value === true) {
attributeValue = '';
} else {
// `setAttribute` with objects becomes only `[object]` in IE8/9,
// ('' + value) makes it output the correct toString()-value.
attributeValue = '' + value;
}
if (attributeNamespace) {
node.setAttributeNS(attributeNamespace, attributeName, attributeValue);
} else {
node.setAttribute(attributeName, attributeValue);
}
}
}
// Flow does not allow string concatenation of most non-string types. To work
// around this limitation, we use an opaque type that can only be obtained by
// passing the value through getToStringValue first.
function toString(value) {
return '' + value;
}
function getToStringValue(value) {
switch (typeof value) {
case 'boolean':
case 'number':
case 'object':
case 'string':
case 'undefined':
return value;
default:
// function, symbol are assigned as empty strings
return '';
}
}
var ReactDebugCurrentFrame$1 = null;
var ReactControlledValuePropTypes = {
checkPropTypes: null
};
{
ReactDebugCurrentFrame$1 = ReactSharedInternals.ReactDebugCurrentFrame;
var hasReadOnlyValue = {
button: true,
checkbox: true,
image: true,
hidden: true,
radio: true,
reset: true,
submit: true
};
var propTypes = {
value: function (props, propName, componentName) {
if (hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled || props[propName] == null) {
return null;
}
return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');
},
checked: function (props, propName, componentName) {
if (props.onChange || props.readOnly || props.disabled || props[propName] == null) {
return null;
}
return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');
}
};
/**
* Provide a linked `value` attribute for controlled forms. You should not use
* this outside of the ReactDOM controlled form components.
*/
ReactControlledValuePropTypes.checkPropTypes = function (tagName, props) {
checkPropTypes(propTypes, props, 'prop', tagName, ReactDebugCurrentFrame$1.getStackAddendum);
};
}
var enableUserTimingAPI = true;
// Helps identify side effects in begin-phase lifecycle hooks and setState reducers:
var debugRenderPhaseSideEffects = false;
// In some cases, StrictMode should also double-render lifecycles.
// This can be confusing for tests though,
// And it can be bad for performance in production.
// This feature flag can be used to control the behavior:
var debugRenderPhaseSideEffectsForStrictMode = true;
// To preserve the "Pause on caught exceptions" behavior of the debugger, we
// replay the begin phase of a failed component inside invokeGuardedCallback.
var replayFailedUnitOfWorkWithInvokeGuardedCallback = true;
// Warn about deprecated, async-unsafe lifecycles; relates to RFC #6:
var warnAboutDeprecatedLifecycles = false;
// Gather advanced timing metrics for Profiler subtrees.
var enableProfilerTimer = true;
// Trace which interactions trigger each commit.
var enableSchedulerTracing = true;
// Only used in www builds.
var enableSuspenseServerRenderer = false; // TODO: true? Here it might just be false.
// Only used in www builds.
// Only used in www builds.
// React Fire: prevent the value and checked attributes from syncing
// with their related DOM properties
var disableInputAttributeSyncing = false;
// These APIs will no longer be "unstable" in the upcoming 16.7 release,
// Control this behavior with a flag to support 16.6 minor releases in the meanwhile.
var enableStableConcurrentModeAPIs = false;
var warnAboutShorthandPropertyCollision = false;
// TODO: direct imports like some-package/src/* are bad. Fix me.
var didWarnValueDefaultValue = false;
var didWarnCheckedDefaultChecked = false;
var didWarnControlledToUncontrolled = false;
var didWarnUncontrolledToControlled = false;
function isControlled(props) {
var usesChecked = props.type === 'checkbox' || props.type === 'radio';
return usesChecked ? props.checked != null : props.value != null;
}
/**
* Implements an <input> host component that allows setting these optional
* props: `checked`, `value`, `defaultChecked`, and `defaultValue`.
*
* If `checked` or `value` are not supplied (or null/undefined), user actions
* that affect the checked state or value will trigger updates to the element.
*
* If they are supplied (and not null/undefined), the rendered element will not
* trigger updates to the element. Instead, the props must change in order for
* the rendered element to be updated.
*
* The rendered element will be initialized as unchecked (or `defaultChecked`)
* with an empty value (or `defaultValue`).
*
* See http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html
*/
function getHostProps(element, props) {
var node = element;
var checked = props.checked;
var hostProps = _assign({}, props, {
defaultChecked: undefined,
defaultValue: undefined,
value: undefined,
checked: checked != null ? checked : node._wrapperState.initialChecked
});
return hostProps;
}
function initWrapperState(element, props) {
{
ReactControlledValuePropTypes.checkPropTypes('input', props);
if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {
warning$1(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);
didWarnCheckedDefaultChecked = true;
}
if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {
warning$1(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerNameInDevOrNull() || 'A component', props.type);
didWarnValueDefaultValue = true;
}
}
var node = element;
var defaultValue = props.defaultValue == null ? '' : props.defaultValue;
node._wrapperState = {
initialChecked: props.checked != null ? props.checked : props.defaultChecked,
initialValue: getToStringValue(props.value != null ? props.value : defaultValue),
controlled: isControlled(props)
};
}
function updateChecked(element, props) {
var node = element;
var checked = props.checked;
if (checked != null) {
setValueForProperty(node, 'checked', checked, false);
}
}
function updateWrapper(element, props) {
var node = element;
{
var _controlled = isControlled(props);
if (!node._wrapperState.controlled && _controlled && !didWarnUncontrolledToControlled) {
warning$1(false, 'A component is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', props.type);
didWarnUncontrolledToControlled = true;
}
if (node._wrapperState.controlled && !_controlled && !didWarnControlledToUncontrolled) {
warning$1(false, 'A component is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components', props.type);
didWarnControlledToUncontrolled = true;
}
}
updateChecked(element, props);
var value = getToStringValue(props.value);
var type = props.type;
if (value != null) {
if (type === 'number') {
if (value === 0 && node.value === '' ||
// We explicitly want to coerce to number here if possible.
// eslint-disable-next-line
node.value != value) {
node.value = toString(value);
}
} else if (node.value !== toString(value)) {
node.value = toString(value);
}
} else if (type === 'submit' || type === 'reset') {
// Submit/reset inputs need the attribute removed completely to avoid
// blank-text buttons.
node.removeAttribute('value');
return;
}
if (disableInputAttributeSyncing) {
// When not syncing the value attribute, React only assigns a new value
// whenever the defaultValue React prop has changed. When not present,
// React does nothing
if (props.hasOwnProperty('defaultValue')) {
setDefaultValue(node, props.type, getToStringValue(props.defaultValue));
}
} else {
// When syncing the value attribute, the value comes from a cascade of
// properties:
// 1. The value React property
// 2. The defaultValue React property
// 3. Otherwise there should be no change
if (props.hasOwnProperty('value')) {
setDefaultValue(node, props.type, value);
} else if (props.hasOwnProperty('defaultValue')) {
setDefaultValue(node, props.type, getToStringValue(props.defaultValue));
}
}
if (disableInputAttributeSyncing) {
// When not syncing the checked attribute, the attribute is directly
// controllable from the defaultValue React property. It needs to be
// updated as new props come in.
if (props.defaultChecked == null) {
node.removeAttribute('checked');
} else {
node.defaultChecked = !!props.defaultChecked;
}
} else {
// When syncing the checked attribute, it only changes when it needs
// to be removed, such as transitioning from a checkbox into a text input
if (props.checked == null && props.defaultChecked != null) {
node.defaultChecked = !!props.defaultChecked;
}
}
}
function postMountWrapper(element, props, isHydrating) {
var node = element;
// Do not assign value if it is already set. This prevents user text input
// from being lost during SSR hydration.
if (props.hasOwnProperty('value') || props.hasOwnProperty('defaultValue')) {
var type = props.type;
var isButton = type === 'submit' || type === 'reset';
// Avoid setting value attribute on submit/reset inputs as it overrides the
// default value provided by the browser. See: #12872
if (isButton && (props.value === undefined || props.value === null)) {
return;
}
var _initialValue = toString(node._wrapperState.initialValue);
// Do not assign value if it is already set. This prevents user text input
// from being lost during SSR hydration.
if (!isHydrating) {
if (disableInputAttributeSyncing) {
var value = getToStringValue(props.value);
// When not syncing the value attribute, the value property points
// directly to the React prop. Only assign it if it exists.
if (value != null) {
// Always assign on buttons so that it is possible to assign an
// empty string to clear button text.
//
// Otherwise, do not re-assign the value property if is empty. This
// potentially avoids a DOM write and prevents Firefox (~60.0.1) from
// prematurely marking required inputs as invalid. Equality is compared
// to the current value in case the browser provided value is not an
// empty string.
if (isButton || value !== node.value) {
node.value = toString(value);
}
}
} else {
// When syncing the value attribute, the value property should use
// the wrapperState._initialValue property. This uses:
//
// 1. The value React property when present
// 2. The defaultValue React property when present
// 3. An empty string
if (_initialValue !== node.value) {
node.value = _initialValue;
}
}
}
if (disableInputAttributeSyncing) {
// When not syncing the value attribute, assign the value attribute
// directly from the defaultValue React property (when present)
var defaultValue = getToStringValue(props.defaultValue);
if (defaultValue != null) {
node.defaultValue = toString(defaultValue);
}
} else {
// Otherwise, the value attribute is synchronized to the property,
// so we assign defaultValue to the same thing as the value property
// assignment step above.
node.defaultValue = _initialValue;
}
}
// Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug
// this is needed to work around a chrome bug where setting defaultChecked
// will sometimes influence the value of checked (even after detachment).
// Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416
// We need to temporarily unset name to avoid disrupting radio button groups.
var name = node.name;
if (name !== '') {
node.name = '';
}
if (disableInputAttributeSyncing) {
// When not syncing the checked attribute, the checked property
// never gets assigned. It must be manually set. We don't want
// to do this when hydrating so that existing user input isn't
// modified
if (!isHydrating) {
updateChecked(element, props);
}
// Only assign the checked attribute if it is defined. This saves
// a DOM write when controlling the checked attribute isn't needed
// (text inputs, submit/reset)
if (props.hasOwnProperty('defaultChecked')) {
node.defaultChecked = !node.defaultChecked;
node.defaultChecked = !!props.defaultChecked;
}
} else {
// When syncing the checked attribute, both the checked property and
// attribute are assigned at the same time using defaultChecked. This uses:
//
// 1. The checked React property when present
// 2. The defaultChecked React property when present
// 3. Otherwise, false
node.defaultChecked = !node.defaultChecked;
node.defaultChecked = !!node._wrapperState.initialChecked;
}
if (name !== '') {
node.name = name;
}
}
function restoreControlledState(element, props) {
var node = element;
updateWrapper(node, props);
updateNamedCousins(node, props);
}
function updateNamedCousins(rootNode, props) {
var name = props.name;
if (props.type === 'radio' && name != null) {
var queryRoot = rootNode;
while (queryRoot.parentNode) {
queryRoot = queryRoot.parentNode;
}
// If `rootNode.form` was non-null, then we could try `form.elements`,
// but that sometimes behaves strangely in IE8. We could also try using
// `form.getElementsByName`, but that will only return direct children
// and won't include inputs that use the HTML5 `form=` attribute. Since
// the input might not even be in a form. It might not even be in the
// document. Let's just use the local `querySelectorAll` to ensure we don't
// miss anything.
var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type="radio"]');
for (var i = 0; i < group.length; i++) {
var otherNode = group[i];
if (otherNode === rootNode || otherNode.form !== rootNode.form) {
continue;
}
// This will throw if radio buttons rendered by different copies of React
// and the same name are rendered into the same form (same as #1939).
// That's probably okay; we don't support it just as we don't support
// mixing React radio buttons with non-React ones.
var otherProps = getFiberCurrentPropsFromNode$1(otherNode);
!otherProps ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : void 0;
// We need update the tracked value on the named cousin since the value
// was changed but the input saw no event or value set
updateValueIfChanged(otherNode);
// If this is a controlled radio button group, forcing the input that
// was previously checked to update will cause it to be come re-checked
// as appropriate.
updateWrapper(otherNode, otherProps);
}
}
}
// In Chrome, assigning defaultValue to certain input types triggers input validation.
// For number inputs, the display value loses trailing decimal points. For email inputs,
// Chrome raises "The specified value <x> is not a valid email address".
//
// Here we check to see if the defaultValue has actually changed, avoiding these problems
// when the user is inputting text
//
// https://github.com/facebook/react/issues/7253
function setDefaultValue(node, type, value) {
if (
// Focused number inputs synchronize on blur. See ChangeEventPlugin.js
type !== 'number' || node.ownerDocument.activeElement !== node) {
if (value == null) {
node.defaultValue = toString(node._wrapperState.initialValue);
} else if (node.defaultValue !== toString(value)) {
node.defaultValue = toString(value);
}
}
}
var eventTypes$1 = {
change: {
phasedRegistrationNames: {
bubbled: 'onChange',
captured: 'onChangeCapture'
},
dependencies: [TOP_BLUR, TOP_CHANGE, TOP_CLICK, TOP_FOCUS, TOP_INPUT, TOP_KEY_DOWN, TOP_KEY_UP, TOP_SELECTION_CHANGE]
}
};
function createAndAccumulateChangeEvent(inst, nativeEvent, target) {
var event = SyntheticEvent.getPooled(eventTypes$1.change, inst, nativeEvent, target);
event.type = 'change';
// Flag this event loop as needing state restore.
enqueueStateRestore(target);
accumulateTwoPhaseDispatches(event);
return event;
}
/**
* For IE shims
*/
var activeElement = null;
var activeElementInst = null;
/**
* SECTION: handle `change` event
*/
function shouldUseChangeEvent(elem) {
var nodeName = elem.nodeName && elem.nodeName.toLowerCase();
return nodeName === 'select' || nodeName === 'input' && elem.type === 'file';
}
function manualDispatchChangeEvent(nativeEvent) {
var event = createAndAccumulateChangeEvent(activeElementInst, nativeEvent, getEventTarget(nativeEvent));
// If change and propertychange bubbled, we'd just bind to it like all the
// other events and have it go through ReactBrowserEventEmitter. Since it
// doesn't, we manually listen for the events and so we have to enqueue and
// process the abstract event manually.
//
// Batching is necessary here in order to ensure that all event handlers run
// before the next rerender (including event handlers attached to ancestor
// elements instead of directly on the input). Without this, controlled
// components don't work properly in conjunction with event bubbling because
// the component is rerendered and the value reverted before all the event
// handlers can run. See https://github.com/facebook/react/issues/708.
batchedUpdates(runEventInBatch, event);
}
function runEventInBatch(event) {
runEventsInBatch(event);
}
function getInstIfValueChanged(targetInst) {
var targetNode = getNodeFromInstance$1(targetInst);
if (updateValueIfChanged(targetNode)) {
return targetInst;
}
}
function getTargetInstForChangeEvent(topLevelType, targetInst) {
if (topLevelType === TOP_CHANGE) {
return targetInst;
}
}
/**
* SECTION: handle `input` event
*/
var isInputEventSupported = false;
if (canUseDOM) {
// IE9 claims to support the input event but fails to trigger it when
// deleting text, so we ignore its input events.
isInputEventSupported = isEventSupported('input') && (!document.documentMode || document.documentMode > 9);
}
/**
* (For IE <=9) Starts tracking propertychange events on the passed-in element
* and override the value property so that we can distinguish user events from
* value changes in JS.
*/
function startWatchingForValueChange(target, targetInst) {
activeElement = target;
activeElementInst = targetInst;
activeElement.attachEvent('onpropertychange', handlePropertyChange);
}
/**
* (For IE <=9) Removes the event listeners from the currently-tracked element,
* if any exists.
*/
function stopWatchingForValueChange() {
if (!activeElement) {
return;
}
activeElement.detachEvent('onpropertychange', handlePropertyChange);
activeElement = null;
activeElementInst = null;
}
/**
* (For IE <=9) Handles a propertychange event, sending a `change` event if
* the value of the active element has changed.
*/
function handlePropertyChange(nativeEvent) {
if (nativeEvent.propertyName !== 'value') {
return;
}
if (getInstIfValueChanged(activeElementInst)) {
manualDispatchChangeEvent(nativeEvent);
}
}
function handleEventsForInputEventPolyfill(topLevelType, target, targetInst) {
if (topLevelType === TOP_FOCUS) {
// In IE9, propertychange fires for most input events but is buggy and
// doesn't fire when text is deleted, but conveniently, selectionchange
// appears to fire in all of the remaining cases so we catch those and
// forward the event if the value has changed
// In either case, we don't want to call the event handler if the value
// is changed from JS so we redefine a setter for `.value` that updates
// our activeElementValue variable, allowing us to ignore those changes
//
// stopWatching() should be a noop here but we call it just in case we
// missed a blur event somehow.
stopWatchingForValueChange();
startWatchingForValueChange(target, targetInst);
} else if (topLevelType === TOP_BLUR) {
stopWatchingForValueChange();
}
}
// For IE8 and IE9.
function getTargetInstForInputEventPolyfill(topLevelType, targetInst) {
if (topLevelType === TOP_SELECTION_CHANGE || topLevelType === TOP_KEY_UP || topLevelType === TOP_KEY_DOWN) {
// On the selectionchange event, the target is just document which isn't
// helpful for us so just check activeElement instead.
//
// 99% of the time, keydown and keyup aren't necessary. IE8 fails to fire
// propertychange on the first input event after setting `value` from a
// script and fires only keydown, keypress, keyup. Catching keyup usually
// gets it and catching keydown lets us fire an event for the first
// keystroke if user does a key repeat (it'll be a little delayed: right
// before the second keystroke). Other input methods (e.g., paste) seem to
// fire selectionchange normally.
return getInstIfValueChanged(activeElementInst);
}
}
/**
* SECTION: handle `click` event
*/
function shouldUseClickEvent(elem) {
// Use the `click` event to detect changes to checkbox and radio inputs.
// This approach works across all browsers, whereas `change` does not fire
// until `blur` in IE8.
var nodeName = elem.nodeName;
return nodeName && nodeName.toLowerCase() === 'input' && (elem.type === 'checkbox' || elem.type === 'radio');
}
function getTargetInstForClickEvent(topLevelType, targetInst) {
if (topLevelType === TOP_CLICK) {
return getInstIfValueChanged(targetInst);
}
}
function getTargetInstForInputOrChangeEvent(topLevelType, targetInst) {
if (topLevelType === TOP_INPUT || topLevelType === TOP_CHANGE) {
return getInstIfValueChanged(targetInst);
}
}
function handleControlledInputBlur(node) {
var state = node._wrapperState;
if (!state || !state.controlled || node.type !== 'number') {
return;
}
if (!disableInputAttributeSyncing) {
// If controlled, assign the value attribute to the current value on blur
setDefaultValue(node, 'number', node.value);
}
}
/**
* This plugin creates an `onChange` event that normalizes change events
* across form elements. This event fires at a time when it's possible to
* change the element's value without seeing a flicker.
*
* Supported elements are:
* - input (see `isTextInputElement`)
* - textarea
* - select
*/
var ChangeEventPlugin = {
eventTypes: eventTypes$1,
_isInputEventSupported: isInputEventSupported,
extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
var targetNode = targetInst ? getNodeFromInstance$1(targetInst) : window;
var getTargetInstFunc = void 0,
handleEventFunc = void 0;
if (shouldUseChangeEvent(targetNode)) {
getTargetInstFunc = getTargetInstForChangeEvent;
} else if (isTextInputElement(targetNode)) {
if (isInputEventSupported) {
getTargetInstFunc = getTargetInstForInputOrChangeEvent;
} else {
getTargetInstFunc = getTargetInstForInputEventPolyfill;
handleEventFunc = handleEventsForInputEventPolyfill;
}
} else if (shouldUseClickEvent(targetNode)) {
getTargetInstFunc = getTargetInstForClickEvent;
}
if (getTargetInstFunc) {
var inst = getTargetInstFunc(topLevelType, targetInst);
if (inst) {
var event = createAndAccumulateChangeEvent(inst, nativeEvent, nativeEventTarget);
return event;
}
}
if (handleEventFunc) {
handleEventFunc(topLevelType, targetNode, targetInst);
}
// When blurring, set the value attribute for number inputs
if (topLevelType === TOP_BLUR) {
handleControlledInputBlur(targetNode);
}
}
};
/**
* Module that is injectable into `EventPluginHub`, that specifies a
* deterministic ordering of `EventPlugin`s. A convenient way to reason about
* plugins, without having to package every one of them. This is better than
* having plugins be ordered in the same order that they are injected because
* that ordering would be influenced by the packaging order.
* `ResponderEventPlugin` must occur before `SimpleEventPlugin` so that
* preventing default on events is convenient in `SimpleEventPlugin` handlers.
*/
var DOMEventPluginOrder = ['ResponderEventPlugin', 'SimpleEventPlugin', 'EnterLeaveEventPlugin', 'ChangeEventPlugin', 'SelectEventPlugin', 'BeforeInputEventPlugin'];
var SyntheticUIEvent = SyntheticEvent.extend({
view: null,
detail: null
});
var modifierKeyToProp = {
Alt: 'altKey',
Control: 'ctrlKey',
Meta: 'metaKey',
Shift: 'shiftKey'
};
// Older browsers (Safari <= 10, iOS Safari <= 10.2) do not support
// getModifierState. If getModifierState is not supported, we map it to a set of
// modifier keys exposed by the event. In this case, Lock-keys are not supported.
/**
* Translation from modifier key to the associated property in the event.
* @see http://www.w3.org/TR/DOM-Level-3-Events/#keys-Modifiers
*/
function modifierStateGetter(keyArg) {
var syntheticEvent = this;
var nativeEvent = syntheticEvent.nativeEvent;
if (nativeEvent.getModifierState) {
return nativeEvent.getModifierState(keyArg);
}
var keyProp = modifierKeyToProp[keyArg];
return keyProp ? !!nativeEvent[keyProp] : false;
}
function getEventModifierState(nativeEvent) {
return modifierStateGetter;
}
var previousScreenX = 0;
var previousScreenY = 0;
// Use flags to signal movementX/Y has already been set
var isMovementXSet = false;
var isMovementYSet = false;
/**
* @interface MouseEvent
* @see http://www.w3.org/TR/DOM-Level-3-Events/
*/
var SyntheticMouseEvent = SyntheticUIEvent.extend({
screenX: null,
screenY: null,
clientX: null,
clientY: null,
pageX: null,
pageY: null,
ctrlKey: null,
shiftKey: null,
altKey: null,
metaKey: null,
getModifierState: getEventModifierState,
button: null,
buttons: null,
relatedTarget: function (event) {
return event.relatedTarget || (event.fromElement === event.srcElement ? event.toElement : event.fromElement);
},
movementX: function (event) {
if ('movementX' in event) {
return event.movementX;
}
var screenX = previousScreenX;
previousScreenX = event.screenX;
if (!isMovementXSet) {
isMovementXSet = true;
return 0;
}
return event.type === 'mousemove' ? event.screenX - screenX : 0;
},
movementY: function (event) {
if ('movementY' in event) {
return event.movementY;
}
var screenY = previousScreenY;
previousScreenY = event.screenY;
if (!isMovementYSet) {
isMovementYSet = true;
return 0;
}
return event.type === 'mousemove' ? event.screenY - screenY : 0;
}
});
/**
* @interface PointerEvent
* @see http://www.w3.org/TR/pointerevents/
*/
var SyntheticPointerEvent = SyntheticMouseEvent.extend({
pointerId: null,
width: null,
height: null,
pressure: null,
tangentialPressure: null,
tiltX: null,
tiltY: null,
twist: null,
pointerType: null,
isPrimary: null
});
var eventTypes$2 = {
mouseEnter: {
registrationName: 'onMouseEnter',
dependencies: [TOP_MOUSE_OUT, TOP_MOUSE_OVER]
},
mouseLeave: {
registrationName: 'onMouseLeave',
dependencies: [TOP_MOUSE_OUT, TOP_MOUSE_OVER]
},
pointerEnter: {
registrationName: 'onPointerEnter',
dependencies: [TOP_POINTER_OUT, TOP_POINTER_OVER]
},
pointerLeave: {
registrationName: 'onPointerLeave',
dependencies: [TOP_POINTER_OUT, TOP_POINTER_OVER]
}
};
var EnterLeaveEventPlugin = {
eventTypes: eventTypes$2,
/**
* For almost every interaction we care about, there will be both a top-level
* `mouseover` and `mouseout` event that occurs. Only use `mouseout` so that
* we do not extract duplicate events. However, moving the mouse into the
* browser from outside will not fire a `mouseout` event. In this case, we use
* the `mouseover` top-level event.
*/
extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
var isOverEvent = topLevelType === TOP_MOUSE_OVER || topLevelType === TOP_POINTER_OVER;
var isOutEvent = topLevelType === TOP_MOUSE_OUT || topLevelType === TOP_POINTER_OUT;
if (isOverEvent && (nativeEvent.relatedTarget || nativeEvent.fromElement)) {
return null;
}
if (!isOutEvent && !isOverEvent) {
// Must not be a mouse or pointer in or out - ignoring.
return null;
}
var win = void 0;
if (nativeEventTarget.window === nativeEventTarget) {
// `nativeEventTarget` is probably a window object.
win = nativeEventTarget;
} else {
// TODO: Figure out why `ownerDocument` is sometimes undefined in IE8.
var doc = nativeEventTarget.ownerDocument;
if (doc) {
win = doc.defaultView || doc.parentWindow;
} else {
win = window;
}
}
var from = void 0;
var to = void 0;
if (isOutEvent) {
from = targetInst;
var related = nativeEvent.relatedTarget || nativeEvent.toElement;
to = related ? getClosestInstanceFromNode(related) : null;
} else {
// Moving to a node from outside the window.
from = null;
to = targetInst;
}
if (from === to) {
// Nothing pertains to our managed components.
return null;
}
var eventInterface = void 0,
leaveEventType = void 0,
enterEventType = void 0,
eventTypePrefix = void 0;
if (topLevelType === TOP_MOUSE_OUT || topLevelType === TOP_MOUSE_OVER) {
eventInterface = SyntheticMouseEvent;
leaveEventType = eventTypes$2.mouseLeave;
enterEventType = eventTypes$2.mouseEnter;
eventTypePrefix = 'mouse';
} else if (topLevelType === TOP_POINTER_OUT || topLevelType === TOP_POINTER_OVER) {
eventInterface = SyntheticPointerEvent;
leaveEventType = eventTypes$2.pointerLeave;
enterEventType = eventTypes$2.pointerEnter;
eventTypePrefix = 'pointer';
}
var fromNode = from == null ? win : getNodeFromInstance$1(from);
var toNode = to == null ? win : getNodeFromInstance$1(to);
var leave = eventInterface.getPooled(leaveEventType, from, nativeEvent, nativeEventTarget);
leave.type = eventTypePrefix + 'leave';
leave.target = fromNode;
leave.relatedTarget = toNode;
var enter = eventInterface.getPooled(enterEventType, to, nativeEvent, nativeEventTarget);
enter.type = eventTypePrefix + 'enter';
enter.target = toNode;
enter.relatedTarget = fromNode;
accumulateEnterLeaveDispatches(leave, enter, from, to);
return [leave, enter];
}
};
/**
* inlined Object.is polyfill to avoid requiring consumers ship their own
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
*/
function is(x, y) {
return x === y && (x !== 0 || 1 / x === 1 / y) || x !== x && y !== y // eslint-disable-line no-self-compare
;
}
var hasOwnProperty$1 = Object.prototype.hasOwnProperty;
/**
* Performs equality by iterating through keys on an object and returning false
* when any key has values which are not strictly equal between the arguments.
* Returns true when the values of all keys are strictly equal.
*/
function shallowEqual(objA, objB) {
if (is(objA, objB)) {
return true;
}
if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {
return false;
}
var keysA = Object.keys(objA);
var keysB = Object.keys(objB);
if (keysA.length !== keysB.length) {
return false;
}
// Test for A's keys different from B.
for (var i = 0; i < keysA.length; i++) {
if (!hasOwnProperty$1.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {
return false;
}
}
return true;
}
/**
* `ReactInstanceMap` maintains a mapping from a public facing stateful
* instance (key) and the internal representation (value). This allows public
* methods to accept the user facing instance as an argument and map them back
* to internal methods.
*
* Note that this module is currently shared and assumed to be stateless.
* If this becomes an actual Map, that will break.
*/
/**
* This API should be called `delete` but we'd have to make sure to always
* transform these to strings for IE support. When this transform is fully
* supported we can rename it.
*/
function get(key) {
return key._reactInternalFiber;
}
function has(key) {
return key._reactInternalFiber !== undefined;
}
function set(key, value) {
key._reactInternalFiber = value;
}
// Don't change these two values. They're used by React Dev Tools.
var NoEffect = /* */0;
var PerformedWork = /* */1;
// You can change the rest (and add more).
var Placement = /* */2;
var Update = /* */4;
var PlacementAndUpdate = /* */6;
var Deletion = /* */8;
var ContentReset = /* */16;
var Callback = /* */32;
var DidCapture = /* */64;
var Ref = /* */128;
var Snapshot = /* */256;
var Passive = /* */512;
// Passive & Update & Callback & Ref & Snapshot
var LifecycleEffectMask = /* */932;
// Union of all host effects
var HostEffectMask = /* */1023;
var Incomplete = /* */1024;
var ShouldCapture = /* */2048;
var ReactCurrentOwner$1 = ReactSharedInternals.ReactCurrentOwner;
var MOUNTING = 1;
var MOUNTED = 2;
var UNMOUNTED = 3;
function isFiberMountedImpl(fiber) {
var node = fiber;
if (!fiber.alternate) {
// If there is no alternate, this might be a new tree that isn't inserted
// yet. If it is, then it will have a pending insertion effect on it.
if ((node.effectTag & Placement) !== NoEffect) {
return MOUNTING;
}
while (node.return) {
node = node.return;
if ((node.effectTag & Placement) !== NoEffect) {
return MOUNTING;
}
}
} else {
while (node.return) {
node = node.return;
}
}
if (node.tag === HostRoot) {
// TODO: Check if this was a nested HostRoot when used with
// renderContainerIntoSubtree.
return MOUNTED;
}
// If we didn't hit the root, that means that we're in an disconnected tree
// that has been unmounted.
return UNMOUNTED;
}
function isFiberMounted(fiber) {
return isFiberMountedImpl(fiber) === MOUNTED;
}
function isMounted(component) {
{
var owner = ReactCurrentOwner$1.current;
if (owner !== null && owner.tag === ClassComponent) {
var ownerFiber = owner;
var instance = ownerFiber.stateNode;
!instance._warnedAboutRefsInRender ? warningWithoutStack$1(false, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName(ownerFiber.type) || 'A component') : void 0;
instance._warnedAboutRefsInRender = true;
}
}
var fiber = get(component);
if (!fiber) {
return false;
}
return isFiberMountedImpl(fiber) === MOUNTED;
}
function assertIsMounted(fiber) {
!(isFiberMountedImpl(fiber) === MOUNTED) ? invariant(false, 'Unable to find node on an unmounted component.') : void 0;
}
function findCurrentFiberUsingSlowPath(fiber) {
var alternate = fiber.alternate;
if (!alternate) {
// If there is no alternate, then we only need to check if it is mounted.
var state = isFiberMountedImpl(fiber);
!(state !== UNMOUNTED) ? invariant(false, 'Unable to find node on an unmounted component.') : void 0;
if (state === MOUNTING) {
return null;
}
return fiber;
}
// If we have two possible branches, we'll walk backwards up to the root
// to see what path the root points to. On the way we may hit one of the
// special cases and we'll deal with them.
var a = fiber;
var b = alternate;
while (true) {
var parentA = a.return;
var parentB = parentA ? parentA.alternate : null;
if (!parentA || !parentB) {
// We're at the root.
break;
}
// If both copies of the parent fiber point to the same child, we can
// assume that the child is current. This happens when we bailout on low
// priority: the bailed out fiber's child reuses the current child.
if (parentA.child === parentB.child) {
var child = parentA.child;
while (child) {
if (child === a) {
// We've determined that A is the current branch.
assertIsMounted(parentA);
return fiber;
}
if (child === b) {
// We've determined that B is the current branch.
assertIsMounted(parentA);
return alternate;
}
child = child.sibling;
}
// We should never have an alternate for any mounting node. So the only
// way this could possibly happen is if this was unmounted, if at all.
invariant(false, 'Unable to find node on an unmounted component.');
}
if (a.return !== b.return) {
// The return pointer of A and the return pointer of B point to different
// fibers. We assume that return pointers never criss-cross, so A must
// belong to the child set of A.return, and B must belong to the child
// set of B.return.
a = parentA;
b = parentB;
} else {
// The return pointers point to the same fiber. We'll have to use the
// default, slow path: scan the child sets of each parent alternate to see
// which child belongs to which set.
//
// Search parent A's child set
var didFindChild = false;
var _child = parentA.child;
while (_child) {
if (_child === a) {
didFindChild = true;
a = parentA;
b = parentB;
break;
}
if (_child === b) {
didFindChild = true;
b = parentA;
a = parentB;
break;
}
_child = _child.sibling;
}
if (!didFindChild) {
// Search parent B's child set
_child = parentB.child;
while (_child) {
if (_child === a) {
didFindChild = true;
a = parentB;
b = parentA;
break;
}
if (_child === b) {
didFindChild = true;
b = parentB;
a = parentA;
break;
}
_child = _child.sibling;
}
!didFindChild ? invariant(false, 'Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.') : void 0;
}
}
!(a.alternate === b) ? invariant(false, 'Return fibers should always be each others\' alternates. This error is likely caused by a bug in React. Please file an issue.') : void 0;
}
// If the root is not a host container, we're in a disconnected tree. I.e.
// unmounted.
!(a.tag === HostRoot) ? invariant(false, 'Unable to find node on an unmounted component.') : void 0;
if (a.stateNode.current === a) {
// We've determined that A is the current branch.
return fiber;
}
// Otherwise B has to be current branch.
return alternate;
}
function findCurrentHostFiber(parent) {
var currentParent = findCurrentFiberUsingSlowPath(parent);
if (!currentParent) {
return null;
}
// Next we'll drill down this component to find the first HostComponent/Text.
var node = currentParent;
while (true) {
if (node.tag === HostComponent || node.tag === HostText) {
return node;
} else if (node.child) {
node.child.return = node;
node = node.child;
continue;
}
if (node === currentParent) {
return null;
}
while (!node.sibling) {
if (!node.return || node.return === currentParent) {
return null;
}
node = node.return;
}
node.sibling.return = node.return;
node = node.sibling;
}
// Flow needs the return null here, but ESLint complains about it.
// eslint-disable-next-line no-unreachable
return null;
}
function findCurrentHostFiberWithNoPortals(parent) {
var currentParent = findCurrentFiberUsingSlowPath(parent);
if (!currentParent) {
return null;
}
// Next we'll drill down this component to find the first HostComponent/Text.
var node = currentParent;
while (true) {
if (node.tag === HostComponent || node.tag === HostText) {
return node;
} else if (node.child && node.tag !== HostPortal) {
node.child.return = node;
node = node.child;
continue;
}
if (node === currentParent) {
return null;
}
while (!node.sibling) {
if (!node.return || node.return === currentParent) {
return null;
}
node = node.return;
}
node.sibling.return = node.return;
node = node.sibling;
}
// Flow needs the return null here, but ESLint complains about it.
// eslint-disable-next-line no-unreachable
return null;
}
function addEventBubbleListener(element, eventType, listener) {
element.addEventListener(eventType, listener, false);
}
function addEventCaptureListener(element, eventType, listener) {
element.addEventListener(eventType, listener, true);
}
/**
* @interface Event
* @see http://www.w3.org/TR/css3-animations/#AnimationEvent-interface
* @see https://developer.mozilla.org/en-US/docs/Web/API/AnimationEvent
*/
var SyntheticAnimationEvent = SyntheticEvent.extend({
animationName: null,
elapsedTime: null,
pseudoElement: null
});
/**
* @interface Event
* @see http://www.w3.org/TR/clipboard-apis/
*/
var SyntheticClipboardEvent = SyntheticEvent.extend({
clipboardData: function (event) {
return 'clipboardData' in event ? event.clipboardData : window.clipboardData;
}
});
/**
* @interface FocusEvent
* @see http://www.w3.org/TR/DOM-Level-3-Events/
*/
var SyntheticFocusEvent = SyntheticUIEvent.extend({
relatedTarget: null
});
/**
* `charCode` represents the actual "character code" and is safe to use with
* `String.fromCharCode`. As such, only keys that correspond to printable
* characters produce a valid `charCode`, the only exception to this is Enter.
* The Tab-key is considered non-printable and does not have a `charCode`,
* presumably because it does not produce a tab-character in browsers.
*
* @param {object} nativeEvent Native browser event.
* @return {number} Normalized `charCode` property.
*/
function getEventCharCode(nativeEvent) {
var charCode = void 0;
var keyCode = nativeEvent.keyCode;
if ('charCode' in nativeEvent) {
charCode = nativeEvent.charCode;
// FF does not set `charCode` for the Enter-key, check against `keyCode`.
if (charCode === 0 && keyCode === 13) {
charCode = 13;
}
} else {
// IE8 does not implement `charCode`, but `keyCode` has the correct value.
charCode = keyCode;
}
// IE and Edge (on Windows) and Chrome / Safari (on Windows and Linux)
// report Enter as charCode 10 when ctrl is pressed.
if (charCode === 10) {
charCode = 13;
}
// Some non-printable keys are reported in `charCode`/`keyCode`, discard them.
// Must not discard the (non-)printable Enter-key.
if (charCode >= 32 || charCode === 13) {
return charCode;
}
return 0;
}
/**
* Normalization of deprecated HTML5 `key` values
* @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names
*/
var normalizeKey = {
Esc: 'Escape',
Spacebar: ' ',
Left: 'ArrowLeft',
Up: 'ArrowUp',
Right: 'ArrowRight',
Down: 'ArrowDown',
Del: 'Delete',
Win: 'OS',
Menu: 'ContextMenu',
Apps: 'ContextMenu',
Scroll: 'ScrollLock',
MozPrintableKey: 'Unidentified'
};
/**
* Translation from legacy `keyCode` to HTML5 `key`
* Only special keys supported, all others depend on keyboard layout or browser
* @see https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent#Key_names
*/
var translateToKey = {
'8': 'Backspace',
'9': 'Tab',
'12': 'Clear',
'13': 'Enter',
'16': 'Shift',
'17': 'Control',
'18': 'Alt',
'19': 'Pause',
'20': 'CapsLock',
'27': 'Escape',
'32': ' ',
'33': 'PageUp',
'34': 'PageDown',
'35': 'End',
'36': 'Home',
'37': 'ArrowLeft',
'38': 'ArrowUp',
'39': 'ArrowRight',
'40': 'ArrowDown',
'45': 'Insert',
'46': 'Delete',
'112': 'F1',
'113': 'F2',
'114': 'F3',
'115': 'F4',
'116': 'F5',
'117': 'F6',
'118': 'F7',
'119': 'F8',
'120': 'F9',
'121': 'F10',
'122': 'F11',
'123': 'F12',
'144': 'NumLock',
'145': 'ScrollLock',
'224': 'Meta'
};
/**
* @param {object} nativeEvent Native browser event.
* @return {string} Normalized `key` property.
*/
function getEventKey(nativeEvent) {
if (nativeEvent.key) {
// Normalize inconsistent values reported by browsers due to
// implementations of a working draft specification.
// FireFox implements `key` but returns `MozPrintableKey` for all
// printable characters (normalized to `Unidentified`), ignore it.
gitextract_jm6swedw/
├── .gitignore
├── .meta/
│ └── cp-guide-plugins.sh
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── COPYRIGHT
├── LICENSE
├── README.md
├── e2e-adobe-stock/
│ ├── .gitignore
│ ├── .xdignore
│ ├── debug.json
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── readme.md
│ ├── src/
│ │ ├── App.css
│ │ ├── App.jsx
│ │ ├── apikey.json
│ │ ├── components/
│ │ │ ├── Card.css
│ │ │ ├── Card.jsx
│ │ │ ├── DraggableImage.jsx
│ │ │ ├── Grid.css
│ │ │ ├── Grid.jsx
│ │ │ ├── IconButton.css
│ │ │ ├── IconButton.jsx
│ │ │ ├── List.css
│ │ │ ├── List.jsx
│ │ │ ├── MaxResultsField.jsx
│ │ │ ├── Preferences.css
│ │ │ ├── Preferences.jsx
│ │ │ ├── SearchField.css
│ │ │ ├── SearchField.jsx
│ │ │ ├── StockSearch.css
│ │ │ ├── StockSearch.jsx
│ │ │ ├── ViewSwitcher.css
│ │ │ └── ViewSwitcher.jsx
│ │ ├── contexts/
│ │ │ └── StoreContext.js
│ │ ├── controllers/
│ │ │ └── PanelController.js
│ │ ├── main.jsx
│ │ ├── store/
│ │ │ └── Preferences.js
│ │ └── util/
│ │ ├── fetchBinary.js
│ │ ├── reactShim.js
│ │ └── search.js
│ └── webpack.config.js
├── e2e-colorize-text/
│ ├── README.md
│ ├── dialogs.js
│ ├── lib/
│ │ ├── dialogs.js
│ │ └── manifest.js
│ ├── main.js
│ └── manifest.json
├── e2e-create-magento-product/
│ ├── README.md
│ ├── config.json
│ ├── main.js
│ ├── manifest.json
│ └── package.json
├── e2e-create-polygon/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── e2e-customize-banner/
│ ├── README.md
│ ├── banner.xd
│ ├── main.js
│ └── manifest.json
├── e2e-stock-chart/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── how-to-create-path-objects/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── how-to-display-an-alert/
│ ├── README.md
│ ├── lib/
│ │ ├── dialogs.js
│ │ └── manifest.js
│ ├── main.js
│ └── manifest.json
├── how-to-draw-lines/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── how-to-export-a-rendition/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── how-to-integrate-with-OAuth/
│ ├── README.md
│ ├── main.js
│ ├── manifest.json
│ └── server/
│ ├── package.json
│ ├── public/
│ │ └── config.js
│ └── server/
│ └── index.js
├── how-to-make-network-requests/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── how-to-read-a-file/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── how-to-style-text/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── how-to-work-with-scenenodelist/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── i18n-pojo/
│ ├── main.js
│ ├── manifest.json
│ ├── readme.md
│ └── strings.json
├── package.json
├── quick-start/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── quick-start-panel/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── quick-start-react/
│ ├── README.md
│ ├── manifest.json
│ ├── package.json
│ ├── src/
│ │ ├── HelloForm.jsx
│ │ ├── main.jsx
│ │ └── react-shim.js
│ └── webpack.config.js
├── sg-chart-generator/
│ ├── main.js
│ └── manifest.json
├── sg-dummy-data/
│ ├── main.js
│ └── manifest.json
├── sg-dynamic-button/
│ ├── main.js
│ └── manifest.json
├── sg-fit-to-object/
│ ├── main.js
│ └── manifest.json
├── sg-lots-of-lines/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── sg-lots-of-rects/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── sg-margin-guides/
│ ├── main.js
│ └── manifest.json
├── sg-meme-me/
│ ├── main.js
│ └── manifest.json
├── sg-repeater/
│ ├── main.js
│ └── manifest.json
├── sg-turtle/
│ ├── main.js
│ └── manifest.json
├── sg-update-weather/
│ ├── main.js
│ └── manifest.json
├── ui-button-padding/
│ ├── README.md
│ ├── h.js
│ ├── main.js
│ └── manifest.json
├── ui-button-padding-hyperscript/
│ ├── .gitignore
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── src/
│ │ └── main.js
│ └── webpack.config.js
├── ui-buttons-galore/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── ui-context-menu/
│ ├── h.js
│ ├── main.js
│ └── manifest.json
├── ui-create-chart/
│ ├── README.md
│ ├── h.js
│ ├── main.js
│ └── manifest.json
├── ui-datagrid-react/
│ ├── .gitignore
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── readme.md
│ ├── src/
│ │ ├── DataGrid.jsx
│ │ ├── MainForm.jsx
│ │ ├── main.jsx
│ │ └── styles.css
│ └── webpack.config.js
├── ui-dialog-variations/
│ ├── README.md
│ ├── lib/
│ │ ├── dialogs.js
│ │ └── manifest.js
│ ├── main.js
│ └── manifest.json
├── ui-hello/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── ui-hello-h/
│ ├── README.md
│ ├── h.js
│ ├── main.js
│ └── manifest.json
├── ui-hello-react/
│ ├── .gitignore
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── readme.md
│ ├── src/
│ │ ├── main.jsx
│ │ ├── react-shim.js
│ │ └── styles.css
│ └── webpack.config.js
├── ui-hello-vue/
│ ├── .gitignore
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── readme.md
│ ├── src/
│ │ ├── hello.vue
│ │ ├── main.js
│ │ └── styles.css
│ └── webpack.config.js
├── ui-html/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── ui-html-playground/
│ ├── .gitignore
│ ├── .xdignore
│ ├── README.md
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── src/
│ │ ├── App.css
│ │ ├── App.jsx
│ │ ├── PanelController.js
│ │ ├── main.jsx
│ │ └── reactShim.js
│ ├── ui-html-playground.xdx
│ └── webpack.config.js
├── ui-jquery/
│ ├── README.md
│ ├── jquery.js
│ ├── main.js
│ └── manifest.json
├── ui-panel-button-padding/
│ ├── main.js
│ └── manifest.json
├── ui-panel-hello-react/
│ ├── .gitignore
│ ├── .xdignore
│ ├── debug.json
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── readme.md
│ ├── src/
│ │ ├── App.css
│ │ ├── App.jsx
│ │ ├── components/
│ │ │ ├── Clock.css
│ │ │ ├── Clock.jsx
│ │ │ ├── ColorPicker.css
│ │ │ ├── ColorPicker.jsx
│ │ │ ├── Hello.css
│ │ │ └── Hello.jsx
│ │ ├── controllers/
│ │ │ └── PanelController.js
│ │ ├── main.jsx
│ │ └── util/
│ │ └── reactShim.js
│ └── webpack.config.js
├── ui-panel-scaffold/
│ ├── main.js
│ └── manifest.json
├── ui-panel-show-renditions/
│ ├── debug.json
│ ├── main.js
│ └── manifest.json
├── ui-panel-simple-drag-and-drop/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── ui-panel-typography-react/
│ ├── .gitignore
│ ├── .xdignore
│ ├── debug.json
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── readme.md
│ ├── src/
│ │ ├── App.css
│ │ ├── App.jsx
│ │ ├── components/
│ │ │ ├── Clock.css
│ │ │ ├── Clock.jsx
│ │ │ ├── ColorPicker.css
│ │ │ ├── ColorPicker.jsx
│ │ │ ├── Hello.css
│ │ │ └── Hello.jsx
│ │ ├── controllers/
│ │ │ └── PanelController.js
│ │ ├── main.jsx
│ │ └── util/
│ │ └── reactShim.js
│ └── webpack.config.js
├── ui-playground/
│ ├── README.md
│ ├── main.js
│ ├── manifest.json
│ └── welcome/
│ ├── main.js
│ ├── mainPanel.js
│ ├── manifest.json
│ └── pages/
│ ├── apis.js
│ ├── button.js
│ ├── checkbox.js
│ ├── dropdown.js
│ ├── hbox-vbox.js
│ ├── image.js
│ ├── label.js
│ ├── slider.js
│ └── textField.js
├── ui-rename-artboards/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── ui-simple-form/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── ui-tabs-react/
│ ├── .gitignore
│ ├── main.js
│ ├── manifest.json
│ ├── package.json
│ ├── readme.md
│ ├── src/
│ │ └── main.jsx
│ └── webpack.config.js
├── ui-trello/
│ ├── README.md
│ ├── main.js
│ └── manifest.json
├── ui-typography/
│ ├── main.js
│ └── manifest.json
└── ui-vectorize/
├── README.md
├── main.js
└── manifest.json
Showing preview only (502K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (5496 symbols across 103 files)
FILE: e2e-adobe-stock/main.js
function __webpack_require__ (line 7) | function __webpack_require__(moduleId) {
function cssWithMappingToString (line 352) | function cssWithMappingToString(item, useSourceMap) {
function toComment (line 372) | function toComment(sourceMap) {
function toObject (line 403) | function toObject(val) {
function shouldUseNative (line 411) | function shouldUseNative() {
function checkPropTypes (line 534) | function checkPropTypes(typeSpecs, values, location, componentName, getS...
function invariant (line 675) | function invariant(condition, format, a, b, c, d, e, f) {
function callCallback (line 764) | function callCallback() {
function handleWindowError (line 799) | function handleWindowError(event) {
function invokeGuardedCallback (line 883) | function invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {
function invokeGuardedCallbackAndCatchFirstError (line 899) | function invokeGuardedCallbackAndCatchFirstError(name, func, context, a,...
function rethrowCaughtError (line 914) | function rethrowCaughtError() {
function hasCaughtError (line 923) | function hasCaughtError() {
function clearCaughtError (line 927) | function clearCaughtError() {
function recomputePluginOrdering (line 953) | function recomputePluginOrdering() {
function publishEventForPlugin (line 982) | function publishEventForPlugin(dispatchConfig, pluginModule, eventName) {
function publishRegistrationName (line 1009) | function publishRegistrationName(registrationName, pluginModule, eventNa...
function injectEventPluginOrder (line 1068) | function injectEventPluginOrder(injectedEventPluginOrder) {
function injectEventPluginsByName (line 1085) | function injectEventPluginsByName(injectedNamesToPlugins) {
function setComponentTree (line 1157) | function setComponentTree(getFiberCurrentPropsFromNodeImpl, getInstanceF...
function executeDispatch (line 1188) | function executeDispatch(event, listener, inst) {
function executeDispatchesInOrder (line 1198) | function executeDispatchesInOrder(event) {
function accumulateInto (line 1253) | function accumulateInto(current, next) {
function forEachAccumulated (line 1288) | function forEachAccumulated(arr, cb, scope) {
function isInteractive (line 1321) | function isInteractive(tag) {
function shouldPreventMouseEvent (line 1325) | function shouldPreventMouseEvent(name, type, props) {
function getListener (line 1387) | function getListener(inst, registrationName) {
function extractEvents (line 1417) | function extractEvents(topLevelType, targetInst, nativeEvent, nativeEven...
function runEventsInBatch (line 1432) | function runEventsInBatch(events) {
function runExtractedEventsInBatch (line 1452) | function runExtractedEventsInBatch(topLevelType, targetInst, nativeEvent...
function precacheFiberNode (line 1481) | function precacheFiberNode(hostInst, node) {
function getClosestInstanceFromNode (line 1489) | function getClosestInstanceFromNode(node) {
function getInstanceFromNode$1 (line 1517) | function getInstanceFromNode$1(node) {
function getNodeFromInstance$1 (line 1533) | function getNodeFromInstance$1(inst) {
function getFiberCurrentPropsFromNode$1 (line 1545) | function getFiberCurrentPropsFromNode$1(node) {
function updateFiberProps (line 1549) | function updateFiberProps(node, props) {
function getParent (line 1553) | function getParent(inst) {
function getLowestCommonAncestor (line 1572) | function getLowestCommonAncestor(instA, instB) {
function traverseTwoPhase (line 1619) | function traverseTwoPhase(inst, fn, arg) {
function traverseEnterLeave (line 1641) | function traverseEnterLeave(from, to, fn, argFrom, argTo) {
function listenerAtPhase (line 1685) | function listenerAtPhase(inst, event, propagationPhase) {
function accumulateDirectionalDispatches (line 1706) | function accumulateDirectionalDispatches(inst, phase, event) {
function accumulateTwoPhaseDispatchesSingle (line 1724) | function accumulateTwoPhaseDispatchesSingle(event) {
function accumulateDispatches (line 1735) | function accumulateDispatches(inst, ignoredDirection, event) {
function accumulateDirectDispatchesSingle (line 1751) | function accumulateDirectDispatchesSingle(event) {
function accumulateTwoPhaseDispatches (line 1757) | function accumulateTwoPhaseDispatches(events) {
function accumulateEnterLeaveDispatches (line 1763) | function accumulateEnterLeaveDispatches(leave, enter, from, to) {
function accumulateDirectDispatches (line 1767) | function accumulateDirectDispatches(events) {
function unsafeCastStringToDOMTopLevelType (line 1777) | function unsafeCastStringToDOMTopLevelType(topLevelType) {
function unsafeCastDOMTopLevelTypeToString (line 1781) | function unsafeCastDOMTopLevelTypeToString(topLevelType) {
function makePrefixMap (line 1792) | function makePrefixMap(styleProp, eventName) {
function getVendorPrefixedEventName (line 1850) | function getVendorPrefixedEventName(eventName) {
function getRawEventName (line 1963) | function getRawEventName(topLevelType) {
function initialize (line 1983) | function initialize(nativeEventTarget) {
function reset (line 1989) | function reset() {
function getData (line 1995) | function getData() {
function getText (line 2025) | function getText() {
function functionThatReturnsTrue (line 2057) | function functionThatReturnsTrue() {
function functionThatReturnsFalse (line 2061) | function functionThatReturnsFalse() {
function SyntheticEvent (line 2083) | function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeE...
function Class (line 2218) | function Class() {
function getPooledWarningPropertyDefinition (line 2241) | function getPooledWarningPropertyDefinition(propName, getVal) {
function getPooledEvent (line 2268) | function getPooledEvent(dispatchConfig, targetInst, nativeEvent, nativeI...
function releasePooledEvent (line 2278) | function releasePooledEvent(event) {
function addEventPoolingTo (line 2287) | function addEventPoolingTo(EventConstructor) {
function isKeypressCommand (line 2373) | function isKeypressCommand(nativeEvent) {
function getCompositionEventType (line 2385) | function getCompositionEventType(topLevelType) {
function isFallbackCompositionStart (line 2404) | function isFallbackCompositionStart(topLevelType, nativeEvent) {
function isFallbackCompositionEnd (line 2415) | function isFallbackCompositionEnd(topLevelType, nativeEvent) {
function getDataFromCustomEvent (line 2443) | function getDataFromCustomEvent(nativeEvent) {
function isUsingKoreanIME (line 2461) | function isUsingKoreanIME(nativeEvent) {
function extractCompositionEvent (line 2471) | function extractCompositionEvent(topLevelType, targetInst, nativeEvent, ...
function getNativeBeforeInputChars (line 2523) | function getNativeBeforeInputChars(topLevelType, nativeEvent) {
function getFallbackBeforeInputChars (line 2577) | function getFallbackBeforeInputChars(topLevelType, nativeEvent) {
function extractBeforeInputEvent (line 2641) | function extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, ...
function restoreStateOfTarget (line 2707) | function restoreStateOfTarget(target) {
function setRestoreImplementation (line 2720) | function setRestoreImplementation(impl) {
function enqueueStateRestore (line 2724) | function enqueueStateRestore(target) {
function needsStateRestore (line 2736) | function needsStateRestore() {
function restoreStateIfNeeded (line 2740) | function restoreStateIfNeeded() {
function batchedUpdates (line 2773) | function batchedUpdates(fn, bookkeeping) {
function interactiveUpdates (line 2799) | function interactiveUpdates(fn, a, b) {
function setBatchingImplementation (line 2805) | function setBatchingImplementation(batchedUpdatesImpl, interactiveUpdate...
function isTextInputElement (line 2832) | function isTextInputElement(elem) {
function getEventTarget (line 2863) | function getEventTarget(nativeEvent) {
function isEventSupported (line 2891) | function isEventSupported(eventNameSuffix) {
function isCheckable (line 2908) | function isCheckable(elem) {
function getTracker (line 2914) | function getTracker(node) {
function detachTracker (line 2918) | function detachTracker(node) {
function getValueFromNode (line 2922) | function getValueFromNode(node) {
function trackValueOnNode (line 2937) | function trackValueOnNode(node) {
function track (line 2986) | function track(node) {
function updateValueIfChanged (line 2995) | function updateValueIfChanged(node) {
function getIteratorFn (line 3076) | function getIteratorFn(maybeIterable) {
function refineResolvedLazyComponent (line 3091) | function refineResolvedLazyComponent(lazyComponent) {
function getWrappedName (line 3095) | function getWrappedName(outerType, innerType, wrapperName) {
function getComponentName (line 3100) | function getComponentName(type) {
function describeFiber (line 3155) | function describeFiber(fiber) {
function getStackByFiberInDevAndProd (line 3176) | function getStackByFiberInDevAndProd(workInProgress) {
function getCurrentFiberOwnerNameInDevOrNull (line 3189) | function getCurrentFiberOwnerNameInDevOrNull() {
function getCurrentFiberStackInDev (line 3202) | function getCurrentFiberStackInDev() {
function resetCurrentFiber (line 3214) | function resetCurrentFiber() {
function setCurrentFiber (line 3222) | function setCurrentFiber(fiber) {
function setCurrentPhase (line 3230) | function setCurrentPhase(lifeCyclePhase) {
function isAttributeNameSafe (line 3310) | function isAttributeNameSafe(attributeName) {
function shouldIgnoreAttribute (line 3328) | function shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {
function shouldRemoveAttributeWithWarning (line 3341) | function shouldRemoveAttributeWithWarning(name, value, propertyInfo, isC...
function shouldRemoveAttribute (line 3368) | function shouldRemoveAttribute(name, value, propertyInfo, isCustomCompon...
function getPropertyInfo (line 3393) | function getPropertyInfo(name) {
function PropertyInfoRecord (line 3397) | function PropertyInfoRecord(name, type, mustUseProperty, attributeName, ...
function getValueForProperty (line 3552) | function getValueForProperty(node, name, expected, propertyInfo) {
function getValueForAttribute (line 3611) | function getValueForAttribute(node, name, expected) {
function setValueForProperty (line 3634) | function setValueForProperty(node, name, value, isCustomComponentTag) {
function toString (line 3698) | function toString(value) {
function getToStringValue (line 3702) | function getToStringValue(value) {
function isControlled (line 3808) | function isControlled(props) {
function getHostProps (line 3830) | function getHostProps(element, props) {
function initWrapperState (line 3844) | function initWrapperState(element, props) {
function updateChecked (line 3868) | function updateChecked(element, props) {
function updateWrapper (line 3876) | function updateWrapper(element, props) {
function postMountWrapper (line 3952) | function postMountWrapper(element, props, isHydrating) {
function restoreControlledState (line 4060) | function restoreControlledState(element, props) {
function updateNamedCousins (line 4066) | function updateNamedCousins(rootNode, props) {
function setDefaultValue (line 4116) | function setDefaultValue(node, type, value) {
function createAndAccumulateChangeEvent (line 4138) | function createAndAccumulateChangeEvent(inst, nativeEvent, target) {
function shouldUseChangeEvent (line 4155) | function shouldUseChangeEvent(elem) {
function manualDispatchChangeEvent (line 4160) | function manualDispatchChangeEvent(nativeEvent) {
function runEventInBatch (line 4177) | function runEventInBatch(event) {
function getInstIfValueChanged (line 4181) | function getInstIfValueChanged(targetInst) {
function getTargetInstForChangeEvent (line 4188) | function getTargetInstForChangeEvent(topLevelType, targetInst) {
function startWatchingForValueChange (line 4209) | function startWatchingForValueChange(target, targetInst) {
function stopWatchingForValueChange (line 4219) | function stopWatchingForValueChange() {
function handlePropertyChange (line 4232) | function handlePropertyChange(nativeEvent) {
function handleEventsForInputEventPolyfill (line 4241) | function handleEventsForInputEventPolyfill(topLevelType, target, targetI...
function getTargetInstForInputEventPolyfill (line 4261) | function getTargetInstForInputEventPolyfill(topLevelType, targetInst) {
function shouldUseClickEvent (line 4280) | function shouldUseClickEvent(elem) {
function getTargetInstForClickEvent (line 4288) | function getTargetInstForClickEvent(topLevelType, targetInst) {
function getTargetInstForInputOrChangeEvent (line 4294) | function getTargetInstForInputOrChangeEvent(topLevelType, targetInst) {
function handleControlledInputBlur (line 4300) | function handleControlledInputBlur(node) {
function modifierStateGetter (line 4396) | function modifierStateGetter(keyArg) {
function getEventModifierState (line 4406) | function getEventModifierState(nativeEvent) {
function is (line 4599) | function is(x, y) {
function shallowEqual (line 4611) | function shallowEqual(objA, objB) {
function get (line 4654) | function get(key) {
function has (line 4658) | function has(key) {
function set (line 4662) | function set(key, value) {
function isFiberMountedImpl (line 4697) | function isFiberMountedImpl(fiber) {
function isFiberMounted (line 4726) | function isFiberMounted(fiber) {
function isMounted (line 4730) | function isMounted(component) {
function assertIsMounted (line 4748) | function assertIsMounted(fiber) {
function findCurrentFiberUsingSlowPath (line 4752) | function findCurrentFiberUsingSlowPath(fiber) {
function findCurrentHostFiber (line 4864) | function findCurrentHostFiber(parent) {
function findCurrentHostFiberWithNoPortals (line 4897) | function findCurrentHostFiberWithNoPortals(parent) {
function addEventBubbleListener (line 4930) | function addEventBubbleListener(element, eventType, listener) {
function addEventCaptureListener (line 4934) | function addEventCaptureListener(element, eventType, listener) {
function getEventCharCode (line 4977) | function getEventCharCode(nativeEvent) {
function getEventKey (line 5075) | function getEventKey(nativeEvent) {
function addEventTypeNameToConfig (line 5239) | function addEventTypeNameToConfig(_ref, isInteractive) {
function findRootContainerNode (line 5392) | function findRootContainerNode(inst) {
function getTopLevelCallbackBookKeeping (line 5407) | function getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targe...
function releaseTopLevelCallbackBookKeeping (line 5423) | function releaseTopLevelCallbackBookKeeping(instance) {
function handleTopLevel (line 5433) | function handleTopLevel(bookKeeping) {
function setEnabled (line 5463) | function setEnabled(enabled) {
function isEnabled (line 5467) | function isEnabled() {
function trapBubbledEvent (line 5480) | function trapBubbledEvent(topLevelType, element) {
function trapCapturedEvent (line 5500) | function trapCapturedEvent(topLevelType, element) {
function dispatchInteractiveEvent (line 5511) | function dispatchInteractiveEvent(topLevelType, nativeEvent) {
function dispatchEvent (line 5515) | function dispatchEvent(topLevelType, nativeEvent) {
function getListeningForDocument (line 5605) | function getListeningForDocument(mountAt) {
function listenTo (line 5636) | function listenTo(registrationName, mountAt) {
function isListeningToAllDependencies (line 5682) | function isListeningToAllDependencies(registrationName, mountAt) {
function getActiveElement (line 5694) | function getActiveElement(doc) {
function getLeafNode (line 5712) | function getLeafNode(node) {
function getSiblingNode (line 5726) | function getSiblingNode(node) {
function getNodeForCharacterOffset (line 5742) | function getNodeForCharacterOffset(root, offset) {
function getOffsets (line 5769) | function getOffsets(outerNode) {
function getModernOffsetsFromPoints (line 5813) | function getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset,...
function setOffsets (line 5894) | function setOffsets(node, offsets) {
function isTextNode (line 5939) | function isTextNode(node) {
function containsNode (line 5943) | function containsNode(outerNode, innerNode) {
function isInDocument (line 5961) | function isInDocument(node) {
function getActiveElementDeep (line 5965) | function getActiveElementDeep() {
function hasSelectionCapabilities (line 5993) | function hasSelectionCapabilities(elem) {
function getSelectionInformation (line 5998) | function getSelectionInformation() {
function restoreSelection (line 6011) | function restoreSelection(priorSelectionInformation) {
function getSelection$1 (line 6051) | function getSelection$1(input) {
function setSelection (line 6074) | function setSelection(input, offsets) {
function getSelection (line 6116) | function getSelection(node) {
function getEventTargetDocument (line 6140) | function getEventTargetDocument(eventTarget) {
function constructSelectEvent (line 6151) | function constructSelectEvent(nativeEvent, nativeEventTarget) {
function flattenChildren (line 6275) | function flattenChildren(children) {
function validateProps (line 6300) | function validateProps(element, props) {
function postMountWrapper$1 (line 6332) | function postMountWrapper$1(element, props) {
function getHostProps$1 (line 6339) | function getHostProps$1(element, props) {
function getDeclarationErrorAddendum (line 6357) | function getDeclarationErrorAddendum() {
function checkSelectPropTypes (line 6370) | function checkSelectPropTypes(props) {
function updateOptions (line 6387) | function updateOptions(node, multiple, propValue, setDefaultSelected) {
function getHostProps$2 (line 6445) | function getHostProps$2(element, props) {
function initWrapperState$1 (line 6451) | function initWrapperState$1(element, props) {
function postMountWrapper$2 (line 6469) | function postMountWrapper$2(element, props) {
function postUpdateWrapper (line 6480) | function postUpdateWrapper(element, props) {
function restoreControlledState$2 (line 6499) | function restoreControlledState$2(element, props) {
function getHostProps$3 (line 6526) | function getHostProps$3(element, props) {
function initWrapperState$2 (line 6545) | function initWrapperState$2(element, props) {
function updateWrapper$1 (line 6585) | function updateWrapper$1(element, props) {
function postMountWrapper$3 (line 6606) | function postMountWrapper$3(element, props) {
function restoreControlledState$3 (line 6621) | function restoreControlledState$3(element, props) {
function getIntrinsicNamespace (line 6637) | function getIntrinsicNamespace(type) {
function getChildNamespace (line 6648) | function getChildNamespace(parentNamespace, type) {
function prefixKey (line 6837) | function prefixKey(prefix, key) {
function dangerousStyleValue (line 6864) | function dangerousStyleValue(name, value, isCustomProperty) {
function hyphenateStyleName (line 6903) | function hyphenateStyleName(name) {
function createDangerousStringForStyles (line 7009) | function createDangerousStringForStyles(styles) {
function setValueForStyles (line 7037) | function setValueForStyles(node, styles) {
function isValueEmpty (line 7061) | function isValueEmpty(value) {
function expandShorthandMap (line 7073) | function expandShorthandMap(styles) {
function validateShorthandPropertyCollisionInDev (line 7098) | function validateShorthandPropertyCollisionInDev(styleUpdates, nextStyle...
function assertValidProps (line 7162) | function assertValidProps(tag, props) {
function isCustomComponent (line 7180) | function isCustomComponent(tagName, props) {
function validateProperty (line 7753) | function validateProperty(tagName, name) {
function warnInvalidARIAProps (line 7798) | function warnInvalidARIAProps(type, props) {
function validateProperties (line 7819) | function validateProperties(type, props) {
function validateProperties$1 (line 7828) | function validateProperties$1(type, props) {
function validateProperties$2 (line 7992) | function validateProperties$2(type, props, canUseEventSystem) {
function ensureListeningTo (line 8132) | function ensureListeningTo(rootContainerElement, registrationName) {
function getOwnerDocumentFromRootContainer (line 8138) | function getOwnerDocumentFromRootContainer(rootContainerElement) {
function noop (line 8142) | function noop() {}
function trapClickOnNonInteractiveElement (line 8144) | function trapClickOnNonInteractiveElement(node) {
function setInitialDOMProperties (line 8157) | function setInitialDOMProperties(tag, domElement, rootContainerElement, ...
function updateDOMProperties (line 8211) | function updateDOMProperties(domElement, updatePayload, wasCustomCompone...
function createElement (line 8228) | function createElement(type, props, rootContainerElement, parentNamespac...
function createTextNode (line 8300) | function createTextNode(text, rootContainerElement) {
function setInitialProperties (line 8304) | function setInitialProperties(domElement, tag, rawProps, rootContainerEl...
function diffProperties (line 8415) | function diffProperties(domElement, tag, lastRawProps, nextRawProps, roo...
function updateProperties (line 8583) | function updateProperties(domElement, updatePayload, tag, lastRawProps, ...
function getPossibleStandardName (line 8616) | function getPossibleStandardName(propName) {
function diffHydratedProperties (line 8627) | function diffHydratedProperties(domElement, tag, rawProps, parentNamespa...
function diffHydratedText (line 8879) | function diffHydratedText(textNode, text) {
function warnForUnmatchedText (line 8884) | function warnForUnmatchedText(textNode, text) {
function warnForDeletedHydratableElement (line 8890) | function warnForDeletedHydratableElement(parentNode, child) {
function warnForDeletedHydratableText (line 8900) | function warnForDeletedHydratableText(parentNode, child) {
function warnForInsertedHydratedElement (line 8910) | function warnForInsertedHydratedElement(parentNode, tag, props) {
function warnForInsertedHydratedText (line 8920) | function warnForInsertedHydratedText(parentNode, text) {
function restoreControlledState$1 (line 8937) | function restoreControlledState$1(domElement, tag, props) {
function shim (line 9250) | function shim() {
function shouldAutoFocusHostComponent (line 9278) | function shouldAutoFocusHostComponent(type, props) {
function getRootHostContext (line 9289) | function getRootHostContext(rootContainerInstance) {
function getChildHostContext (line 9319) | function getChildHostContext(parentHostContext, type, rootContainerInsta...
function getPublicInstance (line 9330) | function getPublicInstance(instance) {
function prepareForCommit (line 9334) | function prepareForCommit(containerInfo) {
function resetAfterCommit (line 9340) | function resetAfterCommit(containerInfo) {
function createInstance (line 9347) | function createInstance(type, props, rootContainerInstance, hostContext,...
function appendInitialChild (line 9366) | function appendInitialChild(parentInstance, child) {
function finalizeInitialChildren (line 9370) | function finalizeInitialChildren(domElement, type, props, rootContainerI...
function prepareUpdate (line 9375) | function prepareUpdate(domElement, type, oldProps, newProps, rootContain...
function shouldSetTextContent (line 9387) | function shouldSetTextContent(type, props) {
function shouldDeprioritizeSubtree (line 9391) | function shouldDeprioritizeSubtree(type, props) {
function createTextInstance (line 9395) | function createTextInstance(text, rootContainerInstance, hostContext, in...
function commitMount (line 9421) | function commitMount(domElement, type, newProps, internalInstanceHandle) {
function commitUpdate (line 9433) | function commitUpdate(domElement, updatePayload, type, oldProps, newProp...
function resetTextContent (line 9441) | function resetTextContent(domElement) {
function commitTextUpdate (line 9445) | function commitTextUpdate(textInstance, oldText, newText) {
function appendChild (line 9449) | function appendChild(parentInstance, child) {
function appendChildToContainer (line 9453) | function appendChildToContainer(container, child) {
function insertBefore (line 9477) | function insertBefore(parentInstance, child, beforeChild) {
function insertInContainerBefore (line 9481) | function insertInContainerBefore(container, child, beforeChild) {
function removeChild (line 9489) | function removeChild(parentInstance, child) {
function removeChildFromContainer (line 9493) | function removeChildFromContainer(container, child) {
function clearSuspenseBoundary (line 9501) | function clearSuspenseBoundary(parentInstance, suspenseInstance) {
function clearSuspenseBoundaryFromContainer (line 9528) | function clearSuspenseBoundaryFromContainer(container, suspenseInstance) {
function hideInstance (line 9538) | function hideInstance(instance) {
function hideTextInstance (line 9545) | function hideTextInstance(textInstance) {
function unhideInstance (line 9549) | function unhideInstance(instance, props) {
function unhideTextInstance (line 9556) | function unhideTextInstance(textInstance, text) {
function canHydrateInstance (line 9566) | function canHydrateInstance(instance, type, props) {
function canHydrateTextInstance (line 9574) | function canHydrateTextInstance(instance, text) {
function canHydrateSuspenseInstance (line 9583) | function canHydrateSuspenseInstance(instance) {
function getNextHydratableSibling (line 9592) | function getNextHydratableSibling(instance) {
function getFirstHydratableChild (line 9601) | function getFirstHydratableChild(parentInstance) {
function hydrateInstance (line 9610) | function hydrateInstance(instance, type, props, rootContainerInstance, h...
function hydrateTextInstance (line 9623) | function hydrateTextInstance(textInstance, text, internalInstanceHandle) {
function getNextHydratableInstanceAfterSuspenseInstance (line 9628) | function getNextHydratableInstanceAfterSuspenseInstance(suspenseInstance) {
function didNotMatchHydratedContainerTextInstance (line 9653) | function didNotMatchHydratedContainerTextInstance(parentContainer, textI...
function didNotMatchHydratedTextInstance (line 9659) | function didNotMatchHydratedTextInstance(parentType, parentProps, parent...
function didNotHydrateContainerInstance (line 9665) | function didNotHydrateContainerInstance(parentContainer, instance) {
function didNotHydrateInstance (line 9677) | function didNotHydrateInstance(parentType, parentProps, parentInstance, ...
function didNotFindHydratableContainerInstance (line 9689) | function didNotFindHydratableContainerInstance(parentContainer, type, pr...
function didNotFindHydratableContainerTextInstance (line 9695) | function didNotFindHydratableContainerTextInstance(parentContainer, text) {
function didNotFindHydratableInstance (line 9703) | function didNotFindHydratableInstance(parentType, parentProps, parentIns...
function didNotFindHydratableTextInstance (line 9709) | function didNotFindHydratableTextInstance(parentType, parentProps, paren...
function didNotFindHydratableSuspenseInstance (line 9715) | function didNotFindHydratableSuspenseInstance(parentType, parentProps, p...
function recordEffect (line 9888) | function recordEffect() {
function recordScheduleUpdate (line 9894) | function recordScheduleUpdate() {
function startRequestCallbackTimer (line 9905) | function startRequestCallbackTimer() {
function stopRequestCallbackTimer (line 9914) | function stopRequestCallbackTimer(didExpire, expirationTime) {
function startWorkTimer (line 9924) | function startWorkTimer(fiber) {
function cancelWorkTimer (line 9938) | function cancelWorkTimer(fiber) {
function stopWorkTimer (line 9950) | function stopWorkTimer(fiber) {
function stopFailedWorkTimer (line 9965) | function stopFailedWorkTimer(fiber) {
function startPhaseTimer (line 9981) | function startPhaseTimer(fiber, phase) {
function stopPhaseTimer (line 9995) | function stopPhaseTimer() {
function startWorkLoopTimer (line 10009) | function startWorkLoopTimer(nextUnitOfWork) {
function stopWorkLoopTimer (line 10024) | function stopWorkLoopTimer(interruptedBy, didCompleteRoot) {
function startCommitTimer (line 10048) | function startCommitTimer() {
function stopCommitTimer (line 10060) | function stopCommitTimer() {
function startCommitSnapshotEffectsTimer (line 10081) | function startCommitSnapshotEffectsTimer() {
function stopCommitSnapshotEffectsTimer (line 10091) | function stopCommitSnapshotEffectsTimer() {
function startCommitHostEffectsTimer (line 10102) | function startCommitHostEffectsTimer() {
function stopCommitHostEffectsTimer (line 10112) | function stopCommitHostEffectsTimer() {
function startCommitLifeCyclesTimer (line 10123) | function startCommitLifeCyclesTimer() {
function stopCommitLifeCyclesTimer (line 10133) | function stopCommitLifeCyclesTimer() {
function createCursor (line 10154) | function createCursor(defaultValue) {
function pop (line 10160) | function pop(cursor, fiber) {
function push (line 10185) | function push(cursor, value, fiber) {
function checkThatStackIsEmpty (line 10197) | function checkThatStackIsEmpty() {
function resetStackAfterFatalErrorInDev (line 10205) | function resetStackAfterFatalErrorInDev() {
function getUnmaskedContext (line 10233) | function getUnmaskedContext(workInProgress, Component, didPushOwnContext...
function cacheContext (line 10244) | function cacheContext(workInProgress, unmaskedContext, maskedContext) {
function getMaskedContext (line 10250) | function getMaskedContext(workInProgress, unmaskedContext) {
function hasContextChanged (line 10284) | function hasContextChanged() {
function isContextProvider (line 10288) | function isContextProvider(type) {
function popContext (line 10293) | function popContext(fiber) {
function popTopLevelContextObject (line 10298) | function popTopLevelContextObject(fiber) {
function pushTopLevelContextObject (line 10303) | function pushTopLevelContextObject(fiber, context, didChange) {
function processChildContext (line 10310) | function processChildContext(fiber, type, parentContext) {
function pushContextProvider (line 10355) | function pushContextProvider(workInProgress) {
function invalidateContextProvider (line 10371) | function invalidateContextProvider(workInProgress, type, didChange) {
function findCurrentUnmaskedContext (line 10395) | function findCurrentUnmaskedContext(fiber) {
function catchErrors (line 10423) | function catchErrors(fn) {
function injectInternals (line 10438) | function injectInternals(internals) {
function onCommitRoot (line 10476) | function onCommitRoot(root) {
function onCommitUnmount (line 10482) | function onCommitUnmount(fiber) {
function msToExpirationTime (line 10501) | function msToExpirationTime(ms) {
function expirationTimeToMs (line 10506) | function expirationTimeToMs(expirationTime) {
function ceiling (line 10510) | function ceiling(num, precision) {
function computeExpirationBucket (line 10514) | function computeExpirationBucket(currentTime, expirationInMs, bucketSize...
function computeAsyncExpiration (line 10521) | function computeAsyncExpiration(currentTime) {
function computeInteractiveExpiration (line 10539) | function computeInteractiveExpiration(currentTime) {
function FiberNode (line 10577) | function FiberNode(tag, pendingProps, key, mode) {
function shouldConstruct (line 10670) | function shouldConstruct(Component) {
function isSimpleFunctionComponent (line 10675) | function isSimpleFunctionComponent(type) {
function resolveLazyComponentTag (line 10679) | function resolveLazyComponentTag(Component) {
function createWorkInProgress (line 10695) | function createWorkInProgress(current, pendingProps, expirationTime) {
function createHostRootFiber (line 10762) | function createHostRootFiber(isConcurrent) {
function createFiberFromTypeAndProps (line 10775) | function createFiberFromTypeAndProps(type, // React$ElementType
function createFiberFromElement (line 10846) | function createFiberFromElement(element, mode, expirationTime) {
function createFiberFromFragment (line 10862) | function createFiberFromFragment(elements, mode, expirationTime, key) {
function createFiberFromProfiler (line 10868) | function createFiberFromProfiler(pendingProps, mode, expirationTime, key) {
function createFiberFromMode (line 10884) | function createFiberFromMode(pendingProps, mode, expirationTime, key) {
function createFiberFromSuspense (line 10896) | function createFiberFromSuspense(pendingProps, mode, expirationTime, key) {
function createFiberFromText (line 10908) | function createFiberFromText(content, mode, expirationTime) {
function createFiberFromHostInstanceForDeletion (line 10914) | function createFiberFromHostInstanceForDeletion() {
function createFiberFromPortal (line 10922) | function createFiberFromPortal(portal, mode, expirationTime) {
function assignFiberPropertiesInDEV (line 10935) | function assignFiberPropertiesInDEV(target, source) {
function createFiberRoot (line 11001) | function createFiberRoot(containerInfo, isConcurrent, hydrate) {
function markPendingPriorityLevel (line 11380) | function markPendingPriorityLevel(root, expirationTime) {
function markCommittedPriorityLevels (line 11406) | function markCommittedPriorityLevels(root, earliestRemainingTime) {
function hasLowerPriorityWork (line 11481) | function hasLowerPriorityWork(root, erroredExpirationTime) {
function isPriorityLevelSuspended (line 11488) | function isPriorityLevelSuspended(root, expirationTime) {
function markSuspendedPriorityLevel (line 11494) | function markSuspendedPriorityLevel(root, suspendedTime) {
function markPingedPriorityLevel (line 11535) | function markPingedPriorityLevel(root, pingedTime) {
function clearPing (line 11548) | function clearPing(root, completedTime) {
function findEarliestOutstandingPriorityLevel (line 11555) | function findEarliestOutstandingPriorityLevel(root, renderExpirationTime) {
function didExpireAtExpirationTime (line 11569) | function didExpireAtExpirationTime(root, currentTime) {
function findNextExpirationTimeToWorkOn (line 11577) | function findNextExpirationTimeToWorkOn(completedExpirationTime, root) {
function resolveDefaultProps (line 11606) | function resolveDefaultProps(Component, baseProps) {
function readLazyComponentType (line 11621) | function readLazyComponentType(lazyComponent) {
function applyDerivedStateFromProps (line 11740) | function applyDerivedStateFromProps(workInProgress, ctor, getDerivedStat...
function checkShouldComponentUpdate (line 11828) | function checkShouldComponentUpdate(workInProgress, ctor, oldProps, newP...
function checkClassInstance (line 11849) | function checkClassInstance(workInProgress, ctor, newProps) {
function adoptClassInstance (line 11918) | function adoptClassInstance(workInProgress, instance) {
function constructClassInstance (line 11928) | function constructClassInstance(workInProgress, ctor, props, renderExpir...
function callComponentWillMount (line 12011) | function callComponentWillMount(workInProgress, instance) {
function callComponentWillReceiveProps (line 12032) | function callComponentWillReceiveProps(workInProgress, instance, newProp...
function mountClassInstance (line 12056) | function mountClassInstance(workInProgress, ctor, newProps, renderExpira...
function resumeMountClassInstance (line 12124) | function resumeMountClassInstance(workInProgress, ctor, newProps, render...
function updateClassInstance (line 12219) | function updateClassInstance(current, workInProgress, ctor, newProps, re...
function coerceRef (line 12373) | function coerceRef(returnFiber, current$$1, element) {
function throwOnInvalidObjectType (line 12422) | function throwOnInvalidObjectType(returnFiber, newChild) {
function warnOnFunctionType (line 12432) | function warnOnFunctionType() {
function ChildReconciler (line 12447) | function ChildReconciler(shouldTrackSideEffects) {
function cloneChildFibers (line 13246) | function cloneChildFibers(current$$1, workInProgress) {
function requiredContext (line 13272) | function requiredContext(c) {
function getRootHostContainer (line 13277) | function getRootHostContainer() {
function pushHostContainer (line 13282) | function pushHostContainer(fiber, nextRootInstance) {
function popHostContainer (line 13302) | function popHostContainer(fiber) {
function getHostContext (line 13308) | function getHostContext() {
function pushHostContext (line 13313) | function pushHostContext(fiber) {
function popHostContext (line 13329) | function popHostContext(fiber) {
function mountHookTypesDev (line 13402) | function mountHookTypesDev() {
function updateHookTypesDev (line 13414) | function updateHookTypesDev() {
function warnOnHookMismatchInDev (line 13427) | function warnOnHookMismatchInDev(currentHookName) {
function throwInvalidHookError (line 13461) | function throwInvalidHookError() {
function areHookInputsEqual (line 13465) | function areHookInputsEqual(nextDeps, prevDeps) {
function renderWithHooks (line 13489) | function renderWithHooks(current, workInProgress, Component, props, refO...
function bailoutHooks (line 13610) | function bailoutHooks(current, workInProgress, expirationTime) {
function resetHooks (line 13618) | function resetHooks() {
function mountWorkInProgressHook (line 13651) | function mountWorkInProgressHook() {
function updateWorkInProgressHook (line 13672) | function updateWorkInProgressHook() {
function createFunctionComponentUpdateQueue (line 13712) | function createFunctionComponentUpdateQueue() {
function basicStateReducer (line 13718) | function basicStateReducer(state, action) {
function mountReducer (line 13722) | function mountReducer(reducer, initialArg, init) {
function updateReducer (line 13743) | function updateReducer(reducer, initialArg, init) {
function mountState (line 13870) | function mountState(initialState) {
function updateState (line 13888) | function updateState(initialState) {
function pushEffect (line 13892) | function pushEffect(tag, create, destroy, deps) {
function mountRef (line 13918) | function mountRef(initialValue) {
function updateRef (line 13928) | function updateRef(initialValue) {
function mountEffectImpl (line 13933) | function mountEffectImpl(fiberEffectTag, hookEffectTag, create, deps) {
function updateEffectImpl (line 13940) | function updateEffectImpl(fiberEffectTag, hookEffectTag, create, deps) {
function mountEffect (line 13961) | function mountEffect(create, deps) {
function updateEffect (line 13965) | function updateEffect(create, deps) {
function mountLayoutEffect (line 13969) | function mountLayoutEffect(create, deps) {
function updateLayoutEffect (line 13973) | function updateLayoutEffect(create, deps) {
function imperativeHandleEffect (line 13977) | function imperativeHandleEffect(create, ref) {
function mountImperativeHandle (line 13998) | function mountImperativeHandle(ref, create, deps) {
function updateImperativeHandle (line 14009) | function updateImperativeHandle(ref, create, deps) {
function mountDebugValue (line 14020) | function mountDebugValue(value, formatterFn) {
function mountCallback (line 14028) | function mountCallback(callback, deps) {
function updateCallback (line 14035) | function updateCallback(callback, deps) {
function mountMemo (line 14051) | function mountMemo(nextCreate, deps) {
function updateMemo (line 14059) | function updateMemo(nextCreate, deps) {
function dispatchAction (line 14090) | function dispatchAction(fiber, queue, action) {
function getCommitTime (line 14624) | function getCommitTime() {
function recordCommitTime (line 14628) | function recordCommitTime() {
function startProfilerTimer (line 14635) | function startProfilerTimer(fiber) {
function stopProfilerTimerIfRunning (line 14647) | function stopProfilerTimerIfRunning(fiber) {
function stopProfilerTimerIfRunningAndRecordDelta (line 14654) | function stopProfilerTimerIfRunningAndRecordDelta(fiber, overrideBaseTim...
function enterHydrationState (line 14675) | function enterHydrationState(fiber) {
function reenterHydrationStateFromDehydratedSuspenseInstance (line 14687) | function reenterHydrationStateFromDehydratedSuspenseInstance(fiber) {
function deleteHydratableInstance (line 14699) | function deleteHydratableInstance(returnFiber, instance) {
function insertNonHydratedInstance (line 14729) | function insertNonHydratedInstance(returnFiber, fiber) {
function tryHydrate (line 14779) | function tryHydrate(fiber, nextInstance) {
function tryToClaimNextHydratableInstance (line 14820) | function tryToClaimNextHydratableInstance(fiber) {
function prepareToHydrateHostInstance (line 14855) | function prepareToHydrateHostInstance(fiber, rootContainerInstance, host...
function prepareToHydrateHostTextInstance (line 14872) | function prepareToHydrateHostTextInstance(fiber) {
function skipPastDehydratedSuspenseInstance (line 14908) | function skipPastDehydratedSuspenseInstance(fiber) {
function popToNextHostParent (line 14917) | function popToNextHostParent(fiber) {
function popHydrationState (line 14925) | function popHydrationState(fiber) {
function resetHydrationState (line 14963) | function resetHydrationState() {
function reconcileChildren (line 14991) | function reconcileChildren(current$$1, workInProgress, nextChildren, ren...
function forceUnmountCurrentAndReconcile (line 15009) | function forceUnmountCurrentAndReconcile(current$$1, workInProgress, nex...
function updateForwardRef (line 15026) | function updateForwardRef(current$$1, workInProgress, Component, nextPro...
function updateMemoComponent (line 15073) | function updateMemoComponent(current$$1, workInProgress, Component, next...
function updateSimpleMemoComponent (line 15135) | function updateSimpleMemoComponent(current$$1, workInProgress, Component...
function updateFragment (line 15171) | function updateFragment(current$$1, workInProgress, renderExpirationTime) {
function updateMode (line 15177) | function updateMode(current$$1, workInProgress, renderExpirationTime) {
function updateProfiler (line 15183) | function updateProfiler(current$$1, workInProgress, renderExpirationTime) {
function markRef (line 15193) | function markRef(current$$1, workInProgress) {
function updateFunctionComponent (line 15201) | function updateFunctionComponent(current$$1, workInProgress, Component, ...
function updateClassComponent (line 15243) | function updateClassComponent(current$$1, workInProgress, Component, nex...
function finishClassComponent (line 15302) | function finishClassComponent(current$$1, workInProgress, Component, sho...
function pushHostRootContext (line 15368) | function pushHostRootContext(workInProgress) {
function updateHostRoot (line 15379) | function updateHostRoot(current$$1, workInProgress, renderExpirationTime) {
function updateHostComponent (line 15423) | function updateHostComponent(current$$1, workInProgress, renderExpiratio...
function updateHostText (line 15462) | function updateHostText(current$$1, workInProgress) {
function mountLazyComponent (line 15471) | function mountLazyComponent(_current, workInProgress, elementType, updat...
function mountIncompleteClassComponent (line 15545) | function mountIncompleteClassComponent(_current, workInProgress, Compone...
function mountIndeterminateComponent (line 15580) | function mountIndeterminateComponent(_current, workInProgress, Component...
function validateFunctionComponentInDev (line 15667) | function validateFunctionComponentInDev(workInProgress, Component) {
function updateSuspenseComponent (line 15708) | function updateSuspenseComponent(current$$1, workInProgress, renderExpir...
function updateDehydratedSuspenseComponent (line 15926) | function updateDehydratedSuspenseComponent(current$$1, workInProgress, r...
function updatePortalComponent (line 15985) | function updatePortalComponent(current$$1, workInProgress, renderExpirat...
function updateContextProvider (line 16001) | function updateContextProvider(current$$1, workInProgress, renderExpirat...
function updateContextConsumer (line 16042) | function updateContextConsumer(current$$1, workInProgress, renderExpirat...
function markWorkInProgressReceivedUpdate (line 16089) | function markWorkInProgressReceivedUpdate() {
function bailoutOnAlreadyFinishedWork (line 16093) | function bailoutOnAlreadyFinishedWork(current$$1, workInProgress, render...
function beginWork (line 16121) | function beginWork(current$$1, workInProgress, renderExpirationTime) {
function resetContextDependences (line 16322) | function resetContextDependences() {
function enterDisallowedContextReadInDEV (line 16333) | function enterDisallowedContextReadInDEV() {
function exitDisallowedContextReadInDEV (line 16339) | function exitDisallowedContextReadInDEV() {
function pushProvider (line 16345) | function pushProvider(providerFiber, nextValue) {
function popProvider (line 16367) | function popProvider(providerFiber) {
function calculateChangedBits (line 16380) | function calculateChangedBits(context, newValue, oldValue) {
function scheduleWorkOnParentPath (line 16394) | function scheduleWorkOnParentPath(parent, renderExpirationTime) {
function propagateContextChange (line 16416) | function propagateContextChange(workInProgress, context, changedBits, re...
function prepareToReadContext (line 16520) | function prepareToReadContext(workInProgress, renderExpirationTime) {
function readContext (line 16535) | function readContext(context, observedBits) {
function createUpdateQueue (line 16677) | function createUpdateQueue(baseState) {
function cloneUpdateQueue (line 16692) | function cloneUpdateQueue(currentQueue) {
function createUpdate (line 16712) | function createUpdate(expirationTime) {
function appendUpdateToQueue (line 16725) | function appendUpdateToQueue(queue, update) {
function enqueueUpdate (line 16736) | function enqueueUpdate(fiber, update) {
function enqueueCapturedUpdate (line 16798) | function enqueueCapturedUpdate(workInProgress, update) {
function ensureWorkInProgressQueueIsAClone (line 16821) | function ensureWorkInProgressQueueIsAClone(workInProgress, queue) {
function getStateFromUpdate (line 16833) | function getStateFromUpdate(workInProgress, queue, update, prevState, ne...
function processUpdateQueue (line 16896) | function processUpdateQueue(workInProgress, queue, props, instance, rend...
function callCallback (line 17026) | function callCallback(callback, context) {
function resetHasForceUpdateBeforeProcessing (line 17031) | function resetHasForceUpdateBeforeProcessing() {
function checkHasForceUpdateAfterProcessing (line 17035) | function checkHasForceUpdateAfterProcessing() {
function commitUpdateQueue (line 17039) | function commitUpdateQueue(finishedWork, finishedQueue, instance, render...
function commitUpdateEffects (line 17062) | function commitUpdateEffects(effect, instance) {
function createCapturedValue (line 17073) | function createCapturedValue(value, source) {
function markUpdate (line 17083) | function markUpdate(workInProgress) {
function markRef$1 (line 17089) | function markRef$1(workInProgress) {
function completeWork (line 17423) | function completeWork(current, workInProgress, renderExpirationTime) {
function shouldCaptureSuspense (line 17638) | function shouldCaptureSuspense(workInProgress) {
function showErrorDialog (line 17652) | function showErrorDialog(capturedError) {
function logCapturedError (line 17656) | function logCapturedError(capturedError) {
function logError (line 17723) | function logError(boundary, errorInfo) {
function safelyCallComponentWillUnmount (line 17769) | function safelyCallComponentWillUnmount(current$$1, instance) {
function safelyDetachRef (line 17779) | function safelyDetachRef(current$$1) {
function safelyCallDestroy (line 17796) | function safelyCallDestroy(current$$1, destroy) {
function commitBeforeMutationLifeCycles (line 17806) | function commitBeforeMutationLifeCycles(current$$1, finishedWork) {
function commitHookEffectList (line 17860) | function commitHookEffectList(unmountTag, mountTag, finishedWork) {
function commitPassiveHookEffects (line 17900) | function commitPassiveHookEffects(finishedWork) {
function commitLifeCycles (line 17905) | function commitLifeCycles(finishedRoot, current$$1, finishedWork, commit...
function hideOrUnhideAllChildren (line 18032) | function hideOrUnhideAllChildren(finishedWork, isHidden) {
function commitAttachRef (line 18077) | function commitAttachRef(finishedWork) {
function commitDetachRef (line 18103) | function commitDetachRef(current$$1) {
function commitUnmount (line 18117) | function commitUnmount(current$$1) {
function commitNestedUnmounts (line 18172) | function commitNestedUnmounts(root) {
function detachFiber (line 18204) | function detachFiber(current$$1) {
function emptyPortalContainer (line 18223) | function emptyPortalContainer(current$$1) {
function commitContainer (line 18235) | function commitContainer(finishedWork) {
function getHostParentFiber (line 18270) | function getHostParentFiber(fiber) {
function isHostParent (line 18281) | function isHostParent(fiber) {
function getHostSibling (line 18285) | function getHostSibling(fiber) {
function commitPlacement (line 18326) | function commitPlacement(finishedWork) {
function unmountHostComponents (line 18403) | function unmountHostComponents(current$$1) {
function commitDeletion (line 18495) | function commitDeletion(current$$1) {
function commitWork (line 18507) | function commitWork(current$$1, finishedWork) {
function commitResetTextContent (line 18640) | function commitResetTextContent(current$$1) {
function createRootErrorUpdate (line 18650) | function createRootErrorUpdate(fiber, errorInfo, expirationTime) {
function createClassErrorUpdate (line 18665) | function createClassErrorUpdate(fiber, errorInfo, expirationTime) {
function attachPingListener (line 18706) | function attachPingListener(root, renderExpirationTime, thenable) {
function throwException (line 18734) | function throwException(root, returnFiber, sourceFiber, value, renderExp...
function unwindWork (line 18947) | function unwindWork(workInProgress, renderExpirationTime) {
function unwindInterruptedWork (line 19011) | function unwindInterruptedWork(interruptedWork) {
function resetStack (line 19201) | function resetStack() {
function commitAllHostEffects (line 19222) | function commitAllHostEffects() {
function commitBeforeMutationLifecycles (line 19292) | function commitBeforeMutationLifecycles() {
function commitAllLifeCycles (line 19313) | function commitAllLifeCycles(finishedRoot, committedExpirationTime) {
function commitPassiveEffects (line 19350) | function commitPassiveEffects(root, firstEffect) {
function isAlreadyFailedLegacyErrorBoundary (line 19398) | function isAlreadyFailedLegacyErrorBoundary(instance) {
function markLegacyErrorBoundaryAsFailed (line 19402) | function markLegacyErrorBoundaryAsFailed(instance) {
function flushPassiveEffects (line 19410) | function flushPassiveEffects() {
function commitRoot (line 19421) | function commitRoot(root, finishedWork) {
function resetChildExpirationTime (line 19647) | function resetChildExpirationTime(workInProgress, renderTime) {
function completeUnitOfWork (line 19708) | function completeUnitOfWork(workInProgress) {
function performUnitOfWork (line 19884) | function performUnitOfWork(workInProgress) {
function workLoop (line 19943) | function workLoop(isYieldy) {
function renderRoot (line 19957) | function renderRoot(root, isYieldy) {
function captureCommitPhaseError (line 20207) | function captureCommitPhaseError(sourceFiber, value) {
function computeThreadID (line 20246) | function computeThreadID(expirationTime, interactionThreadID) {
function computeUniqueAsyncExpiration (line 20252) | function computeUniqueAsyncExpiration() {
function computeExpirationForFiber (line 20265) | function computeExpirationForFiber(currentTime, fiber) {
function renderDidSuspend (line 20313) | function renderDidSuspend(root, absoluteTimeoutMs, suspendedTime) {
function renderDidError (line 20320) | function renderDidError() {
function pingSuspendedRoot (line 20324) | function pingSuspendedRoot(root, thenable, pingTime) {
function retryTimedOutBoundary (line 20352) | function retryTimedOutBoundary(boundaryFiber, thenable) {
function scheduleWorkToRoot (line 20389) | function scheduleWorkToRoot(fiber, expirationTime) {
function warnIfNotCurrentlyBatchingInDev (line 20466) | function warnIfNotCurrentlyBatchingInDev(fiber) {
function scheduleWork (line 20474) | function scheduleWork(fiber, expirationTime) {
function syncUpdates (line 20515) | function syncUpdates(fn, a, b, c, d) {
function recomputeCurrentRendererTime (line 20551) | function recomputeCurrentRendererTime() {
function scheduleCallbackWithExpirationTime (line 20556) | function scheduleCallbackWithExpirationTime(root, expirationTime) {
function onFatal (line 20585) | function onFatal(root) {
function onComplete (line 20589) | function onComplete(root, finishedWork, expirationTime) {
function onSuspend (line 20594) | function onSuspend(root, finishedWork, suspendedExpirationTime, rootExpi...
function onYield (line 20606) | function onYield(root) {
function onTimeout (line 20610) | function onTimeout(root, finishedWork, suspendedExpirationTime) {
function onCommit (line 20622) | function onCommit(root, expirationTime) {
function requestCurrentTime (line 20627) | function requestCurrentTime() {
function requestWork (line 20670) | function requestWork(root, expirationTime) {
function addRootToSchedule (line 20698) | function addRootToSchedule(root, expirationTime) {
function findHighestPriorityRoot (line 20722) | function findHighestPriorityRoot() {
function shouldYieldToRenderer (line 20787) | function shouldYieldToRenderer() {
function performAsyncWork (line 20798) | function performAsyncWork() {
function performSyncWork (line 20822) | function performSyncWork() {
function performWork (line 20826) | function performWork(minExpirationTime, isYieldy) {
function flushRoot (line 20871) | function flushRoot(root, expirationTime) {
function finishRendering (line 20883) | function finishRendering() {
function performWorkOnRoot (line 20911) | function performWorkOnRoot(root, expirationTime, isYieldy) {
function completeRoot (line 20980) | function completeRoot(root, finishedWork, expirationTime) {
function onUncaughtError (line 21017) | function onUncaughtError(error) {
function batchedUpdates$1 (line 21030) | function batchedUpdates$1(fn, a) {
function unbatchedUpdates (line 21045) | function unbatchedUpdates(fn, a) {
function flushSync (line 21059) | function flushSync(fn, a) {
function interactiveUpdates$1 (line 21071) | function interactiveUpdates$1(fn, a, b) {
function flushInteractiveUpdates$1 (line 21095) | function flushInteractiveUpdates$1() {
function flushControlled (line 21103) | function flushControlled(fn) {
function getContextForSubtree (line 21128) | function getContextForSubtree(parentComponent) {
function scheduleRootUpdate (line 21146) | function scheduleRootUpdate(current$$1, element, expirationTime, callbac...
function updateContainerAtExpirationTime (line 21172) | function updateContainerAtExpirationTime(element, container, parentCompo...
function findHostInstance (line 21198) | function findHostInstance(component) {
function findHostInstanceWithWarning (line 21214) | function findHostInstanceWithWarning(component, methodName) {
function createContainer (line 21244) | function createContainer(containerInfo, isConcurrent, hydrate) {
function updateContainer (line 21248) | function updateContainer(element, container, parentComponent, callback) {
function getPublicRootInstance (line 21255) | function getPublicRootInstance(container) {
function findHostInstanceWithNoPortals (line 21268) | function findHostInstanceWithNoPortals(fiber) {
function injectIntoDevTools (line 21305) | function injectIntoDevTools(devToolsConfig) {
function createPortal$1 (line 21333) | function createPortal$1(children, containerInfo,
function ReactBatch (line 21394) | function ReactBatch(root) {
function ReactWork (line 21499) | function ReactWork() {
function ReactRoot (line 21534) | function ReactRoot(container, isConcurrent, hydrate) {
function isValidContainer (line 21610) | function isValidContainer(node) {
function getReactRootElementInContainer (line 21614) | function getReactRootElementInContainer(container) {
function shouldHydrateDueToLegacyHeuristic (line 21626) | function shouldHydrateDueToLegacyHeuristic(container) {
function legacyCreateRootFromDOMContainer (line 21635) | function legacyCreateRootFromDOMContainer(container, forceHydrate) {
function legacyRenderSubtreeIntoContainer (line 21662) | function legacyRenderSubtreeIntoContainer(parentComponent, children, con...
function createPortal$$1 (line 21706) | function createPortal$$1(children, container) {
function createRoot (line 21823) | function createRoot(container, options) {
function checkDCE (line 21888) | function checkDCE() {
function getIteratorFn (line 21976) | function getIteratorFn(maybeIterable) {
function invariant (line 22008) | function invariant(condition, format, a, b, c, d, e, f) {
function warnNoop (line 22137) | function warnNoop(publicInstance, callerName) {
function Component (line 22226) | function Component(props, context, updater) {
function ComponentDummy (line 22311) | function ComponentDummy() {}
function PureComponent (line 22317) | function PureComponent(props, context, updater) {
function createRef (line 22332) | function createRef() {
function refineResolvedLazyComponent (line 22398) | function refineResolvedLazyComponent(lazyComponent) {
function getWrappedName (line 22402) | function getWrappedName(outerType, innerType, wrapperName) {
function getComponentName (line 22407) | function getComponentName(type) {
function setCurrentlyValidatingElement (line 22464) | function setCurrentlyValidatingElement(element) {
function hasValidRef (line 22551) | function hasValidRef(config) {
function hasValidKey (line 22563) | function hasValidKey(config) {
function defineKeyPropWarningGetter (line 22575) | function defineKeyPropWarningGetter(props, displayName) {
function defineRefPropWarningGetter (line 22589) | function defineRefPropWarningGetter(props, displayName) {
function createElement (line 22683) | function createElement(type, config, children) {
function cloneAndReplaceKey (line 22759) | function cloneAndReplaceKey(oldElement, newKey) {
function cloneElement (line 22769) | function cloneElement(element, config, children) {
function isValidElement (line 22840) | function isValidElement(object) {
function escape (line 22853) | function escape(key) {
function escapeUserProvidedKey (line 22874) | function escapeUserProvidedKey(text) {
function getPooledTraverseContext (line 22880) | function getPooledTraverseContext(mapResult, keyPrefix, mapFunction, map...
function releaseTraverseContext (line 22900) | function releaseTraverseContext(traverseContext) {
function traverseAllChildrenImpl (line 22919) | function traverseAllChildrenImpl(children, nameSoFar, callback, traverse...
function traverseAllChildren (line 23013) | function traverseAllChildren(children, callback, traverseContext) {
function getComponentKey (line 23028) | function getComponentKey(component, index) {
function forEachSingleChild (line 23039) | function forEachSingleChild(bookKeeping, child, name) {
function forEachChildren (line 23058) | function forEachChildren(children, forEachFunc, forEachContext) {
function mapSingleChildIntoContext (line 23067) | function mapSingleChildIntoContext(bookKeeping, child, childKey) {
function mapIntoWithKeyPrefixInternal (line 23090) | function mapIntoWithKeyPrefixInternal(children, array, prefix, func, con...
function mapChildren (line 23113) | function mapChildren(children, func, context) {
function countChildren (line 23131) | function countChildren(children) {
function toArray (line 23143) | function toArray(children) {
function onlyChild (line 23165) | function onlyChild(children) {
function createContext (line 23170) | function createContext(defaultValue, calculateChangedBits) {
function lazy (line 23274) | function lazy(ctor) {
function forwardRef (line 23322) | function forwardRef(render) {
function isValidElementType (line 23345) | function isValidElementType(type) {
function memo (line 23351) | function memo(type, compare) {
function resolveDispatcher (line 23364) | function resolveDispatcher() {
function useContext (line 23370) | function useContext(Context, unstable_observedBits) {
function useState (line 23390) | function useState(initialState) {
function useReducer (line 23395) | function useReducer(reducer, initialArg, init) {
function useRef (line 23400) | function useRef(initialValue) {
function useEffect (line 23405) | function useEffect(create, inputs) {
function useLayoutEffect (line 23410) | function useLayoutEffect(create, inputs) {
function useCallback (line 23415) | function useCallback(callback, inputs) {
function useMemo (line 23420) | function useMemo(create, inputs) {
function useImperativeHandle (line 23425) | function useImperativeHandle(ref, create, inputs) {
function useDebugValue (line 23430) | function useDebugValue(value, formatterFn) {
function getDeclarationErrorAddendum (line 23450) | function getDeclarationErrorAddendum() {
function getSourceInfoErrorAddendum (line 23460) | function getSourceInfoErrorAddendum(elementProps) {
function getCurrentComponentErrorInfo (line 23477) | function getCurrentComponentErrorInfo(parentType) {
function validateExplicitKey (line 23500) | function validateExplicitKey(element, parentType) {
function validateChildKeys (line 23537) | function validateChildKeys(node, parentType) {
function validatePropTypes (line 23577) | function validatePropTypes(element) {
function validateFragmentProps (line 23611) | function validateFragmentProps(fragment) {
function createElementWithValidation (line 23630) | function createElementWithValidation(type, props, children) {
function createFactoryWithValidation (line 23691) | function createFactoryWithValidation(type) {
function cloneElementWithValidation (line 23711) | function cloneElementWithValidation(element, props, children) {
function unstable_clear (line 23942) | function unstable_clear(callback) {
function unstable_getCurrent (line 23957) | function unstable_getCurrent() {
function unstable_getThreadID (line 23965) | function unstable_getThreadID() {
function unstable_trace (line 23969) | function unstable_trace(name, timestamp, callback) {
function unstable_wrap (line 24030) | function unstable_wrap(callback) {
function unstable_subscribe (line 24128) | function unstable_subscribe(subscriber) {
function unstable_unsubscribe (line 24145) | function unstable_unsubscribe(subscriber) {
function onInteractionTraced (line 24155) | function onInteractionTraced(interaction) {
function onInteractionScheduledWorkCompleted (line 24175) | function onInteractionScheduledWorkCompleted(interaction) {
function onWorkScheduled (line 24195) | function onWorkScheduled(interactions, threadID) {
function onWorkStarted (line 24215) | function onWorkStarted(interactions, threadID) {
function onWorkStopped (line 24235) | function onWorkStopped(interactions, threadID) {
function onWorkCanceled (line 24255) | function onWorkCanceled(interactions, threadID) {
function ensureHostCallbackIsScheduled (line 24358) | function ensureHostCallbackIsScheduled() {
function flushFirstCallback (line 24374) | function flushFirstCallback() {
function flushImmediateWork (line 24457) | function flushImmediateWork() {
function flushWork (line 24480) | function flushWork(didTimeout) {
function unstable_runWithPriority (line 24532) | function unstable_runWithPriority(priorityLevel, eventHandler) {
function unstable_next (line 24560) | function unstable_next(eventHandler) {
function unstable_wrapCallback (line 24591) | function unstable_wrapCallback(callback) {
function unstable_scheduleCallback (line 24610) | function unstable_scheduleCallback(callback, deprecated_options) {
function unstable_pauseExecution (line 24683) | function unstable_pauseExecution() {
function unstable_continueExecution (line 24687) | function unstable_continueExecution() {
function unstable_getFirstCallbackNode (line 24694) | function unstable_getFirstCallbackNode() {
function unstable_cancelCallback (line 24698) | function unstable_cancelCallback(callbackNode) {
function unstable_getCurrentPriorityLevel (line 24721) | function unstable_getCurrentPriorityLevel() {
function unstable_shouldYield (line 24725) | function unstable_shouldYield() {
function addStylesToDom (line 25160) | function addStylesToDom (styles, options) {
function listToStyles (line 25187) | function listToStyles (list, options) {
function insertStyleElement (line 25206) | function insertStyleElement (options, style) {
function removeStyleElement (line 25234) | function removeStyleElement (style) {
function createStyleElement (line 25244) | function createStyleElement (options) {
function createLinkElement (line 25264) | function createLinkElement (options) {
function addAttrs (line 25278) | function addAttrs (el, attrs) {
function getNonce (line 25284) | function getNonce() {
function addStyle (line 25290) | function addStyle (obj, options) {
function applyToSingletonTag (line 25370) | function applyToSingletonTag (style, index, remove, obj) {
function applyToTag (line 25389) | function applyToTag (style, obj) {
function updateLink (line 25408) | function updateLink (link, options, obj) {
class App (line 25617) | class App extends React.Component {
method constructor (line 25619) | constructor(props) {
method init (line 25636) | async init() {
method prefsChanged (line 25641) | prefsChanged(prefs) {
method showPreferences (line 25645) | showPreferences() {
method documentStateChanged (line 25649) | documentStateChanged(selection) {
method render (line 25655) | render() {
function _objectWithoutProperties (line 25693) | function _objectWithoutProperties(obj, keys) {
function _objectWithoutProperties (line 25743) | function _objectWithoutProperties(obj, keys) {
function _objectWithoutProperties (line 25781) | function _objectWithoutProperties(obj, keys) {
function _objectWithoutProperties (line 25832) | function _objectWithoutProperties(obj, keys) {
function _objectWithoutProperties (line 25885) | function _objectWithoutProperties(obj, keys) {
function _objectWithoutProperties (line 25959) | function _objectWithoutProperties(obj, keys) { var target = {}; for (var...
function _objectWithoutProperties (line 26012) | function _objectWithoutProperties(obj, keys) { var target = {}; for (var...
function dragStart (line 26018) | function dragStart(event) {
function dragEnd (line 26031) | function dragEnd(event) {}
function _objectWithoutProperties (line 26148) | function _objectWithoutProperties(obj, keys) { var target = {}; for (var...
class Preferences (line 26325) | class Preferences extends React.Component {
method constructor (line 26327) | constructor(props) {
method cancel (line 26342) | cancel() {
method ok (line 26346) | ok() {
method show (line 26358) | show() {
method toggleVisibility (line 26362) | toggleVisibility() {
method render (line 26371) | render() {
method constructor (line 27024) | constructor(state, saveFn = Preferences.saveToSettings) {
method setState (line 27029) | setState(next, cb) {
method lastSearch (line 27038) | set lastSearch(search) {
method lastSearch (line 27044) | get lastSearch() {
method apiKey (line 27048) | set apiKey(key) {
method apiKey (line 27054) | get apiKey() {
method saveToSettings (line 27058) | static async saveToSettings(state) {
method createFromSettings (line 27074) | static async createFromSettings() {
class StockSearch (line 26579) | class StockSearch extends React.Component {
method constructor (line 26580) | constructor(props) {
method documentStateChanged (line 26596) | documentStateChanged(selection) {
method maxResultsChanged (line 26602) | maxResultsChanged(e) {
method viewChanged (line 26609) | viewChanged(view) {
method insertPhotos (line 26615) | async insertPhotos(e) {
method doSearch (line 26685) | doSearch(e) {
method selectImage (line 26730) | selectImage(idx) {
method searchChanged (line 26742) | searchChanged(e) {
method infoForImage (line 26749) | infoForImage(idx) {
method render (line 26756) | render() {
class PanelController (line 26938) | class PanelController {
method constructor (line 26939) | constructor(App) {
method show (line 26950) | show(event) {
method hide (line 26963) | hide(event) {
method update (line 26967) | update() {
class Preferences (line 27023) | class Preferences {
method constructor (line 26327) | constructor(props) {
method cancel (line 26342) | cancel() {
method ok (line 26346) | ok() {
method show (line 26358) | show() {
method toggleVisibility (line 26362) | toggleVisibility() {
method render (line 26371) | render() {
method constructor (line 27024) | constructor(state, saveFn = Preferences.saveToSettings) {
method setState (line 27029) | setState(next, cb) {
method lastSearch (line 27038) | set lastSearch(search) {
method lastSearch (line 27044) | get lastSearch() {
method apiKey (line 27048) | set apiKey(key) {
method apiKey (line 27054) | get apiKey() {
method saveToSettings (line 27058) | static async saveToSettings(state) {
method createFromSettings (line 27074) | static async createFromSettings() {
function fetchBinary (line 27102) | function fetchBinary(url) {
function search (line 27168) | async function search(query, { apikey, locale = "en_US", offset = 0, lim...
FILE: e2e-adobe-stock/src/App.jsx
class App (line 9) | class App extends React.Component {
method constructor (line 11) | constructor(props) {
method init (line 28) | async init() {
method prefsChanged (line 33) | prefsChanged(prefs) {
method showPreferences (line 37) | showPreferences() {
method documentStateChanged (line 41) | documentStateChanged(selection) {
method render (line 47) | render() {
FILE: e2e-adobe-stock/src/components/DraggableImage.jsx
function dragStart (line 5) | function dragStart(event) {
function dragEnd (line 18) | function dragEnd(event) {
FILE: e2e-adobe-stock/src/components/MaxResultsField.jsx
constant MAX_RESULTS (line 3) | const MAX_RESULTS = ['20', '50', '75', '100'];
FILE: e2e-adobe-stock/src/components/Preferences.jsx
class Preferences (line 6) | class Preferences extends React.Component {
method constructor (line 8) | constructor(props) {
method cancel (line 23) | cancel() {
method ok (line 27) | ok() {
method show (line 39) | show() {
method toggleVisibility (line 43) | toggleVisibility() {
method render (line 57) | render() {
FILE: e2e-adobe-stock/src/components/StockSearch.jsx
constant STATUS (line 17) | const STATUS = {
class StockSearch (line 37) | class StockSearch extends React.Component {
method constructor (line 38) | constructor(props) {
method documentStateChanged (line 54) | documentStateChanged(selection) {
method maxResultsChanged (line 60) | maxResultsChanged(e) {
method viewChanged (line 67) | viewChanged(view) {
method insertPhotos (line 73) | async insertPhotos(e) {
method doSearch (line 144) | doSearch(e) {
method selectImage (line 195) | selectImage(idx) {
method searchChanged (line 207) | searchChanged(e) {
method infoForImage (line 214) | infoForImage(idx) {
method render (line 221) | render() {
FILE: e2e-adobe-stock/src/components/ViewSwitcher.jsx
constant VIEWS (line 8) | const VIEWS = {
FILE: e2e-adobe-stock/src/controllers/PanelController.js
class PanelController (line 6) | class PanelController {
method constructor (line 7) | constructor(App) {
method show (line 18) | show(event) {
method hide (line 31) | hide(event) {
method update (line 35) | update() {
FILE: e2e-adobe-stock/src/store/Preferences.js
class Preferences (line 13) | class Preferences {
method constructor (line 14) | constructor(state, saveFn = Preferences.saveToSettings) {
method setState (line 19) | setState(next, cb) {
method lastSearch (line 28) | set lastSearch(search) {
method lastSearch (line 34) | get lastSearch() {
method apiKey (line 38) | set apiKey(key) {
method apiKey (line 44) | get apiKey() {
method saveToSettings (line 48) | static async saveToSettings(state) {
method createFromSettings (line 64) | static async createFromSettings() {
FILE: e2e-adobe-stock/src/util/fetchBinary.js
function fetchBinary (line 1) | function fetchBinary(url) {
FILE: e2e-adobe-stock/src/util/search.js
constant API_ROOT (line 1) | const API_ROOT = "https://stock.adobe.io/Rest/Media/1/Search/Files";
function search (line 2) | async function search(query, { apikey, locale = "en_US", offset = 0, lim...
FILE: e2e-colorize-text/dialogs.js
function notice (line 15) | async function notice({
function alert (line 147) | async function alert(title, ...msgs) {
function error (line 157) | async function error(title, ...msgs) {
function confirm (line 161) | async function confirm(title, msg, buttons = [ "Cancel", "OK" ]) {
function warning (line 168) | async function warning(title, msg, buttons = [ "Cancel", "OK" ]) {
function prompt (line 175) | async function prompt(title, msg, prompt, buttons = [ "Cancel", "OK" ]) {
FILE: e2e-colorize-text/lib/dialogs.js
function strToHtml (line 40) | function strToHtml(str) {
function createDialog (line 93) | async function createDialog({
function alert (line 263) | async function alert(title, ...msgs) {
function error (line 274) | async function error(title, ...msgs) {
function confirm (line 286) | async function confirm(title, msg, buttons = [ 'Cancel', 'OK' ]) {
function warning (line 301) | async function warning(title, msg, buttons = [ 'Cancel', 'OK' ]) {
function prompt (line 318) | async function prompt(title, msg, prompt, buttons = [ 'Cancel', 'OK' ], ...
FILE: e2e-colorize-text/lib/manifest.js
function getManifest (line 27) | async function getManifest() {
function getNearestIcon (line 47) | function getNearestIcon(manifest, size) {
FILE: e2e-colorize-text/main.js
function zip (line 28) | function zip(a, b) {
function sameColor (line 39) | function sameColor(a, b) {
function randomColor (line 49) | function randomColor() {
function getStyleForPosition (line 64) | function getStyleForPosition(pos, styleRanges) {
function gradientize (line 86) | function gradientize(selection) {
function repeatize (line 185) | function repeatize(selection) {
function randomize (line 266) | function randomize(selection) {
function aboutPlugin (line 316) | function aboutPlugin() {
FILE: e2e-create-magento-product/main.js
constant URL (line 12) | const URL = config.URL;
function exportToMagento (line 18) | async function exportToMagento() {
function createUI (line 22) | async function createUI() {
function createSuccessUI (line 69) | async function createSuccessUI() {
function callback (line 84) | async function callback() {
function getAdminToken (line 101) | async function getAdminToken() {
function createRendition (line 116) | async function createRendition(selection) {
function addNewProductWithRendition (line 135) | async function addNewProductWithRendition({ token, base64, sku, name, pr...
FILE: e2e-create-polygon/main.js
function createPolygon (line 4) | function createPolygon() {
FILE: e2e-customize-banner/main.js
function createDialog (line 42) | function createDialog() {
function createCustomBanner (line 75) | function createCustomBanner(selection, width, height) {
function myPluginCommand (line 83) | function myPluginCommand(selection) {
FILE: e2e-stock-chart/main.js
function h (line 28) | function h(tag, props, ...children) {
method onclick (line 76) | onclick() { dialog.close(); deferredPromise.reject("Operation Cancelled") }
method onclick (line 77) | onclick(e) { dialog.close(); e.preventDefault(); handleStockQuotePicked(...
function processQuoteData (line 93) | function processQuoteData(quoteData) {
function getStockQuoteDetails (line 102) | function getStockQuoteDetails(quote) {
function handleStockQuotePicked (line 110) | function handleStockQuotePicked() {
function onsubmit (line 115) | function onsubmit() {
function getMetrics (line 120) | function getMetrics(selection) {
function convertPointsToSVGPathData (line 128) | function convertPointsToSVGPathData(points) {
function normalizeQutes (line 144) | function normalizeQutes(box, data, numDays) {
function plotQuotesOnArtboard (line 169) | function plotQuotesOnArtboard(metrics, data, days) {
function createPathWithData (line 188) | function createPathWithData(pathData) {
function addPathGraphicsFromPoints (line 199) | function addPathGraphicsFromPoints(selection, points) {
function createTextElement (line 205) | function createTextElement(str, color, size = 0) {
function createLineChartFromData (line 222) | function createLineChartFromData(selection, quoteResults, quote) {
function performStockFetchAndDraw (line 264) | function performStockFetchAndDraw(quote) {
function saveLastQuoteToDataFile (line 274) | async function saveLastQuoteToDataFile(lastQuote) {
function readLastQuoteFromDataFile (line 287) | async function readLastQuoteFromDataFile() {
function createDeferredPromise (line 302) | function createDeferredPromise(selection) {
function startStockChartWorkflow (line 312) | async function startStockChartWorkflow(selection, root) {
FILE: how-to-create-path-objects/main.js
function pointOnCircle (line 3) | function pointOnCircle(radius, angle) {
function createWedge (line 10) | function createWedge(selection, radius, startAngle, endAngle, color) {
function createPieChartHandlerFunction (line 21) | function createPieChartHandlerFunction(selection) {
FILE: how-to-display-an-alert/lib/dialogs.js
function strToHtml (line 40) | function strToHtml(str) {
function createDialog (line 93) | async function createDialog({
function alert (line 263) | async function alert(title, ...msgs) {
function error (line 274) | async function error(title, ...msgs) {
function confirm (line 286) | async function confirm(title, msg, buttons = [ 'Cancel', 'OK' ]) {
function warning (line 301) | async function warning(title, msg, buttons = [ 'Cancel', 'OK' ]) {
function prompt (line 318) | async function prompt(title, msg, prompt, buttons = [ 'Cancel', 'OK' ], ...
FILE: how-to-display-an-alert/lib/manifest.js
function getManifest (line 27) | async function getManifest() {
function getNearestIcon (line 47) | function getNearestIcon(manifest, size) {
FILE: how-to-display-an-alert/main.js
function showAlert (line 3) | async function showAlert() {
function showError (line 9) | async function showError() {
FILE: how-to-draw-lines/main.js
function randomColor (line 11) | function randomColor() {
function createLinesHandlerFunction (line 17) | function createLinesHandlerFunction(selection) {
FILE: how-to-export-a-rendition/main.js
function exportRendition (line 4) | async function exportRendition(selection) {
function createDialog (line 43) | function createDialog(filepath) {
FILE: how-to-integrate-with-OAuth/main.js
function launchOAuth (line 5) | async function launchOAuth(selection) {
function xhrRequest (line 41) | function xhrRequest(url, method) {
FILE: how-to-make-network-requests/main.js
function applyImage (line 5) | function applyImage(selection) {
function downloadImage (line 20) | async function downloadImage(selection, jsonResponse) {
function xhrBinary (line 34) | function xhrBinary(url) {
function applyImagefill (line 57) | function applyImagefill(selection, file) {
FILE: how-to-read-a-file/main.js
function insertTextFromFileHandler (line 4) | async function insertTextFromFileHandler(selection) {
FILE: how-to-style-text/main.js
function createRedTextHandlerFunction (line 3) | function createRedTextHandlerFunction(selection) {
function createRainbowTextHandlerFunction (line 26) | function createRainbowTextHandlerFunction(selection) {
FILE: how-to-work-with-scenenodelist/main.js
function createElements (line 4) | function createElements(selection) {
function filterAndColor (line 37) | function filterAndColor(selection, root) {
FILE: i18n-pojo/main.js
function mainCommand (line 22) | async function mainCommand() {
function createDialog (line 33) | function createDialog() {
FILE: quick-start-panel/main.js
function create (line 4) | function create() {
function show (line 60) | function show(event) {
function update (line 64) | function update() {
FILE: quick-start-react/src/HelloForm.jsx
class HelloForm (line 4) | class HelloForm extends React.Component {
method constructor (line 5) | constructor(props) {
method render (line 26) | render() {
FILE: quick-start-react/src/main.jsx
function main (line 6) | function main(selection) {
FILE: quick-start/main.js
function rectangleHandlerFunction (line 3) | function rectangleHandlerFunction(selection) {
FILE: sg-chart-generator/main.js
function barChart (line 22) | function barChart(selection, root) {
function pieChart (line 43) | function pieChart(selection, root) {
FILE: sg-dummy-data/main.js
function generateDummyData (line 13) | function generateDummyData(selection) {
FILE: sg-dynamic-button/main.js
function updatePadding (line 18) | function updatePadding(selection, root) {
FILE: sg-fit-to-object/main.js
function fitItem (line 24) | function fitItem(selection) {
function rotatateClockFitItem (line 28) | function rotatateClockFitItem(selection) {
function rotateCounterClockFitItem (line 32) | function rotateCounterClockFitItem(selection) {
function fitIt (line 38) | function fitIt(selection, direction) {
function getItemsToFit (line 68) | function getItemsToFit(selection) {
function rotate (line 94) | function rotate(node, direction, centerPoint) {
function resize (line 129) | function resize(node, globalBounds) {
function getCenterPoint (line 138) | function getCenterPoint(node) {
FILE: sg-lots-of-lines/main.js
function crossedLines (line 3) | function crossedLines() {
function hypnoticLines (line 10) | function hypnoticLines() {
function drawLines (line 37) | function drawLines(selection, lines) {
FILE: sg-lots-of-rects/main.js
function myPluginCommand (line 4) | function myPluginCommand(selection) {
FILE: sg-margin-guides/main.js
function createMarginGuide (line 16) | function createMarginGuide(selection) {
function removeMarginGuide (line 49) | function removeMarginGuide(selection) {
function createRectangle (line 64) | function createRectangle(artboard, marginLength, marginWidth, marginHeig...
function getMetrics (line 97) | function getMetrics(artboard) {
FILE: sg-meme-me/main.js
function memeMe (line 11) | function memeMe(selection) {
FILE: sg-repeater/main.js
function simpleRepeat (line 14) | function simpleRepeat(selection) {
function rotateRepeat (line 32) | function rotateRepeat(selection) {
FILE: sg-turtle/main.js
function randomColor (line 30) | function randomColor() {
function parseInstruction (line 47) | function parseInstruction(instruction) {
function getCenterPointFromBounds (line 65) | function getCenterPointFromBounds({ x, y, width, height } = {}) {
function execCommand (line 78) | function execCommand(context, instruction) {
function execProgram (line 233) | function execProgram(node, selection, instructions) {
function goTurtleGo (line 258) | function goTurtleGo(node, selection) {
function execute (line 266) | function execute(selection) {
FILE: sg-update-weather/main.js
function query (line 8) | function query(yql) {
function yqlWeatherAdapter (line 32) | async function yqlWeatherAdapter(place, unit = "f") {
function fetchWeather (line 78) | async function fetchWeather(location) {
function getAllOperableElements (line 82) | function getAllOperableElements(selection) {
function updateWeather (line 88) | async function updateWeather(selection) {
FILE: ui-button-padding-hyperscript/main.js
function __webpack_require__ (line 7) | function __webpack_require__(moduleId) {
function getDialog (line 95) | function getDialog() {
function context (line 153) | function context () {
function isNode (line 292) | function isNode (el) {
function forEach (line 296) | function forEach (arr, fn) {
function isArray (line 301) | function isArray (arr) {
function ClassList (line 429) | function ClassList(elem) {
function filter (line 512) | function filter (arr, fn) {
function isTruthy (line 520) | function isTruthy(value) {
FILE: ui-button-padding-hyperscript/src/main.js
function getDialog (line 4) | function getDialog() {
FILE: ui-button-padding/main.js
function getDialog (line 4) | function getDialog() {
FILE: ui-buttons-galore/main.js
function createDialog (line 3) | function createDialog(id = "dialog") {
function menuCommand (line 87) | async function menuCommand() {
FILE: ui-context-menu/main.js
function getDialog (line 4) | function getDialog() {
method menuCommand (line 47) | menuCommand() {
method anotherMenuCommand (line 50) | anotherMenuCommand() {
FILE: ui-create-chart/main.js
function getDialog (line 4) | function getDialog() {
FILE: ui-datagrid-react/main.js
function __webpack_require__ (line 7) | function __webpack_require__(moduleId) {
function cssWithMappingToString (line 165) | function cssWithMappingToString(item, useSourceMap) {
function toComment (line 185) | function toComment(sourceMap) {
function camelize (line 270) | function camelize(string) {
function camelizeStyleName (line 320) | function camelizeStyleName(string) {
function containsNode (line 354) | function containsNode(outerNode, innerNode) {
function makeEmptyFunction (line 395) | function makeEmptyFunction(arg) {
function getActiveElement (line 482) | function getActiveElement(doc) /*?DOMElement*/{
function hyphenate (line 531) | function hyphenate(string) {
function hyphenateStyleName (line 578) | function hyphenateStyleName(string) {
function invariant (line 625) | function invariant(condition, format, a, b, c, d, e, f) {
function isNode (line 673) | function isNode(object) {
function isTextNode (line 708) | function isTextNode(object) {
function is (line 744) | function is(x, y) {
function shallowEqual (line 762) | function shallowEqual(objA, objB) {
function toObject (line 885) | function toObject(val) {
function shouldUseNative (line 893) | function shouldUseNative() {
function checkPropTypes (line 1015) | function checkPropTypes(typeSpecs, values, location, componentName, getS...
function callCallback (line 1195) | function callCallback() {
function onError (line 1221) | function onError(event) {
function recomputePluginOrdering (line 1360) | function recomputePluginOrdering() {
function publishEventForPlugin (line 1389) | function publishEventForPlugin(dispatchConfig, pluginModule, eventName) {
function publishRegistrationName (line 1416) | function publishRegistrationName(registrationName, pluginModule, eventNa...
function injectEventPluginOrder (line 1475) | function injectEventPluginOrder(injectedEventPluginOrder) {
function injectEventPluginsByName (line 1492) | function injectEventPluginsByName(injectedNamesToPlugins) {
function executeDispatch (line 1559) | function executeDispatch(event, simulated, listener, inst) {
function executeDispatchesInOrder (line 1569) | function executeDispatchesInOrder(event, simulated) {
function accumulateInto (line 1624) | function accumulateInto(current, next) {
function forEachAccumulated (line 1659) | function forEachAccumulated(arr, cb, scope) {
function isInteractive (line 1696) | function isInteractive(tag) {
function shouldPreventMouseEvent (line 1700) | function shouldPreventMouseEvent(name, type, props) {
function getListener (line 1762) | function getListener(inst, registrationName) {
function extractEvents (line 1792) | function extractEvents(topLevelType, targetInst, nativeEvent, nativeEven...
function runEventsInBatch (line 1807) | function runEventsInBatch(events, simulated) {
function runExtractedEventsInBatch (line 1831) | function runExtractedEventsInBatch(topLevelType, targetInst, nativeEvent...
function precacheFiberNode (line 1865) | function precacheFiberNode(hostInst, node) {
function getClosestInstanceFromNode (line 1873) | function getClosestInstanceFromNode(node) {
function getInstanceFromNode$1 (line 1901) | function getInstanceFromNode$1(node) {
function getNodeFromInstance$1 (line 1917) | function getNodeFromInstance$1(inst) {
function getFiberCurrentPropsFromNode$1 (line 1929) | function getFiberCurrentPropsFromNode$1(node) {
function updateFiberProps (line 1933) | function updateFiberProps(node, props) {
function getParent (line 1946) | function getParent(inst) {
function getLowestCommonAncestor (line 1965) | function getLowestCommonAncestor(instA, instB) {
function getParentInstance (line 2007) | function getParentInstance(inst) {
function traverseTwoPhase (line 2014) | function traverseTwoPhase(inst, fn, arg) {
function traverseEnterLeave (line 2036) | function traverseEnterLeave(from, to, fn, argFrom, argTo) {
function listenerAtPhase (line 2080) | function listenerAtPhase(inst, event, propagationPhase) {
function accumulateDirectionalDispatches (line 2101) | function accumulateDirectionalDispatches(inst, phase, event) {
function accumulateTwoPhaseDispatchesSingle (line 2119) | function accumulateTwoPhaseDispatchesSingle(event) {
function accumulateTwoPhaseDispatchesSingleSkipTarget (line 2128) | function accumulateTwoPhaseDispatchesSingleSkipTarget(event) {
function accumulateDispatches (line 2141) | function accumulateDispatches(inst, ignoredDirection, event) {
function accumulateDirectDispatchesSingle (line 2157) | function accumulateDirectDispatchesSingle(event) {
function accumulateTwoPhaseDispatches (line 2163) | function accumulateTwoPhaseDispatches(events) {
function accumulateTwoPhaseDispatchesSkipTarget (line 2167) | function accumulateTwoPhaseDispatchesSkipTarget(events) {
function accumulateEnterLeaveDispatches (line 2171) | function accumulateEnterLeaveDispatches(leave, enter, from, to) {
function accumulateDirectDispatches (line 2175) | function accumulateDirectDispatches(events) {
function unsafeCastStringToDOMTopLevelType (line 2190) | function unsafeCastStringToDOMTopLevelType(topLevelType) {
function unsafeCastDOMTopLevelTypeToString (line 2194) | function unsafeCastDOMTopLevelTypeToString(topLevelType) {
function makePrefixMap (line 2205) | function makePrefixMap(styleProp, eventName) {
function getVendorPrefixedEventName (line 2265) | function getVendorPrefixedEventName(eventName) {
function getRawEventName (line 2377) | function getRawEventName(topLevelType) {
function getTextContentAccessor (line 2389) | function getTextContentAccessor() {
function initialize (line 2415) | function initialize(nativeEventTarget) {
function reset (line 2421) | function reset() {
function getData (line 2427) | function getData() {
function getText (line 2457) | function getText() {
function SyntheticEvent (line 2508) | function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeE...
function Class (line 2635) | function Class() {
function getPooledWarningPropertyDefinition (line 2690) | function getPooledWarningPropertyDefinition(propName, getVal) {
function getPooledEvent (line 2717) | function getPooledEvent(dispatchConfig, targetInst, nativeEvent, nativeI...
function releasePooledEvent (line 2727) | function releasePooledEvent(event) {
function addEventPoolingTo (line 2736) | function addEventPoolingTo(EventConstructor) {
function isKeypressCommand (line 2824) | function isKeypressCommand(nativeEvent) {
function getCompositionEventType (line 2836) | function getCompositionEventType(topLevelType) {
function isFallbackCompositionStart (line 2855) | function isFallbackCompositionStart(topLevelType, nativeEvent) {
function isFallbackCompositionEnd (line 2866) | function isFallbackCompositionEnd(topLevelType, nativeEvent) {
function getDataFromCustomEvent (line 2894) | function getDataFromCustomEvent(nativeEvent) {
function extractCompositionEvent (line 2908) | function extractCompositionEvent(topLevelType, targetInst, nativeEvent, ...
function getNativeBeforeInputChars (line 2960) | function getNativeBeforeInputChars(topLevelType, nativeEvent) {
function getFallbackBeforeInputChars (line 3014) | function getFallbackBeforeInputChars(topLevelType, nativeEvent) {
function extractBeforeInputEvent (line 3078) | function extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, ...
function restoreStateOfTarget (line 3153) | function restoreStateOfTarget(target) {
function enqueueStateRestore (line 3168) | function enqueueStateRestore(target) {
function needsStateRestore (line 3180) | function needsStateRestore() {
function restoreStateIfNeeded (line 3184) | function restoreStateIfNeeded() {
function batchedUpdates (line 3224) | function batchedUpdates(fn, bookkeeping) {
function interactiveUpdates (line 3250) | function interactiveUpdates(fn, a, b) {
function isTextInputElement (line 3285) | function isTextInputElement(elem) {
function getEventTarget (line 3316) | function getEventTarget(nativeEvent) {
function isEventSupported (line 3345) | function isEventSupported(eventNameSuffix, capture) {
function isCheckable (line 3362) | function isCheckable(elem) {
function getTracker (line 3368) | function getTracker(node) {
function detachTracker (line 3372) | function detachTracker(node) {
function getValueFromNode (line 3376) | function getValueFromNode(node) {
function trackValueOnNode (line 3391) | function trackValueOnNode(node) {
function track (line 3440) | function track(node) {
function updateValueIfChanged (line 3449) | function updateValueIfChanged(node) {
function getIteratorFn (line 3497) | function getIteratorFn(maybeIterable) {
function getComponentName (line 3508) | function getComponentName(fiber) {
function describeFiber (line 3545) | function describeFiber(fiber) {
function getStackAddendumByWorkInProgressFiber (line 3567) | function getStackAddendumByWorkInProgressFiber(workInProgress) {
function getCurrentFiberOwnerName$1 (line 3578) | function getCurrentFiberOwnerName$1() {
function getCurrentFiberStackAddendum$1 (line 3592) | function getCurrentFiberStackAddendum$1() {
function resetCurrentFiber (line 3605) | function resetCurrentFiber() {
function setCurrentFiber (line 3611) | function setCurrentFiber(fiber) {
function setCurrentPhase (line 3617) | function setCurrentPhase(phase) {
function isAttributeNameSafe (line 3677) | function isAttributeNameSafe(attributeName) {
function shouldIgnoreAttribute (line 3695) | function shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {
function shouldRemoveAttributeWithWarning (line 3708) | function shouldRemoveAttributeWithWarning(name, value, propertyInfo, isC...
function shouldRemoveAttribute (line 3735) | function shouldRemoveAttribute(name, value, propertyInfo, isCustomCompon...
function getPropertyInfo (line 3760) | function getPropertyInfo(name) {
function PropertyInfoRecord (line 3764) | function PropertyInfoRecord(name, type, mustUseProperty, attributeName, ...
function getValueForProperty (line 3916) | function getValueForProperty(node, name, expected, propertyInfo) {
function getValueForAttribute (line 3975) | function getValueForAttribute(node, name, expected) {
function setValueForProperty (line 3998) | function setValueForProperty(node, name, value, isCustomComponentTag) {
function isControlled (line 4107) | function isControlled(props) {
function getHostProps (line 4129) | function getHostProps(element, props) {
function initWrapperState (line 4143) | function initWrapperState(element, props) {
function updateChecked (line 4167) | function updateChecked(element, props) {
function updateWrapper (line 4175) | function updateWrapper(element, props) {
function postMountWrapper (line 4217) | function postMountWrapper(element, props, isHydrating) {
function restoreControlledState (line 4257) | function restoreControlledState(element, props) {
function updateNamedCousins (line 4263) | function updateNamedCousins(rootNode, props) {
function setDefaultValue (line 4313) | function setDefaultValue(node, type, value) {
function getSafeValue (line 4325) | function getSafeValue(value) {
function createAndAccumulateChangeEvent (line 4349) | function createAndAccumulateChangeEvent(inst, nativeEvent, target) {
function shouldUseChangeEvent (line 4366) | function shouldUseChangeEvent(elem) {
function manualDispatchChangeEvent (line 4371) | function manualDispatchChangeEvent(nativeEvent) {
function runEventInBatch (line 4388) | function runEventInBatch(event) {
function getInstIfValueChanged (line 4392) | function getInstIfValueChanged(targetInst) {
function getTargetInstForChangeEvent (line 4399) | function getTargetInstForChangeEvent(topLevelType, targetInst) {
function startWatchingForValueChange (line 4420) | function startWatchingForValueChange(target, targetInst) {
function stopWatchingForValueChange (line 4430) | function stopWatchingForValueChange() {
function handlePropertyChange (line 4443) | function handlePropertyChange(nativeEvent) {
function handleEventsForInputEventPolyfill (line 4452) | function handleEventsForInputEventPolyfill(topLevelType, target, targetI...
function getTargetInstForInputEventPolyfill (line 4472) | function getTargetInstForInputEventPolyfill(topLevelType, targetInst) {
function shouldUseClickEvent (line 4491) | function shouldUseClickEvent(elem) {
function getTargetInstForClickEvent (line 4499) | function getTargetInstForClickEvent(topLevelType, targetInst) {
function getTargetInstForInputOrChangeEvent (line 4505) | function getTargetInstForInputOrChangeEvent(topLevelType, targetInst) {
function handleControlledInputBlur (line 4511) | function handleControlledInputBlur(node) {
function modifierStateGetter (line 4605) | function modifierStateGetter(keyArg) {
function getEventModifierState (line 4615) | function getEventModifierState(nativeEvent) {
function get (line 4783) | function get(key) {
function has (line 4787) | function has(key) {
function set (line 4791) | function set(key, value) {
function isFiberMountedImpl (line 4820) | function isFiberMountedImpl(fiber) {
function isFiberMounted (line 4849) | function isFiberMounted(fiber) {
function isMounted (line 4853) | function isMounted(component) {
function assertIsMounted (line 4871) | function assertIsMounted(fiber) {
function findCurrentFiberUsingSlowPath (line 4875) | function findCurrentFiberUsingSlowPath(fiber) {
function findCurrentHostFiber (line 4987) | function findCurrentHostFiber(parent) {
function findCurrentHostFiberWithNoPortals (line 5020) | function findCurrentHostFiberWithNoPortals(parent) {
function addEventBubbleListener (line 5053) | function addEventBubbleListener(element, eventType, listener) {
function addEventCaptureListener (line 5057) | function addEventCaptureListener(element, eventType, listener) {
function getEventCharCode (line 5100) | function getEventCharCode(nativeEvent) {
function getEventKey (line 5198) | function getEventKey(nativeEvent) {
function addEventTypeNameToConfig (line 5362) | function addEventTypeNameToConfig(_ref, isInteractive) {
function findRootContainerNode (line 5514) | function findRootContainerNode(inst) {
function getTopLevelCallbackBookKeeping (line 5529) | function getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targe...
function releaseTopLevelCallbackBookKeeping (line 5545) | function releaseTopLevelCallbackBookKeeping(instance) {
function handleTopLevel (line 5555) | function handleTopLevel(bookKeeping) {
function setEnabled (line 5585) | function setEnabled(enabled) {
function isEnabled (line 5589) | function isEnabled() {
function trapBubbledEvent (line 5602) | function trapBubbledEvent(topLevelType, element) {
function trapCapturedEvent (line 5622) | function trapCapturedEvent(topLevelType, element) {
function dispatchInteractiveEvent (line 5633) | function dispatchInteractiveEvent(topLevelType, nativeEvent) {
function dispatchEvent (line 5637) | function dispatchEvent(topLevelType, nativeEvent) {
method _enabled (line 5664) | get _enabled () { return _enabled; }
function getListeningForDocument (line 5736) | function getListeningForDocument(mountAt) {
function listenTo (line 5767) | function listenTo(registrationName, mountAt) {
function isListeningToAllDependencies (line 5813) | function isListeningToAllDependencies(registrationName, mountAt) {
function getLeafNode (line 5831) | function getLeafNode(node) {
function getSiblingNode (line 5845) | function getSiblingNode(node) {
function getNodeForCharacterOffset (line 5861) | function getNodeForCharacterOffset(root, offset) {
function getOffsets (line 5888) | function getOffsets(outerNode) {
function getModernOffsetsFromPoints (line 5929) | function getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset,...
function setOffsets (line 6010) | function setOffsets(node, offsets) {
function isInDocument (line 6049) | function isInDocument(node) {
function hasSelectionCapabilities (line 6065) | function hasSelectionCapabilities(elem) {
function getSelectionInformation (line 6070) | function getSelectionInformation() {
function restoreSelection (line 6083) | function restoreSelection(priorSelectionInformation) {
function getSelection$1 (line 6123) | function getSelection$1(input) {
function setSelection (line 6146) | function setSelection(input, offsets) {
function getSelection (line 6188) | function getSelection(node) {
function constructSelectEvent (line 6211) | function constructSelectEvent(nativeEvent, nativeEventTarget) {
function flattenChildren (line 6697) | function flattenChildren(children) {
function validateProps (line 6720) | function validateProps(element, props) {
function postMountWrapper$1 (line 6730) | function postMountWrapper$1(element, props) {
function getHostProps$1 (line 6737) | function getHostProps$1(element, props) {
function getDeclarationErrorAddendum (line 6759) | function getDeclarationErrorAddendum() {
function checkSelectPropTypes (line 6772) | function checkSelectPropTypes(props) {
function updateOptions (line 6789) | function updateOptions(node, multiple, propValue, setDefaultSelected) {
function getHostProps$2 (line 6847) | function getHostProps$2(element, props) {
function initWrapperState$1 (line 6853) | function initWrapperState$1(element, props) {
function postMountWrapper$2 (line 6873) | function postMountWrapper$2(element, props) {
function postUpdateWrapper (line 6884) | function postUpdateWrapper(element, props) {
function restoreControlledState$2 (line 6907) | function restoreControlledState$2(element, props) {
function getHostProps$3 (line 6937) | function getHostProps$3(element, props) {
function initWrapperState$2 (line 6956) | function initWrapperState$2(element, props) {
function updateWrapper$1 (line 6996) | function updateWrapper$1(element, props) {
function postMountWrapper$3 (line 7017) | function postMountWrapper$3(element, props) {
function restoreControlledState$3 (line 7032) | function restoreControlledState$3(element, props) {
function getIntrinsicNamespace (line 7048) | function getIntrinsicNamespace(type) {
function getChildNamespace (line 7059) | function getChildNamespace(parentNamespace, type) {
function prefixKey (line 7195) | function prefixKey(prefix, key) {
function dangerousStyleValue (line 7222) | function dangerousStyleValue(name, value, isCustomProperty) {
function createDangerousStringForStyles (line 7335) | function createDangerousStringForStyles(styles) {
function setValueForStyles (line 7363) | function setValueForStyles(node, styles, getStack) {
function assertValidProps (line 7418) | function assertValidProps(tag, props, getStack) {
function isCustomComponent (line 7436) | function isCustomComponent(tagName, props) {
function getStackAddendum (line 8009) | function getStackAddendum() {
function validateProperty (line 8014) | function validateProperty(tagName, name) {
function warnInvalidARIAProps (line 8059) | function warnInvalidARIAProps(type, props) {
function validateProperties (line 8080) | function validateProperties(type, props) {
function getStackAddendum$1 (line 8089) | function getStackAddendum$1() {
function validateProperties$1 (line 8094) | function validateProperties$1(type, props) {
function getStackAddendum$2 (line 8109) | function getStackAddendum$2() {
function validateProperties$2 (line 8256) | function validateProperties$2(type, props, canUseEventSystem) {
function ensureListeningTo (line 8386) | function ensureListeningTo(rootContainerElement, registrationName) {
function getOwnerDocumentFromRootContainer (line 8392) | function getOwnerDocumentFromRootContainer(rootContainerElement) {
function trapClickOnNonInteractiveElement (line 8396) | function trapClickOnNonInteractiveElement(node) {
function setInitialDOMProperties (line 8409) | function setInitialDOMProperties(tag, domElement, rootContainerElement, ...
function updateDOMProperties (line 8461) | function updateDOMProperties(domElement, updatePayload, wasCustomCompone...
function createElement$1 (line 8478) | function createElement$1(type, props, rootContainerElement, parentNamesp...
function createTextNode$1 (line 8530) | function createTextNode$1(text, rootContainerElement) {
function setInitialProperties$1 (line 8534) | function setInitialProperties$1(domElement, tag, rawProps, rootContainer...
function diffProperties$1 (line 8645) | function diffProperties$1(domElement, tag, lastRawProps, nextRawProps, r...
function updateProperties$1 (line 8810) | function updateProperties$1(domElement, updatePayload, tag, lastRawProps...
function getPossibleStandardName (line 8843) | function getPossibleStandardName(propName) {
function diffHydratedProperties$1 (line 8854) | function diffHydratedProperties$1(domElement, tag, rawProps, parentNames...
function diffHydratedText$1 (line 9103) | function diffHydratedText$1(textNode, text) {
function warnForUnmatchedText$1 (line 9108) | function warnForUnmatchedText$1(textNode, text) {
function warnForDeletedHydratableElement$1 (line 9114) | function warnForDeletedHydratableElement$1(parentNode, child) {
function warnForDeletedHydratableText$1 (line 9124) | function warnForDeletedHydratableText$1(parentNode, child) {
function warnForInsertedHydratedElement$1 (line 9134) | function warnForInsertedHydratedElement$1(parentNode, tag, props) {
function warnForInsertedHydratedText$1 (line 9144) | function warnForInsertedHydratedText$1(parentNode, text) {
function restoreControlledState$1 (line 9161) | function restoreControlledState$1(domElement, tag, props) {
function shim (line 9496) | function shim() {
function shouldAutoFocusHostComponent (line 9535) | function shouldAutoFocusHostComponent(type, props) {
function getRootHostContext (line 9546) | function getRootHostContext(rootContainerInstance) {
function getChildHostContext (line 9576) | function getChildHostContext(parentHostContext, type, rootContainerInsta...
function getPublicInstance (line 9587) | function getPublicInstance(instance) {
function prepareForCommit (line 9591) | function prepareForCommit(containerInfo) {
function resetAfterCommit (line 9597) | function resetAfterCommit(containerInfo) {
function createInstance (line 9604) | function createInstance(type, props, rootContainerInstance, hostContext,...
function appendInitialChild (line 9623) | function appendInitialChild(parentInstance, child) {
function finalizeInitialChildren (line 9627) | function finalizeInitialChildren(domElement, type, props, rootContainerI...
function prepareUpdate (line 9632) | function prepareUpdate(domElement, type, oldProps, newProps, rootContain...
function shouldSetTextContent (line 9644) | function shouldSetTextContent(type, props) {
function shouldDeprioritizeSubtree (line 9648) | function shouldDeprioritizeSubtree(type, props) {
function createTextInstance (line 9652) | function createTextInstance(text, rootContainerInstance, hostContext, in...
function commitMount (line 9673) | function commitMount(domElement, type, newProps, internalInstanceHandle) {
function commitUpdate (line 9685) | function commitUpdate(domElement, updatePayload, type, oldProps, newProp...
function resetTextContent (line 9693) | function resetTextContent(domElement) {
function commitTextUpdate (line 9697) | function commitTextUpdate(textInstance, oldText, newText) {
function appendChild (line 9701) | function appendChild(parentInstance, child) {
function appendChildToContainer (line 9705) | function appendChildToContainer(container, child) {
function insertBefore (line 9713) | function insertBefore(parentInstance, child, beforeChild) {
function insertInContainerBefore (line 9717) | function insertInContainerBefore(container, child, beforeChild) {
function removeChild (line 9725) | function removeChild(parentInstance, child) {
function removeChildFromContainer (line 9729) | function removeChildFromContainer(container, child) {
function canHydrateInstance (line 9743) | function canHydrateInstance(instance, type, props) {
function canHydrateTextInstance (line 9751) | function canHydrateTextInstance(instance, text) {
function getNextHydratableSibling (line 9760) | function getNextHydratableSibling(instance) {
function getFirstHydratableChild (line 9769) | function getFirstHydratableChild(parentInstance) {
function hydrateInstance (line 9778) | function hydrateInstance(instance, type, props, rootContainerInstance, h...
function hydrateTextInstance (line 9791) | function hydrateTextInstance(textInstance, text, internalInstanceHandle) {
function didNotMatchHydratedContainerTextInstance (line 9796) | function didNotMatchHydratedContainerTextInstance(parentContainer, textI...
function didNotMatchHydratedTextInstance (line 9802) | function didNotMatchHydratedTextInstance(parentType, parentProps, parent...
function didNotHydrateContainerInstance (line 9808) | function didNotHydrateContainerInstance(parentContainer, instance) {
function didNotHydrateInstance (line 9818) | function didNotHydrateInstance(parentType, parentProps, parentInstance, ...
function didNotFindHydratableContainerInstance (line 9828) | function didNotFindHydratableContainerInstance(parentContainer, type, pr...
function didNotFindHydratableContainerTextInstance (line 9834) | function didNotFindHydratableContainerTextInstance(parentContainer, text) {
function didNotFindHydratableInstance (line 9840) | function didNotFindHydratableInstance(parentType, parentProps, parentIns...
function didNotFindHydratableTextInstance (line 9846) | function didNotFindHydratableTextInstance(parentType, parentProps, paren...
function recordEffect (line 10051) | function recordEffect() {
function recordScheduleUpdate (line 10057) | function recordScheduleUpdate() {
function startRequestCallbackTimer (line 10068) | function startRequestCallbackTimer() {
function stopRequestCallbackTimer (line 10077) | function stopRequestCallbackTimer(didExpire, expirationTime) {
function startWorkTimer (line 10087) | function startWorkTimer(fiber) {
function cancelWorkTimer (line 10101) | function cancelWorkTimer(fiber) {
function stopWorkTimer (line 10113) | function stopWorkTimer(fiber) {
function stopFailedWorkTimer (line 10128) | function stopFailedWorkTimer(fiber) {
function startPhaseTimer (line 10144) | function startPhaseTimer(fiber, phase) {
function stopPhaseTimer (line 10158) | function stopPhaseTimer() {
function startWorkLoopTimer (line 10172) | function startWorkLoopTimer(nextUnitOfWork) {
function stopWorkLoopTimer (line 10187) | function stopWorkLoopTimer(interruptedBy, didCompleteRoot) {
function startCommitTimer (line 10211) | function startCommitTimer() {
function stopCommitTimer (line 10223) | function stopCommitTimer() {
function startCommitSnapshotEffectsTimer (line 10244) | function startCommitSnapshotEffectsTimer() {
function stopCommitSnapshotEffectsTimer (line 10254) | function stopCommitSnapshotEffectsTimer() {
function startCommitHostEffectsTimer (line 10265) | function startCommitHostEffectsTimer() {
function stopCommitHostEffectsTimer (line 10275) | function stopCommitHostEffectsTimer() {
function startCommitLifeCyclesTimer (line 10286) | function startCommitLifeCyclesTimer() {
function stopCommitLifeCyclesTimer (line 10296) | function stopCommitLifeCyclesTimer() {
function createCursor (line 10317) | function createCursor(defaultValue) {
function pop (line 10323) | function pop(cursor, fiber) {
function push (line 10348) | function push(cursor, value, fiber) {
function checkThatStackIsEmpty (line 10360) | function checkThatStackIsEmpty() {
function resetStackAfterFatalErrorInDev (line 10368) | function resetStackAfterFatalErrorInDev() {
function getUnmaskedContext (line 10391) | function getUnmaskedContext(workInProgress) {
function cacheContext (line 10403) | function cacheContext(workInProgress, unmaskedContext, maskedContext) {
function getMaskedContext (line 10409) | function getMaskedContext(workInProgress, unmaskedContext) {
function hasContextChanged (line 10443) | function hasContextChanged() {
function isContextConsumer (line 10447) | function isContextConsumer(fiber) {
function isContextProvider (line 10451) | function isContextProvider(fiber) {
function popContextProvider (line 10455) | function popContextProvider(fiber) {
function popTopLevelContextObject (line 10464) | function popTopLevelContextObject(fiber) {
function pushTopLevelContextObject (line 10469) | function pushTopLevelContextObject(fiber, context, didChange) {
function processChildContext (line 10476) | function processChildContext(fiber, parentContext) {
function pushContextProvider (line 10521) | function pushContextProvider(workInProgress) {
function invalidateContextProvider (line 10541) | function invalidateContextProvider(workInProgress, didChange) {
function findCurrentUnmaskedContext (line 10565) | function findCurrentUnmaskedContext(fiber) {
function msToExpirationTime (line 10598) | function msToExpirationTime(ms) {
function expirationTimeToMs (line 10603) | function expirationTimeToMs(expirationTime) {
function ceiling (line 10607) | function ceiling(num, precision) {
function computeExpirationBucket (line 10611) | function computeExpirationBucket(currentTime, expirationInMs, bucketSize...
function FiberNode (line 10649) | function FiberNode(tag, pendingProps, key, mode) {
function shouldConstruct (line 10718) | function shouldConstruct(Component) {
function createWorkInProgress (line 10723) | function createWorkInProgress(current, pendingProps, expirationTime) {
function createHostRootFiber (line 10786) | function createHostRootFiber(isAsync) {
function createFiberFromElement (line 10791) | function createFiberFromElement(element, mode, expirationTime) {
function getFiberTagFromObjectType (line 10845) | function getFiberTagFromObjectType(type, owner) {
function createFiberFromFragment (line 10873) | function createFiberFromFragment(elements, mode, expirationTime, key) {
function createFiberFromProfiler (line 10879) | function createFiberFromProfiler(pendingProps, mode, expirationTime, key) {
function createFiberFromText (line 10893) | function createFiberFromText(content, mode, expirationTime) {
function createFiberFromHostInstanceForDeletion (line 10899) | function createFiberFromHostInstanceForDeletion() {
function createFiberFromPortal (line 10905) | function createFiberFromPortal(portal, mode, expirationTime) {
function assignFiberPropertiesInDEV (line 10918) | function assignFiberPropertiesInDEV(target, source) {
function createFiberRoot (line 10967) | function createFiberRoot(containerInfo, isAsync, hydrate) {
function catchErrors (line 10999) | function catchErrors(fn) {
function injectInternals (line 11012) | function injectInternals(internals) {
function onCommitRoot (line 11050) | function onCommitRoot(root) {
function onCommitUnmount (line 11056) | function onCommitUnmount(fiber) {
function markPendingPriorityLevel (line 11364) | function markPendingPriorityLevel(root, expirationTime) {
function markCommittedPriorityLevels (line 11386) | function markCommittedPriorityLevels(root, currentTime, earliestRemainin...
function markSuspendedPriorityLevel (line 11452) | function markSuspendedPriorityLevel(root, suspendedTime) {
function markPingedPriorityLevel (line 11496) | function markPingedPriorityLevel(root, pingedTime) {
function findNextPendingPriorityLevel (line 11508) | function findNextPendingPriorityLevel(root) {
function createUpdateQueue (line 11628) | function createUpdateQueue(baseState) {
function cloneUpdateQueue (line 11644) | function cloneUpdateQueue(currentQueue) {
function createUpdate (line 11665) | function createUpdate(expirationTime) {
function appendUpdateToQueue (line 11678) | function appendUpdateToQueue(queue, update, expirationTime) {
function enqueueUpdate (line 11694) | function enqueueUpdate(fiber, update, expirationTime) {
function enqueueCapturedUpdate (line 11756) | function enqueueCapturedUpdate(workInProgress, update, renderExpirationT...
function ensureWorkInProgressQueueIsAClone (line 11784) | function ensureWorkInProgressQueueIsAClone(workInProgress, queue) {
function getStateFromUpdate (line 11796) | function getStateFromUpdate(workInProgress, queue, update, prevState, ne...
function processUpdateQueue (line 11850) | function processUpdateQueue(workInProgress, queue, props, instance, rend...
function callCallback (line 11978) | function callCallback(callback, context) {
function resetHasForceUpdateBeforeProcessing (line 11983) | function resetHasForceUpdateBeforeProcessing() {
function checkHasForceUpdateAfterProcessing (line 11987) | function checkHasForceUpdateAfterProcessing() {
function commitUpdateQueue (line 11991) | function commitUpdateQueue(finishedWork, finishedQueue, instance, render...
function createCapturedValue (line 12030) | function createCapturedValue(value, source) {
function pushProvider (line 12050) | function pushProvider(providerFiber) {
function popProvider (line 12078) | function popProvider(providerFiber) {
function getContextCurrentValue (line 12096) | function getContextCurrentValue(context) {
function getContextChangedBits (line 12100) | function getContextChangedBits(context) {
function requiredContext (line 12110) | function requiredContext(c) {
function getRootHostContainer (line 12115) | function getRootHostContainer() {
function pushHostContainer (line 12120) | function pushHostContainer(fiber, nextRootInstance) {
function popHostContainer (line 12140) | function popHostContainer(fiber) {
function getHostContext (line 12146) | function getHostContext() {
function pushHostContext (line 12151) | function pushHostContext(fiber) {
function popHostContext (line 12167) | function popHostContext(fiber) {
function getCommitTime (line 12180) | function getCommitTime() {
function recordCommitTime (line 12184) | function recordCommitTime() {
function checkActualRenderTimeStackEmpty (line 12207) | function checkActualRenderTimeStackEmpty() {
function markActualRenderTimeStarted (line 12216) | function markActualRenderTimeStarted(fiber) {
function pauseActualRenderTimerIfRunning (line 12228) | function pauseActualRenderTimerIfRunning() {
function recordElapsedActualRenderTime (line 12237) | function recordElapsedActualRenderTime(fiber) {
function resetActualRenderTimer (line 12248) | function resetActualRenderTimer() {
function resumeActualRenderTimerIfPaused (line 12255) | function resumeActualRenderTimerIfPaused() {
function recordElapsedBaseRenderTimeIfRunning (line 12274) | function recordElapsedBaseRenderTimeIfRunning(fiber) {
function startBaseRenderTimer (line 12283) | function startBaseRenderTimer() {
function stopBaseRenderTimerIfRunning (line 12295) | function stopBaseRenderTimerIfRunning() {
function applyDerivedStateFromProps (line 12357) | function applyDerivedStateFromProps(workInProgress, getDerivedStateFromP...
function checkShouldComponentUpdate (line 12442) | function checkShouldComponentUpdate(workInProgress, oldProps, newProps, ...
function checkClassInstance (line 12464) | function checkClassInstance(workInProgress) {
function adoptClassInstance (line 12526) | function adoptClassInstance(workInProgress, instance) {
function constructClassInstance (line 12536) | function constructClassInstance(workInProgress, props, renderExpirationT...
function callComponentWillMount (line 12604) | function callComponentWillMount(workInProgress, instance) {
function callComponentWillReceiveProps (line 12625) | function callComponentWillReceiveProps(workInProgress, instance, newProp...
function mountClassInstance (line 12649) | function mountClassInstance(workInProgress, renderExpirationTime) {
function resumeMountClassInstance (line 12707) | function resumeMountClassInstance(workInProgress, renderExpirationTime) {
function updateClassInstance (line 12798) | function updateClassInstance(current, workInProgress, renderExpirationTi...
function coerceRef (line 12949) | function coerceRef(returnFiber, current, element) {
function throwOnInvalidObjectType (line 12994) | function throwOnInvalidObjectType(returnFiber, newChild) {
function warnOnFunctionType (line 13004) | function warnOnFunctionType() {
function ChildReconciler (line 13019) | function ChildReconciler(shouldTrackSideEffects) {
function cloneChildFibers (line 13809) | function cloneChildFibers(current, workInProgress) {
function enterHydrationState (line 13835) | function enterHydrationState(fiber) {
function deleteHydratableInstance (line 13847) | function deleteHydratableInstance(returnFiber, instance) {
function insertNonHydratedInstance (line 13877) | function insertNonHydratedInstance(returnFiber, fiber) {
function tryHydrate (line 13921) | function tryHydrate(fiber, nextInstance) {
function tryToClaimNextHydratableInstance (line 13949) | function tryToClaimNextHydratableInstance(fiber) {
function prepareToHydrateHostInstance (line 13984) | function prepareToHydrateHostInstance(fiber, rootContainerInstance, host...
function prepareToHydrateHostTextInstance (line 14001) | function prepareToHydrateHostTextInstance(fiber) {
function popToNextHostParent (line 14037) | function popToNextHostParent(fiber) {
function popHydrationState (line 14045) | function popHydrationState(fiber) {
function resetHydrationState (line 14083) | function resetHydrationState() {
function reconcileChildren (line 14107) | function reconcileChildren(current, workInProgress, nextChildren) {
function reconcileChildrenAtExpirationTime (line 14111) | function reconcileChildrenAtExpirationTime(current, workInProgress, next...
function updateForwardRef (line 14129) | function updateForwardRef(current, workInProgress) {
function updateFragment (line 14156) | function updateFragment(current, workInProgress) {
function updateMode (line 14169) | function updateMode(current, workInProgress) {
function updateProfiler (line 14182) | function updateProfiler(current, workInProgress) {
function markRef (line 14196) | function markRef(current, workInProgress) {
function updateFunctionalComponent (line 14204) | function updateFunctionalComponent(current, workInProgress) {
function updateClassComponent (line 14237) | function updateClassComponent(current, workInProgress, renderExpirationT...
function finishClassComponent (line 14260) | function finishClassComponent(current, workInProgress, shouldUpdate, has...
function pushHostRootContext (line 14328) | function pushHostRootContext(workInProgress) {
function updateHostRoot (line 14339) | function updateHostRoot(current, workInProgress, renderExpirationTime) {
function updateHostComponent (line 14388) | function updateHostComponent(current, workInProgress, renderExpirationTi...
function updateHostText (line 14447) | function updateHostText(current, workInProgress) {
function mountIndeterminateComponent (line 14458) | function mountIndeterminateComponent(current, workInProgress, renderExpi...
function updateTimeoutComponent (line 14549) | function updateTimeoutComponent(current, workInProgress, renderExpiratio...
function updatePortalComponent (line 14579) | function updatePortalComponent(current, workInProgress, renderExpiration...
function propagateContextChange (line 14604) | function propagateContextChange(workInProgress, context, changedBits, re...
function updateContextProvider (line 14682) | function updateContextProvider(current, workInProgress, renderExpiration...
function updateContextConsumer (line 14767) | function updateContextConsumer(current, workInProgress, renderExpiration...
function bailoutOnAlreadyFinishedWork (line 14843) | function bailoutOnAlreadyFinishedWork(current, workInProgress) {
function bailoutOnLowPriority (line 14869) | function bailoutOnLowPriority(current, workInProgress) {
function memoizeProps (line 14899) | function memoizeProps(workInProgress, nextProps) {
function memoizeState (line 14903) | function memoizeState(workInProgress, nextState) {
function beginWork (line 14909) | function beginWork(current, workInProgress, renderExpirationTime) {
function markUpdate (line 14954) | function markUpdate(workInProgress) {
function markRef$1 (line 14960) | function markRef$1(workInProgress) {
function appendAllChildren (line 14964) | function appendAllChildren(parent, workInProgress) {
function completeWork (line 15118) | function completeWork(current, workInProgress, renderExpirationTime) {
function showErrorDialog (line 15282) | function showErrorDialog(capturedError) {
function logCapturedError (line 15286) | function logCapturedError(capturedError) {
function logError (line 15342) | function logError(boundary, errorInfo) {
function safelyCallComponentWillUnmount (line 15387) | function safelyCallComponentWillUnmount(current, instance) {
function safelyDetachRef (line 15397) | function safelyDetachRef(current) {
function commitBeforeMutationLifeCycles (line 15414) | function commitBeforeMutationLifeCycles(current, finishedWork) {
function commitLifeCycles (line 15453) | function commitLifeCycles(finishedRoot, current, finishedWork, currentTi...
function commitAttachRef (line 15545) | function commitAttachRef(finishedWork) {
function commitDetachRef (line 15571) | function commitDetachRef(current) {
function commitUnmount (line 15585) | function commitUnmount(current) {
function commitNestedUnmounts (line 15620) | function commitNestedUnmounts(root) {
function detachFiber (line 15652) | function detachFiber(current) {
function emptyPortalContainer (line 15666) | function emptyPortalContainer(current) {
function commitContainer (line 15678) | function commitContainer(finishedWork) {
function getHostParentFiber (line 15713) | function getHostParentFiber(fiber) {
function isHostParent (line 15724) | function isHostParent(fiber) {
function getHostSibling (line 15728) | function getHostSibling(fiber) {
function commitPlacement (line 15769) | function commitPlacement(finishedWork) {
function unmountHostComponents (line 15843) | function unmountHostComponents(current) {
function commitDeletion (line 15925) | function commitDeletion(current) {
function commitWork (line 15937) | function commitWork(current, finishedWork) {
function commitResetTextContent (line 16003) | function commitResetTextContent(current) {
function createRootErrorUpdate (line 16010) | function createRootErrorUpdate(fiber, errorInfo, expirationTime) {
function createClassErrorUpdate (line 16025) | function createClassErrorUpdate(fiber, errorInfo, expirationTime) {
function schedulePing (line 16058) | function schedulePing(finishedWork) {
function throwException (line 16068) | function throwException(root, returnFiber, sourceFiber, value, renderIsE...
function unwindWork (line 16194) | function unwindWork(workInProgress, renderIsExpired, renderExpirationTim...
function unwindInterruptedWork (line 16248) | function unwindInterruptedWork(interruptedWork) {
function resetStack (line 16437) | function resetStack() {
function commitAllHostEffects (line 16460) | function commitAllHostEffects() {
function commitBeforeMutationLifecycles (line 16530) | function commitBeforeMutationLifecycles() {
function commitAllLifeCycles (line 16546) | function commitAllLifeCycles(finishedRoot, currentTime, committedExpirat...
function isAlreadyFailedLegacyErrorBoundary (line 16584) | function isAlreadyFailedLegacyErrorBoundary(instance) {
function markLegacyErrorBoundaryAsFailed (line 16588) | function markLegacyErrorBoundaryAsFailed(instance) {
function commitRoot (line 16596) | function commitRoot(finishedWork) {
function resetExpirationTime (line 16748) | function resetExpirationTime(workInProgress, renderTime) {
function completeUnitOfWork (line 16796) | function completeUnitOfWork(workInProgress) {
function performUnitOfWork (line 16942) | function performUnitOfWork(workInProgress) {
function workLoop (line 17000) | function workLoop(isAsync) {
function renderRoot (line 17020) | function renderRoot(root, expirationTime, isAsync) {
function dispatch (line 17139) | function dispatch(sourceFiber, value, expirationTime) {
function captureCommitPhaseError (line 17179) | function captureCommitPhaseError(fiber, error) {
function computeAsyncExpiration (line 17183) | function computeAsyncExpiration(currentTime) {
function computeInteractiveExpiration (line 17192) | function computeInteractiveExpiration(currentTime) {
function computeUniqueAsyncExpiration (line 17211) | function computeUniqueAsyncExpiration() {
function computeExpirationForFiber (line 17224) | function computeExpirationForFiber(currentTime, fiber) {
function suspendRoot (line 17267) | function suspendRoot(root, thenable, timeoutMs, suspendedTime) {
function retrySuspendedRoot (line 17274) | function retrySuspendedRoot(root, suspendedTime) {
function scheduleWork$1 (line 17282) | function scheduleWork$1(fiber, expirationTime) {
function recalculateCurrentTime (line 17338) | function recalculateCurrentTime() {
function deferredUpdates (line 17345) | function deferredUpdates(fn) {
function syncUpdates (line 17355) | function syncUpdates(fn, a, b, c, d) {
function scheduleCallbackWithExpiration (line 17395) | function scheduleCallbackWithExpiration(expirationTime) {
function requestRetry (line 17422) | function requestRetry(root, expirationTime) {
function requestWork (line 17433) | function requestWork(root, expirationTime) {
function addRootToSchedule (line 17462) | function addRootToSchedule(root, expirationTime) {
function findHighestPriorityRoot (line 17486) | function findHighestPriorityRoot() {
function performAsyncWork (line 17551) | function performAsyncWork(dl) {
function performSyncWork (line 17555) | function performSyncWork() {
function performWork (line 17559) | function performWork(minExpirationTime, isAsync, dl) {
function flushRoot (line 17609) | function flushRoot(root, expirationTime) {
function finishRendering (line 17622) | function finishRendering() {
function performWorkOnRoot (line 17649) | function performWorkOnRoot(root, expirationTime, isAsync) {
function completeRoot (line 17700) | function completeRoot(root, finishedWork, expirationTime) {
function shouldYield (line 17725) | function shouldYield() {
function onUncaughtError (line 17738) | function onUncaughtError(error) {
function onBlock (line 17749) | function onBlock(remainingExpirationTime) {
function batchedUpdates$1 (line 17757) | function batchedUpdates$1(fn, a) {
function unbatchedUpdates (line 17772) | function unbatchedUpdates(fn, a) {
function flushSync (line 17786) | function flushSync(fn, a) {
function interactiveUpdates$1 (line 17798) | function interactiveUpdates$1(fn, a, b) {
function flushInteractiveUpdates$1 (line 17826) | function flushInteractiveUpdates$1() {
function flushControlled (line 17834) | function flushControlled(fn) {
function getContextForSubtree (line 17857) | function getContextForSubtree(parentComponent) {
function scheduleRootUpdate (line 17867) | function scheduleRootUpdate(current, element, expirationTime, callback) {
function updateContainerAtExpirationTime (line 17891) | function updateContainerAtExpirationTime(element, container, parentCompo...
function findHostInstance (line 17917) | function findHostInstance(component) {
function createContainer (line 17933) | function createContainer(containerInfo, isAsync, hydrate) {
function updateContainer (line 17937) | function updateContainer(element, container, parentComponent, callback) {
function getPublicRootInstance (line 17944) | function getPublicRootInstance(container) {
function findHostInstanceWithNoPortals (line 17957) | function findHostInstanceWithNoPortals(fiber) {
function injectIntoDevTools (line 17965) | function injectIntoDevTools(devToolsConfig) {
function createPortal$1 (line 18012) | function createPortal$1(children, containerInfo,
function ReactBatch (line 18070) | function ReactBatch(root) {
function ReactWork (line 18175) | function ReactWork() {
function ReactRoot (line 18210) | function ReactRoot(container, isAsync, hydrate) {
function isValidContainer (line 18286) | function isValidContainer(node) {
function getReactRootElementInContainer (line 18290) | function getReactRootElementInContainer(container) {
function shouldHydrateDueToLegacyHeuristic (line 18302) | function shouldHydrateDueToLegacyHeuristic(container) {
function legacyCreateRootFromDOMContainer (line 18311) | function legacyCreateRootFromDOMContainer(container, forceHydrate) {
function legacyRenderSubtreeIntoContainer (line 18338) | function legacyRenderSubtreeIntoContainer(parentComponent, children, con...
function createPortal (line 18385) | function createPortal(children, container) {
function checkDCE (line 18547) | function checkDCE() {
function getIteratorFn (line 18636) | function getIteratorFn(maybeIterable) {
function warnNoop (line 18737) | function warnNoop(publicInstance, callerName) {
function Component (line 18821) | function Component(props, context, updater) {
function ComponentDummy (line 18905) | function ComponentDummy() {}
function PureComponent (line 18911) | function PureComponent(props, context, updater) {
function createRef (line 18925) | function createRef() {
function hasValidRef (line 18961) | function hasValidRef(config) {
function hasValidKey (line 18973) | function hasValidKey(config) {
function defineKeyPropWarningGetter (line 18985) | function defineKeyPropWarningGetter(props, displayName) {
function defineRefPropWarningGetter (line 18999) | function defineRefPropWarningGetter(props, displayName) {
function createElement (line 19093) | function createElement(type, config, children) {
function cloneAndReplaceKey (line 19171) | function cloneAndReplaceKey(oldElement, newKey) {
function cloneElement (line 19181) | function cloneElement(element, config, children) {
function isValidElement (line 19252) | function isValidElement(object) {
function escape (line 19280) | function escape(key) {
function escapeUserProvidedKey (line 19301) | function escapeUserProvidedKey(text) {
function getPooledTraverseContext (line 19307) | function getPooledTraverseContext(mapResult, keyPrefix, mapFunction, map...
function releaseTraverseContext (line 19327) | function releaseTraverseContext(traverseContext) {
function traverseAllChildrenImpl (line 19346) | function traverseAllChildrenImpl(children, nameSoFar, callback, traverse...
function traverseAllChildren (line 19440) | function traverseAllChildren(children, callback, traverseContext) {
function getComponentKey (line 19455) | function getComponentKey(component, index) {
function forEachSingleChild (line 19466) | function forEachSingleChild(bookKeeping, child, name) {
function forEachChildren (line 19485) | function forEachChildren(children, forEachFunc, forEachContext) {
function mapSingleChildIntoContext (line 19494) | function mapSingleChildIntoContext(bookKeeping, child, childKey) {
function mapIntoWithKeyPrefixInternal (line 19515) | function mapIntoWithKeyPrefixInternal(children, array, prefix, func, con...
function mapChildren (line 19538) | function mapChildren(children, func, context) {
function countChildren (line 19556) | function countChildren(children) {
function toArray (line 19566) | function toArray(children) {
function onlyChild (line 19586) | function onlyChild(children) {
function createContext (line 19591) | function createContext(defaultValue, calculateChangedBits) {
function forwardRef (line 19632) | function forwardRef(render) {
function isValidElementType (line 19651) | function isValidElementType(type) {
function getComponentName (line 19657) | function getComponentName(fiber) {
function getDeclarationErrorAddendum (line 19744) | function getDeclarationErrorAddendum() {
function getSourceInfoErrorAddendum (line 19754) | function getSourceInfoErrorAddendum(elementProps) {
function getCurrentComponentErrorInfo (line 19771) | function getCurrentComponentErrorInfo(parentType) {
function validateExplicitKey (line 19794) | function validateExplicitKey(element, parentType) {
function validateChildKeys (line 19831) | function validateChildKeys(node, parentType) {
function validatePropTypes (line 19871) | function validatePropTypes(element) {
function validateFragmentProps (line 19904) | function validateFragmentProps(fragment) {
function createElementWithValidation (line 19923) | function createElementWithValidation(type, props, children) {
function createFactoryWithValidation (line 19983) | function createFactoryWithValidation(type) {
function cloneElementWithValidation (line 20003) | function cloneElementWithValidation(element, props, children) {
function addStylesToDom (line 20220) | function addStylesToDom (styles, options) {
function listToStyles (line 20247) | function listToStyles (list, options) {
function insertStyleElement (line 20266) | function insertStyleElement (options, style) {
function removeStyleElement (line 20294) | function removeStyleElement (style) {
function createStyleElement (line 20304) | function createStyleElement (options) {
function createLinkElement (line 20317) | function createLinkElement (options) {
function addAttrs (line 20331) | function addAttrs (el, attrs) {
function addStyle (line 20337) | function addStyle (obj, options) {
function applyToSingletonTag (line 20417) | function applyToSingletonTag (style, index, remove, obj) {
function applyToTag (line 20436) | function applyToTag (style, obj) {
function updateLink (line 20455) | function updateLink (link, options, obj) {
function createCell (line 20633) | function createCell(name, value) {
function createRow (line 20641) | function createRow(data, index = -1) {
method constructor (line 20651) | constructor(props) {
method render (line 20655) | render() {
method constructor (line 20684) | constructor(props) {
method render (line 20692) | render() {
function getDialog (line 20735) | function getDialog() {
FILE: ui-datagrid-react/src/DataGrid.jsx
function createCell (line 21) | function createCell(name, value) {
function createRow (line 25) | function createRow(data, index = -1) {
method constructor (line 35) | constructor(props) {
method render (line 39) | render() {
FILE: ui-datagrid-react/src/MainForm.jsx
method constructor (line 7) | constructor(props) {
method render (line 15) | render() {
FILE: ui-datagrid-react/src/main.jsx
function getDialog (line 6) | function getDialog() {
FILE: ui-dialog-variations/lib/dialogs.js
function strToHtml (line 40) | function strToHtml(str) {
function createDialog (line 93) | async function createDialog({
function alert (line 263) | async function alert(title, ...msgs) {
function error (line 274) | async function error(title, ...msgs) {
function confirm (line 286) | async function confirm(title, msg, buttons = [ 'Cancel', 'OK' ]) {
function warning (line 301) | async function warning(title, msg, buttons = [ 'Cancel', 'OK' ]) {
function prompt (line 318) | async function prompt(title, msg, prompt, buttons = [ 'Cancel', 'OK' ], ...
FILE: ui-dialog-variations/lib/manifest.js
function getManifest (line 27) | async function getManifest() {
function getNearestIcon (line 47) | function getNearestIcon(manifest, size) {
FILE: ui-dialog-variations/main.js
function showAlert (line 12) | async function showAlert() {
function showConfirm (line 17) | async function showConfirm() {
function showPrompt (line 31) | async function showPrompt() {
function showWarning (line 43) | async function showWarning() {
function showError (line 58) | async function showError() {
function showAbout (line 63) | async function showAbout() {
FILE: ui-hello-h/main.js
function getDialog (line 5) | function getDialog() {
method menuCommand (line 24) | menuCommand() {
FILE: ui-hello-react/main.js
function __webpack_require__ (line 7) | function __webpack_require__(moduleId) {
function cssWithMappingToString (line 165) | function cssWithMappingToString(item, useSourceMap) {
function toComment (line 185) | function toComment(sourceMap) {
function toObject (line 216) | function toObject(val) {
function shouldUseNative (line 224) | function shouldUseNative() {
function checkPropTypes (line 346) | function checkPropTypes(typeSpecs, values, location, componentName, getS...
function invariant (line 477) | function invariant(condition, format, a, b, c, d, e, f) {
function callCallback (line 562) | function callCallback() {
function handleWindowError (line 597) | function handleWindowError(event) {
function invokeGuardedCallback (line 677) | function invokeGuardedCallback(name, func, context, a, b, c, d, e, f) {
function invokeGuardedCallbackAndCatchFirstError (line 693) | function invokeGuardedCallbackAndCatchFirstError(name, func, context, a,...
function rethrowCaughtError (line 708) | function rethrowCaughtError() {
function hasCaughtError (line 717) | function hasCaughtError() {
function clearCaughtError (line 721) | function clearCaughtError() {
function recomputePluginOrdering (line 747) | function recomputePluginOrdering() {
function publishEventForPlugin (line 776) | function publishEventForPlugin(dispatchConfig, pluginModule, eventName) {
function publishRegistrationName (line 803) | function publishRegistrationName(registrationName, pluginModule, eventNa...
function injectEventPluginOrder (line 862) | function injectEventPluginOrder(injectedEventPluginOrder) {
function injectEventPluginsByName (line 879) | function injectEventPluginsByName(injectedNamesToPlugins) {
function setComponentTree (line 990) | function setComponentTree(getFiberCurrentPropsFromNodeImpl, getInstanceF...
function executeDispatch (line 1022) | function executeDispatch(event, simulated, listener, inst) {
function executeDispatchesInOrder (line 1032) | function executeDispatchesInOrder(event, simulated) {
function accumulateInto (line 1087) | function accumulateInto(current, next) {
function forEachAccumulated (line 1122) | function forEachAccumulated(arr, cb, scope) {
function isInteractive (line 1159) | function isInteractive(tag) {
function shouldPreventMouseEvent (line 1163) | function shouldPreventMouseEvent(name, type, props) {
function getListener (line 1225) | function getListener(inst, registrationName) {
function extractEvents (line 1255) | function extractEvents(topLevelType, targetInst, nativeEvent, nativeEven...
function runEventsInBatch (line 1270) | function runEventsInBatch(events, simulated) {
function runExtractedEventsInBatch (line 1294) | function runExtractedEventsInBatch(topLevelType, targetInst, nativeEvent...
function precacheFiberNode (line 1321) | function precacheFiberNode(hostInst, node) {
function getClosestInstanceFromNode (line 1329) | function getClosestInstanceFromNode(node) {
function getInstanceFromNode$1 (line 1357) | function getInstanceFromNode$1(node) {
function getNodeFromInstance$1 (line 1373) | function getNodeFromInstance$1(inst) {
function getFiberCurrentPropsFromNode$1 (line 1385) | function getFiberCurrentPropsFromNode$1(node) {
function updateFiberProps (line 1389) | function updateFiberProps(node, props) {
function getParent (line 1393) | function getParent(inst) {
function getLowestCommonAncestor (line 1412) | function getLowestCommonAncestor(instA, instB) {
function traverseTwoPhase (line 1459) | function traverseTwoPhase(inst, fn, arg) {
function traverseEnterLeave (line 1481) | function traverseEnterLeave(from, to, fn, argFrom, argTo) {
function listenerAtPhase (line 1525) | function listenerAtPhase(inst, event, propagationPhase) {
function accumulateDirectionalDispatches (line 1546) | function accumulateDirectionalDispatches(inst, phase, event) {
function accumulateTwoPhaseDispatchesSingle (line 1564) | function accumulateTwoPhaseDispatchesSingle(event) {
function accumulateDispatches (line 1575) | function accumulateDispatches(inst, ignoredDirection, event) {
function accumulateDirectDispatchesSingle (line 1591) | function accumulateDirectDispatchesSingle(event) {
function accumulateTwoPhaseDispatches (line 1597) | function accumulateTwoPhaseDispatches(events) {
function accumulateEnterLeaveDispatches (line 1603) | function accumulateEnterLeaveDispatches(leave, enter, from, to) {
function accumulateDirectDispatches (line 1607) | function accumulateDirectDispatches(events) {
function unsafeCastStringToDOMTopLevelType (line 1617) | function unsafeCastStringToDOMTopLevelType(topLevelType) {
function unsafeCastDOMTopLevelTypeToString (line 1621) | function unsafeCastDOMTopLevelTypeToString(topLevelType) {
function makePrefixMap (line 1632) | function makePrefixMap(styleProp, eventName) {
function getVendorPrefixedEventName (line 1690) | function getVendorPrefixedEventName(eventName) {
function getRawEventName (line 1803) | function getRawEventName(topLevelType) {
function initialize (line 1823) | function initialize(nativeEventTarget) {
function reset (line 1829) | function reset() {
function getData (line 1835) | function getData() {
function getText (line 1865) | function getText() {
function functionThatReturnsTrue (line 1897) | function functionThatReturnsTrue() {
function functionThatReturnsFalse (line 1901) | function functionThatReturnsFalse() {
function SyntheticEvent (line 1923) | function SyntheticEvent(dispatchConfig, targetInst, nativeEvent, nativeE...
function Class (line 2058) | function Class() {
function getPooledWarningPropertyDefinition (line 2081) | function getPooledWarningPropertyDefinition(propName, getVal) {
function getPooledEvent (line 2108) | function getPooledEvent(dispatchConfig, targetInst, nativeEvent, nativeI...
function releasePooledEvent (line 2118) | function releasePooledEvent(event) {
function addEventPoolingTo (line 2127) | function addEventPoolingTo(EventConstructor) {
function isKeypressCommand (line 2213) | function isKeypressCommand(nativeEvent) {
function getCompositionEventType (line 2225) | function getCompositionEventType(topLevelType) {
function isFallbackCompositionStart (line 2244) | function isFallbackCompositionStart(topLevelType, nativeEvent) {
function isFallbackCompositionEnd (line 2255) | function isFallbackCompositionEnd(topLevelType, nativeEvent) {
function getDataFromCustomEvent (line 2283) | function getDataFromCustomEvent(nativeEvent) {
function isUsingKoreanIME (line 2301) | function isUsingKoreanIME(nativeEvent) {
function extractCompositionEvent (line 2311) | function extractCompositionEvent(topLevelType, targetInst, nativeEvent, ...
function getNativeBeforeInputChars (line 2363) | function getNativeBeforeInputChars(topLevelType, nativeEvent) {
function getFallbackBeforeInputChars (line 2417) | function getFallbackBeforeInputChars(topLevelType, nativeEvent) {
function extractBeforeInputEvent (line 2481) | function extractBeforeInputEvent(topLevelType, targetInst, nativeEvent, ...
function restoreStateOfTarget (line 2547) | function restoreStateOfTarget(target) {
function setRestoreImplementation (line 2560) | function setRestoreImplementation(impl) {
function enqueueStateRestore (line 2564) | function enqueueStateRestore(target) {
function needsStateRestore (line 2576) | function needsStateRestore() {
function restoreStateIfNeeded (line 2580) | function restoreStateIfNeeded() {
function batchedUpdates (line 2613) | function batchedUpdates(fn, bookkeeping) {
function interactiveUpdates (line 2639) | function interactiveUpdates(fn, a, b) {
function setBatchingImplementation (line 2645) | function setBatchingImplementation(batchedUpdatesImpl, interactiveUpdate...
function isTextInputElement (line 2672) | function isTextInputElement(elem) {
function getEventTarget (line 2703) | function getEventTarget(nativeEvent) {
function isEventSupported (line 2731) | function isEventSupported(eventNameSuffix) {
function isCheckable (line 2748) | function isCheckable(elem) {
function getTracker (line 2754) | function getTracker(node) {
function detachTracker (line 2758) | function detachTracker(node) {
function getValueFromNode (line 2762) | function getValueFromNode(node) {
function trackValueOnNode (line 2777) | function trackValueOnNode(node) {
function track (line 2826) | function track(node) {
function updateValueIfChanged (line 2835) | function updateValueIfChanged(node) {
function getIteratorFn (line 2904) | function getIteratorFn(maybeIterable) {
function getResultFromResolvedThenable (line 2919) | function getResultFromResolvedThenable(thenable) {
function refineResolvedThenable (line 2923) | function refineResolvedThenable(thenable) {
function getComponentName (line 2927) | function getComponentName(type) {
function describeFiber (line 2981) | function describeFiber(fiber) {
function getStackByFiberInDevAndProd (line 3003) | function getStackByFiberInDevAndProd(workInProgress) {
function getCurrentFiberOwnerNameInDevOrNull (line 3016) | function getCurrentFiberOwnerNameInDevOrNull() {
function getCurrentFiberStackInDev (line 3029) | function getCurrentFiberStackInDev() {
function resetCurrentFiber (line 3041) | function resetCurrentFiber() {
function setCurrentFiber (line 3049) | function setCurrentFiber(fiber) {
function setCurrentPhase (line 3057) | function setCurrentPhase(lifeCyclePhase) {
function isAttributeNameSafe (line 3137) | function isAttributeNameSafe(attributeName) {
function shouldIgnoreAttribute (line 3155) | function shouldIgnoreAttribute(name, propertyInfo, isCustomComponentTag) {
function shouldRemoveAttributeWithWarning (line 3168) | function shouldRemoveAttributeWithWarning(name, value, propertyInfo, isC...
function shouldRemoveAttribute (line 3195) | function shouldRemoveAttribute(name, value, propertyInfo, isCustomCompon...
function getPropertyInfo (line 3220) | function getPropertyInfo(name) {
function PropertyInfoRecord (line 3224) | function PropertyInfoRecord(name, type, mustUseProperty, attributeName, ...
function getValueForProperty (line 3376) | function getValueForProperty(node, name, expected, propertyInfo) {
function getValueForAttribute (line 3435) | function getValueForAttribute(node, name, expected) {
function setValueForProperty (line 3458) | function setValueForProperty(node, name, value, isCustomComponentTag) {
function toString (line 3522) | function toString(value) {
function getToStringValue (line 3526) | function getToStringValue(value) {
function isControlled (line 3632) | function isControlled(props) {
function getHostProps (line 3654) | function getHostProps(element, props) {
function initWrapperState (line 3668) | function initWrapperState(element, props) {
function updateChecked (line 3692) | function updateChecked(element, props) {
function updateWrapper (line 3700) | function updateWrapper(element, props) {
function postMountWrapper (line 3776) | function postMountWrapper(element, props, isHydrating) {
function restoreControlledState (line 3884) | function restoreControlledState(element, props) {
function updateNamedCousins (line 3890) | function updateNamedCousins(rootNode, props) {
function setDefaultValue (line 3940) | function setDefaultValue(node, type, value) {
function createAndAccumulateChangeEvent (line 3962) | function createAndAccumulateChangeEvent(inst, nativeEvent, target) {
function shouldUseChangeEvent (line 3979) | function shouldUseChangeEvent(elem) {
function manualDispatchChangeEvent (line 3984) | function manualDispatchChangeEvent(nativeEvent) {
function runEventInBatch (line 4001) | function runEventInBatch(event) {
function getInstIfValueChanged (line 4005) | function getInstIfValueChanged(targetInst) {
function getTargetInstForChangeEvent (line 4012) | function getTargetInstForChangeEvent(topLevelType, targetInst) {
function startWatchingForValueChange (line 4033) | function startWatchingForValueChange(target, targetInst) {
function stopWatchingForValueChange (line 4043) | function stopWatchingForValueChange() {
function handlePropertyChange (line 4056) | function handlePropertyChange(nativeEvent) {
function handleEventsForInputEventPolyfill (line 4065) | function handleEventsForInputEventPolyfill(topLevelType, target, targetI...
function getTargetInstForInputEventPolyfill (line 4085) | function getTargetInstForInputEventPolyfill(topLevelType, targetInst) {
function shouldUseClickEvent (line 4104) | function shouldUseClickEvent(elem) {
function getTargetInstForClickEvent (line 4112) | function getTargetInstForClickEvent(topLevelType, targetInst) {
function getTargetInstForInputOrChangeEvent (line 4118) | function getTargetInstForInputOrChangeEvent(topLevelType, targetInst) {
function handleControlledInputBlur (line 4124) | function handleControlledInputBlur(node) {
function modifierStateGetter (line 4220) | function modifierStateGetter(keyArg) {
function getEventModifierState (line 4230) | function getEventModifierState(nativeEvent) {
function is (line 4427) | function is(x, y) {
function shallowEqual (line 4445) | function shallowEqual(objA, objB) {
function get (line 4488) | function get(key) {
function has (line 4492) | function has(key) {
function set (line 4496) | function set(key, value) {
function isFiberMountedImpl (line 4530) | function isFiberMountedImpl(fiber) {
function isFiberMounted (line 4559) | function isFiberMounted(fiber) {
function isMounted (line 4563) | function isMounted(component) {
function assertIsMounted (line 4581) | function assertIsMounted(fiber) {
function findCurrentFiberUsingSlowPath (line 4585) | function findCurrentFiberUsingSlowPath(fiber) {
function findCurrentHostFiber (line 4697) | function findCurrentHostFiber(parent) {
function findCurrentHostFiberWithNoPortals (line 4730) | function findCurrentHostFiberWithNoPortals(parent) {
function addEventBubbleListener (line 4763) | function addEventBubbleListener(element, eventType, listener) {
function addEventCaptureListener (line 4767) | function addEventCaptureListener(element, eventType, listener) {
function getEventCharCode (line 4810) | function getEventCharCode(nativeEvent) {
function getEventKey (line 4908) | function getEventKey(nativeEvent) {
function addEventTypeNameToConfig (line 5072) | function addEventTypeNameToConfig(_ref, isInteractive) {
function findRootContainerNode (line 5225) | function findRootContainerNode(inst) {
function getTopLevelCallbackBookKeeping (line 5240) | function getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targe...
function releaseTopLevelCallbackBookKeeping (line 5256) | function releaseTopLevelCallbackBookKeeping(instance) {
function handleTopLevel (line 5266) | function handleTopLevel(bookKeeping) {
function setEnabled (line 5296) | function setEnabled(enabled) {
function isEnabled (line 5300) | function isEnabled() {
function trapBubbledEvent (line 5313) | function trapBubbledEvent(topLevelType, element) {
function trapCapturedEvent (line 5333) | function trapCapturedEvent(topLevelType, element) {
function dispatchInteractiveEvent (line 5344) | function dispatchInteractiveEvent(topLevelType, nativeEvent) {
function dispatchEvent (line 5348) | function dispatchEvent(topLevelType, nativeEvent) {
function getListeningForDocument (line 5438) | function getListeningForDocument(mountAt) {
function listenTo (line 5469) | function listenTo(registrationName, mountAt) {
function isListeningToAllDependencies (line 5515) | function isListeningToAllDependencies(registrationName, mountAt) {
function getActiveElement (line 5527) | function getActiveElement(doc) {
function getLeafNode (line 5545) | function getLeafNode(node) {
function getSiblingNode (line 5559) | function getSiblingNode(node) {
function getNodeForCharacterOffset (line 5575) | function getNodeForCharacterOffset(root, offset) {
function getOffsets (line 5602) | function getOffsets(outerNode) {
function getModernOffsetsFromPoints (line 5646) | function getModernOffsetsFromPoints(outerNode, anchorNode, anchorOffset,...
function setOffsets (line 5727) | function setOffsets(node, offsets) {
function isTextNode (line 5764) | function isTextNode(node) {
function containsNode (line 5768) | function containsNode(outerNode, innerNode) {
function isInDocument (line 5786) | function isInDocument(node) {
function getActiveElementDeep (line 5790) | function getActiveElementDeep() {
function hasSelectionCapabilities (line 5818) | function hasSelectionCapabilities(elem) {
function getSelectionInformation (line 5823) | function getSelectionInformation() {
function restoreSelection (line 5836) | function restoreSelection(priorSelectionInformation) {
function getSelection$1 (line 5876) | function getSelection$1(input) {
function setSelection (line 5899) | function setSelection(input, offsets) {
function getSelection (line 5941) | function getSelection(node) {
function getEventTargetDocument (line 5965) | function getEventTargetDocument(eventTarget) {
function constructSelectEvent (line 5976) | function constructSelectEvent(nativeEvent, nativeEventTarget) {
function flattenChildren (line 6100) | function flattenChildren(children) {
function validateProps (line 6125) | function validateProps(element, props) {
function postMountWrapper$1 (line 6157) | function postMountWrapper$1(element, props) {
function getHostProps$1 (line 6164) | function getHostProps$1(element, props) {
function getDeclarationErrorAddendum (line 6182) | function getDeclarationErrorAddendum() {
function checkSelectPropTypes (line 6195) | function checkSelectPropTypes(props) {
function updateOptions (line 6212) | function updateOptions(node, multiple, propValue, setDefaultSelected) {
function getHostProps$2 (line 6270) | function getHostProps$2(element, props) {
function initWrapperState$1 (line 6276) | function initWrapperState$1(element, props) {
function postMountWrapper$2 (line 6294) | function postMountWrapper$2(element, props) {
function postUpdateWrapper (line 6305) | function postUpdateWrapper(element, props) {
function restoreControlledState$2 (line 6324) | function restoreControlledState$2(element, props) {
function getHostProps$3 (line 6351) | function getHostProps$3(element, props) {
function initWrapperState$2 (line 6370) | function initWrapperState$2(element, props) {
function updateWrapper$1 (line 6410) | function updateWrapper$1(element, props) {
function postMountWrapper$3 (line 6431) | function postMountWrapper$3(element, props) {
function restoreControlledState$3 (line 6446) | function restoreControlledState$3(element, props) {
function getIntrinsicNamespace (line 6462) | function getIntrinsicNamespace(type) {
function getChildNamespace (line 6473) | function getChildNamespace(parentNamespace, type) {
function prefixKey (line 6610) | function prefixKey(prefix, key) {
function dangerousStyleValue (line 6637) | function dangerousStyleValue(name, value, isCustomProperty) {
function hyphenateStyleName (line 6676) | function hyphenateStyleName(name) {
function createDangerousStringForStyles (line 6782) | function createDangerousStringForStyles(styles) {
function setValueForStyles (line 6810) | function setValueForStyles(node, styles) {
function assertValidProps (line 6872) | function assertValidProps(tag, props) {
function isCustomComponent (line 6890) | function isCustomComponent(tagName, props) {
function validateProperty (line 7463) | function validateProperty(tagName, name) {
function warnInvalidARIAProps (line 7508) | function warnInvalidARIAProps(type, props) {
function validateProperties (line 7529) | function validateProperties(type, props) {
function validateProperties$1 (line 7538) | function validateProperties$1(type, props) {
function validateProperties$2 (line 7702) | function validateProperties$2(type, props, canUseEventSystem) {
function ensureListeningTo (line 7842) | function ensureListeningTo(rootContainerElement, registrationName) {
function getOwnerDocumentFromRootContainer (line 7848) | function getOwnerDocumentFromRootContainer(rootContainerElement) {
function noop (line 7852) | function noop() {}
function trapClickOnNonInteractiveElement (line 7854) | function trapClickOnNonInteractiveElement(node) {
function setInitialDOMProperties (line 7867) | function setInitialDOMProperties(tag, domElement, rootContainerElement, ...
function updateDOMProperties (line 7921) | function updateDOMProperties(domElement, updatePayload, wasCustomCompone...
function createElement (line 7938) | function createElement(type, props, rootContainerElement, parentNamespac...
function createTextNode (line 7999) | function createTextNode(text, rootContainerElement) {
function setInitialProperties (line 8003) | function setInitialProperties(domElement, tag, rawProps, rootContainerEl...
function diffProperties (line 8114) | function diffProperties(domElement, tag, lastRawProps, nextRawProps, roo...
function updateProperties (line 8279) | function updateProperties(domElement, updatePayload, tag, lastRawProps, ...
function getPossibleStandardName (line 8312) | function getPossibleStandardName(propName) {
function diffHydratedProperties (line 8323) | function diffHydratedProperties(domElement, tag, rawProps, parentNamespa...
function diffHydratedText (line 8575) | function diffHydratedText(textNode, text) {
function warnForUnmatchedText (line 8580) | function warnForUnmatchedText(textNode, text) {
function warnForDeletedHydratableElement (line 8586) | function warnForDeletedHydratableElement(parentNode, child) {
function warnForDeletedHydratableText (line 8596) | function warnForDeletedHydratableText(parentNode, child) {
function warnForInsertedHydratedElement (line 8606) | function warnForInsertedHydratedElement(parentNode, tag, props) {
function warnForInsertedHydratedText (line 8616) | function warnForInsertedHydratedText(parentNode, text) {
function restoreControlledState$1 (line 8633) | function restoreControlledState$1(domElement, tag, props) {
function shim (line 8946) | function shim() {
function shouldAutoFocusHostComponent (line 8966) | function shouldAutoFocusHostComponent(type, props) {
function getRootHostContext (line 8977) | function getRootHostContext(rootContainerInstance) {
function getChildHostContext (line 9007) | function getChildHostContext(parentHostContext, type, rootContainerInsta...
function getPublicInstance (line 9018) | function getPublicInstance(instance) {
function prepareForCommit (line 9022) | function prepareForCommit(containerInfo) {
function resetAfterCommit (line 9028) | function resetAfterCommit(containerInfo) {
function createInstance (line 9035) | function createInstance(type, props, rootContainerInstance, hostContext,...
function appendInitialChild (line 9054) | function appendInitialChild(parentInstance, child) {
function finalizeInitialChildren (line 9058) | function finalizeInitialChildren(domElement, type, props, rootContainerI...
function prepareUpdate (line 9063) | function prepareUpdate(domElement, type, oldProps, newProps, rootContain...
function shouldSetTextContent (line 9075) | function shouldSetTextContent(type, props) {
function shouldDeprioritizeSubtree (line 9079) | function shouldDeprioritizeSubtree(type, props) {
function createTextInstance (line 9083) | function createTextInstance(text, rootContainerInstance, hostContext, in...
function commitMount (line 9104) | function commitMount(domElement, type, newProps, internalInstanceHandle) {
function commitUpdate (line 9116) | function commitUpdate(domElement, updatePayload, type, oldProps, newProp...
function resetTextContent (line 9124) | function resetTextContent(domElement) {
function commitTextUpdate (line 9128) | function commitTextUpdate(textInstance, oldText, newText) {
function appendChild (line 9132) | function appendChild(parentInstance, child) {
function appendChildToContainer (line 9136) | function appendChildToContainer(container, child) {
function insertBefore (line 9158) | function insertBefore(parentInstance, child, beforeChild) {
function insertInContainerBefore (line 9162) | function insertInContainerBefore(container, child, beforeChild) {
function removeChild (line 9170) | function removeChild(parentInstance, child) {
function removeChildFromContainer (line 9174) | function removeChildFromContainer(container, child) {
function canHydrateInstance (line 9188) | function canHydrateInstance(instance, type, props) {
function canHydrateTextInstance (line 9196) | function canHydrateTextInstance(instance, text) {
function getNextHydratableSibling (line 9205) | function getNextHydratableSibling(instance) {
function getFirstHydratableChild (line 9214) | function getFirstHydratableChild(parentInstance) {
function hydrateInstance (line 9223) | function hydrateInstance(instance, type, props, rootContainerInstance, h...
function hydrateTextInstance (line 9236) | function hydrateTextInstance(textInstance, text, internalInstanceHandle) {
function didNotMatchHydratedContainerTextInstance (line 9241) | function didNotMatchHydratedContainerTextInstance(parentContainer, textI...
function didNotMatchHydratedTextInstance (line 9247) | function didNotMatchHydratedTextInstance(parentType, parentProps, parent...
function didNotHydrateContainerInstance (line 9253) | function didNotHydrateContainerInstance(parentContainer, instance) {
function didNotHydrateInstance (line 9263) | function didNotHydrateInstance(parentType, parentProps, parentInstance, ...
function didNotFindHydratableContainerInstance (line 9273) | function didNotFindHydratableContainerInstance(parentContainer, type, pr...
function didNotFindHydratableContainerTextInstance (line 9279) | function didNotFindHydratableContainerTextInstance(parentContainer, text) {
function didNotFindHydratableInstance (line 9285) | function didNotFindHydratableInstance(parentType, parentProps, parentIns...
function didNotFindHydratableTextInstance (line 9291) | function didNotFindHydratableTextInstance(parentType, parentProps, paren...
function recordEffect (line 9464) | function recordEffect() {
function recordScheduleUpdate (line 9470) | function recordScheduleUpdate() {
function startRequestCallbackTimer (line 9481) | function startRequestCallbackTimer() {
function stopRequestCallbackTimer (line 9490) | function stopRequestCallbackTimer(didExpire, expirationTime) {
function startWorkTimer (line 9500) | function startWorkTimer(fiber) {
function cancelWorkTimer (line 9514) | function cancelWorkTimer(fiber) {
function stopWorkTimer (line 9526) | function stopWorkTimer(fiber) {
function stopFailedWorkTimer (line 9541) | function stopFailedWorkTimer(fiber) {
function startPhaseTimer (line 9557) | function startPhaseTimer(fiber, phase) {
function stopPhaseTimer (line 9571) | function stopPhaseTimer() {
function startWorkLoopTimer (line 9585) | function startWorkLoopTimer(nextUnitOfWork) {
function stopWorkLoopTimer (line 9600) | function stopWorkLoopTimer(interruptedBy, didCompleteRoot) {
function startCommitTimer (line 9624) | function startCommitTimer() {
function stopCommitTimer (line 9636) | function stopCommitTimer() {
function startCommitSnapshotEffectsTimer (line 9657) | function startCommitSnapshotEffectsTimer() {
function stopCommitSnapshotEffectsTimer (line 9667) | function stopCommitSnapshotEffectsTimer() {
function startCommitHostEffectsTimer (line 9678) | function startCommitHostEffectsTimer() {
function stopCommitHostEffectsTimer (line 9688) | function stopCommitHostEffectsTimer() {
function startCommitLifeCyclesTimer (line 9699) | function startCommitLifeCyclesTimer() {
function stopCommitLifeCyclesTimer (line 9709) | function stopCommitLifeCyclesTimer() {
function createCursor (line 9730) | function createCursor(defaultValue) {
function pop (line 9736) | function pop(cursor, fiber) {
function push (line 9761) | function push(cursor, value, fiber) {
function checkThatStackIsEmpty (line 9773) | function checkThatStackIsEmpty() {
function resetStackAfterFatalErrorInDev (line 9781) | function resetStackAfterFatalErrorInDev() {
function getUnmaskedContext (line 9809) | function getUnmaskedContext(workInProgress, Component, didPushOwnContext...
function cacheContext (line 9820) | function cacheContext(workInProgress, unmaskedContext, maskedContext) {
function getMaskedContext (line 9826) | function getMaskedContext(workInProgress, unmaskedContext) {
function hasContextChanged (line 9860) | function hasContextChanged() {
function isContextProvider (line 9864) | function isContextProvider(type) {
function popContext (line 9869) | function popContext(fiber) {
function popTopLevelContextObject (line 9874) | function popTopLevelContextObject(fiber) {
function pushTopLevelContextObject (line 9879) | function pushTopLevelContextObject(fiber, context, didChange) {
function processChildContext (line 9886) | function processChildContext(fiber, type, parentContext) {
function pushContextProvider (line 9931) | function pushContextProvider(workInProgress) {
function invalidateContextProvider (line 9947) | function invalidateContextProvider(workInProgress, type, didChange) {
function findCurrentUnmaskedContext (line 9971) | function findCurrentUnmaskedContext(fiber) {
function catchErrors (line 10007) | function catchErrors(fn) {
function injectInternals (line 10022) | function injectInternals(internals) {
function onCommitRoot (line 10060) | function onCommitRoot(root) {
function onCommitUnmount (line 10066) | function onCommitUnmount(fiber) {
function msToExpirationTime (line 10085) | function msToExpirationTime(ms) {
function expirationTimeToMs (line 10090) | function expirationTimeToMs(expirationTime) {
function ceiling (line 10094) | function ceiling(num, precision) {
function computeExpirationBucket (line 10098) | function computeExpirationBucket(currentTime, expirationInMs, bucketSize...
function computeAsyncExpiration (line 10105) | function computeAsyncExpiration(currentTime) {
function computeInteractiveExpiration (line 10123) | function computeInteractiveExpiration(currentTime) {
function FiberNode (line 10161) | function FiberNode(tag, pendingProps, key, mode) {
function shouldConstruct (line 10232) | function shouldConstruct(Component) {
function resolveLazyComponentTag (line 10237) | function resolveLazyComponentTag(fiber, Component) {
function createWorkInProgress (line 10247) | function createWorkInProgress(current, pendingProps, expirationTime) {
function createHostRootFiber (line 10319) | function createHostRootFiber(isAsync) {
function createFiberFromElement (line 10332) | function createFiberFromElement(element, mode, expirationTime) {
function createFiberFromFragment (line 10415) | function createFiberFromFragment(elements, mode, expirationTime, key) {
function createFiberFromProfiler (line 10421) | function createFiberFromProfiler(pendingProps, mode, expirationTime, key) {
function createFiberFromText (line 10435) | function createFiberFromText(content, mode, expirationTime) {
function createFiberFromHostInstanceForDeletion (line 10441) | function createFiberFromHostInstanceForDeletion() {
function createFiberFromPortal (line 10447) | function createFiberFromPortal(portal, mode, expirationTime) {
function assignFiberPropertiesInDEV (line 10460) | function assignFiberPropertiesInDEV(target, source) {
function createFiberRoot (line 10526) | function createFiberRoot(containerInfo, isAsync, hydrate) {
function markPendingPriorityLevel (line 10901) | function markPendingPriorityLevel(root, expirationTime) {
function markCommittedPriorityLevels (line 10927) | function markCommittedPriorityLevels(root, earliestRemainingTime) {
function hasLowerPriorityWork (line 10998) | function hasLowerPriorityWork(root, erroredExpirationTime) {
function isPriorityLevelSuspended (line 11005) | function isPriorityLevelSuspended(root, expirationTime) {
function markSuspendedPriorityLevel (line 11011) | function markSuspendedPriorityLevel(root, suspendedTime) {
function markPingedPriorityLevel (line 11052) | function markPingedPriorityLevel(root, pingedTime) {
function clearPing (line 11065) | function clearPing(root, completedTime) {
function findEarliestOutstandingPriorityLevel (line 11074) | function findEarliestOutstandingPriorityLevel(root, renderExpirationTime) {
function didExpireAtExpirationTime (line 11088) | function didExpireAtExpirationTime(root, currentTime) {
function findNextExpirationTimeToWorkOn (line 11096) | function findNextExpirationTimeToWorkOn(completedExpirationTime, root) {
function createUpdateQueue (line 11223) | function createUpdateQueue(baseState) {
function cloneUpdateQueue (line 11238) | function cloneUpdateQueue(currentQueue) {
function createUpdate (line 11258) | function createUpdate(expirationTime) {
function appendUpdateToQueue (line 11271) | function appendUpdateToQueue(queue, update) {
function enqueueUpdate (line 11282) | function enqueueUpdate(fiber, update) {
function enqueueCapturedUpdate (line 11344) | function enqueueCapturedUpdate(workInProgress, update) {
function ensureWorkInProgressQueueIsAClone (line 11367) | function ensureWorkInProgressQueueIsAClone(workInProgress, queue) {
function getStateFromUpdate (line 11379) | function getStateFromUpdate(workInProgress, queue, update, prevState, ne...
function processUpdateQueue (line 11433) | function processUpdateQueue(workInProgress, queue, props, instance, rend...
function callCallback (line 11563) | function callCallback(callback, context) {
function resetHasForceUpdateBeforeProcessing (line 11568) | function resetHasForceUpdateBeforeProcessing() {
function checkHasForceUpdateAfterProcessing (line 11572) | function checkHasForceUpdateAfterProcessing() {
function commitUpdateQueue (line 11576) | function commitUpdateQueue(finishedWork, finishedQueue, instance, render...
function commitUpdateEffects (line 11599) | function commitUpdateEffects(effect, instance) {
function createCapturedValue (line 11610) | function createCapturedValue(value, source) {
function resetContextDependences (line 11632) | function resetContextDependences() {
function pushProvider (line 11640) | function pushProvider(providerFiber, nextValue) {
function popProvider (line 11662) | function popProvider(providerFiber) {
function calculateChangedBits (line 11675) | function calculateChangedBits(context, newValue, oldValue) {
function propagateContextChange (line 11693) | function propagateContextChange(workInProgress, context, changedBits, re...
function prepareToReadContext (line 11786) | function prepareToReadContext(workInProgress, renderExpirationTime) {
function readContext (line 11795) | function readContext(context, observedBits) {
function requiredContext (line 11834) | function requiredContext(c) {
function getRootHostContainer (line 11839) | function getRootHostContainer() {
function pushHostContainer (line 11844) | function pushHostContainer(fiber, nextRootInstance) {
function popHostContainer (line 11864) | function popHostContainer(fiber) {
function getHostContext (line 11870) | function getHostContext() {
function pushHostContext (line 11875) | function pushHostContext(fiber) {
function popHostContext (line 11891) | function popHostContext(fiber) {
function getCommitTime (line 11905) | function getCommitTime() {
function recordCommitTime (line 11909) | function recordCommitTime() {
function startProfilerTimer (line 11916) | function startProfilerTimer(fiber) {
function stopProfilerTimerIfRunning (line 11928) | function stopProfilerTimerIfRunning(fiber) {
function stopProfilerTimerIfRunningAndRecordDelta (line 11935) | function stopProfilerTimerIfRunningAndRecordDelta(fiber, overrideBaseTim...
function applyDerivedStateFromProps (line 12011) | function applyDerivedStateFromProps(workInProgress, ctor, getDerivedStat...
function checkShouldComponentUpdate (line 12096) | function checkShouldComponentUpdate(workInProgress, ctor, oldProps, newP...
function checkClassInstance (line 12117) | function checkClassInstance(workInProgress, ctor, newProps) {
function adoptClassInstance (line 12178) | function adoptClassInstance(workInProgress, instance) {
function constructClassInstance (line 12188) | function constructClassInstance(workInProgress, ctor, props, renderExpir...
function callComponentWillMount (line 12256) | function callComponentWillMount(workInProgress, instance) {
function callComponentWillReceiveProps (line 12277) | function callComponentWillReceiveProps(workInProgress, instance, newProp...
function mountClassInstance (line 12301) | function mountClassInstance(workInProgress, ctor, newProps, renderExpira...
function resumeMountClassInstance (line 12364) | function resumeMountClassInstance(workInProgress, ctor, newProps, render...
function updateClassInstance (line 12453) | function updateClassInstance(current, workInProgress, ctor, newProps, re...
function coerceRef (line 12601) | function coerceRef(returnFiber, current$$1, element) {
function throwOnInvalidObjectType (line 12650) | function throwOnInvalidObjectType(returnFiber, newChild) {
function warnOnFunctionType (line 12660) | function warnOnFunctionType() {
function ChildReconciler (line 12675) | function ChildReconciler(shouldTrackSideEffects) {
function cloneChildFibers (line 13475) | function cloneChildFibers(current$$1, workInProgress) {
function enterHydrationState (line 13501) | function enterHydrationState(fiber) {
function deleteHydratableInstance (line 13513) | function deleteHydratableInstance(returnFiber, instance) {
function insertNonHydratedInstance (line 13543) | function insertNonHydratedInstance(returnFiber, fiber) {
function tryHydrate (line 13587) | function tryHydrate(fiber, nextInstance) {
function tryToClaimNextHydratableInstance (line 13615) | function tryToClaimNextHydratableInstance(fiber) {
function prepareToHydrateHostInstance (line 13650) | function prepareToHydrateHostInstance(fiber, rootContainerInstance, host...
function prepareToHydrateHostTextInstance (line 13667) | function prepareToHydrateHostTextInstance(fiber) {
function popToNextHostParent (line 13703) | function popToNextHostParent(fiber) {
function popHydrationState (line 13711) | function popHydrationState(fiber) {
function resetHydrationState (line 13749) | function resetHydrationState() {
function readLazyComponentType (line 13759) | function readLazyComponentType(thenable) {
function reconcileChildren (line 13809) | function reconcileChildren(current$$1, workInProgress, nextChildren, ren...
function updateForwardRef (line 13827) | function updateForwardRef(current$$1, workInProgress, type, nextProps, r...
function updateFragment (line 13853) | function updateFragment(current$$1, workInProgress, renderExpirationTime) {
function updateMode (line 13860) | function updateMode(current$$1, workInProgress, renderExpirationTime) {
function updateProfiler (line 13867) | function updateProfiler(current$$1, workInProgress, renderExpirationTime) {
function markRef (line 13878) | function markRef(current$$1, workInProgress) {
function updateFunctionalComponent (line 13886) | function updateFunctionalComponent(current$$1, workInProgress, Component...
function updateClassComponent (line 13906) | function updateClassComponent(current$$1, workInProgress, Component, nex...
function finishClassComponent (line 13936) | function finishClassComponent(current$$1, workInProgress, Component, sho...
function pushHostRootContext (line 14003) | function pushHostRootContext(workInProgress) {
function updateHostRoot (line 14014) | function updateHostRoot(current$$1, workInProgress, renderExpirationTime) {
function updateHostComponent (line 14058) | function updateHostComponent(current$$1, workInProgress, renderExpiratio...
function updateHostText (line 14099) | function updateHostText(current$$1, workInProgress) {
function resolveDefaultProps (line 14110) | function resolveDefaultProps(Component, baseProps) {
function mountIndeterminateComponent (line 14125) | function mountIndeterminateComponent(current$$1, workInProgress, Compone...
function updatePlaceholderComponent (line 14247) | function updatePlaceholderComponent(current$$1, workInProgress, renderEx...
function updatePortalComponent (line 14303) | function updatePortalComponent(current$$1, workInProgress, renderExpirat...
function updateContextProvider (line 14321) | function updateContextProvider(current$$1, workInProgress, renderExpirat...
function updateContextConsumer (line 14361) | function updateContextConsumer(current$$1, workInProgress, renderExpirat...
function bailoutOnAlreadyFinishedWork (line 14406) | function bailoutOnAlreadyFinishedWork(current$$1, workInProgress, render...
function memoizeProps (line 14435) | function memoizeProps(workInProgress, nextProps) {
function memoizeState (line 14439) | function memoizeState(workInProgress, nextState) {
function beginWork (line 14445) | function beginWork(current$$1, workInProgress, renderExpirationTime) {
function markUpdate (line 14570) | function markUpdate(workInProgress) {
function markRef$1 (line 14576) | function markRef$1(workInProgress) {
function appendAllChildren (line 14580) | function appendAllChildren(parent, workInProgress) {
function completeWork (line 14765) | function completeWork(current, workInProgress, renderExpirationTime) {
function showErrorDialog (line 14922) | function showErrorDialog(capturedError) {
function logCapturedError (line 14926) | function logCapturedError(capturedError) {
function logError (line 14993) | function logError(boundary, errorInfo) {
function safelyCallComponentWillUnmount (line 15039) | function safelyCallComponentWillUnmount(current$$1, instance) {
function safelyDetachRef (line 15049) | function safelyDetachRef(current$$1) {
function commitBeforeMutationLifeCycles (line 15066) | function commitBeforeMutationLifeCycles(current$$1, finishedWork) {
function commitLifeCycles (line 15106) | function commitLifeCycles(finishedRoot, current$$1, finishedWork, commit...
function commitAttachRef (line 15223) | function commitAttachRef(finishedWork) {
function commitDetachRef (line 15249) | function commitDetachRef(current$$1) {
function commitUnmount (line 15263) | function commitUnmount(current$$1) {
function commitNestedUnmounts (line 15297) | function commitNestedUnmounts(root) {
function detachFiber (line 15329) | function detachFiber(current$$1) {
function emptyPortalContainer (line 15343) | function emptyPortalContainer(current$$1) {
function commitContainer (line 15355) | function commitContainer(finishedWork) {
function getHostParentFiber (line 15391) | function getHostParentFiber(fiber) {
function isHostParent (line 15402) | function isHostParent(fiber) {
function getHostSibling (line 15406) | function getHostSibling(fiber) {
function commitPlacement (line 15447) | function commitPlacement(finishedWork) {
function unmountHostComponents (line 15524) | function unmountHostComponents(current$$1) {
function commitDeletion (line 15609) | function commitDeletion(current$$1) {
function commitWork (line 15621) | function commitWork(current$$1, finishedWork) {
function commitResetTextContent (line 15684) | function commitResetTextContent(current$$1) {
function NoopComponent (line 15691) | function NoopComponent() {
function createRootErrorUpdate (line 15695) | function createRootErrorUpdate(fiber, errorInfo, expirationTime) {
function createClassErrorUpdate (line 15710) | function createClassErrorUpdate(fiber, errorInfo, expirationTime) {
function throwException (line 15743) | function throwException(root, returnFiber, sourceFiber, value, renderExp...
function unwindWork (line 15930) | function unwindWork(workInProgress, renderExpirationTime) {
function unwindInterruptedWork (line 15992) | function unwindInterruptedWork(interruptedWork) {
function resetStack (line 16205) | function resetStack() {
function commitAllHostEffects (line 16226) | function commitAllHostEffects() {
function commitBeforeMutationLifecycles (line 16296) | function commitBeforeMutationLifecycles() {
function commitAllLifeCycles (line 16319) | function commitAllLifeCycles(finishedRoot, committedExpirationTime) {
function isAlreadyFailedLegacyErrorBoundary (line 16357) | function isAlreadyFailedLegacyErrorBoundary(instance) {
function markLegacyErrorBoundaryAsFailed (line 16361) | function markLegacyErrorBoundaryAsFailed(instance) {
function commitRoot (line 16369) | function commitRoot(root, finishedWork) {
function resetChildExpirationTime (line 16586) | function resetChildExpirationTime(workInProgress, renderTime) {
function completeUnitOfWork (line 16647) | function completeUnitOfWork(workInProgress) {
function performUnitOfWork (line 16825) | function performUnitOfWork(workInProgress) {
function workLoop (line 16882) | function workLoop(isYieldy) {
function renderRoot (line 16896) | function renderRoot(root, isYieldy, isExpired) {
function dispatch (line 17122) | function dispatch(sourceFiber, value, expirationTime) {
function captureCommitPhaseError (line 17163) | function captureCommitPhaseError(fiber, error) {
function computeThreadID (line 17167) | function computeThreadID(expirationTime, interactionThreadID) {
function computeUniqueAsyncExpiration (line 17173) | function computeUniqueAsyncExpiration() {
function computeExpirationForFiber (line 17186) | function computeExpirationForFiber(currentTime, fiber) {
function renderDidSuspend (line 17233) | function renderDidSuspend(root, absoluteTimeoutMs, suspendedTime) {
function renderDidError (line 17240) | function renderDidError() {
function retrySuspendedRoot (line 17244) | function retrySuspendedRoot(root, fiber, suspendedTime) {
function scheduleWorkToRoot (line 17278) | function scheduleWorkToRoot(fiber, expirationTime) {
function storeInteractionsForExpirationTime (line 17310) | function storeInteractionsForExpirationTime(root, expirationTime, update...
function scheduleWork (line 17346) | function scheduleWork(fiber, expirationTime) {
function syncUpdates (line 17390) | function syncUpdates(fn, a, b, c, d) {
function recomputeCurrentRendererTime (line 17435) | function recomputeCurrentRendererTime() {
function scheduleCallbackWithExpirationTime (line 17440) | function scheduleCallbackWithExpirationTime(root, expirationTime) {
function onFatal (line 17469) | function onFatal(root) {
function onComplete (line 17473) | function onComplete(root, finishedWork, expirationTime) {
function onSuspend (line 17478) | function onSuspend(root, finishedWork, suspendedExpirationTime, rootExpi...
function onYield (line 17490) | function onYield(root) {
function onTimeout (line 17494) | function onTimeout(root, finishedWork, suspendedExpirationTime) {
function onCommit (line 17517) | function onCommit(root, expirationTime) {
function requestCurrentTime (line 17522) | function requestCurrentTime() {
function requestWork (line 17565) | function requestWork(root, expirationTime) {
function addRootToSchedule (line 17593) | function addRootToSchedule(root, expirationTime) {
function findHighestPriorityRoot (line 17617) | function findHighestPriorityRoot() {
function performAsyncWork (line 17678) | function performAsyncWork(dl) {
function performSyncWork (line 17698) | function performSyncWork() {
function performWork (line 17702) | function performWork(minExpirationTime, dl) {
function flushRoot (line 17752) | function flushRoot(root, expirationTime) {
function finishRendering (line 17764) | function finishRendering() {
function performWorkOnRoot (line 17792) | function performWorkOnRoot(root, expirationTime, isExpired) {
function completeRoot (line 17863) | function completeRoot(root, finishedWork, expirationTime) {
function shouldYield (line 17900) | function shouldYield() {
function onUncaughtError (line 17913) | function onUncaughtError(error) {
function batchedUpdates$1 (line 17926) | function batchedUpdates$1(fn, a) {
function unbatchedUpdates (line 17941) | function unbatchedUpdates(fn, a) {
function flushSync (line 17955) | function flushSync(fn, a) {
function interactiveUpdates$1 (line 17967) | function interactiveUpdates$1(fn, a, b) {
function flushInteractiveUpdates$1 (line 17995) | function flushInteractiveUpdates$1() {
function flushControlled (line 18003) | function flushControlled(fn) {
function getContextForSubtree (line 18026) | function getContextForSubtree(parentComponent) {
function scheduleRootUpdate (line 18049) | function scheduleRootUpdate(current$$1, element, expirationTime, callbac...
function updateContainerAtExpirationTime (line 18073) | function updateContainerAtExpirationTime(element, container, parentCompo...
function findHostInstance (line 18099) | function findHostInstance(component) {
function createContainer (line 18115) | function createContainer(containerInfo, isAsync, hydrate) {
function updateContainer (line 18119) | function updateContainer(element, container, parentComponent, callback) {
function getPublicRootInstance (line 18126) | function getPublicRootInstance(container) {
function findHostInstanceWithNoPortals (line 18139) | function findHostInstanceWithNoPortals(fiber) {
function injectIntoDevTools (line 18147) | function injectIntoDevTools(devToolsConfig) {
function createPortal$1 (line 18171) | function createPortal$1(children, containerInfo,
function ReactBatch (line 18235) | function ReactBatch(root) {
function ReactWork (line 18340) | function ReactWork() {
function ReactRoot (line 18375) | function ReactRoot(container, isAsync, hydrate) {
function isValidContainer (line 18451) | function isValidContainer(node) {
function getReactRootElementInContainer (line 18455) | function getReactRootElementInContainer(container) {
function shouldHydrateDueToLegacyHeuristic (line 18467) | function shouldHydrateDueToLegacyHeuristic(container) {
function legacyCreateRootFromDOMContainer (line 18476) | function legacyCreateRootFromDOMContainer(container, forceHydrate) {
function legacyRenderSubtreeIntoContainer (line 18503) | function legacyRenderSubtreeIntoContainer(parentComponent, children, con...
function createPortal (line 18550) | function createPortal(children, container) {
function checkDCE (line 18706) | function checkDCE() {
function getIteratorFn (line 18791) | function getIteratorFn(maybeIterable) {
function invariant (line 18865) | function invariant(condition, format, a, b, c, d, e, f) {
function warnNoop (line 19033) | function warnNoop(publicInstance, callerName) {
function Component (line 19122) | function Component(props, context, updater) {
function ComponentDummy (line 19207) | function ComponentDummy() {}
function PureComponent (line 19213) | function PureComponent(props, context, updater) {
function createRef (line 19228) | function createRef() {
function refineResolvedThenable (line 19286) | function refineResolvedThenable(thenable) {
function getComponentName (line 19290) | function getComponentName(type) {
function setCurrentlyValidatingElement (line 19346) | function setCurrentlyValidatingElement(element) {
function hasValidRef (line 19432) | function hasValidRef(config) {
function hasValidKey (line 19444) | function hasValidKey(config) {
function defineKeyPropWarningGetter (line 19456) | function defineKeyPropWarningGetter(props, displayName) {
function defineRefPropWarningGetter (line 19470) | function defineRefPropWarningGetter(props, displayName) {
function createElement (line 19564) | function createElement(type, config, children) {
function cloneAndReplaceKey (line 19640) | function cloneAndReplaceKey(oldElement, newKey) {
function cloneElement (line 19650) | function cloneElement(element, config, children) {
function isValidElement (line 19721) | function isValidElement(object) {
function escape (line 19734) | function escape(key) {
function escapeUserProvidedKey (line 19755) | function escapeUserProvidedKey(text) {
function getPooledTraverseContext (line 19761) | function getPooledTraverseContext(mapResult, keyPrefix, mapFunction, map...
function releaseTraverseContext (line 19781) | function releaseTraverseContext(traverseContext) {
function traverseAllChildrenImpl (line 19800) | function traverseAllChildrenImpl(children, nameSoFar, callback, traverse...
function traverseAllChildren (line 19894) | function traverseAllChildren(children, callback, traverseContext) {
function getComponentKey (line 19909) | function getComponentKey(component, index) {
function forEachSingleChild (line 19920) | function forEachSingleChild(bookKeeping, child, name) {
function forEachChildren (line 19939) | function forEachChildren(children, forEachFunc, forEachContext) {
function mapSingleChildIntoContext (line 19948) | function mapSingleChildIntoContext(bookKeeping, child, childKey) {
function mapIntoWithKeyPrefixInternal (line 19971) | function mapIntoWithKeyPrefixInternal(children, array, prefix, func, con...
function mapChildren (line 19994) | function mapChildren(children, func, context) {
function countChildren (line 20012) | function countChildren(children) {
function toArray (line 20024) | function toArray(children) {
function onlyChild (line 20046) | function onlyChild(children) {
function readContext (line 20051) | function readContext(context, observedBits) {
function createContext (line 20057) | function createContext(defaultValue, calculateChangedBits) {
function lazy (line 20097) | function lazy(ctor) {
function forwardRef (line 20115) | function forwardRef(render) {
function isValidElementType (line 20136) | function isValidElementType(type) {
function getDeclarationErrorAddendum (line 20155) | function getDeclarationErrorAddendum() {
function getSourceInfoErrorAddendum (line 20165) | function getSourceInfoErrorAddendum(elementProps) {
function getCurrentComponentErrorInfo (line 20182) | function getCurrentComponentErrorInfo(parentType) {
function validateExplicitKey (line 20205) | function validateExplicitKey(element, parentType) {
function validateChildKeys (line 20242) | function validateChildKeys(node, parentType) {
function validatePropTypes (line 20282) | function validatePropTypes(element) {
function validateFragmentProps (line 20315) | function validateFragmentProps(fragment) {
function createElementWithValidation (line 20334) | function createElementWithValidation(type, props, children) {
function createFactoryWithValidation (line 20395) | function createFactoryWithValidation(type) {
function cloneElementWithValidation (line 20415) | function cloneElementWithValidation(element, props, children) {
function unstable_clear (line 20589) | function unstable_clear(callback) {
function unstable_getCurrent (line 20604) | function unstable_getCurrent() {
function unstable_getThreadID (line 20612) | function unstable_getThreadID() {
function unstable_trace (line 20616) | function unstable_trace(name, timestamp, callback) {
function unstable_wrap (line 20677) | function unstable_wrap(callback) {
function unstable_subscribe (line 20775) | function unstable_subscribe(subscriber) {
function unstable_unsubscribe (line 20792) | function unstable_unsubscribe(subscriber) {
function onInteractionTraced (line 20802) | function onInteractionTraced(interaction) {
function onInteractionScheduledWorkCompleted (line 20822) | function onInteractionScheduledWorkCompleted(interaction) {
function onWorkScheduled (line 20842) | function onWorkScheduled(interactions, threadID) {
function onWorkStarted (line 20862) | function onWorkStarted(interactions, threadID) {
function onWorkStopped (line 20882) | function onWorkStopped(interactions, threadID) {
function onWorkCanceled (line 20902) | function onWorkCanc
Condensed preview — 302 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (7,003K chars).
[
{
"path": ".gitignore",
"chars": 38,
"preview": "node_modules\n.DS_Store\nyarn-error.log\n"
},
{
"path": ".meta/cp-guide-plugins.sh",
"chars": 119,
"preview": "#!/bin/bash\nfind ../../plugin-guides/Guides -name \"manifest.json\" | xargs -n 1 dirname | xargs -n 1 -I DIR cp -r DIR .."
},
{
"path": "CODE_OF_CONDUCT.md",
"chars": 3223,
"preview": "# Adobe Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, we as\ncontributo"
},
{
"path": "CONTRIBUTING.md",
"chars": 2069,
"preview": "# Contributing\n\nThanks for choosing to contribute!\n\nThe following are a set of guidelines to follow when contributing to"
},
{
"path": "COPYRIGHT",
"chars": 170,
"preview": "© Copyright 2015-2018 Adobe. All rights reserved.\n\nAdobe holds the copyright for all the files found in this repository."
},
{
"path": "LICENSE",
"chars": 1062,
"preview": "MIT License\n\nCopyright (c) 2018 Adobe\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof t"
},
{
"path": "README.md",
"chars": 13614,
"preview": "# Plugin Samples\n\nThis repository contains a library of sample XD plugins to help you on your journey. You can use these"
},
{
"path": "e2e-adobe-stock/.gitignore",
"chars": 11,
"preview": ".debug.json"
},
{
"path": "e2e-adobe-stock/.xdignore",
"chars": 120,
"preview": ".xdignore\n.gitignore\n.npmignore\nsrc/\nnode_modules/\npackage-lock.json\npackage.json\nwebpack.config.js\nyarn.lock\nreadme.md\n"
},
{
"path": "e2e-adobe-stock/debug.json",
"chars": 20,
"preview": "{\n \"port\": 9345\n}"
},
{
"path": "e2e-adobe-stock/main.js",
"chars": 988535,
"preview": "module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installed"
},
{
"path": "e2e-adobe-stock/manifest.json",
"chars": 593,
"preview": "{\n \"id\": \"ADOBE_STOCK_SEARCH\",\n \"author\": \"Kerri Shotts\",\n \"name\": \"(E2E) Adobe Stock Search\",\n \"version\": \""
},
{
"path": "e2e-adobe-stock/package.json",
"chars": 738,
"preview": "{\n \"name\": \"e2e-adobe-stock\",\n \"version\": \"1.0.0\",\n \"main\": \"main.js\",\n \"scripts\": {\n \"watch\": \"nodemon -w src -e"
},
{
"path": "e2e-adobe-stock/readme.md",
"chars": 546,
"preview": "# End-to-end Adobe Stock Photo Search Demo\n\nFirst, you'll need to get an API key from the Adobe console. Find the file n"
},
{
"path": "e2e-adobe-stock/src/App.css",
"chars": 1403,
"preview": "/*\nform {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n}\n\nh1 {\n display: flex;\n justify-cont"
},
{
"path": "e2e-adobe-stock/src/App.jsx",
"chars": 1908,
"preview": "const React = require(\"react\");\n\nconst PreferencesStore = require(\"./store/Preferences\");\nconst StockSearch = require(\"."
},
{
"path": "e2e-adobe-stock/src/apikey.json",
"chars": 20,
"preview": "{\n \"apikey\": \"\"\n}"
},
{
"path": "e2e-adobe-stock/src/components/Card.css",
"chars": 760,
"preview": ":local(.cardWrapper) {\n margin: var(--margin);\n border-radius: 8px;\n background-color: #EAEAEA;\n flex: 1 1 a"
},
{
"path": "e2e-adobe-stock/src/components/Card.jsx",
"chars": 993,
"preview": "const React = require(\"react\");\nconst IconButton = require(\"./IconButton\");\nconst InfoIcon = require(\"../assets/dots.svg"
},
{
"path": "e2e-adobe-stock/src/components/DraggableImage.jsx",
"chars": 878,
"preview": "const React = require(\"react\");\n\n// NOTE: THE DRAG AND DROP APIS ARE IN FLUX; DO NOT USE.\n\nfunction dragStart(event) {\n "
},
{
"path": "e2e-adobe-stock/src/components/Grid.css",
"chars": 134,
"preview": ":local(.results) {\n justify-content: center;\n flex: 0 0 auto;\n display: flex;\n flex-direction: row;\n flex"
},
{
"path": "e2e-adobe-stock/src/components/Grid.jsx",
"chars": 801,
"preview": "const React = require('react');\n\nconst Card = require('./Card');\nconst styles = require('./Grid.css');\n\nconst Grid = ({ "
},
{
"path": "e2e-adobe-stock/src/components/IconButton.css",
"chars": 448,
"preview": ":local(.button) {\n border: 1px solid transparent;\n padding: 4px 8px;\n border-radius: 4px;\n}\n:local(.button):not"
},
{
"path": "e2e-adobe-stock/src/components/IconButton.jsx",
"chars": 393,
"preview": "const React = require(\"react\");\n\nconst styles = require(\"./IconButton.css\");\n\nmodule.exports = ({icon: Icon, onClick, di"
},
{
"path": "e2e-adobe-stock/src/components/List.css",
"chars": 1203,
"preview": "\n\n:local(.resultsList) {\n flex: 0 0 auto;\n display: flex;\n flex-direction: column;\n}\n\n:local(.resultRow) {\n "
},
{
"path": "e2e-adobe-stock/src/components/List.jsx",
"chars": 1276,
"preview": "const React = require('react');\nconst IconButton = require(\"./IconButton\");\nconst DotsIcon = require(\"../assets/dots.svg"
},
{
"path": "e2e-adobe-stock/src/components/MaxResultsField.jsx",
"chars": 487,
"preview": "const React = require('react');\n\nconst MAX_RESULTS = ['20', '50', '75', '100'];\n\nconst MaxResultsField = ({ label, onCha"
},
{
"path": "e2e-adobe-stock/src/components/Preferences.css",
"chars": 240,
"preview": ":local(.logo) {\n height: 26px;\n}\n:local(.form) {\n width: 480px;\n}\n:local(.contents) {\n flex: 0 0 auto;\n}\n:local"
},
{
"path": "e2e-adobe-stock/src/components/Preferences.jsx",
"chars": 3103,
"preview": "const React = require(\"react\");\nconst styles = require(\"./Preferences.css\");\nconst IconButton = require(\"./IconButton\");"
},
{
"path": "e2e-adobe-stock/src/components/SearchField.css",
"chars": 44,
"preview": ":local(.searchInput) {\n flex: 1 1 auto;\n}"
},
{
"path": "e2e-adobe-stock/src/components/SearchField.jsx",
"chars": 993,
"preview": "const React = require('react');\nconst IconButton = require(\"./IconButton\");\nconst SearchIcon = require(\"../assets/search"
},
{
"path": "e2e-adobe-stock/src/components/StockSearch.css",
"chars": 817,
"preview": ":local(.form) {\n display: flex;\n flex-direction: column;\n overflow: hidden;\n padding: 0;\n height: 100%;\n}"
},
{
"path": "e2e-adobe-stock/src/components/StockSearch.jsx",
"chars": 10702,
"preview": "const React = require('react');\n\nconst styles = require('./StockSearch.css');\n\nconst searchStock = require('../util/sear"
},
{
"path": "e2e-adobe-stock/src/components/ViewSwitcher.css",
"chars": 125,
"preview": ":local(.viewMode) {\n display: flex;\n flex-direction: row;\n margin: 0;\n}\n\n:local(.viewMode) button {\n margin:"
},
{
"path": "e2e-adobe-stock/src/components/ViewSwitcher.jsx",
"chars": 799,
"preview": "const React = require('react');\nconst IconButton = require(\"./IconButton\");\nconst GridIcon = require(\"../assets/grid.svg"
},
{
"path": "e2e-adobe-stock/src/contexts/StoreContext.js",
"chars": 108,
"preview": "const React = require(\"react\");\n\nconst StoreContext = React.createContext();\n\nmodule.exports = StoreContext;"
},
{
"path": "e2e-adobe-stock/src/controllers/PanelController.js",
"chars": 1126,
"preview": "const React = require(\"react\");\nconst ReactDOM = require(\"react-dom\");\nconst { selection } = require(\"scenegraph\");\ncons"
},
{
"path": "e2e-adobe-stock/src/main.jsx",
"chars": 381,
"preview": "// shims, in case they aren't present in the current environment\nrequire(\"./util/reactShim\");\n\nconst React = require(\"re"
},
{
"path": "e2e-adobe-stock/src/store/Preferences.js",
"chars": 2097,
"preview": "const {\n storage\n} = require(\"uxp\");\nconst {\n localFileSystem: fs\n} = storage;\n\nconst initialState = {\n lastSea"
},
{
"path": "e2e-adobe-stock/src/util/fetchBinary.js",
"chars": 687,
"preview": "function fetchBinary(url) {\n return new Promise((resolve, reject) => {\n const req = new XMLHttpRequest();\n "
},
{
"path": "e2e-adobe-stock/src/util/reactShim.js",
"chars": 428,
"preview": "// this is a temporary shim for the latest versions of react.\nif (window.cancelAnimationFrame == null) {\n window.can"
},
{
"path": "e2e-adobe-stock/src/util/search.js",
"chars": 1752,
"preview": "const API_ROOT = \"https://stock.adobe.io/Rest/Media/1/Search/Files\";\nasync function search(query, { apikey, locale = \"en"
},
{
"path": "e2e-adobe-stock/webpack.config.js",
"chars": 1678,
"preview": "module.exports = {\n entry: \"./src/main.jsx\",\n output: {\n path: __dirname,\n filename: 'main.js',\n "
},
{
"path": "e2e-colorize-text/README.md",
"chars": 1273,
"preview": "# Colorize Text\n\nThis plugin provides several text color utilities, accessible from the **Plugins** > **Colorize Text** "
},
{
"path": "e2e-colorize-text/dialogs.js",
"chars": 5439,
"preview": "let manifest;\n\n/*\n * Generates a \"notice\" dialog with the title, default icon, and a series of messages.\n *\n * @param {*"
},
{
"path": "e2e-colorize-text/lib/dialogs.js",
"chars": 10975,
"preview": "/*\n * Copyright 2018 Adobe Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "e2e-colorize-text/lib/manifest.js",
"chars": 2361,
"preview": "/*\n * Copyright 2018 Adobe Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "e2e-colorize-text/main.js",
"chars": 11189,
"preview": "/******************************************************************************\n *\n * Colorize Text\n * ----------------\n"
},
{
"path": "e2e-colorize-text/manifest.json",
"chars": 1228,
"preview": "{\n \"id\": \"COLORIZE_TEXT\",\n \"author\": \"Kerri Shotts\",\n \"name\": \"(E2E) Colorize Text\",\n \"host\": {\n \"app"
},
{
"path": "e2e-create-magento-product/README.md",
"chars": 457,
"preview": "# Create Magento Product\n\nThis proof of concept sample creates a PNG rendition for the selected artboard and creates a p"
},
{
"path": "e2e-create-magento-product/config.json",
"chars": 108,
"preview": "{\n \"URL\": \"https://your-magento-production-url\",\n \"username\": \"USERNAME\",\n \"password\": \"PASSWORD\"\n}"
},
{
"path": "e2e-create-magento-product/main.js",
"chars": 5970,
"preview": "/*\n * Sample plugin scaffolding for Adobe XD.\n *\n * Visit http://adobexdplatform.com/ for API docs and more sample code."
},
{
"path": "e2e-create-magento-product/manifest.json",
"chars": 470,
"preview": "{\n \"icons\": [\n {\n \"width\": 24,\n \"height\": 24,\n \"path\": \"images/icon@1x.png\"\n },\n {\n \"width"
},
{
"path": "e2e-create-magento-product/package.json",
"chars": 453,
"preview": "{\n \"name\": \"e2e-create-magento-product\",\n \"version\": \"1.0.0\",\n \"description\": \"This proof of concept sample creates a"
},
{
"path": "e2e-create-polygon/README.md",
"chars": 157,
"preview": "# End-to-end Create Polygon Sample\n\nA simple plugin that creates a polygon based on user's inputs.\n\n# Use\n\nSelect \"Creat"
},
{
"path": "e2e-create-polygon/main.js",
"chars": 3518,
"preview": "\nlet dialog;\nconst commands = require(\"commands\");\nfunction createPolygon() {\n const html = `\n <style>\n "
},
{
"path": "e2e-create-polygon/manifest.json",
"chars": 569,
"preview": "{\n \"id\": \"e2e-create-polygon\",\n \"name\": \"Polygon generator\",\n \"host\": {\n \"app\": \"XD\",\n \"minVersio"
},
{
"path": "e2e-customize-banner/README.md",
"chars": 225,
"preview": "# Customize banner\n\nThis plugin provides a simple UI that lets you create custom sized banners.\n\n## Usage\n\n* Open `banne"
},
{
"path": "e2e-customize-banner/main.js",
"chars": 3021,
"preview": "var commands = require(\"commands\");\n\nlet dialog;\n\nconst yourHtml =\n `<style>\n .visible {\n display: "
},
{
"path": "e2e-customize-banner/manifest.json",
"chars": 562,
"preview": "{\n \"id\": \"BANNER_PLUGIN\",\n \"name\": \"Banner plugin\",\n \"host\": {\n \"app\": \"XD\",\n \"minVersion\": \"13.0"
},
{
"path": "e2e-stock-chart/README.md",
"chars": 314,
"preview": "# Stock chart\n\nThis sample takes in a stock symbol using a modal dailog and text field, and draws a line chart of the pi"
},
{
"path": "e2e-stock-chart/main.js",
"chars": 11049,
"preview": "/**\n * Charan Raj\n * \n * This plugin draws a Line chart of the picked stock quote.\n * It first shows a UI Dialog where u"
},
{
"path": "e2e-stock-chart/manifest.json",
"chars": 562,
"preview": "{\n \"id\": \"PICK_STOCK\",\n \"name\": \"(E2E) Pick Stock\",\n \"version\": \"1.0.0\",\n \"host\": {\n \"app\": \"XD\",\n "
},
{
"path": "how-to-create-path-objects/README.md",
"chars": 296,
"preview": "# Create a pie chart\n\nThis sample demonstrates how to create shapes using path objects.\n[Read the step-by-step guide for"
},
{
"path": "how-to-create-path-objects/main.js",
"chars": 1088,
"preview": "const { Path, Color } = require(\"scenegraph\");\n\nfunction pointOnCircle(radius, angle) {\n const radians = angle * 2. *"
},
{
"path": "how-to-create-path-objects/manifest.json",
"chars": 618,
"preview": "{\n \"id\": \"HOW_TO_CREATE_PATHS\",\n \"name\": \"(H2) Create Pie Chart sample plugin\",\n \"host\": {\n \"app\": \"XD\","
},
{
"path": "how-to-display-an-alert/README.md",
"chars": 326,
"preview": "# Asking the user for confirmation\n\nThis sample demonstrates how to build a user confirmation dialog in XD.\n[Read the st"
},
{
"path": "how-to-display-an-alert/lib/dialogs.js",
"chars": 10975,
"preview": "/*\n * Copyright 2018 Adobe Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "how-to-display-an-alert/lib/manifest.js",
"chars": 2361,
"preview": "/*\n * Copyright 2018 Adobe Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "how-to-display-an-alert/main.js",
"chars": 768,
"preview": "const { alert, error } = require(\"./lib/dialogs.js\");\n\nasync function showAlert() {\n\t/* we'll display a dialog here */\n "
},
{
"path": "how-to-display-an-alert/manifest.json",
"chars": 580,
"preview": "{\n \"id\": \"HOW_TO_SHOW_AN_ALERT\",\n \"name\": \"(H2) How to show an alert\",\n \"version\": \"1.0.0\",\n \"host\": {\n \"app\": \"X"
},
{
"path": "how-to-draw-lines/README.md",
"chars": 300,
"preview": "# Draw lines\n\nThis sample demonstrates how to add lines objects to an XD document.\n[Read the step-by-step guide for this"
},
{
"path": "how-to-draw-lines/main.js",
"chars": 1166,
"preview": "const { Line, Color } = require(\"scenegraph\");\nconst commands = require(\"commands\");\n\nconst lineData = [\n { startX: 1"
},
{
"path": "how-to-draw-lines/manifest.json",
"chars": 588,
"preview": "{\n \"id\": \"HOW_TO_DRAW_LINES\",\n \"name\": \"(H2) Create Lines sample plugin\",\n \"host\": {\n \"app\": \"XD\",\n "
},
{
"path": "how-to-export-a-rendition/README.md",
"chars": 546,
"preview": "# How to export a rendition\n\nThis sample generates and exports a rendition of a selection, like an artboard or object, i"
},
{
"path": "how-to-export-a-rendition/main.js",
"chars": 2382,
"preview": "const application = require(\"application\");\nconst fs = require(\"uxp\").storage.localFileSystem;\n\nasync function exportRen"
},
{
"path": "how-to-export-a-rendition/manifest.json",
"chars": 496,
"preview": "{\n \"id\": \"HOW_TO_EXPORT_A_RENDITION\",\n \"name\": \"(H2) How to export a rendition\",\n \"version\": \"1.0.0\",\n \"host\": {\n "
},
{
"path": "how-to-integrate-with-OAuth/README.md",
"chars": 149,
"preview": "# Inegrate with OAuth\n\n[Read the step-by-step guide for this sample](https://adobexdplatform.com/plugin-docs/tutorials/h"
},
{
"path": "how-to-integrate-with-OAuth/main.js",
"chars": 1945,
"preview": "const { Text, Color } = require(\"scenegraph\");\nconst publicUrl = \"https://176d0d74.ngrok.io\"\nlet accessToken;\n\nasync fun"
},
{
"path": "how-to-integrate-with-OAuth/manifest.json",
"chars": 611,
"preview": "{\n \"id\": \"HOW-TO-INTEGRATE-WITH-OAUTH\",\n \"name\": \"(H2) Oauth plugin\",\n \"version\": \"1.0.0\",\n \"host\": {\n "
},
{
"path": "how-to-integrate-with-OAuth/server/package.json",
"chars": 446,
"preview": "{\n \"name\": \"adobe-auth-node\",\n \"version\": \"1.0.0\",\n \"description\": \"adobe auth node example\",\n \"main\": \"index.js\",\n "
},
{
"path": "how-to-integrate-with-OAuth/server/public/config.js",
"chars": 503,
"preview": "/* Replace \"YOUR_ADOBE_API_KEY\" with your Api key \nand \"YOUR_ADOBE_API_SECRET\" with your API Secret */\n\nconst dropboxApi"
},
{
"path": "how-to-integrate-with-OAuth/server/server/index.js",
"chars": 3201,
"preview": "const express = require('express');\nconst app = express();\nconst session = require('express-session')\nconst request = re"
},
{
"path": "how-to-make-network-requests/README.md",
"chars": 417,
"preview": "# Make network requests and fill the object\n\nThis sample shows how to make network requests using `Fetch` and `XMLHttpRe"
},
{
"path": "how-to-make-network-requests/main.js",
"chars": 2013,
"preview": "const { ImageFill } = require(\"scenegraph\");\nconst uxp = require(\"uxp\");\nconst fs = uxp.storage.localFileSystem;\n\nfuncti"
},
{
"path": "how-to-make-network-requests/manifest.json",
"chars": 586,
"preview": "{\n \"id\": \"HOW_TO_MAKE_NETWORK_REQUESTS\",\n \"name\": \"(H2) Network IO\",\n \"version\": \"1.0.0\",\n \"host\": {\n "
},
{
"path": "how-to-read-a-file/README.md",
"chars": 369,
"preview": "# Read the contents of a text file\n\nThis sample imports texts from a `.txt` file and insert them into an XD artboard.\n[R"
},
{
"path": "how-to-read-a-file/main.js",
"chars": 671,
"preview": "const { Text, Color } = require(\"scenegraph\");\nconst fs = require(\"uxp\").storage.localFileSystem;\n\nasync function insert"
},
{
"path": "how-to-read-a-file/manifest.json",
"chars": 604,
"preview": "{\n \"id\": \"HOW_TO_READ_A_FILE\",\n \"name\": \"(H2) Insert Text from File\",\n \"host\": {\n \"app\": \"XD\",\n \""
},
{
"path": "how-to-style-text/README.md",
"chars": 402,
"preview": "# Text Styles\n\nThis sample has two commands that create text nodes with styled text.\n[Read the step-by-step guide for th"
},
{
"path": "how-to-style-text/main.js",
"chars": 1663,
"preview": "const { Text, Color } = require(\"scenegraph\");\n\nfunction createRedTextHandlerFunction(selection) {\n\n // create a new "
},
{
"path": "how-to-style-text/manifest.json",
"chars": 740,
"preview": "{\n \"id\": \"HOW_TO_STYLE_TEXT\",\n \"name\": \"(H2) How to Style Text\",\n \"version\": \"1.0.0\",\n \"host\": {\n \"ap"
},
{
"path": "how-to-work-with-scenenodelist/README.md",
"chars": 423,
"preview": "# Filter and Color objects\n\nThis sample demonstrates how to create various objects and use scenenode list to filter and "
},
{
"path": "how-to-work-with-scenenodelist/main.js",
"chars": 1351,
"preview": "const { Artboard, Rectangle, Ellipse, Text, Color } = require(\"scenegraph\");\n\n\nfunction createElements(selection) {\n\tfor"
},
{
"path": "how-to-work-with-scenenodelist/manifest.json",
"chars": 739,
"preview": "{\n \"id\": \"HOW_TO_WORK_WITH_SCENENODELIST\",\n \"name\": \"(H2) Filter and Color objects\",\n \"version\": \"1.0.0\",\n \""
},
{
"path": "i18n-pojo/main.js",
"chars": 2329,
"preview": "/* \n Get the current language the application UI is using.\n Ex: \"en\"\n https://adobexdplatform.com/plugin-docs/referen"
},
{
"path": "i18n-pojo/manifest.json",
"chars": 557,
"preview": "{\n \"id\": \"i18nPOJO\",\n \"name\": \"Internationalization with a POJO\",\n \"version\": \"1.0.0\",\n \"host\": {\n \"app\": \"XD\",\n "
},
{
"path": "i18n-pojo/readme.md",
"chars": 309,
"preview": "# xd-i18n-pojo\n\nA little example of how to use a Plain Ol' JavaScript object to internationalize and localize your Adobe"
},
{
"path": "i18n-pojo/strings.json",
"chars": 329,
"preview": "{\n \"en\": {\n \"h1\": \"Internationalizing your XD plugin\",\n \"p\": \"You can do this with a standard JavaScript object.\""
},
{
"path": "package.json",
"chars": 1175,
"preview": "{\n \"scripts\": {\n \"watch\": \"echo Compiling styles/*.scss and copying to ~/Projects/torq-native... for style dev"
},
{
"path": "quick-start/README.md",
"chars": 257,
"preview": "# Getting started\n\nThis sample simply creates a rectangle object and inserts it into the artboard.\n[Read the step-by-ste"
},
{
"path": "quick-start/main.js",
"chars": 441,
"preview": "const {Rectangle, Color} = require(\"scenegraph\"); \n\nfunction rectangleHandlerFunction(selection) { \n\n const newElemen"
},
{
"path": "quick-start/manifest.json",
"chars": 572,
"preview": "{\n \"id\": \"QUICK_START\",\n \"name\": \"Hello World sample plugin\",\n \"host\": {\n \"app\": \"XD\",\n \"minVersi"
},
{
"path": "quick-start-panel/README.md",
"chars": 333,
"preview": "# Getting started\n\nThis sample plugin is a persistent panel. Users can increase the width and height of the selected rec"
},
{
"path": "quick-start-panel/main.js",
"chars": 2565,
"preview": "const { selection } = require(\"scenegraph\")\nlet panel;\n\nfunction create() {\n const HTML =\n `<style>\n "
},
{
"path": "quick-start-panel/manifest.json",
"chars": 591,
"preview": "{\n \"id\": \"QUICK_START_PANEL\",\n \"name\": \"Hello World sample plugin for panel\",\n \"host\": {\n \"app\": \"XD\",\n "
},
{
"path": "quick-start-react/README.md",
"chars": 561,
"preview": "# Getting started\n\nThis sample demonstrates how to use React to create a plugin for XD. The plugin receives user's input"
},
{
"path": "quick-start-react/manifest.json",
"chars": 461,
"preview": "{\n \"id\": \"QUICKSTART_REACT\",\n \"name\": \"Quickstart - React\",\n \"version\": \"1.0.0\",\n \"host\": {\n \"app\": \"XD\",\n \"mi"
},
{
"path": "quick-start-react/package.json",
"chars": 634,
"preview": "{\n \"name\": \"helllo_react_jsx\",\n \"version\": \"1.0.0\",\n \"main\": \"main.js\",\n \"scripts\": {\n \"watch\": \"nodemon -w src -"
},
{
"path": "quick-start-react/src/HelloForm.jsx",
"chars": 1365,
"preview": "const React = require('react');\nconst { Text, Color } = require(\"scenegraph\");\n\nclass HelloForm extends React.Component "
},
{
"path": "quick-start-react/src/main.jsx",
"chars": 615,
"preview": "const reactShim = require(\"./react-shim\");\nconst React = require(\"react\");\nconst ReactDOM = require(\"react-dom\");\nconst "
},
{
"path": "quick-start-react/src/react-shim.js",
"chars": 101,
"preview": "if (window.HTMLIFrameElement == null) {\n window.HTMLIFrameElement = class HTMLIFrameElement { };\n}"
},
{
"path": "quick-start-react/webpack.config.js",
"chars": 734,
"preview": "module.exports = {\n entry: \"./src/main.jsx\",\n output: {\n path: __dirname,\n filename: 'main.js',\n "
},
{
"path": "sg-chart-generator/main.js",
"chars": 2773,
"preview": "/**\n * Peter Flynn\n *\n * Generates a pie or bar chart from numeric data entered in text nodes:\n * 1. Create several text"
},
{
"path": "sg-chart-generator/manifest.json",
"chars": 710,
"preview": "{\n \"id\": \"CHART_GENERATOR\",\n \"name\": \"(SG) Chart Generator sample plugin\",\n \"host\": {\n \"app\": \"XD\",\n "
},
{
"path": "sg-dummy-data/main.js",
"chars": 2018,
"preview": "/**\n * Peter Flynn\n * Primitive dummy data generator - select a text node containing a number (how many copies) followed"
},
{
"path": "sg-dummy-data/manifest.json",
"chars": 601,
"preview": "{\n \"id\": \"DUMMY_DATA\",\n \"name\": \"(SG) Basic Dummy Data Generator sample plugin\",\n \"host\": {\n \"app\": \"XD\""
},
{
"path": "sg-dynamic-button/main.js",
"chars": 1539,
"preview": "/**\n * Peter Flynn\n *\n * Sample plugin similar to Sketch's \"Dynamic Button\" plugin. Updates a frame shape to wrap a text"
},
{
"path": "sg-dynamic-button/manifest.json",
"chars": 602,
"preview": "{\n \"id\": \"DYNAMIC_BUTTON\",\n \"name\": \"(SG) \\\"Dynamic Button\\\" padding updater demo\",\n \"host\": {\n \"app\": \""
},
{
"path": "sg-fit-to-object/main.js",
"chars": 4469,
"preview": "/**\n * Steve Kwak\n *\n * How to use the plugin\n * Grouping:\n * 1. Group the items including the item you want to duplicat"
},
{
"path": "sg-fit-to-object/manifest.json",
"chars": 829,
"preview": "{\n \"id\": \"FIT_IT\",\n \"name\": \"(SG) Fit to Object\",\n \"host\": {\n \"app\": \"XD\",\n \"minVersion\": \"13.0\"\n"
},
{
"path": "sg-lots-of-lines/README.md",
"chars": 185,
"preview": "# Draw Lots of Lines\n\nHas two demos:\n\n1. Draws a red and green line in the upper corner, crossing each other.\n2. Draws a"
},
{
"path": "sg-lots-of-lines/main.js",
"chars": 1122,
"preview": "const { Line, Color } = require(\"scenegraph\");\n\nfunction crossedLines() {\n return [\n {x1: 0, y1: 0, x2: 100, y2:"
},
{
"path": "sg-lots-of-lines/manifest.json",
"chars": 907,
"preview": "{\n \"id\": \"LOTS_OF_LINES\",\n \"name\": \"(SG) Lots of Lines\",\n \"host\": {\n \"app\": \"XD\",\n \"minVersion\": "
},
{
"path": "sg-lots-of-rects/README.md",
"chars": 164,
"preview": "# Draw Lots of Rects\n\nMade for one thing and one thing only: makes a complex spiral on the artboard using a lot of retan"
},
{
"path": "sg-lots-of-rects/main.js",
"chars": 632,
"preview": "const { Rectangle, Color } = require(\"scenegraph\");\nconst commands = require(\"commands\");\n\nfunction myPluginCommand(sele"
},
{
"path": "sg-lots-of-rects/manifest.json",
"chars": 517,
"preview": "{\n \"name\": \"Draw Lots of Rectangles\",\n \"id\": \"00000000\",\n \"version\": \"1.0.0\",\n \"icons\": [\n {\n \"widt"
},
{
"path": "sg-margin-guides/main.js",
"chars": 4748,
"preview": "/**\n * Steve Kwak\n *\n * Select one or more artboards and run \"Create margin guide\" to create guide rectangles around the"
},
{
"path": "sg-margin-guides/manifest.json",
"chars": 930,
"preview": "{\n \"id\": \"MARGIN_GUIDE\",\n \"name\": \"(SG) Margin Guides\",\n \"host\": {\n \"app\": \"XD\",\n \"minVersion\": \""
},
{
"path": "sg-meme-me/main.js",
"chars": 2287,
"preview": "/**\n * NJ Jaramillo\n *\n * Select an image and two text items. Run this plugin to convert to a meme: position the text at"
},
{
"path": "sg-meme-me/manifest.json",
"chars": 555,
"preview": "{\n \"id\": \"MEME_ME\",\n \"name\": \"(SG) MemeMe sample plugin\",\n \"host\": {\n \"app\": \"XD\",\n \"minVersion\":"
},
{
"path": "sg-repeater/main.js",
"chars": 2566,
"preview": "/**\n * Peter Flynn\n *\n * Sample plugin with two object-duplication commands:\n * - \"Repeat Item\": Select an object plus a"
},
{
"path": "sg-repeater/manifest.json",
"chars": 722,
"preview": "{\n \"id\": \"ITEM_REPEATER\",\n \"name\": \"(SG) Linear/Rotate Repeat sample plugin\",\n \"host\": {\n \"app\": \"XD\",\n "
},
{
"path": "sg-turtle/main.js",
"chars": 9082,
"preview": "/**\n * Kerri Shotts\n *\n * Draws a series of lines by following \"turtle graphics\" commands:\n * 1. Rename any layer so its"
},
{
"path": "sg-turtle/manifest.json",
"chars": 540,
"preview": "{\n \"id\": \"TURTLE\",\n \"name\": \"(SG) Turtle\",\n \"host\": {\n \"app\": \"XD\",\n \"minVersion\": \"13.0\"\n },\n"
},
{
"path": "sg-update-weather/main.js",
"chars": 3640,
"preview": "/**\n * Finds all text elements in the selection whose layer name is of the form \"WX: <location>\" and updates\n * their te"
},
{
"path": "sg-update-weather/manifest.json",
"chars": 574,
"preview": "{\n \"id\": \"UPDATE_WEATHER\",\n \"name\": \"(SG) Update the weather\",\n \"host\": {\n \"app\": \"XD\",\n \"minVers"
},
{
"path": "ui-button-padding/README.md",
"chars": 252,
"preview": "# Button padding\n\nThis sample shows how to achieve the following UI\n\n<img src=\"/.meta/readme-assets/ui-padding-ui.png\" w"
},
{
"path": "ui-button-padding/h.js",
"chars": 988,
"preview": "/**\n* Shorthand for creating Elements.\n* @param {*} tagAndClasses The tag name of the element and optional classes such "
},
{
"path": "ui-button-padding/main.js",
"chars": 1614,
"preview": "const h = require(\"./h\")\n\nlet dialog;\nfunction getDialog() {\n if (dialog == null) {\n function onsubmit(e) {\n "
},
{
"path": "ui-button-padding/manifest.json",
"chars": 562,
"preview": "{\n \"id\": \"UI_PADDING\",\n \"name\": \"(UI) Button Padding\",\n \"version\": \"1.0.0\",\n \"host\": {\n \"app\": \"XD\",\n"
},
{
"path": "ui-button-padding-hyperscript/.gitignore",
"chars": 23,
"preview": "node_modules\n.DS_Store\n"
},
{
"path": "ui-button-padding-hyperscript/main.js",
"chars": 16377,
"preview": "module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installed"
},
{
"path": "ui-button-padding-hyperscript/manifest.json",
"chars": 586,
"preview": "{\n \"id\": \"UI_PADDING_HYPERSCRIPT\",\n \"name\": \"(UI) Button Padding\",\n \"version\": \"1.0.0\",\n \"host\": {\n \""
},
{
"path": "ui-button-padding-hyperscript/package.json",
"chars": 392,
"preview": "{\n \"name\": \"button_padding_hyperscript\",\n \"version\": \"1.0.0\",\n \"main\": \"main.js\",\n \"scripts\": {\n \"watch\": \"nodemo"
},
{
"path": "ui-button-padding-hyperscript/src/main.js",
"chars": 1740,
"preview": "const h = require(\"hyperscript\")\n\nlet dialog;\nfunction getDialog() {\n if (dialog == null) {\n function onsubmit"
},
{
"path": "ui-button-padding-hyperscript/webpack.config.js",
"chars": 217,
"preview": "module.exports = {\n entry: \"./src/main.js\",\n output: {\n path: __dirname,\n filename: 'main.js',\n "
},
{
"path": "ui-buttons-galore/README.md",
"chars": 218,
"preview": "# Buttons Galore\n\nThis demo shows the various button styles you can use in your UI.\n\n## Usage\n\nOpen up the \"Plugins\" men"
},
{
"path": "ui-buttons-galore/main.js",
"chars": 2569,
"preview": "const $ = sel => document.querySelector(sel);\n\nfunction createDialog(id = \"dialog\") {\n const sel = `#${id}`;\n let "
},
{
"path": "ui-buttons-galore/manifest.json",
"chars": 565,
"preview": "{\n \"id\": \"BUTTONS_GALORE\",\n \"name\": \"(UI) Button Plugin\",\n \"version\": \"1.0.0\",\n \"host\": {\n \"app\": \"XD"
},
{
"path": "ui-context-menu/h.js",
"chars": 988,
"preview": "/**\n* Shorthand for creating Elements.\n* @param {*} tagAndClasses The tag name of the element and optional classes such "
},
{
"path": "ui-context-menu/main.js",
"chars": 1923,
"preview": "const h = require(\"./h\")\n\nlet dialog;\nfunction getDialog() {\n if (dialog == null) {\n function onsubmit(e) {\n "
},
{
"path": "ui-context-menu/manifest.json",
"chars": 901,
"preview": "{\n \"id\": \"UI_CONTEXT_MENU\",\n \"name\": \"(UI) Context Menu\",\n \"version\": \"1.0.0\",\n \"host\": {\n \"app\": \"XD"
},
{
"path": "ui-create-chart/README.md",
"chars": 251,
"preview": "# Create Chart\n\nThis sample shows how to achieve the following UI\n\n<img src=\"/.meta/readme-assets/ui-chart-ui.png\" width"
},
{
"path": "ui-create-chart/h.js",
"chars": 933,
"preview": "/**\n* Shorthand for creating Elements.\n* @param {*} tag The tag name of the element.\n* @param {*} [props] Optional props"
},
{
"path": "ui-create-chart/main.js",
"chars": 2628,
"preview": "const h = require(\"./h\");\n\nlet dialog;\nfunction getDialog() {\n if (dialog == null) {\n function onsubmit() {\n "
},
{
"path": "ui-create-chart/manifest.json",
"chars": 560,
"preview": "{\n \"id\": \"CREATE_CHART\",\n \"name\": \"(UI) Create Chart\",\n \"version\": \"1.0.0\",\n \"host\": {\n \"app\": \"XD\",\n"
},
{
"path": "ui-datagrid-react/.gitignore",
"chars": 23,
"preview": "node_modules\n.DS_Store\n"
},
{
"path": "ui-datagrid-react/main.js",
"chars": 732034,
"preview": "module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installed"
},
{
"path": "ui-datagrid-react/manifest.json",
"chars": 567,
"preview": "{\n \"id\": \"DATAGRID_REACT\",\n \"name\": \"(UI) React Data Grid\",\n \"version\": \"1.0.0\",\n \"host\": {\n \"app\": \""
},
{
"path": "ui-datagrid-react/package.json",
"chars": 585,
"preview": "{\n \"name\": \"helllo_react_jsx\",\n \"version\": \"1.0.0\",\n \"main\": \"main.js\",\n \"scripts\": {\n \"watch\": \"nodemon -w src -"
},
{
"path": "ui-datagrid-react/readme.md",
"chars": 161,
"preview": "\nto build\n\ninstall yarn (if needed) with\n npm install -g yarn\n\ninstall dependencies with\n yarn install\n\nwatch and "
},
{
"path": "ui-datagrid-react/src/DataGrid.jsx",
"chars": 2779,
"preview": "let React = require(\"react\");\nlet ReactDOM = require(\"react-dom\");\n\nlet columns = [ {name:\"name\"}, {name:\"version\"}, {na"
},
{
"path": "ui-datagrid-react/src/MainForm.jsx",
"chars": 753,
"preview": "const React = require(\"react\");\nconst ReactDOM = require(\"react-dom\");\nconst DataGrid = require(\"./DataGrid.jsx\");\nconst"
},
{
"path": "ui-datagrid-react/src/main.jsx",
"chars": 464,
"preview": "let React = require(\"react\");\nlet ReactDOM = require(\"react-dom\");\nlet MainForm = require(\"./MainForm.jsx\");\n\nlet dialog"
},
{
"path": "ui-datagrid-react/src/styles.css",
"chars": 762,
"preview": "\n.DataGrid {\n font-size: 16px;\n}\n\n.DataGrid .body {\n overflow: scroll;\n flex: 0 0 200px;\n height: 200px;\n}\n\n"
},
{
"path": "ui-datagrid-react/webpack.config.js",
"chars": 677,
"preview": "module.exports = {\n entry: \"./src/main.jsx\",\n output: {\n path: __dirname,\n filename: 'main.js',\n "
},
{
"path": "ui-dialog-variations/README.md",
"chars": 192,
"preview": "# Dialog Variations\n\nThis plugin demonstrates several different dialog variations. The plugin doesn't actually modify th"
},
{
"path": "ui-dialog-variations/lib/dialogs.js",
"chars": 10975,
"preview": "/*\n * Copyright 2018 Adobe Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "ui-dialog-variations/lib/manifest.js",
"chars": 2361,
"preview": "/*\n * Copyright 2018 Adobe Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use"
},
{
"path": "ui-dialog-variations/main.js",
"chars": 2934,
"preview": "/******************************************************************************\n *\n * Dialog Variations\n * -------------"
},
{
"path": "ui-dialog-variations/manifest.json",
"chars": 1537,
"preview": "{\n \"id\": \"DIALOG_VARIATIONS\",\n \"name\": \"(UI) Dialog Variations\",\n \"icons\": [\n {\n \"width\": 24,"
},
{
"path": "ui-hello/README.md",
"chars": 169,
"preview": "# Hello\n\nThis sample shows how to achieve the following UI\n\n<img src=\"/.meta/readme-assets/ui-hello-ui.png\" width=\"50%\" "
},
{
"path": "ui-hello/main.js",
"chars": 1363,
"preview": "\nlet dialog;\n// lazy load the dialog\nfunction getDialog() {\n if (dialog == null) {\n // create the dialog\n "
},
{
"path": "ui-hello/manifest.json",
"chars": 549,
"preview": "{\n \"id\": \"UI_HELLO\",\n \"name\": \"(UI) Hello Plugin\",\n \"version\": \"1.0.0\",\n \"host\": {\n \"app\": \"XD\",\n "
},
{
"path": "ui-hello-h/README.md",
"chars": 173,
"preview": "# Hello\n\nThis sample shows how to achieve the following UI\n\n<img src=\"/.meta/readme-assets/ui-hello-h-ui.png\" width=\"50%"
},
{
"path": "ui-hello-h/h.js",
"chars": 933,
"preview": "/**\n* Shorthand for creating Elements.\n* @param {*} tag The tag name of the element.\n* @param {*} [props] Optional props"
},
{
"path": "ui-hello-h/main.js",
"chars": 763,
"preview": "\nconst h = require(\"./h\");\n\nlet dialog;\nfunction getDialog() {\n if (dialog == null) {\n dialog =\n h("
},
{
"path": "ui-hello-h/manifest.json",
"chars": 555,
"preview": "{\n \"id\": \"UI_HELLO_H\",\n \"name\": \"(UI) Hello H Plugin\",\n \"version\": \"1.0.0\",\n \"host\": {\n \"app\": \"XD\",\n"
},
{
"path": "ui-hello-react/.gitignore",
"chars": 23,
"preview": "node_modules\n.DS_Store\n"
},
{
"path": "ui-hello-react/main.js",
"chars": 781572,
"preview": "module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installed"
},
{
"path": "ui-hello-react/manifest.json",
"chars": 568,
"preview": "{\n \"id\": \"UI_HELLO_REACT\",\n \"name\": \"(UI) Hello React JSX\",\n \"version\": \"1.0.0\",\n \"host\": {\n \"app\": \""
},
{
"path": "ui-hello-react/package.json",
"chars": 610,
"preview": "{\n \"name\": \"hello_react_jsx\",\n \"version\": \"1.0.0\",\n \"main\": \"main.js\",\n \"scripts\": {\n \"watch\": \"nodemon -w src -e"
},
{
"path": "ui-hello-react/readme.md",
"chars": 161,
"preview": "\nto build\n\ninstall yarn (if needed) with\n npm install -g yarn\n\ninstall dependencies with\n yarn install\n\nwatch and "
},
{
"path": "ui-hello-react/src/main.jsx",
"chars": 1369,
"preview": "const reactShim = require(\"./react-shim\");\nconst style = require(\"./styles.css\");\nconst React = require(\"react\");\nconst "
},
{
"path": "ui-hello-react/src/react-shim.js",
"chars": 101,
"preview": "if (window.HTMLIFrameElement == null) {\n window.HTMLIFrameElement = class HTMLIFrameElement { };\n}"
},
{
"path": "ui-hello-react/src/styles.css",
"chars": 25,
"preview": "\np {\n color: orange;\n}"
},
{
"path": "ui-hello-react/webpack.config.js",
"chars": 677,
"preview": "module.exports = {\n entry: \"./src/main.jsx\",\n output: {\n path: __dirname,\n filename: 'main.js',\n "
},
{
"path": "ui-hello-vue/.gitignore",
"chars": 23,
"preview": "node_modules\n.DS_Store\n"
},
{
"path": "ui-hello-vue/main.js",
"chars": 261221,
"preview": "module.exports =\n/******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installed"
},
{
"path": "ui-hello-vue/manifest.json",
"chars": 554,
"preview": "{\n \"id\": \"UI_HELLO_VUE\",\n \"name\": \"(UI) Hello Vue\",\n \"version\": \"1.0.0\",\n \"host\": {\n \"app\": \"XD\",\n "
},
{
"path": "ui-hello-vue/package.json",
"chars": 514,
"preview": "{\n \"name\": \"helllo_react_jsx\",\n \"version\": \"1.0.0\",\n \"main\": \"main.js\",\n \"scripts\": {\n \"watch\": \"nodemon -w src -"
},
{
"path": "ui-hello-vue/readme.md",
"chars": 161,
"preview": "\nto build\n\ninstall yarn (if needed) with\n npm install -g yarn\n\ninstall dependencies with\n yarn install\n\nwatch and "
},
{
"path": "ui-hello-vue/src/hello.vue",
"chars": 894,
"preview": "<template>\n <form style=\"width: 300px;\">\n <h1>\n {{ message }}\n </h1>\n <p>\n "
},
{
"path": "ui-hello-vue/src/main.js",
"chars": 712,
"preview": "const styles = require(\"./styles.css\");\nconst Vue = require(\"vue\").default;\nconst hello = require(\"./hello.vue\").default"
},
{
"path": "ui-hello-vue/src/styles.css",
"chars": 28,
"preview": "p {\n color: blueviolet;\n}"
},
{
"path": "ui-hello-vue/webpack.config.js",
"chars": 667,
"preview": "const { VueLoaderPlugin } = require('vue-loader')\n\nmodule.exports = {\n entry: \"./src/main.js\",\n output: {\n "
},
{
"path": "ui-html/README.md",
"chars": 1067,
"preview": "# UI HTML\n\nThis sample shows how to achieve the following modal dialog UI using HTML:\n\n<img src=\"../.meta/readme-assets/"
},
{
"path": "ui-html/main.js",
"chars": 2776,
"preview": "async function menuCommand() {\n // Get the dialog element\n const dialog = getDialog();\n // Show the dialog and get a "
},
{
"path": "ui-html/manifest.json",
"chars": 416,
"preview": "{\n \"id\": \"UI_HTML\",\n \"name\": \"(UI) HTML Plugin\",\n \"version\": \"1.0.0\",\n \"host\": {\n \"app\": \"XD\",\n \"minVersion\": "
}
]
// ... and 102 more files (download for full content)
About this extraction
This page contains the full source code of the AdobeXD/plugin-samples GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 302 files (6.5 MB), approximately 1.7M tokens, and a symbol index with 5496 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.
Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.