Full Code of redux-form/redux-form for AI

master 88866f08120c cached
330 files
1.3 MB
355.4k tokens
634 symbols
1 requests
Download .txt
Showing preview only (1,468K chars total). Download the full file or copy to clipboard to get everything.
Repository: redux-form/redux-form
Branch: master
Commit: 88866f08120c
Files: 330
Total size: 1.3 MB

Directory structure:
gitextract_a_krbaur/

├── .babelrc.js
├── .codeclimate.yml
├── .editorconfig
├── .eslintignore
├── .eslintrc
├── .flowconfig
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── 1-bug.md
│   │   ├── 2-feature.md
│   │   └── config.yml
│   ├── funding.yml
│   ├── lock.yml
│   ├── pull-request-template.md
│   ├── security.md
│   ├── stale.yml
│   └── support.md
├── .gitignore
├── .npmignore
├── .nvmrc
├── .prettierignore
├── .prettierrc
├── .size-limit.json
├── .travis.yml
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── docs/
│   ├── DocumentationVersions.md
│   ├── Flow.md
│   ├── GettingStarted.md
│   ├── MigrationGuide.md
│   ├── ValueLifecycle.md
│   ├── api/
│   │   ├── ActionCreators.md
│   │   ├── Field.md
│   │   ├── FieldArray.md
│   │   ├── Fields.md
│   │   ├── Form.md
│   │   ├── FormName.md
│   │   ├── FormSection.md
│   │   ├── FormValueSelector.md
│   │   ├── FormValues.md
│   │   ├── Props.md
│   │   ├── README.md
│   │   ├── Reducer.md
│   │   ├── ReducerPlugin.md
│   │   ├── ReduxForm.md
│   │   ├── ReduxFormContext.md
│   │   ├── Selectors.md
│   │   └── SubmissionError.md
│   ├── faq/
│   │   ├── BundleSize.md
│   │   ├── ButtonType.md
│   │   ├── CustomComponent.md
│   │   ├── EnterToSubmit.md
│   │   ├── HandleVsOn.md
│   │   ├── HowToClear.md
│   │   ├── HowToConnect.md
│   │   ├── ImmutableJs.md
│   │   ├── README.md
│   │   ├── ReactNative.md
│   │   ├── SubmitFunction.md
│   │   └── WebsocketSubmit.md
│   └── sponsor.json
├── flow-typed/
│   └── npm/
│       ├── jest_v25.x.x.js
│       ├── lodash_v4.x.x.js
│       └── redux_v4.x.x.js
├── immutable.js
├── package.json
├── scripts/
│   └── patch-immutable-flow-error.js
├── src/
│   ├── ConnectedField.js
│   ├── ConnectedField.types.js.flow
│   ├── ConnectedFieldArray.js
│   ├── ConnectedFieldArray.types.js.flow
│   ├── ConnectedFields.js
│   ├── ConnectedFields.types.js.flow
│   ├── Field.js
│   ├── FieldArray.js
│   ├── FieldArrayProps.types.js.flow
│   ├── FieldProps.types.js.flow
│   ├── Fields.js
│   ├── FieldsProps.types.js.flow
│   ├── Form.js
│   ├── FormName.js
│   ├── FormNameProps.types.js.flow
│   ├── FormSection.js
│   ├── ReduxFormContext.js
│   ├── SubmissionError.js
│   ├── __tests__/
│   │   ├── Field.spec.js
│   │   ├── FieldArray.spec.js
│   │   ├── Fields.spec.js
│   │   ├── Form.spec.js
│   │   ├── FormName.spec.js
│   │   ├── FormSection.spec.js
│   │   ├── SubmissionError.spec.js
│   │   ├── actions.spec.js
│   │   ├── asyncValidation.spec.js
│   │   ├── createFieldArrayProps.spec.js
│   │   ├── createFieldProps.spec.js
│   │   ├── defaultShouldAsyncValidate.spec.js
│   │   ├── defaultShouldError.spec.js
│   │   ├── defaultShouldValidate.spec.js
│   │   ├── defaultShouldWarn.spec.js
│   │   ├── deleteInWithCleanUp.spec.js
│   │   ├── formValueSelector.spec.js
│   │   ├── formValues.spec.js
│   │   ├── generateValidator.spec.js
│   │   ├── handleSubmit.spec.js
│   │   ├── hasError.spec.js
│   │   ├── helpers/
│   │   │   ├── reducer.arrayInsert.js
│   │   │   ├── reducer.arrayMove.js
│   │   │   ├── reducer.arrayPop.js
│   │   │   ├── reducer.arrayPush.js
│   │   │   ├── reducer.arrayRemove.js
│   │   │   ├── reducer.arrayRemoveAll.js
│   │   │   ├── reducer.arrayShift.js
│   │   │   ├── reducer.arraySplice.js
│   │   │   ├── reducer.arraySwap.js
│   │   │   ├── reducer.arrayUnshift.js
│   │   │   ├── reducer.autofill.js
│   │   │   ├── reducer.blur.js
│   │   │   ├── reducer.change.js
│   │   │   ├── reducer.clearAsyncError.js
│   │   │   ├── reducer.clearFields.js
│   │   │   ├── reducer.clearSubmit.js
│   │   │   ├── reducer.clearSubmitErrors.js
│   │   │   ├── reducer.destroy.js
│   │   │   ├── reducer.focus.js
│   │   │   ├── reducer.initialize.js
│   │   │   ├── reducer.plugin.js
│   │   │   ├── reducer.registerField.js
│   │   │   ├── reducer.reset.js
│   │   │   ├── reducer.resetSection.js
│   │   │   ├── reducer.setSubmitFailed.js
│   │   │   ├── reducer.setSubmitSuceeded.js
│   │   │   ├── reducer.startAsyncValidation.js
│   │   │   ├── reducer.startSubmit.js
│   │   │   ├── reducer.stopAsyncValidation.js
│   │   │   ├── reducer.stopSubmit.js
│   │   │   ├── reducer.submit.js
│   │   │   ├── reducer.touch.js
│   │   │   ├── reducer.unregisterField.js
│   │   │   ├── reducer.untouch.js
│   │   │   ├── reducer.updateSyncErrors.js
│   │   │   └── reducer.updateSyncWarnings.js
│   │   ├── immutable.spec.js
│   │   ├── index.spec.js
│   │   ├── reducer.spec.js
│   │   ├── reduxForm.spec.js
│   │   ├── reduxFormContext.spec.js
│   │   └── values.spec.js
│   ├── actionTypes.js
│   ├── actionTypes.types.js.flow
│   ├── actions.js
│   ├── actions.types.js.flow
│   ├── asyncValidation.js
│   ├── createField.js
│   ├── createFieldArray.js
│   ├── createFieldArrayProps.js
│   ├── createFieldProps.js
│   ├── createFields.js
│   ├── createFormValueSelector.js
│   ├── createFormValues.js
│   ├── createReducer.js
│   ├── createReduxForm.js
│   ├── createValues.js
│   ├── defaultShouldAsyncValidate.js
│   ├── defaultShouldError.js
│   ├── defaultShouldValidate.js
│   ├── defaultShouldWarn.js
│   ├── deleteInWithCleanUp.js
│   ├── events/
│   │   ├── __tests__/
│   │   │   ├── getValue.spec.js
│   │   │   ├── isEvent.spec.js
│   │   │   ├── onChangeValue.spec.js
│   │   │   ├── silenceEvent.spec.js
│   │   │   └── silenceEvents.spec.js
│   │   ├── getValue.js
│   │   ├── isEvent.js
│   │   ├── onChangeValue.js
│   │   ├── silenceEvent.js
│   │   └── silenceEvents.js
│   ├── fieldKeys.js
│   ├── formValueSelector.js
│   ├── formValueSelector.types.js.flow
│   ├── formValues.js
│   ├── formValues.types.js.flow
│   ├── generateFields.js
│   ├── generateValidator.js
│   ├── getFormAsyncErrors.js
│   ├── getFormError.js
│   ├── getFormInitialValues.js
│   ├── getFormMeta.js
│   ├── getFormNames.js
│   ├── getFormSubmitErrors.js
│   ├── getFormSyncErrors.js
│   ├── getFormSyncWarnings.js
│   ├── getFormValues.js
│   ├── handleSubmit.js
│   ├── hasError.js
│   ├── hasSubmitFailed.js
│   ├── hasSubmitSucceeded.js
│   ├── immutable/
│   │   ├── Field.js
│   │   ├── FieldArray.js
│   │   ├── Fields.js
│   │   ├── formValueSelector.js
│   │   ├── formValues.js
│   │   ├── getFormAsyncErrors.js
│   │   ├── getFormError.js
│   │   ├── getFormInitialValues.js
│   │   ├── getFormMeta.js
│   │   ├── getFormNames.js
│   │   ├── getFormSubmitErrors.js
│   │   ├── getFormSyncErrors.js
│   │   ├── getFormSyncWarnings.js
│   │   ├── getFormValues.js
│   │   ├── hasSubmitFailed.js
│   │   ├── hasSubmitSucceeded.js
│   │   ├── isAsyncValidating.js
│   │   ├── isDirty.js
│   │   ├── isInvalid.js
│   │   ├── isPristine.js
│   │   ├── isSubmitting.js
│   │   ├── isValid.js
│   │   ├── reducer.js
│   │   ├── reduxForm.js
│   │   └── values.js
│   ├── immutable.js
│   ├── immutable.js.flow
│   ├── index.js
│   ├── index.js.flow
│   ├── isAsyncValidating.js
│   ├── isDirty.js
│   ├── isInvalid.js
│   ├── isPristine.js
│   ├── isReactNative.js
│   ├── isSubmitting.js
│   ├── isValid.js
│   ├── propTypes.js
│   ├── reducer.js
│   ├── reduxForm.js
│   ├── selectors/
│   │   ├── __tests__/
│   │   │   ├── getFormAsyncErrors.spec.js
│   │   │   ├── getFormError.spec.js
│   │   │   ├── getFormInitialValues.spec.js
│   │   │   ├── getFormMeta.spec.js
│   │   │   ├── getFormNames.spec.js
│   │   │   ├── getFormSubmitErrors.spec.js
│   │   │   ├── getFormSyncErrors.spec.js
│   │   │   ├── getFormSyncWarnings.spec.js
│   │   │   ├── getFormValues.spec.js
│   │   │   ├── hasSubmitFailed.spec.js
│   │   │   ├── hasSubmitSucceeded.spec.js
│   │   │   ├── isAsyncValidating.spec.js
│   │   │   ├── isDirty.spec.js
│   │   │   ├── isInvalid.spec.js
│   │   │   ├── isPristine.spec.js
│   │   │   ├── isSubmitting.spec.js
│   │   │   └── isValid.spec.js
│   │   ├── getFormAsyncErrors.js
│   │   ├── getFormAsyncErrors.types.js.flow
│   │   ├── getFormError.js
│   │   ├── getFormError.types.js.flow
│   │   ├── getFormInitialValues.js
│   │   ├── getFormInitialValues.types.js.flow
│   │   ├── getFormMeta.js
│   │   ├── getFormMeta.types.js.flow
│   │   ├── getFormNames.js
│   │   ├── getFormNames.types.js.flow
│   │   ├── getFormSubmitErrors.js
│   │   ├── getFormSubmitErrors.types.js.flow
│   │   ├── getFormSyncErrors.js
│   │   ├── getFormSyncErrors.types.js.flow
│   │   ├── getFormSyncWarnings.js
│   │   ├── getFormSyncWarnings.types.js.flow
│   │   ├── getFormValues.js
│   │   ├── getFormValues.types.js.flow
│   │   ├── hasSubmitFailed.js
│   │   ├── hasSubmitFailed.types.js.flow
│   │   ├── hasSubmitSucceeded.js
│   │   ├── hasSubmitSucceeded.types.js.flow
│   │   ├── isAsyncValidating.js
│   │   ├── isAsyncValidating.types.js.flow
│   │   ├── isDirty.js
│   │   ├── isDirty.types.js.flow
│   │   ├── isInvalid.js
│   │   ├── isInvalid.types.js.flow
│   │   ├── isPristine.js
│   │   ├── isPristine.types.js.flow
│   │   ├── isSubmitting.js
│   │   ├── isSubmitting.types.js.flow
│   │   ├── isValid.js
│   │   └── isValid.types.js.flow
│   ├── structure/
│   │   ├── immutable/
│   │   │   ├── __tests__/
│   │   │   │   ├── deepEqual.spec.js
│   │   │   │   ├── expectations.js
│   │   │   │   ├── keys.spec.js
│   │   │   │   ├── setIn.spec.js
│   │   │   │   └── splice.spec.js
│   │   │   ├── deepEqual.js
│   │   │   ├── index.js
│   │   │   ├── keys.js
│   │   │   ├── setIn.js
│   │   │   └── splice.js
│   │   └── plain/
│   │       ├── __tests__/
│   │       │   ├── deepEqual.spec.js
│   │       │   ├── deleteIn.spec.js
│   │       │   ├── expectations.js
│   │       │   ├── getIn.spec.js
│   │       │   ├── keys.spec.js
│   │       │   ├── setIn.spec.js
│   │       │   └── splice.spec.js
│   │       ├── deepEqual.js
│   │       ├── deleteIn.js
│   │       ├── getIn.js
│   │       ├── index.js
│   │       ├── keys.js
│   │       ├── setIn.js
│   │       └── splice.js
│   ├── types.js.flow
│   ├── util/
│   │   ├── FormNameProps.types.js.flow.js
│   │   ├── __tests__/
│   │   │   ├── eventMocks.spec.js
│   │   │   ├── getDisplayName.spec.js
│   │   │   ├── prefixName.spec.js
│   │   │   └── shallowCompare.spec.js
│   │   ├── eventConsts.js
│   │   ├── eventMocks.js
│   │   ├── getDisplayName.js
│   │   ├── isHotReloading.js
│   │   ├── prefixName.js
│   │   ├── shallowCompare.js
│   │   └── validateComponentProp.js
│   ├── values.js
│   └── values.types.js.flow
├── tools.md
└── webpack.config.js

================================================
FILE CONTENTS
================================================

================================================
FILE: .babelrc.js
================================================
const isEs = process.env.BABEL_ENV === 'es'

module.exports = {
  presets: [
    [
      '@babel/preset-env',
      {
        modules: isEs ? false : 'commonjs',
        loose: true
      }
    ],
    '@babel/preset-react'
  ],
  plugins: [
    'babel-plugin-lodash',
    '@babel/plugin-transform-runtime',
    '@babel/plugin-transform-flow-strip-types',
    ['@babel/plugin-proposal-class-properties', { loose: true }]
  ]
}


================================================
FILE: .codeclimate.yml
================================================
version: "2"         # required to adjust maintainability checks
plugins:
 eslint:
  enabled: true
  channel: eslint-5
checks:
  argument-count:
    enabled: true
    config:
      threshold: 4
  complex-logic:
    enabled: true
    config:
      threshold: 4
  file-lines:
    enabled: false
  method-complexity:
    enabled: false
  method-lines:
    enabled: true
    config:
      threshold: 100
  identical-code:
    enabled: false
  similar-code:
    config:
      threshold: 100
exclude_patterns:
- "**/*.spec.js"


================================================
FILE: .editorconfig
================================================
root = true

[*]
insert_final_newline = true
charset = utf-8
indent_style = space
indent_size = 2
trim_trailing_whitespace = true

[*.md]
trim_trailing_whitespace = false

[*.js]
trim_trailing_whitespace = false
max_line_length = 100


================================================
FILE: .eslintignore
================================================
flow-typed
webpack.config*.js
node_modules
dist
es
lib


================================================
FILE: .eslintrc
================================================
{
  "extends": ["react-app", "plugin:import/errors", "plugin:import/warnings"],
  "rules": {
    "jsx-a11y/href-no-hash": 0,
    "semi": ["error", "never"],
    "import/no-unresolved": 0,
    "import/no-extraneous-dependencies": [
      "error",
      {
        "devDependencies": ["**/__tests__/**/*.js"],
        "optionalDependencies": ["src/structure/immutable/**/*.js"],
        "peerDependencies": false
      }
    ]
  },
  "settings": {
    "import/resolver": "webpack"
  }
}


================================================
FILE: .flowconfig
================================================
[version]
0.84.0

[ignore]
<PROJECT_ROOT>/dist/.*
<PROJECT_ROOT>/es/.*
<PROJECT_ROOT>/lib/.*

[lints]
all=warn
unclear-type=off
sketchy-null-bool=off
untyped-import=off
sketchy-null-string=off
sketchy-null-number=off
unsafe-getters-setters=off
inexact-spread=off
unnecessary-invariant=off

[options]
include_warnings=true


================================================
FILE: .github/ISSUE_TEMPLATE/1-bug.md
================================================
---
name: 🐛 Bug report
about: Create a report to help us improve
labels: bug
---

<!--
Ouch, sorry you’ve run into a bug.  Thank for taking the time to report it!

Please fill in as much of the template below as you’re able.

P.S. have you seen our support and contributing docs?
https://github.com/redux-form/redux-form/blob/master/CONTRIBUTING.md
-->

### Subject of the issue

<!--
Describe your issue here.

This is _not_ a place to ask questions. Questions asked here will be closed.
For that, you can go to this places:

- [Gitter](https://gitter.im/erikras/redux-form)
- [StackOverflow](https://stackoverflow.com/questions/tagged/redux-form)
-->

### Your environment

| Software              | Version(s) |
| --------------------- | ---------- |
| `redux-form`          | 
| `redux`               | 
| `react-redux`         | 
| `react`               | 
| `react-dom`           | 
| `node`                | 
| `npm` if using        | 
| `yarn` if using       | 
| `flow` if using       | 
| `typescript` if using | 
| Browser               | 
| Operating System      | 

### Steps to reproduce

<!--
!!! IMPORTANT !!!
Tell us how to reproduce this issue. Please provide a working and simplified example.
If you're opening bug reports and not providing a Sandbox link, we may close your issue without notice.
Start from https://codesandbox.io/s/gJjDoKYWl or pick one the linked sandboxes on the README that is most like your app
!!! IMPORTANT !!!

🎉 BONUS POINTS for creating a [minimal reproduction](https://stackoverflow.com/help/mcve) and uploading it to GitHub. This will get you the fastest support. 🎉
-->

### Expected behaviour

<!-- What should happen? -->

### Actual behaviour

<!-- What happens instead? -->

### Other information

<!-- Include here any related information, stacktraces, related issues, links for Stack Overflow, Twitter, etc. -->


================================================
FILE: .github/ISSUE_TEMPLATE/2-feature.md
================================================
---
name: 🚀 Feature request
about: Suggest an idea for this project
labels: feature
---

<!--
Thank you for suggesting an idea to make this project better!

Please fill in as much of the template below as you’re able.

P.S. have you seen our support and contributing docs?
https://github.com/redux-form/redux-form/blob/master/CONTRIBUTING.md
-->

### Subject of the feature

Describe your issue here.

### Problem

If the feature requests relates to a problem, please describe the problem you are trying to solve here.

### Expected behavior

What should happen? Please describe the desired behavior.

### Alternatives

What are the alternative solutions? Please describe what else you have considered?


================================================
FILE: .github/ISSUE_TEMPLATE/config.yml
================================================
blank_issues_enabled: false
contact_links:
  - name: ⛔️ Need help? Gitter Community Forum
    url: https://gitter.im/erikras/redux-form
    about: Please ask and answer questions here.
  - name: ⛔️ Need help? StackOverflow
    url: https://stackoverflow.com/questions/tagged/redux-form
    about: Please ask and answer questions here.


================================================
FILE: .github/funding.yml
================================================
# These are supported funding model platforms

github: erikras
patreon: erikras
open_collective: redux-form
ko_fi: # Replace with a single Ko-fi username
tidelift: # Replace with a single Tidelift platform-name/package-name e.g., npm/babel
community_bridge: # Replace with a single Community Bridge project-name e.g., cloud-foundry
liberapay: # Replace with a single Liberapay username
issuehunt: # Replace with a single IssueHunt username
otechie: # Replace with a single Otechie username
custom: # Replace with a single custom sponsorship URL


================================================
FILE: .github/lock.yml
================================================
# Configuration for lock-threads - https://github.com/dessant/lock-threads

# Number of days of inactivity before a closed issue or pull request is locked
daysUntilLock: 365

# Issues and pull requests with these labels will not be locked. Set to `[]` to disable
exemptLabels: [question, docs, discussion]

# Label to add before locking, such as `outdated`. Set to `false` to disable
lockLabel: false

# Comment to post before locking. Set to `false` to disable
lockComment: >
  This thread has been automatically locked since there has not been
  any recent activity after it was closed. Please open a new issue for
  related bugs.

# Limit to only `issues` or `pulls`
# only: issues

# Optionally, specify configuration settings just for `issues` or `pulls`
# issues:
#   exemptLabels:
#     - help-wanted
#   lockLabel: outdated

pulls:
  daysUntilLock: 30


================================================
FILE: .github/pull-request-template.md
================================================
<!--
Read the [contributing guidelines](https://github.com/redux-form/redux-form/blob/master/CONTRIBUTING.md).

We are excited about pull requests, but please try to limit the scope, provide a general description of the changes, and remember, it's up to you to convince us to land it.

If this fixes an open issue, link to it in the following way: `Closes #GH-123`.

New features and bug fixes should come with tests.

P.S. have you seen our support and contributing docs?
https://github.com/redux-form/redux-form/blob/master/CONTRIBUTING.md
-->


================================================
FILE: .github/security.md
================================================
# Security policy

> **Note**: this policy is new and untested.
> We’ll update and polish it as we’re receiving security issues.

## Brand promise

Keeping users safe and secure is a priority for us.
We welcome the contribution of external security researchers.

## Scope

If you believe you’ve found a security issue in any software, service, or
website governed by redux-form, we encourage you to notify us.

Projects governed by redux-form sometimes do unsafe things by design.
This unsafe behaviour should be explicitly documented and, if it is, is not
considered a security issue.

There are no hard and fast rules to determine if a bug is worth reporting as a
security issue or a “regular” issue.
When in doubt, please do send us a report.

## How to submit a report

Security issues can be reported by sending an email to `rasmussenerik@gmail.com`
The team will acknowledge your email within 48 hours.
You will receive a more detailed response within 96 hours.

We will create a maintainer security advisory on GitHub to discuss internally,
and when needed, invite you to the advisory.

## Safe harbour

**redux-form** supports safe harbour for security researchers who:

- Make a good faith effort to avoid privacy violations, destruction of data,
  and interruption or degradation of our services
- Only interact with accounts you own or with explicit permission of the
  account holder.
  If you do encounter Personally Identifiable Information (PII) contact us
  immediately, do not proceed with access, and immediately purge any local
  information
- Provide us with a reasonable amount of time to resolve vulnerabilities prior
  to any disclosure to the public or a third-party
- We will consider activities conducted consistent with this policy to
  constitute “authorised” conduct and will not pursue civil action or initiate
  a complaint to law enforcement.
  We will help to the extent we can if legal action is initiated by a third
  party against you

Please submit a report to us before engaging in conduct that may be inconsistent
with or unaddressed by this policy.

## Preferences

- Please provide detailed reports with reproducible steps and a clearly
  defined impact
- Submit one vulnerability per report
- Social engineering (such as phishing, vishing, smishing) is prohibited

[redux-form]: https://github.com/redux-form


================================================
FILE: .github/stale.yml
================================================
# Configuration for probot-stale - https://github.com/probot/stale

# Number of days of inactivity before an Issue or Pull Request becomes stale
daysUntilStale: 60

# Number of days of inactivity before an Issue or Pull Request with the stale label is closed.
# Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale.
daysUntilClose: 7

# Only issues or pull requests with all of these labels are check if stale. Defaults to `[]` (disabled)
onlyLabels: [question, discussion]

# Issues or Pull Requests with these labels will never be considered stale. Set to `[]` to disable
exemptLabels: []

# Set to true to ignore issues in a project (defaults to false)
exemptProjects: false

# Set to true to ignore issues in a milestone (defaults to false)
exemptMilestones: false

# Set to true to ignore issues with an assignee (defaults to false)
exemptAssignees: false

# Label to use when marking as stale
staleLabel: stale

# Comment to post when marking as stale. Set to `false` to disable
markComment: >
  This issue has been automatically marked as stale because it has not had
  recent activity. It will be closed if no further activity occurs. Thank you
  for your contributions.

# Comment to post when removing the stale label.
# unmarkComment: >
#   Your comment here.

# Comment to post when closing a stale Issue or Pull Request.
# closeComment: >
#   Your comment here.

# Limit the number of actions per hour, from 1-30. Default is 30
limitPerRun: 30

# Limit to only `issues` or `pulls`
only: issues

# Optionally, specify configuration settings that are specific to just 'issues' or 'pulls':
# pulls:
#   daysUntilStale: 30
#   markComment: >
#     This pull request has been automatically marked as stale because it has not had
#     recent activity. It will be closed if no further activity occurs. Thank you
#     for your contributions.

# issues:
#   exemptLabels:
#     - confirmed


================================================
FILE: .github/support.md
================================================
# Support

Hi! 👋
We’re excited that you’re using **redux-form** and we’d love to help.

Please ask and answer questions on [Gitter][gitter].
Or you can search or ask questions on [StackOverflow][stackoverflow] with redux-form tag

[gitter]: https://gitter.im/erikras/redux-form
[stackoverflow]: https://stackoverflow.com/questions/tagged/redux-form


================================================
FILE: .gitignore
================================================
.idea
.vscode
*.iml
.nyc_output
coverage
flow-coverage
node_modules
dist
lib
es
npm-debug.log
.DS_Store
stats.json


================================================
FILE: .npmignore
================================================
scripts
docs
.babelrc
.eslint*
.idea
.editorconfig
.npmignore
.nyc_output
.travis.yml
webpack.*
coverage
package-lock.json
yarn.lock


================================================
FILE: .nvmrc
================================================
8.10


================================================
FILE: .prettierignore
================================================
flow-typed


================================================
FILE: .prettierrc
================================================
semi: false
singleQuote: true
trailingComma: none
printWidth: 100


================================================
FILE: .size-limit.json
================================================
[
  {
    "path": "lib/index.js",
    "limit": "30 kb"
  },
  {
    "path": "es/index.js",
    "limit": "30 kb"
  },
  {
    "path": "dist/redux-form.js",
    "limit": "35 kb"
  },
  {
    "path": "dist/redux-form.min.js",
    "limit": "26 kb"
  }
]


================================================
FILE: .travis.yml
================================================
language: node_js

node_js:
  - "8"
  - "9"
  - "10"
  - "stable"

script:
  - npm run validate
  - npx codecov


================================================
FILE: CHANGELOG.md
================================================
# Change Log

This project adheres to [Semantic Versioning](http://semver.org/).  
Every release, along with the migration instructions, is documented on the Github [Releases](https://github.com/redux-form/redux-form/releases) page.


================================================
FILE: CODE_OF_CONDUCT.md
================================================
# Contributor Covenant 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, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, 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 rasmussenerik@gmail.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 https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq


================================================
FILE: CONTRIBUTING.md
================================================
# Contributing

We are open to, and grateful for, any contributions made by the community.

## Reporting issues and asking questions

Before opening an issue, please search the [issue tracker](https://github.com/redux-form/redux-form/issues) to make sure your issue hasn’t already been reported.

**We use the issue tracker to keep track of bugs and improvements** to Redux Form itself, its examples, and the documentation. We encourage you to open issues to discuss improvements, architecture, internal implementation, etc. If a topic has been discussed before, we will ask you to join the previous discussion.

For support or usage questions, please search and ask on [StackOverflow with a `redux-form` tag](https://stackoverflow.com/questions/tagged/redux-form) or [Gitter](https://gitter.im/erikras/redux-form). We ask you to do this because StackOverflow has a much better job at keeping popular questions visible. Unfortunately good answers get lost and outdated on GitHub.

**If you already asked at StackOverflow or Gitter and still got no answers, post an issue with the question link, so we can either answer it or evolve into a bug/feature request.**

## Sending a pull request

For non-trivial changes, please open an issue with a proposal for a new feature or refactoring before starting on the work. We don’t want you to waste your efforts on a pull request that we won’t want to accept.

Please try to keep your pull request focused in scope and avoid including unrelated commits.

After you have submitted your pull request, we’ll try to get back to you as soon as possible. We may suggest some changes or improvements.

Please format the code before submitting your pull request by running:

```
npm run format
```

# Instructions for new contributors

- Make a fork of https://github.com/redux-form/redux-form and a branch off that fork
- Install deps: `npm install`
- Change the code to implement your feature/fix
- When you're ready to commit run flow typechecker: `npm run test:flow`
- And the full test suite: `npm run test`
- And/or check the test coverage: `npm run test:cov` (this will check if you've added any new code that is not exercised by the test suite)
- The pre-commit hooks should do a sanity-check build
- Once committed, pull request your branch into https://github.com/redux-form/redux-form


================================================
FILE: LICENSE
================================================
The MIT License (MIT)

Copyright (c) 2015 Erik Rasmussen

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
================================================
[<img src="https://raw.githubusercontent.com/redux-form/redux-form/master/logo.png" align="right" class="logo" height="100" width="165"/>](https://redux-form.com/)

# redux-form

---

[<img src="form-nerd-logo.png" align="left"/>](https://formnerd.co/redux-form-readme) **You build great forms, but do you know HOW users use your forms? [Find out with Form Nerd!](https://formnerd.co/redux-form-readme) Professional analytics from the creator of Redux Form.**

---

[![NPM Version](https://img.shields.io/npm/v/redux-form.svg?style=flat)](https://www.npmjs.com/package/redux-form)
[![NPM Downloads](https://img.shields.io/npm/dm/redux-form.svg?style=flat)](https://npmcharts.com/compare/redux-form?minimal=true)
[![Build Status](https://img.shields.io/travis/redux-form/redux-form/v6.svg?style=flat)](https://travis-ci.com/redux-form/redux-form)
[![codecov.io](https://codecov.io/gh/redux-form/redux-form/branch/master/graph/badge.svg)](https://codecov.io/gh/redux-form/redux-form)
[![Code Climate](https://codeclimate.com/github/redux-form/redux-form/badges/gpa.svg)](https://codeclimate.com/github/redux-form/redux-form)
[![styled with prettier](https://img.shields.io/badge/styled_with-prettier-ff69b4.svg)](https://github.com/prettier/prettier)
[![Twitter URL](https://img.shields.io/twitter/url/https/github.com/redux-form/redux-form.svg?style=social)](https://twitter.com/intent/tweet?text=With%20@ReduxForm,%20I%20can%20keep%20all%20my%20form%20state%20in%20Redux!%20Thanks,%20@erikras!)
[![Patreon](https://img.shields.io/badge/patreon-support%20the%20author-blue.svg)](https://www.patreon.com/erikras)
[![Backers on Open Collective](https://opencollective.com/redux-form/backers/badge.svg)](#backers)
[![Sponsors on Open Collective](https://opencollective.com/redux-form/sponsors/badge.svg)](#sponsors)

`redux-form` works with [React Redux](https://github.com/reactjs/react-redux) to
enable an html form in [React](https://github.com/facebook/react) to use
[Redux](https://github.com/reactjs/redux) to store all of its state.

---

💰**Psst!! Do you know React and Redux? [Sign up with Triplebyte](https://triplebyte.com/a/V6j0KPS/rf) to get offers from top tech companies!** 💰

---

## ⚠️ ATTENTION ⚠️

If you're just getting started with your application and are looking for a form solution, the [general consensus of the community](https://twitter.com/acemarke/status/1124771065115185152) is that you should _not_ put your form state in Redux. The author of Redux Form took all of the lessons he learned about form use cases from maintaining Redux Form and built [🏁 React Final Form](https://github.com/final-form/react-final-form#-react-final-form), which he recommends you use if you are just starting your project. It's also pretty easy to migrate to from Redux Form, because the `<Field>` component APIs are so similar. [Here is a blog post](https://codeburst.io/final-form-the-road-to-the-checkered-flag-cd9b75c25fe) where he explains his reasoning, or [there are two talks](https://github.com/final-form/react-final-form#videos) if you prefer video. [Formik](https://jaredpalmer.com/formik/) is also a nice solution.

The only good reason, [in the author's view](https://twitter.com/erikras/status/1035082880341483520), to use Redux Form in your application is if you need _really_ tight coupling of your form data with Redux, specifically if you need to subscribe to it and modify it from parts of your application far from your form component, e.g. on another route. If you don't have that requirement, use [🏁 React Final Form](https://github.com/final-form/react-final-form#-react-final-form).

## Installation

`npm install --save redux-form`

## Documentation

- [Getting Started](https://redux-form.com/8.2.2/docs/GettingStarted.md/)
- [Examples](https://redux-form.com/8.2.2/examples/)
- [API](https://redux-form.com/8.2.2/docs/api/)
- [FAQ](https://redux-form.com/8.2.2/docs/faq/)
- [Release Notes](https://github.com/redux-form/redux-form/releases)
- [Older Documentation](https://redux-form.com/8.2.2/docs/DocumentationVersions.md/)

## 🏖 Code Sandboxes 🏖

You can play around with `redux-form` in these sandbox versions of the Examples.

- [Simple Form](https://codesandbox.io/s/mZRjw05yp)
- [Synchronous Validation](https://codesandbox.io/s/pQj03w7Y6)
- [Field-Level Validation](https://codesandbox.io/s/PNQYw1kVy)
- [Submit Validation](https://codesandbox.io/s/XoA5vXDgA)
- [Asynchronous Blur Validation](https://codesandbox.io/s/nKlYo387)
- [Initializing From State](https://codesandbox.io/s/MQnD536Km)
- [Field Arrays](https://codesandbox.io/s/Ww4QG1Wx)
- [Remote Submit](https://codesandbox.io/s/ElYvJR21K)
- [Normalizing](https://codesandbox.io/s/L8KWERjDw)
- [Immutable JS](https://codesandbox.io/s/ZVGJQBJMw)
- [Selecting Form Values](https://codesandbox.io/s/gJOBWZMRZ)
- [Wizard Form](https://codesandbox.io/s/0Qzz3843)

## Videos

| [![A Practical Guide to Redux Form – React Alicante 2017](docs/ReactAlicante2017.gif)](https://youtu.be/ey7H8h4ERHg) |
| :------------------------------------------------------------------------------------------------------------------: |
|                              **A Practical Guide to Redux Form – React Alicante 2017**                               |

| [![Abstracting Form State with Redux Form – JS Channel 2016](docs/JSChannel2016.gif)](https://youtu.be/eDTi7lYR1VU) |
| :-----------------------------------------------------------------------------------------------------------------: |
|                            **Abstracting Form State with Redux Form – JS Channel 2016**                             |

## Contributors

This project exists thanks to all the people who contribute.
<a href="https://github.com/redux-form/redux-form/graphs/contributors"><img src="https://opencollective.com/redux-form/contributors.svg?width=890&button=false" /></a>

## Backers

Thank you to all our backers! 🙏 [[Become a backer](https://opencollective.com/redux-form#backer)]

<a href="https://opencollective.com/redux-form#backers" target="_blank"><img src="https://opencollective.com/redux-form/backers.svg?width=890"></a>

## Sponsors

Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [[Become a sponsor](https://opencollective.com/redux-form#sponsor)]

<a href="https://opencollective.com/redux-form/sponsor/0/website" target="_blank"><img src="https://opencollective.com/redux-form/sponsor/0/avatar.svg"></a>
<a href="https://opencollective.com/redux-form/sponsor/1/website" target="_blank"><img src="https://opencollective.com/redux-form/sponsor/1/avatar.svg"></a>
<a href="https://opencollective.com/redux-form/sponsor/2/website" target="_blank"><img src="https://opencollective.com/redux-form/sponsor/2/avatar.svg"></a>
<a href="https://opencollective.com/redux-form/sponsor/3/website" target="_blank"><img src="https://opencollective.com/redux-form/sponsor/3/avatar.svg"></a>
<a href="https://opencollective.com/redux-form/sponsor/4/website" target="_blank"><img src="https://opencollective.com/redux-form/sponsor/4/avatar.svg"></a>
<a href="https://opencollective.com/redux-form/sponsor/5/website" target="_blank"><img src="https://opencollective.com/redux-form/sponsor/5/avatar.svg"></a>
<a href="https://opencollective.com/redux-form/sponsor/6/website" target="_blank"><img src="https://opencollective.com/redux-form/sponsor/6/avatar.svg"></a>
<a href="https://opencollective.com/redux-form/sponsor/7/website" target="_blank"><img src="https://opencollective.com/redux-form/sponsor/7/avatar.svg"></a>
<a href="https://opencollective.com/redux-form/sponsor/8/website" target="_blank"><img src="https://opencollective.com/redux-form/sponsor/8/avatar.svg"></a>
<a href="https://opencollective.com/redux-form/sponsor/9/website" target="_blank"><img src="https://opencollective.com/redux-form/sponsor/9/avatar.svg"></a>

<img src="https://static.scarf.sh/a.png?x-pxid=e5d6d8d5-b770-4097-a65e-8daa6251800f" />


================================================
FILE: docs/DocumentationVersions.md
================================================
# Documentation Versions

- [8.2.1](https://redux-form.com/8.2.1/)
- [8.1.0](https://redux-form.com/8.1.0/)
- [7.4.2](https://redux-form.com/7.4.2/)
- [7.3.0](https://redux-form.com/7.3.0/)
- [7.2.0](https://redux-form.com/7.2.0/)
- [7.1.2](https://redux-form.com/7.1.2/)
- [7.1.1](https://redux-form.com/7.1.1/)
- [7.1.0](https://redux-form.com/7.1.0/)
- [7.0.4](https://redux-form.com/7.0.4/)
- [7.0.3](https://redux-form.com/7.0.3/)
- [7.0.2](https://redux-form.com/7.0.2/)
- [7.0.1](https://redux-form.com/7.0.1/)
- [7.0.0](https://redux-form.com/7.0.0/)
- [6.8.0](https://redux-form.com/6.8.0/)
- [6.7.0](https://redux-form.com/6.7.0/)
- [6.6.3](https://redux-form.com/6.6.3/)
- [6.6.2](https://redux-form.com/6.6.2/)
- [6.6.1](https://redux-form.com/6.6.1/)
- [6.6.0](https://redux-form.com/6.6.0/)
- [6.5.0](https://redux-form.com/6.5.0/)
- [6.4.3](https://redux-form.com/6.4.3/)
- [6.4.2](https://redux-form.com/6.4.2/)
- [6.4.1](https://redux-form.com/6.4.1/)
- [6.4.0](https://redux-form.com/6.4.0/)
- [6.3.1](https://redux-form.com/6.3.1/)
- [6.3.0](https://redux-form.com/6.3.0/)
- [6.2.1](https://redux-form.com/6.2.1/)
- [6.2.0](https://redux-form.com/6.2.0/)
- [6.1.1](https://redux-form.com/6.1.1/)
- [6.1.0](https://redux-form.com/6.1.0/)
- [6.0.5](https://redux-form.com/6.0.5/)
- [6.0.4](https://redux-form.com/6.0.4/)
- [6.0.2](https://redux-form.com/6.0.2/)
- [6.0.1](https://redux-form.com/6.0.1/)
- [6.0.0-rc.5](https://redux-form.com/6.0.0-rc.5/)
- [6.0.0-rc.4](https://redux-form.com/6.0.0-rc.4/)
- [6.0.0-rc.3](https://redux-form.com/6.0.0-rc.3/)
- [6.0.0-rc.2](https://redux-form.com/6.0.0-rc.2/)
- [6.0.0-rc.1](https://redux-form.com/6.0.0-rc.1/)
- [6.0.0-alpha.15](https://redux-form.com/6.0.0-alpha.15/)
- [6.0.0-alpha.14](https://redux-form.com/6.0.0-alpha.14/)
- [6.0.0-alpha.13](https://redux-form.com/6.0.0-alpha.13/)
- [6.0.0-alpha.11](https://redux-form.com/6.0.0-alpha.11/)
- [6.0.0-alpha.10](https://redux-form.com/6.0.0-alpha.10/)
- [6.0.0-alpha.8](https://redux-form.com/6.0.0-alpha.8/)
- [6.0.0-alpha.7](https://redux-form.com/6.0.0-alpha.7/)
- [6.0.0-alpha.6](https://redux-form.com/6.0.0-alpha.6/)
- [6.0.0-alpha.5](https://redux-form.com/6.0.0-alpha.5/)
- [6.0.0-alpha.4](https://redux-form.com/6.0.0-alpha.4/)
- [5.3.6](https://redux-form.com/5.3.6/)
- [5.3.1](https://redux-form.com/5.3.1/)
- [5.3.0](https://redux-form.com/5.3.0/)
- [5.2.5](https://redux-form.com/5.2.5/)
- [5.2.4](https://redux-form.com/5.2.4/)
- [5.2.3](https://redux-form.com/5.2.3/)
- [5.2.1](https://redux-form.com/5.2.1/)
- [5.2.0](https://redux-form.com/5.2.0/)
- [5.1.3](https://redux-form.com/5.1.3/)
- [5.1.1](https://redux-form.com/5.1.1/)
- [5.1.0](https://redux-form.com/5.1.0/)
- [5.0.1](https://redux-form.com/5.0.1/)
- [5.0.0](https://redux-form.com/5.0.0/)
- [4.2.0](https://redux-form.com/4.2.0/)


================================================
FILE: docs/Flow.md
================================================
# Flow Typing

`redux-form` supports static typing with [Flow](https://flow.org). Flow should
automatically import the types when you import the components and functions from
`redux-form`. In addition, you may import types for all the props provided by
`redux-form` to your components.

If you ignore your `node_modules` folder inside your `.flowconfig`, the types will not import and you will receive an error:

```
  3: import { Field, reduxForm } from 'redux-form'
                                      ^^^^^^^^^^^^ redux-form. Required module not found
```

Inside your `.flowconfig`, ensure the entire folder is not ignored:

```
...
[ignore]
  <PROJECT_ROOT>/node_modules/editions  # you can still selectively ignore packages that cause flow errors
[include]
...
```

## Props Types

This will give you the types of the
[`props`](https://redux-form.com/8.2.2/docs/api/Props.md/) that will be injected
into your decorated form component by the `reduxForm()` higher order component.

### `FormProps`

```jsx
import type { FormProps } from 'redux-form'

type Props = {
  someCustomThing: string
} & FormProps
// ^^^^^^^^^^

class MyForm extends React.Component {
  props: Props

  render() {
    const { handleSubmit, someCustomThing } = this.props
    return <form onSubmit={handleSubmit}>// fields here</form>
  }
}
```

### `FieldProps`

This will give you the shape of the props provided from
[`Field`](https://redux-form.com/8.2.2/docs/api/Field.md/) to your field
component.

```jsx
import type { FieldProps } from 'redux-form'

const renderField = ({ input, meta, ...rest } : FieldProps) =>
//                                           ^^^^^^^^^^^^^
  <div>
    <input {...input} {...rest}/>
    {meta.touched && meta.error && <div>{meta.error}</div>}
  </div>

...

<Field name="myField" component={renderField}/>
```

### `FieldsProps`

This will give you the shape of the props provided from
[`Fields`](https://redux-form.com/8.2.2/docs/api/Fields.md/) to your fields
component.

```jsx
import type { FieldsProps } from 'redux-form'

const renderField = (fields : FieldsProps) =>
//                         ^^^^^^^^^^^^^^
  <div>
    {fields.map(({ input, meta, ...rest }) =>
      <div>
        <input {...input} {...rest}/>
        {meta.touched && meta.error && <div>{meta.error}</div>}
      </div>)
    }
  </div>

...

<Fields names={[ 'firstField', 'secondField' ]} component={renderFields}/>
```

### `FieldArrayProps`

This will give you the shape of the props provided from
[`FieldArray`](https://redux-form.com/8.2.2/docs/api/FieldArray.md/) to your
field array component.

```jsx
import type { FieldArrayProps } from 'redux-form'

const renderFieldArray = ({ fields } : FieldArrayProps) =>
//                             ^^^^^^^^^^^^^^^^^^
  <ul>
    {fields.map((name, index, fields) => (
      <li key={index}>
        <Field
          name={`${name}.firstName`}
          type="text"
          component={renderField}
          label="First Name"/>
        <Field
          name={`${name}.lastName`}
          type="text"
          component={renderField}
          label="Last Name"/>
      </li>
    ))}
  </ul>

...

<FieldArray name="contacts" component={renderFieldArray}/>
```


================================================
FILE: docs/GettingStarted.md
================================================
# Getting Started With `redux-form`

The basic implementation of `redux-form` is simple. However, to make the most of
it, it's recommended to have basic knowledge on:

- [Redux](https://redux.js.org/) state container,
- [React](https://facebook.github.io/react/) and
  [Higher-Order Components (HOCs)](https://facebook.github.io/react/docs/higher-order-components.html).

## Overview

To connect your React form components to your Redux store you'll need the following
pieces from the `redux-form` package:

- Redux Reducer: `formReducer`,
- React HOC `reduxForm()` and `<Field/>` component.

It's important to understand their responsibilities:

|               | type        | responsibility                                                                                                                                                   |
| ------------- | ----------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `formReducer` | _reducer_   | function that tells how to update the Redux store based on changes coming from the application; those changes are described by Redux actions                     |
| `reduxForm()` | _HOC_       | function that takes configuration object and returns a new function; use it to wrap your `form` component and bind user interaction to dispatch of Redux actions |
| `<Field/>`    | _component_ | component that lives inside your wrapped `form` component; use it to connect the input components to the `redux-form` logic                                      |

## Data flow

The diagram below represents the simplified data flow. Note that in most cases
you don't need to worry about the
[action creators](https://redux-form.com/8.2.2/docs/api/ActionCreators.md/) for
yourself, as they're already bound to dispatch for certain actions.

<div style="text-align: center;">
  <img src="https://github.com/redux-form/redux-form/raw/master/docs/reduxFormDiagram.png" width="500" style="max-width: 100%;"/>
</div>

Let's go through a simple example. We have a form component wrapped with
`reduxForm()`. There is one text input inside, wrapped with `<Field/>`. The data
flows like this:

1.  User clicks on the input,
2.  "Focus action" is dispatched,
3.  `formReducer` updates the corresponding state slice,
4.  The state is then passed back to the input.

Same goes for any other interaction like filling the input, changing its state
or submitting the form.

With `redux-form` comes a lot more: hooks for validation and formatting
handlers, various properties and action creators. This guide describes the basic
usage – feel free to dig deeper.

## Basic Usage Guide

### Step 1 of 4: Form reducer

The store should know how to handle actions coming from the form components. To
enable this, we need to pass the `formReducer` to your store. It serves for
**all of your form components**, so you only have to pass it once.

```js
import { createStore, combineReducers } from 'redux'
import { reducer as formReducer } from 'redux-form'

const rootReducer = combineReducers({
  // ...your other reducers here
  // you have to pass formReducer under 'form' key,
  // for custom keys look up the docs for 'getFormState'
  form: formReducer
})

const store = createStore(rootReducer)
```

Now your store knows how to handle actions coming from the form components.

**NOTE:** The key used to pass the `redux-form` reducer should be named
**`form`**. If you need a custom key for some reason see
[`getFormState` config](https://redux-form.com/8.2.2/docs/api/ReduxForm.md/#-getformstate-function-optional-)
for more details.

### Step 2 of 4: Form component

To make your form component communicate with the store, we need to wrap it with
`reduxForm()`. It will provide the props about the form state and function to
handle the submit process.

```js
import React from 'react'
import { Field, reduxForm } from 'redux-form'

let ContactForm = props => {
  const { handleSubmit } = props
  return <form onSubmit={handleSubmit}>{/* form body*/}</form>
}

ContactForm = reduxForm({
  // a unique name for the form
  form: 'contact'
})(ContactForm)

export default ContactForm
```

Once we have the form component ready, it's time to add some inputs.

**NOTE**: If the `()()` syntax seems confusing, you can always break it down
into two steps:

```js
// ...

// create new, "configured" function
createReduxForm = reduxForm({ form: 'contact' })

// evaluate it for ContactForm component
ContactForm = createReduxForm(ContactForm)

export default ContactForm
```

### Step 3 of 4: Form `<Field/>` Components

The `<Field/>` component connects each input to the store. The basic usage goes
as follows:

```js
<Field name="inputName" component="input" type="text" />
```

It creates an HTML `<input/>` element of type `text`. It also passes additional
props such as `value`, `onChange`, `onBlur`, etc. Those are used to track and
maintain the input state under the hood.

**NOTE**: `<Field/>` component is much more powerful. Apart from basic input
types, it can take a class or a stateless component. When you're ready, go to
the [docs](https://redux-form.com/8.2.2/docs/api/Field.md/#usage) to find out
more.

Let's finish up our contact form:

```js
import React from 'react'
import { Field, reduxForm } from 'redux-form'

let ContactForm = props => {
  const { handleSubmit } = props
  return (
    <form onSubmit={handleSubmit}>
      <div>
        <label htmlFor="firstName">First Name</label>
        <Field name="firstName" component="input" type="text" />
      </div>
      <div>
        <label htmlFor="lastName">Last Name</label>
        <Field name="lastName" component="input" type="text" />
      </div>
      <div>
        <label htmlFor="email">Email</label>
        <Field name="email" component="input" type="email" />
      </div>
      <button type="submit">Submit</button>
    </form>
  )
}

ContactForm = reduxForm({
  // a unique name for the form
  form: 'contact'
})(ContactForm)

export default ContactForm
```

From now on, the store should be populated based on actions coming from your
form component. We can now handle the submission.

### Step 4 of 4: Reacting to submit

The submitted data is passed as JSON object to your `onSubmit` function. Let's
`console.log` it out:

```js
import React from 'react'
import ContactForm from './ContactForm'

class ContactPage extends React.Component {
  submit = values => {
    // print the form values to the console
    console.log(values)
  }
  render() {
    return <ContactForm onSubmit={this.submit} />
  }
}
```

You can now take it from here. We recommend to check out the
[examples](https://redux-form.com/8.2.2/examples/). The common next steps could
also be:

- setting the
  [initial form values](https://redux-form.com/8.2.2/examples/initializeFromState/),
- implementing the
  [validation](https://redux-form.com/8.2.2/examples/syncValidation/),
- creating dynamic forms with
  [arrays of fields](https://redux-form.com/8.2.2/examples/fieldArrays/).


================================================
FILE: docs/MigrationGuide.md
================================================
# `v5` → `v6` Migration Guide

`redux-form` has been _completely_ rewritten for `v6`, because of a fundamental
design change.

## Inversion of Control

In `v5`, only the outer form component was connected to the Redux state, and the
props for each field were passed in via the form component. The problem with
this is that the _entire_ form component had to re-render _on every single
keypress_ that changed a form value. This was fine for small login forms, but
lead to an extremely slow performance on larger forms with dozens or hundreds of
fields.

**In `v6`, every single field is connected to the Redux store.** The outer form
component is also connected, but is connected in such a manner that does not
require it to refresh every time a value changes.

Because of this inversion of control, **there is no incremental upgrade path**.
I would love to provide new API and provide deprecation warnings on the old API,
but there is just no path from here to there that allows for such a transition.

The `v6` `Field` API was designed, however, in such a way as to minimize the
migration pains. This document will outline the minimum migration distance from
`v5` to `v6`.

## Goodbye `fields`... Hello `Field`!

In `v5`, you were required to provide an array of `fields` names, and then a
`fields` object prop was provided to your decorated component. The mechanism
that generates the props (`value`, `onChange`, `onBlur`, etc.) for your input
from the string name of your field is the new `Field` component.

#### `v5`

```js
import React, { Component } from 'react'
import { reduxForm } from 'redux-form'

class MyForm extends React.Component {
  render() {
    const {
      fields: { username, password },
      handleSubmit
    } = this.props

    return (
      <form onSubmit={handleSubmit}>
        <div>
          <label htmlFor="username">Username</label>
          <div>
            <input type="text" {...username} />
            {username.touched && username.error && (
              <span className="error">{username.error}</span>
            )}
          </div>
        </div>

        <div>
          <label htmlFor="password">Password</label>
          <div>
            <input type="password" {...password} /> // Duplicating same code as
            above
            {password.touched && // except for "type" prop
              password.error && <span className="error">{password.error}</span>}
          </div>
        </div>

        <button type="submit">Submit</button>
      </form>
    )
  }
}

export default reduxForm({
  form: 'myForm',
  fields: ['username', 'password']
})(MyForm)
```

#### `v6`

```js
import React, { Component } from 'react'
import { reduxForm, Field } from 'redux-form' // imported Field

const renderInput = field =>   // Define stateless component to render input and errors
  <div>
    <input {...field.input} type={field.type}/>  // Type specified below in <Field>
    {field.meta.touched &&
     field.meta.error &&
     <span className="error">{field.meta.error}</span>}
  </div>

class MyForm extends React.Component {
  render() {

    const { handleSubmit } = this.props       // No fields prop

    return (
      <form onSubmit={handleSubmit}>

        <div>
          <label htmlFor="username">Username</label>
          <Field
            name="username"                   // Specify field name
            component={renderInput}           // Specify render component above
            type="text"/>                     // "type" prop passed to renderInput
        </div>

        <div>
          <label htmlFor="password">Password</label>
          <Field
            name="password"                   // Specify field name
            component={renderInput}           // Reuse same render component
            type="password"/>                 // "type" prop passed to renderInput
        </div>

        <button type="submit">Submit</button>
      </form>
    )
  }
}

export default reduxForm({
  form: 'myForm'
                                              // no fields array given
})(MyForm)
```

In `v5` the field name strings were all bundled together as input and the field
objects came out bundled together as output (of `redux-form`), and now, in `v6`,
the conversion from field name to field object is done one at a time at the
location of each field.

## `handleSubmit` and `onSubmit`

The only thing that has changed about form submission is that your submit
validation errors must now be wrapped in a `SubmissionError` object. This is to
distinguish between validation errors and AJAX or server errors.
[See discussion on PR #602](https://github.com/redux-form/redux-form/pull/602)

#### `v5`

```js
;<MyForm
  onSubmit={values =>
    ajax
      .send(values) // however you send data to your server...
      .catch(error => {
        // how you pass server-side validation errors back is up to you
        if (error.validationErrors) {
          return Promise.reject(error.validationErrors)
        } else {
          // what you do about other communication errors is up to you
          reportServerError(error)
        }
      })
  }
/>
```

#### `v6`

```js
;<MyForm
  onSubmit={values =>
    ajax.send(values).catch(error => {
      if (error.validationErrors) {
        throw new SubmissionError(error.validationErrors) // <----- only difference
      } else {
        reportServerError(error)
      }
    })
  }
/>
```

## `mapStateToProps` and `mapDispatchToProps`

In `v5`, the `reduxForm()` decorator allowed these parameters to be given and it
passed them along to `react-redux`'s `connect()` API.

`v6` no longer does this. You will need to separately decorate your form
component with `connect()` yourself if you need to access other values in the
Redux store or bind action creators to `dispatch`.

## Sync Validation

Sync validation is exactly the same as in `v5`. The only small difference is
that if you are using ImmutableJS, the `values` given to your sync validation
function will be an an `Immutable.Map`. The errors returned, however, should be
a plain JS object, like always.

## Initialization with `initialValues`

Nothing has changed with this, apart from fixing some pesky bugs like
[#514](https://github.com/redux-form/redux-form/issues/514),
[#621](https://github.com/redux-form/redux-form/issues/621),
[#628](https://github.com/redux-form/redux-form/issues/628), and
[#756](https://github.com/redux-form/redux-form/issues/756). In `v6`, each field
will have its initial value on the very first render.

## Async Validation

No changes. Works exactly like `v5`.

## Deep Fields

There is no mystery to deep fields in `v6`. You simply use dot-syntax on your
field name.

#### `v5`

```js
render() {
  const {
    fields: {
      contact: {
        shipping: { street }
      }
    }
  } = this.props
  return (
    <div>
      <input type="text" {...street}/>
    </div>
  )
}
```

#### `v6`

```js
render() {
  return (
    <div>
      <Field name="contact.shipping.street" component="input" type="text"/>
    </div>
  )
}
```

## Field Arrays

To get the field array object that was passed as a prop to the whole form in
`v5`, you must use the `FieldArray` component, much like the `Field` component
is used.

#### `v5`

```js
render() {
  const { fields: { awards } } = this.props;
  return (
    <div>
      <ul>
        {awards.map((award, index) => <li key={index}>
          <label htmlFor="award">Award #{index + 1}</label>
          <input type="text" {...award.input}/>
        </li>)}
      </ul>
      <button onClick={() => awards.addField()}>Add Award</button>
    </div>
  )
}
```

#### `v6`

```js
const renderAwards = ({ fields }) =>
  <div>
    <ul>
      {fields.map((name, index) => <li key={index}>
        <label htmlFor={name}>Award #{index + 1}</label>
        <Field name={name} type="text" component="input"/>
      </li>)}
    </ul>
    <button onClick={() => fields.push()}>Add Award</button>
  </div>

render() {
  return (
    <div>
      <FieldArray name="awards" component={renderAwards}/>
    </div>
  )
}
```

## Normalization

In `v6`, normalization has moved from the reducer to the field level.

#### `v5`

```js
const upper = value => value && value.toUpperCase()

const reducer = combineReducers({
  // other reducers
  form: form.normalize({
    myForm: {
      myUppercaseField: upper
    }
  })
})
```

#### `v6`

```js
const upper = value => value && value.toUpperCase()

...

<Field name="myUppercaseField" component="input" normalize={upper}/>
```

See the
[Normalizing Example](https://redux-form.com/8.2.2/examples/normalizing/) and
[Value Lifecycle](https://redux-form.com/8.2.2/docs/ValueLifecycle.md/) for more
details.

## Listening to other actions

The `plugin()` API is identical to that of `v5`. However, the internal structure
of the form state _has_ changed, so your plugin reducer that was modifying it
will need to be updated. It more or less changed as follows:

#### `v5`

```js
{
  myField: {
    value: 'myValue',
    initial: 'myInitialValue',
    asyncError: 'myAsyncError',
    submitError: 'mySubmitError',
    touched: true,
    visited: true
  }
}
```

#### `v6`

```js
{
  values: {
    myField: 'myValue'
  },
  initial: {
    myField: 'myInitialValue'
  },
  asyncErrors: {
    myField: 'myAsyncError'
  },
  submitErrors: {
    myField: 'mySubmitError'
  },
  fields: {
    myField: {
      touched: true,
      visited: true
    }
  }
}
```

## Known Issues

### react-hot-loader

If you are using react-hot-loader 1.X and see the error `Uncaught TypeError: Cannot read property 'wrapped' of undefined` then you will need to upgrade
react-hot-loader to 3.X.

While react-hot-loader v3 is still in beta, the best documentation is available
[in this annotated commit](https://github.com/gaearon/redux-devtools/commit/64f58b7010a1b2a71ad16716eb37ac1031f93915)
and in the
[this example](https://github.com/gaearon/redux-devtools/tree/master/examples/todomvc)
and
[this example](https://github.com/gaearon/redux-devtools/tree/master/examples/counter).


================================================
FILE: docs/ValueLifecycle.md
================================================
# Understanding Field Value Lifecycle

It's important to understand how your field value is flowing through `redux-form`.

## Value Lifecycle Hooks

`redux-form` provides three value lifecycle hooks, provided as props to the `Field` component.
**They are all optional.**

### `format(value:Any) => Any`

> Formats the value from the Redux store to be used for your input component. Common use cases are
> for maintaining data as `Number`s or `Date`s in the store, but formatting them a specific way in
> your input.

### `parse(value:Any) => Any`

> Parses the input by the user into the data type that you want to use in the Redux store.
> Common use cases are for maintaining data as `Number`s or `Date`s in the store.

### `normalize(value:Any, previousValue:Any, allValues:Object, previousAllValues:Object) => Any`

> Allows you to add logic based on all your form values to put a constraint on the value of the
> current field. Common use cases include making sure that `minDate` is before `maxDate`. If you
> have provided a parser, the value given to `normalize()` will already be parsed.

## Value Lifecycle

<div style="text-align: center;">
<img align="center" src="https://github.com/redux-form/redux-form/raw/master/docs/valueLifecycle.png"/>
</div>


================================================
FILE: docs/api/ActionCreators.md
================================================
# Action Creators

[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/actions.js)

`redux-form` exports all of its internal action creators, allowing you complete
control to dispatch any action you wish. However, it is recommended that you use
the actions passed as props to your component for most of your needs, as they
are already bound to `dispatch`, your form, and, in the case of field-specific
actions such as `CHANGE` or `BLUR`, the specific field.

### `arrayInsert(form:String, field:String, index:Number, value:any)`

> Inserts an item into a field array at the specified index

### `arrayMove(form:String, field:String, from:Number, to:Number)`

> Moves an item from one index in the array to another. In effect, it performs a
> remove and an insert, so the item already at the `to` position will be bumped
> to a higher index, not overwritten.

### `arrayPop(form:String, field:String)`

> Removes an item from the end of a field array

### `arrayPush(form:String, field:String, value:any)`

> Appends an item to the end of a field array

### `arrayRemove(form:String, field:String, index:Number)`

> Removes an item at the specified index from a field array

### `arrayRemoveAll(form:String, field:String)`

> Removes all the items from the specified array.

### `arrayShift(form:String, field:String)`

> Removes an item from the beginning of a field array

### `arraySplice(form:String, field:String, index:Number, removeNum:Number, value:any)`

> **ADVANCED USAGE** - Inserts and/or removes items from a field array. Works
> similarly to
> [`Array.splice`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice).

### `arraySwap(form:String, field:String, indexA:Number, indexB:Number)`

> Swaps two items at the specified indexes in a field array

### `arrayUnshift(form:String, field:String, value:any)`

> Inserts an item at the beginning of a field array

### `autofill(form:String, field:String, value:String)`

> Saves the value to the field and sets its `autofilled` property to `true`.

### `blur(form:String, field:String, value:any)`

> Saves the value to the field.

### `change(form:String, field:String, value:any)`

> Saves the value to the field.

### `clearAsyncError(form:String, field:String)`

> Removes `asyncErrors` for the field.

### `clearSubmitErrors(form:String)`

> Removes `submitErrors` and `error`.

### `clearFields(form:String, keepTouched: boolean, persistentSubmitErrors: boolean, ...fields:String)`

> Cleans fields values for all the fields passed in. Will reset to initialValue for each field if has any.

> If the `keepTouched` parameter is `true`, the values of currently touched
> fields will be retained.

> If the `persistentSubmitErrors` parameter is `true`,
> the values of currently submit errors fields will be retained

### `destroy(...forms:String)`

> Destroys the forms, removing all of their state.

### `focus(form:String, field:String)`

> Marks the given field as `active` and `visited`.

### `initialize(form:String, data:Object, [keepDirty:boolean], [options:{keepDirty:boolean, keepSubmitSucceeded:boolean, updateUnregisteredFields:boolean, keepValues:boolean}])`

> Sets the initial values in the form with which future data values will be
> compared to calculate `dirty` and `pristine`. The `data` parameter may contain
> deep nested array and object values that match the shape of your form fields.

> If the `keepDirty` parameter is `true`, the values of currently dirty fields
> will be retained to avoid overwriting user edits. (`keepDirty` can appear as
> either the third argument, or a property of `options` as the 3rd or 4th
> argument, for the sake of backwards compatibility).

> If the `keepSubmitSucceeded` parameter is `true`, it will not clear the
> `submitSucceeded` flag if it is set.

> If the `updateUnregisteredFields` parameter is `true`, it will update every
> initialValue if still pristine instead of only registered fields. Highly
> recommended, defaults to false because of non-breaking backwards
> compatibility.

> If the `keepValues` parameter is `true`, it will keep the old values and
> initial values.

### `registerField(form:String, name:String, type:String)`

> Registers a field with the form. The `type` parameter can be `Field` or
> `FieldArray`.

### `reset(form:String)`

> Resets the values in the form back to the values passed in with the most recent
> `initialize` action.

### `resetSection(form:String, ...sections:String)`

> Resets the values in the form sections back to the values passed in with the most recent
> `initialize` action.

### `setSubmitFailed(form:String, ...fields:String)`

> Flips `submitFailed` flag `true`, removes `submitSucceeded` and `submitting`,
> marks all the fields passed in as `touched`, and if at least one field was
> passed flips `anyTouched` to `true`.

### `setSubmitSucceeded(form:String)`

> Flips `submitSucceeded` flag `true` and removes `submitFailed`.

### `startAsyncValidation(form:String)`

> Flips the `asyncValidating` flag `true`.

### `startSubmit(form:String)`

> Flips the `submitting` flag `true`.

### `stopSubmit(form:String, errors:Object)`

> Flips the `submitting` flag `false` and populates `submitError` for each
> field.

### `stopAsyncValidation(form:String, errors:Object)`

> Flips the `asyncValidating` flag `false` and populates `asyncError` for each
> field.

### `submit(form:String)`

> Triggers a submission of the specified form.

### `touch(form:String, ...fields:String)`

> Marks all the fields passed in as `touched`.

### `unregisterField(form:String, name:String)`

> Unregisters a field with the form.

### `untouch(form:String, ...fields:String)`

> Resets the `touched` flag for all the fields passed in.


================================================
FILE: docs/api/Field.md
================================================
# `Field`

[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/Field.js)

The `Field` component is how you connect each individual input to the Redux store. There are
three fundamental things that you need to understand in order to use `Field` correctly:

1.  The `name` prop is required. It is a string path, in dot-and-bracket notation, corresponding to
    a value in the form values. It may be as simple as `'firstName'` or as complicated as
    `'contact.billing.address[2].phones[1].areaCode'`.

2.  The `component` prop is required. It may be a `Component`, a stateless
    function, or a string name of one of the default supported DOM inputs (`input`, `textarea` or
    `select`) (see the [Usage](#usage) section below). To learn about the props that will be provided to
    whatever your `component` is, see the [Props](#props) section below.

3.  All other props will be passed along to the element generated by the `component` prop.

## Importing

```javascript
var Field = require('redux-form').Field // ES5
```

```javascript
import { Field } from 'redux-form' // ES6
```

## Props you can pass to `Field`

#### `name : String` [required]

A string path, in dot-and-bracket notation, corresponding to a value in the form values. It may
be as simple as `'firstName'` or as complicated as
`contact.billing.address[2].phones[1].areaCode`. See the [Usage](#usage) section below for details.

Numeric field names, e.g. `name="42"` or `name="foo.5.email"`, are not supported, as they can
be confused for array indexes.

#### `component : Component<FieldProps>|String` [required]

A `Component` (stateful class or stateless function), or string corresponding to a default JSX element.
See the [Usage](#usage) section below for details.

#### `format : (value, name) => formattedValue` [optional]

Formats the value from the Redux store to be displayed in the field input. Common use cases are
to format `Number`s into currencies or `Date`s into a localized date format.

`format` is called with the field `value` and `name` as arguments and should return the
new formatted value to be displayed in the field input.

To respect React 15 input behavior there is `defaultFormat = value => value == null ? '' : value` internally used. To disable that you can pass `null` as `format` prop.

#### `normalize : (value, previousValue, allValues, previousAllValues, name) => nextValue` [optional]

A function to convert whatever value the user has entered into the value that you want stored in
the Redux store for the field. For instance, if you want the value to be in all uppercase, you
would pass `value => value.toUpperCase()`. The parameters to your normalize function are:

> ##### `value : any`

> The value entered by the user.

> ##### `previousValue : any`

> The previous value for the field.

> ##### `allValues : Object`

> All the values in the entire form with the new value. This will be an Immutable `Map` if you are
> using Immutable JS.

> ##### `previousAllValues : Object`

> All the values in the entire form before the current change. This will be an Immutable `Map` if
> you are using Immutable JS.

> ##### `name : String`

> The name of the field being normalized

#### `onBlur : (event, newValue, previousValue, name) => void` [optional]

A callback that will be called whenever an `onBlur` event is fired from the underlying input.
If you call `event.preventDefault()`, the `BLUR` action will _NOT_ be dispatched, and the value
and focus state will not be updated in the Redux store.

#### `onChange : (event, newValue, previousValue, name) => void` [optional]

A callback that will be called whenever an `onChange` event is fired from the underlying input.
If you call `event.preventDefault()`, the `CHANGE` action will _NOT_ be dispatched, and the value
will not be updated in the Redux store.

#### `onDragStart : (event, name) => void` [optional]

A callback that will be called whenever an `onDragStart` event is fired from the underlying input.

#### `onDrop : (event, newValue, previousValue, name) => void` [optional]

A callback that will be called whenever an `onDrop` event is fired from the underlying input.
If you call `event.preventDefault()`, the `CHANGE` action will _NOT_ be dispatched, and the value
will not be updated in the Redux store.

#### `onFocus : (event, name) => void` [optional]

A callback that will be called whenever an `onFocus` event is fired from the underlying input.
If you call `event.preventDefault()`, the `FOCUS` action will _NOT_ be dispatched, and
the focus state will not be updated in the Redux store.

#### `props : object` [optional]

Object with custom props to pass through the `Field` component into a component provided
to `component` prop. This props will be merged to props provided by `Field` itself. This _may_ be
useful if you are using TypeScript. This construct is completely optional; the primary way of
passing props along to your `component` is to give them directly to the `Field` component, but
if, for whatever reason, you prefer to bundle them into a separate object, you may do so by
passing them into `props`.

#### `parse : (value, name) => parsedValue` [optional]

Parses the value given from the field input component to the type that you want stored in the
Redux store. Common use cases are to parse currencies into `Number`s or
localized date formats into `Date`s.

`parse` is called with the field `value` and `name` as arguments and should return the new
parsed value to be stored in the Redux store.

#### `type : string` [optional]

Used to determine the exact shape of the `input` prop passed through to the component provided to
`component` prop, as detailed below:

- if `type === 'checkbox'` or `type === 'radio'`, the boolean `checked` field will be passed through
- if `type === 'select-multiple'`, the value will always be an array (i.e. will default to `[]` instead of an empty string)
- if `type === 'file'`, the value will always be of type `?File` (i.e. will default to `undefined` instead of an empty string)

Use this if either:

1. `component` is a `string` value (i.e. a native HTML element)
2. `component` requires the `input` prop to follow the special semantics described above

`type` is unusual in that it is passed through to `component`, unlike other props consumed by `Field`.

#### `validate : Array<Function> | (value, allValues, props, name) => error` [optional]

Allows you to provide a field-level validation rule. The function is given the fields current value, all other form values, the props passed to the form, and the name of field currently being validated. If the field is valid it should return `undefined`. If the field is invalid it should return an error (usually, but not necessarily, a `String`). Note: if the validate prop changes the field will be re-registered.
Note: If an array of functions is given, the validation chain is stopped whenever a function return an error and the next validation will not be called.

#### `value : string` [optional]

When `type === radio`, this value is compared with the current field value to determine the value of `checked` in the `input` prop passed to `component`.
Otherwise, this prop is ignored.

#### `warn : Array<Function> | (value, allValues, props) => warning` [optional]

Allows you to provide a field-level warning rule. The function is given the fields current value, all other form values, and the props passed to the form. If the field does not need a warning it should return `undefined`. If the field needs a warning it should return the warning (usually, but not necessarily, a `String`). Note: if the warn prop changes the field will be re-registered.
Note: If an array of functions is given, the warn chain is stopped whenever a function return an error and the next warning will not be called.

#### `forwardRef : boolean` [optional]

If `true`, the rendered component will be available with the `getRenderedComponent()` method.
Defaults to `false`. **Cannot be used if your component is a stateless function component.**

#### `immutableProps : Array<String>` [optional]

> Prop names that only require strict-equals, not deep equals, to determine
> `shouldComponentUpdate`. Useful for performance and compatibility with 3rd
> party immutable libraries. Defaults to `[]`.

## Usage

The `component` prop will be passed to
[`React.createElement()`](https://reactjs.org/docs/react-api.html#createelement),
which accepts one of three possible things:

### 1. A normal component

This can be any component class that you have written or have imported from a third party library.

```js
// MyCustomInput.js
import React, { Component } from 'react'

class MyCustomInput extends React.Component {
  render() {
    const {
      input: { value, onChange }
    } = this.props
    return (
      <div>
        <span>The current value is {value}.</span>
        <button type="button" onClick={() => onChange(value + 1)}>
          Inc
        </button>
        <button type="button" onClick={() => onChange(value - 1)}>
          Dec
        </button>
      </div>
    )
  }
}
```

Then, somewhere in your form...

```js
import MyCustomInput from './MyCustomInput'

...

<Field name="myField" component={MyCustomInput}/>
```

To learn what props will be passed to your component, see the [Props](#props) section below.

### 2. A stateless function

This is the most flexible way to use `<Field>`, as it gives you complete control over how the
input is rendered. It is especially useful for displaying validation errors. It will also be the
most familiar to people migrating from previous versions of `redux-form`. **You must define the
stateless function outside of your `render()` method, or else it will be recreated on every
render and will force the `Field` to rerender because its `component` prop will be different.**
If you are defining your stateless function inside of `render()`, it will not only be slower, but
your input will lose focus whenever the entire form component rerenders.

```js
// outside your render() method
const renderField = (field) => (
    <div className="input-row">
      <input {...field.input} type="text"/>
      {field.meta.touched && field.meta.error &&
       <span className="error">{field.meta.error}</span>}
    </div>
  )

// inside your render() method
<Field name="myField" component={renderField}/>
```

To learn what props will be passed to your stateless function, see the [Props](#props) section
below.

### 3. A string: `input`, `select`, or `textarea`

So all you really need to render an `redux-form`-connected text input is:

```js
<Field component="input" type="text" />
```

Remember the third rule above that all other props are passed to the element generated by
`component`? So the `type="text"` prop will be given to the input.

## Instance API

The following properties and methods are available on an instance of a `Field` component.

#### `dirty : boolean`

> `true` if the current value is different from the initialized value, `false` otherwise.

#### `name : String`

> When nested in `FormSection`, returns the `name` prop prefixed with the `FormSection` name.
> Otherwise, returns the `name` prop that you passed in.

#### `pristine : boolean`

> `true` if the current value is the same as the initialized value, `false` otherwise.

#### `value : any`

> The current value of the field.

#### `getRenderedComponent()`

> Returns the instance of the rendered component. For this to work, you must provide a
> `forwardRef` prop, and your component must not be a stateless function component.

## Props

These are props that `Field` will pass to your wrapped component. **The props provided by `redux-form`
are divided into `input` and `meta` objects.**

**Any custom props passed to `Field` will be merged into the props object on the same level as the `input` and `meta` objects.**

### Input Props

The props under the `input` key are what connects your input component to Redux and are meant
to be destructured into your `<input/>` component.

#### `input.checked : boolean` [optional]

> An alias for `value` _only when `value` is a boolean_. Provided for convenience of destructuring
> the whole field
> object into the props of a form element.

#### `input.name : String`

> When nested in `FormSection`, returns the `name` prop prefixed with the `FormSection` name.
> Otherwise, returns the `name` prop that you passed in.

#### `input.onBlur(eventOrValue) : Function`

> A function to call when the form field loses focus. It expects to _either_ receive the
> [React SyntheticEvent](https://reactjs.org/docs/events.html) _or_ the current
> value of the field.

#### `input.onChange(eventOrValue) : Function`

> A function to call when the form field is changed. It expects to _either_ receive the
> [React SyntheticEvent](https://reactjs.org/docs/events.html) _or_ the new value
> of the field.

#### `input.onDragStart(event) : Function`

> A function to call when the form field receives a `dragStart` event. Saves the field value
> in the event for giving the field it is dropped into.

#### `input.onDrop(event) : Function`

> A function to call when the form field receives a `drop` event.

#### `input.onFocus(event) : Function`

> A function to call when the form field receives focus.

#### `input.value: any`

> The value of this form field. It will be a boolean for checkboxes, and a string for all other
> input types. If there is no value in the Redux state for this field, it will default to
> `''`. This is to ensure that the input is
> [controlled](https://facebook.github.io/react/docs/forms.html#controlled-components).
> If you require that the value be of another type (e.g. `Date` or `Number`), you _must_ provide
> `initialValues` to your form with the desired type of this field.

### Meta Props

The props under the `meta` key are metadata about the state of this field that `redux-form` is
tracking for you.

#### `meta.active : boolean`

> `true` if this field currently has focus. It will only work if you are passing `onFocus` to your
> input element.

#### `meta.autofilled : boolean`

> `true` if this field has been set with the `AUTOFILL` action and has not since been changed
> with a `CHANGE` action. This is useful to render the field in a way that the user can tell that
> the value was autofilled for them.

#### `meta.asyncValidating : boolean`

> `true` if the form is currently running asynchronous validation because this field was blurred.

#### `meta.dirty : boolean`

> `true` if the field value has changed from its initialized value. Opposite of `pristine`.

#### `meta.dispatch : Function`

> The Redux `dispatch` function.

#### `meta.error : String` [optional]

> The error for this field if its value is not passing validation. Both synchronous,
> asynchronous, and submit validation errors will be reported here.

#### `meta.form : String`

> The name of the `form`. Could be useful if you want to manually dispatch actions.

#### `meta.initial : any`

> The initial value of the field.

#### `meta.invalid : boolean`

> `true` if the field value fails validation (has a validation error). Opposite of `valid`.

#### `meta.pristine : boolean`

> `true` if the field value is the same as its initialized value. Opposite of `dirty`.

#### `meta.submitting : boolean`

> `true` if the field is currently being submitted

#### `meta.submitFailed : boolean`

> `true` if the form had `onSubmit` called and failed to submit _for any reason_. A subsequent successful submit will set it back to false.

#### `meta.touched : boolean`

> `true` if the field has been touched. By default this will be set when the field is blurred.

#### `meta.valid : boolean`

> `true` if the field value passes validation (has no validation errors). Opposite of `invalid`.

#### `meta.visited: boolean`

> `true` if this field has ever had focus. It will only work if you are passing `onFocus` to
> your input element.

#### `meta.warning : String` [optional]

> The warning for this field if its value is not passing warning validation.


================================================
FILE: docs/api/FieldArray.md
================================================
# `FieldArray`

[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/FieldArray.js)

The `FieldArray` component is how you render an array of fields. It works a lot like `Field`.
With `Field`, you give a `name`, referring to the location of the field in the Redux state, and a
`component` to render the field, which is given the props to connect the field to the Redux state.

With `FieldArray`, you provide a `name` just like with `Field`, but the `component` you give to
`FieldArray` will be given a set of props to query, update, and iterate through the field array.

## Importing

```javascript
var FieldArray = require('redux-form').FieldArray // ES5
```

```javascript
import { FieldArray } from 'redux-form' // ES6
```

## Props you can pass to `FieldArray`

#### `name : String` [required]

A string path, in dot-and-bracket notation, corresponding to a value in the form values. It may
be as simple as `'firstName'` or as complicated as
`contact.billing.address[2].phones[1].areaCode`.

#### `component : Component|Function` [required]

A `Component` or stateless function to render the field array.

#### `validate : (value, allValues, props) => error` [optional]

Allows you to provide a field-level validation rule. The function will be given the current value of the array field, all the other form values, and any props passed to the form. If the array is valid, it should return `undefined`, if the array is invalid, it should return an error (usually, but not necessarily, a `String`).

#### `warn : (value, allValues, props) => warning` [optional]

Allows you to provide a field-level warning rule. The function will be given the current value of the array field, all the other form values, and any props passed to the form. If the array needs a warning, it should return the warning (usually, but not necessarily, a `String`). If the array does not need a warning, it should return `undefined`.

#### `forwardRef : boolean` [optional]

If `true`, the rendered component will be available with the `getRenderedComponent()` method.
Defaults to `false`. **Cannot be used if your component is a stateless function component.**

#### `props : object` [optional]

Object with custom props to pass through the `FieldArray` component into a component provided
to `component` prop. This props will be merged to props provided by `FieldArray` itself.

#### `rerenderOnEveryChange : boolean` [optional]

If `true`, the rendered component will be rerender after every change of `Field` inside `FieldArray`. **This can reduce performance for large lists.**

## Instance API

The following properties and methods are available on an instance of a `FieldArray` component.

#### `name : String`

> When nested in `FormSection`, returns the `name` prop prefixed with the `FormSection` name.
> Otherwise, returns the `name` prop that you passed in.

#### `valid : boolean`

> `true` if this field passes validation, `false` otherwise.

#### `getRenderedComponent()`

> Returns the instance of the rendered component. For this to work, you must provide a
> `forwardRef` prop, and your component must not be a stateless function component.

## Props

These are props that `FieldArray` will pass to your wrapped component. **All the props provided
to your component by `redux-form` are divided into `fields` and `meta` objects.**

Any additional props that you pass to your `FieldArray` will be in the root of the `props`
object, alongside `fields` and `meta`.

### Fields Props

The `fields` object is a "pseudo-array", in that it has many of the same properties and methods
as a javascript `Array`, providing both reading and writing functionality.

#### `fields.name : Function`

> When nested in `FormSection`, returns the `name` prop prefixed with the `FormSection` name.
> Otherwise, returns the `name` prop that you passed in.

#### `fields.forEach(callback) : Function`

> A method to iterate over each value of the array. See the section on [Iteration](#iteration)
> for more details.

#### `fields.get(index) : Function`

> A method to get a single value from the array value.

#### `fields.getAll() : Function`

> A method to get all the values in the array. If you are using ImmutableJS, it will be an
> ImmutableJS `List`.

#### `fields.insert(index:Integer, value:Any) : Function`

> A function to insert a new value into the array at any arbitrary index.

#### `fields.length : Number`

> The current length of the array.

#### `fields.map(callback) : Function`

> A method to iterate over each value of the array. Returns an array of the results of each call
> to the callback. See the section on [Iteration](#iteration) for more details.

#### `fields.move(from:Integer, to:Integer) : Function`

> Moves an element from one index in the array to another.

> This is not a mutator; it dispatches an action which updates the state in Redux, which will
> cause your component to rerender.

#### `fields.pop() : Function`

> Removes an item from the end of the array. Returns the item removed.

> This is not a mutator; it dispatches an action which updates the state in Redux, which will
> cause your component to rerender.

#### `fields.push(value:Any) : Function`

> Adds a value to the end of the array. Returns nothing.

> This is not a mutator; it dispatches an action which updates the state in Redux, which will
> cause your component to rerender.

#### `fields.remove(index:Integer) : Function`

> Removes an item from the array at an arbitrary index. Returns nothing.

> This is not a mutator; it dispatches an action which updates the state in Redux, which will
> cause your component to rerender.

#### `fields.removeAll() : Function`

> Removes all the values from the array.

> This is not a mutator; it dispatches an action which updates the state in Redux, which will
> cause your component to rerender.

#### `fields.shift() : Function`

> Removes an item from beginning of the array. Returns the item removed.

> This is not a mutator; it dispatches an action which updates the state in Redux, which will
> cause your component to rerender.

#### `fields.splice(index:Number, removeNum:Number|null, value:Any) : Function`

> Performs an
> [`Array.splice`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)
> operation on the given array in your form. Returns nothing.

> This is not a mutator; it dispatches an action which updates the state in Redux, which will
> cause your component to rerender.

#### `fields.swap(indexA:Integer, indexB:Integer) : Function`

> Swaps two items in the array at the given indexes. Returns nothing.

> This is not a mutator; it dispatches an action which updates the state in Redux, which will
> cause your component to rerender.

#### `fields.unshift(value:Any) : Function`

> Adds an item to the beginning of the array. Returns nothing.

> This is not a mutator; it dispatches an action which updates the state in Redux, which will
> cause your component to rerender.

### Meta Props

The props under the `meta` key are metadata about the state of this field array that `redux-form`
is tracking for you.

#### `meta.dirty : boolean`

> `true` if the any of the fields in the field array have changed from their initialized value.
> Opposite of `pristine`.

#### `meta.error : String` [optional]

> The error for this field array if its value is not passing validation. Both synchronous,
> asynchronous, and submit validation errors will be reported here. Array-specific errors should be
> returned from the validation function as an `_error` key on the array.

#### `meta.form : String`

> Name of your form provided to `reduxForm()` as the `form` config property.

#### `meta.invalid : boolean`

> `true` if the field array value fails validation (has a validation error). Opposite of `valid`.

#### `meta.pristine : boolean`

> `true` if the all of the fields in the field array are the same as their initialized
> value. Opposite of `dirty`.

#### `meta.submitFailed : boolean`

> `true` if form submission has failed for any reason

#### `meta.submitting : boolean`

> `true` if the field is currently being submitted

#### `meta.valid : boolean`

> `true` if the field value passes validation (has no validation errors). Opposite of `invalid`.

#### `meta.warning : String` [optional]

> The warning for this field array if its value is not passing warning validation. Array-specific
> errors should be returned from the validation function as an `_warning` key on the array.

## Iteration

When you iterate through a field array with either `forEach()` or `map()`, your callback will be
passed following parameters:

#### `name : String`

> The name needed to give to `Field` to render the fields in this array. If the `name` prop you
> give to `FieldArray` is `'foo.bar'`, and there are three items in the array, your callback will
> be called three times, with `'foo.bar[0]'`, `'foo.bar[1]'`, and `'foo.bar[2]'`.

#### `index : Number`

> The index of the item in the array.

#### `fields : Object`

> A reference to the [`fields` prop](#fields-props) to allow for the access to `swap`, `remove`,
> `pop`, etc., without requiring closure scoping.

```javascript
const renderSubFields = (member, index, fields) => (
  <li key={index}>
    <button
      type="button"
      title="Remove Member"
      onClick={() => fields.remove(index)}
    />
    <h4>Member #{index + 1}</h4>
    <Field
      name={`${member}.firstName`}
      type="text"
      component={renderField}
      label="First Name"
    />
    <Field
      name={`${member}.lastName`}
      type="text"
      component={renderField}
      label="Last Name"
    />
  </li>
)
const renderMembers = ({ fields }) => (
  <ul>
    <button type="button" onClick={() => fields.push({})}>
      Add Member
    </button>
    {fields.map(renderSubFields)}
  </ul>
)
```


================================================
FILE: docs/api/Fields.md
================================================
# `Fields`

[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/Fields.js)

The `Fields` component is similar to the
[`Field`](https://redux-form.com/6.2.0/docs/api/Field.md/) component, but
operates on multiple fields with a single connected component. Rather than
passing a single `name` prop, `Fields` takes an array of names in the `names`
prop.

**IMPORTANT: Connecting to multiple fields should be used sparingly, as it will
require the entire `<Fields>` component to re-render every time any of the
fields it is connected to change. This can be a performance bottleneck. Unless
you absolutely need to, you should connect to your fields individually with
`<Field>`.**

## Importing

```javascript
var Fields = require('redux-form').Fields // ES5
```

```javascript
import { Fields } from 'redux-form' // ES6
```

## Props you can pass to `Fields`

#### `names : Array<String>` [required]

An array of strings (or the pseudo-array `fields` provided by
[`FieldArray`](https://redux-form.com/6.2.0/docs/api/FieldArray.md/)), in
dot-and-bracket notation, corresponding to form values. They may be as simple as
`'firstName'` or as complicated as
`contact.billing.address[2].phones[1].areaCode`. See the [Usage](#usage) section
below for details.

#### `component : Component|Function` [required]

A `Component` or stateless function that will be given all the props necessary
to render the field inputs. See the [Usage](#usage) section below for details.

#### `format : (value, name) => formattedValue` [optional]

Formats the value from the Redux store to be displayed in the field input.
Common use cases are to format `Number`s into currencies or `Date`s into a
localized date format.

`format` is called with the field `value` and `name` as arguments and should
return the new formatted value to be displayed in the field input.

To respect React 15 input behavior there is `defaultFormat = value => value == null ? '' : value` internally used. To disable that you can pass `null` as
`format` prop.

#### `props : object` [optional]

Object with custom props to pass through the `Fields` component into a component
provided to `component` prop. This props will be merged to props provided by
`Fields` itself. This _may_ be useful if you are using TypeScript. This
construct is completely optional; the primary way of passing props along to your
`component` is to give them directly to the `Fields` component, but if, for
whatever reason, you prefer to bundle them into a separate object, you may do so
by passing them into `props`.

#### `parse : (value, name) => parsedValue` [optional]

Parses the value given from the field input component to the type that you want
to be stored in the Redux store. Common use cases are to parse currencies into
`Number`s into currencies or localized date formats into `Date`s.

`parse` is called with the field `value` and `name` as arguments and should
return the new parsed value to be stored in the Redux store.

#### `validate : (value, allValues, props, name) => error` [optional]

Allows you to to provide a field-level validation rule. The function is given
the fields current value, all other form values, the props passed to the form,
and the name of field currently being validated. If the field is valid it should
return `undefined`. If the field is invalid it should return an error (usually,
but not necessarily, a `String`). Note: if the validate prop changes the field
will be re-registered.

`validate` can be a function, an array of functions or an object. In the
latest case, a property of the object is an element of `names` array. See the
[Usage](#usage) section below for details.

#### `warn : (value, allValues, props) => warning` [optional]

Allows you to to provide a field-level warning rule. The function is given the
fields current value, all other form values, and the props passed to the form.
If the field does not need a warning it should return `undefined`. If the
field needs a warning it should return the warning (usually, but not
necessarily, a `String`). Note: if the warn prop changes the field will
be re-registered.

`warn` can be a function, an array of functions or an object. In the
latest case, a property of the object is an element of `names` array. See the
[Usage](#usage) section below for details.

#### `forwardRef : boolean` [optional]

If `true`, the rendered component will be available with the
`getRenderedComponent()` method. Defaults to `false`. **Cannot be used if your
component is a stateless function component.**

## Usage

The `component` prop will be passed to
[`React.createElement()`](https://reactjs.org/docs/react-api.html#createelement),
which accepts one of two possible things:

### 1. A component

This can be any component class that you have written or have imported from a
third party library.

To learn what props will be passed to your component, see the [Props](#props)
section below.

### 2. A stateless function

This is the most flexible way to use `<Fields>`, as it gives you complete
control over how the inputs are rendered. It is especially useful for displaying
validation errors. It will also be the most familiar to people migrating from
previous versions of `redux-form`. **You must define the stateless function
outside of your `render()` method, or else it will be recreated on every render
and will force the `Fields` to rerender because its `component` prop will be
different.** If you are defining your stateless function inside of `render()`,
it will not only be slower, but your input will lose focus whenever the entire
form component rerenders.

```jsx
// outside your render() method
const renderFields = (fields) => (
  <div>
    <div className="input-row">
      <input {...fields.firstName.input} type="text"/>
      {fields.firstName.meta.touched && fields.firstName.meta.error &&
       <span className="error">{fields.firstName.meta.error}</span>}
    </div>
    <div className="input-row">
      <input {...fields.lastName.input} type="text"/>
      {fields.lastName.meta.touched && fields.lastName.meta.error &&
       <span className="error">{fields.lastName.meta.error}</span>}
    </div>
  </div>
)

// inside your render() method
<Fields names={[ 'firstName', 'lastName' ]} component={renderFields}/>
```

To learn what props will be passed to your stateless function, see the
[Props](#props) section below.

### Passing an object in `validate` and `warn` props

The `validate` and `warn` props accepts an object: keys of the objects are elements of the `names` prop, entries of the object are validate and warn functions.

```jsx
<Fields
  names={['foo', 'bar']}
  component={input}
  validate={{
    foo: (value, allValues, props, name) => 'error'
  }}
  warn={{
    foo: (value, allValues, props) => 'warning'
  }}
/>
```

## Instance API

The following properties and methods are available on an instance of a `Field`
component.

#### `dirty : boolean`

> `true` if the current value of any of the fields is different from the
> initialized value, `false` otherwise.

#### `names : Array<String>`

> When nested in `FormSection`, returns the `names` prop prefixed with the
> `FormSection` name. Otherwise, returns a copy of the `names` prop that you
> passed in.

#### `pristine : boolean`

> `true` if the all of the current values are the same as the initialized
> values, `false` otherwise.

#### `values : any`

> The current values of the fields. If they are nested, the values will
> duplicate the structure. For example, if your `names` are `[ 'name.first', 'name.last', 'email' ]`, the `values` will be `{ name: { first: 'John', last: 'Smith' }, email: 'john@email.com' }`

#### `getRenderedComponent()`

> Returns the instance of the rendered component. For this to work, you must
> provide a `forwardRef` prop, and your component must not be a stateless function
> component.

## Props

The props that `Fields` will pass to your component are
[the same `input` and `meta` structures that `Field` generates](https://redux-form.com/8.2.2/docs/api/Field.md/#props),
except that they are broken up into the structure of the fields you gave as
`names`.

Any additional props that you pass to `Field` will be included at the root of
the props structure given to your component

For example, if the fields you gave are...

```jsx
<Fields
  names={[
    'name',
    'email',
    'address.street',
    'address.city',
    'address.postalCode'
  ]}
  component={MyMultiFieldComponent}
  anotherCustomProp="Some other information"
/>
```

...the props given to your component would be of the structure:

```jsx
{
  name: { input: { ... }, meta: { ... } },
  email: { input: { ... }, meta: { ... } },
  address: {
    street: { input: { ... }, meta: { ... } },
    city: { input: { ... }, meta: { ... } },
    postalCode: { input: { ... }, meta: { ... } }
  },
  anotherCustomProp: 'Some other information'
}
```


================================================
FILE: docs/api/Form.md
================================================
# `Form`

The `Form` component is a simple wrapper for the React `<form>` component that
allows the surrounding `redux-form`-decorated component to trigger its
`onSubmit` function.

It is only useful if you are:

- performing your submission from inside your form component by passing
  `onSubmit={this.props.handleSubmit(this.mySubmitFunction)}` to your `<form>`
  component
- **AND EITHER:**
  - initiating your submission via the
    [`submit()` Instance API](https://redux-form.com/8.2.2/docs/api/ReduxForm.md/#-submit-promise-)
    (i.e. calling it directly on a reference to your decorated form component)
  - initiating your submission by
    [dispatching the `submit(form)` action](https://redux-form.com/8.2.2/examples/remoteSubmit/)

If you are passing in your `onSubmit` function as a config parameter or prop,
this component will do nothing for you.

## Importing

```javascript
var Form = require('redux-form').Form // ES5
```

```javascript
import { Form } from 'redux-form' // ES6
```

## Props you can pass to `Form`

Any that you can pass to `<form>`, but only one is required.

### `onSubmit : Function` [required]

> The function to call when form submission is triggered.

## Usage

All you do is replace your `<form>` with `<Form>`.


================================================
FILE: docs/api/FormName.md
================================================
# `FormName`

The `FormName` component allows you to get the name of the form in context - the name given to the enclosing `reduxForm` wrapper.
It is a [render props component](https://reactjs.org/docs/render-props.html).
This can be useful for building reusable components that show the status of any form in your app, for example.

## Importing

```javascript
var FormName = require('redux-form').FormName // ES5
```

```javascript
import { FormName } from 'redux-form' // ES6
```

## Props you can pass to `FormName`

### `children : (props: { form: string }) => React.Node` [required]

`FormName` will call this `children` function with the name of the enclosing form, and render whatever this function returns.


================================================
FILE: docs/api/FormSection.md
================================================
# `FormSection`

The `FormSection` component makes it easy to split forms into smaller components that are reusable across multiple forms.
It does this by prefixing the name of `Field`, `Fields` and `FieldArray` children, at any depth, with the value specified in the `name` prop.

## Props you can pass to `FormSection`

### `name : String` [required]

> The name all child fields should be prefixed with.

### `component : String | Component` [optional]

> If you give `FormSection` more than one child element, it will be forced to create a component
> to wrap them with. You can specify what type of component you would like it to be (`div`,
> `section`, `span`). Defaults to `'div'`.

> Note that any additional props (e.g. 'className', 'style') that you pass to `FormSection` will be
> passed along to the wrapper component.

## Example usage

An example use case for `FormSection` is an order form where it's possible to enter the details of a buyer and a separate recipient.
The fields for both buyer and recipient are the same and therefore it makes sense to split this section into a component called `Party`.
Now a `Party` for example consists of fields like `givenName`, `middleName`, `surname` and `address` so again it makes sense to split
the address section into its own reusable component called `Address`.

The above description results in the following code:

```js
//Address.js
class Address extends React.Component {
    render() {
        return <div>
            <Field name="streetName" component="input" type="text"/>
            <Field name="number" component="input" type="text"/>
            <Field name="zipCode" component="input" type="text"/>
        </div>
    }
}

//Party.js
class Party extends React.Component {
    render() {
        return <div>
            <Field name="givenName" component="input" type="text"/>
            <Field name="middleName" component="input" type="text"/>
            <Field name="surname" component="input" type="text"/>
            <FormSection name="address">
                <Address/>
            </FormSection>
        </div>
    }
}

//OrderForm.js
class OrderForm extends React.Component {
    render() {
        return <form onsubmit={...}>
            <FormSection name="buyer">
                <Party/>
            </FormSection>
            <FormSection name="recipient">
                <Party/>
            </FormSection>
        </form>
    }
}
//don't forget to connect OrderForm with reduxForm()
```

The full names of the fields in the above example will end up looking something like `buyer.address.streetName` which in turn results in
the following result structure:

```js
{
    buyer: {
        givenName: "xxx",
        middleName: "yyy",
        surname: "zzz",
        address: {
            streetName: undefined,
            number: "123",
            zipCode: "9090"
        }
    },
    recipient: {
        givenName: "aaa",
        middleName: "bbb",
        surname: "ccc",
        address: {
            streetName: "foo",
            number: "4123",
            zipCode: "78320"
        }
    }
}
```

For component such as `Address` that rarely change form section name it can be benificial to make the component inherit from `FormSection`
instead of `Component` and set a default name prop as seen below:

```js
class Address extends FormSection {
  //ES2015 syntax with babel transform-class-properties
  static defaultProps = {
    name: 'address'
  }
  render() {
    return (
      <div>
        <Field name="streetName" component="input" type="text" />
        <Field name="number" component="input" type="text" />
        <Field name="zipCode" component="input" type="text" />
      </div>
    )
  }
}
//Regular syntax:
/*
Address.defaultProps = {
    name: "address"
}
*/
```


================================================
FILE: docs/api/FormValueSelector.md
================================================
# `formValueSelector(form:String, [getFormState:Function])`

[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/formValueSelector.js)

> `formValueSelector` is a "selector" API to make it easier to `connect()` to
> form values. It _creates_ a selector function that accepts field names and
> returns corresponding values from the named form.

## Importing

```javascript
var formValueSelector = require('redux-form').formValueSelector // ES5
```

```javascript
import { formValueSelector } from 'redux-form' // ES6
```

## Parameters

### `form : String` [required]

> The name of the form you are connecting to. Must be the same as the `form`
> config value you gave to
> [`reduxForm()`](https://redux-form.com/8.2.2/docs/api/ReduxForm.md/).

### `getFormState : Function` [optional]

> If you are using the `getFormState()` config parameter to keep the
> `redux-form` reducer at a place in your Redux store other than `state.form`,
> you must also provide the same function here to get the slice of Redux store
> where the `redux-form` reducer is mounted. Defaults to `state => state.form`.

## Selector

The function returned from `formValueSelector()` has the following structure:

### selector(state:Object, ...field:String)

#### `state : Object` [required]

> The global Redux state given to `mapStateToProps`.

#### `...field : String` [required]

> The field, or fields, you want to select. If you provide only one field name,
> the function will return the value of that field. If you provide more than one
> field name, it will return an object mapping fields to values. If your field
> is "deep" (i.e. has one or more `.` in the name), the structure you get back
> will also be deep. e.g. If your fields are `'a.b'` and `'a.c'`, the resulting
> structure will be `{ a: { b: 'bValue', c: 'cValue' } }`.

## Usage

The first thing you do is create a selector for your form name.

```javascript
const selector = formValueSelector('myFormName')
```

Then, there are several ways to use the selector that was created.

### 1. Select fields individually

```javascript
connect(state => ({
  firstValue: selector(state, 'first'),
  secondValue: selector(state, 'second')
}))(MyFormComponent)
```

### 2. Select multiple fields as a group into a grouped prop

```javascript
connect(state => ({
  myValues: selector(state, 'first', 'second')
}))(MyFormComponent)
```

### 3. Use the selector as `mapStateToProps`

If you don't need any other props from the state, the selector itself works just
fine as `mapStateToProps` if you are selecting multiple fields.

```javascript
connect(state => selector(state, 'first', 'second'))(MyFormComponent)
```

## Example

See the
[Selecting Form Values](https://redux-form.com/8.2.2/examples/selectingFormValues/)
example.


================================================
FILE: docs/api/FormValues.md
================================================
# `formValues(options:Object<String, String> | valuesMapper:Function | name1:String, name2:String, ...)`

[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/formValues.js)

> A decorator to read a selection of the current form values. This is useful for
> subforms that change depending on the current values in the form.

## Importing

```javascript
var formValues = require('redux-form').formValues // ES5
```

```javascript
import { formValues } from 'redux-form' // ES6
```

## Parameters

### name

The path to the field, exactly like the `name` parameter of
[`<Field/>`](https://redux-form.com/8.2.2/docs/api/Field.md/).

### options: {prop: name, ...}

If you use the first form with the options object, the keys of the object will
be the names of the props passed.

### valuesMapper: (props) => name:String | (props) => options:Object<String, String>

A function to map values. Like this you can create the path to the field(s)
dynamically. Return a name or an options object.

## Usage

```javascript
const ItemList = formValues('withVat')(MyItemizedList)
```

```javascript
const ItemList = formValues({ showVat: 'withVat' })(MyItemizedList)
```

```javascript
const ItemList = formValues(props => props.formValueName)(MyItemizedList)
```

```javascript
const ItemList = formValues(props => ({ showVat: props.formValueName }))(
  MyItemizedList
)
```

These decorated components will now get the props `withVat` and `showVat`,
respectively.

## A note on performance

This decorator causes the component to `render()` every time one of the selected
values changes. If you have a large form, this can cause some UI lag. (This is
the reason that `<Field/>` components are attached to single form values)

Therefore, use this sparingly; perhaps you can solve your problem with a more
specialized input component.


================================================
FILE: docs/api/Props.md
================================================
# `props`

[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/reduxForm.js#L347)

> The `props` listed on this page are the `props` that `redux-form` generates to
> give to your decorated form component. The `props` that _you pass into your
> wrapped component_ are listed
> [here](https://redux-form.com/8.2.2/docs/api/ReduxForm.md/).

> If you are a strict `PropTypes` completionist, `redux-form` exports all of
> these
> [`propTypes`](https://github.com/redux-form/redux-form/blob/master/src/propTypes.js),
> so you may import them, like so:

```javascript
import { reduxForm, propTypes } from 'redux-form'

class SimpleForm extends React.Component {
  static propTypes = {
    ...propTypes
    // other props you might be using
  }
  // ...
}
```

### `anyTouched : boolean`

> `true` if any of the fields have been marked as `touched`, `false` otherwise.

### `array : Object`

> A set of pre-bound action creators for you to operate on array fields in your
> form.

> #### `array.insert(field:String, index:Number, value:Any) : Function`

> Inserts a value into the given array field in your form. This is a bound
> action creator, so it returns nothing.

> #### `array.move(field:String, from:Number, to:Number) : Function`

> Moves a value at the given `from` index to the given `to` index in the given
> array field in your form. This is a bound action creator, so it returns
> nothing.

> #### `array.pop(field:String) : Function`

> Pops a value off of the end of a given array field in your form. This is a
> bound action creator, so it returns nothing.

> #### `array.push(field:String, value:Any) : Function`

> Pushes the given value onto the end of the given array field in your form.
> This is a bound action creator, so it returns nothing.

> #### `array.remove(field:String, index:Number) : Function`

> Removes a value at the given index from the given array field in your form.
> This is a bound action creator, so it returns nothing.

> #### `array.removeAll(field:String) : Function`

> Removes all the values from the given array field in your form. This is a
> bound action creator, so it returns nothing.

> #### `array.shift(field:String) : Function`

> Shifts a value out of the beginning of the given array in your form. This is a
> bound action creator, so it returns nothing.

> #### `array.splice(field:String, index:Number, removeNum:Number, value:Any) : Function`

> Performs an
> [`Array.splice`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/splice)
> operation on the given array in your form. This is a bound action creator, so
> it returns nothing.

> #### `array.swap(field:String, indexA:Number, indexB:Number) : Function`

> Swaps two values at the given indexes of the given array field in your form.
> This is a bound action creator, so it returns nothing.

> #### `array.unshift(field:String, value:Any) : Function`

> Unshifts the given value into the beginning of the given array field in your
> form. This is a bound action creator, so it returns nothing.

### `asyncValidate : Function`

> A function that may be called to initiate asynchronous validation if
> asynchronous validation is enabled.

### `asyncValidating : String | boolean`

> This value will be either:
>
> - `false` - No asynchronous validation is currently happening
> - `true` - Asynchronous validation is currently running in preparation to
>   submit a form
> - a `string` - The name of the field that just blurred to trigger asynchronous
>   validation

### `autofill(field:String, value:any) : Function`

> Sets the value and marks the field as `autofilled` in the Redux Store. This is
> useful when a field needs to be set programmatically, but in a way that lets
> the user know (via a styling change using the `autofilled` prop in `Field`)
> that it has been autofilled for them programmatically. This is a bound action
> creator, so it returns nothing.

### `blur(field:String, value:any) : Function`

> Marks a field as blurred in the Redux store. This is a bound action creator,
> so it returns nothing.

### `change(field:String, value:any) : Function`

### `change(formSectionName:String, value:any) : Function`

> Changes the value of a field or a whole FormSection in the Redux store. This is a bound action
> creator, so it returns nothing.
> You could get current field-value & form-values while `value` is a function, For example: `change(field, (fieldValue, allValues) => {})`

### `clearAsyncError(field:String) : Function`

> Clear async error of a field in the Redux store. This is a bound action
> creator, so it returns nothing.

### `clearFields(keepTouched: boolean, persistentSubmitErrors: boolean, ...fields:String)`

> Cleans fields values for all the fields passed in. Will reset to initialValue for each field if has any.  
> If the keepTouched parameter is true, the values of currently touched fields will be retained.  
> If the persistentSubmitErrors parameter is true, the values of currently submit errors fields will be retained

### `destroy() : Function`

> Destroys the form state in the Redux store. By default, this will be called
> for you in `componentWillUnmount()`. This is a bound action creator, so it
> returns nothing.

### `dirty : boolean`

> `true` if the form data has changed from its initialized values. Opposite of
> `pristine`.

### `error : any`

> A generic error for the entire form given by the `_error` key in the result
> from the synchronous validation function, the asynchronous validation, or the
> rejected promise from `onSubmit`.

### `form : String`

> The form name that you gave to the `reduxForm()` decorator or the prop you
> passed in to your decorated form component.

### `handleSubmit(eventOrSubmit) : Function`

> A function meant to be passed to `<form onSubmit={handleSubmit}>` or to
> `<button onClick={handleSubmit}>`. It will run validation, both sync and
> async, and, if the form is valid, it will call `this.props.onSubmit(data)`
> with the contents of the form data.

> Optionally, you may also pass your `onSubmit` function to `handleSubmit` which
> will take the place of the `onSubmit` prop. For example: `<form onSubmit={handleSubmit(this.save.bind(this))}>`

> If your `onSubmit` function returns a promise, the `submitting` property will
> be set to `true` until the promise has been resolved or rejected. If it is
> rejected with an object like `new SubmissionError({ field1: 'error', field2: 'error' })` then the submission errors will be added to each field (to the
> `error` prop) just like async validation errors are. If there is an error that
> is not specific to any field, but applicable to the entire form, you may pass
> that as if it were the error for a field called `_error`, and it will be given
> as the `error` prop.

> To recap, there are two ways to use `handleSubmit`:

> **1. pass it a function to call**

```javascript
;<button
  onClick={handleSubmit(data => {
    // do something with data. validation will have been called at this point,
    // so you know the data is valid
  })}
>
  Submit
</button>
```

> **2. pass in such a function as the onSubmit prop to your decorated
> component**

```javascript
;<MyDecoratedForm
  onSubmit={data => {
    // do something with data. validation will have been called at this point,
    // so you know the data is valid
  }}
/>
```

### `initialize(data:Object) : Function`

> Initializes the form data to the given values. All `dirty` and `pristine`
> state will be determined by comparing the current data with these initialized
> values. This is a bound action creator, so it returns nothing.

### `initialized : boolean`

> `true` the form has been initialized with initial values, `false` otherwise.

### `initialValues : Object`

> The same initialValues object passed to `reduxForm` to initialize the form
> data.

### `invalid : boolean`

> `true` if the form has validation errors. Opposite of `valid`.

### `pristine: boolean`

> `true` if the form data is the same as its initialized values. Opposite of
> `dirty`.

### `reset() : Function`

> Resets all the values in the form to the initialized state, making it pristine
> again. This is a bound action creator, so it returns nothing.

### `resetSection(...sections:String) : Function`

> Resets all the values in the form sections to the initialized state, making it pristine
> again. This is a bound action creator, so it returns nothing.

### `submitFailed : boolean`

> Starts as `false`. If `onSubmit` is called, and fails to submit _for any
> reason_, `submitFailed` will be set to `true`. A subsequent successful submit
> will set it back to `false`.

### `submitSucceeded : boolean`

> Starts as `false`. If `onSubmit` is called, and succeed to submit ,
> `submitSucceeded` will be set to `true`. A subsequent unsuccessful submit will
> set it back to `false`.

### `submitting : boolean`

> Whether or not your form is currently submitting. This prop will only work if
> you have passed an `onSubmit` function that returns a promise. It will be
> `true` until the promise is resolved or rejected.

### `touch(...field:string) : Function`

> Marks the given fields as "touched" to show errors. This is a bound action
> creator, so it returns nothing.

### `untouch(...field:string) : Function`

> Clears the "touched" flag for the given fields This is a bound action creator,
> so it returns nothing.

### `valid : boolean`

> `true` if the form passes validation (has no validation errors). Opposite of
> `invalid`.

### `warning : any`

> A generic warning for the entire form given by the `_warning` key in the
> result from the synchronous warning function.


================================================
FILE: docs/api/README.md
================================================
# API

## [`reduxForm(config:Object)`](ReduxForm.md)

> The decorator you use to connect your form component to Redux.
> [See details](ReduxForm.md).

> [`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/reduxForm.js)

---

## [`reducer`](Reducer.md)

> The form reducer. Should be given to mounted to your Redux state at `form`.

> [`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/reducer.js)

> ### [`reducer.plugin(Object<String, Function>)`](ReducerPlugin.md)

> Returns a form reducer that will also pass each action through additional reducers specified.

> [`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/reducer.js#L369)

---

## [`props`](Props.md)

> The props passed into your decorated form component.

> [`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/reduxForm.js#L347)

---

## [`Field`](Field.md)

> The component needed to connect any input to `redux-form`.

> [`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/Field.js)

---

## [`Fields`](Fields.md)

> The component that can connect multiple inputs to `redux-form`.

> [`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/Fields.js)

---

## [`FieldArray`](FieldArray.md)

> The component needed to render an array of fields

> [`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/FieldArray.js)

---

## [`FormSection`](FormSection.md)

> The component needed to prefix the names of a group of fields.

> [`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/FormSection.js)

---

## [`Form`](Form.md)

> A simple wrapper for the React `<form>` component that allows
> the surrounding `redux-form`-decorated component to trigger its `onSubmit` function.

> [`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/Form.js)

---

## [`formValueSelector(form:String, [getFormState:Function])`](FormValueSelector.md)

> Creates a selector for use in `connect()`ing to form values in the Redux store.

> [`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/formValueSelector.js)

---

## [`SubmissionError`](SubmissionError.md)

> A special error type for returning submit validation errors

> [`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/SubmissionError.js)

---

## [`ReduxFormContext`](ReduxFormContext.md)

> A react context that allows to manipulate a form in any way, can create form components

> [`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/ReduxFormContext.js)

---

## [Action Creators](ActionCreators.md)

> `redux-form` exports all of its internal action creators.

> [`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/actions.js)

---

## [Selectors](Selectors.md)

> `redux-form` provides Redux state selectors that may be used to query the state of your forms.

> [`View source on GitHub`](https://github.com/redux-form/redux-form/tree/master/src/selectors)

---


================================================
FILE: docs/api/Reducer.md
================================================
# `reducer`

[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/reducer.js)

> The form reducer. Should be mounted to your Redux state at `form`.

> If you absolutely must mount it somewhere other than `form`, you may provide a
> `getFormState(state)` function to the `reduxForm()` decorator, to get the slice of the Redux
> state where you have mounted the `redux-form` reducer.

> If you're using Immutablejs to manage your Redux state, you MUST import the reducer from 'redux-form/immutable'.

### ES5 Example

```javascript
var redux = require('redux')
var formReducer = require('redux-form').reducer
// Or with Immutablejs:
// var formReducer = require('redux-form/immutable').reducer;

var reducers = {
  // ... your other reducers here ...
  form: formReducer
}
var reducer = redux.combineReducers(reducers)
var store = redux.createStore(reducer)
```

### ES6 Example

```javascript
import { createStore, combineReducers } from 'redux'
import { reducer as formReducer } from 'redux-form'
// Or with Immutablejs:
// import { reducer as formReducer } from 'redux-form/immutable';

const reducers = {
  // ... your other reducers here ...
  form: formReducer
}
const reducer = combineReducers(reducers)
const store = createStore(reducer)
```


================================================
FILE: docs/api/ReducerPlugin.md
================================================
# `reducer.plugin(Object<String, Function>)`

[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/reducer.js#L369)

> Returns a form reducer that will also pass each action through additional reducers specified.
> The parameter should be an object mapping from `formName` to a `(state, action) => nextState`
> reducer. **The `state` passed to each reducer will only be the slice that pertains to that form.**

## Explanation

Part of the beauty of the flux architecture is that all the reducers (or "stores", in canonical
Flux terminology) receive all the actions, and they can modify their data based on any of them.
For example, say you have a login form, and when your login submission fails, you want to clear
out the password field. Your login submission is part of another reducer/actions system, but
your form can still respond.

Rather than just using the vanilla reducer from `redux-form`, you can augment it to do other
things by calling the `plugin()` function.

Plugins receive all actions, except those targeting other forms. If you want plugins to receive
actions from other forms, you can add the config { receiveAllFormActions: true } to
reducer.plugin.

---

**Note:** This is an advanced operation that allows you to modify the internal state of the
`redux-form` state slice. You can mess things up if you are not careful.

---

## Example

The example below will clear the `login` form's `password` field when the `AUTH_LOGIN_FAIL`
action is dispatched.

```javascript
import { createStore, combineReducers } from 'redux'
import { reducer as formReducer } from 'redux-form'
import { AUTH_LOGIN_FAIL } from '../actions/actionTypes'

const reducers = {
  // ... your other reducers here ...
  form: formReducer.plugin({
    login: (state, action) => {
      // <----- 'login' is name of form given to reduxForm()
      switch (action.type) {
        case AUTH_LOGIN_FAIL:
          return {
            ...state,
            values: {
              ...state.values,
              password: undefined // <----- clear password value
            },
            registeredFields: {
              ...state.registeredFields,
              password: undefined // <----- clear field state, too (touched, etc.)
            }
          }
        default:
          return state
      }
    }
  })
}
const reducer = combineReducers(reducers)
const store = createStore(reducer)
```


================================================
FILE: docs/api/ReduxForm.md
================================================
# `reduxForm(config:Object)`

[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/reduxForm.js)

Creates a decorator with which you use `redux-form` to connect your form
component to Redux. It takes a `config` parameter which lets you configure your
form.

## Importing

```javascript
var reduxForm = require('redux-form').reduxForm // ES5
```

```javascript
import { reduxForm } from 'redux-form' // ES6
```

## Config Properties

**IMPORTANT: All of these configuration options may be passed into `reduxForm()`
at "design time" or passed in as props to your component at runtime.**

### Required

#### `form : String` [required]

> the name of your form and the key to where your form's state will be mounted
> under the `redux-form` reducer

### Optional

#### `asyncBlurFields : Array<String>` [optional]

> field names for which `onBlur` should trigger a call to the `asyncValidate`
> function. Defaults to triggering the async validation when any field is
> blurred. If you wish to disable the blur validation, but still provide an
> `asyncValidate` function, you may pass `[]` to this property, resulting in the
> async validation only being run before submission.

> See
> [Asynchronous Blur Validation Example](https://redux-form.com/8.2.2/examples/asyncValidation/)
> for more details.

#### `asyncChangeFields : Array<String>` [optional]

> field names for which `onChange` should trigger a call to the `asyncValidate`
> function.

> See
> [Asynchronous Change Validation Example](https://redux-form.com/8.2.2/examples/asyncChangeValidation/)
> for more details.

#### `asyncValidate : (values:Object, dispatch:Function, props:Object, blurredField:String) => Promise<undefined, errors:Object>` [optional]

> a function that takes all the form values, the `dispatch` function, the
> `props` given to your component and the current blurred field, and returns a
> Promise that will resolve if the validation is passed, or will reject with an
> object of validation errors in the form `{ field1: <String>, field2: <String> }`.

> See
> [Asynchronous Blur Validation Example](https://redux-form.com/8.2.2/examples/asyncValidation/)
> for more details.

#### `destroyOnUnmount : boolean` [optional]

> Whether or not to automatically destroy your form's state in the Redux store
> when your component is unmounted. Defaults to `true`.

#### `enableReinitialize : boolean` [optional]

> When set to `true`, the form will reinitialize every time the `initialValues`
> prop changes. Defaults to `false`. If the `keepDirtyOnReinitialize` option is
> also set, the form will retain the value of dirty fields when reinitializing.

#### `forceUnregisterOnUnmount : boolean` [optional]

> Whether or not to force unregistration of fields -- use in conjunction with
> `destroyOnUnmount`. Useful for wizard-type forms where you want to destroy
> fields as they unmount, but not the form's state. Defaults to `false`, as
> forms are normally destroyed on unmount.

#### `getFormState : Function` [optional]

> A function that takes the entire Redux state and returns the state slice which
> corresponds to where the `redux-form` reducer was mounted. This functionality
> is rarely needed, and defaults to assuming that the reducer is mounted under
> the `form` key.

#### `immutableProps : Array<String>` [optional]

> Prop names that only require strict-equals, not deep equals, to determine
> `shouldComponentUpdate`. Useful for performance and compatibility with 3rd
> party immutable libraries. Defaults to `[]`.

#### `initialValues : Object<String, String>` [optional]

> The values with which to initialize your form in `componentWillMount()`. The
> values should be in the form `{ field1: 'value1', field2: 'value2' }`.

#### `keepDirtyOnReinitialize : boolean` [optional]

> When set to `true` and `enableReinitialize` is also set, the form will retain
> the value of dirty fields and update every registered field which is still
> pristine when reinitializing. When this option is not set (the default),
> reinitializing the form replaces all field values. This option is useful in
> situations where the form has live updates or continues to be editable after
> form submission; it prevents reinitialization from overwriting user changes.
> Defaults to `false`.

#### `submitAsSideEffect : boolean` [optional]

> When set to `true`, the return value of `onSubmit` function will be dispatched
> as a Redux action. **IMPORTANT: When set, submission lifecycle is not run automatically**

#### `updateUnregisteredFields : boolean` [optional]

> Used in combination with `keepDirtyOnReinitialize`. Will update every
> initialValue which is still pristine. Normally only registered Fields will be
> updated. In most cases, this option should be set to `true` to work as
> expected and avoid edge cases. It defaults to `false` because of non-breaking
> backwards compatibility.

#### `onChange : Function` [optional]

> A callback function that will be called with all the form values any time any
> of the form values change.

> `onChange` will be called with the following parameters:

> ##### `values : Object`

> The changed field values in the form of `{ field1: 'value1', field2: 'value2' }`.

> ##### `dispatch : Function`

> The Redux `dispatch` function.

> ##### `props : Object`

> The props passed into your decorated component.

> ##### `previousValues : Object`

> The previous field values in the form of `{ field1: 'value1', field2: 'value2' }`.

#### `onSubmit : Function` [optional]

> The function to call with the form data when the `handleSubmit()` is fired
> from within the form component. If you do not specify it as a prop here, you
> must pass it as a parameter to `handleSubmit()` inside your form component.

> If your `onSubmit` function returns a promise, the `submitting` property will
> be set to `true` until the promise has been resolved or rejected. If it is
> rejected with a `redux-form` `SubmissionError` containing errors in the form
> `{ field1: 'error', field2: 'error' }` then the submission errors will be
> added to each field (to the `error` prop) just like async validation errors
> are. If there is an error that is not specific to any field, but applicable to
> the entire form, you may pass that as if it were the error for a field called
> `_error`, and it will be given as the `error` prop.

> `onSubmit` will be called with the following parameters:

> ##### `values : Object`

> The field values in the form of `{ field1: 'value1', field2: 'value2' }`.

> ##### `dispatch : Function`

> The Redux `dispatch` function.

> ##### `props : Object`

> The props passed into your decorated component.

#### `onSubmitFail : Function` [optional]

> A callback function that will be called when a submission fails for whatever
> reason. It will be called with the following parameters:

> ##### `errors : Object`

> The errors that caused the submission to fail.

> ##### `dispatch : Function`

> The Redux `dispatch` function.

##### `submitError : Error`

> The error object that caused the submission to fail. If `errors` is set this
> will be most likely a `SubmissionError`, otherwise it can be any error or
> null.

> ##### `props : Object`

> The props passed into your decorated component.

#### `onSubmitSuccess : Function` [optional]

> A callback function that will be called when a submission succeeds. It will be
> called with the following parameters:

> ##### `result : Object`

> Any result that `onSubmit` has returned

> ##### `dispatch : Function`

> The Redux `dispatch` function.

> ##### `props : Object`

> The props passed into your decorated component.

#### `propNamespace : String` [optional]

> If specified, all the props normally passed into your decorated component
> directly will be passed under the key specified. Useful if using other
> decorator libraries on the same component to avoid prop namespace collisions.

#### `pure : boolean` [optional]

> If true, implements `shouldComponentUpdate` and compares _only the
> Redux-connected props_ that are needed to manage the form state, preventing
> unnecessary updates, assuming that the component is a “pure” component and
> does not rely on any input or state other than its props and the selected
> Redux store’s state. Defaults to `true`.

> Similar to the `pure` parameter in
> [`react-redux`'s `connect()` API](https://github.com/reactjs/react-redux/blob/master/docs/api.md#connectmapstatetoprops-mapdispatchtoprops-mergeprops-options)

#### `shouldAsyncValidate(params) : boolean` [optional]

> An optional function you may provide to have full control over when async
> validation happens. Your `shouldAsyncValidate()` function will be given an
> object with the following values:

> ##### `asyncErrors : Object` [optional]

> Any existing asynchronous validation errors

> ##### `initialized : boolean` [required]

> `true` if the form has ever been initialized with initial values

> ##### `trigger : String` [required]

> The reason to possibly run async validation. It will be one of `'blur'`,
> `'change'` and `'submit'`, depending on whether a field, either blurred or
> changed, had triggered the async validation or if submitting the form has
> triggered it, respectively.

> ##### `blurredField : string` [optional]

> The name of the field that has triggered the async validation. May be
> `undefined`.

> ##### `pristine : boolean` [required]

> `true` if the form is pristine, `false` if it is dirty

> ##### `syncValidationPasses : boolean` [required]

> `true` if synchronous validation is passing, `false` if it is failing.

> The default behavior is:

```js
if (!syncValidationPasses) {
  return false
}
switch (trigger) {
  case 'blur':
  case 'change':
    // blurring or changing
    return true
  case 'submit':
    // submitting, so only async validate if form is dirty or was never initialized
    // conversely, DON'T async validate if the form is pristine just as it was
    // initialized
    return !pristine || !initialized
  default:
    return false
}
```

#### `shouldError(params) : boolean` [optional]

> An optional function you may provide to have full control over when sync
> validation happens. Your `shouldError()` function will be given an object with
> the following values:

> ##### `values : Object`

> The values in the form of `{ field1: 'value1', field2: 'value2' }`.

> ##### `nextProps : Object`

> The next props.

> ##### `props : Object`

> The current props.

> ##### `initialRender : boolean`

> `true` if the form is being initially rendered.

> ##### `structure : Object`

> The structure object being used internally for values. You may wish to use
> `deepEqual` from the structure.

#### ~~`shouldValidate(params) : boolean`~~ [optional] **DEPRECATED**

> ** DEPRECATED: Use `shouldError()` and `shouldWarn()`. Will be removed in
> v8.**

> An optional function you may provide to have full control over when sync
> validation happens. Your `shouldValidate()` function will be given an object
> with the following values:

> ##### `values : Object`

> The values in the form of `{ field1: 'value1', field2: 'value2' }`.

> ##### `nextProps : Object`

> The next props.

> ##### `props : Object`

> The current props.

> ##### `initialRender : boolean`

> `true` if the form is being initially rendered.

> ##### `structure : Object`

> The structure object being used internally for values. You may wish to use
> `deepEqual` from the structure.

#### `shouldWarn(params) : boolean` [optional]

> An optional function you may provide to have full control over when sync
> validation happens. Your `shouldWarn()` function will be given an object with
> the following values:

> ##### `values : Object`

> The values in the form of `{ field1: 'value1', field2: 'value2' }`.

> ##### `nextProps : Object`

> The next props.

> ##### `props : Object`

> The current props.

> ##### `initialRender : boolean`

> `true` if the form is being initially rendered.

> ##### `structure : Object`

> The structure object being used internally for values. You may wish to use
> `deepEqual` from the structure.

#### `touchOnBlur : boolean` [optional]

> marks fields as `touched` when the blur action is fired. Defaults to `true`.

#### `touchOnChange : boolean` [optional]

> marks fields as `touched` when the change action is fired. Defaults to
> `false`.

#### `persistentSubmitErrors : boolean` [optional]

> do not remove submit errors when the change action is fired. Defaults to
> `false`.

#### `validate : (values:Object, props:Object) => errors:Object` [optional]

> a synchronous validation function that takes the form values and props passed
> into your component. If validation passes, it should return `{}`. If
> validation fails, it should return the validation errors in the form `{ field1: <String>, field2: <String> }`. Defaults to `(values, props) => ({})`.

> See
> [Synchronous Validation Example](https://redux-form.com/8.2.2/examples/syncValidation/)
> for more details.

#### `warn : (values:Object, props:Object) => warnings:Object` [optional]

> a synchronous warning function that takes the form values and props passed
> into your component. Warnings work the same as validations, but do not mark a
> form as invalid. If the warning check passes, it should return `{}`. If the
> check fails, it should return the warnings in the form `{ field1: <String>, field2: <String> }`. Defaults to `(values, props) => ({})`.

## Instance API

The following are methods or properties that you can access on an instance of
your decorated form component.

#### `dirty : boolean`

`true` when the current form values are different from the `initialValues`,
`false` otherwise.

#### `fieldList : Array`

An array of strings representing all the fields in the form. Mainly useful for
testing.

#### `invalid : boolean`

`true` when the form is invalid (has validation errors), `false` otherwise.

#### `pristine : boolean`

`true` when the current form values are the same as the `initialValues`, `false`
otherwise.

#### `reset() : void`

Resets the form to the `initialValues`. It will be `pristine` after reset.

#### `resetSection(...sections:String) : void`

Resets the form sections to the `initialValues`. It will be `pristine` after reset.

#### `submit() : Promise`

Submits the form. [You'd never have guessed that, right?] Returns a promise that
will be resolved when the form is submitted successfully, or rejected if the
submission fails.

#### `valid : boolean`

`true` when the form is valid (has no validation errors), `false` otherwise.

#### `values : Object`

The current values of all the fields in the form.

#### `wrappedInstance : ReactElement`

A reference to the instance of the component you decorated with `reduxForm()`.
Mainly useful for testing.


================================================
FILE: docs/api/ReduxFormContext.md
================================================
# `ReduxFormContext`

[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/ReduxFormContext.js)

`ReduxFormContext` is a `React.Context` that allows to hook into parent `redux-form`. All this `redux-form` components use `ReduxFormContext` to hook into parent form.

- `Field`
- `FieldArray`
- `Fields`
- `FormValues`
- `FormName`
- `FormSection`

`ReduxFormContext` has a `ReduxFormContext.Provider` and a `ReduxFormContext.Consumer`

### `ReduxFormContext.Provider`

Can be used to extend a `redux-form`, but this has to be done inside a `redux-form`, otherwise the `value` will be `null`.  
Ex: `FormSection` component is using `Provider` to extend parent `redux-form`

### `ReduxFormContext.Consumer`

Can be used to create implementation of a custom `Field` or other components that depend on a parent `redux-form`.  
`Consumer` should be inside a `redux-form` that provides the `ReduxFormContext.Provider`, otherwise the render prop argument will be `null`

## Importing

```javascript
var ReduxFormContext = require('redux-form').ReduxFormContext // ES5
```

```javascript
import { ReduxFormContext } from 'redux-form' // ES6
```

## Usage

### `ReduxFormContext.Provider`

```tsx
import React from 'react'
import { ReduxFormContext, reduxForm, Context } from 'redux-form'

const withReduxForm = reduxForm({ form: 'form-name' })

const ExtendReduxForm = withReduxForm(props => (
  <ReduxFormContext.Consumer>
    {(reduxForm: Context) => (
      <ReduxFormContext.Provider
        {...props}
        value={{
          ...reduxForm
          // extend
        }}
      />
    )}
  </ReduxFormContext.Consumer>
))

const ExtendReduxFormUsingHooks = withReduxForm(props => {
  const reduxForm: Context = React.useContext(ReduxFormContext)

  return (
    <ReduxFormContext.Provider
      {...props}
      value={{
        ...reduxForm
        // extend
      }}
    />
  )
})

const ExtendWithoutParentReduxForm = props => (
  <ReduxFormContext.Consumer>
    {/* here `reduxForm` will be `null` because no parent `redux-form` */}
    {(reduxForm: Context) => (
      <ReduxFormContext.Provider
        {...props}
        value={{
          ...reduxForm
          // extend
        }}
      />
    )}
  </ReduxFormContext.Consumer>
)
```

### `ReduxFormContext.Consumer`

```tsx
import React from 'react'
import { ReduxFormContext, reduxForm, Context } from 'redux-form'

const CustomField = (props) => (
  <ReduxFormContext.Consumer>
    {(reduxForm: Context) => /* render */}
  </ReduxFormContext.Consumer>
)

const Form = reduxForm({ form: 'form-name' })((props) => (
  <form onSubmit={props.handleSubmit}>
    <CustomField />
  </form>
))
```


================================================
FILE: docs/api/Selectors.md
================================================
# Selectors

[`View source on GitHub`](https://github.com/redux-form/redux-form/tree/master/src/selectors)

`redux-form` provides a set of useful Redux state
[**selectors**](https://redux.js.org/recipes/computing-derived-data/) that may be used in
any part of your application to query the state of any of your forms.

All of the selectors listed below have the same usage pattern: they all (apart from
getFormNames) take the name of the form, and create a selector for whatever form state
the selector is for.

They also all take an undocumented final parameter `getFormState()` that is
used to select the mount point of the `redux-form` reducer from the root Redux reducer (it
defaults to `state => state.form`, assuming that you have mounted the `redux-form` reducer under
`form`.

```js
import {
  getFormValues,
  getFormInitialValues,
  getFormSyncErrors,
  getFormMeta,
  getFormAsyncErrors,
  getFormSyncWarnings,
  getFormSubmitErrors,
  getFormError,
  getFormNames,
  isDirty,
  isPristine,
  isValid,
  isInvalid,
  isSubmitting,
  hasSubmitSucceeded,
  hasSubmitFailed
} from 'redux-form'

MyComponent = connect(state => ({
  formValues: getFormValues('myForm')(state),
  initialValues: getFormInitialValues('myForm')(state),
  formSyncErrors: getFormSyncErrors('myForm')(state),
  fields: getFormMeta('myForm')(state),
  formAsyncErrors: getFormAsyncErrors('myForm')(state),
  syncWarnings: getFormSyncWarnings('myForm')(state),
  submitErrors: getFormSubmitErrors('myForm')(state),
  formError: getFormError('myForm')(state),
  names: getFormNames()(state),
  dirty: isDirty('myForm')(state),
  pristine: isPristine('myForm')(state),
  valid: isValid('myForm')(state),
  invalid: isInvalid('myForm')(state),
  submitting: isSubmitting('myForm')(state),
  submitSucceeded: hasSubmitSucceeded('myForm')(state),
  submitFailed: hasSubmitFailed('myForm')(state)
}))(MyComponent)
```

## List of Selectors

### `getFormValues(formName:String)` returns `(state) => formValues:Object`

> Gets the current form values in real-time.

### `getFormInitialValues(formName:String)` returns `(state) => formInitialValues:Object`

> Gets the form's initial values.

### `getFormError(formName:String)` returns `(state) => formError:any`

> Returns the form-wide error, the one set with the special `_error` property.

### `getFormSyncErrors(formName:String)` returns `(state) => formSyncErrors:Object`

> Returns the form synchronous validation errors.

### `getFormMeta(formName:String)` returns `(state) => formMeta:Object`

> Returns the form's fields meta data, namely `touched` and `visited`.

> NOTE: redux-form creates the `formMeta` object lazily as each individual form field gets visited/touched/etc. Empty/missing properties imply that the corresponding field (or set of fields) has neither been visited nor touched.

### `getFormAsyncErrors(formName:String)` returns `(state) => formAsyncErrors:Object`

> Returns the form asynchronous validation errors.

### `getFormSyncWarnings(formName:String)` returns `(state) => formSyncWarnings:Object`

> Returns the form synchronous warnings.

### `getFormSubmitErrors(formName:String)` returns `(state) => formSubmitErrors:Object`

> Returns the form submit validation errors.

### `getFormNames()` returns `(state) => formNames:Array`

> Gets the names of all the forms currently managed by Redux-Form.

> The reason that this is a function that returns a function is twofold:

> 1.  symmetry with the other selectors
> 2.  to allow for the `getFormState` parameter described at the top of this page.

> If you are using ImmutableJS, it will return a `List`.

### `isDirty(formName:String)` returns `(state, ...fields:String[]) => dirty:boolean`

> Returns `true` if the form is dirty, i.e. the values have been altered from the original
> `initialValues` provided. The opposite of `isPristine`.

### `isPristine(formName:String)` returns `(state, ...fields:String[]) => pristine:boolean`

> Returns `true` if the form is pristine, i.e. the values have NOT been altered from the original
> `initialValues` provided. The opposite of `isDirty`.

### `isValid(formName:String)` returns `(state) => valid:boolean`

> Returns `true` if the form is valid, i.e. has no sync, async, or submission errors. The opposite
> of `isInvalid`.

### `isInvalid(formName:String)` returns `(state) => invalid:boolean`

> Returns `true` if the form is invalid, i.e. has sync, async, or submission errors. The opposite
> of `isValid`.

### `isSubmitting(formName:String)` returns `(state) => submitting:boolean`

> Returns `true` if the form is submitting.

### `hasSubmitSucceeded(formName:String)` returns `(state) => submitSucceeded:boolean`

> Returns `true` if the form has previously been successfully submitted.

### `hasSubmitFailed(formName:String)` returns `(state) => submitFailed:boolean`

> Returns `true` if the form has previously failed to submit.


================================================
FILE: docs/api/SubmissionError.md
================================================
# `SubmissionError`

[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/SubmissionError.js)

A throwable error that is used to return submit validation errors from `onSubmit`. The purpose
being to distinguish promise rejection because of validation errors from promise rejection because
of AJAX I/O problems or other server errors. If it is rejected in the form of
{ field1: 'error', field2: 'error' } then the submission errors will be added
to each field (to the error prop) just like async validation errors are.
If there is an error that is not specific to any field, but applicable to the
entire form, you may pass that as if it were the error for a field called \_error,
and it will be given as the error prop.

## Importing

```javascript
var SubmissionError = require('redux-form').SubmissionError // ES5
```

```javascript
import { SubmissionError } from 'redux-form' // ES6
```

## Usage

```js
<MyForm
  onSubmit={values =>
    ajax
      .send(values) // however you send data to your server...
      .catch(error => {
        // how you pass server-side validation errors back is up to you
        if (error.validationErrors) {
          throw new SubmissionError(error.validationErrors)
        } else {
          // what you do about other communication errors is up to you
        }
      })
  }
/>
```


================================================
FILE: docs/faq/BundleSize.md
================================================
# How to reduce `redux-form`'s bundle size?

For convenience, Redux Form exposes its full API on the top-level `redux-form` import.
However, this causes the entire Redux Form library and its dependencies to be included in client bundles that
include code that imports from the top-level import.

You can import directly from those to avoid pulling in unused modules.

Example:

```js
import { reduxForm, Field, FieldArray } from 'redux-form'
```

use:

```js
import reduxForm from 'redux-form/reduxForm'
import Field from 'redux-form/Field'
import FieldArray from 'redux-form/FieldArray'
import actions from 'redux-form/actions'
```

Note: if you are using a bundler that can process ES modules like `webpack@2` or `rollup`, it will actually
import from `redux-form/es` because of the `"modules.root": "./es"` entry in `redux-form/package.json`, and you will need
to make sure you have a rule to transpile those modules if building for legacy browsers.

The public API available in this manner is defined as the set of imports available from the top-level `redux-form` module.
Anything not available through the top-level `redux-form` module is a private API, and is subject to change without notice.

## Babel Plugin

Thankfully there is a babel plugin that can automate this task.

[babel-plugin-transform-imports](https://www.npmjs.com/package/babel-plugin-transform-imports)

```json
{
  "plugins": [
    [
      "transform-imports",
      {
        "redux-form": {
          "transform": "redux-form/${member}",
          "preventFullImport": true
        }
      }
    ]
  ]
}
```

## Caveat (Action Creators)

Action creators are available under `actions` in order to take advantage of this method.
One would import the actions binding and then extract the needed action creators.

Example:

```js
import actions from 'redux-form/actions'

const { change, destroy } = actions
```


================================================
FILE: docs/faq/ButtonType.md
================================================
# Why are all my buttons triggering `onSubmit`?

You may want to add a 'reset' or 'cancel' button to your form. When doing so, be wary of the `type` property passed to your `<button/>`. This can cause all buttons within your form to trigger `onSubmit`.

`<button/>` elements are automatically associated with parent `<form/>` elements:

> If *[the `form` property]* is not specified, the `<button>` element will be associated to an ancestor `<form>` element, if one exists.

The default `type` property assigned to `<button/>` elements is `submit`. This causes the button to attempt to trigger their parent form's `onSubmit` handler, regardless of the button's own click handler. By changing `type` to `button`, your button will trigger your passed event handler instead of trying to submit the form.

For more information, refer to the [MDN documentation](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/button).


================================================
FILE: docs/faq/CustomComponent.md
================================================
# Will `redux-form` work with my custom input component?
  
The minimum interface needed for a custom component to work with `redux-form` is to make sure that
`value` and `onChange` are passed properly. These are pretty standard prop names, so it's 
possible that your component will work right out of the box.

But let's say that you have a custom component called `MyStrangeInput` that has `currentValue`
and `thingsChanged` props that expect the value to be wrapped in an object under a `val` key. You
would have to do something like:

```javascript
const renderMyStrangeInput = field => (
  <MyStrangeInput 
    currentValue={{val: field.input.value}}
    thingsChanged={param => field.input.onChange(param.val)}/> 
)

...

render() {
  return (
    <div>
      <Field name="myField" component={renderMyStrangeInput}/>
    </div>
  );
}
```

The point is that almost any input can be adjusted to use `redux-form`. If you are using an input
component with a non-standard interface many times in your application, it is recommended that
you wrap it in another component that will allow you to do the normal field destructuring:
`<AdaptedInput {...props}/>`.


================================================
FILE: docs/faq/EnterToSubmit.md
================================================
# How can I submit my form when the user presses Enter?
  
The default browser behavior for `text` and `password` inputs when ↵ is pressed is to activate the first `<button>`
that does not have `type="button"` specified. The recommended way to structure your form is as follows:

```javascript
render() {
  const {fields: {firstName, lastName}, handleSubmit} = this.props.fields;
  return (
    <form onSubmit={handleSubmit}>
      <button type="button">Load Data</button>
      <button type="button">Delete Record</button>

      <label htmlFor="firstName">First Name</label>
      <input type="text" {...firstName}/>

      <label htmlFor="lastName">Last Name</label>
      <input type="text" {...lastName}/>

      <button type="submit">Submit</button>
      <button type="button">Do Something Else</button>
    </form>
  );
}
```

Things to notice:

1. `handleSubmit` is on the `<form>` element, not on the `<button>`. It does not hurt to put it on the `onClick` for 
the button, but it doesn't accomplish anything.
2. The submit button is explicitly marked `type="submit"`.
3. You may place any other buttons inside the form as long as they are labeled `type="button"`.


================================================
FILE: docs/faq/HandleVsOn.md
================================================
# What's the difference between `handleSubmit` and `onSubmit`?

From what I can tell from every example I have seen, there is an unwritten rule in the React community about handling form events:

> **`handleX` is what you name the function that you pass to the `onX` prop.**

```javascript
render() {
  const handleClick = () => console.log('Clicked!');
  return <button onClick={handleClick}>Click me</button>;
}
```

```javascript
render() {
  const handleSubmit = (event) => {
    event.preventDefault();
    console.log('Submitted!');
  }
  return <button onClick={handleSubmit}>Click me</button>;
}
```

## How do I pass form value(s) to my own submit handler?

redux-form covers `handleSubmit` functionality by [providing a respective handler](https://github.com/zacacollier/redux-form/blob/master/src/handleSubmit.js) that you pass as a prop - that is, a `handleSubmit` method for you to pass to `onSubmit`.

With that in mind, you can think of the redux-form `handleSubmit` as a middle layer for your form's `submit` handler. Simply write your components as you normally would, passing `handleSubmit` where appropriate:

```javascript
import React from 'react'
import { reduxForm, Field } from 'redux-form'

const SearchBar = ({ handleChange, handleSubmit, value }) => (
  <form onSubmit={handleSubmit}>
    <div>
      <Field
        component="input"
        name="search"
        onChange={handleChange}
        type="text"
        value={value}
      />
    </div>
  </form>
)
export default reduxForm({ form: 'SearchBar' })(SearchBar)
```

You can access your form's input values via the `values` parameter provided to the `onSubmit` prop:

```javascript
import React from 'react'
import { connect } from 'react-redux'
import SearchBar from './SearchBar'

let SearchContainer = ({ handleSearchSubmit }) => (
  <SearchBar onSubmit={values => handleSearchSubmit(values.search)} />
)

const mapDispatchToProps = dispatch => ({
  handleSearchSubmit: value =>
    dispatch({ type: 'SEARCH_CONTAINER_SUBMIT', payload: value })
})

export default connect(
  null,
  mapDispatchToProps
)(SearchContainer)
```

That's it! No need to specify `event.preventDefault()`. All that's left to do is handle the dispatched form data in your reducer.


================================================
FILE: docs/faq/HowToClear.md
================================================
# How can I clear my form after my submission succeeds?
  
Excellent question. You have several options:

### A) You can use [the `plugin()` API](../../api/ReducerPlugin.md) to teach the `redux-form` reducer to respond to the action dispatched when your submission succeeds.

> This is the proper Redux way to do it and has the benefit of not dispatching another action.

```javascript
import {createStore, combineReducers} from 'redux';
import {reducer as formReducer} from 'redux-form';
import {ACCOUNT_SAVE_SUCCESS} from '../actions/actionTypes';

const reducers = {
  // ... your other reducers here ...
  form: formReducer.plugin({
    account: (state, action) => { // <------ 'account' is name of form given to reduxForm()
      switch(action.type) {
        case ACCOUNT_SAVE_SUCCESS:
          return undefined;       // <--- blow away form data
        default:
          return state;
      }
    }
  })
}
const reducer = combineReducers(reducers);
const store = createStore(reducer);
```

### B) Simply unmount your form component

> For many use cases, you will want to either hide your form component after submission succeeds or navigate away to 
another page, which will cause `redux-form`'s default behavior of destroying the form data in the reducer in 
`componentWillUnmount`.

### C) You can call `this.props.reset()` from inside your form after your submission succeeds.

```javascript
submitMyForm(data) {
  const { createRecord, reset } = this.props;
  return createRecord(data).then(() => {
    reset();
    // do other success stuff
  });
}

render() {
  const { handleSubmit } = this.props;
  return (
    <form onSubmit={handleSubmit(this.submitMyForm.bind(this))}>
      // inputs
    </form>
  );
}
```

### D) You can dispatch `reset()` from any connected component

> Extremely flexible, but you have to know your form name and have `dispatch` available.

```javascript
import {reset} from 'redux-form';

...

dispatch(reset('myForm'));  // requires form name
```


================================================
FILE: docs/faq/HowToConnect.md
================================================
# How do I `mapStateToProps` or `mapDispatchToProps`?

Better to show with an example:

```javascript
import React, { Component } from 'react'
import { reduxForm } from 'redux-form'
import { connect } from 'react-redux'

class Example extends React.Component {
  // ...
}

const mapStateToProps = state => ({
  // ...
})

const mapDispatchToProps = dispatch => ({
  // ...
})

Example = connect(
  mapStateToProps,
  mapDispatchToProps
)(Example)

export default reduxForm({
  form: 'example' // a unique name for this form
})(Example)
```


================================================
FILE: docs/faq/ImmutableJs.md
================================================
# Does `redux-form` work with ImmutableJS?
  
Yes!

As of `v6`, `redux-form` has support for ImmutableJS built in.

Simply import from a different endpoint and all of `redux-form`'s internal state will be kept 
with ImmutableJS data structures.

Instead of...
```js
import { reduxForm } from 'redux-form'
```

...do...

```js
import { reduxForm } from 'redux-form/immutable'
```

That's all there is to it!


================================================
FILE: docs/faq/README.md
================================================
# Frequently Asked Questions

Below is a list of common problems or questions that people have using `redux-form`.

1. [My submit function isn't being called! Help?](SubmitFunction.md)

2. [Will `redux-form` work with my custom input component?](CustomComponent.md)

3. [What's the difference between `handleSubmit` and `onSubmit`?](HandleVsOn.md)

4. [How can I clear my form after my submission succeeds?](HowToClear.md)

5. [How can I submit my form when the user presses Enter?](EnterToSubmit.md)

6. [Does `redux-form` work with React Native?](ReactNative.md)

7. [Does `redux-form` work with ImmutableJS?](ImmutableJs.md)

8. [Can I submit my form using websockets?](WebsocketSubmit.md)

9. [How do I `mapStateToProps` or `mapDispatchToProps`?](HowToConnect.md)

10. [How to reduce `redux-form`'s bundle size?](BundleSize.md)

11. [Why are all my buttons triggering `onSubmit`?](ButtonType.md)

================================================
FILE: docs/faq/ReactNative.md
================================================
# Does `redux-form` work with React Native?

Yes, it does!  
Most of Redux Form will work just fine.

However, there are some minor differences very well detailed by [@esbenp](https://github.com/esbenp)
in his blog post [**Simple React Native forms with redux-form, immutable.js and styled-components**](https://esbenp.github.io/2017/01/06/react-native-redux-form-immutable-styled-components/).  
We highly recommend you to follow it.


================================================
FILE: docs/faq/SubmitFunction.md
================================================
# My submit function isn't being called! Help?

Possible causes:

* Your synchronous validation function is not returning `{}`. Probably because:
  * You are upgrading from a previous version of `redux-form` that required that `{valid: true}` be returned.
  * You have removed a field from your form, but forgotten to remove it from your validation function.
* Your asynchronous validation function is returning a rejected promise for some reason.


================================================
FILE: docs/faq/WebsocketSubmit.md
================================================
# Can I submit my form using websockets?

Yes. `redux-form` has built-in support for managing `submitting` state and errors using promises,
but you can easily replicate its behavior using any other asynchronous paradigm. All you need do
is to dispatch the `START_SUBMIT` and `STOP_SUBMIT` actions yourself using the exported
[Action Creators](#/api/action-creators).

```javascript
import { startSubmit, stopSubmit } from 'redux-form'

function submitForm(data, dispatch) {
  // tell redux-form that the submission has started
  dispatch(startSubmit('myFormName'))

  channels.methods.push('submit:myFormName', { data })
  receive('ok', () => {
    // tell redux-form that the submission has stopped
    dispatch(stopSubmit('myFormName'))
    // ^ not necessary if you are redirecting or doing something
    //   else that will result in the form state being destroyed
  }).receive('error', response => {
    const { errors } = response
    // tell redux-form that the submission has stopped with errors
    dispatch(stopSubmit('myFormName', errors))
  })
}
```

The `submitForm` function can then be passed either as an `onSubmit` prop to your decorated form
or as a parameter to `handleSubmit()` inside your form component. For more on this, look at
[the `handleSubmit()` docs](#/api/props).

---

Thanks to [Vlad Shcherbin](https://github.com/VladShcherbin) for presenting
[his solution](https://github.com/redux-form/redux-form/issues/450#issuecomment-166457681), from
which this answer was modeled.


================================================
FILE: docs/sponsor.json
================================================
{
  "id": "e5e4ba227e6bbdf32c6df4a7778c84f1",
  "copy": "<strong>Rollbar</strong>: Real-time JavaScript error monitoring, alerting, and analytics for developers. 🚀"
}


================================================
FILE: flow-typed/npm/jest_v25.x.x.js
================================================
// flow-typed signature: f3e5d388b2c86a25ffee45e89bc98e87
// flow-typed version: dd2428a21d/jest_v25.x.x/flow_>=v0.39.x <=v0.103.x

type JestMockFn<TArguments: $ReadOnlyArray<*>, TReturn> = {
  (...args: TArguments): TReturn,
  /**
   * An object for introspecting mock calls
   */
  mock: {
    /**
     * An array that represents all calls that have been made into this mock
     * function. Each call is represented by an array of arguments that were
     * passed during the call.
     */
    calls: Array<TArguments>,
    /**
     * An array that contains all the object instances that have been
     * instantiated from this mock function.
     */
    instances: Array<TReturn>,
    /**
     * An array that contains all the object results that have been
     * returned by this mock function call
     */
    results: Array<{ isThrow: boolean, value: TReturn }>,
  },
  /**
   * Resets all information stored in the mockFn.mock.calls and
   * mockFn.mock.instances arrays. Often this is useful when you want to clean
   * up a mock's usage data between two assertions.
   */
  mockClear(): void,
  /**
   * Resets all information stored in the mock. This is useful when you want to
   * completely restore a mock back to its initial state.
   */
  mockReset(): void,
  /**
   * Removes the mock and restores the initial implementation. This is useful
   * when you want to mock functions in certain test cases and restore the
   * original implementation in others. Beware that mockFn.mockRestore only
   * works when mock was created with jest.spyOn. Thus you have to take care of
   * restoration yourself when manually assigning jest.fn().
   */
  mockRestore(): void,
  /**
   * Accepts a function that should be used as the implementation of the mock.
   * The mock itself will still record all calls that go into and instances
   * that come from itself -- the only difference is that the implementation
   * will also be executed when the mock is called.
   */
  mockImplementation(
    fn: (...args: TArguments) => TReturn
  ): JestMockFn<TArguments, TReturn>,
  /**
   * Accepts a function that will be used as an implementation of the mock for
   * one call to the mocked function. Can be chained so that multiple function
   * calls produce different results.
   */
  mockImplementationOnce(
    fn: (...args: TArguments) => TReturn
  ): JestMockFn<TArguments, TReturn>,
  /**
   * Accepts a string to use in test result output in place of "jest.fn()" to
   * indicate which mock function is being referenced.
   */
  mockName(name: string): JestMockFn<TArguments, TReturn>,
  /**
   * Just a simple sugar function for returning `this`
   */
  mockReturnThis(): void,
  /**
   * Accepts a value that will be returned whenever the mock function is called.
   */
  mockReturnValue(value: TReturn): JestMockFn<TArguments, TReturn>,
  /**
   * Sugar for only returning a value once inside your mock
   */
  mockReturnValueOnce(value: TReturn): JestMockFn<TArguments, TReturn>,
  /**
   * Sugar for jest.fn().mockImplementation(() => Promise.resolve(value))
   */
  mockResolvedValue(value: TReturn): JestMockFn<TArguments, Promise<TReturn>>,
  /**
   * Sugar for jest.fn().mockImplementationOnce(() => Promise.resolve(value))
   */
  mockResolvedValueOnce(
    value: TReturn
  ): JestMockFn<TArguments, Promise<TReturn>>,
  /**
   * Sugar for jest.fn().mockImplementation(() => Promise.reject(value))
   */
  mockRejectedValue(value: TReturn): JestMockFn<TArguments, Promise<any>>,
  /**
   * Sugar for jest.fn().mockImplementationOnce(() => Promise.reject(value))
   */
  mockRejectedValueOnce(value: TReturn): JestMockFn<TArguments, Promise<any>>,
};

type JestAsymmetricEqualityType = {
  /**
   * A custom Jasmine equality tester
   */
  asymmetricMatch(value: mixed): boolean,
};

type JestCallsType = {
  allArgs(): mixed,
  all(): mixed,
  any(): boolean,
  count(): number,
  first(): mixed,
  mostRecent(): mixed,
  reset(): void,
};

type JestClockType = {
  install(): void,
  mockDate(date: Date): void,
  tick(milliseconds?: number): void,
  uninstall(): void,
};

type JestMatcherResult = {
  message?: string | (() => string),
  pass: boolean,
};

type JestMatcher = (
  received: any,
  ...actual: Array<any>
) => JestMatcherResult | Promise<JestMatcherResult>;

type JestPromiseType = {
  /**
   * Use rejects to unwrap the reason of a rejected promise so any other
   * matcher can be chained. If the promise is fulfilled the assertion fails.
   */
  rejects: JestExpectType,
  /**
   * Use resolves to unwrap the value of a fulfilled promise so any other
   * matcher can be chained. If the promise is rejected the assertion fails.
   */
  resolves: JestExpectType,
};

/**
 * Jest allows functions and classes to be used as test names in test() and
 * describe()
 */
type JestTestName = string | Function;

/**
 *  Plugin: jest-styled-components
 */

type JestStyledComponentsMatcherValue =
  | string
  | JestAsymmetricEqualityType
  | RegExp
  | typeof undefined;

type JestStyledComponentsMatcherOptions = {
  media?: string,
  modifier?: string,
  supports?: string,
};

type JestStyledComponentsMatchersType = {
  toHaveStyleRule(
    property: string,
    value: JestStyledComponentsMatcherValue,
    options?: JestStyledComponentsMatcherOptions
  ): void,
};

/**
 *  Plugin: jest-enzyme
 */
type EnzymeMatchersType = {
  // 5.x
  toBeEmpty(): void,
  toBePresent(): void,
  // 6.x
  toBeChecked(): void,
  toBeDisabled(): void,
  toBeEmptyRender(): void,
  toContainMatchingElement(selector: string): void,
  toContainMatchingElements(n: number, selector: string): void,
  toContainExactlyOneMatchingElement(selector: string): void,
  toContainReact(element: React$Element<any>): void,
  toExist(): void,
  toHaveClassName(className: string): void,
  toHaveHTML(html: string): void,
  toHaveProp: ((propKey: string, propValue?: any) => void) &
    ((props: {}) => void),
  toHaveRef(refName: string): void,
  toHaveState: ((stateKey: string, stateValue?: any) => void) &
    ((state: {}) => void),
  toHaveStyle: ((styleKey: string, styleValue?: any) => void) &
    ((style: {}) => void),
  toHaveTagName(tagName: string): void,
  toHaveText(text: string): void,
  toHaveValue(value: any): void,
  toIncludeText(text: string): void,
  toMatchElement(
    element: React$Element<any>,
    options?: {| ignoreProps?: boolean, verbose?: boolean |}
  ): void,
  toMatchSelector(selector: string): void,
  // 7.x
  toHaveDisplayName(name: string): void,
};

// DOM testing library extensions (jest-dom)
// https://github.com/testing-library/jest-dom
type DomTestingLibraryType = {
  /**
   * @deprecated
   */
  toBeInTheDOM(container?: HTMLElement): void,

  toBeInTheDocument(): void,
  toBeVisible(): void,
  toBeEmpty(): void,
  toBeDisabled(): void,
  toBeEnabled(): void,
  toBeInvalid(): void,
  toBeRequired(): void,
  toBeValid(): void,
  toContainElement(element: HTMLElement | null): void,
  toContainHTML(htmlText: string): void,
  toHaveAttribute(attr: string, value?: any): void,
  toHaveClass(...classNames: string[]): void,
  toHaveFocus(): void,
  toHaveFormValues(expectedValues: { [name: string]: any }): void,
  toHaveStyle(css: string): void,
  toHaveTextContent(
    text: string | RegExp,
    options?: { normalizeWhitespace: boolean }
  ): void,
  toHaveValue(value?: string | string[] | number): void,
};

// Jest JQuery Matchers: https://github.com/unindented/custom-jquery-matchers
type JestJQueryMatchersType = {
  toExist(): void,
  toHaveLength(len: number): void,
  toHaveId(id: string): void,
  toHaveClass(className: string): void,
  toHaveTag(tag: string): void,
  toHaveAttr(key: string, val?: any): void,
  toHaveProp(key: string, val?: any): void,
  toHaveText(text: string | RegExp): void,
  toHaveData(key: string, val?: any): void,
  toHaveValue(val: any): void,
  toHaveCss(css: { [key: string]: any }): void,
  toBeChecked(): void,
  toBeDisabled(): void,
  toBeEmpty(): void,
  toBeHidden(): void,
  toBeSelected(): void,
  toBeVisible(): void,
  toBeFocused(): void,
  toBeInDom(): void,
  toBeMatchedBy(sel: string): void,
  toHaveDescendant(sel: string): void,
  toHaveDescendantWithText(sel: string, text: string | RegExp): void,
};

// Jest Extended Matchers: https://github.com/jest-community/jest-extended
type JestExtendedMatchersType = {
  /**
   * Note: Currently unimplemented
   * Passing assertion
   *
   * @param {String} message
   */
  //  pass(message: string): void;

  /**
   * Note: Currently unimplemented
   * Failing assertion
   *
   * @param {String} message
   */
  //  fail(message: string): void;

  /**
   * Use .toBeEmpty when checking if a String '', Array [] or Object {} is empty.
   */
  toBeEmpty(): void,

  /**
   * Use .toBeOneOf when checking if a value is a member of a given Array.
   * @param {Array.<*>} members
   */
  toBeOneOf(members: any[]): void,

  /**
   * Use `.toBeNil` when checking a value is `null` or `undefined`.
   */
  toBeNil(): void,

  /**
   * Use `.toSatisfy` when you want to use a custom matcher by supplying a predicate function that returns a `Boolean`.
   * @param {Function} predicate
   */
  toSatisfy(predicate: (n: any) => boolean): void,

  /**
   * Use `.toBeArray` when checking if a value is an `Array`.
   */
  toBeArray(): void,

  /**
   * Use `.toBeArrayOfSize` when checking if a value is an `Array` of size x.
   * @param {Number} x
   */
  toBeArrayOfSize(x: number): void,

  /**
   * Use `.toIncludeAllMembers` when checking if an `Array` contains all of the same members of a given set.
   * @param {Array.<*>} members
   */
  toIncludeAllMembers(members: any[]): void,

  /**
   * Use `.toIncludeAnyMembers` when checking if an `Array` contains any of the members of a given set.
   * @param {Array.<*>} members
   */
  toIncludeAnyMembers(members: any[]): void,

  /**
   * Use `.toIncludeSameMembers` when checking if two arrays contain equal values, in any order.
   * @param {Array.<*>} members
   */
  toIncludeSameMembers(members: any[]): void,

  /**
   * Use `.toSatisfyAll` when you want to use a custom matcher by supplying a predicate function that returns a `Boolean` for all values in an array.
   * @param {Function} predicate
   */
  toSatisfyAll(predicate: (n: any) => boolean): void,

  /**
   * Use `.toBeBoolean` when checking if a value is a `Boolean`.
   */
  toBeBoolean(): void,

  /**
   * Use `.toBeTrue` when checking a value is equal (===) to `true`.
   */
  toBeTrue(): void,

  /**
   * Use `.toBeFalse` when checking a value is equal (===) to `false`.
   */
  toBeFalse(): void,

  /**
   * Use .toBeDate when checking if a value is a Date.
   */
  toBeDate(): void,

  /**
   * Use `.toBeFunction` when checking if a value is a `Function`.
   */
  toBeFunction(): void,

  /**
   * Use `.toHaveBeenCalledBefore` when checking if a `Mock` was called before another `Mock`.
   *
   * Note: Required Jest version >22
   * Note: Your mock functions will have to be asynchronous to cause the timestamps inside of Jest to occur in a differentJS event loop, otherwise the mock timestamps will all be the same
   *
   * @param {Mock} mock
   */
  toHaveBeenCalledBefore(mock: JestMockFn<any, any>): void,

  /**
   * Use `.toBeNumber` when checking if a value is a `Number`.
   */
  toBeNumber(): void,

  /**
   * Use `.toBeNaN` when checking a value is `NaN`.
   */
  toBeNaN(): void,

  /**
   * Use `.toBeFinite` when checking if a value is a `Number`, not `NaN` or `Infinity`.
   */
  toBeFinite(): void,

  /**
   * Use `.toBePositive` when checking if a value is a positive `Number`.
   */
  toBePositive(): void,

  /**
   * Use `.toBeNegative` when checking if a value is a negative `Number`.
   */
  toBeNegative(): void,

  /**
   * Use `.toBeEven` when checking if a value is an even `Number`.
   */
  toBeEven(): void,

  /**
   * Use `.toBeOdd` when checking if a value is an odd `Number`.
   */
  toBeOdd(): void,

  /**
   * Use `.toBeWithin` when checking if a number is in between the given bounds of: start (inclusive) and end (exclusive).
   *
   * @param {Number} start
   * @param {Number} end
   */
  toBeWithin(start: number, end: number): void,

  /**
   * Use `.toBeObject` when checking if a value is an `Object`.
   */
  toBeObject(): void,

  /**
   * Use `.toContainKey` when checking if an object contains the provided key.
   *
   * @param {String} key
   */
  toContainKey(key: string): void,

  /**
   * Use `.toContainKeys` when checking if an object has all of the provided keys.
   *
   * @param {Array.<String>} keys
   */
  toContainKeys(keys: string[]): void,

  /**
   * Use `.toContainAllKeys` when checking if an object only contains all of the provided keys.
   *
   * @param {Array.<String>} keys
   */
  toContainAllKeys(keys: string[]): void,

  /**
   * Use `.toContainAnyKeys` when checking if an object contains at least one of the provided keys.
   *
   * @param {Array.<String>} keys
   */
  toContainAnyKeys(keys: string[]): void,

  /**
   * Use `.toContainValue` when checking if an object contains the provided value.
   *
   * @param {*} value
   */
  toContainValue(value: any): void,

  /**
   * Use `.toContainValues` when checking if an object contains all of the provided values.
   *
   * @param {Array.<*>} values
   */
  toContainValues(values: any[]): void,

  /**
   * Use `.toContainAllValues` when checking if an object only contains all of the provided values.
   *
   * @param {Array.<*>} values
   */
  toContainAllValues(values: any[]): void,

  /**
   * Use `.toContainAnyValues` when checking if an object contains at least one of the provided values.
   *
   * @param {Array.<*>} values
   */
  toContainAnyValues(values: any[]): void,

  /**
   * Use `.toContainEntry` when checking if an object contains the provided entry.
   *
   * @param {Array.<String, String>} entry
   */
  toContainEntry(entry: [string, string]): void,

  /**
   * Use `.toContainEntries` when checking if an object contains all of the provided entries.
   *
   * @param {Array.<Array.<String, String>>} entries
   */
  toContainEntries(entries: [string, string][]): void,

  /**
   * Use `.toContainAllEntries` when checking if an object only contains all of the provided entries.
   *
   * @param {Array.<Array.<String, String>>} entries
   */
  toContainAllEntries(entries: [string, string][]): void,

  /**
   * Use `.toContainAnyEntries` when checking if an object contains at least one of the provided entries.
   *
   * @param {Array.<Array.<String, String>>} entries
   */
  toContainAnyEntries(entries: [string, string][]): void,

  /**
   * Use `.toBeExtensible` when checking if an object is extensible.
   */
  toBeExtensible(): void,

  /**
   * Use `.toBeFrozen` when checking if an object is frozen.
   */
  toBeFrozen(): void,

  /**
   * Use `.toBeSealed` when checking if an object is sealed.
   */
  toBeSealed(): void,

  /**
   * Use `.toBeString` when checking if a value is a `String`.
   */
  toBeString(): void,

  /**
   * Use `.toEqualCaseInsensitive` when checking if a string is equal (===) to another ignoring the casing of both strings.
   *
   * @param {String} string
   */
  toEqualCaseInsensitive(string: string): void,

  /**
   * Use `.toStartWith` when checking if a `String` starts with a given `String` prefix.
   *
   * @param {String} prefix
   */
  toStartWith(prefix: string): void,

  /**
   * Use `.toEndWith` when checking if a `String` ends with a given `String` suffix.
   *
   * @param {String} suffix
   */
  toEndWith(suffix: string): void,

  /**
   * Use `.toInclude` when checking if a `String` includes the given `String` substring.
   *
   * @param {String} substring
   */
  toInclude(substring: string): void,

  /**
   * Use `.toIncludeRepeated` when checking if a `String` includes the given `String` substring the correct number of times.
   *
   * @param {String} substring
   * @param {Number} times
   */
  toIncludeRepeated(substring: string, times: number): void,

  /**
   * Use `.toIncludeMultiple` when checking if a `String` includes all of the given substrings.
   *
   * @param {Array.<String>} substring
   */
  toIncludeMultiple(substring: string[]): void,
};

// Diffing snapshot utility for Jest (snapshot-diff)
// https://github.com/jest-community/snapshot-diff
type SnapshotDiffType = {
  /**
   * Compare the difference between the actual in the `expect()`
   * vs the object inside `valueB` with some extra options.
   */
  toMatchDiffSnapshot(
    valueB: any,
    options?: {|
      expand?: boolean;
      colors?: boolean;
      contextLines?: number;
      stablePatchmarks?: boolean;
      aAnnotation?: string;
      bAnnotation?: string;
    |},
    testName?: string
  ): void,
  ...
}

interface JestExpectType {
  not: JestExpectType &
    EnzymeMatchersType &
    DomTestingLibraryType &
    JestJQueryMatchersType &
    JestStyledComponentsMatchersType &
    JestExtendedMatchersType &
    SnapshotDiffType;
  /**
   * If you have a mock function, you can use .lastCalledWith to test what
   * arguments it was last called with.
   */
  lastCalledWith(...args: Array<any>): void;
  /**
   * toBe just checks that a value is what you expect. It uses === to check
   * strict equality.
   */
  toBe(value: any): void;
  /**
   * Use .toBeCalledWith to ensure that a mock function was called with
   * specific arguments.
   */
  toBeCalledWith(...args: Array<any>): void;
  /**
   * Using exact equality with floating point numbers is a bad idea. Rounding
   * means that intuitive things fail.
   */
  toBeCloseTo(num: number, delta: any): void;
  /**
   * Use .toBeDefined to check that a variable is not undefined.
   */
  toBeDefined(): void;
  /**
   * Use .toBeFalsy when you don't care what a value is, you just want to
   * ensure a value is false in a boolean context.
   */
  toBeFalsy(): void;
  /**
   * To compare floating point numbers, you can use toBeGreaterThan.
   */
  toBeGreaterThan(number: number): void;
  /**
   * To compare floating point numbers, you can use toBeGreaterThanOrEqual.
   */
  toBeGreaterThanOrEqual(number: number): void;
  /**
   * To compare floating point numbers, you can use toBeLessThan.
   */
  toBeLessThan(number: number): void;
  /**
   * To compare floating point numbers, you can use toBeLessThanOrEqual.
   */
  toBeLessThanOrEqual(number: number): void;
  /**
   * Use .toBeInstanceOf(Class) to check that an object is an instance of a
   * class.
   */
  toBeInstanceOf(cls: Class<*>): void;
  /**
   * .toBeNull() is the same as .toBe(null) but the error messages are a bit
   * nicer.
   */
  toBeNull(): void;
  /**
   * Use .toBeTruthy when you don't care what a value is, you just want to
   * ensure a value is true in a boolean context.
   */
  toBeTruthy(): void;
  /**
   * Use .toBeUndefined to check that a variable is undefined.
   */
  toBeUndefined(): void;
  /**
   * Use .toContain when you want to check that an item is in a list. For
   * testing the items in the list, this uses ===, a strict equality check.
   */
  toContain(item: any): void;
  /**
   * Use .toContainEqual when you want to check that an item is in a list. For
   * testing the items in the list, this matcher recursively checks the
   * equality of all fields, rather than checking for object identity.
   */
  toContainEqual(item: any): void;
  /**
   * Use .toEqual when you want to check that two objects have the same value.
   * This matcher recursively checks the equality of all fields, rather than
   * checking for object identity.
   */
  toEqual(value: any): void;
  /**
   * Use .toHaveBeenCalled to ensure that a mock function got called.
   */
  toHaveBeenCalled(): void;
  toBeCalled(): void;
  /**
   * Use .toHaveBeenCalledTimes to ensure that a mock function got called exact
   * number of times.
   */
  toHaveBeenCalledTimes(number: number): void;
  toBeCalledTimes(number: number): void;
  /**
   *
   */
  toHaveBeenNthCalledWith(nthCall: number, ...args: Array<any>): void;
  nthCalledWith(nthCall: number, ...args: Array<any>): void;
  /**
   *
   */
  toHaveReturned(): void;
  toReturn(): void;
  /**
   *
   */
  toHaveReturnedTimes(number: number): void;
  toReturnTimes(number: number): void;
  /**
   *
   */
  toHaveReturnedWith(value: any): void;
  toReturnWith(value: any): void;
  /**
   *
   */
  toHaveLastReturnedWith(value: any): void;
  lastReturnedWith(value: any): void;
  /**
   *
   */
  toHaveNthReturnedWith(nthCall: number, value: any): void;
  nthReturnedWith(nthCall: number, value: any): void;
  /**
   * Use .toHaveBeenCalledWith to ensure that a mock function was called with
   * specific arguments.
   */
  toHaveBeenCalledWith(...args: Array<any>): void;
  toBeCalledWith(...args: Array<any>): void;
  /**
   * Use .toHaveBeenLastCalledWith to ensure that a mock function was last called
   * with specific arguments.
   */
  toHaveBeenLastCalledWith(...args: Array<any>): void;
  lastCalledWith(...args: Array<any>): void;
  /**
   * Check that an object has a .length property and it is set to a certain
   * numeric value.
   */
  toHaveLength(number: number): void;
  /**
   *
   */
  toHaveProperty(propPath: string | $ReadOnlyArray<string>, value?: any): void;
  /**
   * Use .toMatch to check that a string matches a regular expression or string.
   */
  toMatch(regexpOrString: RegExp | string): void;
  /**
   * Use .toMatchObject to check that a javascript object matches a subset of the properties of an object.
   */
  toMatchObject(object: Object | Array<Object>): void;
  /**
   * Use .toStrictEqual to check that a javascript object matches a subset of the properties of an object.
   */
  toStrictEqual(value: any): void;
  /**
   * This ensures that an Object matches the most recent snapshot.
   */
  toMatchSnapshot(propertyMatchers?: any, name?: string): void;
  /**
   * This ensures that an Object matches the most recent snapshot.
   */
  toMatchSnapshot(name: string): void;

  toMatchInlineSnapshot(snapshot?: string): void;
  toMatchInlineSnapshot(propertyMatchers?: any, snapshot?: string): void;
  /**
   * Use .toThrow to test that a function throws when it is called.
   * If you want to test that a specific error gets thrown, you can provide an
   * argument to toThrow. The argument can be a string for the error message,
   * a class for the error, or a regex that should match the error.
   *
   * Alias: .toThrowError
   */
  toThrow(message?: string | Error | Class<Error> | RegExp): void;
  toThrowError(message?: string | Error | Class<Error> | RegExp): void;
  /**
   * Use .toThrowErrorMatchingSnapshot to test that a function throws a error
   * matching the most recent snapshot when it is called.
   */
  toThrowErrorMatchingSnapshot(): void;
  toThrowErrorMatchingInlineSnapshot(snapshot?: string): void;
}

type JestObjectType = {
  /**
   *  Disables automatic mocking in the module loader.
   *
   *  After this method is called, all `require()`s will return the real
   *  versions of each module (rather than a mocked version).
   */
  disableAutomock(): JestObjectType,
  /**
   * An un-hoisted version of disableAutomock
   */
  autoMockOff(): JestObjectType,
  /**
   * Enables automatic mocking in the module loader.
   */
  enableAutomock(): JestObjectType,
  /**
   * An un-hoisted version of enableAutomock
   */
  autoMockOn(): JestObjectType,
  /**
   * Clears the mock.calls and mock.instances properties of all mocks.
   * Equivalent to calling .mockClear() on every mocked function.
   */
  clearAllMocks(): JestObjectType,
  /**
   * Resets the state of all mocks. Equivalent to calling .mockReset() on every
   * mocked function.
   */
  resetAllMocks(): JestObjectType,
  /**
   * Restores all mocks back to their original value.
   */
  restoreAllMocks(): JestObjectType,
  /**
   * Removes any pending timers from the timer system.
   */
  clearAllTimers(): void,
  /**
   * Returns the number of fake timers still left to run.
   */
  getTimerCount(): number,
  /**
   * The same as `mock` but not moved to the top of the expectation by
   * babel-jest.
   */
  doMock(moduleName: string, moduleFactory?: any): JestObjectType,
  /**
   * The same as `unmock` but not moved to the top of the expectation by
   * babel-jest.
   */
  dontMock(moduleName: string): JestObjectType,
  /**
   * Returns a new, unused mock function. Optionally takes a mock
   * implementation.
   */
  fn<TArguments: $ReadOnlyArray<*>, TReturn>(
    implementation?: (...args: TArguments) => TReturn
  ): JestMockFn<TArguments, TReturn>,
  /**
   * Determines if the given function is a mocked function.
   */
  isMockFunction(fn: Function): boolean,
  /**
   * Given the name of a module, use the automatic mocking system to generate a
   * mocked version of the module for you.
   */
  genMockFromModule(moduleName: string): any,
  /**
   * Mocks a module with an auto-mocked version when it is being required.
   *
   * The second argument can be used to specify an explicit module factory that
   * is being run instead of using Jest's automocking feature.
   *
   * The third argument can be used to create virtual mocks -- mocks of modules
   * that don't exist anywhere in the system.
   */
  mock(
    moduleName: string,
    moduleFactory?: any,
    options?: Object
  ): JestObjectType,
  /**
   * Returns the actual module instead of a mock, bypassing all checks on
   * whether the module should receive a mock implementation or not.
   */
  requireActual(moduleName: string): any,
  /**
   * Returns a mock module instead of the actual module, bypassing all checks
   * on whether the module should be required normally or not.
   */
  requireMock(moduleName: string): any,
  /**
   * Resets the module registry - the cache of all required modules. This is
   * useful to isolate modules where local state might conflict between tests.
   */
  resetModules(): JestObjectType,

  /**
   * Creates a sandbox registry for the modules that are loaded inside the
   * callback function. This is useful to isolate specific modules for every
   * test so that local module state doesn't conflict between tests.
   */
  isolateModules(fn: () => void): JestObjectType,

  /**
   * Exhausts the micro-task queue (usually interfaced in node via
   * process.nextTick).
   */
  runAllTicks(): void,
  /**
   * Exhausts the macro-task queue (i.e., all tasks queued by setTimeout(),
   * setInterval(), and setImmediate()).
   */
  runAllTimers(): void,
  /**
   * Exhausts all tasks queued by setImmediate().
   */
  runAllImmediates(): void,
  /**
   * Executes only the macro task queue (i.e. all tasks queued by setTimeout()
   * or setInterval() and setImmediate()).
   */
  advanceTimersByTime(msToRun: number): void,
  /**
   * Executes only the macro task queue (i.e. all tasks queued by setTimeout()
   * or setInterval() and setImmediate()).
   *
   * Renamed to `advanceTimersByTime`.
   */
  runTimersToTime(msToRun: number): void,
  /**
   * Executes only the macro-tasks that are currently pending (i.e., only the
   * tasks that have been queued by setTimeout() or setInterval() up to this
   * point)
   */
  runOnlyPendingTimers(): void,
  /**
   * Explicitly supplies the mock object that the module system should return
   * for the specified module. Note: It is recommended to use jest.mock()
   * instead.
   */
  setMock(moduleName: string, moduleExports: any): JestObjectType,
  /**
   * Indicates that the module system should never return a mocked version of
   * the specified module from require() (e.g. that it should always return the
   * real module).
   */
  unmock(moduleName: string): JestObjectType,
  /**
   * Instructs Jest to use fake versions of the standard timer functions
   * (setTimeout, setInterval, clearTimeout, clearInterval, nextTick,
   * setImmediate and clearImmediate).
   */
  useFakeTimers(): JestObjectType,
  /**
   * Instructs Jest to use the real versions of the standard timer functions.
   */
  useRealTimers(): JestObjectType,
  /**
   * Creates a mock function similar to jest.fn but also tracks calls to
   * object[methodName].
   */
  spyOn(
    object: Object,
    methodName: string,
    accessType?: 'get' | 'set'
  ): JestMockFn<any, any>,
  /**
   * Set the default timeout interval for tests and before/after hooks in milliseconds.
   * Note: The default timeout interval is 5 seconds if this method is not called.
   */
  setTimeout(timeout: number): JestObjectType,
};

type JestSpyType = {
  calls: JestCallsType,
};

type JestDoneFn = {|
  (): void,
  fail: (error: Error) => void,
|};

/** Runs this function after every test inside this context */
declare function afterEach(
  fn: (done: JestDoneFn) => ?Promise<mixed>,
  timeout?: number
): void;
/** Runs this function before every test inside this context */
declare function beforeEach(
  fn: (done: JestDoneFn) => ?Promise<mixed>,
  timeout?: number
): void;
/** Runs this function after all tests have finished inside this context */
declare function afterAll(
  fn: (done: JestDoneFn) => ?Promise<mixed>,
  timeout?: number
): void;
/** Runs this function before any tests have started inside this context */
declare function beforeAll(
  fn: (done: JestDoneFn) => ?Promise<mixed>,
  timeout?: number
): void;

/** A context for grouping tests together */
declare var describe: {
  /**
   * Creates a block that groups together several related tests in one "test suite"
   */
  (name: JestTestName, fn: () => void): void,

  /**
   * Only run this describe block
   */
  only(name: JestTestName, fn: () => void): void,

  /**
   * Skip running this describe block
   */
  skip(name: JestTestName, fn: () => void): void,

  /**
   * each runs this test against array of argument arrays per each run
   *
   * @param {table} table of Test
   */
  each(
    ...table: Array<Array<mixed> | mixed> | [Array<string>, string]
  ): (
    name: JestTestName,
    fn?: (...args: Array<any>) => ?Promise<mixed>,
    timeout?: number
  ) => void,
};

/** An individual test unit */
declare var it: {
  /**
   * An individual test unit
   *
   * @param {JestTestName} Name of Test
   * @param {Function} Test
   * @param {number} Timeout for the test, in milliseconds.
   */
  (
    name: JestTestName,
    fn?: (done: JestDoneFn) => ?Promise<mixed>,
    timeout?: number
  ): void,

  /**
   * Only run this test
   *
   * @param {JestTestName} Name of Test
   * @param {Function} Test
   * @param {number} Timeout for the test, in milliseconds.
   */
  only: {|
    (
      name: JestTestName,
      fn?: (done: JestDoneFn) => ?Promise<mixed>,
      timeout?: number
    ): void,
    each(
      ...table: Array<Array<mixed> | mixed> | [Array<string>, string]
    ): (
      name: JestTestName,
      fn?: (...args: Array<any>) => ?Promise<mixed>,
      timeout?: number
    ) => void
  |},

  /**
   * Skip running this test
   *
   * @param {JestTestName} Name of Test
   * @param {Function} Test
   * @param {number} Timeout for the test, in milliseconds.
   */
  skip(
    name: JestTestName,
    fn?: (done: JestDoneFn) => ?Promise<mixed>,
    timeout?: number
  ): void,

  /**
   * Highlight planned tests in the summary output
   *
   * @param {String} Name of Test to do
   */
  todo(name: string): void,

  /**
   * Run the test concurrently
   *
   * @param {JestTestName} Name of Test
   * @param {Function} Test
   * @param {number} Timeout for the test, in milliseconds.
   */
  concurrent(
    name: JestTestName,
    fn?: (done: JestDoneFn) => ?Promise<mixed>,
    timeout?: number
  ): void,

  /**
   * each runs this test against array of argument arrays per each run
   *
   * @param {table} table of Test
   */
  each(
    ...table: Array<Array<mixed> | mixed> | [Array<string>, string]
  ): (
    name: JestTestName,
    fn?: (...args: Array<any>) => ?Promise<mixed>,
    timeout?: number
  ) => void,
};

declare function fit(
  name: JestTestName,
  fn: (done: JestDoneFn) => ?Promise<mixed>,
  timeout?: number
): void;
/** An individual test unit */
declare var test: typeof it;
/** A disabled group of tests */
declare var xdescribe: typeof describe;
/** A focused group of tests */
declare var fdescribe: typeof describe;
/** A disabled individual test */
declare var xit: typeof it;
/** A disabled individual test */
declare var xtest: typeof it;

type JestPrettyFormatColors = {
  comment: { close: string, open: string },
  content: { close: string, open: string },
  prop: { close: string, open: string },
  tag: { close: string, open: string },
  value: { close: string, open: string },
};

type JestPrettyFormatIndent = string => string;
type JestPrettyFormatRefs = Array<any>;
type JestPrettyFormatPrint = any => string;
type JestPrettyFormatStringOrNull = string | null;

type JestPrettyFormatOptions = {|
  callToJSON: boolean,
  edgeSpacing: string,
  escapeRegex: boolean,
  highlight: boolean,
  indent: number,
  maxDepth: number,
  min: boolean,
  plugins: JestPrettyFormatPlugins,
  printFunctionName: boolean,
  spacing: string,
  theme: {|
    comment: string,
    content: string,
    prop: string,
    tag: string,
    value: string,
  |},
|};

type JestPrettyFormatPlugin = {
  print: (
    val: any,
    serialize: JestPrettyFormatPrint,
    indent: JestPrettyFormatIndent,
    opts: JestPrettyFormatOptions,
    colors: JestPrettyFormatColors
  ) => string,
  test: any => boolean,
};

type JestPrettyFormatPlugins = Array<JestPrettyFormatPlugin>;

/** The expect function is used every time you want to test a value */
declare var expect: {
  /** The object that you want to make assertions against */
  (
    value: any
  ): JestExpectType &
    JestPromiseType &
    EnzymeMatchersType &
    DomTestingLibraryType &
    JestJQueryMatchersType &
    JestStyledComponentsMatchersType &
    JestExtendedMatchersType &
    SnapshotDiffType,

  /** Add additional Jasmine matchers to Jest's roster */
  extend(matchers: { [name: string]: JestMatcher }): void,
  /** Add a module that formats application-specific data structures. */
  addSnapshotSerializer(pluginModule: JestPrettyFormatPlugin): void,
  assertions(expectedAssertions: number): void,
  hasAssertions(): void,
  any(value: mixed): JestAsymmetricEqualityType,
  anything(): any,
  arrayContaining(value: Array<mixed>): Array<mixed>,
  objectContaining(value: Object): Object,
  /** Matches any received string that contains the exact expected string. */
  stringContaining(value: string): string,
  stringMatching(value: string | RegExp): string,
  not: {
    arrayContaining: (value: $ReadOnlyArray<mixed>) => Array<mixed>,
    objectContaining: (value: {}) => Object,
    stringContaining: (value: string) => string,
    stringMatching: (value: string | RegExp) => string,
  },
};

// TODO handle return type
// http://jasmine.github.io/2.4/introduction.html#section-Spies
declare function spyOn(value: mixed, method: string): Object;

/** Holds all functions related to manipulating test runner */
declare var jest: JestObjectType;

/**
 * The global Jasmine object, this is generally not exposed as the public API,
 * using features inside here could break in later versions of Jest.
 */
declare var jasmine: {
  DEFAULT_TIMEOUT_INTERVAL: number,
  any(value: mixed): JestAsymmetricEqualityType,
  anything(): any,
  arrayContaining(value: Array<mixed>): Array<mixed>,
  clock(): JestClockType,
  createSpy(name: string): J
Download .txt
gitextract_a_krbaur/

├── .babelrc.js
├── .codeclimate.yml
├── .editorconfig
├── .eslintignore
├── .eslintrc
├── .flowconfig
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── 1-bug.md
│   │   ├── 2-feature.md
│   │   └── config.yml
│   ├── funding.yml
│   ├── lock.yml
│   ├── pull-request-template.md
│   ├── security.md
│   ├── stale.yml
│   └── support.md
├── .gitignore
├── .npmignore
├── .nvmrc
├── .prettierignore
├── .prettierrc
├── .size-limit.json
├── .travis.yml
├── CHANGELOG.md
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE
├── README.md
├── docs/
│   ├── DocumentationVersions.md
│   ├── Flow.md
│   ├── GettingStarted.md
│   ├── MigrationGuide.md
│   ├── ValueLifecycle.md
│   ├── api/
│   │   ├── ActionCreators.md
│   │   ├── Field.md
│   │   ├── FieldArray.md
│   │   ├── Fields.md
│   │   ├── Form.md
│   │   ├── FormName.md
│   │   ├── FormSection.md
│   │   ├── FormValueSelector.md
│   │   ├── FormValues.md
│   │   ├── Props.md
│   │   ├── README.md
│   │   ├── Reducer.md
│   │   ├── ReducerPlugin.md
│   │   ├── ReduxForm.md
│   │   ├── ReduxFormContext.md
│   │   ├── Selectors.md
│   │   └── SubmissionError.md
│   ├── faq/
│   │   ├── BundleSize.md
│   │   ├── ButtonType.md
│   │   ├── CustomComponent.md
│   │   ├── EnterToSubmit.md
│   │   ├── HandleVsOn.md
│   │   ├── HowToClear.md
│   │   ├── HowToConnect.md
│   │   ├── ImmutableJs.md
│   │   ├── README.md
│   │   ├── ReactNative.md
│   │   ├── SubmitFunction.md
│   │   └── WebsocketSubmit.md
│   └── sponsor.json
├── flow-typed/
│   └── npm/
│       ├── jest_v25.x.x.js
│       ├── lodash_v4.x.x.js
│       └── redux_v4.x.x.js
├── immutable.js
├── package.json
├── scripts/
│   └── patch-immutable-flow-error.js
├── src/
│   ├── ConnectedField.js
│   ├── ConnectedField.types.js.flow
│   ├── ConnectedFieldArray.js
│   ├── ConnectedFieldArray.types.js.flow
│   ├── ConnectedFields.js
│   ├── ConnectedFields.types.js.flow
│   ├── Field.js
│   ├── FieldArray.js
│   ├── FieldArrayProps.types.js.flow
│   ├── FieldProps.types.js.flow
│   ├── Fields.js
│   ├── FieldsProps.types.js.flow
│   ├── Form.js
│   ├── FormName.js
│   ├── FormNameProps.types.js.flow
│   ├── FormSection.js
│   ├── ReduxFormContext.js
│   ├── SubmissionError.js
│   ├── __tests__/
│   │   ├── Field.spec.js
│   │   ├── FieldArray.spec.js
│   │   ├── Fields.spec.js
│   │   ├── Form.spec.js
│   │   ├── FormName.spec.js
│   │   ├── FormSection.spec.js
│   │   ├── SubmissionError.spec.js
│   │   ├── actions.spec.js
│   │   ├── asyncValidation.spec.js
│   │   ├── createFieldArrayProps.spec.js
│   │   ├── createFieldProps.spec.js
│   │   ├── defaultShouldAsyncValidate.spec.js
│   │   ├── defaultShouldError.spec.js
│   │   ├── defaultShouldValidate.spec.js
│   │   ├── defaultShouldWarn.spec.js
│   │   ├── deleteInWithCleanUp.spec.js
│   │   ├── formValueSelector.spec.js
│   │   ├── formValues.spec.js
│   │   ├── generateValidator.spec.js
│   │   ├── handleSubmit.spec.js
│   │   ├── hasError.spec.js
│   │   ├── helpers/
│   │   │   ├── reducer.arrayInsert.js
│   │   │   ├── reducer.arrayMove.js
│   │   │   ├── reducer.arrayPop.js
│   │   │   ├── reducer.arrayPush.js
│   │   │   ├── reducer.arrayRemove.js
│   │   │   ├── reducer.arrayRemoveAll.js
│   │   │   ├── reducer.arrayShift.js
│   │   │   ├── reducer.arraySplice.js
│   │   │   ├── reducer.arraySwap.js
│   │   │   ├── reducer.arrayUnshift.js
│   │   │   ├── reducer.autofill.js
│   │   │   ├── reducer.blur.js
│   │   │   ├── reducer.change.js
│   │   │   ├── reducer.clearAsyncError.js
│   │   │   ├── reducer.clearFields.js
│   │   │   ├── reducer.clearSubmit.js
│   │   │   ├── reducer.clearSubmitErrors.js
│   │   │   ├── reducer.destroy.js
│   │   │   ├── reducer.focus.js
│   │   │   ├── reducer.initialize.js
│   │   │   ├── reducer.plugin.js
│   │   │   ├── reducer.registerField.js
│   │   │   ├── reducer.reset.js
│   │   │   ├── reducer.resetSection.js
│   │   │   ├── reducer.setSubmitFailed.js
│   │   │   ├── reducer.setSubmitSuceeded.js
│   │   │   ├── reducer.startAsyncValidation.js
│   │   │   ├── reducer.startSubmit.js
│   │   │   ├── reducer.stopAsyncValidation.js
│   │   │   ├── reducer.stopSubmit.js
│   │   │   ├── reducer.submit.js
│   │   │   ├── reducer.touch.js
│   │   │   ├── reducer.unregisterField.js
│   │   │   ├── reducer.untouch.js
│   │   │   ├── reducer.updateSyncErrors.js
│   │   │   └── reducer.updateSyncWarnings.js
│   │   ├── immutable.spec.js
│   │   ├── index.spec.js
│   │   ├── reducer.spec.js
│   │   ├── reduxForm.spec.js
│   │   ├── reduxFormContext.spec.js
│   │   └── values.spec.js
│   ├── actionTypes.js
│   ├── actionTypes.types.js.flow
│   ├── actions.js
│   ├── actions.types.js.flow
│   ├── asyncValidation.js
│   ├── createField.js
│   ├── createFieldArray.js
│   ├── createFieldArrayProps.js
│   ├── createFieldProps.js
│   ├── createFields.js
│   ├── createFormValueSelector.js
│   ├── createFormValues.js
│   ├── createReducer.js
│   ├── createReduxForm.js
│   ├── createValues.js
│   ├── defaultShouldAsyncValidate.js
│   ├── defaultShouldError.js
│   ├── defaultShouldValidate.js
│   ├── defaultShouldWarn.js
│   ├── deleteInWithCleanUp.js
│   ├── events/
│   │   ├── __tests__/
│   │   │   ├── getValue.spec.js
│   │   │   ├── isEvent.spec.js
│   │   │   ├── onChangeValue.spec.js
│   │   │   ├── silenceEvent.spec.js
│   │   │   └── silenceEvents.spec.js
│   │   ├── getValue.js
│   │   ├── isEvent.js
│   │   ├── onChangeValue.js
│   │   ├── silenceEvent.js
│   │   └── silenceEvents.js
│   ├── fieldKeys.js
│   ├── formValueSelector.js
│   ├── formValueSelector.types.js.flow
│   ├── formValues.js
│   ├── formValues.types.js.flow
│   ├── generateFields.js
│   ├── generateValidator.js
│   ├── getFormAsyncErrors.js
│   ├── getFormError.js
│   ├── getFormInitialValues.js
│   ├── getFormMeta.js
│   ├── getFormNames.js
│   ├── getFormSubmitErrors.js
│   ├── getFormSyncErrors.js
│   ├── getFormSyncWarnings.js
│   ├── getFormValues.js
│   ├── handleSubmit.js
│   ├── hasError.js
│   ├── hasSubmitFailed.js
│   ├── hasSubmitSucceeded.js
│   ├── immutable/
│   │   ├── Field.js
│   │   ├── FieldArray.js
│   │   ├── Fields.js
│   │   ├── formValueSelector.js
│   │   ├── formValues.js
│   │   ├── getFormAsyncErrors.js
│   │   ├── getFormError.js
│   │   ├── getFormInitialValues.js
│   │   ├── getFormMeta.js
│   │   ├── getFormNames.js
│   │   ├── getFormSubmitErrors.js
│   │   ├── getFormSyncErrors.js
│   │   ├── getFormSyncWarnings.js
│   │   ├── getFormValues.js
│   │   ├── hasSubmitFailed.js
│   │   ├── hasSubmitSucceeded.js
│   │   ├── isAsyncValidating.js
│   │   ├── isDirty.js
│   │   ├── isInvalid.js
│   │   ├── isPristine.js
│   │   ├── isSubmitting.js
│   │   ├── isValid.js
│   │   ├── reducer.js
│   │   ├── reduxForm.js
│   │   └── values.js
│   ├── immutable.js
│   ├── immutable.js.flow
│   ├── index.js
│   ├── index.js.flow
│   ├── isAsyncValidating.js
│   ├── isDirty.js
│   ├── isInvalid.js
│   ├── isPristine.js
│   ├── isReactNative.js
│   ├── isSubmitting.js
│   ├── isValid.js
│   ├── propTypes.js
│   ├── reducer.js
│   ├── reduxForm.js
│   ├── selectors/
│   │   ├── __tests__/
│   │   │   ├── getFormAsyncErrors.spec.js
│   │   │   ├── getFormError.spec.js
│   │   │   ├── getFormInitialValues.spec.js
│   │   │   ├── getFormMeta.spec.js
│   │   │   ├── getFormNames.spec.js
│   │   │   ├── getFormSubmitErrors.spec.js
│   │   │   ├── getFormSyncErrors.spec.js
│   │   │   ├── getFormSyncWarnings.spec.js
│   │   │   ├── getFormValues.spec.js
│   │   │   ├── hasSubmitFailed.spec.js
│   │   │   ├── hasSubmitSucceeded.spec.js
│   │   │   ├── isAsyncValidating.spec.js
│   │   │   ├── isDirty.spec.js
│   │   │   ├── isInvalid.spec.js
│   │   │   ├── isPristine.spec.js
│   │   │   ├── isSubmitting.spec.js
│   │   │   └── isValid.spec.js
│   │   ├── getFormAsyncErrors.js
│   │   ├── getFormAsyncErrors.types.js.flow
│   │   ├── getFormError.js
│   │   ├── getFormError.types.js.flow
│   │   ├── getFormInitialValues.js
│   │   ├── getFormInitialValues.types.js.flow
│   │   ├── getFormMeta.js
│   │   ├── getFormMeta.types.js.flow
│   │   ├── getFormNames.js
│   │   ├── getFormNames.types.js.flow
│   │   ├── getFormSubmitErrors.js
│   │   ├── getFormSubmitErrors.types.js.flow
│   │   ├── getFormSyncErrors.js
│   │   ├── getFormSyncErrors.types.js.flow
│   │   ├── getFormSyncWarnings.js
│   │   ├── getFormSyncWarnings.types.js.flow
│   │   ├── getFormValues.js
│   │   ├── getFormValues.types.js.flow
│   │   ├── hasSubmitFailed.js
│   │   ├── hasSubmitFailed.types.js.flow
│   │   ├── hasSubmitSucceeded.js
│   │   ├── hasSubmitSucceeded.types.js.flow
│   │   ├── isAsyncValidating.js
│   │   ├── isAsyncValidating.types.js.flow
│   │   ├── isDirty.js
│   │   ├── isDirty.types.js.flow
│   │   ├── isInvalid.js
│   │   ├── isInvalid.types.js.flow
│   │   ├── isPristine.js
│   │   ├── isPristine.types.js.flow
│   │   ├── isSubmitting.js
│   │   ├── isSubmitting.types.js.flow
│   │   ├── isValid.js
│   │   └── isValid.types.js.flow
│   ├── structure/
│   │   ├── immutable/
│   │   │   ├── __tests__/
│   │   │   │   ├── deepEqual.spec.js
│   │   │   │   ├── expectations.js
│   │   │   │   ├── keys.spec.js
│   │   │   │   ├── setIn.spec.js
│   │   │   │   └── splice.spec.js
│   │   │   ├── deepEqual.js
│   │   │   ├── index.js
│   │   │   ├── keys.js
│   │   │   ├── setIn.js
│   │   │   └── splice.js
│   │   └── plain/
│   │       ├── __tests__/
│   │       │   ├── deepEqual.spec.js
│   │       │   ├── deleteIn.spec.js
│   │       │   ├── expectations.js
│   │       │   ├── getIn.spec.js
│   │       │   ├── keys.spec.js
│   │       │   ├── setIn.spec.js
│   │       │   └── splice.spec.js
│   │       ├── deepEqual.js
│   │       ├── deleteIn.js
│   │       ├── getIn.js
│   │       ├── index.js
│   │       ├── keys.js
│   │       ├── setIn.js
│   │       └── splice.js
│   ├── types.js.flow
│   ├── util/
│   │   ├── FormNameProps.types.js.flow.js
│   │   ├── __tests__/
│   │   │   ├── eventMocks.spec.js
│   │   │   ├── getDisplayName.spec.js
│   │   │   ├── prefixName.spec.js
│   │   │   └── shallowCompare.spec.js
│   │   ├── eventConsts.js
│   │   ├── eventMocks.js
│   │   ├── getDisplayName.js
│   │   ├── isHotReloading.js
│   │   ├── prefixName.js
│   │   ├── shallowCompare.js
│   │   └── validateComponentProp.js
│   ├── values.js
│   └── values.types.js.flow
├── tools.md
└── webpack.config.js
Download .txt
Showing preview only (555K chars total). Download the full file or copy to clipboard to get everything.
SYMBOL INDEX (634 symbols across 35 files)

FILE: src/ConnectedField.js
  function createConnectedField (line 40) | function createConnectedField<L, M>(structure: Structure<L, M>) {

FILE: src/ConnectedFieldArray.js
  function createConnectedFieldArray (line 16) | function createConnectedFieldArray(structure: Structure<any, any>) {

FILE: src/ConnectedFields.js
  function createConnectedFields (line 15) | function createConnectedFields(structure: Structure<any, any>) {

FILE: src/Form.js
  method constructor (line 14) | constructor(props: PropsWithContext) {
  method componentDidMount (line 21) | componentDidMount() {
  method componentDidUpdate (line 25) | componentDidUpdate(prevProps: Props) {
  method render (line 31) | render() {

FILE: src/FormSection.js
  method if (line 27) | if (!props._reduxForm) {

FILE: src/ReduxFormContext.js
  class Hoc (line 16) | class Hoc extends React.Component {
    method render (line 17) | render() {

FILE: src/SubmissionError.js
  class SubmissionError (line 6) | class SubmissionError extends ExtendableError {
    method constructor (line 11) | constructor(errors: Object) {
  function isSubmissionError (line 17) | function isSubmissionError(error: any): boolean {

FILE: src/__tests__/Field.spec.js
  class TestInput (line 29) | class TestInput extends Component {
    method render (line 30) | render() {
  class Form (line 37) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 73) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 364) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 391) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 418) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 448) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 475) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 505) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 526) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 555) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 593) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 627) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 659) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 695) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 732) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 752) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 774) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 803) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 838) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 888) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 927) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 976) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1031) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1085) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1120) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1155) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1194) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1233) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1272) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1311) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1350) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1387) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1415) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1455) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1483) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1512) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1540) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1573) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1614) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1654) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1772) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1845) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1894) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1948) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 1995) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 2035) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 2079) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 2132) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 2188) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  function testWeightValidator (line 2243) | function testWeightValidator(weightLimit) {
  class Form (line 2257) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 2300) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class InputComponent (line 2342) | class InputComponent extends Component {
    method render (line 2343) | render() {
  class Form (line 2361) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 2388) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 2427) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 2471) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 2515) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 2559) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 2603) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 2647) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 2691) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 2736) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 2782) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) | render() {
    method constructor (line 2189) | constructor() {
    method render (line 2197) | render() {
    method render (line 2258) | render() {
    method constructor (line 2301) | constructor() {
    method render (line 2306) | render() {
    method render (line 2362) | render() {
    method render (line 2389) | render() {
    method render (line 2428) | render() {
    method render (line 2472) | render() {
    method render (line 2516) | render() {
    method render (line 2560) | render() {
    method render (line 2604) | render() {
    method render (line 2648) | render() {
    method render (line 2692) | render() {
    method render (line 2737) | render() {
    method render (line 2783) | render() {
    method constructor (line 2826) | constructor() {
    method render (line 2837) | render() {
  class Form (line 2825) | class Form extends Component {
    method render (line 38) | render() {
    method render (line 74) | render() {
    method render (line 365) | render() {
    method render (line 392) | render() {
    method render (line 419) | render() {
    method render (line 449) | render() {
    method render (line 476) | render() {
    method render (line 506) | render() {
    method render (line 527) | render() {
    method render (line 556) | render() {
    method render (line 594) | render() {
    method render (line 628) | render() {
    method render (line 660) | render() {
    method constructor (line 696) | constructor() {
    method render (line 701) | render() {
    method render (line 733) | render() {
    method render (line 753) | render() {
    method render (line 775) | render() {
    method render (line 804) | render() {
    method constructor (line 839) | constructor() {
    method render (line 844) | render() {
    method constructor (line 889) | constructor() {
    method render (line 894) | render() {
    method constructor (line 928) | constructor() {
    method render (line 933) | render() {
    method render (line 977) | render() {
    method render (line 1032) | render() {
    method render (line 1086) | render() {
    method render (line 1121) | render() {
    method render (line 1156) | render() {
    method render (line 1195) | render() {
    method render (line 1234) | render() {
    method render (line 1273) | render() {
    method render (line 1312) | render() {
    method render (line 1351) | render() {
    method render (line 1388) | render() {
    method render (line 1416) | render() {
    method render (line 1456) | render() {
    method render (line 1484) | render() {
    method render (line 1513) | render() {
    method render (line 1541) | render() {
    method render (line 1574) | render() {
    method render (line 1615) | render() {
    method render (line 1655) | render() {
    method render (line 1773) | render() {
    method render (line 1846) | render() {
    method render (line 1895) | render() {
    method render (line 1949) | render() {
    method render (line 1996) | render() {
    method render (line 2036) | render() {
    method render (line 2080) | render() {
    method constructor (line 2133) | constructor() {
    method render (line 2138) 
Condensed preview — 330 files, each showing path, character count, and a content snippet. Download the .json file or copy for the full structured content (1,487K chars).
[
  {
    "path": ".babelrc.js",
    "chars": 426,
    "preview": "const isEs = process.env.BABEL_ENV === 'es'\n\nmodule.exports = {\n  presets: [\n    [\n      '@babel/preset-env',\n      {\n  "
  },
  {
    "path": ".codeclimate.yml",
    "chars": 521,
    "preview": "version: \"2\"         # required to adjust maintainability checks\nplugins:\n eslint:\n  enabled: true\n  channel: eslint-5\nc"
  },
  {
    "path": ".editorconfig",
    "chars": 234,
    "preview": "root = true\n\n[*]\ninsert_final_newline = true\ncharset = utf-8\nindent_style = space\nindent_size = 2\ntrim_trailing_whitespa"
  },
  {
    "path": ".eslintignore",
    "chars": 55,
    "preview": "flow-typed\nwebpack.config*.js\nnode_modules\ndist\nes\nlib\n"
  },
  {
    "path": ".eslintrc",
    "chars": 484,
    "preview": "{\n  \"extends\": [\"react-app\", \"plugin:import/errors\", \"plugin:import/warnings\"],\n  \"rules\": {\n    \"jsx-a11y/href-no-hash\""
  },
  {
    "path": ".flowconfig",
    "chars": 322,
    "preview": "[version]\n0.84.0\n\n[ignore]\n<PROJECT_ROOT>/dist/.*\n<PROJECT_ROOT>/es/.*\n<PROJECT_ROOT>/lib/.*\n\n[lints]\nall=warn\nunclear-t"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/1-bug.md",
    "chars": 1866,
    "preview": "---\nname: 🐛 Bug report\nabout: Create a report to help us improve\nlabels: bug\n---\n\n<!--\nOuch, sorry you’ve run into a bug"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/2-feature.md",
    "chars": 703,
    "preview": "---\nname: 🚀 Feature request\nabout: Suggest an idea for this project\nlabels: feature\n---\n\n<!--\nThank you for suggesting a"
  },
  {
    "path": ".github/ISSUE_TEMPLATE/config.yml",
    "chars": 335,
    "preview": "blank_issues_enabled: false\ncontact_links:\n  - name: ⛔️ Need help? Gitter Community Forum\n    url: https://gitter.im/eri"
  },
  {
    "path": ".github/funding.yml",
    "chars": 545,
    "preview": "# These are supported funding model platforms\n\ngithub: erikras\npatreon: erikras\nopen_collective: redux-form\nko_fi: # Rep"
  },
  {
    "path": ".github/lock.yml",
    "chars": 860,
    "preview": "# Configuration for lock-threads - https://github.com/dessant/lock-threads\n\n# Number of days of inactivity before a clos"
  },
  {
    "path": ".github/pull-request-template.md",
    "chars": 546,
    "preview": "<!--\nRead the [contributing guidelines](https://github.com/redux-form/redux-form/blob/master/CONTRIBUTING.md).\n\nWe are e"
  },
  {
    "path": ".github/security.md",
    "chars": 2351,
    "preview": "# Security policy\n\n> **Note**: this policy is new and untested.\n> We’ll update and polish it as we’re receiving security"
  },
  {
    "path": ".github/stale.yml",
    "chars": 1954,
    "preview": "# Configuration for probot-stale - https://github.com/probot/stale\n\n# Number of days of inactivity before an Issue or Pu"
  },
  {
    "path": ".github/support.md",
    "chars": 349,
    "preview": "# Support\n\nHi! 👋\nWe’re excited that you’re using **redux-form** and we’d love to help.\n\nPlease ask and answer questions "
  },
  {
    "path": ".gitignore",
    "chars": 115,
    "preview": ".idea\n.vscode\n*.iml\n.nyc_output\ncoverage\nflow-coverage\nnode_modules\ndist\nlib\nes\nnpm-debug.log\n.DS_Store\nstats.json\n"
  },
  {
    "path": ".npmignore",
    "chars": 133,
    "preview": "scripts\ndocs\n.babelrc\n.eslint*\n.idea\n.editorconfig\n.npmignore\n.nyc_output\n.travis.yml\nwebpack.*\ncoverage\npackage-lock.js"
  },
  {
    "path": ".nvmrc",
    "chars": 5,
    "preview": "8.10\n"
  },
  {
    "path": ".prettierignore",
    "chars": 11,
    "preview": "flow-typed\n"
  },
  {
    "path": ".prettierrc",
    "chars": 66,
    "preview": "semi: false\nsingleQuote: true\ntrailingComma: none\nprintWidth: 100\n"
  },
  {
    "path": ".size-limit.json",
    "chars": 250,
    "preview": "[\n  {\n    \"path\": \"lib/index.js\",\n    \"limit\": \"30 kb\"\n  },\n  {\n    \"path\": \"es/index.js\",\n    \"limit\": \"30 kb\"\n  },\n  {"
  },
  {
    "path": ".travis.yml",
    "chars": 112,
    "preview": "language: node_js\n\nnode_js:\n  - \"8\"\n  - \"9\"\n  - \"10\"\n  - \"stable\"\n\nscript:\n  - npm run validate\n  - npx codecov\n"
  },
  {
    "path": "CHANGELOG.md",
    "chars": 233,
    "preview": "# Change Log\n\nThis project adheres to [Semantic Versioning](http://semver.org/).  \nEvery release, along with the migrati"
  },
  {
    "path": "CODE_OF_CONDUCT.md",
    "chars": 3355,
    "preview": "# Contributor Covenant Code of Conduct\n\n## Our Pledge\n\nIn the interest of fostering an open and welcoming environment, w"
  },
  {
    "path": "CONTRIBUTING.md",
    "chars": 2330,
    "preview": "# Contributing\n\nWe are open to, and grateful for, any contributions made by the community.\n\n## Reporting issues and aski"
  },
  {
    "path": "LICENSE",
    "chars": 1081,
    "preview": "The MIT License (MIT)\n\nCopyright (c) 2015 Erik Rasmussen\n\nPermission is hereby granted, free of charge, to any person ob"
  },
  {
    "path": "README.md",
    "chars": 7944,
    "preview": "[<img src=\"https://raw.githubusercontent.com/redux-form/redux-form/master/logo.png\" align=\"right\" class=\"logo\" height=\"1"
  },
  {
    "path": "docs/DocumentationVersions.md",
    "chars": 2829,
    "preview": "# Documentation Versions\n\n- [8.2.1](https://redux-form.com/8.2.1/)\n- [8.1.0](https://redux-form.com/8.1.0/)\n- [7.4.2](ht"
  },
  {
    "path": "docs/Flow.md",
    "chars": 3211,
    "preview": "# Flow Typing\n\n`redux-form` supports static typing with [Flow](https://flow.org). Flow should\nautomatically import the t"
  },
  {
    "path": "docs/GettingStarted.md",
    "chars": 7079,
    "preview": "# Getting Started With `redux-form`\n\nThe basic implementation of `redux-form` is simple. However, to make the most of\nit"
  },
  {
    "path": "docs/MigrationGuide.md",
    "chars": 10035,
    "preview": "# `v5` → `v6` Migration Guide\n\n`redux-form` has been _completely_ rewritten for `v6`, because of a fundamental\ndesign ch"
  },
  {
    "path": "docs/ValueLifecycle.md",
    "chars": 1262,
    "preview": "# Understanding Field Value Lifecycle\n\nIt's important to understand how your field value is flowing through `redux-form`"
  },
  {
    "path": "docs/api/ActionCreators.md",
    "chars": 5779,
    "preview": "# Action Creators\n\n[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/actions.js)\n\n`redu"
  },
  {
    "path": "docs/api/Field.md",
    "chars": 16064,
    "preview": "# `Field`\n\n[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/Field.js)\n\nThe `Field` com"
  },
  {
    "path": "docs/api/FieldArray.md",
    "chars": 9869,
    "preview": "# `FieldArray`\n\n[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/FieldArray.js)\n\nThe `"
  },
  {
    "path": "docs/api/Fields.md",
    "chars": 8901,
    "preview": "# `Fields`\n\n[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/Fields.js)\n\nThe `Fields` "
  },
  {
    "path": "docs/api/Form.md",
    "chars": 1254,
    "preview": "# `Form`\n\nThe `Form` component is a simple wrapper for the React `<form>` component that\nallows the surrounding `redux-f"
  },
  {
    "path": "docs/api/FormName.md",
    "chars": 716,
    "preview": "# `FormName`\n\nThe `FormName` component allows you to get the name of the form in context - the name given to the enclosi"
  },
  {
    "path": "docs/api/FormSection.md",
    "chars": 3783,
    "preview": "# `FormSection`\n\nThe `FormSection` component makes it easy to split forms into smaller components that are reusable acro"
  },
  {
    "path": "docs/api/FormValueSelector.md",
    "chars": 2797,
    "preview": "# `formValueSelector(form:String, [getFormState:Function])`\n\n[`View source on GitHub`](https://github.com/redux-form/red"
  },
  {
    "path": "docs/api/FormValues.md",
    "chars": 1852,
    "preview": "# `formValues(options:Object<String, String> | valuesMapper:Function | name1:String, name2:String, ...)`\n\n[`View source "
  },
  {
    "path": "docs/api/Props.md",
    "chars": 9686,
    "preview": "# `props`\n\n[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/reduxForm.js#L347)\n\n> The "
  },
  {
    "path": "docs/api/README.md",
    "chars": 3167,
    "preview": "# API\n\n## [`reduxForm(config:Object)`](ReduxForm.md)\n\n> The decorator you use to connect your form component to Redux.\n>"
  },
  {
    "path": "docs/api/Reducer.md",
    "chars": 1278,
    "preview": "# `reducer`\n\n[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/reducer.js)\n\n> The form "
  },
  {
    "path": "docs/api/ReducerPlugin.md",
    "chars": 2418,
    "preview": "# `reducer.plugin(Object<String, Function>)`\n\n[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/ma"
  },
  {
    "path": "docs/api/ReduxForm.md",
    "chars": 14797,
    "preview": "# `reduxForm(config:Object)`\n\n[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/reduxFo"
  },
  {
    "path": "docs/api/ReduxFormContext.md",
    "chars": 2680,
    "preview": "# `ReduxFormContext`\n\n[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/ReduxFormContex"
  },
  {
    "path": "docs/api/Selectors.md",
    "chars": 4900,
    "preview": "# Selectors\n\n[`View source on GitHub`](https://github.com/redux-form/redux-form/tree/master/src/selectors)\n\n`redux-form`"
  },
  {
    "path": "docs/api/SubmissionError.md",
    "chars": 1351,
    "preview": "# `SubmissionError`\n\n[`View source on GitHub`](https://github.com/redux-form/redux-form/blob/master/src/SubmissionError."
  },
  {
    "path": "docs/faq/BundleSize.md",
    "chars": 1887,
    "preview": "# How to reduce `redux-form`'s bundle size?\n\nFor convenience, Redux Form exposes its full API on the top-level `redux-fo"
  },
  {
    "path": "docs/faq/ButtonType.md",
    "chars": 924,
    "preview": "# Why are all my buttons triggering `onSubmit`?\n\nYou may want to add a 'reset' or 'cancel' button to your form. When doi"
  },
  {
    "path": "docs/faq/CustomComponent.md",
    "chars": 1160,
    "preview": "# Will `redux-form` work with my custom input component?\n  \nThe minimum interface needed for a custom component to work "
  },
  {
    "path": "docs/faq/EnterToSubmit.md",
    "chars": 1175,
    "preview": "# How can I submit my form when the user presses Enter?\n  \nThe default browser behavior for `text` and `password` inputs"
  },
  {
    "path": "docs/faq/HandleVsOn.md",
    "chars": 2245,
    "preview": "# What's the difference between `handleSubmit` and `onSubmit`?\n\nFrom what I can tell from every example I have seen, the"
  },
  {
    "path": "docs/faq/HowToClear.md",
    "chars": 1994,
    "preview": "# How can I clear my form after my submission succeeds?\n  \nExcellent question. You have several options:\n\n### A) You can"
  },
  {
    "path": "docs/faq/HowToConnect.md",
    "chars": 540,
    "preview": "# How do I `mapStateToProps` or `mapDispatchToProps`?\n\nBetter to show with an example:\n\n```javascript\nimport React, { Co"
  },
  {
    "path": "docs/faq/ImmutableJs.md",
    "chars": 407,
    "preview": "# Does `redux-form` work with ImmutableJS?\n  \nYes!\n\nAs of `v6`, `redux-form` has support for ImmutableJS built in.\n\nSimp"
  },
  {
    "path": "docs/faq/README.md",
    "chars": 899,
    "preview": "# Frequently Asked Questions\n\nBelow is a list of common problems or questions that people have using `redux-form`.\n\n1. ["
  },
  {
    "path": "docs/faq/ReactNative.md",
    "chars": 435,
    "preview": "# Does `redux-form` work with React Native?\n\nYes, it does!  \nMost of Redux Form will work just fine.\n\nHowever, there are"
  },
  {
    "path": "docs/faq/SubmitFunction.md",
    "chars": 448,
    "preview": "# My submit function isn't being called! Help?\n\nPossible causes:\n\n* Your synchronous validation function is not returnin"
  },
  {
    "path": "docs/faq/WebsocketSubmit.md",
    "chars": 1504,
    "preview": "# Can I submit my form using websockets?\n\nYes. `redux-form` has built-in support for managing `submitting` state and err"
  },
  {
    "path": "docs/sponsor.json",
    "chars": 167,
    "preview": "{\n  \"id\": \"e5e4ba227e6bbdf32c6df4a7778c84f1\",\n  \"copy\": \"<strong>Rollbar</strong>: Real-time JavaScript error monitoring"
  },
  {
    "path": "flow-typed/npm/jest_v25.x.x.js",
    "chars": 35557,
    "preview": "// flow-typed signature: f3e5d388b2c86a25ffee45e89bc98e87\n// flow-typed version: dd2428a21d/jest_v25.x.x/flow_>=v0.39.x "
  },
  {
    "path": "flow-typed/npm/lodash_v4.x.x.js",
    "chars": 192470,
    "preview": "// flow-typed signature: 4d0c9ba43b5b639df7e1f9c70d835f29\n// flow-typed version: 48347c4ce3/lodash_v4.x.x/flow_>=v0.63.x"
  },
  {
    "path": "flow-typed/npm/redux_v4.x.x.js",
    "chars": 2439,
    "preview": "// flow-typed signature: 2b5fc6522f4de5de565387505e5961a4\n// flow-typed version: be9ff9d3ab/redux_v4.x.x/flow_>=v0.55.x "
  },
  {
    "path": "immutable.js",
    "chars": 44,
    "preview": "module.exports = require('./lib/immutable')\n"
  },
  {
    "path": "package.json",
    "chars": 4781,
    "preview": "{\n  \"name\": \"redux-form\",\n  \"version\": \"8.3.10\",\n  \"description\": \"A higher order component decorator for forms using Re"
  },
  {
    "path": "scripts/patch-immutable-flow-error.js",
    "chars": 411,
    "preview": "const insertLine = require('insert-line')\n\n// Sorry you had to come look at this. It's embarrassing.\n// This abomination"
  },
  {
    "path": "src/ConnectedField.js",
    "chars": 10437,
    "preview": "// @flow\nimport React, { Component, createElement } from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } f"
  },
  {
    "path": "src/ConnectedField.types.js.flow",
    "chars": 1324,
    "preview": "// @flow\nimport type {Node, Component} from 'react'\nimport type { Event, Context } from './types'\n\nexport type InstanceA"
  },
  {
    "path": "src/ConnectedFieldArray.js",
    "chars": 6090,
    "preview": "// @flow\nimport React, { Component, createElement } from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } f"
  },
  {
    "path": "src/ConnectedFieldArray.types.js.flow",
    "chars": 1368,
    "preview": "// @flow\nimport type {Node, Component} from 'react'\nimport type { Context } from './types'\n\nexport type Props = {\n  name"
  },
  {
    "path": "src/ConnectedFields.js",
    "chars": 6776,
    "preview": "// @flow\nimport React from 'react'\nimport PropTypes from 'prop-types'\nimport { connect } from 'react-redux'\nimport creat"
  },
  {
    "path": "src/ConnectedFields.types.js.flow",
    "chars": 1253,
    "preview": "// @flow\nimport type { Node } from 'react'\nimport type { Structure, Event, Context } from './types'\n\nexport type Props ="
  },
  {
    "path": "src/Field.js",
    "chars": 122,
    "preview": "// @flow\nimport createField from './createField'\nimport plain from './structure/plain'\n\nexport default createField(plain"
  },
  {
    "path": "src/FieldArray.js",
    "chars": 137,
    "preview": "// @flow\nimport createFieldArray from './createFieldArray'\nimport plain from './structure/plain'\n\nexport default createF"
  },
  {
    "path": "src/FieldArrayProps.types.js.flow",
    "chars": 1223,
    "preview": "// @flow\nimport type { ElementType, ElementRef, ComponentType } from 'react'\n\nexport type Props = {\n  name: string,\n  co"
  },
  {
    "path": "src/FieldProps.types.js.flow",
    "chars": 2137,
    "preview": "// @flow\nimport type { Dispatch } from 'redux'\nimport type { Event, Validator } from './types'\nimport type { ComponentTy"
  },
  {
    "path": "src/Fields.js",
    "chars": 125,
    "preview": "// @flow\nimport createFields from './createFields'\nimport plain from './structure/plain'\n\nexport default createFields(pl"
  },
  {
    "path": "src/FieldsProps.types.js.flow",
    "chars": 481,
    "preview": "// @flow\nimport type { ComponentType } from 'react'\nimport type { Validator } from './types'\n\nexport type WarnAndValidat"
  },
  {
    "path": "src/Form.js",
    "chars": 1003,
    "preview": "// @flow\nimport React, { Component } from 'react'\nimport PropTypes from 'prop-types'\nimport { withReduxForm } from './Re"
  },
  {
    "path": "src/FormName.js",
    "chars": 518,
    "preview": "// @flow\nimport * as React from 'react'\nimport { withReduxForm } from './ReduxFormContext'\nimport type { ReactContext } "
  },
  {
    "path": "src/FormNameProps.types.js.flow",
    "chars": 113,
    "preview": "// @flow\n\nimport type {Node} from 'react'\n\nexport type Props = {\n  +children: (props: {form: string}) => Node,\n}\n"
  },
  {
    "path": "src/FormSection.js",
    "chars": 1709,
    "preview": "// @flow\nimport React, { createElement, Component } from 'react'\nimport PropTypes from 'prop-types'\nimport prefixName fr"
  },
  {
    "path": "src/ReduxFormContext.js",
    "chars": 713,
    "preview": "import * as React from 'react'\n\nexport const ReduxFormContext = React.createContext(null)\n\nexport const renderChildren ="
  },
  {
    "path": "src/SubmissionError.js",
    "chars": 476,
    "preview": "// @flow\nimport ExtendableError from 'es6-error'\n\nconst __FLAG__ = '@@redux-form/submission-error-flag'\n\nexport class Su"
  },
  {
    "path": "src/__tests__/Field.spec.js",
    "chars": 85705,
    "preview": "/* eslint react/no-multi-comp:0 */\nimport React, { Component } from 'react'\nimport { Provider } from 'react-redux'\nimpor"
  },
  {
    "path": "src/__tests__/FieldArray.spec.js",
    "chars": 74338,
    "preview": "/* eslint react/no-multi-comp:0 */\nimport React, { Component } from 'react'\nimport TestUtils from 'react-dom/test-utils'"
  },
  {
    "path": "src/__tests__/Fields.spec.js",
    "chars": 55911,
    "preview": "/* eslint react/no-multi-comp:0 */\nimport React, { Component } from 'react'\nimport { Provider } from 'react-redux'\nimpor"
  },
  {
    "path": "src/__tests__/Form.spec.js",
    "chars": 11219,
    "preview": "/* eslint react/no-multi-comp:0 */\nimport React, { Component } from 'react'\nimport { Provider } from 'react-redux'\nimpor"
  },
  {
    "path": "src/__tests__/FormName.spec.js",
    "chars": 2196,
    "preview": "/* eslint react/no-multi-comp:0 */\nimport React, { Component } from 'react'\nimport { findDOMNode } from 'react-dom'\nimpo"
  },
  {
    "path": "src/__tests__/FormSection.spec.js",
    "chars": 11031,
    "preview": "/* eslint react/no-multi-comp:0 */\nimport React, { Component } from 'react'\nimport { Provider } from 'react-redux'\nimpor"
  },
  {
    "path": "src/__tests__/SubmissionError.spec.js",
    "chars": 687,
    "preview": "// @flow\n\nimport ExtendableError from 'es6-error'\nimport { isSubmissionError, SubmissionError } from '../SubmissionError"
  },
  {
    "path": "src/__tests__/actions.spec.js",
    "chars": 16583,
    "preview": "import {\n  ARRAY_INSERT,\n  ARRAY_MOVE,\n  ARRAY_POP,\n  ARRAY_PUSH,\n  ARRAY_REMOVE,\n  ARRAY_REMOVE_ALL,\n  ARRAY_SHIFT,\n  A"
  },
  {
    "path": "src/__tests__/asyncValidation.spec.js",
    "chars": 1894,
    "preview": "import isPromise from 'is-promise'\nimport { noop } from 'lodash'\nimport asyncValidation from '../asyncValidation'\n\ndescr"
  },
  {
    "path": "src/__tests__/createFieldArrayProps.spec.js",
    "chars": 12551,
    "preview": "import createFieldArrayProps from '../createFieldArrayProps'\nimport plain from '../structure/plain'\nimport plainExpectat"
  },
  {
    "path": "src/__tests__/createFieldProps.spec.js",
    "chars": 15137,
    "preview": "import createFieldProps from '../createFieldProps'\nimport plain from '../structure/plain'\nimport plainExpectations from "
  },
  {
    "path": "src/__tests__/defaultShouldAsyncValidate.spec.js",
    "chars": 1515,
    "preview": "import defaultShouldAsyncValidate from '../defaultShouldAsyncValidate'\n\ndescribe('defaultShouldAsyncValidate', () => {\n "
  },
  {
    "path": "src/__tests__/defaultShouldError.spec.js",
    "chars": 2200,
    "preview": "import plain from '../structure/plain'\nimport immutable from '../structure/immutable'\nimport defaultShouldError from '.."
  },
  {
    "path": "src/__tests__/defaultShouldValidate.spec.js",
    "chars": 2233,
    "preview": "import plain from '../structure/plain'\nimport immutable from '../structure/immutable'\nimport defaultShouldValidate from "
  },
  {
    "path": "src/__tests__/defaultShouldWarn.spec.js",
    "chars": 2169,
    "preview": "import plain from '../structure/plain'\nimport immutable from '../structure/immutable'\nimport defaultShouldWarn from '../"
  },
  {
    "path": "src/__tests__/deleteInWithCleanUp.spec.js",
    "chars": 3846,
    "preview": "import createDeleteInWithCleanUp from '../deleteInWithCleanUp'\nimport plain from '../structure/plain'\nimport plainExpect"
  },
  {
    "path": "src/__tests__/formValueSelector.spec.js",
    "chars": 6254,
    "preview": "/* eslint react/no-multi-comp:0 */\nimport createFormValueSelector from '../createFormValueSelector'\nimport plain from '."
  },
  {
    "path": "src/__tests__/formValues.spec.js",
    "chars": 5384,
    "preview": "/* eslint react/no-multi-comp:0 */\nimport React from 'react'\nimport { Provider } from 'react-redux'\nimport { combineRedu"
  },
  {
    "path": "src/__tests__/generateValidator.spec.js",
    "chars": 9246,
    "preview": "import generateValidator from '../generateValidator'\nimport plain from '../structure/plain'\nimport plainExpectations fro"
  },
  {
    "path": "src/__tests__/handleSubmit.spec.js",
    "chars": 18001,
    "preview": "import handleSubmit from '../handleSubmit'\nimport { SubmissionError } from '../SubmissionError'\nimport { noop } from 'lo"
  },
  {
    "path": "src/__tests__/hasError.spec.js",
    "chars": 4927,
    "preview": "import createHasError from '../hasError'\nimport plain from '../structure/plain'\nimport plainExpectations from '../struct"
  },
  {
    "path": "src/__tests__/helpers/reducer.arrayInsert.js",
    "chars": 3234,
    "preview": "import actions from '../../actions'\nconst { arrayInsert } = actions\n\nconst describeArrayInsert = (reducer, expect, { fro"
  },
  {
    "path": "src/__tests__/helpers/reducer.arrayMove.js",
    "chars": 2035,
    "preview": "import actions from '../../actions'\nconst { arrayMove } = actions\n\nconst describeArrayMove = (reducer, expect, { fromJS "
  },
  {
    "path": "src/__tests__/helpers/reducer.arrayPop.js",
    "chars": 1336,
    "preview": "import actions from '../../actions'\nconst { arrayPop } = actions\n\nconst describeArrayPop = (reducer, expect, { fromJS })"
  },
  {
    "path": "src/__tests__/helpers/reducer.arrayPush.js",
    "chars": 2296,
    "preview": "import actions from '../../actions'\nconst { arrayPush } = actions\n\nconst describeArrayPush = (reducer, expect, { fromJS "
  },
  {
    "path": "src/__tests__/helpers/reducer.arrayRemove.js",
    "chars": 14716,
    "preview": "import actions from '../../actions'\nconst { arrayRemove } = actions\n\nconst describeArrayRemove = (reducer, expect, { fro"
  },
  {
    "path": "src/__tests__/helpers/reducer.arrayRemoveAll.js",
    "chars": 2070,
    "preview": "import actions from '../../actions'\nconst { arrayRemoveAll } = actions\n\nconst describeArrayRemoveAll = (reducer, expect,"
  },
  {
    "path": "src/__tests__/helpers/reducer.arrayShift.js",
    "chars": 1116,
    "preview": "import actions from '../../actions'\nconst { arrayShift } = actions\n\nconst describeArrayShift = (reducer, expect, { fromJ"
  },
  {
    "path": "src/__tests__/helpers/reducer.arraySplice.js",
    "chars": 7279,
    "preview": "import actions from '../../actions'\nconst { arraySplice } = actions\n\nconst describeArraySplice = (reducer, expect, { fro"
  },
  {
    "path": "src/__tests__/helpers/reducer.arraySwap.js",
    "chars": 2007,
    "preview": "import actions from '../../actions'\nconst { arraySwap } = actions\n\nconst describeArraySwap = (reducer, expect, { fromJS "
  },
  {
    "path": "src/__tests__/helpers/reducer.arrayUnshift.js",
    "chars": 1358,
    "preview": "import actions from '../../actions'\nconst { arrayUnshift } = actions\n\nconst describeArrayUnshift = (reducer, expect, { f"
  },
  {
    "path": "src/__tests__/helpers/reducer.autofill.js",
    "chars": 1817,
    "preview": "import actions from '../../actions'\nconst { autofill, change } = actions\n\nconst describeBlur = (reducer, expect, { fromJ"
  },
  {
    "path": "src/__tests__/helpers/reducer.blur.js",
    "chars": 8894,
    "preview": "import actions from '../../actions'\nconst { blur } = actions\n\nconst describeBlur = (reducer, expect, { fromJS, setIn }) "
  },
  {
    "path": "src/__tests__/helpers/reducer.change.js",
    "chars": 6654,
    "preview": "import actions from '../../actions'\nconst { change } = actions\n\nconst describeChange = (reducer, expect, { fromJS }) => "
  },
  {
    "path": "src/__tests__/helpers/reducer.clearAsyncError.js",
    "chars": 843,
    "preview": "import actions from '../../actions'\nconst { clearAsyncError } = actions\n\nconst describeClearAsyncError = (reducer, expec"
  },
  {
    "path": "src/__tests__/helpers/reducer.clearFields.js",
    "chars": 11473,
    "preview": "import actions from '../../actions'\nconst { clearFields } = actions\n\nconst describeClearFields = (reducer, expect, { fro"
  },
  {
    "path": "src/__tests__/helpers/reducer.clearSubmit.js",
    "chars": 1250,
    "preview": "import actions from '../../actions'\nconst { clearSubmit } = actions\n\nconst describeClearSubmit = (reducer, expect, { fro"
  },
  {
    "path": "src/__tests__/helpers/reducer.clearSubmitErrors.js",
    "chars": 1417,
    "preview": "import actions from '../../actions'\nconst { clearSubmitErrors } = actions\n\nconst describeClearSubmitErrors = (reducer, e"
  },
  {
    "path": "src/__tests__/helpers/reducer.destroy.js",
    "chars": 1124,
    "preview": "import actions from '../../actions'\nconst { destroy } = actions\n\nconst describeDestroy = (reducer, expect, { fromJS }) ="
  },
  {
    "path": "src/__tests__/helpers/reducer.focus.js",
    "chars": 1850,
    "preview": "import actions from '../../actions'\nconst { focus } = actions\n\nconst describeFocus = (reducer, expect, { fromJS }) => ()"
  },
  {
    "path": "src/__tests__/helpers/reducer.initialize.js",
    "chars": 15332,
    "preview": "import actions from '../../actions'\nconst { initialize } = actions\n\nconst describeInitialize = (reducer, expect, { fromJ"
  },
  {
    "path": "src/__tests__/helpers/reducer.plugin.js",
    "chars": 5663,
    "preview": "import { CHANGE } from '../../actionTypes'\nimport actions from '../../actions'\nconst { change } = actions\n\nconst describ"
  },
  {
    "path": "src/__tests__/helpers/reducer.registerField.js",
    "chars": 1467,
    "preview": "import actions from '../../actions'\nconst { registerField } = actions\n\nconst describeRegisterField = (reducer, expect, {"
  },
  {
    "path": "src/__tests__/helpers/reducer.reset.js",
    "chars": 3142,
    "preview": "import actions from '../../actions'\nconst { reset } = actions\n\nconst describeReset = (reducer, expect, { fromJS }) => ()"
  },
  {
    "path": "src/__tests__/helpers/reducer.resetSection.js",
    "chars": 6047,
    "preview": "import actions from '../../actions'\nconst { resetSection } = actions\n\nconst describeReset = (reducer, expect, { fromJS }"
  },
  {
    "path": "src/__tests__/helpers/reducer.setSubmitFailed.js",
    "chars": 2084,
    "preview": "import actions from '../../actions'\nconst { setSubmitFailed } = actions\n\nconst describeSetSubmitFailed = (reducer, expec"
  },
  {
    "path": "src/__tests__/helpers/reducer.setSubmitSuceeded.js",
    "chars": 1488,
    "preview": "import actions from '../../actions'\nconst { setSubmitSucceeded } = actions\n\nconst describeSetSubmitSucceeded = (reducer,"
  },
  {
    "path": "src/__tests__/helpers/reducer.startAsyncValidation.js",
    "chars": 1170,
    "preview": "import actions from '../../actions'\nconst { startAsyncValidation } = actions\n\nconst describeStartAsyncValidation = (redu"
  },
  {
    "path": "src/__tests__/helpers/reducer.startSubmit.js",
    "chars": 989,
    "preview": "import actions from '../../actions'\nconst { startSubmit } = actions\n\nconst describeStartSubmit = (reducer, expect, { fro"
  },
  {
    "path": "src/__tests__/helpers/reducer.stopAsyncValidation.js",
    "chars": 4900,
    "preview": "import actions from '../../actions'\nconst { stopAsyncValidation } = actions\n\nconst describeStopAsyncValidation = (reduce"
  },
  {
    "path": "src/__tests__/helpers/reducer.stopSubmit.js",
    "chars": 9909,
    "preview": "import actions from '../../actions'\nconst { stopSubmit } = actions\n\nconst describeStopSubmit = (reducer, expect, { fromJ"
  },
  {
    "path": "src/__tests__/helpers/reducer.submit.js",
    "chars": 1247,
    "preview": "import actions from '../../actions'\nconst { submit } = actions\n\nconst describeSubmit = (reducer, expect, { fromJS }) => "
  },
  {
    "path": "src/__tests__/helpers/reducer.touch.js",
    "chars": 2140,
    "preview": "import actions from '../../actions'\nconst { touch } = actions\n\nconst describeTouch = (reducer, expect, { fromJS }) => ()"
  },
  {
    "path": "src/__tests__/helpers/reducer.unregisterField.js",
    "chars": 8859,
    "preview": "import actions from '../../actions'\nconst { unregisterField } = actions\n\nconst describeUnregisterField = (reducer, expec"
  },
  {
    "path": "src/__tests__/helpers/reducer.untouch.js",
    "chars": 4529,
    "preview": "import actions from '../../actions'\nconst { untouch } = actions\n\nconst describeUntouch = (reducer, expect, { fromJS }) ="
  },
  {
    "path": "src/__tests__/helpers/reducer.updateSyncErrors.js",
    "chars": 3020,
    "preview": "import actions from '../../actions'\nconst { updateSyncErrors } = actions\n\nconst describeUpdateSyncErrors = (reducer, exp"
  },
  {
    "path": "src/__tests__/helpers/reducer.updateSyncWarnings.js",
    "chars": 3016,
    "preview": "import actions from '../../actions'\nconst { updateSyncWarnings } = actions\n\nconst describeUpdateSyncWarnings = (\n  reduc"
  },
  {
    "path": "src/__tests__/immutable.spec.js",
    "chars": 7388,
    "preview": "import * as expectedActionTypes from '../actionTypes'\nimport expectedPropTypes, {\n  fieldPropTypes as expectedFieldPropT"
  },
  {
    "path": "src/__tests__/index.spec.js",
    "chars": 7501,
    "preview": "import * as expectedActionTypes from '../actionTypes'\nimport expectedPropTypes, {\n  fieldPropTypes as expectedFieldPropT"
  },
  {
    "path": "src/__tests__/reducer.spec.js",
    "chars": 5483,
    "preview": "import createReducer from '../createReducer'\nimport plain from '../structure/plain'\nimport plainExpectations from '../st"
  },
  {
    "path": "src/__tests__/reduxForm.spec.js",
    "chars": 171940,
    "preview": "import { noop } from 'lodash'\n/* eslint react/no-multi-comp:0 */\nimport React, { Component } from 'react'\nimport TestUti"
  },
  {
    "path": "src/__tests__/reduxFormContext.spec.js",
    "chars": 756,
    "preview": "import React from 'react'\nimport ShallowRenderer from 'react-test-renderer/shallow'\n\nimport { renderChildren } from '../"
  },
  {
    "path": "src/__tests__/values.spec.js",
    "chars": 2047,
    "preview": "/* eslint react/no-multi-comp:0 */\nimport React from 'react'\nimport { Provider } from 'react-redux'\nimport { combineRedu"
  },
  {
    "path": "src/actionTypes.js",
    "chars": 2453,
    "preview": "// @flow\nexport const prefix = '@@redux-form/'\n\nexport const ARRAY_INSERT = `${prefix}ARRAY_INSERT`\nexport const ARRAY_M"
  },
  {
    "path": "src/actionTypes.types.js.flow",
    "chars": 880,
    "preview": "// @flow\nexport type ActionTypes = {\n  ARRAY_INSERT: string,\n  ARRAY_MOVE: string,\n  ARRAY_POP: string,\n  ARRAY_PUSH: st"
  },
  {
    "path": "src/actions.js",
    "chars": 8939,
    "preview": "// @flow\nimport {\n  ARRAY_INSERT,\n  ARRAY_MOVE,\n  ARRAY_POP,\n  ARRAY_PUSH,\n  ARRAY_REMOVE,\n  ARRAY_REMOVE_ALL,\n  ARRAY_S"
  },
  {
    "path": "src/actions.types.js.flow",
    "chars": 8623,
    "preview": "// @flow\nimport type { Action, FieldType } from './types'\n\nexport type ArrayInsertAction = {\n  type: string,\n  meta: { f"
  },
  {
    "path": "src/asyncValidation.js",
    "chars": 908,
    "preview": "// @flow\nimport isPromise from 'is-promise'\n\ntype Callback = () => Promise<void>\ntype StartCallback = (field: string) =>"
  },
  {
    "path": "src/createField.js",
    "chars": 4137,
    "preview": "// @flow\nimport React, { Component, createElement } from 'react'\nimport PropTypes from 'prop-types'\nimport invariant fro"
  },
  {
    "path": "src/createFieldArray.js",
    "chars": 3299,
    "preview": "// @flow\nimport React, { Component, createElement } from 'react'\nimport PropTypes from 'prop-types'\nimport invariant fro"
  },
  {
    "path": "src/createFieldArrayProps.js",
    "chars": 2816,
    "preview": "// @flow\nimport type { Structure } from './types'\nimport type { FieldArrayProps } from './FieldArrayProps.types'\n\ntype P"
  },
  {
    "path": "src/createFieldProps.js",
    "chars": 3459,
    "preview": "// @flow\nimport type { Event, Structure } from './types'\nimport type { Dispatch } from 'redux'\nimport type { FieldProps,"
  },
  {
    "path": "src/createFields.js",
    "chars": 4369,
    "preview": "// @flow\nimport { Component, createElement, createRef } from 'react'\nimport PropTypes from 'prop-types'\nimport invariant"
  },
  {
    "path": "src/createFormValueSelector.js",
    "chars": 1130,
    "preview": "// @flow\nimport invariant from 'invariant'\nimport plain from './structure/plain'\nimport type { Structure, GetFormState }"
  },
  {
    "path": "src/createFormValues.js",
    "chars": 3579,
    "preview": "// @flow\nimport { isEmpty, isEqual, mapValues } from 'lodash'\nimport React from 'react'\nimport { connect } from 'react-r"
  },
  {
    "path": "src/createReducer.js",
    "chars": 24233,
    "preview": "// @flow\nimport {\n  ARRAY_INSERT,\n  ARRAY_MOVE,\n  ARRAY_POP,\n  ARRAY_PUSH,\n  ARRAY_REMOVE,\n  ARRAY_REMOVE_ALL,\n  ARRAY_S"
  },
  {
    "path": "src/createReduxForm.js",
    "chars": 38648,
    "preview": "// @flow\nimport hoistStatics from 'hoist-non-react-statics'\nimport invariant from 'invariant'\nimport isPromise from 'is-"
  },
  {
    "path": "src/createValues.js",
    "chars": 519,
    "preview": "// @flow\nimport { connect } from 'react-redux'\nimport type { Structure } from './types'\nimport type { Config } from './v"
  },
  {
    "path": "src/defaultShouldAsyncValidate.js",
    "chars": 800,
    "preview": "// @flow\nexport type Params = {\n  initialized: boolean,\n  trigger: string,\n  blurredField: string,\n  pristine: boolean,\n"
  },
  {
    "path": "src/defaultShouldError.js",
    "chars": 751,
    "preview": "// @flow\nimport type { Structure, Values } from './types'\nimport type { Props } from './createReduxForm'\n\nexport type Pa"
  },
  {
    "path": "src/defaultShouldValidate.js",
    "chars": 757,
    "preview": "// @flow\nimport type { Structure, Values } from './types'\nimport type { Props } from './createReduxForm'\n\nexport type Pa"
  },
  {
    "path": "src/defaultShouldWarn.js",
    "chars": 749,
    "preview": "// @flow\nimport type { Structure, Values } from './types'\nimport type { Props } from './createReduxForm'\n\nexport type Pa"
  },
  {
    "path": "src/deleteInWithCleanUp.js",
    "chars": 1603,
    "preview": "// @flow\nimport { toPath } from 'lodash'\nimport type { Structure } from './types'\n\ntype ShouldDelete<SDM, SDL> = (\n  str"
  },
  {
    "path": "src/events/__tests__/getValue.spec.js",
    "chars": 9685,
    "preview": "import { noop } from 'lodash'\nimport getValue from '../getValue'\n\ndescribe('getValue', () => {\n  it('should return value"
  },
  {
    "path": "src/events/__tests__/isEvent.spec.js",
    "chars": 1038,
    "preview": "import { noop } from 'lodash'\nimport isEvent from '../isEvent'\n\ndescribe('isEvent', () => {\n  it('should return false if"
  },
  {
    "path": "src/events/__tests__/onChangeValue.spec.js",
    "chars": 1188,
    "preview": "import onChangeValue from '../onChangeValue'\nimport { valueMock } from '../../util/eventMocks'\n\nconst name = 'sampleFiel"
  },
  {
    "path": "src/events/__tests__/silenceEvent.spec.js",
    "chars": 951,
    "preview": "import { noop } from 'lodash'\nimport silenceEvent from '../silenceEvent'\n\ndescribe('silenceEvent', () => {\n  it('should "
  },
  {
    "path": "src/events/__tests__/silenceEvents.spec.js",
    "chars": 1579,
    "preview": "import { noop } from 'lodash'\nimport silenceEvents from '../silenceEvents'\n\ndescribe('silenceEvents', () => {\n  it('shou"
  },
  {
    "path": "src/events/getValue.js",
    "chars": 1139,
    "preview": "// @flow\nimport isEvent from './isEvent'\nimport type { Event } from '../types'\n\nconst getSelectedValues = options => {\n "
  },
  {
    "path": "src/events/isEvent.js",
    "chars": 142,
    "preview": "// @flow\nconst isEvent = (candidate: any) =>\n  !!(candidate && candidate.stopPropagation && candidate.preventDefault)\n\ne"
  },
  {
    "path": "src/events/onChangeValue.js",
    "chars": 563,
    "preview": "// @flow\nimport getValue from './getValue'\nimport isReactNative from '../isReactNative'\nimport type { Event } from '../t"
  },
  {
    "path": "src/events/silenceEvent.js",
    "chars": 195,
    "preview": "// @flow\nimport isEvent from './isEvent'\n\nconst silenceEvent = (event: any) => {\n  const is = isEvent(event)\n  if (is) {"
  },
  {
    "path": "src/events/silenceEvents.js",
    "chars": 216,
    "preview": "// @flow\nimport silenceEvent from './silenceEvent'\n\nconst silenceEvents = (fn: Function) => (event: any, ...args: Array<"
  },
  {
    "path": "src/fieldKeys.js",
    "chars": 1318,
    "preview": "/**\nEXPERIMENTAL\n \nfunction* generate(field, values, path = '') {\n  const [ , key, rest ] = /([^.]+)\\.?(.+)?/.exec(field"
  },
  {
    "path": "src/formValueSelector.js",
    "chars": 158,
    "preview": "// @flow\nimport createFormValueSelector from './createFormValueSelector'\nimport plain from './structure/plain'\n\nexport d"
  },
  {
    "path": "src/formValueSelector.types.js.flow",
    "chars": 142,
    "preview": "// @flow\nimport type { GetFormState } from './types'\n\nexport type FormValueSelectorInterface = (\n  state: any,\n  ...fiel"
  },
  {
    "path": "src/formValues.js",
    "chars": 137,
    "preview": "// @flow\nimport createFormValues from './createFormValues'\nimport plain from './structure/plain'\n\nexport default createF"
  },
  {
    "path": "src/formValues.types.js.flow",
    "chars": 160,
    "preview": "// @flow\nimport type { Structure, ReactContext } from './types'\n\nexport type FormValuesInterface = {\n  (firstArg: string"
  },
  {
    "path": "src/generateFields.js",
    "chars": 2639,
    "preview": "/*\nEXPERIMENTAL\n\nconst sameContents = (arrayA, arrayB) => arrayA === arrayB || (arrayA.length === arrayB.length && array"
  },
  {
    "path": "src/generateValidator.js",
    "chars": 947,
    "preview": "// @flow\nimport plain from './structure/plain'\nimport type { Structure } from './types'\n\nexport type Validator = { (valu"
  },
  {
    "path": "src/getFormAsyncErrors.js",
    "chars": 165,
    "preview": "// @flow\nimport createGetFormAsyncErrors from './selectors/getFormAsyncErrors'\nimport plain from './structure/plain'\n\nex"
  },
  {
    "path": "src/getFormError.js",
    "chars": 147,
    "preview": "// @flow\nimport createGetFormError from './selectors/getFormError'\nimport plain from './structure/plain'\n\nexport default"
  },
  {
    "path": "src/getFormInitialValues.js",
    "chars": 171,
    "preview": "// @flow\nimport createGetFormInitialValues from './selectors/getFormInitialValues'\nimport plain from './structure/plain'"
  },
  {
    "path": "src/getFormMeta.js",
    "chars": 144,
    "preview": "// @flow\nimport createGetFormMeta from './selectors/getFormMeta'\nimport plain from './structure/plain'\n\nexport default c"
  },
  {
    "path": "src/getFormNames.js",
    "chars": 147,
    "preview": "// @flow\nimport createGetFormNames from './selectors/getFormNames'\nimport plain from './structure/plain'\n\nexport default"
  },
  {
    "path": "src/getFormSubmitErrors.js",
    "chars": 168,
    "preview": "// @flow\nimport createGetFormSubmitErrors from './selectors/getFormSubmitErrors'\nimport plain from './structure/plain'\n\n"
  },
  {
    "path": "src/getFormSyncErrors.js",
    "chars": 162,
    "preview": "// @flow\nimport createGetFormSyncErrors from './selectors/getFormSyncErrors'\nimport plain from './structure/plain'\n\nexpo"
  },
  {
    "path": "src/getFormSyncWarnings.js",
    "chars": 168,
    "preview": "// @flow\nimport createGetFormSyncWarnings from './selectors/getFormSyncWarnings'\nimport plain from './structure/plain'\n\n"
  },
  {
    "path": "src/getFormValues.js",
    "chars": 150,
    "preview": "// @flow\nimport createGetFormValues from './selectors/getFormValues'\nimport plain from './structure/plain'\n\nexport defau"
  },
  {
    "path": "src/handleSubmit.js",
    "chars": 3374,
    "preview": "// @flow\nimport isPromise from 'is-promise'\nimport type { SubmitFunction } from './types'\nimport type { Props } from './"
  },
  {
    "path": "src/hasError.js",
    "chars": 740,
    "preview": "// @flow\nimport type { Structure } from './types'\n\nconst getErrorKeys = (name, type) => {\n  switch (type) {\n    case 'Fi"
  },
  {
    "path": "src/hasSubmitFailed.js",
    "chars": 156,
    "preview": "// @flow\nimport createHasSubmitFailed from './selectors/hasSubmitFailed'\nimport plain from './structure/plain'\n\nexport d"
  },
  {
    "path": "src/hasSubmitSucceeded.js",
    "chars": 165,
    "preview": "// @flow\nimport createHasSubmitSucceeded from './selectors/hasSubmitSucceeded'\nimport plain from './structure/plain'\n\nex"
  },
  {
    "path": "src/immutable/Field.js",
    "chars": 136,
    "preview": "// @flow\nimport createField from '../createField'\nimport immutable from '../structure/immutable'\n\nexport default createF"
  }
]

// ... and 130 more files (download for full content)

About this extraction

This page contains the full source code of the redux-form/redux-form GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 330 files (1.3 MB), approximately 355.4k tokens, and a symbol index with 634 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.

Copied to clipboard!