diff --git a/.babelrc b/.babelrc
deleted file mode 100644
index 29932a67ba..0000000000
--- a/.babelrc
+++ /dev/null
@@ -1,7 +0,0 @@
-{
- "presets": [
- "es2015",
- "react",
- "stage-1"
- ]
-}
diff --git a/.babelrc.js b/.babelrc.js
new file mode 100644
index 0000000000..e7a3c19095
--- /dev/null
+++ b/.babelrc.js
@@ -0,0 +1,48 @@
+'use strict';
+
+const target = process.env.BABEL_TARGET;
+const output = process.env.BABEL_OUTPUT;
+const env = process.env.NODE_ENV;
+const modules = output == null ? false : output;
+
+const targets = env === 'test' ? { node: 'current' } : undefined;
+
+const options = {
+ comments: false,
+ minified: true,
+ assumptions: {
+ ignoreToPrimitiveHint: true,
+ iterableIsArray: true,
+ mutableTemplateObject: true,
+ noNewArrows: true,
+ objectRestNoSymbols: true,
+ setComputedProperties: true,
+ setSpreadProperties: true,
+ },
+ presets: [
+ [
+ '@babel/env',
+ {
+ bugfixes: true,
+ loose: true,
+ modules,
+ targets,
+ corejs: '3',
+ useBuiltIns: 'entry',
+ },
+ ],
+ ['@babel/react', { useBuiltIns: true }],
+ ],
+ plugins: [],
+};
+
+if (target === 'examples') {
+ options.plugins.push([
+ 'transform-react-remove-prop-types',
+ { removeImport: true },
+ ]);
+} else if (env !== 'test') {
+ options.plugins.push(['transform-react-remove-prop-types', { mode: 'wrap' }]);
+}
+
+module.exports = options;
diff --git a/.browserslistrc b/.browserslistrc
new file mode 100644
index 0000000000..55ae8fde69
--- /dev/null
+++ b/.browserslistrc
@@ -0,0 +1,6 @@
+> 0.3%
+last 2 versions
+Firefox ESR
+not dead
+not Android <5
+maintained node versions
\ No newline at end of file
diff --git a/.eslintignore b/.eslintignore
deleted file mode 100644
index 3853accfd9..0000000000
--- a/.eslintignore
+++ /dev/null
@@ -1,2 +0,0 @@
-/webpack.*
-examples
diff --git a/.eslintrc b/.eslintrc
deleted file mode 100644
index 897d1d7b8f..0000000000
--- a/.eslintrc
+++ /dev/null
@@ -1,12 +0,0 @@
-{
- "extends": "airbnb",
- "parser": "babel-eslint",
- "env": {
- "browser": true,
- "node": true
- },
- "rules": {
- "react/prefer-es6-class": 0,
- "react/prefer-stateless-function": 0
- }
-}
diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml
new file mode 100644
index 0000000000..e090ba84f8
--- /dev/null
+++ b/.github/FUNDING.yml
@@ -0,0 +1 @@
+github: [danez]
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
new file mode 100644
index 0000000000..4b3711fcd1
--- /dev/null
+++ b/.github/workflows/build.yml
@@ -0,0 +1,97 @@
+name: CI
+
+on:
+ push:
+ branches:
+ - main
+ - renovate/**
+ pull_request:
+
+permissions: {}
+
+jobs:
+ tests:
+ name: Unit tests
+ runs-on: ubuntu-latest
+ if: "!startsWith(github.head_ref, 'renovate/')"
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Install pnpm
+ uses: pnpm/action-setup@v4
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 'lts/*'
+ cache: 'pnpm'
+
+ - name: Install dependencies
+ run: pnpm install --frozen-lockfile
+
+ - name: Unit tests
+ run: pnpm test --coverage
+
+ - name: Upload coverage
+ uses: coverallsapp/github-action@v2
+
+ lint:
+ name: Lint
+ runs-on: ubuntu-latest
+ if: "!startsWith(github.head_ref, 'renovate/')"
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Install pnpm
+ uses: pnpm/action-setup@v4
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 'lts/*'
+ cache: 'pnpm'
+
+ - name: Install dependencies
+ run: pnpm install --frozen-lockfile
+
+ - name: Lint
+ run: pnpm lint
+
+ release:
+ needs: [tests, lint]
+ if: github.ref == 'refs/heads/main'
+ name: Release
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write # to be able to publish a GitHub release
+ issues: write # to be able to comment on released issues
+ pull-requests: write # to be able to comment on released pull requests
+ id-token: write # to enable use of OIDC for npm provenance
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+ with:
+ fetch-depth: 0
+
+ - name: Install pnpm
+ uses: pnpm/action-setup@v4
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 'lts/*'
+ cache: 'pnpm'
+
+ - name: Install dependencies
+ run: pnpm install --frozen-lockfile
+
+ - name: Release
+ run: pnpm dlx semantic-release --branches main
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
diff --git a/.github/workflows/codeql-analysis.yml b/.github/workflows/codeql-analysis.yml
new file mode 100644
index 0000000000..83a726e4ce
--- /dev/null
+++ b/.github/workflows/codeql-analysis.yml
@@ -0,0 +1,68 @@
+# For most projects, this workflow file will not need changing; you simply need
+# to commit it to your repository.
+#
+# You may wish to alter this file to override the set of languages analyzed,
+# or to provide custom queries or build logic.
+#
+# ******** NOTE ********
+# We have attempted to detect the languages in your repository. Please check
+# the `language` matrix defined below to confirm you have the correct set of
+# supported CodeQL languages.
+#
+name: "CodeQL"
+
+on:
+ push:
+ branches:
+ - main
+ - renovate/**
+ pull_request:
+ schedule:
+ - cron: '33 1 * * 0'
+
+jobs:
+ analyze:
+ name: Analyze
+ runs-on: ubuntu-latest
+ if: "!startsWith(github.head_ref, 'renovate/')"
+
+ strategy:
+ fail-fast: false
+ matrix:
+ language: [ 'javascript' ]
+ # CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python' ]
+ # Learn more:
+ # https://docs.github.com/en/free-pro-team@latest/github/finding-security-vulnerabilities-and-errors-in-your-code/configuring-code-scanning#changing-the-languages-that-are-analyzed
+
+ steps:
+ - name: Checkout repository
+ uses: actions/checkout@v4
+
+ # Initializes the CodeQL tools for scanning.
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v3
+ with:
+ languages: ${{ matrix.language }}
+ # If you wish to specify custom queries, you can do so here or in a config file.
+ # By default, queries listed here will override any specified in a config file.
+ # Prefix the list here with "+" to use these queries and those in the config file.
+ # queries: ./path/to/local/query, your-org/your-repo/queries@main
+
+ # Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
+ # If this step fails, then you should remove it and run the build manually (see below)
+ - name: Autobuild
+ uses: github/codeql-action/autobuild@v3
+
+ # âšī¸ Command-line programs to run using the OS shell.
+ # đ https://git.io/JvXDl
+
+ # âī¸ If the Autobuild fails above, remove it and uncomment the following three lines
+ # and modify them (or add more) to build your code if your project
+ # uses a compiled language
+
+ #- run: |
+ # make bootstrap
+ # make release
+
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v3
diff --git a/.github/workflows/lock.yml b/.github/workflows/lock.yml
new file mode 100644
index 0000000000..28cc5d68c0
--- /dev/null
+++ b/.github/workflows/lock.yml
@@ -0,0 +1,22 @@
+name: 'Lock Threads'
+
+on:
+ schedule:
+ - cron: '36 5 * * 2'
+ workflow_dispatch:
+
+permissions:
+ issues: write
+ pull-requests: write
+ discussions: write
+
+concurrency:
+ group: lock
+
+jobs:
+ action:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: dessant/lock-threads@v5
+ with:
+ log-output: true
diff --git a/.github/workflows/ossar-analysis.yml b/.github/workflows/ossar-analysis.yml
new file mode 100644
index 0000000000..e4a718be99
--- /dev/null
+++ b/.github/workflows/ossar-analysis.yml
@@ -0,0 +1,53 @@
+# This workflow integrates a collection of open source static analysis tools
+# with GitHub code scanning. For documentation, or to provide feedback, visit
+# https://github.com/github/ossar-action
+name: OSSAR
+
+on:
+ push:
+ branches:
+ - main
+ - renovate/**
+ pull_request:
+
+jobs:
+ OSSAR-Scan:
+ # OSSAR runs on windows-latest.
+ # ubuntu-latest and macos-latest support coming soon
+ runs-on: windows-latest
+ if: "!startsWith(github.head_ref, 'renovate/')"
+
+ steps:
+ # Checkout your code repository to scan
+ - name: Checkout repository
+ uses: actions/checkout@v4
+ with:
+ # We must fetch at least the immediate parents so that if this is
+ # a pull request then we can checkout the head.
+ fetch-depth: 2
+
+ # If this run was triggered by a pull request event, then checkout
+ # the head of the pull request instead of the merge commit.
+ - run: git checkout HEAD^2
+ if: ${{ github.event_name == 'pull_request' }}
+
+ # Ensure a compatible version of dotnet is installed.
+ # The [Microsoft Security Code Analysis CLI](https://aka.ms/mscadocs) is built with dotnet v3.1.201.
+ # A version greater than or equal to v3.1.201 of dotnet must be installed on the agent in order to run this action.
+ # GitHub hosted runners already have a compatible version of dotnet installed and this step may be skipped.
+ # For self-hosted runners, ensure dotnet version 3.1.201 or later is installed by including this action:
+ # - name: Install .NET
+ # uses: actions/setup-dotnet@v1
+ # with:
+ # dotnet-version: '3.1.x'
+
+ # Run open source static analysis tools
+ - name: Run OSSAR
+ uses: github/ossar-action@v1
+ id: ossar
+
+ # Upload results to the Security tab
+ - name: Upload OSSAR results
+ uses: github/codeql-action/upload-sarif@v3
+ with:
+ sarif_file: ${{ steps.ossar.outputs.sarifFile }}
diff --git a/.github/workflows/pkg-size-report.yml b/.github/workflows/pkg-size-report.yml
new file mode 100644
index 0000000000..e209961f33
--- /dev/null
+++ b/.github/workflows/pkg-size-report.yml
@@ -0,0 +1,37 @@
+name: Package size report
+
+on:
+ pull_request:
+ branches: [main, next]
+
+permissions:
+ pull-requests: write
+
+jobs:
+ pkg-size-report:
+ name: Package size report
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Install pnpm
+ uses: pnpm/action-setup@v4
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 'lts/*'
+ cache: 'pnpm'
+
+ - name: Install dependencies
+ run: pnpm install --frozen-lockfile
+
+ - name: Package size report
+ uses: pkg-size/action@v1
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ with:
+ hide-files: '*.{js,css}.map'
+ display-size: uncompressed, gzip
diff --git a/.github/workflows/website.yml b/.github/workflows/website.yml
new file mode 100644
index 0000000000..d62419f979
--- /dev/null
+++ b/.github/workflows/website.yml
@@ -0,0 +1,66 @@
+name: Website
+
+on:
+ push:
+ branches:
+ - main
+ - renovate/**
+ pull_request:
+
+permissions: {}
+
+jobs:
+ website:
+ name: Test
+ if: "github.ref != 'refs/heads/main' && !startsWith(github.head_ref, 'renovate/')"
+ runs-on: ubuntu-latest
+
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Install pnpm
+ uses: pnpm/action-setup@v4
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 'lts/*'
+ cache: 'pnpm'
+
+ - name: Install dependencies
+ run: pnpm install --frozen-lockfile
+
+ - name: Build website
+ run: pnpm run --sequential '/website:.*/'
+
+ deploy:
+ name: Deploy
+ if: github.ref == 'refs/heads/main'
+ runs-on: ubuntu-latest
+ permissions:
+ contents: write
+ steps:
+ - name: Checkout
+ uses: actions/checkout@v4
+
+ - name: Install pnpm
+ uses: pnpm/action-setup@v4
+
+ - name: Setup Node.js
+ uses: actions/setup-node@v4
+ with:
+ node-version: 'lts/*'
+ cache: 'pnpm'
+
+ - name: Install dependencies
+ run: pnpm install --frozen-lockfile
+
+ - name: Build
+ run: pnpm run --sequential '/website:.*/'
+
+ - name: Deploy
+ uses: JamesIves/github-pages-deploy-action@v4
+ with:
+ branch: gh-pages
+ folder: examples/dist
diff --git a/.gitignore b/.gitignore
index 8d6df21383..ae3adbfdc5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,7 +1,7 @@
-.idea
-*.iml
build/
+coverage/
+examples/dist/
node_modules/
npm-debug.log
lib/
-yarn.lock
+esm/
diff --git a/.gitpod.yml b/.gitpod.yml
new file mode 100644
index 0000000000..c9fa969d57
--- /dev/null
+++ b/.gitpod.yml
@@ -0,0 +1,8 @@
+
+tasks:
+ - init: pnpm install && pnpm run build
+
+vscode:
+ extensions:
+ - esbenp.prettier-vscode
+ - dbaeumer.vscode-eslint
diff --git a/.prettierrc b/.prettierrc
new file mode 100644
index 0000000000..b418c8e60a
--- /dev/null
+++ b/.prettierrc
@@ -0,0 +1,11 @@
+{
+ "arrowParens": "always",
+ "bracketSpacing": true,
+ "bracketSameLine": false,
+ "printWidth": 80,
+ "semi": true,
+ "singleQuote": true,
+ "tabWidth": 2,
+ "trailingComma": "all",
+ "useTabs": false
+ }
\ No newline at end of file
diff --git a/.travis.yml b/.travis.yml
deleted file mode 100644
index 21eab91bce..0000000000
--- a/.travis.yml
+++ /dev/null
@@ -1,9 +0,0 @@
-sudo: false
-language: node_js
-node_js:
- - "4"
- - "5"
- - "6"
-script:
- - npm run lint
- - npm test
diff --git a/.vscode/launch.json b/.vscode/launch.json
new file mode 100644
index 0000000000..6917d94dd8
--- /dev/null
+++ b/.vscode/launch.json
@@ -0,0 +1,14 @@
+{
+ // Use IntelliSense to learn about possible attributes.
+ // Hover to view descriptions of existing attributes.
+ // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
+ "version": "0.2.0",
+ "configurations": [
+ {
+ "name": "Attach to Process",
+ "type": "node",
+ "request": "attach",
+ "port": 9229
+ }
+ ]
+}
\ No newline at end of file
diff --git a/CHANGELOG.md b/CHANGELOG.md
deleted file mode 100644
index db7f44023a..0000000000
--- a/CHANGELOG.md
+++ /dev/null
@@ -1,104 +0,0 @@
-# Changelog
-
-### 0.8.3 (Apr 19, 2017)
-
-- Fix deprecation warnings with react 15.5
-
-### 0.8.2 (Oct 19, 2016)
-
-- Fix UMD build (#143)
-
-### 0.8.0 (Sep 14, 2016)
-
-- Allow other components inside TabList (#123)
-
-### 0.7.0 (Jul 05, 2016)
-
-- Feature/add custom active and disabled class (#108)
-- Remove aria-expanded attribute (#71)
-- Fix warning with react 15.2
-
-### 0.6.2 (Jun 24, 2016)
-
-- Fix bower bundling (#111, #112)
-
-### 0.6.1 (Jun 23, 2016)
-
-- Allow setState in onSelect (#51, #110)
-
-### 0.6.0 (Jun 20, 2016)
-
-- Add a cancel option to tab change event handler (#73)
-- DOMNode.setAttribute() expects the second param to be string (#75, #76)
-- Allow passing through custom attributes (#93)
-- Fix nesting of multiple instances of react-tabs (#103)
-
-### 0.5.5 (Jun 13, 2016)
-
-- Fix main exports of react tabs which were broken in 0.5.4
-
-### 0.5.4 (Jun 10, 2016)
-
-- Update to support react 15 (#94)
-
-### 0.5.3 (Feb 01, 2016)
-
-- use correct spelling of aria-labelledby (#67)
-
-### 0.5.2 (Jan 29, 2016)
-
-- Server Side Rendering won't work with default styles (#45)
-
-### 0.5.1 (Oct 22, 2015)
-
-- Removing ReactDOM from bundle
-
-### 0.5.0 (Oct 22, 2015)
-
-- Fix conditional rendering of tabs (#37)
-- New configuration to disable styling via jss (#25)
-- Avoid white on white Tab labels (#40)
-- Support react 0.14 (#43)
-- Issue when conditionally rendering Tab/TabPanel (#37)
-
-### 0.4.1 (Sep 09, 2015)
-
-- Do not bundle react into dist (#26)
-
-### 0.4.0 (Aug 18, 2015)
-
-- Support rendering of hidden Tabs (#28)
-- Support supplying array of child nodes to Tab (#27)
-
-### 0.3.0 (Aug 11, 2015)
-
-- Support for disabling tabs
-
-### 0.2.1 (Jun 26, 2015)
-
-- Bower support (#22)
-- Issue with React being included twice (#23)
-
-### 0.2.0 (Jun 07, 2015)
-
-- Allowing children of Tab to select Tab (#9)
-- Only render the selected TabPanel
-- Upgrading to React 0.13
-- Removing JSX
-- Fixing issue with focus management (#7)
-- Fixing issue caused by no children being provided (#6)
-- Fixing issue that made dynamic Tabs difficult
-
-### 0.1.2 (Jul 23, 2014)
-
-- Making Tab and TabPanel to be stateless
-- Throwing Error when Tab count and TabPanel count aren't equal
-
-### 0.1.1 (Jul 19, 2014)
-
-- Fixing warning: Invalid access to component property
-- Fixing style weirdness in Firefox
-
-### 0.1.0 (Jul 18, 2014)
-
-- Initial release
diff --git a/LICENSE b/LICENSE
index eb52c06083..50769ac6b9 100644
--- a/LICENSE
+++ b/LICENSE
@@ -1,4 +1,4 @@
-Copyright (c) 2015-2017 by Matt Zabriskie
+Copyright (c) Matt Zabriskie and Daniel Tschinder
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
diff --git a/README.md b/README.md
index 5a69ff6ebe..4f9a3b53ec 100644
--- a/README.md
+++ b/README.md
@@ -1,111 +1,372 @@
-# react-tabs [](https://travis-ci.org/reactjs/react-tabs)
+# react-tabs [](https://www.npmjs.com/package/react-tabs) [](https://coveralls.io/github/reactjs/react-tabs?branch=main)
-React tabs component
+An accessible and easy tab component for ReactJS.
-> Supports React ^0.14.0 or ^15.0.0
+https://reactcommunity.org/react-tabs/
+
+> Version 5 or newer of `react-tabs` needs react version 18 or newer
+>
+> Version 4 of `react-tabs` needs react version 16.8 or newer
+
+
react-tabs was tested on real mobile devices and browsers with
+
+
+
## Installing
```bash
-$ npm install react-tabs --save
+yarn add react-tabs
```
-## Demo
+or
-https://reactcommunity.org/react-tabs/example/
+```bash
+npm install --save react-tabs
+```
-## Example
+## Basic Example
```js
-import React, { Component } from 'react';
-import { render } from 'react-dom';
import { Tab, Tabs, TabList, TabPanel } from 'react-tabs';
+import 'react-tabs/style/react-tabs.css';
-class App extends Component {
- handleSelect(index, last) {
- console.log('Selected tab: ' + index + ', Last tab: ' + last);
- }
-
- render() {
- return (
- {/*
- is a composite component and acts as the main container.
-
- `onSelect` is called whenever a tab is selected. The handler for
- this function will be passed the current index as well as the last index.
-
- `selectedIndex` is the tab to select when first rendered. By default
- the first (index 0) tab will be selected.
-
- `forceRenderTabPanel` By default this react-tabs will only render the selected
- tab's contents. Setting `forceRenderTabPanel` to `true` allows you to override the
- default behavior, which may be useful in some circumstances (such as animating between tabs).
-
- */}
-
-
-
- {/*
- is a composite component and is the container for the s.
- */}
-
-
-
- {/*
- is the actual tab component that users will interact with.
-
- Selecting a tab can be done by either clicking with the mouse,
- or by using the keyboard tab to give focus then navigating with
- the arrow keys (right/down to select tab to the right of selected,
- left/up to select tab to the left of selected).
-
- The content of the (this.props.children) will be shown as the label.
- */}
-
- Foo
- Bar
- Baz
-
-
- {/*
- is the content for the tab.
-
- There should be an equal number of and components.
- and components are tied together by the order in
- which they appear. The first (index 0) will be associated with
- the of the same index. When you run this example with
- `selectedIndex` equal to 0, the tab with the label "Foo" will be selected
- and the content shown will be "Hello from Foo".
-
- As with the content of will be shown as the content.
- */}
-
-
-
+
+
+);
+```
+
+## API
+
+## Components
+
+react-tabs consists of 4 components which all need to be used together.
+
+### <Tabs />
+
+If you specify additional props on the `` component they will be forwarded to the rendered `
`.
+
+#### className: `string | Array | { [string]: boolean }`
+
+> default: `"react-tabs"`
+
+Provide a custom class name for the outer `` of the tabs.
+
+> You can also supply an array of class names or an object where the class names are the key and the value is a boolean indicating if the name should be added. See the docs of [classnames](https://github.com/JedWatson/classnames#usage) on how to supply different class names.
+
+#### defaultFocus: `boolean`
+
+> default: `false`
+
+If set to `true` the tabs will be focused on initial render. This allows immediate use of keyboard keys to switch tabs after the first render.
+
+#### defaultIndex: `number`
+
+> default: `0`
+
+This allows changing the tab that should be open on initial render. This is a zero-based index, so first tab is `0`, second tab is `1`, ...
+
+> This can only be used in uncontrolled mode when react-tabs handles the current selected tab internally and for this reason cannot be used together with `selectedIndex`. See [here](#controlled-vs-uncontrolled-mode) for more info on modes.
+
+#### direction: `string`
+
+> default: `"ltr"`
+
+Provide the direction of the component, can be either rtl or ltr.
+
+#### disabledTabClassName: `string`
+
+> default: `"react-tabs__tab--disabled"`
+
+Provide a custom class name for disabled tabs.
+
+> This option can also be set directly at the `` component.
+
+#### disableUpDownKeys: `bool`
+
+> default: `false`
+
+Disable up & down arrow keys to change tabs.
+
+#### domRef: `(node: ?HTMLElement) => void`
+
+> default: `null`
+
+Register a callback that will receive the underlying DOM node for every mount. It will also receive null on unmount.
+
+#### environment: `Window`
+
+If you're rendering `react-tabs` within a different `window` context than the default one; for example, an iframe.
+
+#### focusTabOnClick: `boolean`
+
+> default: `true`
+
+By default the tab that is clicked will also be focused in the DOM. If set to `false` the tab will not be focused anymore.
+
+> Be aware that keyboard navigation will not work after click if set to false. Though one can still focus the tabs by pressing `tab` and then keyboard navigation will work.
+
+#### forceRenderTabPanel: `boolean`
+
+> default: `false`
+
+By default only the current active tab will be rendered to DOM. If set to `true` all tabs will be rendered to the DOM always.
+
+> This can also be enabled for each individual `` component with its prop `forceRender`.
+
+#### onSelect: `(index: number, lastIndex: number, event: Event) => ?boolean`
+
+> default: `undefined`
+
+This event handler is called every time a tab is about to change. It will be called with the `index` that it will be changed to, the `lastIndex` which was selected before and the underlying `event` which is usually either a `keydown` or `click` event. When `index` and `lastIndex` are equal it means the user clicked on the currently active tab.
+
+The callback can optionally return `false` to cancel the change to the new tab.
+
+> Returning `false` when the change to the new tab should be canceled is also important in controlled mode, as react-tabs still internally handles the focus of the tabs.
+
+> In controlled mode the `onSelect` handler is a required prop.
+
+#### selectedIndex: `number`
+
+> default: `null`
+
+Set the currently selected tab. This is a zero-based index, so first tab is `0`, second tab is `1`, ...
+
+This enables controlled mode, which also requires `onSelect` to be set. See [here](#controlled-vs-uncontrolled-mode) for more info on modes.
+
+#### selectedTabClassName: `string`
+
+> default: `"react-tabs__tab--selected"`
+
+Provide a custom class name for the active tab.
+
+> This option can also be set directly at the `` component.
+
+#### selectedTabPanelClassName: `string`
+
+> default: `"react-tabs__tab-panel--selected"`
+
+Provide a custom class name for the active tab panel.
+
+> This option can also be set directly at the `` component.
+
+### <TabList />
+
+If you specify additional props on the `` component they will be forwarded to the rendered `
`.
+
+#### className: `string | Array | { [string]: boolean }`
+
+> default: `"react-tabs__tab-list"`
+
+Provide a custom class name for the `
`.
+
+> You can also supply an array of class names or an object where the class names are the key and the value is a boolean indicating if the name should be added. See the docs of [classnames](https://github.com/JedWatson/classnames#usage) on how to supply different class names.
+
+### <Tab />
+
+If you specify additional props on the `` component they will be forwarded to the rendered ``.
+
+#### className: `string | Array | { [string]: boolean }`
+
+> default: `"react-tabs__tab"`
+
+Provide a custom class name for the ``.
+
+> You can also supply an array of class names or an object where the class names are the key and the value is a boolean indicating if the name should be added. See the docs of [classnames](https://github.com/JedWatson/classnames#usage) on how to supply different class names.
+
+#### disabled: `boolean`
+
+> default: `false`
+
+Disable this tab which will make it not do anything when clicked. Also a disabled class name will be added (see `disabledClassName`)
+
+#### disabledClassName: `string`
+
+> default: `"react-tabs__tab--disabled"`
+
+Provide a custom class name for disabled tabs.
+
+> This option can also be set for all `` components with the prop `disabledTabClassName` on ``.
+
+#### selectedClassName: `string`
+
+> default: `"react-tabs__tab--selected"`
+
+Provide a custom class name for the active tab.
+
+> This option can also be set for all `` components with the prop `selectedTabClassName` on ``.
+
+#### tabIndex: `string`
+
+> default: if selected `"0"` otherwise `null`
+
+Overrides the tabIndex to enabled tabbing between tabs.
+
+### <TabPanel />
+
+If you specify additional props on the `` component they will be forwarded to the rendered ``.
+
+#### className: `string | Array | { [string]: boolean }`
+
+> default: `"react-tabs__tab-panel"`
+
+Provide a custom class name for the `` containing the tab content.
+
+> You can also supply an array of class names or an object where the class names are the key and the value is a boolean indicating if the name should be added. See the docs of [classnames](https://github.com/JedWatson/classnames#usage) on how to supply different class names.
+
+#### forceRender: `boolean`
+
+> default: `false`
+
+By default the tab content will only be rendered when the tab is active. If set to `true` the tab will also be rendered if inactive.
+
+> This can also be enabled for all `` components with the prop `forceRenderTabPanel` on ``.
+
+#### selectedClassName: `string`
+
+> default: `"react-tabs__tab-panel--selected"`
+
+Provide a custom class name for the active tab panel.
+
+> This option can also be set for all `` components with the prop `selectedTabPanelClassName` on ``.
+
+## Controlled vs Uncontrolled mode
+
+React tabs has two different modes it can operate in, which change the way how much you need to take care about the state yourself.
+
+### Uncontrolled mode
+
+This is the default mode of react-tabs and makes the react-tabs components handle its state internally. You can change the starting tab with `defaultIndex` and you can listen for changes with `onSelect`.
+
+In this mode you cannot force a tab change during runtime.
+
+```js
+ console.log(index)}>
+
+ Title 1
+ Title 2
+
+
+
+
+```
+
+### Controlled mode
+
+This mode has to be enabled by supplying `selectedIndex` to the `` component.
+
+In this mode react-tabs does not handle any tab selection state internally and leaves all the state management up to the outer application.
+
+This mode also enforces you to set a handler for `onSelect`. `defaultIndex` does not have any effect and will therefore throw an error.
+
+```js
+const App = () => {
+ const [tabIndex, setTabIndex] = useState(0);
+
+ return (
+ setTabIndex(index)}>
+
+ Title 1
+ Title 2
+
+
+
+
+ );
+};
```
## Styling
-You can disable the default styling by calling this method once:
+react-tabs does not include any style loading by default. Default stylesheets are provided and can be included in your application if desired.
+
+### Webpack
+
+When using webpack and an appropriate loader (`css-loader`, `sass-loader`, `less-loader` or `style-loader`) you can simply import the default stylesheet.
+
+```js
+import 'react-tabs/style/react-tabs.css';
+// or
+import 'react-tabs/style/react-tabs.scss';
+// or
+import 'react-tabs/style/react-tabs.less';
+```
+
+### SASS
+
+When using SASS you can easily import the default styles
+```scss
+@import 'http://github.com/path/to/node_modules/react-tabs/style/react-tabs.scss';
```
-Tabs.setUseDefaultStyles(false);
+
+### LESS
+
+When using LESS you can easily import the default styles
+
+```scss
+@import 'http://github.com/path/to/node_modules/react-tabs/style/react-tabs.less';
+```
+
+### Custom Style
+
+You can also always just simply copy the default style to your own css/scss/less and modify it to your own needs. The changelog will always tell you when classes change and we also consider changes that break the styling as semver major.
+
+### Custom Components
+
+#### Set `tabsRole`
+
+In case you want to create your own component wrapping the ones that the library provides, you have to set its `tabsRole`. This value is used inside react-tabs to check the role of a component inside ``.
+
+Possible values for tabsRole are:
+
+- Tab
+- TabPanel
+- TabList
+- Tabs
+
+#### Pass through properties
+
+Note: Because of how react-tabs works internally (it uses cloning to opaquely control various parts of the tab state), you need to pass any incoming props to the component you're wrapping. The easiest way to do this is to use the rest and spread operators, e.g. see `{...otherProps}` below.
+
+```tsx
+import { Tabs, TabList, Tab, TabPanel } from 'react-tabs';
+import type { ReactTabsFunctionComponent, TabProps } from 'react-tabs';
+
+// All custom elements should pass through other props
+const CustomTab: ReactTabsFunctionComponent = ({
+ children,
+ ...otherProps
+}) => (
+
+
{children}
+
+);
+
+CustomTab.tabsRole = 'Tab'; // Required field to use your custom Tab
+
+const App = () => (
+
+
+ Custom Tab 1
+ Custom Tab 2
+
+ Panel 1
+ Panel 2
+
+);
```
## License
diff --git a/bower.json b/bower.json
deleted file mode 100644
index 2e0adfd281..0000000000
--- a/bower.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
- "name": "react-tabs",
- "version": "0.8.3",
- "homepage": "https://github.com/reactjs/react-tabs",
- "authors": [
- "Matt Zabriskie"
- ],
- "description": "React tabs component",
- "main": "./dist/react-tabs.js",
- "keywords": [
- "react",
- "tabs"
- ],
- "license": "MIT",
- "ignore": [
- "**/.*",
- "build",
- "examples",
- "lib",
- "src",
- "node_modules",
- "specs",
- "package.json",
- "webpack.*"
- ]
-}
diff --git a/codecov.yml b/codecov.yml
new file mode 100644
index 0000000000..3e31ee1814
--- /dev/null
+++ b/codecov.yml
@@ -0,0 +1,4 @@
+coverage:
+ parsers:
+ javascript:
+ enable_partials: yes
diff --git a/dist/react-tabs.js b/dist/react-tabs.js
deleted file mode 100644
index 791bf59f13..0000000000
--- a/dist/react-tabs.js
+++ /dev/null
@@ -1,2971 +0,0 @@
-(function webpackUniversalModuleDefinition(root, factory) {
- if(typeof exports === 'object' && typeof module === 'object')
- module.exports = factory(require("react"), require("react-dom"));
- else if(typeof define === 'function' && define.amd)
- define(["react", "react-dom"], factory);
- else if(typeof exports === 'object')
- exports["ReactTabs"] = factory(require("react"), require("react-dom"));
- else
- root["ReactTabs"] = factory(root["React"], root["ReactDOM"]);
-})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_16__) {
-return /******/ (function(modules) { // webpackBootstrap
-/******/ // The module cache
-/******/ var installedModules = {};
-/******/
-/******/ // The require function
-/******/ function __webpack_require__(moduleId) {
-/******/
-/******/ // Check if module is in cache
-/******/ if(installedModules[moduleId])
-/******/ return installedModules[moduleId].exports;
-/******/
-/******/ // Create a new module (and put it into the cache)
-/******/ var module = installedModules[moduleId] = {
-/******/ exports: {},
-/******/ id: moduleId,
-/******/ loaded: false
-/******/ };
-/******/
-/******/ // Execute the module function
-/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
-/******/
-/******/ // Flag the module as loaded
-/******/ module.loaded = true;
-/******/
-/******/ // Return the exports of the module
-/******/ return module.exports;
-/******/ }
-/******/
-/******/
-/******/ // expose the modules object (__webpack_modules__)
-/******/ __webpack_require__.m = modules;
-/******/
-/******/ // expose the module cache
-/******/ __webpack_require__.c = installedModules;
-/******/
-/******/ // __webpack_public_path__
-/******/ __webpack_require__.p = "";
-/******/
-/******/ // Load entry module and return exports
-/******/ return __webpack_require__(0);
-/******/ })
-/************************************************************************/
-/******/ ([
-/* 0 */
-/***/ (function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- Object.defineProperty(exports, "__esModule", {
- value: true
- });
- exports.TabPanel = exports.Tab = exports.TabList = exports.Tabs = undefined;
-
- var _Tabs = __webpack_require__(1);
-
- var _Tabs2 = _interopRequireDefault(_Tabs);
-
- var _TabList = __webpack_require__(22);
-
- var _TabList2 = _interopRequireDefault(_TabList);
-
- var _Tab = __webpack_require__(21);
-
- var _Tab2 = _interopRequireDefault(_Tab);
-
- var _TabPanel = __webpack_require__(24);
-
- var _TabPanel2 = _interopRequireDefault(_TabPanel);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : { default: obj };
- }
-
- exports.Tabs = _Tabs2.default;
- exports.TabList = _TabList2.default;
- exports.Tab = _Tab2.default;
- exports.TabPanel = _TabPanel2.default;
-
- // For bc we also export a default object, remove in 1.0
-
- exports.default = {
- Tabs: _Tabs2.default,
- TabList: _TabList2.default,
- Tab: _Tab2.default,
- TabPanel: _TabPanel2.default
- };
-
-/***/ }),
-/* 1 */
-/***/ (function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- var _extends = Object.assign || function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }return target;
- };
-
- var _react = __webpack_require__(2);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _propTypes = __webpack_require__(3);
-
- var _propTypes2 = _interopRequireDefault(_propTypes);
-
- var _createReactClass = __webpack_require__(12);
-
- var _createReactClass2 = _interopRequireDefault(_createReactClass);
-
- var _reactDom = __webpack_require__(16);
-
- var _classnames = __webpack_require__(17);
-
- var _classnames2 = _interopRequireDefault(_classnames);
-
- var _jsStylesheet = __webpack_require__(18);
-
- var _jsStylesheet2 = _interopRequireDefault(_jsStylesheet);
-
- var _uuid = __webpack_require__(19);
-
- var _uuid2 = _interopRequireDefault(_uuid);
-
- var _childrenPropType = __webpack_require__(20);
-
- var _childrenPropType2 = _interopRequireDefault(_childrenPropType);
-
- var _Tab = __webpack_require__(21);
-
- var _Tab2 = _interopRequireDefault(_Tab);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : { default: obj };
- }
-
- function _objectWithoutProperties(obj, keys) {
- var target = {};for (var i in obj) {
- if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];
- }return target;
- }
-
- // Determine if a node from event.target is a Tab element
- function isTabNode(node) {
- return node.nodeName === 'LI' && node.getAttribute('role') === 'tab';
- }
-
- // Determine if a tab node is disabled
- function isTabDisabled(node) {
- return node.getAttribute('aria-disabled') === 'true';
- }
-
- var useDefaultStyles = true;
-
- module.exports = (0, _createReactClass2.default)({
- displayName: 'Tabs',
-
- propTypes: {
- className: _propTypes2.default.string,
- selectedIndex: _propTypes2.default.number,
- onSelect: _propTypes2.default.func,
- focus: _propTypes2.default.bool,
- children: _childrenPropType2.default,
- forceRenderTabPanel: _propTypes2.default.bool
- },
-
- childContextTypes: {
- forceRenderTabPanel: _propTypes2.default.bool
- },
-
- statics: {
- setUseDefaultStyles: function setUseDefaultStyles(use) {
- useDefaultStyles = use;
- }
- },
-
- getDefaultProps: function getDefaultProps() {
- return {
- selectedIndex: -1,
- focus: false,
- forceRenderTabPanel: false
- };
- },
- getInitialState: function getInitialState() {
- return this.copyPropsToState(this.props, this.state);
- },
- getChildContext: function getChildContext() {
- return {
- forceRenderTabPanel: this.props.forceRenderTabPanel
- };
- },
- componentDidMount: function componentDidMount() {
- if (useDefaultStyles) {
- (0, _jsStylesheet2.default)(__webpack_require__(23)); // eslint-disable-line global-require
- }
- },
- componentWillReceiveProps: function componentWillReceiveProps(newProps) {
- var _this = this;
-
- // Use a transactional update to prevent race conditions
- // when reading the state in copyPropsToState
- // See https://github.com/reactjs/react-tabs/issues/51
- this.setState(function (state) {
- return _this.copyPropsToState(newProps, state);
- });
- },
- setSelected: function setSelected(index, focus) {
- // Don't do anything if nothing has changed
- if (index === this.state.selectedIndex) return;
- // Check index boundary
- if (index < 0 || index >= this.getTabsCount()) return;
-
- // Keep reference to last index for event handler
- var last = this.state.selectedIndex;
-
- // Check if the change event handler cancels the tab change
- var cancel = false;
-
- // Call change event handler
- if (typeof this.props.onSelect === 'function') {
- cancel = this.props.onSelect(index, last) === false;
- }
-
- if (!cancel) {
- // Update selected index
- this.setState({ selectedIndex: index, focus: focus === true });
- }
- },
- getNextTab: function getNextTab(index) {
- var count = this.getTabsCount();
-
- // Look for non-disabled tab from index to the last tab on the right
- for (var i = index + 1; i < count; i++) {
- var tab = this.getTab(i);
- if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {
- return i;
- }
- }
-
- // If no tab found, continue searching from first on left to index
- for (var _i = 0; _i < index; _i++) {
- var _tab = this.getTab(_i);
- if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab))) {
- return _i;
- }
- }
-
- // No tabs are disabled, return index
- return index;
- },
- getPrevTab: function getPrevTab(index) {
- var i = index;
-
- // Look for non-disabled tab from index to first tab on the left
- while (i--) {
- var tab = this.getTab(i);
- if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {
- return i;
- }
- }
-
- // If no tab found, continue searching from last tab on right to index
- i = this.getTabsCount();
- while (i-- > index) {
- var _tab2 = this.getTab(i);
- if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab2))) {
- return i;
- }
- }
-
- // No tabs are disabled, return index
- return index;
- },
- getTabsCount: function getTabsCount() {
- return this.props.children && this.props.children[0] ? _react2.default.Children.count(this.props.children[0].props.children) : 0;
- },
- getPanelsCount: function getPanelsCount() {
- return _react2.default.Children.count(this.props.children.slice(1));
- },
- getTabList: function getTabList() {
- return this.refs.tablist;
- },
- getTab: function getTab(index) {
- return this.refs['tabs-' + index];
- },
- getPanel: function getPanel(index) {
- return this.refs['panels-' + index];
- },
- getChildren: function getChildren() {
- var index = 0;
- var count = 0;
- var children = this.props.children;
- var state = this.state;
- var tabIds = this.tabIds = this.tabIds || [];
- var panelIds = this.panelIds = this.panelIds || [];
- var diff = this.tabIds.length - this.getTabsCount();
-
- // Add ids if new tabs have been added
- // Don't bother removing ids, just keep them in case they are added again
- // This is more efficient, and keeps the uuid counter under control
- while (diff++ < 0) {
- tabIds.push((0, _uuid2.default)());
- panelIds.push((0, _uuid2.default)());
- }
-
- // Map children to dynamically setup refs
- return _react2.default.Children.map(children, function (child) {
- // null happens when conditionally rendering TabPanel/Tab
- // see https://github.com/reactjs/react-tabs/issues/37
- if (child === null) {
- return null;
- }
-
- var result = null;
-
- // Clone TabList and Tab components to have refs
- if (count++ === 0) {
- // TODO try setting the uuid in the "constructor" for `Tab`/`TabPanel`
- result = (0, _react.cloneElement)(child, {
- ref: 'tablist',
- children: _react2.default.Children.map(child.props.children, function (tab) {
- // null happens when conditionally rendering TabPanel/Tab
- // see https://github.com/reactjs/react-tabs/issues/37
- if (tab === null) {
- return null;
- }
-
- var ref = 'tabs-' + index;
- var id = tabIds[index];
- var panelId = panelIds[index];
- var selected = state.selectedIndex === index;
- var focus = selected && state.focus;
-
- index++;
-
- if (tab.type === _Tab2.default) {
- return (0, _react.cloneElement)(tab, {
- ref: ref,
- id: id,
- panelId: panelId,
- selected: selected,
- focus: focus
- });
- }
-
- return tab;
- })
- });
-
- // Reset index for panels
- index = 0;
- }
- // Clone TabPanel components to have refs
- else {
- var ref = 'panels-' + index;
- var id = panelIds[index];
- var tabId = tabIds[index];
- var selected = state.selectedIndex === index;
-
- index++;
-
- result = (0, _react.cloneElement)(child, {
- ref: ref,
- id: id,
- tabId: tabId,
- selected: selected
- });
- }
-
- return result;
- });
- },
- handleKeyDown: function handleKeyDown(e) {
- if (this.isTabFromContainer(e.target)) {
- var index = this.state.selectedIndex;
- var preventDefault = false;
-
- // Select next tab to the left
- if (e.keyCode === 37 || e.keyCode === 38) {
- index = this.getPrevTab(index);
- preventDefault = true;
- }
- // Select next tab to the right
- /* eslint brace-style:0 */
- else if (e.keyCode === 39 || e.keyCode === 40) {
- index = this.getNextTab(index);
- preventDefault = true;
- }
-
- // This prevents scrollbars from moving around
- if (preventDefault) {
- e.preventDefault();
- }
-
- this.setSelected(index, true);
- }
- },
- handleClick: function handleClick(e) {
- var node = e.target;
- do {
- // eslint-disable-line no-cond-assign
- if (this.isTabFromContainer(node)) {
- if (isTabDisabled(node)) {
- return;
- }
-
- var index = [].slice.call(node.parentNode.children).indexOf(node);
- this.setSelected(index);
- return;
- }
- } while ((node = node.parentNode) !== null);
- },
-
- // This is an anti-pattern, so sue me
- copyPropsToState: function copyPropsToState(props, state) {
- var selectedIndex = props.selectedIndex;
-
- // If no selectedIndex prop was supplied, then try
- // preserving the existing selectedIndex from state.
- // If the state has not selectedIndex, default
- // to the first tab in the TabList.
- //
- // TODO: Need automation testing around this
- // Manual testing can be done using examples/focus
- // See 'should preserve selectedIndex when typing' in specs/Tabs.spec.js
- if (selectedIndex === -1) {
- if (state && state.selectedIndex) {
- selectedIndex = state.selectedIndex;
- } else {
- selectedIndex = 0;
- }
- }
-
- return {
- selectedIndex: selectedIndex,
- focus: props.focus
- };
- },
-
- /**
- * Determine if a node from event.target is a Tab element for the current Tabs container.
- * If the clicked element is not a Tab, it returns false.
- * If it finds another Tabs container between the Tab and `this`, it returns false.
- */
- isTabFromContainer: function isTabFromContainer(node) {
- // return immediately if the clicked element is not a Tab.
- if (!isTabNode(node)) {
- return false;
- }
-
- // Check if the first occurrence of a Tabs container is `this` one.
- var nodeAncestor = node.parentElement;
- var tabsNode = (0, _reactDom.findDOMNode)(this);
- do {
- if (nodeAncestor === tabsNode) return true;else if (nodeAncestor.getAttribute('data-tabs')) break;
-
- nodeAncestor = nodeAncestor.parentElement;
- } while (nodeAncestor);
-
- return false;
- },
- render: function render() {
- var _this2 = this;
-
- // This fixes an issue with focus management.
- //
- // Ultimately, when focus is true, and an input has focus,
- // and any change on that input causes a state change/re-render,
- // focus gets sent back to the active tab, and input loses focus.
- //
- // Since the focus state only needs to be remembered
- // for the current render, we can reset it once the
- // render has happened.
- //
- // Don't use setState, because we don't want to re-render.
- //
- // See https://github.com/reactjs/react-tabs/pull/7
- if (this.state.focus) {
- setTimeout(function () {
- _this2.state.focus = false;
- }, 0);
- }
-
- var _props = this.props,
- className = _props.className,
- attributes = _objectWithoutProperties(_props, ['className']);
-
- // Delete all known props, so they don't get added to DOM
-
-
- delete attributes.selectedIndex;
- delete attributes.onSelect;
- delete attributes.focus;
- delete attributes.children;
- delete attributes.forceRenderTabPanel;
- delete attributes.onClick;
- delete attributes.onKeyDown;
-
- return _react2.default.createElement('div', _extends({}, attributes, {
- className: (0, _classnames2.default)('ReactTabs', 'react-tabs', className),
- onClick: this.handleClick,
- onKeyDown: this.handleKeyDown,
- 'data-tabs': true
- }), this.getChildren());
- }
- });
-
-/***/ }),
-/* 2 */
-/***/ (function(module, exports) {
-
- module.exports = __WEBPACK_EXTERNAL_MODULE_2__;
-
-/***/ }),
-/* 3 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- */
-
- if (process.env.NODE_ENV !== 'production') {
- var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&
- Symbol.for &&
- Symbol.for('react.element')) ||
- 0xeac7;
-
- var isValidElement = function(object) {
- return typeof object === 'object' &&
- object !== null &&
- object.$$typeof === REACT_ELEMENT_TYPE;
- };
-
- // By explicitly using `prop-types` you are opting into new development behavior.
- // http://fb.me/prop-types-in-prod
- var throwOnDirectAccess = true;
- module.exports = __webpack_require__(5)(isValidElement, throwOnDirectAccess);
- } else {
- // By explicitly using `prop-types` you are opting into new production behavior.
- // http://fb.me/prop-types-in-prod
- module.exports = __webpack_require__(11)();
- }
-
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
-
-/***/ }),
-/* 4 */
-/***/ (function(module, exports) {
-
- // shim for using process in browser
- var process = module.exports = {};
-
- // cached from whatever global is present so that test runners that stub it
- // don't break things. But we need to wrap it in a try catch in case it is
- // wrapped in strict mode code which doesn't define any globals. It's inside a
- // function because try/catches deoptimize in certain engines.
-
- var cachedSetTimeout;
- var cachedClearTimeout;
-
- function defaultSetTimout() {
- throw new Error('setTimeout has not been defined');
- }
- function defaultClearTimeout () {
- throw new Error('clearTimeout has not been defined');
- }
- (function () {
- try {
- if (typeof setTimeout === 'function') {
- cachedSetTimeout = setTimeout;
- } else {
- cachedSetTimeout = defaultSetTimout;
- }
- } catch (e) {
- cachedSetTimeout = defaultSetTimout;
- }
- try {
- if (typeof clearTimeout === 'function') {
- cachedClearTimeout = clearTimeout;
- } else {
- cachedClearTimeout = defaultClearTimeout;
- }
- } catch (e) {
- cachedClearTimeout = defaultClearTimeout;
- }
- } ())
- function runTimeout(fun) {
- if (cachedSetTimeout === setTimeout) {
- //normal enviroments in sane situations
- return setTimeout(fun, 0);
- }
- // if setTimeout wasn't available but was latter defined
- if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {
- cachedSetTimeout = setTimeout;
- return setTimeout(fun, 0);
- }
- try {
- // when when somebody has screwed with setTimeout but no I.E. maddness
- return cachedSetTimeout(fun, 0);
- } catch(e){
- try {
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
- return cachedSetTimeout.call(null, fun, 0);
- } catch(e){
- // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error
- return cachedSetTimeout.call(this, fun, 0);
- }
- }
-
-
- }
- function runClearTimeout(marker) {
- if (cachedClearTimeout === clearTimeout) {
- //normal enviroments in sane situations
- return clearTimeout(marker);
- }
- // if clearTimeout wasn't available but was latter defined
- if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {
- cachedClearTimeout = clearTimeout;
- return clearTimeout(marker);
- }
- try {
- // when when somebody has screwed with setTimeout but no I.E. maddness
- return cachedClearTimeout(marker);
- } catch (e){
- try {
- // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally
- return cachedClearTimeout.call(null, marker);
- } catch (e){
- // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.
- // Some versions of I.E. have different rules for clearTimeout vs setTimeout
- return cachedClearTimeout.call(this, marker);
- }
- }
-
-
-
- }
- var queue = [];
- var draining = false;
- var currentQueue;
- var queueIndex = -1;
-
- function cleanUpNextTick() {
- if (!draining || !currentQueue) {
- return;
- }
- draining = false;
- if (currentQueue.length) {
- queue = currentQueue.concat(queue);
- } else {
- queueIndex = -1;
- }
- if (queue.length) {
- drainQueue();
- }
- }
-
- function drainQueue() {
- if (draining) {
- return;
- }
- var timeout = runTimeout(cleanUpNextTick);
- draining = true;
-
- var len = queue.length;
- while(len) {
- currentQueue = queue;
- queue = [];
- while (++queueIndex < len) {
- if (currentQueue) {
- currentQueue[queueIndex].run();
- }
- }
- queueIndex = -1;
- len = queue.length;
- }
- currentQueue = null;
- draining = false;
- runClearTimeout(timeout);
- }
-
- process.nextTick = function (fun) {
- var args = new Array(arguments.length - 1);
- if (arguments.length > 1) {
- for (var i = 1; i < arguments.length; i++) {
- args[i - 1] = arguments[i];
- }
- }
- queue.push(new Item(fun, args));
- if (queue.length === 1 && !draining) {
- runTimeout(drainQueue);
- }
- };
-
- // v8 likes predictible objects
- function Item(fun, array) {
- this.fun = fun;
- this.array = array;
- }
- Item.prototype.run = function () {
- this.fun.apply(null, this.array);
- };
- process.title = 'browser';
- process.browser = true;
- process.env = {};
- process.argv = [];
- process.version = ''; // empty string to avoid regexp issues
- process.versions = {};
-
- function noop() {}
-
- process.on = noop;
- process.addListener = noop;
- process.once = noop;
- process.off = noop;
- process.removeListener = noop;
- process.removeAllListeners = noop;
- process.emit = noop;
-
- process.binding = function (name) {
- throw new Error('process.binding is not supported');
- };
-
- process.cwd = function () { return '/' };
- process.chdir = function (dir) {
- throw new Error('process.chdir is not supported');
- };
- process.umask = function() { return 0; };
-
-
-/***/ }),
-/* 5 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- */
-
- 'use strict';
-
- var emptyFunction = __webpack_require__(6);
- var invariant = __webpack_require__(7);
- var warning = __webpack_require__(8);
-
- var ReactPropTypesSecret = __webpack_require__(9);
- var checkPropTypes = __webpack_require__(10);
-
- module.exports = function(isValidElement, throwOnDirectAccess) {
- /* global Symbol */
- var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
- var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
-
- /**
- * Returns the iterator method function contained on the iterable object.
- *
- * Be sure to invoke the function with the iterable as context:
- *
- * var iteratorFn = getIteratorFn(myIterable);
- * if (iteratorFn) {
- * var iterator = iteratorFn.call(myIterable);
- * ...
- * }
- *
- * @param {?object} maybeIterable
- * @return {?function}
- */
- function getIteratorFn(maybeIterable) {
- var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
- if (typeof iteratorFn === 'function') {
- return iteratorFn;
- }
- }
-
- /**
- * Collection of methods that allow declaration and validation of props that are
- * supplied to React components. Example usage:
- *
- * var Props = require('ReactPropTypes');
- * var MyArticle = React.createClass({
- * propTypes: {
- * // An optional string prop named "description".
- * description: Props.string,
- *
- * // A required enum prop named "category".
- * category: Props.oneOf(['News','Photos']).isRequired,
- *
- * // A prop named "dialog" that requires an instance of Dialog.
- * dialog: Props.instanceOf(Dialog).isRequired
- * },
- * render: function() { ... }
- * });
- *
- * A more formal specification of how these methods are used:
- *
- * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
- * decl := ReactPropTypes.{type}(.isRequired)?
- *
- * Each and every declaration produces a function with the same signature. This
- * allows the creation of custom validation functions. For example:
- *
- * var MyLink = React.createClass({
- * propTypes: {
- * // An optional string or URI prop named "href".
- * href: function(props, propName, componentName) {
- * var propValue = props[propName];
- * if (propValue != null && typeof propValue !== 'string' &&
- * !(propValue instanceof URI)) {
- * return new Error(
- * 'Expected a string or an URI for ' + propName + ' in ' +
- * componentName
- * );
- * }
- * }
- * },
- * render: function() {...}
- * });
- *
- * @internal
- */
-
- var ANONYMOUS = '<>';
-
- // Important!
- // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
- var ReactPropTypes = {
- array: createPrimitiveTypeChecker('array'),
- bool: createPrimitiveTypeChecker('boolean'),
- func: createPrimitiveTypeChecker('function'),
- number: createPrimitiveTypeChecker('number'),
- object: createPrimitiveTypeChecker('object'),
- string: createPrimitiveTypeChecker('string'),
- symbol: createPrimitiveTypeChecker('symbol'),
-
- any: createAnyTypeChecker(),
- arrayOf: createArrayOfTypeChecker,
- element: createElementTypeChecker(),
- instanceOf: createInstanceTypeChecker,
- node: createNodeChecker(),
- objectOf: createObjectOfTypeChecker,
- oneOf: createEnumTypeChecker,
- oneOfType: createUnionTypeChecker,
- shape: createShapeTypeChecker
- };
-
- /**
- * inlined Object.is polyfill to avoid requiring consumers ship their own
- * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
- */
- /*eslint-disable no-self-compare*/
- function is(x, y) {
- // SameValue algorithm
- if (x === y) {
- // Steps 1-5, 7-10
- // Steps 6.b-6.e: +0 != -0
- return x !== 0 || 1 / x === 1 / y;
- } else {
- // Step 6.a: NaN == NaN
- return x !== x && y !== y;
- }
- }
- /*eslint-enable no-self-compare*/
-
- /**
- * We use an Error-like object for backward compatibility as people may call
- * PropTypes directly and inspect their output. However, we don't use real
- * Errors anymore. We don't inspect their stack anyway, and creating them
- * is prohibitively expensive if they are created too often, such as what
- * happens in oneOfType() for any type before the one that matched.
- */
- function PropTypeError(message) {
- this.message = message;
- this.stack = '';
- }
- // Make `instanceof Error` still work for returned errors.
- PropTypeError.prototype = Error.prototype;
-
- function createChainableTypeChecker(validate) {
- if (process.env.NODE_ENV !== 'production') {
- var manualPropTypeCallCache = {};
- var manualPropTypeWarningCount = 0;
- }
- function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
- componentName = componentName || ANONYMOUS;
- propFullName = propFullName || propName;
-
- if (secret !== ReactPropTypesSecret) {
- if (throwOnDirectAccess) {
- // New behavior only for users of `prop-types` package
- invariant(
- false,
- 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
- 'Use `PropTypes.checkPropTypes()` to call them. ' +
- 'Read more at http://fb.me/use-check-prop-types'
- );
- } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {
- // Old behavior for people using React.PropTypes
- var cacheKey = componentName + ':' + propName;
- if (
- !manualPropTypeCallCache[cacheKey] &&
- // Avoid spamming the console because they are often not actionable except for lib authors
- manualPropTypeWarningCount < 3
- ) {
- warning(
- false,
- 'You are manually calling a React.PropTypes validation ' +
- 'function for the `%s` prop on `%s`. This is deprecated ' +
- 'and will throw in the standalone `prop-types` package. ' +
- 'You may be seeing this warning due to a third-party PropTypes ' +
- 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',
- propFullName,
- componentName
- );
- manualPropTypeCallCache[cacheKey] = true;
- manualPropTypeWarningCount++;
- }
- }
- }
- if (props[propName] == null) {
- if (isRequired) {
- if (props[propName] === null) {
- return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
- }
- return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
- }
- return null;
- } else {
- return validate(props, propName, componentName, location, propFullName);
- }
- }
-
- var chainedCheckType = checkType.bind(null, false);
- chainedCheckType.isRequired = checkType.bind(null, true);
-
- return chainedCheckType;
- }
-
- function createPrimitiveTypeChecker(expectedType) {
- function validate(props, propName, componentName, location, propFullName, secret) {
- var propValue = props[propName];
- var propType = getPropType(propValue);
- if (propType !== expectedType) {
- // `propValue` being instance of, say, date/regexp, pass the 'object'
- // check, but we can offer a more precise error message here rather than
- // 'of type `object`'.
- var preciseType = getPreciseType(propValue);
-
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
- }
- return null;
- }
- return createChainableTypeChecker(validate);
- }
-
- function createAnyTypeChecker() {
- return createChainableTypeChecker(emptyFunction.thatReturnsNull);
- }
-
- function createArrayOfTypeChecker(typeChecker) {
- function validate(props, propName, componentName, location, propFullName) {
- if (typeof typeChecker !== 'function') {
- return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
- }
- var propValue = props[propName];
- if (!Array.isArray(propValue)) {
- var propType = getPropType(propValue);
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
- }
- for (var i = 0; i < propValue.length; i++) {
- var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
- if (error instanceof Error) {
- return error;
- }
- }
- return null;
- }
- return createChainableTypeChecker(validate);
- }
-
- function createElementTypeChecker() {
- function validate(props, propName, componentName, location, propFullName) {
- var propValue = props[propName];
- if (!isValidElement(propValue)) {
- var propType = getPropType(propValue);
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
- }
- return null;
- }
- return createChainableTypeChecker(validate);
- }
-
- function createInstanceTypeChecker(expectedClass) {
- function validate(props, propName, componentName, location, propFullName) {
- if (!(props[propName] instanceof expectedClass)) {
- var expectedClassName = expectedClass.name || ANONYMOUS;
- var actualClassName = getClassName(props[propName]);
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
- }
- return null;
- }
- return createChainableTypeChecker(validate);
- }
-
- function createEnumTypeChecker(expectedValues) {
- if (!Array.isArray(expectedValues)) {
- process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;
- return emptyFunction.thatReturnsNull;
- }
-
- function validate(props, propName, componentName, location, propFullName) {
- var propValue = props[propName];
- for (var i = 0; i < expectedValues.length; i++) {
- if (is(propValue, expectedValues[i])) {
- return null;
- }
- }
-
- var valuesString = JSON.stringify(expectedValues);
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
- }
- return createChainableTypeChecker(validate);
- }
-
- function createObjectOfTypeChecker(typeChecker) {
- function validate(props, propName, componentName, location, propFullName) {
- if (typeof typeChecker !== 'function') {
- return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
- }
- var propValue = props[propName];
- var propType = getPropType(propValue);
- if (propType !== 'object') {
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
- }
- for (var key in propValue) {
- if (propValue.hasOwnProperty(key)) {
- var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
- if (error instanceof Error) {
- return error;
- }
- }
- }
- return null;
- }
- return createChainableTypeChecker(validate);
- }
-
- function createUnionTypeChecker(arrayOfTypeCheckers) {
- if (!Array.isArray(arrayOfTypeCheckers)) {
- process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;
- return emptyFunction.thatReturnsNull;
- }
-
- function validate(props, propName, componentName, location, propFullName) {
- for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
- var checker = arrayOfTypeCheckers[i];
- if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
- return null;
- }
- }
-
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
- }
- return createChainableTypeChecker(validate);
- }
-
- function createNodeChecker() {
- function validate(props, propName, componentName, location, propFullName) {
- if (!isNode(props[propName])) {
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
- }
- return null;
- }
- return createChainableTypeChecker(validate);
- }
-
- function createShapeTypeChecker(shapeTypes) {
- function validate(props, propName, componentName, location, propFullName) {
- var propValue = props[propName];
- var propType = getPropType(propValue);
- if (propType !== 'object') {
- return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
- }
- for (var key in shapeTypes) {
- var checker = shapeTypes[key];
- if (!checker) {
- continue;
- }
- var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
- if (error) {
- return error;
- }
- }
- return null;
- }
- return createChainableTypeChecker(validate);
- }
-
- function isNode(propValue) {
- switch (typeof propValue) {
- case 'number':
- case 'string':
- case 'undefined':
- return true;
- case 'boolean':
- return !propValue;
- case 'object':
- if (Array.isArray(propValue)) {
- return propValue.every(isNode);
- }
- if (propValue === null || isValidElement(propValue)) {
- return true;
- }
-
- var iteratorFn = getIteratorFn(propValue);
- if (iteratorFn) {
- var iterator = iteratorFn.call(propValue);
- var step;
- if (iteratorFn !== propValue.entries) {
- while (!(step = iterator.next()).done) {
- if (!isNode(step.value)) {
- return false;
- }
- }
- } else {
- // Iterator will provide entry [k,v] tuples rather than values.
- while (!(step = iterator.next()).done) {
- var entry = step.value;
- if (entry) {
- if (!isNode(entry[1])) {
- return false;
- }
- }
- }
- }
- } else {
- return false;
- }
-
- return true;
- default:
- return false;
- }
- }
-
- function isSymbol(propType, propValue) {
- // Native Symbol.
- if (propType === 'symbol') {
- return true;
- }
-
- // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
- if (propValue['@@toStringTag'] === 'Symbol') {
- return true;
- }
-
- // Fallback for non-spec compliant Symbols which are polyfilled.
- if (typeof Symbol === 'function' && propValue instanceof Symbol) {
- return true;
- }
-
- return false;
- }
-
- // Equivalent of `typeof` but with special handling for array and regexp.
- function getPropType(propValue) {
- var propType = typeof propValue;
- if (Array.isArray(propValue)) {
- return 'array';
- }
- if (propValue instanceof RegExp) {
- // Old webkits (at least until Android 4.0) return 'function' rather than
- // 'object' for typeof a RegExp. We'll normalize this here so that /bla/
- // passes PropTypes.object.
- return 'object';
- }
- if (isSymbol(propType, propValue)) {
- return 'symbol';
- }
- return propType;
- }
-
- // This handles more types than `getPropType`. Only used for error messages.
- // See `createPrimitiveTypeChecker`.
- function getPreciseType(propValue) {
- var propType = getPropType(propValue);
- if (propType === 'object') {
- if (propValue instanceof Date) {
- return 'date';
- } else if (propValue instanceof RegExp) {
- return 'regexp';
- }
- }
- return propType;
- }
-
- // Returns class name of the object, if any.
- function getClassName(propValue) {
- if (!propValue.constructor || !propValue.constructor.name) {
- return ANONYMOUS;
- }
- return propValue.constructor.name;
- }
-
- ReactPropTypes.checkPropTypes = checkPropTypes;
- ReactPropTypes.PropTypes = ReactPropTypes;
-
- return ReactPropTypes;
- };
-
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
-
-/***/ }),
-/* 6 */
-/***/ (function(module, exports) {
-
- "use strict";
-
- /**
- * Copyright (c) 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- *
- */
-
- function makeEmptyFunction(arg) {
- return function () {
- return arg;
- };
- }
-
- /**
- * This function accepts and discards inputs; it has no side effects. This is
- * primarily useful idiomatically for overridable function endpoints which
- * always need to be callable, since JS lacks a null-call idiom ala Cocoa.
- */
- var emptyFunction = function emptyFunction() {};
-
- emptyFunction.thatReturns = makeEmptyFunction;
- emptyFunction.thatReturnsFalse = makeEmptyFunction(false);
- emptyFunction.thatReturnsTrue = makeEmptyFunction(true);
- emptyFunction.thatReturnsNull = makeEmptyFunction(null);
- emptyFunction.thatReturnsThis = function () {
- return this;
- };
- emptyFunction.thatReturnsArgument = function (arg) {
- return arg;
- };
-
- module.exports = emptyFunction;
-
-/***/ }),
-/* 7 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright (c) 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- */
-
- 'use strict';
-
- /**
- * Use invariant() to assert state which your program assumes to be true.
- *
- * Provide sprintf-style format (only %s is supported) and arguments
- * to provide information about what broke and what you were
- * expecting.
- *
- * The invariant message will be stripped in production, but the invariant
- * will remain to ensure logic does not differ in production.
- */
-
- var validateFormat = function validateFormat(format) {};
-
- if (process.env.NODE_ENV !== 'production') {
- validateFormat = function validateFormat(format) {
- if (format === undefined) {
- throw new Error('invariant requires an error message argument');
- }
- };
- }
-
- function invariant(condition, format, a, b, c, d, e, f) {
- validateFormat(format);
-
- if (!condition) {
- var error;
- if (format === undefined) {
- error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
- } else {
- var args = [a, b, c, d, e, f];
- var argIndex = 0;
- error = new Error(format.replace(/%s/g, function () {
- return args[argIndex++];
- }));
- error.name = 'Invariant Violation';
- }
-
- error.framesToPop = 1; // we don't care about invariant's own frame
- throw error;
- }
- }
-
- module.exports = invariant;
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
-
-/***/ }),
-/* 8 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2014-2015, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- */
-
- 'use strict';
-
- var emptyFunction = __webpack_require__(6);
-
- /**
- * Similar to invariant but only logs a warning if the condition is not met.
- * This can be used to log issues in development environments in critical
- * paths. Removing the logging code for production environments will keep the
- * same logic and follow the same code paths.
- */
-
- var warning = emptyFunction;
-
- if (process.env.NODE_ENV !== 'production') {
- (function () {
- var printWarning = function printWarning(format) {
- for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- args[_key - 1] = arguments[_key];
- }
-
- var argIndex = 0;
- var message = 'Warning: ' + format.replace(/%s/g, function () {
- return args[argIndex++];
- });
- if (typeof console !== 'undefined') {
- console.error(message);
- }
- try {
- // --- Welcome to debugging React ---
- // This error was thrown as a convenience so that you can use this stack
- // to find the callsite that caused this warning to fire.
- throw new Error(message);
- } catch (x) {}
- };
-
- warning = function warning(condition, format) {
- if (format === undefined) {
- throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
- }
-
- if (format.indexOf('Failed Composite propType: ') === 0) {
- return; // Ignore CompositeComponent proptype check.
- }
-
- if (!condition) {
- for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
- args[_key2 - 2] = arguments[_key2];
- }
-
- printWarning.apply(undefined, [format].concat(args));
- }
- };
- })();
- }
-
- module.exports = warning;
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
-
-/***/ }),
-/* 9 */
-/***/ (function(module, exports) {
-
- /**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- */
-
- 'use strict';
-
- var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
-
- module.exports = ReactPropTypesSecret;
-
-
-/***/ }),
-/* 10 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- */
-
- 'use strict';
-
- if (process.env.NODE_ENV !== 'production') {
- var invariant = __webpack_require__(7);
- var warning = __webpack_require__(8);
- var ReactPropTypesSecret = __webpack_require__(9);
- var loggedTypeFailures = {};
- }
-
- /**
- * Assert that the values match with the type specs.
- * Error messages are memorized and will only be shown once.
- *
- * @param {object} typeSpecs Map of name to a ReactPropType
- * @param {object} values Runtime values that need to be type-checked
- * @param {string} location e.g. "prop", "context", "child context"
- * @param {string} componentName Name of the component for error messages.
- * @param {?Function} getStack Returns the component stack.
- * @private
- */
- function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
- if (process.env.NODE_ENV !== 'production') {
- for (var typeSpecName in typeSpecs) {
- if (typeSpecs.hasOwnProperty(typeSpecName)) {
- var error;
- // Prop type validation may throw. In case they do, we don't want to
- // fail the render phase where it didn't fail before. So we log it.
- // After these have been cleaned up, we'll let them throw.
- try {
- // This is intentionally an invariant that gets caught. It's the same
- // behavior as without this statement except with a better message.
- invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);
- error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
- } catch (ex) {
- error = ex;
- }
- warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);
- if (error instanceof Error && !(error.message in loggedTypeFailures)) {
- // Only monitor this failure once because there tends to be a lot of the
- // same error.
- loggedTypeFailures[error.message] = true;
-
- var stack = getStack ? getStack() : '';
-
- warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');
- }
- }
- }
- }
- }
-
- module.exports = checkPropTypes;
-
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
-
-/***/ }),
-/* 11 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- */
-
- 'use strict';
-
- var emptyFunction = __webpack_require__(6);
- var invariant = __webpack_require__(7);
-
- module.exports = function() {
- // Important!
- // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
- function shim() {
- invariant(
- false,
- 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
- 'Use PropTypes.checkPropTypes() to call them. ' +
- 'Read more at http://fb.me/use-check-prop-types'
- );
- };
- shim.isRequired = shim;
- function getShim() {
- return shim;
- };
- var ReactPropTypes = {
- array: shim,
- bool: shim,
- func: shim,
- number: shim,
- object: shim,
- string: shim,
- symbol: shim,
-
- any: shim,
- arrayOf: getShim,
- element: shim,
- instanceOf: getShim,
- node: shim,
- objectOf: getShim,
- oneOf: getShim,
- oneOfType: getShim,
- shape: getShim
- };
-
- ReactPropTypes.checkPropTypes = emptyFunction;
- ReactPropTypes.PropTypes = ReactPropTypes;
-
- return ReactPropTypes;
- };
-
-
-/***/ }),
-/* 12 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- */
-
- 'use strict';
-
- var React = __webpack_require__(2);
- var factory = __webpack_require__(13);
-
- // Hack to grab NoopUpdateQueue from isomorphic React
- var ReactNoopUpdateQueue = new React.Component().updater;
-
- module.exports = factory(
- React.Component,
- React.isValidElement,
- ReactNoopUpdateQueue
- );
-
-
-/***/ }),
-/* 13 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- */
-
- 'use strict';
-
- var _assign = __webpack_require__(14);
-
- var emptyObject = __webpack_require__(15);
- var _invariant = __webpack_require__(7);
-
- if (process.env.NODE_ENV !== 'production') {
- var warning = __webpack_require__(8);
- }
-
- var MIXINS_KEY = 'mixins';
-
- // Helper function to allow the creation of anonymous functions which do not
- // have .name set to the name of the variable being assigned to.
- function identity(fn) {
- return fn;
- }
-
- var ReactPropTypeLocationNames;
- if (process.env.NODE_ENV !== 'production') {
- ReactPropTypeLocationNames = {
- prop: 'prop',
- context: 'context',
- childContext: 'child context',
- };
- } else {
- ReactPropTypeLocationNames = {};
- }
-
- function factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {
- /**
- * Policies that describe methods in `ReactClassInterface`.
- */
-
-
- var injectedMixins = [];
-
- /**
- * Composite components are higher-level components that compose other composite
- * or host components.
- *
- * To create a new type of `ReactClass`, pass a specification of
- * your new class to `React.createClass`. The only requirement of your class
- * specification is that you implement a `render` method.
- *
- * var MyComponent = React.createClass({
- * render: function() {
- * return
Hello World
;
- * }
- * });
- *
- * The class specification supports a specific protocol of methods that have
- * special meaning (e.g. `render`). See `ReactClassInterface` for
- * more the comprehensive protocol. Any other properties and methods in the
- * class specification will be available on the prototype.
- *
- * @interface ReactClassInterface
- * @internal
- */
- var ReactClassInterface = {
-
- /**
- * An array of Mixin objects to include when defining your component.
- *
- * @type {array}
- * @optional
- */
- mixins: 'DEFINE_MANY',
-
- /**
- * An object containing properties and methods that should be defined on
- * the component's constructor instead of its prototype (static methods).
- *
- * @type {object}
- * @optional
- */
- statics: 'DEFINE_MANY',
-
- /**
- * Definition of prop types for this component.
- *
- * @type {object}
- * @optional
- */
- propTypes: 'DEFINE_MANY',
-
- /**
- * Definition of context types for this component.
- *
- * @type {object}
- * @optional
- */
- contextTypes: 'DEFINE_MANY',
-
- /**
- * Definition of context types this component sets for its children.
- *
- * @type {object}
- * @optional
- */
- childContextTypes: 'DEFINE_MANY',
-
- // ==== Definition methods ====
-
- /**
- * Invoked when the component is mounted. Values in the mapping will be set on
- * `this.props` if that prop is not specified (i.e. using an `in` check).
- *
- * This method is invoked before `getInitialState` and therefore cannot rely
- * on `this.state` or use `this.setState`.
- *
- * @return {object}
- * @optional
- */
- getDefaultProps: 'DEFINE_MANY_MERGED',
-
- /**
- * Invoked once before the component is mounted. The return value will be used
- * as the initial value of `this.state`.
- *
- * getInitialState: function() {
- * return {
- * isOn: false,
- * fooBaz: new BazFoo()
- * }
- * }
- *
- * @return {object}
- * @optional
- */
- getInitialState: 'DEFINE_MANY_MERGED',
-
- /**
- * @return {object}
- * @optional
- */
- getChildContext: 'DEFINE_MANY_MERGED',
-
- /**
- * Uses props from `this.props` and state from `this.state` to render the
- * structure of the component.
- *
- * No guarantees are made about when or how often this method is invoked, so
- * it must not have side effects.
- *
- * render: function() {
- * var name = this.props.name;
- * return
Hello, {name}!
;
- * }
- *
- * @return {ReactComponent}
- * @nosideeffects
- * @required
- */
- render: 'DEFINE_ONCE',
-
- // ==== Delegate methods ====
-
- /**
- * Invoked when the component is initially created and about to be mounted.
- * This may have side effects, but any external subscriptions or data created
- * by this method must be cleaned up in `componentWillUnmount`.
- *
- * @optional
- */
- componentWillMount: 'DEFINE_MANY',
-
- /**
- * Invoked when the component has been mounted and has a DOM representation.
- * However, there is no guarantee that the DOM node is in the document.
- *
- * Use this as an opportunity to operate on the DOM when the component has
- * been mounted (initialized and rendered) for the first time.
- *
- * @param {DOMElement} rootNode DOM element representing the component.
- * @optional
- */
- componentDidMount: 'DEFINE_MANY',
-
- /**
- * Invoked before the component receives new props.
- *
- * Use this as an opportunity to react to a prop transition by updating the
- * state using `this.setState`. Current props are accessed via `this.props`.
- *
- * componentWillReceiveProps: function(nextProps, nextContext) {
- * this.setState({
- * likesIncreasing: nextProps.likeCount > this.props.likeCount
- * });
- * }
- *
- * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop
- * transition may cause a state change, but the opposite is not true. If you
- * need it, you are probably looking for `componentWillUpdate`.
- *
- * @param {object} nextProps
- * @optional
- */
- componentWillReceiveProps: 'DEFINE_MANY',
-
- /**
- * Invoked while deciding if the component should be updated as a result of
- * receiving new props, state and/or context.
- *
- * Use this as an opportunity to `return false` when you're certain that the
- * transition to the new props/state/context will not require a component
- * update.
- *
- * shouldComponentUpdate: function(nextProps, nextState, nextContext) {
- * return !equal(nextProps, this.props) ||
- * !equal(nextState, this.state) ||
- * !equal(nextContext, this.context);
- * }
- *
- * @param {object} nextProps
- * @param {?object} nextState
- * @param {?object} nextContext
- * @return {boolean} True if the component should update.
- * @optional
- */
- shouldComponentUpdate: 'DEFINE_ONCE',
-
- /**
- * Invoked when the component is about to update due to a transition from
- * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`
- * and `nextContext`.
- *
- * Use this as an opportunity to perform preparation before an update occurs.
- *
- * NOTE: You **cannot** use `this.setState()` in this method.
- *
- * @param {object} nextProps
- * @param {?object} nextState
- * @param {?object} nextContext
- * @param {ReactReconcileTransaction} transaction
- * @optional
- */
- componentWillUpdate: 'DEFINE_MANY',
-
- /**
- * Invoked when the component's DOM representation has been updated.
- *
- * Use this as an opportunity to operate on the DOM when the component has
- * been updated.
- *
- * @param {object} prevProps
- * @param {?object} prevState
- * @param {?object} prevContext
- * @param {DOMElement} rootNode DOM element representing the component.
- * @optional
- */
- componentDidUpdate: 'DEFINE_MANY',
-
- /**
- * Invoked when the component is about to be removed from its parent and have
- * its DOM representation destroyed.
- *
- * Use this as an opportunity to deallocate any external resources.
- *
- * NOTE: There is no `componentDidUnmount` since your component will have been
- * destroyed by that point.
- *
- * @optional
- */
- componentWillUnmount: 'DEFINE_MANY',
-
- // ==== Advanced methods ====
-
- /**
- * Updates the component's currently mounted DOM representation.
- *
- * By default, this implements React's rendering and reconciliation algorithm.
- * Sophisticated clients may wish to override this.
- *
- * @param {ReactReconcileTransaction} transaction
- * @internal
- * @overridable
- */
- updateComponent: 'OVERRIDE_BASE'
-
- };
-
- /**
- * Mapping from class specification keys to special processing functions.
- *
- * Although these are declared like instance properties in the specification
- * when defining classes using `React.createClass`, they are actually static
- * and are accessible on the constructor instead of the prototype. Despite
- * being static, they must be defined outside of the "statics" key under
- * which all other static methods are defined.
- */
- var RESERVED_SPEC_KEYS = {
- displayName: function (Constructor, displayName) {
- Constructor.displayName = displayName;
- },
- mixins: function (Constructor, mixins) {
- if (mixins) {
- for (var i = 0; i < mixins.length; i++) {
- mixSpecIntoComponent(Constructor, mixins[i]);
- }
- }
- },
- childContextTypes: function (Constructor, childContextTypes) {
- if (process.env.NODE_ENV !== 'production') {
- validateTypeDef(Constructor, childContextTypes, 'childContext');
- }
- Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, childContextTypes);
- },
- contextTypes: function (Constructor, contextTypes) {
- if (process.env.NODE_ENV !== 'production') {
- validateTypeDef(Constructor, contextTypes, 'context');
- }
- Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes);
- },
- /**
- * Special case getDefaultProps which should move into statics but requires
- * automatic merging.
- */
- getDefaultProps: function (Constructor, getDefaultProps) {
- if (Constructor.getDefaultProps) {
- Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps);
- } else {
- Constructor.getDefaultProps = getDefaultProps;
- }
- },
- propTypes: function (Constructor, propTypes) {
- if (process.env.NODE_ENV !== 'production') {
- validateTypeDef(Constructor, propTypes, 'prop');
- }
- Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);
- },
- statics: function (Constructor, statics) {
- mixStaticSpecIntoComponent(Constructor, statics);
- },
- autobind: function () {} };
-
- function validateTypeDef(Constructor, typeDef, location) {
- for (var propName in typeDef) {
- if (typeDef.hasOwnProperty(propName)) {
- // use a warning instead of an _invariant so components
- // don't show up in prod but only in __DEV__
- process.env.NODE_ENV !== 'production' ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : void 0;
- }
- }
- }
-
- function validateMethodOverride(isAlreadyDefined, name) {
- var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;
-
- // Disallow overriding of base class methods unless explicitly allowed.
- if (ReactClassMixin.hasOwnProperty(name)) {
- _invariant(specPolicy === 'OVERRIDE_BASE', 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name);
- }
-
- // Disallow defining methods more than once unless explicitly allowed.
- if (isAlreadyDefined) {
- _invariant(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED', 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name);
- }
- }
-
- /**
- * Mixin helper which handles policy validation and reserved
- * specification keys when building React classes.
- */
- function mixSpecIntoComponent(Constructor, spec) {
- if (!spec) {
- if (process.env.NODE_ENV !== 'production') {
- var typeofSpec = typeof spec;
- var isMixinValid = typeofSpec === 'object' && spec !== null;
-
- process.env.NODE_ENV !== 'production' ? warning(isMixinValid, '%s: You\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0;
- }
-
- return;
- }
-
- _invariant(typeof spec !== 'function', 'ReactClass: You\'re attempting to ' + 'use a component class or function as a mixin. Instead, just use a ' + 'regular object.');
- _invariant(!isValidElement(spec), 'ReactClass: You\'re attempting to ' + 'use a component as a mixin. Instead, just use a regular object.');
-
- var proto = Constructor.prototype;
- var autoBindPairs = proto.__reactAutoBindPairs;
-
- // By handling mixins before any other properties, we ensure the same
- // chaining order is applied to methods with DEFINE_MANY policy, whether
- // mixins are listed before or after these methods in the spec.
- if (spec.hasOwnProperty(MIXINS_KEY)) {
- RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);
- }
-
- for (var name in spec) {
- if (!spec.hasOwnProperty(name)) {
- continue;
- }
-
- if (name === MIXINS_KEY) {
- // We have already handled mixins in a special case above.
- continue;
- }
-
- var property = spec[name];
- var isAlreadyDefined = proto.hasOwnProperty(name);
- validateMethodOverride(isAlreadyDefined, name);
-
- if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {
- RESERVED_SPEC_KEYS[name](Constructor, property);
- } else {
- // Setup methods on prototype:
- // The following member methods should not be automatically bound:
- // 1. Expected ReactClass methods (in the "interface").
- // 2. Overridden methods (that were mixed in).
- var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);
- var isFunction = typeof property === 'function';
- var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;
-
- if (shouldAutoBind) {
- autoBindPairs.push(name, property);
- proto[name] = property;
- } else {
- if (isAlreadyDefined) {
- var specPolicy = ReactClassInterface[name];
-
- // These cases should already be caught by validateMethodOverride.
- _invariant(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY'), 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name);
-
- // For methods which are defined more than once, call the existing
- // methods before calling the new property, merging if appropriate.
- if (specPolicy === 'DEFINE_MANY_MERGED') {
- proto[name] = createMergedResultFunction(proto[name], property);
- } else if (specPolicy === 'DEFINE_MANY') {
- proto[name] = createChainedFunction(proto[name], property);
- }
- } else {
- proto[name] = property;
- if (process.env.NODE_ENV !== 'production') {
- // Add verbose displayName to the function, which helps when looking
- // at profiling tools.
- if (typeof property === 'function' && spec.displayName) {
- proto[name].displayName = spec.displayName + '_' + name;
- }
- }
- }
- }
- }
- }
- }
-
- function mixStaticSpecIntoComponent(Constructor, statics) {
- if (!statics) {
- return;
- }
- for (var name in statics) {
- var property = statics[name];
- if (!statics.hasOwnProperty(name)) {
- continue;
- }
-
- var isReserved = name in RESERVED_SPEC_KEYS;
- _invariant(!isReserved, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name);
-
- var isInherited = name in Constructor;
- _invariant(!isInherited, 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name);
- Constructor[name] = property;
- }
- }
-
- /**
- * Merge two objects, but throw if both contain the same key.
- *
- * @param {object} one The first object, which is mutated.
- * @param {object} two The second object
- * @return {object} one after it has been mutated to contain everything in two.
- */
- function mergeIntoWithNoDuplicateKeys(one, two) {
- _invariant(one && two && typeof one === 'object' && typeof two === 'object', 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.');
-
- for (var key in two) {
- if (two.hasOwnProperty(key)) {
- _invariant(one[key] === undefined, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key);
- one[key] = two[key];
- }
- }
- return one;
- }
-
- /**
- * Creates a function that invokes two functions and merges their return values.
- *
- * @param {function} one Function to invoke first.
- * @param {function} two Function to invoke second.
- * @return {function} Function that invokes the two argument functions.
- * @private
- */
- function createMergedResultFunction(one, two) {
- return function mergedResult() {
- var a = one.apply(this, arguments);
- var b = two.apply(this, arguments);
- if (a == null) {
- return b;
- } else if (b == null) {
- return a;
- }
- var c = {};
- mergeIntoWithNoDuplicateKeys(c, a);
- mergeIntoWithNoDuplicateKeys(c, b);
- return c;
- };
- }
-
- /**
- * Creates a function that invokes two functions and ignores their return vales.
- *
- * @param {function} one Function to invoke first.
- * @param {function} two Function to invoke second.
- * @return {function} Function that invokes the two argument functions.
- * @private
- */
- function createChainedFunction(one, two) {
- return function chainedFunction() {
- one.apply(this, arguments);
- two.apply(this, arguments);
- };
- }
-
- /**
- * Binds a method to the component.
- *
- * @param {object} component Component whose method is going to be bound.
- * @param {function} method Method to be bound.
- * @return {function} The bound method.
- */
- function bindAutoBindMethod(component, method) {
- var boundMethod = method.bind(component);
- if (process.env.NODE_ENV !== 'production') {
- boundMethod.__reactBoundContext = component;
- boundMethod.__reactBoundMethod = method;
- boundMethod.__reactBoundArguments = null;
- var componentName = component.constructor.displayName;
- var _bind = boundMethod.bind;
- boundMethod.bind = function (newThis) {
- for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- args[_key - 1] = arguments[_key];
- }
-
- // User is trying to bind() an autobound method; we effectively will
- // ignore the value of "this" that the user is trying to use, so
- // let's warn.
- if (newThis !== component && newThis !== null) {
- process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : void 0;
- } else if (!args.length) {
- process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName) : void 0;
- return boundMethod;
- }
- var reboundMethod = _bind.apply(boundMethod, arguments);
- reboundMethod.__reactBoundContext = component;
- reboundMethod.__reactBoundMethod = method;
- reboundMethod.__reactBoundArguments = args;
- return reboundMethod;
- };
- }
- return boundMethod;
- }
-
- /**
- * Binds all auto-bound methods in a component.
- *
- * @param {object} component Component whose method is going to be bound.
- */
- function bindAutoBindMethods(component) {
- var pairs = component.__reactAutoBindPairs;
- for (var i = 0; i < pairs.length; i += 2) {
- var autoBindKey = pairs[i];
- var method = pairs[i + 1];
- component[autoBindKey] = bindAutoBindMethod(component, method);
- }
- }
-
- var IsMountedMixin = {
- componentDidMount: function () {
- this.__isMounted = true;
- },
- componentWillUnmount: function () {
- this.__isMounted = false;
- }
- };
-
- /**
- * Add more to the ReactClass base class. These are all legacy features and
- * therefore not already part of the modern ReactComponent.
- */
- var ReactClassMixin = {
-
- /**
- * TODO: This will be deprecated because state should always keep a consistent
- * type signature and the only use case for this, is to avoid that.
- */
- replaceState: function (newState, callback) {
- this.updater.enqueueReplaceState(this, newState, callback);
- },
-
- /**
- * Checks whether or not this composite component is mounted.
- * @return {boolean} True if mounted, false otherwise.
- * @protected
- * @final
- */
- isMounted: function () {
- if (process.env.NODE_ENV !== 'production') {
- process.env.NODE_ENV !== 'production' ? warning(this.__didWarnIsMounted, '%s: isMounted is deprecated. Instead, make sure to clean up ' + 'subscriptions and pending requests in componentWillUnmount to ' + 'prevent memory leaks.', this.constructor && this.constructor.displayName || this.name || 'Component') : void 0;
- this.__didWarnIsMounted = true;
- }
- return !!this.__isMounted;
- }
- };
-
- var ReactClassComponent = function () {};
- _assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);
-
- /**
- * Creates a composite component class given a class specification.
- * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass
- *
- * @param {object} spec Class specification (which must define `render`).
- * @return {function} Component constructor function.
- * @public
- */
- function createClass(spec) {
- // To keep our warnings more understandable, we'll use a little hack here to
- // ensure that Constructor.name !== 'Constructor'. This makes sure we don't
- // unnecessarily identify a class without displayName as 'Constructor'.
- var Constructor = identity(function (props, context, updater) {
- // This constructor gets overridden by mocks. The argument is used
- // by mocks to assert on what gets mounted.
-
- if (process.env.NODE_ENV !== 'production') {
- process.env.NODE_ENV !== 'production' ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : void 0;
- }
-
- // Wire up auto-binding
- if (this.__reactAutoBindPairs.length) {
- bindAutoBindMethods(this);
- }
-
- this.props = props;
- this.context = context;
- this.refs = emptyObject;
- this.updater = updater || ReactNoopUpdateQueue;
-
- this.state = null;
-
- // ReactClasses doesn't have constructors. Instead, they use the
- // getInitialState and componentWillMount methods for initialization.
-
- var initialState = this.getInitialState ? this.getInitialState() : null;
- if (process.env.NODE_ENV !== 'production') {
- // We allow auto-mocks to proceed as if they're returning null.
- if (initialState === undefined && this.getInitialState._isMockFunction) {
- // This is probably bad practice. Consider warning here and
- // deprecating this convenience.
- initialState = null;
- }
- }
- _invariant(typeof initialState === 'object' && !Array.isArray(initialState), '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent');
-
- this.state = initialState;
- });
- Constructor.prototype = new ReactClassComponent();
- Constructor.prototype.constructor = Constructor;
- Constructor.prototype.__reactAutoBindPairs = [];
-
- injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));
-
- mixSpecIntoComponent(Constructor, IsMountedMixin);
- mixSpecIntoComponent(Constructor, spec);
-
- // Initialize the defaultProps property after all mixins have been merged.
- if (Constructor.getDefaultProps) {
- Constructor.defaultProps = Constructor.getDefaultProps();
- }
-
- if (process.env.NODE_ENV !== 'production') {
- // This is a tag to indicate that the use of these method names is ok,
- // since it's used with createClass. If it's not, then it's likely a
- // mistake so we'll warn you to use the static property, property
- // initializer or constructor respectively.
- if (Constructor.getDefaultProps) {
- Constructor.getDefaultProps.isReactClassApproved = {};
- }
- if (Constructor.prototype.getInitialState) {
- Constructor.prototype.getInitialState.isReactClassApproved = {};
- }
- }
-
- _invariant(Constructor.prototype.render, 'createClass(...): Class specification must implement a `render` method.');
-
- if (process.env.NODE_ENV !== 'production') {
- process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : void 0;
- process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0;
- }
-
- // Reduce time spent doing lookups by setting these on the prototype.
- for (var methodName in ReactClassInterface) {
- if (!Constructor.prototype[methodName]) {
- Constructor.prototype[methodName] = null;
- }
- }
-
- return Constructor;
- }
-
- return createClass;
- }
-
- module.exports = factory;
-
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
-
-/***/ }),
-/* 14 */
-/***/ (function(module, exports) {
-
- /*
- object-assign
- (c) Sindre Sorhus
- @license MIT
- */
-
- 'use strict';
- /* eslint-disable no-unused-vars */
- var getOwnPropertySymbols = Object.getOwnPropertySymbols;
- var hasOwnProperty = Object.prototype.hasOwnProperty;
- var propIsEnumerable = Object.prototype.propertyIsEnumerable;
-
- function toObject(val) {
- if (val === null || val === undefined) {
- throw new TypeError('Object.assign cannot be called with null or undefined');
- }
-
- return Object(val);
- }
-
- function shouldUseNative() {
- try {
- if (!Object.assign) {
- return false;
- }
-
- // Detect buggy property enumeration order in older V8 versions.
-
- // https://bugs.chromium.org/p/v8/issues/detail?id=4118
- var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
- test1[5] = 'de';
- if (Object.getOwnPropertyNames(test1)[0] === '5') {
- return false;
- }
-
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
- var test2 = {};
- for (var i = 0; i < 10; i++) {
- test2['_' + String.fromCharCode(i)] = i;
- }
- var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
- return test2[n];
- });
- if (order2.join('') !== '0123456789') {
- return false;
- }
-
- // https://bugs.chromium.org/p/v8/issues/detail?id=3056
- var test3 = {};
- 'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
- test3[letter] = letter;
- });
- if (Object.keys(Object.assign({}, test3)).join('') !==
- 'abcdefghijklmnopqrst') {
- return false;
- }
-
- return true;
- } catch (err) {
- // We don't expect any of the above to throw, but better to be safe.
- return false;
- }
- }
-
- module.exports = shouldUseNative() ? Object.assign : function (target, source) {
- var from;
- var to = toObject(target);
- var symbols;
-
- for (var s = 1; s < arguments.length; s++) {
- from = Object(arguments[s]);
-
- for (var key in from) {
- if (hasOwnProperty.call(from, key)) {
- to[key] = from[key];
- }
- }
-
- if (getOwnPropertySymbols) {
- symbols = getOwnPropertySymbols(from);
- for (var i = 0; i < symbols.length; i++) {
- if (propIsEnumerable.call(from, symbols[i])) {
- to[symbols[i]] = from[symbols[i]];
- }
- }
- }
- }
-
- return to;
- };
-
-
-/***/ }),
-/* 15 */
-/***/ (function(module, exports, __webpack_require__) {
-
- /* WEBPACK VAR INJECTION */(function(process) {/**
- * Copyright (c) 2013-present, Facebook, Inc.
- * All rights reserved.
- *
- * This source code is licensed under the BSD-style license found in the
- * LICENSE file in the root directory of this source tree. An additional grant
- * of patent rights can be found in the PATENTS file in the same directory.
- *
- */
-
- 'use strict';
-
- var emptyObject = {};
-
- if (process.env.NODE_ENV !== 'production') {
- Object.freeze(emptyObject);
- }
-
- module.exports = emptyObject;
- /* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))
-
-/***/ }),
-/* 16 */
-/***/ (function(module, exports) {
-
- module.exports = __WEBPACK_EXTERNAL_MODULE_16__;
-
-/***/ }),
-/* 17 */
-/***/ (function(module, exports, __webpack_require__) {
-
- var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
- Copyright (c) 2016 Jed Watson.
- Licensed under the MIT License (MIT), see
- http://jedwatson.github.io/classnames
- */
- /* global define */
-
- (function () {
- 'use strict';
-
- var hasOwn = {}.hasOwnProperty;
-
- function classNames () {
- var classes = [];
-
- for (var i = 0; i < arguments.length; i++) {
- var arg = arguments[i];
- if (!arg) continue;
-
- var argType = typeof arg;
-
- if (argType === 'string' || argType === 'number') {
- classes.push(arg);
- } else if (Array.isArray(arg)) {
- classes.push(classNames.apply(null, arg));
- } else if (argType === 'object') {
- for (var key in arg) {
- if (hasOwn.call(arg, key) && arg[key]) {
- classes.push(key);
- }
- }
- }
- }
-
- return classes.join(' ');
- }
-
- if (typeof module !== 'undefined' && module.exports) {
- module.exports = classNames;
- } else if (true) {
- // register as 'classnames', consistent with npm package name
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {
- return classNames;
- }.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
- } else {
- window.classNames = classNames;
- }
- }());
-
-
-/***/ }),
-/* 18 */
-/***/ (function(module, exports, __webpack_require__) {
-
- !(function() {
- function jss(blocks) {
- var css = [];
- for (var block in blocks)
- css.push(createStyleBlock(block, blocks[block]));
- injectCSS(css);
- }
-
- function createStyleBlock(selector, rules) {
- return selector + ' {\n' + parseRules(rules) + '\n}';
- }
-
- function parseRules(rules) {
- var css = [];
- for (var rule in rules)
- css.push(' '+rule+': '+rules[rule]+';');
- return css.join('\n');
- }
-
- function injectCSS(css) {
- var style = document.getElementById('jss-styles');
- if (!style) {
- style = document.createElement('style');
- style.setAttribute('id', 'jss-styles');
- var head = document.getElementsByTagName('head')[0];
- head.insertBefore(style, head.firstChild);
- }
- var node = document.createTextNode(css.join('\n\n'));
- style.appendChild(node);
- }
-
- if (true)
- module.exports = jss;
- else
- window.jss = jss;
-
- })();
-
-
-
-/***/ }),
-/* 19 */
-/***/ (function(module, exports) {
-
- "use strict";
-
- // Get a universally unique identifier
-
- var count = 0;
- module.exports = function uuid() {
- return "react-tabs-" + count++;
- };
-
-/***/ }),
-/* 20 */
-/***/ (function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- var _react = __webpack_require__(2);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _Tab = __webpack_require__(21);
-
- var _Tab2 = _interopRequireDefault(_Tab);
-
- var _TabList = __webpack_require__(22);
-
- var _TabList2 = _interopRequireDefault(_TabList);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : { default: obj };
- }
-
- module.exports = function childrenPropTypes(props, propName) {
- var error = void 0;
- var tabsCount = 0;
- var panelsCount = 0;
- var children = props[propName];
-
- _react2.default.Children.forEach(children, function (child) {
- // null happens when conditionally rendering TabPanel/Tab
- // see https://github.com/reactjs/react-tabs/issues/37
- if (child === null) {
- return;
- }
-
- if (child.type === _TabList2.default) {
- _react2.default.Children.forEach(child.props.children, function (c) {
- // null happens when conditionally rendering TabPanel/Tab
- // see https://github.com/reactjs/react-tabs/issues/37
- if (c === null) {
- return;
- }
-
- if (c.type === _Tab2.default) {
- tabsCount++;
- }
- });
- } else if (child.type.displayName === 'TabPanel') {
- panelsCount++;
- } else {
- error = new Error('Expected \'TabList\' or \'TabPanel\' but found \'' + (child.type.displayName || child.type) + '\'');
- }
- });
-
- if (tabsCount !== panelsCount) {
- error = new Error("There should be an equal number of 'Tabs' and 'TabPanels'." + ('Received ' + tabsCount + ' \'Tabs\' and ' + panelsCount + ' \'TabPanels\'.'));
- }
-
- return error;
- };
-
-/***/ }),
-/* 21 */
-/***/ (function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- var _extends = Object.assign || function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }return target;
- };
-
- var _react = __webpack_require__(2);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _propTypes = __webpack_require__(3);
-
- var _propTypes2 = _interopRequireDefault(_propTypes);
-
- var _createReactClass = __webpack_require__(12);
-
- var _createReactClass2 = _interopRequireDefault(_createReactClass);
-
- var _reactDom = __webpack_require__(16);
-
- var _classnames = __webpack_require__(17);
-
- var _classnames2 = _interopRequireDefault(_classnames);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : { default: obj };
- }
-
- function _defineProperty(obj, key, value) {
- if (key in obj) {
- Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });
- } else {
- obj[key] = value;
- }return obj;
- }
-
- function _objectWithoutProperties(obj, keys) {
- var target = {};for (var i in obj) {
- if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];
- }return target;
- }
-
- module.exports = (0, _createReactClass2.default)({
- displayName: 'Tab',
-
- propTypes: {
- className: _propTypes2.default.string,
- id: _propTypes2.default.string,
- focus: _propTypes2.default.bool,
- selected: _propTypes2.default.bool,
- disabled: _propTypes2.default.bool,
- activeTabClassName: _propTypes2.default.string,
- disabledTabClassName: _propTypes2.default.string,
- panelId: _propTypes2.default.string,
- children: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object, _propTypes2.default.string])
- },
-
- getDefaultProps: function getDefaultProps() {
- return {
- focus: false,
- selected: false,
- id: null,
- panelId: null,
- activeTabClassName: 'ReactTabs__Tab--selected',
- disabledTabClassName: 'ReactTabs__Tab--disabled'
- };
- },
- componentDidMount: function componentDidMount() {
- this.checkFocus();
- },
- componentDidUpdate: function componentDidUpdate() {
- this.checkFocus();
- },
- checkFocus: function checkFocus() {
- if (this.props.selected && this.props.focus) {
- (0, _reactDom.findDOMNode)(this).focus();
- }
- },
- render: function render() {
- var _cx;
-
- var _props = this.props,
- selected = _props.selected,
- disabled = _props.disabled,
- panelId = _props.panelId,
- activeTabClassName = _props.activeTabClassName,
- disabledTabClassName = _props.disabledTabClassName,
- className = _props.className,
- children = _props.children,
- id = _props.id,
- attributes = _objectWithoutProperties(_props, ['selected', 'disabled', 'panelId', 'activeTabClassName', 'disabledTabClassName', 'className', 'children', 'id']);
-
- delete attributes.focus;
-
- return _react2.default.createElement('li', _extends({}, attributes, {
- className: (0, _classnames2.default)('ReactTabs__Tab', className, (_cx = {}, _defineProperty(_cx, activeTabClassName, selected), _defineProperty(_cx, disabledTabClassName, disabled), _cx)),
- role: 'tab',
- id: id,
- 'aria-selected': selected ? 'true' : 'false',
- 'aria-disabled': disabled ? 'true' : 'false',
- 'aria-controls': panelId,
- tabIndex: selected ? '0' : null
- }), children);
- }
- });
-
-/***/ }),
-/* 22 */
-/***/ (function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- var _extends = Object.assign || function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }return target;
- };
-
- var _react = __webpack_require__(2);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _propTypes = __webpack_require__(3);
-
- var _propTypes2 = _interopRequireDefault(_propTypes);
-
- var _createReactClass = __webpack_require__(12);
-
- var _createReactClass2 = _interopRequireDefault(_createReactClass);
-
- var _classnames = __webpack_require__(17);
-
- var _classnames2 = _interopRequireDefault(_classnames);
-
- var _Tab = __webpack_require__(21);
-
- var _Tab2 = _interopRequireDefault(_Tab);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : { default: obj };
- }
-
- function _objectWithoutProperties(obj, keys) {
- var target = {};for (var i in obj) {
- if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];
- }return target;
- }
-
- function renderChildren(props) {
- return _react2.default.Children.map(props.children, function (child) {
- // if child is not a tab we don't need to clone it
- // since we don't need to add custom props
-
- if (child.type !== _Tab2.default) {
- return child;
- }
-
- var clonedProps = {
- activeTabClassName: props.activeTabClassName,
- disabledTabClassName: props.disabledTabClassName
- };
-
- return _react2.default.cloneElement(child, clonedProps);
- });
- }
-
- module.exports = (0, _createReactClass2.default)({
- displayName: 'TabList',
-
- propTypes: {
- className: _propTypes2.default.string,
- activeTabClassName: _propTypes2.default.string,
- disabledTabClassName: _propTypes2.default.string,
- children: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.array])
- },
-
- render: function render() {
- var _props = this.props,
- className = _props.className,
- activeTabClassName = _props.activeTabClassName,
- disabledTabClassName = _props.disabledTabClassName,
- children = _props.children,
- attributes = _objectWithoutProperties(_props, ['className', 'activeTabClassName', 'disabledTabClassName', 'children']);
-
- return _react2.default.createElement('ul', _extends({}, attributes, {
- className: (0, _classnames2.default)('ReactTabs__TabList', className),
- role: 'tablist'
- }), renderChildren({ activeTabClassName: activeTabClassName, disabledTabClassName: disabledTabClassName, children: children }));
- }
- });
-
-/***/ }),
-/* 23 */
-/***/ (function(module, exports) {
-
- 'use strict';
-
- module.exports = {
- '.react-tabs [role=tablist]': {
- 'border-bottom': '1px solid #aaa',
- margin: '0 0 10px',
- padding: '0'
- },
-
- '.react-tabs [role=tab]': {
- display: 'inline-block',
- border: '1px solid transparent',
- 'border-bottom': 'none',
- bottom: '-1px',
- position: 'relative',
- 'list-style': 'none',
- padding: '6px 12px',
- cursor: 'pointer'
- },
-
- '.react-tabs [role=tab][aria-selected=true]': {
- background: '#fff',
- 'border-color': '#aaa',
- color: 'black',
- 'border-radius': '5px 5px 0 0',
- '-moz-border-radius': '5px 5px 0 0',
- '-webkit-border-radius': '5px 5px 0 0'
- },
-
- '.react-tabs [role=tab][aria-disabled=true]': {
- color: 'GrayText',
- cursor: 'default'
- },
-
- '.react-tabs [role=tab]:focus': {
- 'box-shadow': '0 0 5px hsl(208, 99%, 50%)',
- 'border-color': 'hsl(208, 99%, 50%)',
- outline: 'none'
- },
-
- '.react-tabs [role=tab]:focus:after': {
- content: '""',
- position: 'absolute',
- height: '5px',
- left: '-4px',
- right: '-4px',
- bottom: '-5px',
- background: '#fff'
- }
- };
-
-/***/ }),
-/* 24 */
-/***/ (function(module, exports, __webpack_require__) {
-
- 'use strict';
-
- var _extends = Object.assign || function (target) {
- for (var i = 1; i < arguments.length; i++) {
- var source = arguments[i];for (var key in source) {
- if (Object.prototype.hasOwnProperty.call(source, key)) {
- target[key] = source[key];
- }
- }
- }return target;
- };
-
- var _react = __webpack_require__(2);
-
- var _react2 = _interopRequireDefault(_react);
-
- var _propTypes = __webpack_require__(3);
-
- var _propTypes2 = _interopRequireDefault(_propTypes);
-
- var _createReactClass = __webpack_require__(12);
-
- var _createReactClass2 = _interopRequireDefault(_createReactClass);
-
- var _classnames = __webpack_require__(17);
-
- var _classnames2 = _interopRequireDefault(_classnames);
-
- function _interopRequireDefault(obj) {
- return obj && obj.__esModule ? obj : { default: obj };
- }
-
- function _objectWithoutProperties(obj, keys) {
- var target = {};for (var i in obj) {
- if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];
- }return target;
- }
-
- module.exports = (0, _createReactClass2.default)({
- displayName: 'TabPanel',
-
- propTypes: {
- children: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object, _propTypes2.default.string]),
- className: _propTypes2.default.string,
- id: _propTypes2.default.string,
- selected: _propTypes2.default.bool,
- style: _propTypes2.default.object,
- tabId: _propTypes2.default.string
- },
-
- contextTypes: {
- forceRenderTabPanel: _propTypes2.default.bool
- },
-
- getDefaultProps: function getDefaultProps() {
- return {
- selected: false,
- id: null,
- tabId: null
- };
- },
- render: function render() {
- var _props = this.props,
- className = _props.className,
- children = _props.children,
- selected = _props.selected,
- id = _props.id,
- tabId = _props.tabId,
- style = _props.style,
- attributes = _objectWithoutProperties(_props, ['className', 'children', 'selected', 'id', 'tabId', 'style']);
-
- return _react2.default.createElement('div', _extends({}, attributes, {
- className: (0, _classnames2.default)('ReactTabs__TabPanel', className, {
- 'ReactTabs__TabPanel--selected': selected
- }),
- role: 'tabpanel',
- id: id,
- 'aria-labelledby': tabId,
- style: _extends({}, style, { display: selected ? null : 'none' })
- }), this.context.forceRenderTabPanel || selected ? children : null);
- }
- });
-
-/***/ })
-/******/ ])
-});
-;
-//# sourceMappingURL=react-tabs.js.map
\ No newline at end of file
diff --git a/dist/react-tabs.js.map b/dist/react-tabs.js.map
deleted file mode 100644
index 327ce930ff..0000000000
--- a/dist/react-tabs.js.map
+++ /dev/null
@@ -1 +0,0 @@
-{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 17c3e31c6c5359d631a8","webpack:///./lib/main.js","webpack:///./lib/components/Tabs.js","webpack:///external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}","webpack:///./~/prop-types/index.js","webpack:///./~/process/browser.js","webpack:///./~/prop-types/factoryWithTypeCheckers.js","webpack:///./~/fbjs/lib/emptyFunction.js","webpack:///./~/fbjs/lib/invariant.js","webpack:///./~/fbjs/lib/warning.js","webpack:///./~/prop-types/lib/ReactPropTypesSecret.js","webpack:///./~/prop-types/checkPropTypes.js","webpack:///./~/prop-types/factoryWithThrowingShims.js","webpack:///./~/create-react-class/index.js","webpack:///./~/create-react-class/factory.js","webpack:///./~/object-assign/index.js","webpack:///./~/fbjs/lib/emptyObject.js","webpack:///external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}","webpack:///./~/classnames/index.js","webpack:///./~/js-stylesheet/jss.js","webpack:///./lib/helpers/uuid.js","webpack:///./lib/helpers/childrenPropType.js","webpack:///./lib/components/Tab.js","webpack:///./lib/components/TabList.js","webpack:///./lib/helpers/styles.js","webpack:///./lib/components/TabPanel.js"],"names":["Object","defineProperty","exports","value","TabPanel","Tab","TabList","Tabs","undefined","_Tabs","require","_Tabs2","_interopRequireDefault","_TabList","_TabList2","_Tab","_Tab2","_TabPanel","_TabPanel2","obj","__esModule","default","_extends","assign","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","_react","_react2","_propTypes","_propTypes2","_createReactClass","_createReactClass2","_reactDom","_classnames","_classnames2","_jsStylesheet","_jsStylesheet2","_uuid","_uuid2","_childrenPropType","_childrenPropType2","_objectWithoutProperties","keys","indexOf","isTabNode","node","nodeName","getAttribute","isTabDisabled","useDefaultStyles","module","displayName","propTypes","className","string","selectedIndex","number","onSelect","func","focus","bool","children","forceRenderTabPanel","childContextTypes","statics","setUseDefaultStyles","use","getDefaultProps","getInitialState","copyPropsToState","props","state","getChildContext","componentDidMount","componentWillReceiveProps","newProps","_this","setState","setSelected","index","getTabsCount","last","cancel","getNextTab","count","tab","getTab","findDOMNode","_i","_tab","getPrevTab","_tab2","Children","getPanelsCount","slice","getTabList","refs","tablist","getPanel","getChildren","tabIds","panelIds","diff","push","map","child","result","cloneElement","ref","id","panelId","selected","type","tabId","handleKeyDown","e","isTabFromContainer","preventDefault","keyCode","handleClick","parentNode","nodeAncestor","parentElement","tabsNode","render","_this2","setTimeout","_props","attributes","onClick","onKeyDown","createElement","uuid","childrenPropTypes","propName","error","tabsCount","panelsCount","forEach","c","Error","_defineProperty","enumerable","configurable","writable","disabled","activeTabClassName","disabledTabClassName","oneOfType","array","object","checkFocus","componentDidUpdate","_cx","role","tabIndex","renderChildren","clonedProps","margin","padding","display","border","bottom","position","cursor","background","color","outline","content","height","left","right","style","contextTypes","context"],"mappings":"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CA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA,MAAK;AACL;AACA;AACA,EAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,wBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,4BAA2B;AAC3B;AACA;AACA;AACA,6BAA4B,UAAU;;;;;;;ACnLtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,2CAA0C;;AAE1C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,cAAa,QAAQ;AACrB,eAAc;AACd;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAU;AACV,8BAA6B;AAC7B,SAAQ;AACR;AACA;AACA;AACA;AACA,gCAA+B,KAAK;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT,6BAA4B;AAC5B,QAAO;AACP;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,sBAAqB,sBAAsB;AAC3C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAqB,2BAA2B;AAChD;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAqB,gCAAgC;AACrD;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;;AC7dA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,8CAA6C;AAC7C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,gC;;;;;;ACrCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,sDAAqD;AACrD,MAAK;AACL;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;;AAEA,2BAA0B;AAC1B;AACA;AACA;;AAEA,4B;;;;;;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,yFAAwF,aAAa;AACrG;AACA;;AAEA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;;AAEA;AACA;AACA;AACA;;AAEA;AACA,gBAAe;AACf;;AAEA;AACA,+FAA8F,eAAe;AAC7G;AACA;;AAEA;AACA;AACA;AACA,IAAG;AACH;;AAEA,0B;;;;;;;ACjEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;;;;;;;ACbA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,OAAO;AAClB,YAAW,UAAU;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iGAAgG;AAChG;AACA,UAAS;AACT;AACA;AACA,iGAAgG;AAChG;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;;;;;;;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;;;;;;ACrDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;;;;;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;;;AAGA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAQ;AACR;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;;AAEA;AACA;AACA;AACA,eAAc;AACd;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAgB;AAChB;AACA;AACA;;AAEA;AACA,iBAAgB;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gCAA+B,KAAK;AACpC;AACA;AACA,iBAAgB;AAChB;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,WAAW;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAY;AACZ;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,OAAO;AACtB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,OAAO;AACtB,gBAAe,QAAQ;AACvB,gBAAe,QAAQ;AACvB,iBAAgB,QAAQ;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,OAAO;AACtB,gBAAe,QAAQ;AACvB,gBAAe,QAAQ;AACvB,gBAAe,0BAA0B;AACzC;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,OAAO;AACtB,gBAAe,QAAQ;AACvB,gBAAe,QAAQ;AACvB,gBAAe,WAAW;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAe,0BAA0B;AACzC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA,wBAAuB,mBAAmB;AAC1C;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,iDAAgD;AAChD,MAAK;AACL;AACA;AACA;AACA;AACA,4CAA2C;AAC3C,MAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;AACA,yCAAwC;AACxC,MAAK;AACL;AACA;AACA,MAAK;AACL,6BAA4B;;AAE5B;AACA;AACA;AACA;AACA;AACA,+HAA8H;AAC9H;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,UAAS;AACT;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa;AACb;AACA;AACA,YAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,iMAAgM;;AAEhM;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,OAAO;AACpB,eAAc,OAAO;AACrB;AACA;AACA;;AAEA;AACA;AACA,+KAA8K;AAC9K;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,SAAS;AACtB,cAAa,SAAS;AACtB,eAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,QAAO;AACP;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,SAAS;AACtB,cAAa,SAAS;AACtB,eAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,OAAO;AACpB,cAAa,SAAS;AACtB,eAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,2FAA0F,aAAa;AACvG;AACA;;AAEA,yDAAwD;AACxD;AACA;AACA;AACA;AACA,UAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,cAAa,OAAO;AACpB;AACA;AACA;AACA,oBAAmB,kBAAkB;AACrC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,MAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,MAAK;;AAEL;AACA;AACA,iBAAgB,QAAQ;AACxB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,cAAa,OAAO;AACpB,eAAc,SAAS;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,MAAK;AACL;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;;;;;;;ACntBA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA,iCAAgC;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAiB,QAAQ;AACzB;AACA;AACA;AACA;AACA,IAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,IAAG;AACH,mCAAkC;AAClC;AACA;AACA;;AAEA;AACA,GAAE;AACF;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAgB,sBAAsB;AACtC;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAkB,oBAAoB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;;;;;;ACzFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA,8B;;;;;;;AClBA,iD;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,iBAAgB;;AAEhB;AACA;;AAEA,kBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,KAAI;AACJ;AACA,KAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAE;AACF;AACA;AACA;AACA,IAAG;AACH,GAAE;AACF;AACA;AACA,EAAC;;;;;;;AC/CD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,0BAAyB,8BAA8B;AACvD;;AAEA;AACA;AACA;AACA,6CAA4C;AAC5C;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,EAAC;;;;;;;;ACpCD;;AAEA;;AACA,KAAIf,QAAQ,CAAZ;AACAlC,QAAOvD,OAAP,GAAiB,SAASyI,IAAT,GAAgB;AAC/B,UAAO,gBAAgBhD,OAAvB;AACD,EAFD,C;;;;;;ACJA;;AAEA,KAAI1D,SAAS,mBAAAvB,CAAQ,CAAR,CAAb;;AAEA,KAAIwB,UAAUtB,uBAAuBqB,MAAvB,CAAd;;AAEA,KAAIlB,OAAO,mBAAAL,CAAQ,EAAR,CAAX;;AAEA,KAAIM,QAAQJ,uBAAuBG,IAAvB,CAAZ;;AAEA,KAAIF,WAAW,mBAAAH,CAAQ,EAAR,CAAf;;AAEA,KAAII,YAAYF,uBAAuBC,QAAvB,CAAhB;;AAEA,UAASD,sBAAT,CAAgCO,GAAhC,EAAqC;AAAE,UAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAEE,SAASF,GAAX,EAArC;AAAwD;;AAE/FsC,QAAOvD,OAAP,GAAiB,SAAS0I,iBAAT,CAA2B/D,KAA3B,EAAkCgE,QAAlC,EAA4C;AAC3D,OAAIC,QAAQ,KAAK,CAAjB;AACA,OAAIC,YAAY,CAAhB;AACA,OAAIC,cAAc,CAAlB;AACA,OAAI5E,WAAWS,MAAMgE,QAAN,CAAf;;AAEA3G,WAAQb,OAAR,CAAgB8E,QAAhB,CAAyB8C,OAAzB,CAAiC7E,QAAjC,EAA2C,UAAU4C,KAAV,EAAiB;AAC1D;AACA;AACA,SAAIA,UAAU,IAAd,EAAoB;AAClB;AACD;;AAED,SAAIA,MAAMO,IAAN,KAAezG,UAAUO,OAA7B,EAAsC;AACpCa,eAAQb,OAAR,CAAgB8E,QAAhB,CAAyB8C,OAAzB,CAAiCjC,MAAMnC,KAAN,CAAYT,QAA7C,EAAuD,UAAU8E,CAAV,EAAa;AAClE;AACA;AACA,aAAIA,MAAM,IAAV,EAAgB;AACd;AACD;;AAED,aAAIA,EAAE3B,IAAF,KAAWvG,MAAMK,OAArB,EAA8B;AAC5B0H;AACD;AACF,QAVD;AAWD,MAZD,MAYO,IAAI/B,MAAMO,IAAN,CAAW7D,WAAX,KAA2B,UAA/B,EAA2C;AAChDsF;AACD,MAFM,MAEA;AACLF,eAAQ,IAAIK,KAAJ,CAAU,uDAAuDnC,MAAMO,IAAN,CAAW7D,WAAX,IAA0BsD,MAAMO,IAAvF,IAA+F,IAAzG,CAAR;AACD;AACF,IAxBD;;AA0BA,OAAIwB,cAAcC,WAAlB,EAA+B;AAC7BF,aAAQ,IAAIK,KAAJ,CAAU,gEAAgE,cAAcJ,SAAd,GAA0B,gBAA1B,GAA6CC,WAA7C,GAA2D,iBAA3H,CAAV,CAAR;AACD;;AAED,UAAOF,KAAP;AACD,EArCD,C;;;;;;AChBA;;AAEA,KAAIxH,WAAWtB,OAAOuB,MAAP,IAAiB,UAAUC,MAAV,EAAkB;AAAE,QAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIC,UAAUC,MAA9B,EAAsCF,GAAtC,EAA2C;AAAE,SAAIG,SAASF,UAAUD,CAAV,CAAb,CAA2B,KAAK,IAAII,GAAT,IAAgBD,MAAhB,EAAwB;AAAE,WAAI5B,OAAO8B,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCJ,MAArC,EAA6CC,GAA7C,CAAJ,EAAuD;AAAEL,gBAAOK,GAAP,IAAcD,OAAOC,GAAP,CAAd;AAA4B;AAAE;AAAE,IAAC,OAAOL,MAAP;AAAgB,EAAhQ;;AAEA,KAAIS,SAAS,mBAAAvB,CAAQ,CAAR,CAAb;;AAEA,KAAIwB,UAAUtB,uBAAuBqB,MAAvB,CAAd;;AAEA,KAAIE,aAAa,mBAAAzB,CAAQ,CAAR,CAAjB;;AAEA,KAAI0B,cAAcxB,uBAAuBuB,UAAvB,CAAlB;;AAEA,KAAIE,oBAAoB,mBAAA3B,CAAQ,EAAR,CAAxB;;AAEA,KAAI4B,qBAAqB1B,uBAAuByB,iBAAvB,CAAzB;;AAEA,KAAIE,YAAY,mBAAA7B,CAAQ,EAAR,CAAhB;;AAEA,KAAI8B,cAAc,mBAAA9B,CAAQ,EAAR,CAAlB;;AAEA,KAAI+B,eAAe7B,uBAAuB4B,WAAvB,CAAnB;;AAEA,UAAS5B,sBAAT,CAAgCO,GAAhC,EAAqC;AAAE,UAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAEE,SAASF,GAAX,EAArC;AAAwD;;AAE/F,UAASiI,eAAT,CAAyBjI,GAAzB,EAA8BU,GAA9B,EAAmC1B,KAAnC,EAA0C;AAAE,OAAI0B,OAAOV,GAAX,EAAgB;AAAEnB,YAAOC,cAAP,CAAsBkB,GAAtB,EAA2BU,GAA3B,EAAgC,EAAE1B,OAAOA,KAAT,EAAgBkJ,YAAY,IAA5B,EAAkCC,cAAc,IAAhD,EAAsDC,UAAU,IAAhE,EAAhC;AAA0G,IAA5H,MAAkI;AAAEpI,SAAIU,GAAJ,IAAW1B,KAAX;AAAmB,IAAC,OAAOgB,GAAP;AAAa;;AAEjN,UAAS6B,wBAAT,CAAkC7B,GAAlC,EAAuC8B,IAAvC,EAA6C;AAAE,OAAIzB,SAAS,EAAb,CAAiB,KAAK,IAAIC,CAAT,IAAcN,GAAd,EAAmB;AAAE,SAAI8B,KAAKC,OAAL,CAAazB,CAAb,KAAmB,CAAvB,EAA0B,SAAU,IAAI,CAACzB,OAAO8B,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCb,GAArC,EAA0CM,CAA1C,CAAL,EAAmD,SAAUD,OAAOC,CAAP,IAAYN,IAAIM,CAAJ,CAAZ;AAAqB,IAAC,OAAOD,MAAP;AAAgB;;AAE5NiC,QAAOvD,OAAP,GAAiB,CAAC,GAAGoC,mBAAmBjB,OAAvB,EAAgC;AAC/CqC,gBAAa,KADkC;;AAG/CC,cAAW;AACTC,gBAAWxB,YAAYf,OAAZ,CAAoBwC,MADtB;AAETuD,SAAIhF,YAAYf,OAAZ,CAAoBwC,MAFf;AAGTK,YAAO9B,YAAYf,OAAZ,CAAoB8C,IAHlB;AAITmD,eAAUlF,YAAYf,OAAZ,CAAoB8C,IAJrB;AAKTqF,eAAUpH,YAAYf,OAAZ,CAAoB8C,IALrB;AAMTsF,yBAAoBrH,YAAYf,OAAZ,CAAoBwC,MAN/B;AAOT6F,2BAAsBtH,YAAYf,OAAZ,CAAoBwC,MAPjC;AAQTwD,cAASjF,YAAYf,OAAZ,CAAoBwC,MARpB;AASTO,eAAUhC,YAAYf,OAAZ,CAAoBsI,SAApB,CAA8B,CAACvH,YAAYf,OAAZ,CAAoBuI,KAArB,EAA4BxH,YAAYf,OAAZ,CAAoBwI,MAAhD,EAAwDzH,YAAYf,OAAZ,CAAoBwC,MAA5E,CAA9B;AATD,IAHoC;;AAe/Ca,oBAAiB,SAASA,eAAT,GAA2B;AAC1C,YAAO;AACLR,cAAO,KADF;AAELoD,iBAAU,KAFL;AAGLF,WAAI,IAHC;AAILC,gBAAS,IAJJ;AAKLoC,2BAAoB,0BALf;AAMLC,6BAAsB;AANjB,MAAP;AAQD,IAxB8C;AAyB/C1E,sBAAmB,SAASA,iBAAT,GAA6B;AAC9C,UAAK8E,UAAL;AACD,IA3B8C;AA4B/CC,uBAAoB,SAASA,kBAAT,GAA8B;AAChD,UAAKD,UAAL;AACD,IA9B8C;AA+B/CA,eAAY,SAASA,UAAT,GAAsB;AAChC,SAAI,KAAKjF,KAAL,CAAWyC,QAAX,IAAuB,KAAKzC,KAAL,CAAWX,KAAtC,EAA6C;AAC3C,QAAC,GAAG3B,UAAUuD,WAAd,EAA2B,IAA3B,EAAiC5B,KAAjC;AACD;AACF,IAnC8C;AAoC/CiE,WAAQ,SAASA,MAAT,GAAkB;AACxB,SAAI6B,GAAJ;;AAEA,SAAI1B,SAAS,KAAKzD,KAAlB;AAAA,SACIyC,WAAWgB,OAAOhB,QADtB;AAAA,SAEIkC,WAAWlB,OAAOkB,QAFtB;AAAA,SAGInC,UAAUiB,OAAOjB,OAHrB;AAAA,SAIIoC,qBAAqBnB,OAAOmB,kBAJhC;AAAA,SAKIC,uBAAuBpB,OAAOoB,oBALlC;AAAA,SAMI9F,YAAY0E,OAAO1E,SANvB;AAAA,SAOIQ,WAAWkE,OAAOlE,QAPtB;AAAA,SAQIgD,KAAKkB,OAAOlB,EARhB;AAAA,SASImB,aAAavF,yBAAyBsF,MAAzB,EAAiC,CAAC,UAAD,EAAa,UAAb,EAAyB,SAAzB,EAAoC,oBAApC,EAA0D,sBAA1D,EAAkF,WAAlF,EAA+F,UAA/F,EAA2G,IAA3G,CAAjC,CATjB;;AAWA,YAAOC,WAAWrE,KAAlB;;AAEA,YAAOhC,QAAQb,OAAR,CAAgBqH,aAAhB,CACL,IADK,EAELpH,SAAS,EAAT,EAAaiH,UAAb,EAAyB;AACvB3E,kBAAW,CAAC,GAAGnB,aAAapB,OAAjB,EAA0B,gBAA1B,EAA4CuC,SAA5C,GAAwDoG,MAAM,EAAN,EAAUZ,gBAAgBY,GAAhB,EAAqBP,kBAArB,EAAyCnC,QAAzC,CAAV,EAA8D8B,gBAAgBY,GAAhB,EAAqBN,oBAArB,EAA2CF,QAA3C,CAA9D,EAAoHQ,GAA5K,EADY;AAEvBC,aAAM,KAFiB;AAGvB7C,WAAIA,EAHmB;AAIvB,wBAAiBE,WAAW,MAAX,GAAoB,OAJd;AAKvB,wBAAiBkC,WAAW,MAAX,GAAoB,OALd;AAMvB,wBAAiBnC,OANM;AAOvB6C,iBAAU5C,WAAW,GAAX,GAAiB;AAPJ,MAAzB,CAFK,EAWLlD,QAXK,CAAP;AAaD;AAjE8C,EAAhC,CAAjB,C;;;;;;AC5BA;;AAEA,KAAI9C,WAAWtB,OAAOuB,MAAP,IAAiB,UAAUC,MAAV,EAAkB;AAAE,QAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIC,UAAUC,MAA9B,EAAsCF,GAAtC,EAA2C;AAAE,SAAIG,SAASF,UAAUD,CAAV,CAAb,CAA2B,KAAK,IAAII,GAAT,IAAgBD,MAAhB,EAAwB;AAAE,WAAI5B,OAAO8B,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCJ,MAArC,EAA6CC,GAA7C,CAAJ,EAAuD;AAAEL,gBAAOK,GAAP,IAAcD,OAAOC,GAAP,CAAd;AAA4B;AAAE;AAAE,IAAC,OAAOL,MAAP;AAAgB,EAAhQ;;AAEA,KAAIS,SAAS,mBAAAvB,CAAQ,CAAR,CAAb;;AAEA,KAAIwB,UAAUtB,uBAAuBqB,MAAvB,CAAd;;AAEA,KAAIE,aAAa,mBAAAzB,CAAQ,CAAR,CAAjB;;AAEA,KAAI0B,cAAcxB,uBAAuBuB,UAAvB,CAAlB;;AAEA,KAAIE,oBAAoB,mBAAA3B,CAAQ,EAAR,CAAxB;;AAEA,KAAI4B,qBAAqB1B,uBAAuByB,iBAAvB,CAAzB;;AAEA,KAAIG,cAAc,mBAAA9B,CAAQ,EAAR,CAAlB;;AAEA,KAAI+B,eAAe7B,uBAAuB4B,WAAvB,CAAnB;;AAEA,KAAIzB,OAAO,mBAAAL,CAAQ,EAAR,CAAX;;AAEA,KAAIM,QAAQJ,uBAAuBG,IAAvB,CAAZ;;AAEA,UAASH,sBAAT,CAAgCO,GAAhC,EAAqC;AAAE,UAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAEE,SAASF,GAAX,EAArC;AAAwD;;AAE/F,UAAS6B,wBAAT,CAAkC7B,GAAlC,EAAuC8B,IAAvC,EAA6C;AAAE,OAAIzB,SAAS,EAAb,CAAiB,KAAK,IAAIC,CAAT,IAAcN,GAAd,EAAmB;AAAE,SAAI8B,KAAKC,OAAL,CAAazB,CAAb,KAAmB,CAAvB,EAA0B,SAAU,IAAI,CAACzB,OAAO8B,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCb,GAArC,EAA0CM,CAA1C,CAAL,EAAmD,SAAUD,OAAOC,CAAP,IAAYN,IAAIM,CAAJ,CAAZ;AAAqB,IAAC,OAAOD,MAAP;AAAgB;;AAE5N,UAAS2I,cAAT,CAAwBtF,KAAxB,EAA+B;AAC7B,UAAO3C,QAAQb,OAAR,CAAgB8E,QAAhB,CAAyBY,GAAzB,CAA6BlC,MAAMT,QAAnC,EAA6C,UAAU4C,KAAV,EAAiB;AACnE;AACA;;AAEA,SAAIA,MAAMO,IAAN,KAAevG,MAAMK,OAAzB,EAAkC;AAChC,cAAO2F,KAAP;AACD;;AAED,SAAIoD,cAAc;AAChBX,2BAAoB5E,MAAM4E,kBADV;AAEhBC,6BAAsB7E,MAAM6E;AAFZ,MAAlB;;AAKA,YAAOxH,QAAQb,OAAR,CAAgB6F,YAAhB,CAA6BF,KAA7B,EAAoCoD,WAApC,CAAP;AACD,IAdM,CAAP;AAeD;;AAED3G,QAAOvD,OAAP,GAAiB,CAAC,GAAGoC,mBAAmBjB,OAAvB,EAAgC;AAC/CqC,gBAAa,SADkC;;AAG/CC,cAAW;AACTC,gBAAWxB,YAAYf,OAAZ,CAAoBwC,MADtB;AAET4F,yBAAoBrH,YAAYf,OAAZ,CAAoBwC,MAF/B;AAGT6F,2BAAsBtH,YAAYf,OAAZ,CAAoBwC,MAHjC;AAITO,eAAUhC,YAAYf,OAAZ,CAAoBsI,SAApB,CAA8B,CAACvH,YAAYf,OAAZ,CAAoBwI,MAArB,EAA6BzH,YAAYf,OAAZ,CAAoBuI,KAAjD,CAA9B;AAJD,IAHoC;;AAU/CzB,WAAQ,SAASA,MAAT,GAAkB;AACxB,SAAIG,SAAS,KAAKzD,KAAlB;AAAA,SACIjB,YAAY0E,OAAO1E,SADvB;AAAA,SAEI6F,qBAAqBnB,OAAOmB,kBAFhC;AAAA,SAGIC,uBAAuBpB,OAAOoB,oBAHlC;AAAA,SAIItF,WAAWkE,OAAOlE,QAJtB;AAAA,SAKImE,aAAavF,yBAAyBsF,MAAzB,EAAiC,CAAC,WAAD,EAAc,oBAAd,EAAoC,sBAApC,EAA4D,UAA5D,CAAjC,CALjB;;AAOA,YAAOpG,QAAQb,OAAR,CAAgBqH,aAAhB,CACL,IADK,EAELpH,SAAS,EAAT,EAAaiH,UAAb,EAAyB;AACvB3E,kBAAW,CAAC,GAAGnB,aAAapB,OAAjB,EAA0B,oBAA1B,EAAgDuC,SAAhD,CADY;AAEvBqG,aAAM;AAFiB,MAAzB,CAFK,EAMLE,eAAe,EAAEV,oBAAoBA,kBAAtB,EAA0CC,sBAAsBA,oBAAhE,EAAsFtF,UAAUA,QAAhG,EAAf,CANK,CAAP;AAQD;AA1B8C,EAAhC,CAAjB,C;;;;;;AC9CA;;AAEAX,QAAOvD,OAAP,GAAiB;AACf,iCAA8B;AAC5B,sBAAiB,gBADW;AAE5BmK,aAAQ,UAFoB;AAG5BC,cAAS;AAHmB,IADf;;AAOf,6BAA0B;AACxBC,cAAS,cADe;AAExBC,aAAQ,uBAFgB;AAGxB,sBAAiB,MAHO;AAIxBC,aAAQ,MAJgB;AAKxBC,eAAU,UALc;AAMxB,mBAAc,MANU;AAOxBJ,cAAS,UAPe;AAQxBK,aAAQ;AARgB,IAPX;;AAkBf,iDAA8C;AAC5CC,iBAAY,MADgC;AAE5C,qBAAgB,MAF4B;AAG5CC,YAAO,OAHqC;AAI5C,sBAAiB,aAJ2B;AAK5C,2BAAsB,aALsB;AAM5C,8BAAyB;AANmB,IAlB/B;;AA2Bf,iDAA8C;AAC5CA,YAAO,UADqC;AAE5CF,aAAQ;AAFoC,IA3B/B;;AAgCf,mCAAgC;AAC9B,mBAAc,4BADgB;AAE9B,qBAAgB,oBAFc;AAG9BG,cAAS;AAHqB,IAhCjB;;AAsCf,yCAAsC;AACpCC,cAAS,IAD2B;AAEpCL,eAAU,UAF0B;AAGpCM,aAAQ,KAH4B;AAIpCC,WAAM,MAJ8B;AAKpCC,YAAO,MAL6B;AAMpCT,aAAQ,MAN4B;AAOpCG,iBAAY;AAPwB;AAtCvB,EAAjB,C;;;;;;ACFA;;AAEA,KAAItJ,WAAWtB,OAAOuB,MAAP,IAAiB,UAAUC,MAAV,EAAkB;AAAE,QAAK,IAAIC,IAAI,CAAb,EAAgBA,IAAIC,UAAUC,MAA9B,EAAsCF,GAAtC,EAA2C;AAAE,SAAIG,SAASF,UAAUD,CAAV,CAAb,CAA2B,KAAK,IAAII,GAAT,IAAgBD,MAAhB,EAAwB;AAAE,WAAI5B,OAAO8B,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCJ,MAArC,EAA6CC,GAA7C,CAAJ,EAAuD;AAAEL,gBAAOK,GAAP,IAAcD,OAAOC,GAAP,CAAd;AAA4B;AAAE;AAAE,IAAC,OAAOL,MAAP;AAAgB,EAAhQ;;AAEA,KAAIS,SAAS,mBAAAvB,CAAQ,CAAR,CAAb;;AAEA,KAAIwB,UAAUtB,uBAAuBqB,MAAvB,CAAd;;AAEA,KAAIE,aAAa,mBAAAzB,CAAQ,CAAR,CAAjB;;AAEA,KAAI0B,cAAcxB,uBAAuBuB,UAAvB,CAAlB;;AAEA,KAAIE,oBAAoB,mBAAA3B,CAAQ,EAAR,CAAxB;;AAEA,KAAI4B,qBAAqB1B,uBAAuByB,iBAAvB,CAAzB;;AAEA,KAAIG,cAAc,mBAAA9B,CAAQ,EAAR,CAAlB;;AAEA,KAAI+B,eAAe7B,uBAAuB4B,WAAvB,CAAnB;;AAEA,UAAS5B,sBAAT,CAAgCO,GAAhC,EAAqC;AAAE,UAAOA,OAAOA,IAAIC,UAAX,GAAwBD,GAAxB,GAA8B,EAAEE,SAASF,GAAX,EAArC;AAAwD;;AAE/F,UAAS6B,wBAAT,CAAkC7B,GAAlC,EAAuC8B,IAAvC,EAA6C;AAAE,OAAIzB,SAAS,EAAb,CAAiB,KAAK,IAAIC,CAAT,IAAcN,GAAd,EAAmB;AAAE,SAAI8B,KAAKC,OAAL,CAAazB,CAAb,KAAmB,CAAvB,EAA0B,SAAU,IAAI,CAACzB,OAAO8B,SAAP,CAAiBC,cAAjB,CAAgCC,IAAhC,CAAqCb,GAArC,EAA0CM,CAA1C,CAAL,EAAmD,SAAUD,OAAOC,CAAP,IAAYN,IAAIM,CAAJ,CAAZ;AAAqB,IAAC,OAAOD,MAAP;AAAgB;;AAE5NiC,QAAOvD,OAAP,GAAiB,CAAC,GAAGoC,mBAAmBjB,OAAvB,EAAgC;AAC/CqC,gBAAa,UADkC;;AAG/CC,cAAW;AACTS,eAAUhC,YAAYf,OAAZ,CAAoBsI,SAApB,CAA8B,CAACvH,YAAYf,OAAZ,CAAoBuI,KAArB,EAA4BxH,YAAYf,OAAZ,CAAoBwI,MAAhD,EAAwDzH,YAAYf,OAAZ,CAAoBwC,MAA5E,CAA9B,CADD;AAETD,gBAAWxB,YAAYf,OAAZ,CAAoBwC,MAFtB;AAGTuD,SAAIhF,YAAYf,OAAZ,CAAoBwC,MAHf;AAITyD,eAAUlF,YAAYf,OAAZ,CAAoB8C,IAJrB;AAKTgH,YAAO/I,YAAYf,OAAZ,CAAoBwI,MALlB;AAMTrC,YAAOpF,YAAYf,OAAZ,CAAoBwC;AANlB,IAHoC;;AAY/CuH,iBAAc;AACZ/G,0BAAqBjC,YAAYf,OAAZ,CAAoB8C;AAD7B,IAZiC;;AAgB/CO,oBAAiB,SAASA,eAAT,GAA2B;AAC1C,YAAO;AACL4C,iBAAU,KADL;AAELF,WAAI,IAFC;AAGLI,cAAO;AAHF,MAAP;AAKD,IAtB8C;AAuB/CW,WAAQ,SAASA,MAAT,GAAkB;AACxB,SAAIG,SAAS,KAAKzD,KAAlB;AAAA,SACIjB,YAAY0E,OAAO1E,SADvB;AAAA,SAEIQ,WAAWkE,OAAOlE,QAFtB;AAAA,SAGIkD,WAAWgB,OAAOhB,QAHtB;AAAA,SAIIF,KAAKkB,OAAOlB,EAJhB;AAAA,SAKII,QAAQc,OAAOd,KALnB;AAAA,SAMI2D,QAAQ7C,OAAO6C,KANnB;AAAA,SAOI5C,aAAavF,yBAAyBsF,MAAzB,EAAiC,CAAC,WAAD,EAAc,UAAd,EAA0B,UAA1B,EAAsC,IAAtC,EAA4C,OAA5C,EAAqD,OAArD,CAAjC,CAPjB;;AASA,YAAOpG,QAAQb,OAAR,CAAgBqH,aAAhB,CACL,KADK,EAELpH,SAAS,EAAT,EAAaiH,UAAb,EAAyB;AACvB3E,kBAAW,CAAC,GAAGnB,aAAapB,OAAjB,EAA0B,qBAA1B,EAAiDuC,SAAjD,EAA4D;AACrE,0CAAiC0D;AADoC,QAA5D,CADY;AAIvB2C,aAAM,UAJiB;AAKvB7C,WAAIA,EALmB;AAMvB,0BAAmBI,KANI;AAOvB2D,cAAO7J,SAAS,EAAT,EAAa6J,KAAb,EAAoB,EAAEZ,SAASjD,WAAW,IAAX,GAAkB,MAA7B,EAApB;AAPgB,MAAzB,CAFK,EAWL,KAAK+D,OAAL,CAAahH,mBAAb,IAAoCiD,QAApC,GAA+ClD,QAA/C,GAA0D,IAXrD,CAAP;AAaD;AA9C8C,EAAhC,CAAjB,C","file":"/Users/danieltschinder/Documents/Github/react-tabs/dist/react-tabs.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory(require(\"react\"), require(\"react-dom\"));\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([\"react\", \"react-dom\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"ReactTabs\"] = factory(require(\"react\"), require(\"react-dom\"));\n\telse\n\t\troot[\"ReactTabs\"] = factory(root[\"React\"], root[\"ReactDOM\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_2__, __WEBPACK_EXTERNAL_MODULE_16__) {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap 17c3e31c6c5359d631a8","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TabPanel = exports.Tab = exports.TabList = exports.Tabs = undefined;\n\nvar _Tabs = require('./components/Tabs');\n\nvar _Tabs2 = _interopRequireDefault(_Tabs);\n\nvar _TabList = require('./components/TabList');\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nvar _Tab = require('./components/Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabPanel = require('./components/TabPanel');\n\nvar _TabPanel2 = _interopRequireDefault(_TabPanel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Tabs = _Tabs2.default;\nexports.TabList = _TabList2.default;\nexports.Tab = _Tab2.default;\nexports.TabPanel = _TabPanel2.default;\n\n// For bc we also export a default object, remove in 1.0\n\nexports.default = {\n Tabs: _Tabs2.default,\n TabList: _TabList2.default,\n Tab: _Tab2.default,\n TabPanel: _TabPanel2.default\n};\n\n\n// WEBPACK FOOTER //\n// ./lib/main.js","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _createReactClass = require('create-react-class');\n\nvar _createReactClass2 = _interopRequireDefault(_createReactClass);\n\nvar _reactDom = require('react-dom');\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _jsStylesheet = require('js-stylesheet');\n\nvar _jsStylesheet2 = _interopRequireDefault(_jsStylesheet);\n\nvar _uuid = require('../helpers/uuid');\n\nvar _uuid2 = _interopRequireDefault(_uuid);\n\nvar _childrenPropType = require('../helpers/childrenPropType');\n\nvar _childrenPropType2 = _interopRequireDefault(_childrenPropType);\n\nvar _Tab = require('./Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n// Determine if a node from event.target is a Tab element\nfunction isTabNode(node) {\n return node.nodeName === 'LI' && node.getAttribute('role') === 'tab';\n}\n\n// Determine if a tab node is disabled\nfunction isTabDisabled(node) {\n return node.getAttribute('aria-disabled') === 'true';\n}\n\nvar useDefaultStyles = true;\n\nmodule.exports = (0, _createReactClass2.default)({\n displayName: 'Tabs',\n\n propTypes: {\n className: _propTypes2.default.string,\n selectedIndex: _propTypes2.default.number,\n onSelect: _propTypes2.default.func,\n focus: _propTypes2.default.bool,\n children: _childrenPropType2.default,\n forceRenderTabPanel: _propTypes2.default.bool\n },\n\n childContextTypes: {\n forceRenderTabPanel: _propTypes2.default.bool\n },\n\n statics: {\n setUseDefaultStyles: function setUseDefaultStyles(use) {\n useDefaultStyles = use;\n }\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n selectedIndex: -1,\n focus: false,\n forceRenderTabPanel: false\n };\n },\n getInitialState: function getInitialState() {\n return this.copyPropsToState(this.props, this.state);\n },\n getChildContext: function getChildContext() {\n return {\n forceRenderTabPanel: this.props.forceRenderTabPanel\n };\n },\n componentDidMount: function componentDidMount() {\n if (useDefaultStyles) {\n (0, _jsStylesheet2.default)(require('../helpers/styles.js')); // eslint-disable-line global-require\n }\n },\n componentWillReceiveProps: function componentWillReceiveProps(newProps) {\n var _this = this;\n\n // Use a transactional update to prevent race conditions\n // when reading the state in copyPropsToState\n // See https://github.com/reactjs/react-tabs/issues/51\n this.setState(function (state) {\n return _this.copyPropsToState(newProps, state);\n });\n },\n setSelected: function setSelected(index, focus) {\n // Don't do anything if nothing has changed\n if (index === this.state.selectedIndex) return;\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n\n // Keep reference to last index for event handler\n var last = this.state.selectedIndex;\n\n // Check if the change event handler cancels the tab change\n var cancel = false;\n\n // Call change event handler\n if (typeof this.props.onSelect === 'function') {\n cancel = this.props.onSelect(index, last) === false;\n }\n\n if (!cancel) {\n // Update selected index\n this.setState({ selectedIndex: index, focus: focus === true });\n }\n },\n getNextTab: function getNextTab(index) {\n var count = this.getTabsCount();\n\n // Look for non-disabled tab from index to the last tab on the right\n for (var i = index + 1; i < count; i++) {\n var tab = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from first on left to index\n for (var _i = 0; _i < index; _i++) {\n var _tab = this.getTab(_i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab))) {\n return _i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n },\n getPrevTab: function getPrevTab(index) {\n var i = index;\n\n // Look for non-disabled tab from index to first tab on the left\n while (i--) {\n var tab = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from last tab on right to index\n i = this.getTabsCount();\n while (i-- > index) {\n var _tab2 = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab2))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n },\n getTabsCount: function getTabsCount() {\n return this.props.children && this.props.children[0] ? _react2.default.Children.count(this.props.children[0].props.children) : 0;\n },\n getPanelsCount: function getPanelsCount() {\n return _react2.default.Children.count(this.props.children.slice(1));\n },\n getTabList: function getTabList() {\n return this.refs.tablist;\n },\n getTab: function getTab(index) {\n return this.refs['tabs-' + index];\n },\n getPanel: function getPanel(index) {\n return this.refs['panels-' + index];\n },\n getChildren: function getChildren() {\n var index = 0;\n var count = 0;\n var children = this.props.children;\n var state = this.state;\n var tabIds = this.tabIds = this.tabIds || [];\n var panelIds = this.panelIds = this.panelIds || [];\n var diff = this.tabIds.length - this.getTabsCount();\n\n // Add ids if new tabs have been added\n // Don't bother removing ids, just keep them in case they are added again\n // This is more efficient, and keeps the uuid counter under control\n while (diff++ < 0) {\n tabIds.push((0, _uuid2.default)());\n panelIds.push((0, _uuid2.default)());\n }\n\n // Map children to dynamically setup refs\n return _react2.default.Children.map(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) {\n return null;\n }\n\n var result = null;\n\n // Clone TabList and Tab components to have refs\n if (count++ === 0) {\n // TODO try setting the uuid in the \"constructor\" for `Tab`/`TabPanel`\n result = (0, _react.cloneElement)(child, {\n ref: 'tablist',\n children: _react2.default.Children.map(child.props.children, function (tab) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (tab === null) {\n return null;\n }\n\n var ref = 'tabs-' + index;\n var id = tabIds[index];\n var panelId = panelIds[index];\n var selected = state.selectedIndex === index;\n var focus = selected && state.focus;\n\n index++;\n\n if (tab.type === _Tab2.default) {\n return (0, _react.cloneElement)(tab, {\n ref: ref,\n id: id,\n panelId: panelId,\n selected: selected,\n focus: focus\n });\n }\n\n return tab;\n })\n });\n\n // Reset index for panels\n index = 0;\n }\n // Clone TabPanel components to have refs\n else {\n var ref = 'panels-' + index;\n var id = panelIds[index];\n var tabId = tabIds[index];\n var selected = state.selectedIndex === index;\n\n index++;\n\n result = (0, _react.cloneElement)(child, {\n ref: ref,\n id: id,\n tabId: tabId,\n selected: selected\n });\n }\n\n return result;\n });\n },\n handleKeyDown: function handleKeyDown(e) {\n if (this.isTabFromContainer(e.target)) {\n var index = this.state.selectedIndex;\n var preventDefault = false;\n\n // Select next tab to the left\n if (e.keyCode === 37 || e.keyCode === 38) {\n index = this.getPrevTab(index);\n preventDefault = true;\n }\n // Select next tab to the right\n /* eslint brace-style:0 */\n else if (e.keyCode === 39 || e.keyCode === 40) {\n index = this.getNextTab(index);\n preventDefault = true;\n }\n\n // This prevents scrollbars from moving around\n if (preventDefault) {\n e.preventDefault();\n }\n\n this.setSelected(index, true);\n }\n },\n handleClick: function handleClick(e) {\n var node = e.target;\n do {\n // eslint-disable-line no-cond-assign\n if (this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n var index = [].slice.call(node.parentNode.children).indexOf(node);\n this.setSelected(index);\n return;\n }\n } while ((node = node.parentNode) !== null);\n },\n\n\n // This is an anti-pattern, so sue me\n copyPropsToState: function copyPropsToState(props, state) {\n var selectedIndex = props.selectedIndex;\n\n // If no selectedIndex prop was supplied, then try\n // preserving the existing selectedIndex from state.\n // If the state has not selectedIndex, default\n // to the first tab in the TabList.\n //\n // TODO: Need automation testing around this\n // Manual testing can be done using examples/focus\n // See 'should preserve selectedIndex when typing' in specs/Tabs.spec.js\n if (selectedIndex === -1) {\n if (state && state.selectedIndex) {\n selectedIndex = state.selectedIndex;\n } else {\n selectedIndex = 0;\n }\n }\n\n return {\n selectedIndex: selectedIndex,\n focus: props.focus\n };\n },\n\n\n /**\n * Determine if a node from event.target is a Tab element for the current Tabs container.\n * If the clicked element is not a Tab, it returns false.\n * If it finds another Tabs container between the Tab and `this`, it returns false.\n */\n isTabFromContainer: function isTabFromContainer(node) {\n // return immediately if the clicked element is not a Tab.\n if (!isTabNode(node)) {\n return false;\n }\n\n // Check if the first occurrence of a Tabs container is `this` one.\n var nodeAncestor = node.parentElement;\n var tabsNode = (0, _reactDom.findDOMNode)(this);\n do {\n if (nodeAncestor === tabsNode) return true;else if (nodeAncestor.getAttribute('data-tabs')) break;\n\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n },\n render: function render() {\n var _this2 = this;\n\n // This fixes an issue with focus management.\n //\n // Ultimately, when focus is true, and an input has focus,\n // and any change on that input causes a state change/re-render,\n // focus gets sent back to the active tab, and input loses focus.\n //\n // Since the focus state only needs to be remembered\n // for the current render, we can reset it once the\n // render has happened.\n //\n // Don't use setState, because we don't want to re-render.\n //\n // See https://github.com/reactjs/react-tabs/pull/7\n if (this.state.focus) {\n setTimeout(function () {\n _this2.state.focus = false;\n }, 0);\n }\n\n var _props = this.props,\n className = _props.className,\n attributes = _objectWithoutProperties(_props, ['className']);\n\n // Delete all known props, so they don't get added to DOM\n\n\n delete attributes.selectedIndex;\n delete attributes.onSelect;\n delete attributes.focus;\n delete attributes.children;\n delete attributes.forceRenderTabPanel;\n delete attributes.onClick;\n delete attributes.onKeyDown;\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs', 'react-tabs', className),\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown,\n 'data-tabs': true\n }),\n this.getChildren()\n );\n }\n});\n\n\n// WEBPACK FOOTER //\n// ./lib/components/Tabs.js","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/index.js\n// module id = 3\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 4\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithTypeCheckers.js\n// module id = 5\n// module chunks = 0","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/emptyFunction.js\n// module id = 6\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/invariant.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 9\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/checkPropTypes.js\n// module id = 10\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\n\nmodule.exports = function() {\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n function shim() {\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithThrowingShims.js\n// module id = 11\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar React = require('react');\nvar factory = require('./factory');\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/create-react-class/index.js\n// module id = 12\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar _invariant = require('fbjs/lib/invariant');\n\nif (process.env.NODE_ENV !== 'production') {\n var warning = require('fbjs/lib/warning');\n}\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (process.env.NODE_ENV !== 'production') {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context',\n };\n} else {\n ReactPropTypeLocationNames = {};\n}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @nosideeffects\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function (Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function (Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function (Constructor, childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, childContextTypes);\n },\n contextTypes: function (Constructor, contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes);\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function (Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps);\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function (Constructor, propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function (Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function () {} };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n process.env.NODE_ENV !== 'production' ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : void 0;\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(specPolicy === 'OVERRIDE_BASE', 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name);\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED', 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name);\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n process.env.NODE_ENV !== 'production' ? warning(isMixinValid, '%s: You\\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0;\n }\n\n return;\n }\n\n _invariant(typeof spec !== 'function', 'ReactClass: You\\'re attempting to ' + 'use a component class or function as a mixin. Instead, just use a ' + 'regular object.');\n _invariant(!isValidElement(spec), 'ReactClass: You\\'re attempting to ' + 'use a component as a mixin. Instead, just use a regular object.');\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY'), 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name);\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (process.env.NODE_ENV !== 'production') {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(!isReserved, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name);\n\n var isInherited = name in Constructor;\n _invariant(!isInherited, 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name);\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(one && two && typeof one === 'object' && typeof two === 'object', 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.');\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(one[key] === undefined, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key);\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (process.env.NODE_ENV !== 'production') {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function (newThis) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : void 0;\n } else if (!args.length) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName) : void 0;\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedMixin = {\n componentDidMount: function () {\n this.__isMounted = true;\n },\n componentWillUnmount: function () {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function (newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function () {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(this.__didWarnIsMounted, '%s: isMounted is deprecated. Instead, make sure to clean up ' + 'subscriptions and pending requests in componentWillUnmount to ' + 'prevent memory leaks.', this.constructor && this.constructor.displayName || this.name || 'Component') : void 0;\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function () {};\n _assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function (props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : void 0;\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (initialState === undefined && this.getInitialState._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(typeof initialState === 'object' && !Array.isArray(initialState), '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent');\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedMixin);\n mixSpecIntoComponent(Constructor, spec);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(Constructor.prototype.render, 'createClass(...): Class specification must implement a `render` method.');\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0;\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/create-react-class/factory.js\n// module id = 13\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/object-assign/index.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/emptyObject.js\n// module id = 15\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_16__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/classnames/index.js\n// module id = 17\n// module chunks = 0","!(function() {\n function jss(blocks) {\n var css = [];\n for (var block in blocks)\n css.push(createStyleBlock(block, blocks[block]));\n injectCSS(css);\n }\n\n function createStyleBlock(selector, rules) {\n return selector + ' {\\n' + parseRules(rules) + '\\n}';\n }\n\n function parseRules(rules) {\n var css = [];\n for (var rule in rules)\n css.push(' '+rule+': '+rules[rule]+';');\n return css.join('\\n');\n }\n\n function injectCSS(css) {\n var style = document.getElementById('jss-styles');\n if (!style) {\n style = document.createElement('style');\n style.setAttribute('id', 'jss-styles');\n var head = document.getElementsByTagName('head')[0];\n head.insertBefore(style, head.firstChild);\n }\n var node = document.createTextNode(css.join('\\n\\n'));\n style.appendChild(node);\n }\n\n if (typeof exports === 'object')\n module.exports = jss;\n else\n window.jss = jss;\n\n})();\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/js-stylesheet/jss.js\n// module id = 18\n// module chunks = 0","\"use strict\";\n\n// Get a universally unique identifier\nvar count = 0;\nmodule.exports = function uuid() {\n return \"react-tabs-\" + count++;\n};\n\n\n// WEBPACK FOOTER //\n// ./lib/helpers/uuid.js","'use strict';\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Tab = require('../components/Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabList = require('../components/TabList');\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = function childrenPropTypes(props, propName) {\n var error = void 0;\n var tabsCount = 0;\n var panelsCount = 0;\n var children = props[propName];\n\n _react2.default.Children.forEach(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) {\n return;\n }\n\n if (child.type === _TabList2.default) {\n _react2.default.Children.forEach(child.props.children, function (c) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (c === null) {\n return;\n }\n\n if (c.type === _Tab2.default) {\n tabsCount++;\n }\n });\n } else if (child.type.displayName === 'TabPanel') {\n panelsCount++;\n } else {\n error = new Error('Expected \\'TabList\\' or \\'TabPanel\\' but found \\'' + (child.type.displayName || child.type) + '\\'');\n }\n });\n\n if (tabsCount !== panelsCount) {\n error = new Error(\"There should be an equal number of 'Tabs' and 'TabPanels'.\" + ('Received ' + tabsCount + ' \\'Tabs\\' and ' + panelsCount + ' \\'TabPanels\\'.'));\n }\n\n return error;\n};\n\n\n// WEBPACK FOOTER //\n// ./lib/helpers/childrenPropType.js","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _createReactClass = require('create-react-class');\n\nvar _createReactClass2 = _interopRequireDefault(_createReactClass);\n\nvar _reactDom = require('react-dom');\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nmodule.exports = (0, _createReactClass2.default)({\n displayName: 'Tab',\n\n propTypes: {\n className: _propTypes2.default.string,\n id: _propTypes2.default.string,\n focus: _propTypes2.default.bool,\n selected: _propTypes2.default.bool,\n disabled: _propTypes2.default.bool,\n activeTabClassName: _propTypes2.default.string,\n disabledTabClassName: _propTypes2.default.string,\n panelId: _propTypes2.default.string,\n children: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object, _propTypes2.default.string])\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n focus: false,\n selected: false,\n id: null,\n panelId: null,\n activeTabClassName: 'ReactTabs__Tab--selected',\n disabledTabClassName: 'ReactTabs__Tab--disabled'\n };\n },\n componentDidMount: function componentDidMount() {\n this.checkFocus();\n },\n componentDidUpdate: function componentDidUpdate() {\n this.checkFocus();\n },\n checkFocus: function checkFocus() {\n if (this.props.selected && this.props.focus) {\n (0, _reactDom.findDOMNode)(this).focus();\n }\n },\n render: function render() {\n var _cx;\n\n var _props = this.props,\n selected = _props.selected,\n disabled = _props.disabled,\n panelId = _props.panelId,\n activeTabClassName = _props.activeTabClassName,\n disabledTabClassName = _props.disabledTabClassName,\n className = _props.className,\n children = _props.children,\n id = _props.id,\n attributes = _objectWithoutProperties(_props, ['selected', 'disabled', 'panelId', 'activeTabClassName', 'disabledTabClassName', 'className', 'children', 'id']);\n\n delete attributes.focus;\n\n return _react2.default.createElement(\n 'li',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__Tab', className, (_cx = {}, _defineProperty(_cx, activeTabClassName, selected), _defineProperty(_cx, disabledTabClassName, disabled), _cx)),\n role: 'tab',\n id: id,\n 'aria-selected': selected ? 'true' : 'false',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-controls': panelId,\n tabIndex: selected ? '0' : null\n }),\n children\n );\n }\n});\n\n\n// WEBPACK FOOTER //\n// ./lib/components/Tab.js","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _createReactClass = require('create-react-class');\n\nvar _createReactClass2 = _interopRequireDefault(_createReactClass);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _Tab = require('./Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction renderChildren(props) {\n return _react2.default.Children.map(props.children, function (child) {\n // if child is not a tab we don't need to clone it\n // since we don't need to add custom props\n\n if (child.type !== _Tab2.default) {\n return child;\n }\n\n var clonedProps = {\n activeTabClassName: props.activeTabClassName,\n disabledTabClassName: props.disabledTabClassName\n };\n\n return _react2.default.cloneElement(child, clonedProps);\n });\n}\n\nmodule.exports = (0, _createReactClass2.default)({\n displayName: 'TabList',\n\n propTypes: {\n className: _propTypes2.default.string,\n activeTabClassName: _propTypes2.default.string,\n disabledTabClassName: _propTypes2.default.string,\n children: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.array])\n },\n\n render: function render() {\n var _props = this.props,\n className = _props.className,\n activeTabClassName = _props.activeTabClassName,\n disabledTabClassName = _props.disabledTabClassName,\n children = _props.children,\n attributes = _objectWithoutProperties(_props, ['className', 'activeTabClassName', 'disabledTabClassName', 'children']);\n\n return _react2.default.createElement(\n 'ul',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__TabList', className),\n role: 'tablist'\n }),\n renderChildren({ activeTabClassName: activeTabClassName, disabledTabClassName: disabledTabClassName, children: children })\n );\n }\n});\n\n\n// WEBPACK FOOTER //\n// ./lib/components/TabList.js","'use strict';\n\nmodule.exports = {\n '.react-tabs [role=tablist]': {\n 'border-bottom': '1px solid #aaa',\n margin: '0 0 10px',\n padding: '0'\n },\n\n '.react-tabs [role=tab]': {\n display: 'inline-block',\n border: '1px solid transparent',\n 'border-bottom': 'none',\n bottom: '-1px',\n position: 'relative',\n 'list-style': 'none',\n padding: '6px 12px',\n cursor: 'pointer'\n },\n\n '.react-tabs [role=tab][aria-selected=true]': {\n background: '#fff',\n 'border-color': '#aaa',\n color: 'black',\n 'border-radius': '5px 5px 0 0',\n '-moz-border-radius': '5px 5px 0 0',\n '-webkit-border-radius': '5px 5px 0 0'\n },\n\n '.react-tabs [role=tab][aria-disabled=true]': {\n color: 'GrayText',\n cursor: 'default'\n },\n\n '.react-tabs [role=tab]:focus': {\n 'box-shadow': '0 0 5px hsl(208, 99%, 50%)',\n 'border-color': 'hsl(208, 99%, 50%)',\n outline: 'none'\n },\n\n '.react-tabs [role=tab]:focus:after': {\n content: '\"\"',\n position: 'absolute',\n height: '5px',\n left: '-4px',\n right: '-4px',\n bottom: '-5px',\n background: '#fff'\n }\n};\n\n\n// WEBPACK FOOTER //\n// ./lib/helpers/styles.js","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _createReactClass = require('create-react-class');\n\nvar _createReactClass2 = _interopRequireDefault(_createReactClass);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nmodule.exports = (0, _createReactClass2.default)({\n displayName: 'TabPanel',\n\n propTypes: {\n children: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object, _propTypes2.default.string]),\n className: _propTypes2.default.string,\n id: _propTypes2.default.string,\n selected: _propTypes2.default.bool,\n style: _propTypes2.default.object,\n tabId: _propTypes2.default.string\n },\n\n contextTypes: {\n forceRenderTabPanel: _propTypes2.default.bool\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n selected: false,\n id: null,\n tabId: null\n };\n },\n render: function render() {\n var _props = this.props,\n className = _props.className,\n children = _props.children,\n selected = _props.selected,\n id = _props.id,\n tabId = _props.tabId,\n style = _props.style,\n attributes = _objectWithoutProperties(_props, ['className', 'children', 'selected', 'id', 'tabId', 'style']);\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__TabPanel', className, {\n 'ReactTabs__TabPanel--selected': selected\n }),\n role: 'tabpanel',\n id: id,\n 'aria-labelledby': tabId,\n style: _extends({}, style, { display: selected ? null : 'none' })\n }),\n this.context.forceRenderTabPanel || selected ? children : null\n );\n }\n});\n\n\n// WEBPACK FOOTER //\n// ./lib/components/TabPanel.js"],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/react-tabs.min.js b/dist/react-tabs.min.js
deleted file mode 100644
index de3e033dd6..0000000000
--- a/dist/react-tabs.min.js
+++ /dev/null
@@ -1,12 +0,0 @@
-!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],t):"object"==typeof exports?exports.ReactTabs=t(require("react"),require("react-dom")):e.ReactTabs=t(e.React,e.ReactDOM)}(this,function(e,t){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}Object.defineProperty(t,"__esModule",{value:!0}),t.TabPanel=t.Tab=t.TabList=t.Tabs=void 0;var o=n(1),a=r(o),i=n(22),s=r(i),u=n(21),c=r(u),l=n(24),f=r(l);t.Tabs=a.default,t.TabList=s.default,t.Tab=c.default,t.TabPanel=f.default,t.default={Tabs:a.default,TabList:s.default,Tab:c.default,TabPanel:f.default}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{default:e}}function o(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e){return"LI"===e.nodeName&&"tab"===e.getAttribute("role")}function i(e){return"true"===e.getAttribute("aria-disabled")}var s=Object.assign||function(e){for(var t=1;t=this.getTabsCount())){var n=this.state.selectedIndex,r=!1;"function"==typeof this.props.onSelect&&(r=this.props.onSelect(e,n)===!1),r||this.setState({selectedIndex:e,focus:t===!0})}},getNextTab:function(e){for(var t=this.getTabsCount(),n=e+1;ne;){var r=this.getTab(t);if(!i((0,h.findDOMNode)(r)))return t}return e},getTabsCount:function(){return this.props.children&&this.props.children[0]?c.default.Children.count(this.props.children[0].props.children):0},getPanelsCount:function(){return c.default.Children.count(this.props.children.slice(1))},getTabList:function(){return this.refs.tablist},getTab:function(e){return this.refs["tabs-"+e]},getPanel:function(e){return this.refs["panels-"+e]},getChildren:function(){for(var e=0,t=0,n=this.props.children,r=this.state,o=this.tabIds=this.tabIds||[],a=this.panelIds=this.panelIds||[],i=this.tabIds.length-this.getTabsCount();i++<0;)o.push((0,N.default)()),a.push((0,N.default)());return c.default.Children.map(n,function(n){if(null===n)return null;var i=null;if(0===t++)i=(0,u.cloneElement)(n,{ref:"tablist",children:c.default.Children.map(n.props.children,function(t){if(null===t)return null;var n="tabs-"+e,i=o[e],s=a[e],c=r.selectedIndex===e,l=c&&r.focus;return e++,t.type===_.default?(0,u.cloneElement)(t,{ref:n,id:i,panelId:s,selected:c,focus:l}):t})}),e=0;else{var s="panels-"+e,l=a[e],f=o[e],d=r.selectedIndex===e;e++,i=(0,u.cloneElement)(n,{ref:s,id:l,tabId:f,selected:d})}return i})},handleKeyDown:function(e){if(this.isTabFromContainer(e.target)){var t=this.state.selectedIndex,n=!1;37===e.keyCode||38===e.keyCode?(t=this.getPrevTab(t),n=!0):39!==e.keyCode&&40!==e.keyCode||(t=this.getNextTab(t),n=!0),n&&e.preventDefault(),this.setSelected(t,!0)}},handleClick:function(e){var t=e.target;do if(this.isTabFromContainer(t)){if(i(t))return;var n=[].slice.call(t.parentNode.children).indexOf(t);return void this.setSelected(n)}while(null!==(t=t.parentNode))},copyPropsToState:function(e,t){var n=e.selectedIndex;return n===-1&&(n=t&&t.selectedIndex?t.selectedIndex:0),{selectedIndex:n,focus:e.focus}},isTabFromContainer:function(e){if(!a(e))return!1;var t=e.parentElement,n=(0,h.findDOMNode)(this);do{if(t===n)return!0;if(t.getAttribute("data-tabs"))break;t=t.parentElement}while(t);return!1},render:function(){var e=this;this.state.focus&&setTimeout(function(){e.state.focus=!1},0);var t=this.props,n=t.className,r=o(t,["className"]);return delete r.selectedIndex,delete r.onSelect,delete r.focus,delete r.children,delete r.forceRenderTabPanel,delete r.onClick,delete r.onKeyDown,c.default.createElement("div",s({},r,{className:(0,b.default)("ReactTabs","react-tabs",n),onClick:this.handleClick,onKeyDown:this.handleKeyDown,"data-tabs":!0}),this.getChildren())}})},function(t,n){t.exports=e},function(e,t,n){(function(t){if("production"!==t.env.NODE_ENV){var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103,o=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},a=!0;e.exports=n(5)(o,a)}else e.exports=n(11)()}).call(t,n(4))},function(e,t){function n(){throw new Error("setTimeout has not been defined")}function r(){throw new Error("clearTimeout has not been defined")}function o(e){if(l===setTimeout)return setTimeout(e,0);if((l===n||!l)&&setTimeout)return l=setTimeout,setTimeout(e,0);try{return l(e,0)}catch(t){try{return l.call(null,e,0)}catch(t){return l.call(this,e,0)}}}function a(e){if(f===clearTimeout)return clearTimeout(e);if((f===r||!f)&&clearTimeout)return f=clearTimeout,clearTimeout(e);try{return f(e)}catch(t){try{return f.call(null,e)}catch(t){return f.call(this,e)}}}function i(){y&&p&&(y=!1,p.length?h=p.concat(h):b=-1,h.length&&s())}function s(){if(!y){var e=o(i);y=!0;for(var t=h.length;t;){for(p=h,h=[];++b1)for(var n=1;n>",I={array:d("array"),bool:d("boolean"),func:d("function"),number:d("number"),object:d("object"),string:d("string"),symbol:d("symbol"),any:p(),arrayOf:h,element:y(),instanceOf:b,node:N(),objectOf:v,oneOf:m,oneOfType:g,shape:E};return l.prototype=Error.prototype,I.checkPropTypes=s,I.PropTypes=I,I}}).call(t,n(4))},function(e,t){"use strict";function n(e){return function(){return e}}var r=function(){};r.thatReturns=n,r.thatReturnsFalse=n(!1),r.thatReturnsTrue=n(!0),r.thatReturnsNull=n(null),r.thatReturnsThis=function(){return this},r.thatReturnsArgument=function(e){return e},e.exports=r},function(e,t,n){(function(t){"use strict";function n(e,t,n,o,a,i,s,u){if(r(t),!e){var c;if(void 0===t)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var l=[n,o,a,i,s,u],f=0;c=new Error(t.replace(/%s/g,function(){return l[f++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}}var r=function(e){};"production"!==t.env.NODE_ENV&&(r=function(e){if(void 0===e)throw new Error("invariant requires an error message argument")}),e.exports=n}).call(t,n(4))},function(e,t,n){(function(t){"use strict";var r=n(6),o=r;"production"!==t.env.NODE_ENV&&!function(){var e=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),r=1;r2?r-2:0),a=2;a1?s-1:0),l=1;l=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}var i=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e){return u.default.Children.map(e.children,function(t){if(t.type!==b.default)return t;var n={activeTabClassName:e.activeTabClassName,disabledTabClassName:e.disabledTabClassName};return u.default.cloneElement(t,n)})}var i=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}var a=Object.assign||function(e){for(var t=1;t= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t }return target;\n\t}\n\t\n\t// Determine if a node from event.target is a Tab element\n\tfunction isTabNode(node) {\n\t return node.nodeName === 'LI' && node.getAttribute('role') === 'tab';\n\t}\n\t\n\t// Determine if a tab node is disabled\n\tfunction isTabDisabled(node) {\n\t return node.getAttribute('aria-disabled') === 'true';\n\t}\n\t\n\tvar useDefaultStyles = true;\n\t\n\tmodule.exports = (0, _createReactClass2.default)({\n\t displayName: 'Tabs',\n\t\n\t propTypes: {\n\t className: _propTypes2.default.string,\n\t selectedIndex: _propTypes2.default.number,\n\t onSelect: _propTypes2.default.func,\n\t focus: _propTypes2.default.bool,\n\t children: _childrenPropType2.default,\n\t forceRenderTabPanel: _propTypes2.default.bool\n\t },\n\t\n\t childContextTypes: {\n\t forceRenderTabPanel: _propTypes2.default.bool\n\t },\n\t\n\t statics: {\n\t setUseDefaultStyles: function setUseDefaultStyles(use) {\n\t useDefaultStyles = use;\n\t }\n\t },\n\t\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t selectedIndex: -1,\n\t focus: false,\n\t forceRenderTabPanel: false\n\t };\n\t },\n\t getInitialState: function getInitialState() {\n\t return this.copyPropsToState(this.props, this.state);\n\t },\n\t getChildContext: function getChildContext() {\n\t return {\n\t forceRenderTabPanel: this.props.forceRenderTabPanel\n\t };\n\t },\n\t componentDidMount: function componentDidMount() {\n\t if (useDefaultStyles) {\n\t (0, _jsStylesheet2.default)(__webpack_require__(23)); // eslint-disable-line global-require\n\t }\n\t },\n\t componentWillReceiveProps: function componentWillReceiveProps(newProps) {\n\t var _this = this;\n\t\n\t // Use a transactional update to prevent race conditions\n\t // when reading the state in copyPropsToState\n\t // See https://github.com/reactjs/react-tabs/issues/51\n\t this.setState(function (state) {\n\t return _this.copyPropsToState(newProps, state);\n\t });\n\t },\n\t setSelected: function setSelected(index, focus) {\n\t // Don't do anything if nothing has changed\n\t if (index === this.state.selectedIndex) return;\n\t // Check index boundary\n\t if (index < 0 || index >= this.getTabsCount()) return;\n\t\n\t // Keep reference to last index for event handler\n\t var last = this.state.selectedIndex;\n\t\n\t // Check if the change event handler cancels the tab change\n\t var cancel = false;\n\t\n\t // Call change event handler\n\t if (typeof this.props.onSelect === 'function') {\n\t cancel = this.props.onSelect(index, last) === false;\n\t }\n\t\n\t if (!cancel) {\n\t // Update selected index\n\t this.setState({ selectedIndex: index, focus: focus === true });\n\t }\n\t },\n\t getNextTab: function getNextTab(index) {\n\t var count = this.getTabsCount();\n\t\n\t // Look for non-disabled tab from index to the last tab on the right\n\t for (var i = index + 1; i < count; i++) {\n\t var tab = this.getTab(i);\n\t if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\n\t return i;\n\t }\n\t }\n\t\n\t // If no tab found, continue searching from first on left to index\n\t for (var _i = 0; _i < index; _i++) {\n\t var _tab = this.getTab(_i);\n\t if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab))) {\n\t return _i;\n\t }\n\t }\n\t\n\t // No tabs are disabled, return index\n\t return index;\n\t },\n\t getPrevTab: function getPrevTab(index) {\n\t var i = index;\n\t\n\t // Look for non-disabled tab from index to first tab on the left\n\t while (i--) {\n\t var tab = this.getTab(i);\n\t if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\n\t return i;\n\t }\n\t }\n\t\n\t // If no tab found, continue searching from last tab on right to index\n\t i = this.getTabsCount();\n\t while (i-- > index) {\n\t var _tab2 = this.getTab(i);\n\t if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab2))) {\n\t return i;\n\t }\n\t }\n\t\n\t // No tabs are disabled, return index\n\t return index;\n\t },\n\t getTabsCount: function getTabsCount() {\n\t return this.props.children && this.props.children[0] ? _react2.default.Children.count(this.props.children[0].props.children) : 0;\n\t },\n\t getPanelsCount: function getPanelsCount() {\n\t return _react2.default.Children.count(this.props.children.slice(1));\n\t },\n\t getTabList: function getTabList() {\n\t return this.refs.tablist;\n\t },\n\t getTab: function getTab(index) {\n\t return this.refs['tabs-' + index];\n\t },\n\t getPanel: function getPanel(index) {\n\t return this.refs['panels-' + index];\n\t },\n\t getChildren: function getChildren() {\n\t var index = 0;\n\t var count = 0;\n\t var children = this.props.children;\n\t var state = this.state;\n\t var tabIds = this.tabIds = this.tabIds || [];\n\t var panelIds = this.panelIds = this.panelIds || [];\n\t var diff = this.tabIds.length - this.getTabsCount();\n\t\n\t // Add ids if new tabs have been added\n\t // Don't bother removing ids, just keep them in case they are added again\n\t // This is more efficient, and keeps the uuid counter under control\n\t while (diff++ < 0) {\n\t tabIds.push((0, _uuid2.default)());\n\t panelIds.push((0, _uuid2.default)());\n\t }\n\t\n\t // Map children to dynamically setup refs\n\t return _react2.default.Children.map(children, function (child) {\n\t // null happens when conditionally rendering TabPanel/Tab\n\t // see https://github.com/reactjs/react-tabs/issues/37\n\t if (child === null) {\n\t return null;\n\t }\n\t\n\t var result = null;\n\t\n\t // Clone TabList and Tab components to have refs\n\t if (count++ === 0) {\n\t // TODO try setting the uuid in the \"constructor\" for `Tab`/`TabPanel`\n\t result = (0, _react.cloneElement)(child, {\n\t ref: 'tablist',\n\t children: _react2.default.Children.map(child.props.children, function (tab) {\n\t // null happens when conditionally rendering TabPanel/Tab\n\t // see https://github.com/reactjs/react-tabs/issues/37\n\t if (tab === null) {\n\t return null;\n\t }\n\t\n\t var ref = 'tabs-' + index;\n\t var id = tabIds[index];\n\t var panelId = panelIds[index];\n\t var selected = state.selectedIndex === index;\n\t var focus = selected && state.focus;\n\t\n\t index++;\n\t\n\t if (tab.type === _Tab2.default) {\n\t return (0, _react.cloneElement)(tab, {\n\t ref: ref,\n\t id: id,\n\t panelId: panelId,\n\t selected: selected,\n\t focus: focus\n\t });\n\t }\n\t\n\t return tab;\n\t })\n\t });\n\t\n\t // Reset index for panels\n\t index = 0;\n\t }\n\t // Clone TabPanel components to have refs\n\t else {\n\t var ref = 'panels-' + index;\n\t var id = panelIds[index];\n\t var tabId = tabIds[index];\n\t var selected = state.selectedIndex === index;\n\t\n\t index++;\n\t\n\t result = (0, _react.cloneElement)(child, {\n\t ref: ref,\n\t id: id,\n\t tabId: tabId,\n\t selected: selected\n\t });\n\t }\n\t\n\t return result;\n\t });\n\t },\n\t handleKeyDown: function handleKeyDown(e) {\n\t if (this.isTabFromContainer(e.target)) {\n\t var index = this.state.selectedIndex;\n\t var preventDefault = false;\n\t\n\t // Select next tab to the left\n\t if (e.keyCode === 37 || e.keyCode === 38) {\n\t index = this.getPrevTab(index);\n\t preventDefault = true;\n\t }\n\t // Select next tab to the right\n\t /* eslint brace-style:0 */\n\t else if (e.keyCode === 39 || e.keyCode === 40) {\n\t index = this.getNextTab(index);\n\t preventDefault = true;\n\t }\n\t\n\t // This prevents scrollbars from moving around\n\t if (preventDefault) {\n\t e.preventDefault();\n\t }\n\t\n\t this.setSelected(index, true);\n\t }\n\t },\n\t handleClick: function handleClick(e) {\n\t var node = e.target;\n\t do {\n\t // eslint-disable-line no-cond-assign\n\t if (this.isTabFromContainer(node)) {\n\t if (isTabDisabled(node)) {\n\t return;\n\t }\n\t\n\t var index = [].slice.call(node.parentNode.children).indexOf(node);\n\t this.setSelected(index);\n\t return;\n\t }\n\t } while ((node = node.parentNode) !== null);\n\t },\n\t\n\t // This is an anti-pattern, so sue me\n\t copyPropsToState: function copyPropsToState(props, state) {\n\t var selectedIndex = props.selectedIndex;\n\t\n\t // If no selectedIndex prop was supplied, then try\n\t // preserving the existing selectedIndex from state.\n\t // If the state has not selectedIndex, default\n\t // to the first tab in the TabList.\n\t //\n\t // TODO: Need automation testing around this\n\t // Manual testing can be done using examples/focus\n\t // See 'should preserve selectedIndex when typing' in specs/Tabs.spec.js\n\t if (selectedIndex === -1) {\n\t if (state && state.selectedIndex) {\n\t selectedIndex = state.selectedIndex;\n\t } else {\n\t selectedIndex = 0;\n\t }\n\t }\n\t\n\t return {\n\t selectedIndex: selectedIndex,\n\t focus: props.focus\n\t };\n\t },\n\t\n\t /**\n\t * Determine if a node from event.target is a Tab element for the current Tabs container.\n\t * If the clicked element is not a Tab, it returns false.\n\t * If it finds another Tabs container between the Tab and `this`, it returns false.\n\t */\n\t isTabFromContainer: function isTabFromContainer(node) {\n\t // return immediately if the clicked element is not a Tab.\n\t if (!isTabNode(node)) {\n\t return false;\n\t }\n\t\n\t // Check if the first occurrence of a Tabs container is `this` one.\n\t var nodeAncestor = node.parentElement;\n\t var tabsNode = (0, _reactDom.findDOMNode)(this);\n\t do {\n\t if (nodeAncestor === tabsNode) return true;else if (nodeAncestor.getAttribute('data-tabs')) break;\n\t\n\t nodeAncestor = nodeAncestor.parentElement;\n\t } while (nodeAncestor);\n\t\n\t return false;\n\t },\n\t render: function render() {\n\t var _this2 = this;\n\t\n\t // This fixes an issue with focus management.\n\t //\n\t // Ultimately, when focus is true, and an input has focus,\n\t // and any change on that input causes a state change/re-render,\n\t // focus gets sent back to the active tab, and input loses focus.\n\t //\n\t // Since the focus state only needs to be remembered\n\t // for the current render, we can reset it once the\n\t // render has happened.\n\t //\n\t // Don't use setState, because we don't want to re-render.\n\t //\n\t // See https://github.com/reactjs/react-tabs/pull/7\n\t if (this.state.focus) {\n\t setTimeout(function () {\n\t _this2.state.focus = false;\n\t }, 0);\n\t }\n\t\n\t var _props = this.props,\n\t className = _props.className,\n\t attributes = _objectWithoutProperties(_props, ['className']);\n\t\n\t // Delete all known props, so they don't get added to DOM\n\t\n\t\n\t delete attributes.selectedIndex;\n\t delete attributes.onSelect;\n\t delete attributes.focus;\n\t delete attributes.children;\n\t delete attributes.forceRenderTabPanel;\n\t delete attributes.onClick;\n\t delete attributes.onKeyDown;\n\t\n\t return _react2.default.createElement('div', _extends({}, attributes, {\n\t className: (0, _classnames2.default)('ReactTabs', 'react-tabs', className),\n\t onClick: this.handleClick,\n\t onKeyDown: this.handleKeyDown,\n\t 'data-tabs': true\n\t }), this.getChildren());\n\t }\n\t});\n\n/***/ }),\n/* 2 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n/***/ }),\n/* 3 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n\t Symbol.for &&\n\t Symbol.for('react.element')) ||\n\t 0xeac7;\n\t\n\t var isValidElement = function(object) {\n\t return typeof object === 'object' &&\n\t object !== null &&\n\t object.$$typeof === REACT_ELEMENT_TYPE;\n\t };\n\t\n\t // By explicitly using `prop-types` you are opting into new development behavior.\n\t // http://fb.me/prop-types-in-prod\n\t var throwOnDirectAccess = true;\n\t module.exports = __webpack_require__(5)(isValidElement, throwOnDirectAccess);\n\t} else {\n\t // By explicitly using `prop-types` you are opting into new production behavior.\n\t // http://fb.me/prop-types-in-prod\n\t module.exports = __webpack_require__(11)();\n\t}\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))\n\n/***/ }),\n/* 4 */\n/***/ (function(module, exports) {\n\n\t// shim for using process in browser\n\tvar process = module.exports = {};\n\t\n\t// cached from whatever global is present so that test runners that stub it\n\t// don't break things. But we need to wrap it in a try catch in case it is\n\t// wrapped in strict mode code which doesn't define any globals. It's inside a\n\t// function because try/catches deoptimize in certain engines.\n\t\n\tvar cachedSetTimeout;\n\tvar cachedClearTimeout;\n\t\n\tfunction defaultSetTimout() {\n\t throw new Error('setTimeout has not been defined');\n\t}\n\tfunction defaultClearTimeout () {\n\t throw new Error('clearTimeout has not been defined');\n\t}\n\t(function () {\n\t try {\n\t if (typeof setTimeout === 'function') {\n\t cachedSetTimeout = setTimeout;\n\t } else {\n\t cachedSetTimeout = defaultSetTimout;\n\t }\n\t } catch (e) {\n\t cachedSetTimeout = defaultSetTimout;\n\t }\n\t try {\n\t if (typeof clearTimeout === 'function') {\n\t cachedClearTimeout = clearTimeout;\n\t } else {\n\t cachedClearTimeout = defaultClearTimeout;\n\t }\n\t } catch (e) {\n\t cachedClearTimeout = defaultClearTimeout;\n\t }\n\t} ())\n\tfunction runTimeout(fun) {\n\t if (cachedSetTimeout === setTimeout) {\n\t //normal enviroments in sane situations\n\t return setTimeout(fun, 0);\n\t }\n\t // if setTimeout wasn't available but was latter defined\n\t if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n\t cachedSetTimeout = setTimeout;\n\t return setTimeout(fun, 0);\n\t }\n\t try {\n\t // when when somebody has screwed with setTimeout but no I.E. maddness\n\t return cachedSetTimeout(fun, 0);\n\t } catch(e){\n\t try {\n\t // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n\t return cachedSetTimeout.call(null, fun, 0);\n\t } catch(e){\n\t // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n\t return cachedSetTimeout.call(this, fun, 0);\n\t }\n\t }\n\t\n\t\n\t}\n\tfunction runClearTimeout(marker) {\n\t if (cachedClearTimeout === clearTimeout) {\n\t //normal enviroments in sane situations\n\t return clearTimeout(marker);\n\t }\n\t // if clearTimeout wasn't available but was latter defined\n\t if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n\t cachedClearTimeout = clearTimeout;\n\t return clearTimeout(marker);\n\t }\n\t try {\n\t // when when somebody has screwed with setTimeout but no I.E. maddness\n\t return cachedClearTimeout(marker);\n\t } catch (e){\n\t try {\n\t // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n\t return cachedClearTimeout.call(null, marker);\n\t } catch (e){\n\t // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n\t // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n\t return cachedClearTimeout.call(this, marker);\n\t }\n\t }\n\t\n\t\n\t\n\t}\n\tvar queue = [];\n\tvar draining = false;\n\tvar currentQueue;\n\tvar queueIndex = -1;\n\t\n\tfunction cleanUpNextTick() {\n\t if (!draining || !currentQueue) {\n\t return;\n\t }\n\t draining = false;\n\t if (currentQueue.length) {\n\t queue = currentQueue.concat(queue);\n\t } else {\n\t queueIndex = -1;\n\t }\n\t if (queue.length) {\n\t drainQueue();\n\t }\n\t}\n\t\n\tfunction drainQueue() {\n\t if (draining) {\n\t return;\n\t }\n\t var timeout = runTimeout(cleanUpNextTick);\n\t draining = true;\n\t\n\t var len = queue.length;\n\t while(len) {\n\t currentQueue = queue;\n\t queue = [];\n\t while (++queueIndex < len) {\n\t if (currentQueue) {\n\t currentQueue[queueIndex].run();\n\t }\n\t }\n\t queueIndex = -1;\n\t len = queue.length;\n\t }\n\t currentQueue = null;\n\t draining = false;\n\t runClearTimeout(timeout);\n\t}\n\t\n\tprocess.nextTick = function (fun) {\n\t var args = new Array(arguments.length - 1);\n\t if (arguments.length > 1) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t args[i - 1] = arguments[i];\n\t }\n\t }\n\t queue.push(new Item(fun, args));\n\t if (queue.length === 1 && !draining) {\n\t runTimeout(drainQueue);\n\t }\n\t};\n\t\n\t// v8 likes predictible objects\n\tfunction Item(fun, array) {\n\t this.fun = fun;\n\t this.array = array;\n\t}\n\tItem.prototype.run = function () {\n\t this.fun.apply(null, this.array);\n\t};\n\tprocess.title = 'browser';\n\tprocess.browser = true;\n\tprocess.env = {};\n\tprocess.argv = [];\n\tprocess.version = ''; // empty string to avoid regexp issues\n\tprocess.versions = {};\n\t\n\tfunction noop() {}\n\t\n\tprocess.on = noop;\n\tprocess.addListener = noop;\n\tprocess.once = noop;\n\tprocess.off = noop;\n\tprocess.removeListener = noop;\n\tprocess.removeAllListeners = noop;\n\tprocess.emit = noop;\n\t\n\tprocess.binding = function (name) {\n\t throw new Error('process.binding is not supported');\n\t};\n\t\n\tprocess.cwd = function () { return '/' };\n\tprocess.chdir = function (dir) {\n\t throw new Error('process.chdir is not supported');\n\t};\n\tprocess.umask = function() { return 0; };\n\n\n/***/ }),\n/* 5 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\tvar emptyFunction = __webpack_require__(6);\n\tvar invariant = __webpack_require__(7);\n\tvar warning = __webpack_require__(8);\n\t\n\tvar ReactPropTypesSecret = __webpack_require__(9);\n\tvar checkPropTypes = __webpack_require__(10);\n\t\n\tmodule.exports = function(isValidElement, throwOnDirectAccess) {\n\t /* global Symbol */\n\t var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n\t var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\t\n\t /**\n\t * Returns the iterator method function contained on the iterable object.\n\t *\n\t * Be sure to invoke the function with the iterable as context:\n\t *\n\t * var iteratorFn = getIteratorFn(myIterable);\n\t * if (iteratorFn) {\n\t * var iterator = iteratorFn.call(myIterable);\n\t * ...\n\t * }\n\t *\n\t * @param {?object} maybeIterable\n\t * @return {?function}\n\t */\n\t function getIteratorFn(maybeIterable) {\n\t var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n\t if (typeof iteratorFn === 'function') {\n\t return iteratorFn;\n\t }\n\t }\n\t\n\t /**\n\t * Collection of methods that allow declaration and validation of props that are\n\t * supplied to React components. Example usage:\n\t *\n\t * var Props = require('ReactPropTypes');\n\t * var MyArticle = React.createClass({\n\t * propTypes: {\n\t * // An optional string prop named \"description\".\n\t * description: Props.string,\n\t *\n\t * // A required enum prop named \"category\".\n\t * category: Props.oneOf(['News','Photos']).isRequired,\n\t *\n\t * // A prop named \"dialog\" that requires an instance of Dialog.\n\t * dialog: Props.instanceOf(Dialog).isRequired\n\t * },\n\t * render: function() { ... }\n\t * });\n\t *\n\t * A more formal specification of how these methods are used:\n\t *\n\t * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n\t * decl := ReactPropTypes.{type}(.isRequired)?\n\t *\n\t * Each and every declaration produces a function with the same signature. This\n\t * allows the creation of custom validation functions. For example:\n\t *\n\t * var MyLink = React.createClass({\n\t * propTypes: {\n\t * // An optional string or URI prop named \"href\".\n\t * href: function(props, propName, componentName) {\n\t * var propValue = props[propName];\n\t * if (propValue != null && typeof propValue !== 'string' &&\n\t * !(propValue instanceof URI)) {\n\t * return new Error(\n\t * 'Expected a string or an URI for ' + propName + ' in ' +\n\t * componentName\n\t * );\n\t * }\n\t * }\n\t * },\n\t * render: function() {...}\n\t * });\n\t *\n\t * @internal\n\t */\n\t\n\t var ANONYMOUS = '<>';\n\t\n\t // Important!\n\t // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n\t var ReactPropTypes = {\n\t array: createPrimitiveTypeChecker('array'),\n\t bool: createPrimitiveTypeChecker('boolean'),\n\t func: createPrimitiveTypeChecker('function'),\n\t number: createPrimitiveTypeChecker('number'),\n\t object: createPrimitiveTypeChecker('object'),\n\t string: createPrimitiveTypeChecker('string'),\n\t symbol: createPrimitiveTypeChecker('symbol'),\n\t\n\t any: createAnyTypeChecker(),\n\t arrayOf: createArrayOfTypeChecker,\n\t element: createElementTypeChecker(),\n\t instanceOf: createInstanceTypeChecker,\n\t node: createNodeChecker(),\n\t objectOf: createObjectOfTypeChecker,\n\t oneOf: createEnumTypeChecker,\n\t oneOfType: createUnionTypeChecker,\n\t shape: createShapeTypeChecker\n\t };\n\t\n\t /**\n\t * inlined Object.is polyfill to avoid requiring consumers ship their own\n\t * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n\t */\n\t /*eslint-disable no-self-compare*/\n\t function is(x, y) {\n\t // SameValue algorithm\n\t if (x === y) {\n\t // Steps 1-5, 7-10\n\t // Steps 6.b-6.e: +0 != -0\n\t return x !== 0 || 1 / x === 1 / y;\n\t } else {\n\t // Step 6.a: NaN == NaN\n\t return x !== x && y !== y;\n\t }\n\t }\n\t /*eslint-enable no-self-compare*/\n\t\n\t /**\n\t * We use an Error-like object for backward compatibility as people may call\n\t * PropTypes directly and inspect their output. However, we don't use real\n\t * Errors anymore. We don't inspect their stack anyway, and creating them\n\t * is prohibitively expensive if they are created too often, such as what\n\t * happens in oneOfType() for any type before the one that matched.\n\t */\n\t function PropTypeError(message) {\n\t this.message = message;\n\t this.stack = '';\n\t }\n\t // Make `instanceof Error` still work for returned errors.\n\t PropTypeError.prototype = Error.prototype;\n\t\n\t function createChainableTypeChecker(validate) {\n\t if (process.env.NODE_ENV !== 'production') {\n\t var manualPropTypeCallCache = {};\n\t var manualPropTypeWarningCount = 0;\n\t }\n\t function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n\t componentName = componentName || ANONYMOUS;\n\t propFullName = propFullName || propName;\n\t\n\t if (secret !== ReactPropTypesSecret) {\n\t if (throwOnDirectAccess) {\n\t // New behavior only for users of `prop-types` package\n\t invariant(\n\t false,\n\t 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n\t 'Use `PropTypes.checkPropTypes()` to call them. ' +\n\t 'Read more at http://fb.me/use-check-prop-types'\n\t );\n\t } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n\t // Old behavior for people using React.PropTypes\n\t var cacheKey = componentName + ':' + propName;\n\t if (\n\t !manualPropTypeCallCache[cacheKey] &&\n\t // Avoid spamming the console because they are often not actionable except for lib authors\n\t manualPropTypeWarningCount < 3\n\t ) {\n\t warning(\n\t false,\n\t 'You are manually calling a React.PropTypes validation ' +\n\t 'function for the `%s` prop on `%s`. This is deprecated ' +\n\t 'and will throw in the standalone `prop-types` package. ' +\n\t 'You may be seeing this warning due to a third-party PropTypes ' +\n\t 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n\t propFullName,\n\t componentName\n\t );\n\t manualPropTypeCallCache[cacheKey] = true;\n\t manualPropTypeWarningCount++;\n\t }\n\t }\n\t }\n\t if (props[propName] == null) {\n\t if (isRequired) {\n\t if (props[propName] === null) {\n\t return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n\t }\n\t return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n\t }\n\t return null;\n\t } else {\n\t return validate(props, propName, componentName, location, propFullName);\n\t }\n\t }\n\t\n\t var chainedCheckType = checkType.bind(null, false);\n\t chainedCheckType.isRequired = checkType.bind(null, true);\n\t\n\t return chainedCheckType;\n\t }\n\t\n\t function createPrimitiveTypeChecker(expectedType) {\n\t function validate(props, propName, componentName, location, propFullName, secret) {\n\t var propValue = props[propName];\n\t var propType = getPropType(propValue);\n\t if (propType !== expectedType) {\n\t // `propValue` being instance of, say, date/regexp, pass the 'object'\n\t // check, but we can offer a more precise error message here rather than\n\t // 'of type `object`'.\n\t var preciseType = getPreciseType(propValue);\n\t\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createAnyTypeChecker() {\n\t return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n\t }\n\t\n\t function createArrayOfTypeChecker(typeChecker) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (typeof typeChecker !== 'function') {\n\t return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n\t }\n\t var propValue = props[propName];\n\t if (!Array.isArray(propValue)) {\n\t var propType = getPropType(propValue);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n\t }\n\t for (var i = 0; i < propValue.length; i++) {\n\t var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n\t if (error instanceof Error) {\n\t return error;\n\t }\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createElementTypeChecker() {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t var propValue = props[propName];\n\t if (!isValidElement(propValue)) {\n\t var propType = getPropType(propValue);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createInstanceTypeChecker(expectedClass) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (!(props[propName] instanceof expectedClass)) {\n\t var expectedClassName = expectedClass.name || ANONYMOUS;\n\t var actualClassName = getClassName(props[propName]);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createEnumTypeChecker(expectedValues) {\n\t if (!Array.isArray(expectedValues)) {\n\t process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n\t return emptyFunction.thatReturnsNull;\n\t }\n\t\n\t function validate(props, propName, componentName, location, propFullName) {\n\t var propValue = props[propName];\n\t for (var i = 0; i < expectedValues.length; i++) {\n\t if (is(propValue, expectedValues[i])) {\n\t return null;\n\t }\n\t }\n\t\n\t var valuesString = JSON.stringify(expectedValues);\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createObjectOfTypeChecker(typeChecker) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (typeof typeChecker !== 'function') {\n\t return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n\t }\n\t var propValue = props[propName];\n\t var propType = getPropType(propValue);\n\t if (propType !== 'object') {\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n\t }\n\t for (var key in propValue) {\n\t if (propValue.hasOwnProperty(key)) {\n\t var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\t if (error instanceof Error) {\n\t return error;\n\t }\n\t }\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createUnionTypeChecker(arrayOfTypeCheckers) {\n\t if (!Array.isArray(arrayOfTypeCheckers)) {\n\t process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n\t return emptyFunction.thatReturnsNull;\n\t }\n\t\n\t function validate(props, propName, componentName, location, propFullName) {\n\t for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n\t var checker = arrayOfTypeCheckers[i];\n\t if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n\t return null;\n\t }\n\t }\n\t\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createNodeChecker() {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t if (!isNode(props[propName])) {\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function createShapeTypeChecker(shapeTypes) {\n\t function validate(props, propName, componentName, location, propFullName) {\n\t var propValue = props[propName];\n\t var propType = getPropType(propValue);\n\t if (propType !== 'object') {\n\t return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n\t }\n\t for (var key in shapeTypes) {\n\t var checker = shapeTypes[key];\n\t if (!checker) {\n\t continue;\n\t }\n\t var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n\t if (error) {\n\t return error;\n\t }\n\t }\n\t return null;\n\t }\n\t return createChainableTypeChecker(validate);\n\t }\n\t\n\t function isNode(propValue) {\n\t switch (typeof propValue) {\n\t case 'number':\n\t case 'string':\n\t case 'undefined':\n\t return true;\n\t case 'boolean':\n\t return !propValue;\n\t case 'object':\n\t if (Array.isArray(propValue)) {\n\t return propValue.every(isNode);\n\t }\n\t if (propValue === null || isValidElement(propValue)) {\n\t return true;\n\t }\n\t\n\t var iteratorFn = getIteratorFn(propValue);\n\t if (iteratorFn) {\n\t var iterator = iteratorFn.call(propValue);\n\t var step;\n\t if (iteratorFn !== propValue.entries) {\n\t while (!(step = iterator.next()).done) {\n\t if (!isNode(step.value)) {\n\t return false;\n\t }\n\t }\n\t } else {\n\t // Iterator will provide entry [k,v] tuples rather than values.\n\t while (!(step = iterator.next()).done) {\n\t var entry = step.value;\n\t if (entry) {\n\t if (!isNode(entry[1])) {\n\t return false;\n\t }\n\t }\n\t }\n\t }\n\t } else {\n\t return false;\n\t }\n\t\n\t return true;\n\t default:\n\t return false;\n\t }\n\t }\n\t\n\t function isSymbol(propType, propValue) {\n\t // Native Symbol.\n\t if (propType === 'symbol') {\n\t return true;\n\t }\n\t\n\t // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n\t if (propValue['@@toStringTag'] === 'Symbol') {\n\t return true;\n\t }\n\t\n\t // Fallback for non-spec compliant Symbols which are polyfilled.\n\t if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n\t return true;\n\t }\n\t\n\t return false;\n\t }\n\t\n\t // Equivalent of `typeof` but with special handling for array and regexp.\n\t function getPropType(propValue) {\n\t var propType = typeof propValue;\n\t if (Array.isArray(propValue)) {\n\t return 'array';\n\t }\n\t if (propValue instanceof RegExp) {\n\t // Old webkits (at least until Android 4.0) return 'function' rather than\n\t // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n\t // passes PropTypes.object.\n\t return 'object';\n\t }\n\t if (isSymbol(propType, propValue)) {\n\t return 'symbol';\n\t }\n\t return propType;\n\t }\n\t\n\t // This handles more types than `getPropType`. Only used for error messages.\n\t // See `createPrimitiveTypeChecker`.\n\t function getPreciseType(propValue) {\n\t var propType = getPropType(propValue);\n\t if (propType === 'object') {\n\t if (propValue instanceof Date) {\n\t return 'date';\n\t } else if (propValue instanceof RegExp) {\n\t return 'regexp';\n\t }\n\t }\n\t return propType;\n\t }\n\t\n\t // Returns class name of the object, if any.\n\t function getClassName(propValue) {\n\t if (!propValue.constructor || !propValue.constructor.name) {\n\t return ANONYMOUS;\n\t }\n\t return propValue.constructor.name;\n\t }\n\t\n\t ReactPropTypes.checkPropTypes = checkPropTypes;\n\t ReactPropTypes.PropTypes = ReactPropTypes;\n\t\n\t return ReactPropTypes;\n\t};\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))\n\n/***/ }),\n/* 6 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\t/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t * \n\t */\n\t\n\tfunction makeEmptyFunction(arg) {\n\t return function () {\n\t return arg;\n\t };\n\t}\n\t\n\t/**\n\t * This function accepts and discards inputs; it has no side effects. This is\n\t * primarily useful idiomatically for overridable function endpoints which\n\t * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n\t */\n\tvar emptyFunction = function emptyFunction() {};\n\t\n\temptyFunction.thatReturns = makeEmptyFunction;\n\temptyFunction.thatReturnsFalse = makeEmptyFunction(false);\n\temptyFunction.thatReturnsTrue = makeEmptyFunction(true);\n\temptyFunction.thatReturnsNull = makeEmptyFunction(null);\n\temptyFunction.thatReturnsThis = function () {\n\t return this;\n\t};\n\temptyFunction.thatReturnsArgument = function (arg) {\n\t return arg;\n\t};\n\t\n\tmodule.exports = emptyFunction;\n\n/***/ }),\n/* 7 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t */\n\t\n\t'use strict';\n\t\n\t/**\n\t * Use invariant() to assert state which your program assumes to be true.\n\t *\n\t * Provide sprintf-style format (only %s is supported) and arguments\n\t * to provide information about what broke and what you were\n\t * expecting.\n\t *\n\t * The invariant message will be stripped in production, but the invariant\n\t * will remain to ensure logic does not differ in production.\n\t */\n\t\n\tvar validateFormat = function validateFormat(format) {};\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t validateFormat = function validateFormat(format) {\n\t if (format === undefined) {\n\t throw new Error('invariant requires an error message argument');\n\t }\n\t };\n\t}\n\t\n\tfunction invariant(condition, format, a, b, c, d, e, f) {\n\t validateFormat(format);\n\t\n\t if (!condition) {\n\t var error;\n\t if (format === undefined) {\n\t error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n\t } else {\n\t var args = [a, b, c, d, e, f];\n\t var argIndex = 0;\n\t error = new Error(format.replace(/%s/g, function () {\n\t return args[argIndex++];\n\t }));\n\t error.name = 'Invariant Violation';\n\t }\n\t\n\t error.framesToPop = 1; // we don't care about invariant's own frame\n\t throw error;\n\t }\n\t}\n\t\n\tmodule.exports = invariant;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))\n\n/***/ }),\n/* 8 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2014-2015, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t */\n\t\n\t'use strict';\n\t\n\tvar emptyFunction = __webpack_require__(6);\n\t\n\t/**\n\t * Similar to invariant but only logs a warning if the condition is not met.\n\t * This can be used to log issues in development environments in critical\n\t * paths. Removing the logging code for production environments will keep the\n\t * same logic and follow the same code paths.\n\t */\n\t\n\tvar warning = emptyFunction;\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t (function () {\n\t var printWarning = function printWarning(format) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t var argIndex = 0;\n\t var message = 'Warning: ' + format.replace(/%s/g, function () {\n\t return args[argIndex++];\n\t });\n\t if (typeof console !== 'undefined') {\n\t console.error(message);\n\t }\n\t try {\n\t // --- Welcome to debugging React ---\n\t // This error was thrown as a convenience so that you can use this stack\n\t // to find the callsite that caused this warning to fire.\n\t throw new Error(message);\n\t } catch (x) {}\n\t };\n\t\n\t warning = function warning(condition, format) {\n\t if (format === undefined) {\n\t throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n\t }\n\t\n\t if (format.indexOf('Failed Composite propType: ') === 0) {\n\t return; // Ignore CompositeComponent proptype check.\n\t }\n\t\n\t if (!condition) {\n\t for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n\t args[_key2 - 2] = arguments[_key2];\n\t }\n\t\n\t printWarning.apply(undefined, [format].concat(args));\n\t }\n\t };\n\t })();\n\t}\n\t\n\tmodule.exports = warning;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))\n\n/***/ }),\n/* 9 */\n/***/ (function(module, exports) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\tvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\t\n\tmodule.exports = ReactPropTypesSecret;\n\n\n/***/ }),\n/* 10 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t var invariant = __webpack_require__(7);\n\t var warning = __webpack_require__(8);\n\t var ReactPropTypesSecret = __webpack_require__(9);\n\t var loggedTypeFailures = {};\n\t}\n\t\n\t/**\n\t * Assert that the values match with the type specs.\n\t * Error messages are memorized and will only be shown once.\n\t *\n\t * @param {object} typeSpecs Map of name to a ReactPropType\n\t * @param {object} values Runtime values that need to be type-checked\n\t * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n\t * @param {string} componentName Name of the component for error messages.\n\t * @param {?Function} getStack Returns the component stack.\n\t * @private\n\t */\n\tfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n\t if (process.env.NODE_ENV !== 'production') {\n\t for (var typeSpecName in typeSpecs) {\n\t if (typeSpecs.hasOwnProperty(typeSpecName)) {\n\t var error;\n\t // Prop type validation may throw. In case they do, we don't want to\n\t // fail the render phase where it didn't fail before. So we log it.\n\t // After these have been cleaned up, we'll let them throw.\n\t try {\n\t // This is intentionally an invariant that gets caught. It's the same\n\t // behavior as without this statement except with a better message.\n\t invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n\t error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n\t } catch (ex) {\n\t error = ex;\n\t }\n\t warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n\t if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n\t // Only monitor this failure once because there tends to be a lot of the\n\t // same error.\n\t loggedTypeFailures[error.message] = true;\n\t\n\t var stack = getStack ? getStack() : '';\n\t\n\t warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n\t }\n\t }\n\t }\n\t }\n\t}\n\t\n\tmodule.exports = checkPropTypes;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))\n\n/***/ }),\n/* 11 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t */\n\t\n\t'use strict';\n\t\n\tvar emptyFunction = __webpack_require__(6);\n\tvar invariant = __webpack_require__(7);\n\t\n\tmodule.exports = function() {\n\t // Important!\n\t // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n\t function shim() {\n\t invariant(\n\t false,\n\t 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n\t 'Use PropTypes.checkPropTypes() to call them. ' +\n\t 'Read more at http://fb.me/use-check-prop-types'\n\t );\n\t };\n\t shim.isRequired = shim;\n\t function getShim() {\n\t return shim;\n\t };\n\t var ReactPropTypes = {\n\t array: shim,\n\t bool: shim,\n\t func: shim,\n\t number: shim,\n\t object: shim,\n\t string: shim,\n\t symbol: shim,\n\t\n\t any: shim,\n\t arrayOf: getShim,\n\t element: shim,\n\t instanceOf: getShim,\n\t node: shim,\n\t objectOf: getShim,\n\t oneOf: getShim,\n\t oneOfType: getShim,\n\t shape: getShim\n\t };\n\t\n\t ReactPropTypes.checkPropTypes = emptyFunction;\n\t ReactPropTypes.PropTypes = ReactPropTypes;\n\t\n\t return ReactPropTypes;\n\t};\n\n\n/***/ }),\n/* 12 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t */\n\t\n\t'use strict';\n\t\n\tvar React = __webpack_require__(2);\n\tvar factory = __webpack_require__(13);\n\t\n\t// Hack to grab NoopUpdateQueue from isomorphic React\n\tvar ReactNoopUpdateQueue = new React.Component().updater;\n\t\n\tmodule.exports = factory(\n\t React.Component,\n\t React.isValidElement,\n\t ReactNoopUpdateQueue\n\t);\n\n\n/***/ }),\n/* 13 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t */\n\t\n\t'use strict';\n\t\n\tvar _assign = __webpack_require__(14);\n\t\n\tvar emptyObject = __webpack_require__(15);\n\tvar _invariant = __webpack_require__(7);\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t var warning = __webpack_require__(8);\n\t}\n\t\n\tvar MIXINS_KEY = 'mixins';\n\t\n\t// Helper function to allow the creation of anonymous functions which do not\n\t// have .name set to the name of the variable being assigned to.\n\tfunction identity(fn) {\n\t return fn;\n\t}\n\t\n\tvar ReactPropTypeLocationNames;\n\tif (process.env.NODE_ENV !== 'production') {\n\t ReactPropTypeLocationNames = {\n\t prop: 'prop',\n\t context: 'context',\n\t childContext: 'child context',\n\t };\n\t} else {\n\t ReactPropTypeLocationNames = {};\n\t}\n\t\n\tfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n\t /**\n\t * Policies that describe methods in `ReactClassInterface`.\n\t */\n\t\n\t\n\t var injectedMixins = [];\n\t\n\t /**\n\t * Composite components are higher-level components that compose other composite\n\t * or host components.\n\t *\n\t * To create a new type of `ReactClass`, pass a specification of\n\t * your new class to `React.createClass`. The only requirement of your class\n\t * specification is that you implement a `render` method.\n\t *\n\t * var MyComponent = React.createClass({\n\t * render: function() {\n\t * return
Hello World
;\n\t * }\n\t * });\n\t *\n\t * The class specification supports a specific protocol of methods that have\n\t * special meaning (e.g. `render`). See `ReactClassInterface` for\n\t * more the comprehensive protocol. Any other properties and methods in the\n\t * class specification will be available on the prototype.\n\t *\n\t * @interface ReactClassInterface\n\t * @internal\n\t */\n\t var ReactClassInterface = {\n\t\n\t /**\n\t * An array of Mixin objects to include when defining your component.\n\t *\n\t * @type {array}\n\t * @optional\n\t */\n\t mixins: 'DEFINE_MANY',\n\t\n\t /**\n\t * An object containing properties and methods that should be defined on\n\t * the component's constructor instead of its prototype (static methods).\n\t *\n\t * @type {object}\n\t * @optional\n\t */\n\t statics: 'DEFINE_MANY',\n\t\n\t /**\n\t * Definition of prop types for this component.\n\t *\n\t * @type {object}\n\t * @optional\n\t */\n\t propTypes: 'DEFINE_MANY',\n\t\n\t /**\n\t * Definition of context types for this component.\n\t *\n\t * @type {object}\n\t * @optional\n\t */\n\t contextTypes: 'DEFINE_MANY',\n\t\n\t /**\n\t * Definition of context types this component sets for its children.\n\t *\n\t * @type {object}\n\t * @optional\n\t */\n\t childContextTypes: 'DEFINE_MANY',\n\t\n\t // ==== Definition methods ====\n\t\n\t /**\n\t * Invoked when the component is mounted. Values in the mapping will be set on\n\t * `this.props` if that prop is not specified (i.e. using an `in` check).\n\t *\n\t * This method is invoked before `getInitialState` and therefore cannot rely\n\t * on `this.state` or use `this.setState`.\n\t *\n\t * @return {object}\n\t * @optional\n\t */\n\t getDefaultProps: 'DEFINE_MANY_MERGED',\n\t\n\t /**\n\t * Invoked once before the component is mounted. The return value will be used\n\t * as the initial value of `this.state`.\n\t *\n\t * getInitialState: function() {\n\t * return {\n\t * isOn: false,\n\t * fooBaz: new BazFoo()\n\t * }\n\t * }\n\t *\n\t * @return {object}\n\t * @optional\n\t */\n\t getInitialState: 'DEFINE_MANY_MERGED',\n\t\n\t /**\n\t * @return {object}\n\t * @optional\n\t */\n\t getChildContext: 'DEFINE_MANY_MERGED',\n\t\n\t /**\n\t * Uses props from `this.props` and state from `this.state` to render the\n\t * structure of the component.\n\t *\n\t * No guarantees are made about when or how often this method is invoked, so\n\t * it must not have side effects.\n\t *\n\t * render: function() {\n\t * var name = this.props.name;\n\t * return
Hello, {name}!
;\n\t * }\n\t *\n\t * @return {ReactComponent}\n\t * @nosideeffects\n\t * @required\n\t */\n\t render: 'DEFINE_ONCE',\n\t\n\t // ==== Delegate methods ====\n\t\n\t /**\n\t * Invoked when the component is initially created and about to be mounted.\n\t * This may have side effects, but any external subscriptions or data created\n\t * by this method must be cleaned up in `componentWillUnmount`.\n\t *\n\t * @optional\n\t */\n\t componentWillMount: 'DEFINE_MANY',\n\t\n\t /**\n\t * Invoked when the component has been mounted and has a DOM representation.\n\t * However, there is no guarantee that the DOM node is in the document.\n\t *\n\t * Use this as an opportunity to operate on the DOM when the component has\n\t * been mounted (initialized and rendered) for the first time.\n\t *\n\t * @param {DOMElement} rootNode DOM element representing the component.\n\t * @optional\n\t */\n\t componentDidMount: 'DEFINE_MANY',\n\t\n\t /**\n\t * Invoked before the component receives new props.\n\t *\n\t * Use this as an opportunity to react to a prop transition by updating the\n\t * state using `this.setState`. Current props are accessed via `this.props`.\n\t *\n\t * componentWillReceiveProps: function(nextProps, nextContext) {\n\t * this.setState({\n\t * likesIncreasing: nextProps.likeCount > this.props.likeCount\n\t * });\n\t * }\n\t *\n\t * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n\t * transition may cause a state change, but the opposite is not true. If you\n\t * need it, you are probably looking for `componentWillUpdate`.\n\t *\n\t * @param {object} nextProps\n\t * @optional\n\t */\n\t componentWillReceiveProps: 'DEFINE_MANY',\n\t\n\t /**\n\t * Invoked while deciding if the component should be updated as a result of\n\t * receiving new props, state and/or context.\n\t *\n\t * Use this as an opportunity to `return false` when you're certain that the\n\t * transition to the new props/state/context will not require a component\n\t * update.\n\t *\n\t * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n\t * return !equal(nextProps, this.props) ||\n\t * !equal(nextState, this.state) ||\n\t * !equal(nextContext, this.context);\n\t * }\n\t *\n\t * @param {object} nextProps\n\t * @param {?object} nextState\n\t * @param {?object} nextContext\n\t * @return {boolean} True if the component should update.\n\t * @optional\n\t */\n\t shouldComponentUpdate: 'DEFINE_ONCE',\n\t\n\t /**\n\t * Invoked when the component is about to update due to a transition from\n\t * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n\t * and `nextContext`.\n\t *\n\t * Use this as an opportunity to perform preparation before an update occurs.\n\t *\n\t * NOTE: You **cannot** use `this.setState()` in this method.\n\t *\n\t * @param {object} nextProps\n\t * @param {?object} nextState\n\t * @param {?object} nextContext\n\t * @param {ReactReconcileTransaction} transaction\n\t * @optional\n\t */\n\t componentWillUpdate: 'DEFINE_MANY',\n\t\n\t /**\n\t * Invoked when the component's DOM representation has been updated.\n\t *\n\t * Use this as an opportunity to operate on the DOM when the component has\n\t * been updated.\n\t *\n\t * @param {object} prevProps\n\t * @param {?object} prevState\n\t * @param {?object} prevContext\n\t * @param {DOMElement} rootNode DOM element representing the component.\n\t * @optional\n\t */\n\t componentDidUpdate: 'DEFINE_MANY',\n\t\n\t /**\n\t * Invoked when the component is about to be removed from its parent and have\n\t * its DOM representation destroyed.\n\t *\n\t * Use this as an opportunity to deallocate any external resources.\n\t *\n\t * NOTE: There is no `componentDidUnmount` since your component will have been\n\t * destroyed by that point.\n\t *\n\t * @optional\n\t */\n\t componentWillUnmount: 'DEFINE_MANY',\n\t\n\t // ==== Advanced methods ====\n\t\n\t /**\n\t * Updates the component's currently mounted DOM representation.\n\t *\n\t * By default, this implements React's rendering and reconciliation algorithm.\n\t * Sophisticated clients may wish to override this.\n\t *\n\t * @param {ReactReconcileTransaction} transaction\n\t * @internal\n\t * @overridable\n\t */\n\t updateComponent: 'OVERRIDE_BASE'\n\t\n\t };\n\t\n\t /**\n\t * Mapping from class specification keys to special processing functions.\n\t *\n\t * Although these are declared like instance properties in the specification\n\t * when defining classes using `React.createClass`, they are actually static\n\t * and are accessible on the constructor instead of the prototype. Despite\n\t * being static, they must be defined outside of the \"statics\" key under\n\t * which all other static methods are defined.\n\t */\n\t var RESERVED_SPEC_KEYS = {\n\t displayName: function (Constructor, displayName) {\n\t Constructor.displayName = displayName;\n\t },\n\t mixins: function (Constructor, mixins) {\n\t if (mixins) {\n\t for (var i = 0; i < mixins.length; i++) {\n\t mixSpecIntoComponent(Constructor, mixins[i]);\n\t }\n\t }\n\t },\n\t childContextTypes: function (Constructor, childContextTypes) {\n\t if (process.env.NODE_ENV !== 'production') {\n\t validateTypeDef(Constructor, childContextTypes, 'childContext');\n\t }\n\t Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, childContextTypes);\n\t },\n\t contextTypes: function (Constructor, contextTypes) {\n\t if (process.env.NODE_ENV !== 'production') {\n\t validateTypeDef(Constructor, contextTypes, 'context');\n\t }\n\t Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes);\n\t },\n\t /**\n\t * Special case getDefaultProps which should move into statics but requires\n\t * automatic merging.\n\t */\n\t getDefaultProps: function (Constructor, getDefaultProps) {\n\t if (Constructor.getDefaultProps) {\n\t Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps);\n\t } else {\n\t Constructor.getDefaultProps = getDefaultProps;\n\t }\n\t },\n\t propTypes: function (Constructor, propTypes) {\n\t if (process.env.NODE_ENV !== 'production') {\n\t validateTypeDef(Constructor, propTypes, 'prop');\n\t }\n\t Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n\t },\n\t statics: function (Constructor, statics) {\n\t mixStaticSpecIntoComponent(Constructor, statics);\n\t },\n\t autobind: function () {} };\n\t\n\t function validateTypeDef(Constructor, typeDef, location) {\n\t for (var propName in typeDef) {\n\t if (typeDef.hasOwnProperty(propName)) {\n\t // use a warning instead of an _invariant so components\n\t // don't show up in prod but only in __DEV__\n\t process.env.NODE_ENV !== 'production' ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : void 0;\n\t }\n\t }\n\t }\n\t\n\t function validateMethodOverride(isAlreadyDefined, name) {\n\t var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;\n\t\n\t // Disallow overriding of base class methods unless explicitly allowed.\n\t if (ReactClassMixin.hasOwnProperty(name)) {\n\t _invariant(specPolicy === 'OVERRIDE_BASE', 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name);\n\t }\n\t\n\t // Disallow defining methods more than once unless explicitly allowed.\n\t if (isAlreadyDefined) {\n\t _invariant(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED', 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name);\n\t }\n\t }\n\t\n\t /**\n\t * Mixin helper which handles policy validation and reserved\n\t * specification keys when building React classes.\n\t */\n\t function mixSpecIntoComponent(Constructor, spec) {\n\t if (!spec) {\n\t if (process.env.NODE_ENV !== 'production') {\n\t var typeofSpec = typeof spec;\n\t var isMixinValid = typeofSpec === 'object' && spec !== null;\n\t\n\t process.env.NODE_ENV !== 'production' ? warning(isMixinValid, '%s: You\\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0;\n\t }\n\t\n\t return;\n\t }\n\t\n\t _invariant(typeof spec !== 'function', 'ReactClass: You\\'re attempting to ' + 'use a component class or function as a mixin. Instead, just use a ' + 'regular object.');\n\t _invariant(!isValidElement(spec), 'ReactClass: You\\'re attempting to ' + 'use a component as a mixin. Instead, just use a regular object.');\n\t\n\t var proto = Constructor.prototype;\n\t var autoBindPairs = proto.__reactAutoBindPairs;\n\t\n\t // By handling mixins before any other properties, we ensure the same\n\t // chaining order is applied to methods with DEFINE_MANY policy, whether\n\t // mixins are listed before or after these methods in the spec.\n\t if (spec.hasOwnProperty(MIXINS_KEY)) {\n\t RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n\t }\n\t\n\t for (var name in spec) {\n\t if (!spec.hasOwnProperty(name)) {\n\t continue;\n\t }\n\t\n\t if (name === MIXINS_KEY) {\n\t // We have already handled mixins in a special case above.\n\t continue;\n\t }\n\t\n\t var property = spec[name];\n\t var isAlreadyDefined = proto.hasOwnProperty(name);\n\t validateMethodOverride(isAlreadyDefined, name);\n\t\n\t if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n\t RESERVED_SPEC_KEYS[name](Constructor, property);\n\t } else {\n\t // Setup methods on prototype:\n\t // The following member methods should not be automatically bound:\n\t // 1. Expected ReactClass methods (in the \"interface\").\n\t // 2. Overridden methods (that were mixed in).\n\t var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n\t var isFunction = typeof property === 'function';\n\t var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n\t\n\t if (shouldAutoBind) {\n\t autoBindPairs.push(name, property);\n\t proto[name] = property;\n\t } else {\n\t if (isAlreadyDefined) {\n\t var specPolicy = ReactClassInterface[name];\n\t\n\t // These cases should already be caught by validateMethodOverride.\n\t _invariant(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY'), 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name);\n\t\n\t // For methods which are defined more than once, call the existing\n\t // methods before calling the new property, merging if appropriate.\n\t if (specPolicy === 'DEFINE_MANY_MERGED') {\n\t proto[name] = createMergedResultFunction(proto[name], property);\n\t } else if (specPolicy === 'DEFINE_MANY') {\n\t proto[name] = createChainedFunction(proto[name], property);\n\t }\n\t } else {\n\t proto[name] = property;\n\t if (process.env.NODE_ENV !== 'production') {\n\t // Add verbose displayName to the function, which helps when looking\n\t // at profiling tools.\n\t if (typeof property === 'function' && spec.displayName) {\n\t proto[name].displayName = spec.displayName + '_' + name;\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }\n\t }\n\t\n\t function mixStaticSpecIntoComponent(Constructor, statics) {\n\t if (!statics) {\n\t return;\n\t }\n\t for (var name in statics) {\n\t var property = statics[name];\n\t if (!statics.hasOwnProperty(name)) {\n\t continue;\n\t }\n\t\n\t var isReserved = name in RESERVED_SPEC_KEYS;\n\t _invariant(!isReserved, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name);\n\t\n\t var isInherited = name in Constructor;\n\t _invariant(!isInherited, 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name);\n\t Constructor[name] = property;\n\t }\n\t }\n\t\n\t /**\n\t * Merge two objects, but throw if both contain the same key.\n\t *\n\t * @param {object} one The first object, which is mutated.\n\t * @param {object} two The second object\n\t * @return {object} one after it has been mutated to contain everything in two.\n\t */\n\t function mergeIntoWithNoDuplicateKeys(one, two) {\n\t _invariant(one && two && typeof one === 'object' && typeof two === 'object', 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.');\n\t\n\t for (var key in two) {\n\t if (two.hasOwnProperty(key)) {\n\t _invariant(one[key] === undefined, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key);\n\t one[key] = two[key];\n\t }\n\t }\n\t return one;\n\t }\n\t\n\t /**\n\t * Creates a function that invokes two functions and merges their return values.\n\t *\n\t * @param {function} one Function to invoke first.\n\t * @param {function} two Function to invoke second.\n\t * @return {function} Function that invokes the two argument functions.\n\t * @private\n\t */\n\t function createMergedResultFunction(one, two) {\n\t return function mergedResult() {\n\t var a = one.apply(this, arguments);\n\t var b = two.apply(this, arguments);\n\t if (a == null) {\n\t return b;\n\t } else if (b == null) {\n\t return a;\n\t }\n\t var c = {};\n\t mergeIntoWithNoDuplicateKeys(c, a);\n\t mergeIntoWithNoDuplicateKeys(c, b);\n\t return c;\n\t };\n\t }\n\t\n\t /**\n\t * Creates a function that invokes two functions and ignores their return vales.\n\t *\n\t * @param {function} one Function to invoke first.\n\t * @param {function} two Function to invoke second.\n\t * @return {function} Function that invokes the two argument functions.\n\t * @private\n\t */\n\t function createChainedFunction(one, two) {\n\t return function chainedFunction() {\n\t one.apply(this, arguments);\n\t two.apply(this, arguments);\n\t };\n\t }\n\t\n\t /**\n\t * Binds a method to the component.\n\t *\n\t * @param {object} component Component whose method is going to be bound.\n\t * @param {function} method Method to be bound.\n\t * @return {function} The bound method.\n\t */\n\t function bindAutoBindMethod(component, method) {\n\t var boundMethod = method.bind(component);\n\t if (process.env.NODE_ENV !== 'production') {\n\t boundMethod.__reactBoundContext = component;\n\t boundMethod.__reactBoundMethod = method;\n\t boundMethod.__reactBoundArguments = null;\n\t var componentName = component.constructor.displayName;\n\t var _bind = boundMethod.bind;\n\t boundMethod.bind = function (newThis) {\n\t for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n\t args[_key - 1] = arguments[_key];\n\t }\n\t\n\t // User is trying to bind() an autobound method; we effectively will\n\t // ignore the value of \"this\" that the user is trying to use, so\n\t // let's warn.\n\t if (newThis !== component && newThis !== null) {\n\t process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : void 0;\n\t } else if (!args.length) {\n\t process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName) : void 0;\n\t return boundMethod;\n\t }\n\t var reboundMethod = _bind.apply(boundMethod, arguments);\n\t reboundMethod.__reactBoundContext = component;\n\t reboundMethod.__reactBoundMethod = method;\n\t reboundMethod.__reactBoundArguments = args;\n\t return reboundMethod;\n\t };\n\t }\n\t return boundMethod;\n\t }\n\t\n\t /**\n\t * Binds all auto-bound methods in a component.\n\t *\n\t * @param {object} component Component whose method is going to be bound.\n\t */\n\t function bindAutoBindMethods(component) {\n\t var pairs = component.__reactAutoBindPairs;\n\t for (var i = 0; i < pairs.length; i += 2) {\n\t var autoBindKey = pairs[i];\n\t var method = pairs[i + 1];\n\t component[autoBindKey] = bindAutoBindMethod(component, method);\n\t }\n\t }\n\t\n\t var IsMountedMixin = {\n\t componentDidMount: function () {\n\t this.__isMounted = true;\n\t },\n\t componentWillUnmount: function () {\n\t this.__isMounted = false;\n\t }\n\t };\n\t\n\t /**\n\t * Add more to the ReactClass base class. These are all legacy features and\n\t * therefore not already part of the modern ReactComponent.\n\t */\n\t var ReactClassMixin = {\n\t\n\t /**\n\t * TODO: This will be deprecated because state should always keep a consistent\n\t * type signature and the only use case for this, is to avoid that.\n\t */\n\t replaceState: function (newState, callback) {\n\t this.updater.enqueueReplaceState(this, newState, callback);\n\t },\n\t\n\t /**\n\t * Checks whether or not this composite component is mounted.\n\t * @return {boolean} True if mounted, false otherwise.\n\t * @protected\n\t * @final\n\t */\n\t isMounted: function () {\n\t if (process.env.NODE_ENV !== 'production') {\n\t process.env.NODE_ENV !== 'production' ? warning(this.__didWarnIsMounted, '%s: isMounted is deprecated. Instead, make sure to clean up ' + 'subscriptions and pending requests in componentWillUnmount to ' + 'prevent memory leaks.', this.constructor && this.constructor.displayName || this.name || 'Component') : void 0;\n\t this.__didWarnIsMounted = true;\n\t }\n\t return !!this.__isMounted;\n\t }\n\t };\n\t\n\t var ReactClassComponent = function () {};\n\t _assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n\t\n\t /**\n\t * Creates a composite component class given a class specification.\n\t * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n\t *\n\t * @param {object} spec Class specification (which must define `render`).\n\t * @return {function} Component constructor function.\n\t * @public\n\t */\n\t function createClass(spec) {\n\t // To keep our warnings more understandable, we'll use a little hack here to\n\t // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n\t // unnecessarily identify a class without displayName as 'Constructor'.\n\t var Constructor = identity(function (props, context, updater) {\n\t // This constructor gets overridden by mocks. The argument is used\n\t // by mocks to assert on what gets mounted.\n\t\n\t if (process.env.NODE_ENV !== 'production') {\n\t process.env.NODE_ENV !== 'production' ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : void 0;\n\t }\n\t\n\t // Wire up auto-binding\n\t if (this.__reactAutoBindPairs.length) {\n\t bindAutoBindMethods(this);\n\t }\n\t\n\t this.props = props;\n\t this.context = context;\n\t this.refs = emptyObject;\n\t this.updater = updater || ReactNoopUpdateQueue;\n\t\n\t this.state = null;\n\t\n\t // ReactClasses doesn't have constructors. Instead, they use the\n\t // getInitialState and componentWillMount methods for initialization.\n\t\n\t var initialState = this.getInitialState ? this.getInitialState() : null;\n\t if (process.env.NODE_ENV !== 'production') {\n\t // We allow auto-mocks to proceed as if they're returning null.\n\t if (initialState === undefined && this.getInitialState._isMockFunction) {\n\t // This is probably bad practice. Consider warning here and\n\t // deprecating this convenience.\n\t initialState = null;\n\t }\n\t }\n\t _invariant(typeof initialState === 'object' && !Array.isArray(initialState), '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent');\n\t\n\t this.state = initialState;\n\t });\n\t Constructor.prototype = new ReactClassComponent();\n\t Constructor.prototype.constructor = Constructor;\n\t Constructor.prototype.__reactAutoBindPairs = [];\n\t\n\t injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\t\n\t mixSpecIntoComponent(Constructor, IsMountedMixin);\n\t mixSpecIntoComponent(Constructor, spec);\n\t\n\t // Initialize the defaultProps property after all mixins have been merged.\n\t if (Constructor.getDefaultProps) {\n\t Constructor.defaultProps = Constructor.getDefaultProps();\n\t }\n\t\n\t if (process.env.NODE_ENV !== 'production') {\n\t // This is a tag to indicate that the use of these method names is ok,\n\t // since it's used with createClass. If it's not, then it's likely a\n\t // mistake so we'll warn you to use the static property, property\n\t // initializer or constructor respectively.\n\t if (Constructor.getDefaultProps) {\n\t Constructor.getDefaultProps.isReactClassApproved = {};\n\t }\n\t if (Constructor.prototype.getInitialState) {\n\t Constructor.prototype.getInitialState.isReactClassApproved = {};\n\t }\n\t }\n\t\n\t _invariant(Constructor.prototype.render, 'createClass(...): Class specification must implement a `render` method.');\n\t\n\t if (process.env.NODE_ENV !== 'production') {\n\t process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : void 0;\n\t process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0;\n\t }\n\t\n\t // Reduce time spent doing lookups by setting these on the prototype.\n\t for (var methodName in ReactClassInterface) {\n\t if (!Constructor.prototype[methodName]) {\n\t Constructor.prototype[methodName] = null;\n\t }\n\t }\n\t\n\t return Constructor;\n\t }\n\t\n\t return createClass;\n\t}\n\t\n\tmodule.exports = factory;\n\t\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))\n\n/***/ }),\n/* 14 */\n/***/ (function(module, exports) {\n\n\t/*\n\tobject-assign\n\t(c) Sindre Sorhus\n\t@license MIT\n\t*/\n\t\n\t'use strict';\n\t/* eslint-disable no-unused-vars */\n\tvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\n\tvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\tvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\t\n\tfunction toObject(val) {\n\t\tif (val === null || val === undefined) {\n\t\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t\t}\n\t\n\t\treturn Object(val);\n\t}\n\t\n\tfunction shouldUseNative() {\n\t\ttry {\n\t\t\tif (!Object.assign) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// Detect buggy property enumeration order in older V8 versions.\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\t\ttest1[5] = 'de';\n\t\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test2 = {};\n\t\t\tfor (var i = 0; i < 10; i++) {\n\t\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t\t}\n\t\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\t\treturn test2[n];\n\t\t\t});\n\t\t\tif (order2.join('') !== '0123456789') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\t\tvar test3 = {};\n\t\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\t\ttest3[letter] = letter;\n\t\t\t});\n\t\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\t\treturn false;\n\t\t\t}\n\t\n\t\t\treturn true;\n\t\t} catch (err) {\n\t\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\t\treturn false;\n\t\t}\n\t}\n\t\n\tmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\t\tvar from;\n\t\tvar to = toObject(target);\n\t\tvar symbols;\n\t\n\t\tfor (var s = 1; s < arguments.length; s++) {\n\t\t\tfrom = Object(arguments[s]);\n\t\n\t\t\tfor (var key in from) {\n\t\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\t\tto[key] = from[key];\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\tif (getOwnPropertySymbols) {\n\t\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\n\t\treturn to;\n\t};\n\n\n/***/ }),\n/* 15 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t/* WEBPACK VAR INJECTION */(function(process) {/**\n\t * Copyright (c) 2013-present, Facebook, Inc.\n\t * All rights reserved.\n\t *\n\t * This source code is licensed under the BSD-style license found in the\n\t * LICENSE file in the root directory of this source tree. An additional grant\n\t * of patent rights can be found in the PATENTS file in the same directory.\n\t *\n\t */\n\t\n\t'use strict';\n\t\n\tvar emptyObject = {};\n\t\n\tif (process.env.NODE_ENV !== 'production') {\n\t Object.freeze(emptyObject);\n\t}\n\t\n\tmodule.exports = emptyObject;\n\t/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(4)))\n\n/***/ }),\n/* 16 */\n/***/ (function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_16__;\n\n/***/ }),\n/* 17 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\tvar __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!\n\t Copyright (c) 2016 Jed Watson.\n\t Licensed under the MIT License (MIT), see\n\t http://jedwatson.github.io/classnames\n\t*/\n\t/* global define */\n\t\n\t(function () {\n\t\t'use strict';\n\t\n\t\tvar hasOwn = {}.hasOwnProperty;\n\t\n\t\tfunction classNames () {\n\t\t\tvar classes = [];\n\t\n\t\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\t\tvar arg = arguments[i];\n\t\t\t\tif (!arg) continue;\n\t\n\t\t\t\tvar argType = typeof arg;\n\t\n\t\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\t\tclasses.push(arg);\n\t\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t\t} else if (argType === 'object') {\n\t\t\t\t\tfor (var key in arg) {\n\t\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\n\t\t\treturn classes.join(' ');\n\t\t}\n\t\n\t\tif (typeof module !== 'undefined' && module.exports) {\n\t\t\tmodule.exports = classNames;\n\t\t} else if (true) {\n\t\t\t// register as 'classnames', consistent with npm package name\n\t\t\t!(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = function () {\n\t\t\t\treturn classNames;\n\t\t\t}.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));\n\t\t} else {\n\t\t\twindow.classNames = classNames;\n\t\t}\n\t}());\n\n\n/***/ }),\n/* 18 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t!(function() {\n\t function jss(blocks) {\n\t var css = [];\n\t for (var block in blocks)\n\t css.push(createStyleBlock(block, blocks[block]));\n\t injectCSS(css);\n\t }\n\t\n\t function createStyleBlock(selector, rules) {\n\t return selector + ' {\\n' + parseRules(rules) + '\\n}';\n\t }\n\t\n\t function parseRules(rules) {\n\t var css = [];\n\t for (var rule in rules)\n\t css.push(' '+rule+': '+rules[rule]+';');\n\t return css.join('\\n');\n\t }\n\t\n\t function injectCSS(css) {\n\t var style = document.getElementById('jss-styles');\n\t if (!style) {\n\t style = document.createElement('style');\n\t style.setAttribute('id', 'jss-styles');\n\t var head = document.getElementsByTagName('head')[0];\n\t head.insertBefore(style, head.firstChild);\n\t }\n\t var node = document.createTextNode(css.join('\\n\\n'));\n\t style.appendChild(node);\n\t }\n\t\n\t if (true)\n\t module.exports = jss;\n\t else\n\t window.jss = jss;\n\t\n\t})();\n\t\n\n\n/***/ }),\n/* 19 */\n/***/ (function(module, exports) {\n\n\t\"use strict\";\n\t\n\t// Get a universally unique identifier\n\t\n\tvar count = 0;\n\tmodule.exports = function uuid() {\n\t return \"react-tabs-\" + count++;\n\t};\n\n/***/ }),\n/* 20 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _Tab = __webpack_require__(21);\n\t\n\tvar _Tab2 = _interopRequireDefault(_Tab);\n\t\n\tvar _TabList = __webpack_require__(22);\n\t\n\tvar _TabList2 = _interopRequireDefault(_TabList);\n\t\n\tfunction _interopRequireDefault(obj) {\n\t return obj && obj.__esModule ? obj : { default: obj };\n\t}\n\t\n\tmodule.exports = function childrenPropTypes(props, propName) {\n\t var error = void 0;\n\t var tabsCount = 0;\n\t var panelsCount = 0;\n\t var children = props[propName];\n\t\n\t _react2.default.Children.forEach(children, function (child) {\n\t // null happens when conditionally rendering TabPanel/Tab\n\t // see https://github.com/reactjs/react-tabs/issues/37\n\t if (child === null) {\n\t return;\n\t }\n\t\n\t if (child.type === _TabList2.default) {\n\t _react2.default.Children.forEach(child.props.children, function (c) {\n\t // null happens when conditionally rendering TabPanel/Tab\n\t // see https://github.com/reactjs/react-tabs/issues/37\n\t if (c === null) {\n\t return;\n\t }\n\t\n\t if (c.type === _Tab2.default) {\n\t tabsCount++;\n\t }\n\t });\n\t } else if (child.type.displayName === 'TabPanel') {\n\t panelsCount++;\n\t } else {\n\t error = new Error('Expected \\'TabList\\' or \\'TabPanel\\' but found \\'' + (child.type.displayName || child.type) + '\\'');\n\t }\n\t });\n\t\n\t if (tabsCount !== panelsCount) {\n\t error = new Error(\"There should be an equal number of 'Tabs' and 'TabPanels'.\" + ('Received ' + tabsCount + ' \\'Tabs\\' and ' + panelsCount + ' \\'TabPanels\\'.'));\n\t }\n\t\n\t return error;\n\t};\n\n/***/ }),\n/* 21 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _extends = Object.assign || function (target) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t var source = arguments[i];for (var key in source) {\n\t if (Object.prototype.hasOwnProperty.call(source, key)) {\n\t target[key] = source[key];\n\t }\n\t }\n\t }return target;\n\t};\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _propTypes = __webpack_require__(3);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tvar _createReactClass = __webpack_require__(12);\n\t\n\tvar _createReactClass2 = _interopRequireDefault(_createReactClass);\n\t\n\tvar _reactDom = __webpack_require__(16);\n\t\n\tvar _classnames = __webpack_require__(17);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tfunction _interopRequireDefault(obj) {\n\t return obj && obj.__esModule ? obj : { default: obj };\n\t}\n\t\n\tfunction _defineProperty(obj, key, value) {\n\t if (key in obj) {\n\t Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true });\n\t } else {\n\t obj[key] = value;\n\t }return obj;\n\t}\n\t\n\tfunction _objectWithoutProperties(obj, keys) {\n\t var target = {};for (var i in obj) {\n\t if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t }return target;\n\t}\n\t\n\tmodule.exports = (0, _createReactClass2.default)({\n\t displayName: 'Tab',\n\t\n\t propTypes: {\n\t className: _propTypes2.default.string,\n\t id: _propTypes2.default.string,\n\t focus: _propTypes2.default.bool,\n\t selected: _propTypes2.default.bool,\n\t disabled: _propTypes2.default.bool,\n\t activeTabClassName: _propTypes2.default.string,\n\t disabledTabClassName: _propTypes2.default.string,\n\t panelId: _propTypes2.default.string,\n\t children: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object, _propTypes2.default.string])\n\t },\n\t\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t focus: false,\n\t selected: false,\n\t id: null,\n\t panelId: null,\n\t activeTabClassName: 'ReactTabs__Tab--selected',\n\t disabledTabClassName: 'ReactTabs__Tab--disabled'\n\t };\n\t },\n\t componentDidMount: function componentDidMount() {\n\t this.checkFocus();\n\t },\n\t componentDidUpdate: function componentDidUpdate() {\n\t this.checkFocus();\n\t },\n\t checkFocus: function checkFocus() {\n\t if (this.props.selected && this.props.focus) {\n\t (0, _reactDom.findDOMNode)(this).focus();\n\t }\n\t },\n\t render: function render() {\n\t var _cx;\n\t\n\t var _props = this.props,\n\t selected = _props.selected,\n\t disabled = _props.disabled,\n\t panelId = _props.panelId,\n\t activeTabClassName = _props.activeTabClassName,\n\t disabledTabClassName = _props.disabledTabClassName,\n\t className = _props.className,\n\t children = _props.children,\n\t id = _props.id,\n\t attributes = _objectWithoutProperties(_props, ['selected', 'disabled', 'panelId', 'activeTabClassName', 'disabledTabClassName', 'className', 'children', 'id']);\n\t\n\t delete attributes.focus;\n\t\n\t return _react2.default.createElement('li', _extends({}, attributes, {\n\t className: (0, _classnames2.default)('ReactTabs__Tab', className, (_cx = {}, _defineProperty(_cx, activeTabClassName, selected), _defineProperty(_cx, disabledTabClassName, disabled), _cx)),\n\t role: 'tab',\n\t id: id,\n\t 'aria-selected': selected ? 'true' : 'false',\n\t 'aria-disabled': disabled ? 'true' : 'false',\n\t 'aria-controls': panelId,\n\t tabIndex: selected ? '0' : null\n\t }), children);\n\t }\n\t});\n\n/***/ }),\n/* 22 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _extends = Object.assign || function (target) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t var source = arguments[i];for (var key in source) {\n\t if (Object.prototype.hasOwnProperty.call(source, key)) {\n\t target[key] = source[key];\n\t }\n\t }\n\t }return target;\n\t};\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _propTypes = __webpack_require__(3);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tvar _createReactClass = __webpack_require__(12);\n\t\n\tvar _createReactClass2 = _interopRequireDefault(_createReactClass);\n\t\n\tvar _classnames = __webpack_require__(17);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tvar _Tab = __webpack_require__(21);\n\t\n\tvar _Tab2 = _interopRequireDefault(_Tab);\n\t\n\tfunction _interopRequireDefault(obj) {\n\t return obj && obj.__esModule ? obj : { default: obj };\n\t}\n\t\n\tfunction _objectWithoutProperties(obj, keys) {\n\t var target = {};for (var i in obj) {\n\t if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t }return target;\n\t}\n\t\n\tfunction renderChildren(props) {\n\t return _react2.default.Children.map(props.children, function (child) {\n\t // if child is not a tab we don't need to clone it\n\t // since we don't need to add custom props\n\t\n\t if (child.type !== _Tab2.default) {\n\t return child;\n\t }\n\t\n\t var clonedProps = {\n\t activeTabClassName: props.activeTabClassName,\n\t disabledTabClassName: props.disabledTabClassName\n\t };\n\t\n\t return _react2.default.cloneElement(child, clonedProps);\n\t });\n\t}\n\t\n\tmodule.exports = (0, _createReactClass2.default)({\n\t displayName: 'TabList',\n\t\n\t propTypes: {\n\t className: _propTypes2.default.string,\n\t activeTabClassName: _propTypes2.default.string,\n\t disabledTabClassName: _propTypes2.default.string,\n\t children: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.array])\n\t },\n\t\n\t render: function render() {\n\t var _props = this.props,\n\t className = _props.className,\n\t activeTabClassName = _props.activeTabClassName,\n\t disabledTabClassName = _props.disabledTabClassName,\n\t children = _props.children,\n\t attributes = _objectWithoutProperties(_props, ['className', 'activeTabClassName', 'disabledTabClassName', 'children']);\n\t\n\t return _react2.default.createElement('ul', _extends({}, attributes, {\n\t className: (0, _classnames2.default)('ReactTabs__TabList', className),\n\t role: 'tablist'\n\t }), renderChildren({ activeTabClassName: activeTabClassName, disabledTabClassName: disabledTabClassName, children: children }));\n\t }\n\t});\n\n/***/ }),\n/* 23 */\n/***/ (function(module, exports) {\n\n\t'use strict';\n\t\n\tmodule.exports = {\n\t '.react-tabs [role=tablist]': {\n\t 'border-bottom': '1px solid #aaa',\n\t margin: '0 0 10px',\n\t padding: '0'\n\t },\n\t\n\t '.react-tabs [role=tab]': {\n\t display: 'inline-block',\n\t border: '1px solid transparent',\n\t 'border-bottom': 'none',\n\t bottom: '-1px',\n\t position: 'relative',\n\t 'list-style': 'none',\n\t padding: '6px 12px',\n\t cursor: 'pointer'\n\t },\n\t\n\t '.react-tabs [role=tab][aria-selected=true]': {\n\t background: '#fff',\n\t 'border-color': '#aaa',\n\t color: 'black',\n\t 'border-radius': '5px 5px 0 0',\n\t '-moz-border-radius': '5px 5px 0 0',\n\t '-webkit-border-radius': '5px 5px 0 0'\n\t },\n\t\n\t '.react-tabs [role=tab][aria-disabled=true]': {\n\t color: 'GrayText',\n\t cursor: 'default'\n\t },\n\t\n\t '.react-tabs [role=tab]:focus': {\n\t 'box-shadow': '0 0 5px hsl(208, 99%, 50%)',\n\t 'border-color': 'hsl(208, 99%, 50%)',\n\t outline: 'none'\n\t },\n\t\n\t '.react-tabs [role=tab]:focus:after': {\n\t content: '\"\"',\n\t position: 'absolute',\n\t height: '5px',\n\t left: '-4px',\n\t right: '-4px',\n\t bottom: '-5px',\n\t background: '#fff'\n\t }\n\t};\n\n/***/ }),\n/* 24 */\n/***/ (function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar _extends = Object.assign || function (target) {\n\t for (var i = 1; i < arguments.length; i++) {\n\t var source = arguments[i];for (var key in source) {\n\t if (Object.prototype.hasOwnProperty.call(source, key)) {\n\t target[key] = source[key];\n\t }\n\t }\n\t }return target;\n\t};\n\t\n\tvar _react = __webpack_require__(2);\n\t\n\tvar _react2 = _interopRequireDefault(_react);\n\t\n\tvar _propTypes = __webpack_require__(3);\n\t\n\tvar _propTypes2 = _interopRequireDefault(_propTypes);\n\t\n\tvar _createReactClass = __webpack_require__(12);\n\t\n\tvar _createReactClass2 = _interopRequireDefault(_createReactClass);\n\t\n\tvar _classnames = __webpack_require__(17);\n\t\n\tvar _classnames2 = _interopRequireDefault(_classnames);\n\t\n\tfunction _interopRequireDefault(obj) {\n\t return obj && obj.__esModule ? obj : { default: obj };\n\t}\n\t\n\tfunction _objectWithoutProperties(obj, keys) {\n\t var target = {};for (var i in obj) {\n\t if (keys.indexOf(i) >= 0) continue;if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;target[i] = obj[i];\n\t }return target;\n\t}\n\t\n\tmodule.exports = (0, _createReactClass2.default)({\n\t displayName: 'TabPanel',\n\t\n\t propTypes: {\n\t children: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object, _propTypes2.default.string]),\n\t className: _propTypes2.default.string,\n\t id: _propTypes2.default.string,\n\t selected: _propTypes2.default.bool,\n\t style: _propTypes2.default.object,\n\t tabId: _propTypes2.default.string\n\t },\n\t\n\t contextTypes: {\n\t forceRenderTabPanel: _propTypes2.default.bool\n\t },\n\t\n\t getDefaultProps: function getDefaultProps() {\n\t return {\n\t selected: false,\n\t id: null,\n\t tabId: null\n\t };\n\t },\n\t render: function render() {\n\t var _props = this.props,\n\t className = _props.className,\n\t children = _props.children,\n\t selected = _props.selected,\n\t id = _props.id,\n\t tabId = _props.tabId,\n\t style = _props.style,\n\t attributes = _objectWithoutProperties(_props, ['className', 'children', 'selected', 'id', 'tabId', 'style']);\n\t\n\t return _react2.default.createElement('div', _extends({}, attributes, {\n\t className: (0, _classnames2.default)('ReactTabs__TabPanel', className, {\n\t 'ReactTabs__TabPanel--selected': selected\n\t }),\n\t role: 'tabpanel',\n\t id: id,\n\t 'aria-labelledby': tabId,\n\t style: _extends({}, style, { display: selected ? null : 'none' })\n\t }), this.context.forceRenderTabPanel || selected ? children : null);\n\t }\n\t});\n\n/***/ })\n/******/ ])\n});\n;\n\n\n// WEBPACK FOOTER //\n// ./dist/react-tabs.min.js"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap f84d1f37eed0e995e386","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.TabPanel = exports.Tab = exports.TabList = exports.Tabs = undefined;\n\nvar _Tabs = require('./components/Tabs');\n\nvar _Tabs2 = _interopRequireDefault(_Tabs);\n\nvar _TabList = require('./components/TabList');\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nvar _Tab = require('./components/Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabPanel = require('./components/TabPanel');\n\nvar _TabPanel2 = _interopRequireDefault(_TabPanel);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.Tabs = _Tabs2.default;\nexports.TabList = _TabList2.default;\nexports.Tab = _Tab2.default;\nexports.TabPanel = _TabPanel2.default;\n\n// For bc we also export a default object, remove in 1.0\n\nexports.default = {\n Tabs: _Tabs2.default,\n TabList: _TabList2.default,\n Tab: _Tab2.default,\n TabPanel: _TabPanel2.default\n};\n\n\n// WEBPACK FOOTER //\n// ./lib/main.js","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _createReactClass = require('create-react-class');\n\nvar _createReactClass2 = _interopRequireDefault(_createReactClass);\n\nvar _reactDom = require('react-dom');\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _jsStylesheet = require('js-stylesheet');\n\nvar _jsStylesheet2 = _interopRequireDefault(_jsStylesheet);\n\nvar _uuid = require('../helpers/uuid');\n\nvar _uuid2 = _interopRequireDefault(_uuid);\n\nvar _childrenPropType = require('../helpers/childrenPropType');\n\nvar _childrenPropType2 = _interopRequireDefault(_childrenPropType);\n\nvar _Tab = require('./Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\n// Determine if a node from event.target is a Tab element\nfunction isTabNode(node) {\n return node.nodeName === 'LI' && node.getAttribute('role') === 'tab';\n}\n\n// Determine if a tab node is disabled\nfunction isTabDisabled(node) {\n return node.getAttribute('aria-disabled') === 'true';\n}\n\nvar useDefaultStyles = true;\n\nmodule.exports = (0, _createReactClass2.default)({\n displayName: 'Tabs',\n\n propTypes: {\n className: _propTypes2.default.string,\n selectedIndex: _propTypes2.default.number,\n onSelect: _propTypes2.default.func,\n focus: _propTypes2.default.bool,\n children: _childrenPropType2.default,\n forceRenderTabPanel: _propTypes2.default.bool\n },\n\n childContextTypes: {\n forceRenderTabPanel: _propTypes2.default.bool\n },\n\n statics: {\n setUseDefaultStyles: function setUseDefaultStyles(use) {\n useDefaultStyles = use;\n }\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n selectedIndex: -1,\n focus: false,\n forceRenderTabPanel: false\n };\n },\n getInitialState: function getInitialState() {\n return this.copyPropsToState(this.props, this.state);\n },\n getChildContext: function getChildContext() {\n return {\n forceRenderTabPanel: this.props.forceRenderTabPanel\n };\n },\n componentDidMount: function componentDidMount() {\n if (useDefaultStyles) {\n (0, _jsStylesheet2.default)(require('../helpers/styles.js')); // eslint-disable-line global-require\n }\n },\n componentWillReceiveProps: function componentWillReceiveProps(newProps) {\n var _this = this;\n\n // Use a transactional update to prevent race conditions\n // when reading the state in copyPropsToState\n // See https://github.com/reactjs/react-tabs/issues/51\n this.setState(function (state) {\n return _this.copyPropsToState(newProps, state);\n });\n },\n setSelected: function setSelected(index, focus) {\n // Don't do anything if nothing has changed\n if (index === this.state.selectedIndex) return;\n // Check index boundary\n if (index < 0 || index >= this.getTabsCount()) return;\n\n // Keep reference to last index for event handler\n var last = this.state.selectedIndex;\n\n // Check if the change event handler cancels the tab change\n var cancel = false;\n\n // Call change event handler\n if (typeof this.props.onSelect === 'function') {\n cancel = this.props.onSelect(index, last) === false;\n }\n\n if (!cancel) {\n // Update selected index\n this.setState({ selectedIndex: index, focus: focus === true });\n }\n },\n getNextTab: function getNextTab(index) {\n var count = this.getTabsCount();\n\n // Look for non-disabled tab from index to the last tab on the right\n for (var i = index + 1; i < count; i++) {\n var tab = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from first on left to index\n for (var _i = 0; _i < index; _i++) {\n var _tab = this.getTab(_i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab))) {\n return _i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n },\n getPrevTab: function getPrevTab(index) {\n var i = index;\n\n // Look for non-disabled tab from index to first tab on the left\n while (i--) {\n var tab = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(tab))) {\n return i;\n }\n }\n\n // If no tab found, continue searching from last tab on right to index\n i = this.getTabsCount();\n while (i-- > index) {\n var _tab2 = this.getTab(i);\n if (!isTabDisabled((0, _reactDom.findDOMNode)(_tab2))) {\n return i;\n }\n }\n\n // No tabs are disabled, return index\n return index;\n },\n getTabsCount: function getTabsCount() {\n return this.props.children && this.props.children[0] ? _react2.default.Children.count(this.props.children[0].props.children) : 0;\n },\n getPanelsCount: function getPanelsCount() {\n return _react2.default.Children.count(this.props.children.slice(1));\n },\n getTabList: function getTabList() {\n return this.refs.tablist;\n },\n getTab: function getTab(index) {\n return this.refs['tabs-' + index];\n },\n getPanel: function getPanel(index) {\n return this.refs['panels-' + index];\n },\n getChildren: function getChildren() {\n var index = 0;\n var count = 0;\n var children = this.props.children;\n var state = this.state;\n var tabIds = this.tabIds = this.tabIds || [];\n var panelIds = this.panelIds = this.panelIds || [];\n var diff = this.tabIds.length - this.getTabsCount();\n\n // Add ids if new tabs have been added\n // Don't bother removing ids, just keep them in case they are added again\n // This is more efficient, and keeps the uuid counter under control\n while (diff++ < 0) {\n tabIds.push((0, _uuid2.default)());\n panelIds.push((0, _uuid2.default)());\n }\n\n // Map children to dynamically setup refs\n return _react2.default.Children.map(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) {\n return null;\n }\n\n var result = null;\n\n // Clone TabList and Tab components to have refs\n if (count++ === 0) {\n // TODO try setting the uuid in the \"constructor\" for `Tab`/`TabPanel`\n result = (0, _react.cloneElement)(child, {\n ref: 'tablist',\n children: _react2.default.Children.map(child.props.children, function (tab) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (tab === null) {\n return null;\n }\n\n var ref = 'tabs-' + index;\n var id = tabIds[index];\n var panelId = panelIds[index];\n var selected = state.selectedIndex === index;\n var focus = selected && state.focus;\n\n index++;\n\n if (tab.type === _Tab2.default) {\n return (0, _react.cloneElement)(tab, {\n ref: ref,\n id: id,\n panelId: panelId,\n selected: selected,\n focus: focus\n });\n }\n\n return tab;\n })\n });\n\n // Reset index for panels\n index = 0;\n }\n // Clone TabPanel components to have refs\n else {\n var ref = 'panels-' + index;\n var id = panelIds[index];\n var tabId = tabIds[index];\n var selected = state.selectedIndex === index;\n\n index++;\n\n result = (0, _react.cloneElement)(child, {\n ref: ref,\n id: id,\n tabId: tabId,\n selected: selected\n });\n }\n\n return result;\n });\n },\n handleKeyDown: function handleKeyDown(e) {\n if (this.isTabFromContainer(e.target)) {\n var index = this.state.selectedIndex;\n var preventDefault = false;\n\n // Select next tab to the left\n if (e.keyCode === 37 || e.keyCode === 38) {\n index = this.getPrevTab(index);\n preventDefault = true;\n }\n // Select next tab to the right\n /* eslint brace-style:0 */\n else if (e.keyCode === 39 || e.keyCode === 40) {\n index = this.getNextTab(index);\n preventDefault = true;\n }\n\n // This prevents scrollbars from moving around\n if (preventDefault) {\n e.preventDefault();\n }\n\n this.setSelected(index, true);\n }\n },\n handleClick: function handleClick(e) {\n var node = e.target;\n do {\n // eslint-disable-line no-cond-assign\n if (this.isTabFromContainer(node)) {\n if (isTabDisabled(node)) {\n return;\n }\n\n var index = [].slice.call(node.parentNode.children).indexOf(node);\n this.setSelected(index);\n return;\n }\n } while ((node = node.parentNode) !== null);\n },\n\n\n // This is an anti-pattern, so sue me\n copyPropsToState: function copyPropsToState(props, state) {\n var selectedIndex = props.selectedIndex;\n\n // If no selectedIndex prop was supplied, then try\n // preserving the existing selectedIndex from state.\n // If the state has not selectedIndex, default\n // to the first tab in the TabList.\n //\n // TODO: Need automation testing around this\n // Manual testing can be done using examples/focus\n // See 'should preserve selectedIndex when typing' in specs/Tabs.spec.js\n if (selectedIndex === -1) {\n if (state && state.selectedIndex) {\n selectedIndex = state.selectedIndex;\n } else {\n selectedIndex = 0;\n }\n }\n\n return {\n selectedIndex: selectedIndex,\n focus: props.focus\n };\n },\n\n\n /**\n * Determine if a node from event.target is a Tab element for the current Tabs container.\n * If the clicked element is not a Tab, it returns false.\n * If it finds another Tabs container between the Tab and `this`, it returns false.\n */\n isTabFromContainer: function isTabFromContainer(node) {\n // return immediately if the clicked element is not a Tab.\n if (!isTabNode(node)) {\n return false;\n }\n\n // Check if the first occurrence of a Tabs container is `this` one.\n var nodeAncestor = node.parentElement;\n var tabsNode = (0, _reactDom.findDOMNode)(this);\n do {\n if (nodeAncestor === tabsNode) return true;else if (nodeAncestor.getAttribute('data-tabs')) break;\n\n nodeAncestor = nodeAncestor.parentElement;\n } while (nodeAncestor);\n\n return false;\n },\n render: function render() {\n var _this2 = this;\n\n // This fixes an issue with focus management.\n //\n // Ultimately, when focus is true, and an input has focus,\n // and any change on that input causes a state change/re-render,\n // focus gets sent back to the active tab, and input loses focus.\n //\n // Since the focus state only needs to be remembered\n // for the current render, we can reset it once the\n // render has happened.\n //\n // Don't use setState, because we don't want to re-render.\n //\n // See https://github.com/reactjs/react-tabs/pull/7\n if (this.state.focus) {\n setTimeout(function () {\n _this2.state.focus = false;\n }, 0);\n }\n\n var _props = this.props,\n className = _props.className,\n attributes = _objectWithoutProperties(_props, ['className']);\n\n // Delete all known props, so they don't get added to DOM\n\n\n delete attributes.selectedIndex;\n delete attributes.onSelect;\n delete attributes.focus;\n delete attributes.children;\n delete attributes.forceRenderTabPanel;\n delete attributes.onClick;\n delete attributes.onKeyDown;\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs', 'react-tabs', className),\n onClick: this.handleClick,\n onKeyDown: this.handleKeyDown,\n 'data-tabs': true\n }),\n this.getChildren()\n );\n }\n});\n\n\n// WEBPACK FOOTER //\n// ./lib/components/Tabs.js","module.exports = __WEBPACK_EXTERNAL_MODULE_2__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"React\",\"commonjs2\":\"react\",\"commonjs\":\"react\",\"amd\":\"react\"}\n// module id = 2\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&\n Symbol.for &&\n Symbol.for('react.element')) ||\n 0xeac7;\n\n var isValidElement = function(object) {\n return typeof object === 'object' &&\n object !== null &&\n object.$$typeof === REACT_ELEMENT_TYPE;\n };\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/index.js\n// module id = 3\n// module chunks = 0","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/process/browser.js\n// module id = 4\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\nvar warning = require('fbjs/lib/warning');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar checkPropTypes = require('./checkPropTypes');\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message) {\n this.message = message;\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n warning(\n false,\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `%s` prop on `%s`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',\n propFullName,\n componentName\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunction.thatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (propValue.hasOwnProperty(key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunction.thatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {\n return null;\n }\n }\n\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (!checker) {\n continue;\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithTypeCheckers.js\n// module id = 5\n// module chunks = 0","\"use strict\";\n\n/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n * \n */\n\nfunction makeEmptyFunction(arg) {\n return function () {\n return arg;\n };\n}\n\n/**\n * This function accepts and discards inputs; it has no side effects. This is\n * primarily useful idiomatically for overridable function endpoints which\n * always need to be callable, since JS lacks a null-call idiom ala Cocoa.\n */\nvar emptyFunction = function emptyFunction() {};\n\nemptyFunction.thatReturns = makeEmptyFunction;\nemptyFunction.thatReturnsFalse = makeEmptyFunction(false);\nemptyFunction.thatReturnsTrue = makeEmptyFunction(true);\nemptyFunction.thatReturnsNull = makeEmptyFunction(null);\nemptyFunction.thatReturnsThis = function () {\n return this;\n};\nemptyFunction.thatReturnsArgument = function (arg) {\n return arg;\n};\n\nmodule.exports = emptyFunction;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/emptyFunction.js\n// module id = 6\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar validateFormat = function validateFormat(format) {};\n\nif (process.env.NODE_ENV !== 'production') {\n validateFormat = function validateFormat(format) {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n };\n}\n\nfunction invariant(condition, format, a, b, c, d, e, f) {\n validateFormat(format);\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(format.replace(/%s/g, function () {\n return args[argIndex++];\n }));\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n}\n\nmodule.exports = invariant;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/invariant.js\n// module id = 7\n// module chunks = 0","/**\n * Copyright 2014-2015, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyFunction = require('./emptyFunction');\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar warning = emptyFunction;\n\nif (process.env.NODE_ENV !== 'production') {\n (function () {\n var printWarning = function printWarning(format) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n var argIndex = 0;\n var message = 'Warning: ' + format.replace(/%s/g, function () {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n\n warning = function warning(condition, format) {\n if (format === undefined) {\n throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');\n }\n\n if (format.indexOf('Failed Composite propType: ') === 0) {\n return; // Ignore CompositeComponent proptype check.\n }\n\n if (!condition) {\n for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {\n args[_key2 - 2] = arguments[_key2];\n }\n\n printWarning.apply(undefined, [format].concat(args));\n }\n };\n })();\n}\n\nmodule.exports = warning;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/warning.js\n// module id = 8\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/lib/ReactPropTypesSecret.js\n// module id = 9\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== 'production') {\n var invariant = require('fbjs/lib/invariant');\n var warning = require('fbjs/lib/warning');\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (typeSpecs.hasOwnProperty(typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', componentName || 'React class', location, typeSpecName);\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');\n }\n }\n }\n }\n}\n\nmodule.exports = checkPropTypes;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/checkPropTypes.js\n// module id = 10\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n */\n\n'use strict';\n\nvar emptyFunction = require('fbjs/lib/emptyFunction');\nvar invariant = require('fbjs/lib/invariant');\n\nmodule.exports = function() {\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n function shim() {\n invariant(\n false,\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n var ReactPropTypes = {\n array: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim\n };\n\n ReactPropTypes.checkPropTypes = emptyFunction;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/prop-types/factoryWithThrowingShims.js\n// module id = 11\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar React = require('react');\nvar factory = require('./factory');\n\n// Hack to grab NoopUpdateQueue from isomorphic React\nvar ReactNoopUpdateQueue = new React.Component().updater;\n\nmodule.exports = factory(\n React.Component,\n React.isValidElement,\n ReactNoopUpdateQueue\n);\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/create-react-class/index.js\n// module id = 12\n// module chunks = 0","/**\n * Copyright 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar _assign = require('object-assign');\n\nvar emptyObject = require('fbjs/lib/emptyObject');\nvar _invariant = require('fbjs/lib/invariant');\n\nif (process.env.NODE_ENV !== 'production') {\n var warning = require('fbjs/lib/warning');\n}\n\nvar MIXINS_KEY = 'mixins';\n\n// Helper function to allow the creation of anonymous functions which do not\n// have .name set to the name of the variable being assigned to.\nfunction identity(fn) {\n return fn;\n}\n\nvar ReactPropTypeLocationNames;\nif (process.env.NODE_ENV !== 'production') {\n ReactPropTypeLocationNames = {\n prop: 'prop',\n context: 'context',\n childContext: 'child context',\n };\n} else {\n ReactPropTypeLocationNames = {};\n}\n\nfunction factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {\n /**\n * Policies that describe methods in `ReactClassInterface`.\n */\n\n\n var injectedMixins = [];\n\n /**\n * Composite components are higher-level components that compose other composite\n * or host components.\n *\n * To create a new type of `ReactClass`, pass a specification of\n * your new class to `React.createClass`. The only requirement of your class\n * specification is that you implement a `render` method.\n *\n * var MyComponent = React.createClass({\n * render: function() {\n * return
Hello World
;\n * }\n * });\n *\n * The class specification supports a specific protocol of methods that have\n * special meaning (e.g. `render`). See `ReactClassInterface` for\n * more the comprehensive protocol. Any other properties and methods in the\n * class specification will be available on the prototype.\n *\n * @interface ReactClassInterface\n * @internal\n */\n var ReactClassInterface = {\n\n /**\n * An array of Mixin objects to include when defining your component.\n *\n * @type {array}\n * @optional\n */\n mixins: 'DEFINE_MANY',\n\n /**\n * An object containing properties and methods that should be defined on\n * the component's constructor instead of its prototype (static methods).\n *\n * @type {object}\n * @optional\n */\n statics: 'DEFINE_MANY',\n\n /**\n * Definition of prop types for this component.\n *\n * @type {object}\n * @optional\n */\n propTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types for this component.\n *\n * @type {object}\n * @optional\n */\n contextTypes: 'DEFINE_MANY',\n\n /**\n * Definition of context types this component sets for its children.\n *\n * @type {object}\n * @optional\n */\n childContextTypes: 'DEFINE_MANY',\n\n // ==== Definition methods ====\n\n /**\n * Invoked when the component is mounted. Values in the mapping will be set on\n * `this.props` if that prop is not specified (i.e. using an `in` check).\n *\n * This method is invoked before `getInitialState` and therefore cannot rely\n * on `this.state` or use `this.setState`.\n *\n * @return {object}\n * @optional\n */\n getDefaultProps: 'DEFINE_MANY_MERGED',\n\n /**\n * Invoked once before the component is mounted. The return value will be used\n * as the initial value of `this.state`.\n *\n * getInitialState: function() {\n * return {\n * isOn: false,\n * fooBaz: new BazFoo()\n * }\n * }\n *\n * @return {object}\n * @optional\n */\n getInitialState: 'DEFINE_MANY_MERGED',\n\n /**\n * @return {object}\n * @optional\n */\n getChildContext: 'DEFINE_MANY_MERGED',\n\n /**\n * Uses props from `this.props` and state from `this.state` to render the\n * structure of the component.\n *\n * No guarantees are made about when or how often this method is invoked, so\n * it must not have side effects.\n *\n * render: function() {\n * var name = this.props.name;\n * return
Hello, {name}!
;\n * }\n *\n * @return {ReactComponent}\n * @nosideeffects\n * @required\n */\n render: 'DEFINE_ONCE',\n\n // ==== Delegate methods ====\n\n /**\n * Invoked when the component is initially created and about to be mounted.\n * This may have side effects, but any external subscriptions or data created\n * by this method must be cleaned up in `componentWillUnmount`.\n *\n * @optional\n */\n componentWillMount: 'DEFINE_MANY',\n\n /**\n * Invoked when the component has been mounted and has a DOM representation.\n * However, there is no guarantee that the DOM node is in the document.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been mounted (initialized and rendered) for the first time.\n *\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidMount: 'DEFINE_MANY',\n\n /**\n * Invoked before the component receives new props.\n *\n * Use this as an opportunity to react to a prop transition by updating the\n * state using `this.setState`. Current props are accessed via `this.props`.\n *\n * componentWillReceiveProps: function(nextProps, nextContext) {\n * this.setState({\n * likesIncreasing: nextProps.likeCount > this.props.likeCount\n * });\n * }\n *\n * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop\n * transition may cause a state change, but the opposite is not true. If you\n * need it, you are probably looking for `componentWillUpdate`.\n *\n * @param {object} nextProps\n * @optional\n */\n componentWillReceiveProps: 'DEFINE_MANY',\n\n /**\n * Invoked while deciding if the component should be updated as a result of\n * receiving new props, state and/or context.\n *\n * Use this as an opportunity to `return false` when you're certain that the\n * transition to the new props/state/context will not require a component\n * update.\n *\n * shouldComponentUpdate: function(nextProps, nextState, nextContext) {\n * return !equal(nextProps, this.props) ||\n * !equal(nextState, this.state) ||\n * !equal(nextContext, this.context);\n * }\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @return {boolean} True if the component should update.\n * @optional\n */\n shouldComponentUpdate: 'DEFINE_ONCE',\n\n /**\n * Invoked when the component is about to update due to a transition from\n * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`\n * and `nextContext`.\n *\n * Use this as an opportunity to perform preparation before an update occurs.\n *\n * NOTE: You **cannot** use `this.setState()` in this method.\n *\n * @param {object} nextProps\n * @param {?object} nextState\n * @param {?object} nextContext\n * @param {ReactReconcileTransaction} transaction\n * @optional\n */\n componentWillUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component's DOM representation has been updated.\n *\n * Use this as an opportunity to operate on the DOM when the component has\n * been updated.\n *\n * @param {object} prevProps\n * @param {?object} prevState\n * @param {?object} prevContext\n * @param {DOMElement} rootNode DOM element representing the component.\n * @optional\n */\n componentDidUpdate: 'DEFINE_MANY',\n\n /**\n * Invoked when the component is about to be removed from its parent and have\n * its DOM representation destroyed.\n *\n * Use this as an opportunity to deallocate any external resources.\n *\n * NOTE: There is no `componentDidUnmount` since your component will have been\n * destroyed by that point.\n *\n * @optional\n */\n componentWillUnmount: 'DEFINE_MANY',\n\n // ==== Advanced methods ====\n\n /**\n * Updates the component's currently mounted DOM representation.\n *\n * By default, this implements React's rendering and reconciliation algorithm.\n * Sophisticated clients may wish to override this.\n *\n * @param {ReactReconcileTransaction} transaction\n * @internal\n * @overridable\n */\n updateComponent: 'OVERRIDE_BASE'\n\n };\n\n /**\n * Mapping from class specification keys to special processing functions.\n *\n * Although these are declared like instance properties in the specification\n * when defining classes using `React.createClass`, they are actually static\n * and are accessible on the constructor instead of the prototype. Despite\n * being static, they must be defined outside of the \"statics\" key under\n * which all other static methods are defined.\n */\n var RESERVED_SPEC_KEYS = {\n displayName: function (Constructor, displayName) {\n Constructor.displayName = displayName;\n },\n mixins: function (Constructor, mixins) {\n if (mixins) {\n for (var i = 0; i < mixins.length; i++) {\n mixSpecIntoComponent(Constructor, mixins[i]);\n }\n }\n },\n childContextTypes: function (Constructor, childContextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, childContextTypes, 'childContext');\n }\n Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, childContextTypes);\n },\n contextTypes: function (Constructor, contextTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, contextTypes, 'context');\n }\n Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes);\n },\n /**\n * Special case getDefaultProps which should move into statics but requires\n * automatic merging.\n */\n getDefaultProps: function (Constructor, getDefaultProps) {\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps);\n } else {\n Constructor.getDefaultProps = getDefaultProps;\n }\n },\n propTypes: function (Constructor, propTypes) {\n if (process.env.NODE_ENV !== 'production') {\n validateTypeDef(Constructor, propTypes, 'prop');\n }\n Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);\n },\n statics: function (Constructor, statics) {\n mixStaticSpecIntoComponent(Constructor, statics);\n },\n autobind: function () {} };\n\n function validateTypeDef(Constructor, typeDef, location) {\n for (var propName in typeDef) {\n if (typeDef.hasOwnProperty(propName)) {\n // use a warning instead of an _invariant so components\n // don't show up in prod but only in __DEV__\n process.env.NODE_ENV !== 'production' ? warning(typeof typeDef[propName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'React.PropTypes.', Constructor.displayName || 'ReactClass', ReactPropTypeLocationNames[location], propName) : void 0;\n }\n }\n }\n\n function validateMethodOverride(isAlreadyDefined, name) {\n var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;\n\n // Disallow overriding of base class methods unless explicitly allowed.\n if (ReactClassMixin.hasOwnProperty(name)) {\n _invariant(specPolicy === 'OVERRIDE_BASE', 'ReactClassInterface: You are attempting to override ' + '`%s` from your class specification. Ensure that your method names ' + 'do not overlap with React methods.', name);\n }\n\n // Disallow defining methods more than once unless explicitly allowed.\n if (isAlreadyDefined) {\n _invariant(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED', 'ReactClassInterface: You are attempting to define ' + '`%s` on your component more than once. This conflict may be due ' + 'to a mixin.', name);\n }\n }\n\n /**\n * Mixin helper which handles policy validation and reserved\n * specification keys when building React classes.\n */\n function mixSpecIntoComponent(Constructor, spec) {\n if (!spec) {\n if (process.env.NODE_ENV !== 'production') {\n var typeofSpec = typeof spec;\n var isMixinValid = typeofSpec === 'object' && spec !== null;\n\n process.env.NODE_ENV !== 'production' ? warning(isMixinValid, '%s: You\\'re attempting to include a mixin that is either null ' + 'or not an object. Check the mixins included by the component, ' + 'as well as any mixins they include themselves. ' + 'Expected object but got %s.', Constructor.displayName || 'ReactClass', spec === null ? null : typeofSpec) : void 0;\n }\n\n return;\n }\n\n _invariant(typeof spec !== 'function', 'ReactClass: You\\'re attempting to ' + 'use a component class or function as a mixin. Instead, just use a ' + 'regular object.');\n _invariant(!isValidElement(spec), 'ReactClass: You\\'re attempting to ' + 'use a component as a mixin. Instead, just use a regular object.');\n\n var proto = Constructor.prototype;\n var autoBindPairs = proto.__reactAutoBindPairs;\n\n // By handling mixins before any other properties, we ensure the same\n // chaining order is applied to methods with DEFINE_MANY policy, whether\n // mixins are listed before or after these methods in the spec.\n if (spec.hasOwnProperty(MIXINS_KEY)) {\n RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);\n }\n\n for (var name in spec) {\n if (!spec.hasOwnProperty(name)) {\n continue;\n }\n\n if (name === MIXINS_KEY) {\n // We have already handled mixins in a special case above.\n continue;\n }\n\n var property = spec[name];\n var isAlreadyDefined = proto.hasOwnProperty(name);\n validateMethodOverride(isAlreadyDefined, name);\n\n if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {\n RESERVED_SPEC_KEYS[name](Constructor, property);\n } else {\n // Setup methods on prototype:\n // The following member methods should not be automatically bound:\n // 1. Expected ReactClass methods (in the \"interface\").\n // 2. Overridden methods (that were mixed in).\n var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);\n var isFunction = typeof property === 'function';\n var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;\n\n if (shouldAutoBind) {\n autoBindPairs.push(name, property);\n proto[name] = property;\n } else {\n if (isAlreadyDefined) {\n var specPolicy = ReactClassInterface[name];\n\n // These cases should already be caught by validateMethodOverride.\n _invariant(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY'), 'ReactClass: Unexpected spec policy %s for key %s ' + 'when mixing in component specs.', specPolicy, name);\n\n // For methods which are defined more than once, call the existing\n // methods before calling the new property, merging if appropriate.\n if (specPolicy === 'DEFINE_MANY_MERGED') {\n proto[name] = createMergedResultFunction(proto[name], property);\n } else if (specPolicy === 'DEFINE_MANY') {\n proto[name] = createChainedFunction(proto[name], property);\n }\n } else {\n proto[name] = property;\n if (process.env.NODE_ENV !== 'production') {\n // Add verbose displayName to the function, which helps when looking\n // at profiling tools.\n if (typeof property === 'function' && spec.displayName) {\n proto[name].displayName = spec.displayName + '_' + name;\n }\n }\n }\n }\n }\n }\n }\n\n function mixStaticSpecIntoComponent(Constructor, statics) {\n if (!statics) {\n return;\n }\n for (var name in statics) {\n var property = statics[name];\n if (!statics.hasOwnProperty(name)) {\n continue;\n }\n\n var isReserved = name in RESERVED_SPEC_KEYS;\n _invariant(!isReserved, 'ReactClass: You are attempting to define a reserved ' + 'property, `%s`, that shouldn\\'t be on the \"statics\" key. Define it ' + 'as an instance property instead; it will still be accessible on the ' + 'constructor.', name);\n\n var isInherited = name in Constructor;\n _invariant(!isInherited, 'ReactClass: You are attempting to define ' + '`%s` on your component more than once. This conflict may be ' + 'due to a mixin.', name);\n Constructor[name] = property;\n }\n }\n\n /**\n * Merge two objects, but throw if both contain the same key.\n *\n * @param {object} one The first object, which is mutated.\n * @param {object} two The second object\n * @return {object} one after it has been mutated to contain everything in two.\n */\n function mergeIntoWithNoDuplicateKeys(one, two) {\n _invariant(one && two && typeof one === 'object' && typeof two === 'object', 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.');\n\n for (var key in two) {\n if (two.hasOwnProperty(key)) {\n _invariant(one[key] === undefined, 'mergeIntoWithNoDuplicateKeys(): ' + 'Tried to merge two objects with the same key: `%s`. This conflict ' + 'may be due to a mixin; in particular, this may be caused by two ' + 'getInitialState() or getDefaultProps() methods returning objects ' + 'with clashing keys.', key);\n one[key] = two[key];\n }\n }\n return one;\n }\n\n /**\n * Creates a function that invokes two functions and merges their return values.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createMergedResultFunction(one, two) {\n return function mergedResult() {\n var a = one.apply(this, arguments);\n var b = two.apply(this, arguments);\n if (a == null) {\n return b;\n } else if (b == null) {\n return a;\n }\n var c = {};\n mergeIntoWithNoDuplicateKeys(c, a);\n mergeIntoWithNoDuplicateKeys(c, b);\n return c;\n };\n }\n\n /**\n * Creates a function that invokes two functions and ignores their return vales.\n *\n * @param {function} one Function to invoke first.\n * @param {function} two Function to invoke second.\n * @return {function} Function that invokes the two argument functions.\n * @private\n */\n function createChainedFunction(one, two) {\n return function chainedFunction() {\n one.apply(this, arguments);\n two.apply(this, arguments);\n };\n }\n\n /**\n * Binds a method to the component.\n *\n * @param {object} component Component whose method is going to be bound.\n * @param {function} method Method to be bound.\n * @return {function} The bound method.\n */\n function bindAutoBindMethod(component, method) {\n var boundMethod = method.bind(component);\n if (process.env.NODE_ENV !== 'production') {\n boundMethod.__reactBoundContext = component;\n boundMethod.__reactBoundMethod = method;\n boundMethod.__reactBoundArguments = null;\n var componentName = component.constructor.displayName;\n var _bind = boundMethod.bind;\n boundMethod.bind = function (newThis) {\n for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n // User is trying to bind() an autobound method; we effectively will\n // ignore the value of \"this\" that the user is trying to use, so\n // let's warn.\n if (newThis !== component && newThis !== null) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : void 0;\n } else if (!args.length) {\n process.env.NODE_ENV !== 'production' ? warning(false, 'bind(): You are binding a component method to the component. ' + 'React does this for you automatically in a high-performance ' + 'way, so you can safely remove this call. See %s', componentName) : void 0;\n return boundMethod;\n }\n var reboundMethod = _bind.apply(boundMethod, arguments);\n reboundMethod.__reactBoundContext = component;\n reboundMethod.__reactBoundMethod = method;\n reboundMethod.__reactBoundArguments = args;\n return reboundMethod;\n };\n }\n return boundMethod;\n }\n\n /**\n * Binds all auto-bound methods in a component.\n *\n * @param {object} component Component whose method is going to be bound.\n */\n function bindAutoBindMethods(component) {\n var pairs = component.__reactAutoBindPairs;\n for (var i = 0; i < pairs.length; i += 2) {\n var autoBindKey = pairs[i];\n var method = pairs[i + 1];\n component[autoBindKey] = bindAutoBindMethod(component, method);\n }\n }\n\n var IsMountedMixin = {\n componentDidMount: function () {\n this.__isMounted = true;\n },\n componentWillUnmount: function () {\n this.__isMounted = false;\n }\n };\n\n /**\n * Add more to the ReactClass base class. These are all legacy features and\n * therefore not already part of the modern ReactComponent.\n */\n var ReactClassMixin = {\n\n /**\n * TODO: This will be deprecated because state should always keep a consistent\n * type signature and the only use case for this, is to avoid that.\n */\n replaceState: function (newState, callback) {\n this.updater.enqueueReplaceState(this, newState, callback);\n },\n\n /**\n * Checks whether or not this composite component is mounted.\n * @return {boolean} True if mounted, false otherwise.\n * @protected\n * @final\n */\n isMounted: function () {\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(this.__didWarnIsMounted, '%s: isMounted is deprecated. Instead, make sure to clean up ' + 'subscriptions and pending requests in componentWillUnmount to ' + 'prevent memory leaks.', this.constructor && this.constructor.displayName || this.name || 'Component') : void 0;\n this.__didWarnIsMounted = true;\n }\n return !!this.__isMounted;\n }\n };\n\n var ReactClassComponent = function () {};\n _assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);\n\n /**\n * Creates a composite component class given a class specification.\n * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass\n *\n * @param {object} spec Class specification (which must define `render`).\n * @return {function} Component constructor function.\n * @public\n */\n function createClass(spec) {\n // To keep our warnings more understandable, we'll use a little hack here to\n // ensure that Constructor.name !== 'Constructor'. This makes sure we don't\n // unnecessarily identify a class without displayName as 'Constructor'.\n var Constructor = identity(function (props, context, updater) {\n // This constructor gets overridden by mocks. The argument is used\n // by mocks to assert on what gets mounted.\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(this instanceof Constructor, 'Something is calling a React component directly. Use a factory or ' + 'JSX instead. See: https://fb.me/react-legacyfactory') : void 0;\n }\n\n // Wire up auto-binding\n if (this.__reactAutoBindPairs.length) {\n bindAutoBindMethods(this);\n }\n\n this.props = props;\n this.context = context;\n this.refs = emptyObject;\n this.updater = updater || ReactNoopUpdateQueue;\n\n this.state = null;\n\n // ReactClasses doesn't have constructors. Instead, they use the\n // getInitialState and componentWillMount methods for initialization.\n\n var initialState = this.getInitialState ? this.getInitialState() : null;\n if (process.env.NODE_ENV !== 'production') {\n // We allow auto-mocks to proceed as if they're returning null.\n if (initialState === undefined && this.getInitialState._isMockFunction) {\n // This is probably bad practice. Consider warning here and\n // deprecating this convenience.\n initialState = null;\n }\n }\n _invariant(typeof initialState === 'object' && !Array.isArray(initialState), '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent');\n\n this.state = initialState;\n });\n Constructor.prototype = new ReactClassComponent();\n Constructor.prototype.constructor = Constructor;\n Constructor.prototype.__reactAutoBindPairs = [];\n\n injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));\n\n mixSpecIntoComponent(Constructor, IsMountedMixin);\n mixSpecIntoComponent(Constructor, spec);\n\n // Initialize the defaultProps property after all mixins have been merged.\n if (Constructor.getDefaultProps) {\n Constructor.defaultProps = Constructor.getDefaultProps();\n }\n\n if (process.env.NODE_ENV !== 'production') {\n // This is a tag to indicate that the use of these method names is ok,\n // since it's used with createClass. If it's not, then it's likely a\n // mistake so we'll warn you to use the static property, property\n // initializer or constructor respectively.\n if (Constructor.getDefaultProps) {\n Constructor.getDefaultProps.isReactClassApproved = {};\n }\n if (Constructor.prototype.getInitialState) {\n Constructor.prototype.getInitialState.isReactClassApproved = {};\n }\n }\n\n _invariant(Constructor.prototype.render, 'createClass(...): Class specification must implement a `render` method.');\n\n if (process.env.NODE_ENV !== 'production') {\n process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentShouldUpdate, '%s has a method called ' + 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' + 'The name is phrased as a question because the function is ' + 'expected to return a value.', spec.displayName || 'A component') : void 0;\n process.env.NODE_ENV !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0;\n }\n\n // Reduce time spent doing lookups by setting these on the prototype.\n for (var methodName in ReactClassInterface) {\n if (!Constructor.prototype[methodName]) {\n Constructor.prototype[methodName] = null;\n }\n }\n\n return Constructor;\n }\n\n return createClass;\n}\n\nmodule.exports = factory;\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/create-react-class/factory.js\n// module id = 13\n// module chunks = 0","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/object-assign/index.js\n// module id = 14\n// module chunks = 0","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n * All rights reserved.\n *\n * This source code is licensed under the BSD-style license found in the\n * LICENSE file in the root directory of this source tree. An additional grant\n * of patent rights can be found in the PATENTS file in the same directory.\n *\n */\n\n'use strict';\n\nvar emptyObject = {};\n\nif (process.env.NODE_ENV !== 'production') {\n Object.freeze(emptyObject);\n}\n\nmodule.exports = emptyObject;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/fbjs/lib/emptyObject.js\n// module id = 15\n// module chunks = 0","module.exports = __WEBPACK_EXTERNAL_MODULE_16__;\n\n\n//////////////////\n// WEBPACK FOOTER\n// external {\"root\":\"ReactDOM\",\"commonjs2\":\"react-dom\",\"commonjs\":\"react-dom\",\"amd\":\"react-dom\"}\n// module id = 16\n// module chunks = 0","/*!\n Copyright (c) 2016 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tclasses.push(classNames.apply(null, arg));\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/classnames/index.js\n// module id = 17\n// module chunks = 0","!(function() {\n function jss(blocks) {\n var css = [];\n for (var block in blocks)\n css.push(createStyleBlock(block, blocks[block]));\n injectCSS(css);\n }\n\n function createStyleBlock(selector, rules) {\n return selector + ' {\\n' + parseRules(rules) + '\\n}';\n }\n\n function parseRules(rules) {\n var css = [];\n for (var rule in rules)\n css.push(' '+rule+': '+rules[rule]+';');\n return css.join('\\n');\n }\n\n function injectCSS(css) {\n var style = document.getElementById('jss-styles');\n if (!style) {\n style = document.createElement('style');\n style.setAttribute('id', 'jss-styles');\n var head = document.getElementsByTagName('head')[0];\n head.insertBefore(style, head.firstChild);\n }\n var node = document.createTextNode(css.join('\\n\\n'));\n style.appendChild(node);\n }\n\n if (typeof exports === 'object')\n module.exports = jss;\n else\n window.jss = jss;\n\n})();\n\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./~/js-stylesheet/jss.js\n// module id = 18\n// module chunks = 0","\"use strict\";\n\n// Get a universally unique identifier\nvar count = 0;\nmodule.exports = function uuid() {\n return \"react-tabs-\" + count++;\n};\n\n\n// WEBPACK FOOTER //\n// ./lib/helpers/uuid.js","'use strict';\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _Tab = require('../components/Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nvar _TabList = require('../components/TabList');\n\nvar _TabList2 = _interopRequireDefault(_TabList);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = function childrenPropTypes(props, propName) {\n var error = void 0;\n var tabsCount = 0;\n var panelsCount = 0;\n var children = props[propName];\n\n _react2.default.Children.forEach(children, function (child) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (child === null) {\n return;\n }\n\n if (child.type === _TabList2.default) {\n _react2.default.Children.forEach(child.props.children, function (c) {\n // null happens when conditionally rendering TabPanel/Tab\n // see https://github.com/reactjs/react-tabs/issues/37\n if (c === null) {\n return;\n }\n\n if (c.type === _Tab2.default) {\n tabsCount++;\n }\n });\n } else if (child.type.displayName === 'TabPanel') {\n panelsCount++;\n } else {\n error = new Error('Expected \\'TabList\\' or \\'TabPanel\\' but found \\'' + (child.type.displayName || child.type) + '\\'');\n }\n });\n\n if (tabsCount !== panelsCount) {\n error = new Error(\"There should be an equal number of 'Tabs' and 'TabPanels'.\" + ('Received ' + tabsCount + ' \\'Tabs\\' and ' + panelsCount + ' \\'TabPanels\\'.'));\n }\n\n return error;\n};\n\n\n// WEBPACK FOOTER //\n// ./lib/helpers/childrenPropType.js","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _createReactClass = require('create-react-class');\n\nvar _createReactClass2 = _interopRequireDefault(_createReactClass);\n\nvar _reactDom = require('react-dom');\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nmodule.exports = (0, _createReactClass2.default)({\n displayName: 'Tab',\n\n propTypes: {\n className: _propTypes2.default.string,\n id: _propTypes2.default.string,\n focus: _propTypes2.default.bool,\n selected: _propTypes2.default.bool,\n disabled: _propTypes2.default.bool,\n activeTabClassName: _propTypes2.default.string,\n disabledTabClassName: _propTypes2.default.string,\n panelId: _propTypes2.default.string,\n children: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object, _propTypes2.default.string])\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n focus: false,\n selected: false,\n id: null,\n panelId: null,\n activeTabClassName: 'ReactTabs__Tab--selected',\n disabledTabClassName: 'ReactTabs__Tab--disabled'\n };\n },\n componentDidMount: function componentDidMount() {\n this.checkFocus();\n },\n componentDidUpdate: function componentDidUpdate() {\n this.checkFocus();\n },\n checkFocus: function checkFocus() {\n if (this.props.selected && this.props.focus) {\n (0, _reactDom.findDOMNode)(this).focus();\n }\n },\n render: function render() {\n var _cx;\n\n var _props = this.props,\n selected = _props.selected,\n disabled = _props.disabled,\n panelId = _props.panelId,\n activeTabClassName = _props.activeTabClassName,\n disabledTabClassName = _props.disabledTabClassName,\n className = _props.className,\n children = _props.children,\n id = _props.id,\n attributes = _objectWithoutProperties(_props, ['selected', 'disabled', 'panelId', 'activeTabClassName', 'disabledTabClassName', 'className', 'children', 'id']);\n\n delete attributes.focus;\n\n return _react2.default.createElement(\n 'li',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__Tab', className, (_cx = {}, _defineProperty(_cx, activeTabClassName, selected), _defineProperty(_cx, disabledTabClassName, disabled), _cx)),\n role: 'tab',\n id: id,\n 'aria-selected': selected ? 'true' : 'false',\n 'aria-disabled': disabled ? 'true' : 'false',\n 'aria-controls': panelId,\n tabIndex: selected ? '0' : null\n }),\n children\n );\n }\n});\n\n\n// WEBPACK FOOTER //\n// ./lib/components/Tab.js","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _createReactClass = require('create-react-class');\n\nvar _createReactClass2 = _interopRequireDefault(_createReactClass);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nvar _Tab = require('./Tab');\n\nvar _Tab2 = _interopRequireDefault(_Tab);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nfunction renderChildren(props) {\n return _react2.default.Children.map(props.children, function (child) {\n // if child is not a tab we don't need to clone it\n // since we don't need to add custom props\n\n if (child.type !== _Tab2.default) {\n return child;\n }\n\n var clonedProps = {\n activeTabClassName: props.activeTabClassName,\n disabledTabClassName: props.disabledTabClassName\n };\n\n return _react2.default.cloneElement(child, clonedProps);\n });\n}\n\nmodule.exports = (0, _createReactClass2.default)({\n displayName: 'TabList',\n\n propTypes: {\n className: _propTypes2.default.string,\n activeTabClassName: _propTypes2.default.string,\n disabledTabClassName: _propTypes2.default.string,\n children: _propTypes2.default.oneOfType([_propTypes2.default.object, _propTypes2.default.array])\n },\n\n render: function render() {\n var _props = this.props,\n className = _props.className,\n activeTabClassName = _props.activeTabClassName,\n disabledTabClassName = _props.disabledTabClassName,\n children = _props.children,\n attributes = _objectWithoutProperties(_props, ['className', 'activeTabClassName', 'disabledTabClassName', 'children']);\n\n return _react2.default.createElement(\n 'ul',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__TabList', className),\n role: 'tablist'\n }),\n renderChildren({ activeTabClassName: activeTabClassName, disabledTabClassName: disabledTabClassName, children: children })\n );\n }\n});\n\n\n// WEBPACK FOOTER //\n// ./lib/components/TabList.js","'use strict';\n\nmodule.exports = {\n '.react-tabs [role=tablist]': {\n 'border-bottom': '1px solid #aaa',\n margin: '0 0 10px',\n padding: '0'\n },\n\n '.react-tabs [role=tab]': {\n display: 'inline-block',\n border: '1px solid transparent',\n 'border-bottom': 'none',\n bottom: '-1px',\n position: 'relative',\n 'list-style': 'none',\n padding: '6px 12px',\n cursor: 'pointer'\n },\n\n '.react-tabs [role=tab][aria-selected=true]': {\n background: '#fff',\n 'border-color': '#aaa',\n color: 'black',\n 'border-radius': '5px 5px 0 0',\n '-moz-border-radius': '5px 5px 0 0',\n '-webkit-border-radius': '5px 5px 0 0'\n },\n\n '.react-tabs [role=tab][aria-disabled=true]': {\n color: 'GrayText',\n cursor: 'default'\n },\n\n '.react-tabs [role=tab]:focus': {\n 'box-shadow': '0 0 5px hsl(208, 99%, 50%)',\n 'border-color': 'hsl(208, 99%, 50%)',\n outline: 'none'\n },\n\n '.react-tabs [role=tab]:focus:after': {\n content: '\"\"',\n position: 'absolute',\n height: '5px',\n left: '-4px',\n right: '-4px',\n bottom: '-5px',\n background: '#fff'\n }\n};\n\n\n// WEBPACK FOOTER //\n// ./lib/helpers/styles.js","'use strict';\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _createReactClass = require('create-react-class');\n\nvar _createReactClass2 = _interopRequireDefault(_createReactClass);\n\nvar _classnames = require('classnames');\n\nvar _classnames2 = _interopRequireDefault(_classnames);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }\n\nmodule.exports = (0, _createReactClass2.default)({\n displayName: 'TabPanel',\n\n propTypes: {\n children: _propTypes2.default.oneOfType([_propTypes2.default.array, _propTypes2.default.object, _propTypes2.default.string]),\n className: _propTypes2.default.string,\n id: _propTypes2.default.string,\n selected: _propTypes2.default.bool,\n style: _propTypes2.default.object,\n tabId: _propTypes2.default.string\n },\n\n contextTypes: {\n forceRenderTabPanel: _propTypes2.default.bool\n },\n\n getDefaultProps: function getDefaultProps() {\n return {\n selected: false,\n id: null,\n tabId: null\n };\n },\n render: function render() {\n var _props = this.props,\n className = _props.className,\n children = _props.children,\n selected = _props.selected,\n id = _props.id,\n tabId = _props.tabId,\n style = _props.style,\n attributes = _objectWithoutProperties(_props, ['className', 'children', 'selected', 'id', 'tabId', 'style']);\n\n return _react2.default.createElement(\n 'div',\n _extends({}, attributes, {\n className: (0, _classnames2.default)('ReactTabs__TabPanel', className, {\n 'ReactTabs__TabPanel--selected': selected\n }),\n role: 'tabpanel',\n id: id,\n 'aria-labelledby': tabId,\n style: _extends({}, style, { display: selected ? null : 'none' })\n }),\n this.context.forceRenderTabPanel || selected ? children : null\n );\n }\n});\n\n\n// WEBPACK FOOTER //\n// ./lib/components/TabPanel.js"],"sourceRoot":""}
\ No newline at end of file
diff --git a/eslint.config.mjs b/eslint.config.mjs
new file mode 100644
index 0000000000..f3bcaa0797
--- /dev/null
+++ b/eslint.config.mjs
@@ -0,0 +1,66 @@
+import babelParser from '@babel/eslint-parser';
+import js from '@eslint/js';
+import reactPlugin from 'eslint-plugin-react';
+import importPlugin from 'eslint-plugin-import';
+import jsxA11yPlugin from 'eslint-plugin-jsx-a11y';
+import prettierRecommended from 'eslint-plugin-prettier/recommended';
+
+export default [
+ js.configs.recommended,
+ reactPlugin.configs.flat.recommended,
+ importPlugin.flatConfigs.recommended,
+ importPlugin.flatConfigs.react,
+ jsxA11yPlugin.flatConfigs.recommended,
+ prettierRecommended,
+ {
+ ignores: ['webpack.*', '**/lib', '**/dist', '**/esm'],
+ },
+ {
+ languageOptions: {
+ parser: babelParser,
+
+ parserOptions: {
+ requireConfigFile: false,
+ },
+ },
+
+ settings: {
+ react: {
+ version: 'detect',
+ },
+ 'import/resolver': {
+ node: {
+ extensions: ['.js', '.jsx'],
+ },
+ },
+ },
+
+ rules: {
+ 'jsx-a11y/no-static-element-interactions': 'off',
+
+ 'import/no-extraneous-dependencies': [
+ 'error',
+ {
+ devDependencies: [
+ '**/__tests__/**/*',
+ 'examples/src/**/*.js',
+ 'rollup.config.js',
+ 'webpack.config.js',
+ ],
+
+ optionalDependencies: false,
+ },
+ ],
+
+ 'no-unused-vars': [
+ 'error',
+ {
+ ignoreRestSiblings: true,
+ },
+ ],
+
+ 'no-console': 'error',
+ 'react/prop-types': 'off',
+ },
+ },
+];
diff --git a/examples/basic/app.js b/examples/basic/app.js
deleted file mode 100644
index b781df5c33..0000000000
--- a/examples/basic/app.js
+++ /dev/null
@@ -1,91 +0,0 @@
-import React from 'react';
-import ReactDOM from 'react-dom';
-import { Tab, Tabs, TabList, TabPanel } from '../../src/main';
-
-const App = React.createClass({
- render() {
- return (
-
-
Hint:
-
-
use keyboard tab to focus tabs
-
use arrow keys to navigate focused tabs
-
-
-
-
- React
- Ember
- Angular
-
- +
-
-
-
-
Just The UI
-
Lots of people use React as the V in MVC. Since React makes no assumptions about the rest of your technology stack, it's easy to try it out on a small feature in an existing project.
-
-
Virtual DOM
-
React uses a virtual DOM diff implementation for ultra-high performance. It can also render on the server using Node.js â no heavy browser DOM required.
-
-
Data Flow
-
React implements one-way reactive data flow which reduces boilerplate and is easier to reason about than traditional data binding.
Write dramatically less code with Ember's Handlebars integrated templates that update automatically when the underlying data changes.
-
-
Architecture
-
Don't waste time making trivial choices. Ember.js incorporates common idioms so you can focus on what makes your app special, not reinventing the wheel.
-
-
Productivity
-
Ember.js is built for productivity. Designed with developer ergonomics in mind, its friendly APIs help you get your job doneâfast.
HTML is great for declaring static documents, but it falters when we try to use it for declaring dynamic views in web-applications. AngularJS lets you extend HTML vocabulary for your application. The resulting environment is extraordinarily expressive, readable, and quick to develop.
-
-
Alternatives
-
Other frameworks deal with HTMLâs shortcomings by either abstracting away HTML, CSS, and/or JavaScript or by providing an imperative way for manipulating the DOM. Neither of these address the root problem that HTML was not designed for dynamic views.
-
-
Extensibility
-
AngularJS is a toolset for building the framework most suited to your application development. It is fully extensible and works well with other libraries. Every feature can be modified or replaced to suit your unique development workflow and feature needs. Read on to find out how.
Mario (Japanese: ããĒãĒ Hepburn: Mario?) is a fictional character in the Mario video game franchise by Nintendo, created by Japanese video game designer Shigeru Miyamoto. Serving as Nintendo's mascot and the eponymous protagonist of the series, he has a younger brother Luigi. Mario has appeared in over 200 video games since his creation. Depicted as a short, pudgy, Italian plumber who resides in the Mushroom Kingdom, he repeatedly rescues Princess Peach from the Koopa villain Bowser and stops his numerous plans to destroy him and take over the kingdom.
Luigi (Japanese: ãĢã¤ãŧ㸠Hepburn: RuÄĢji?) is a fictional character featured in video games and related media released by Nintendo. Created by prominent game designer Shigeru Miyamoto, Luigi is portrayed as the slightly younger but taller fraternal twin brother of Nintendo's mascot Mario, and appears in many games throughout the Mario franchise, frequently as a sidekick to his brother.
Princess Peach (Japanese: ããŧãå§Ģ Hepburn: PÄĢchi-hime?) is a character in Nintendo's Mario franchise. Originally created by Shigeru Miyamoto, Peach is the princess of the fictional Mushroom Kingdom, which is constantly under attack by Bowser. She often plays the damsel in distress role within the series and is the lead female.[1] She is often portrayed as Mario's love interest and has appeared in nearly all the Mario games to date with the notable exception of Super Princess Peach, where she is the main playable character.
-
-
-
Yoshi (ã¨ããˇãŧ YosshÄĢ?) /ËjoĘĘi/ or /ËjÉĘi/, once romanized as Yossy, is a fictional anthropomorphic dinosaur (referred to as a dragon at times) who appears in video games published by Nintendo. He debuted in Super Mario World (1990) on the Super Nintendo Entertainment System as Mario and Luigi's sidekick (a role he has often reprised), and he later established his own series with several platform and puzzle games, including Super Mario World 2: Yoshi's Island. He has also appeared in many of the spin-off Mario games including the Mario Party, the Mario Kart, and the Super Smash Bros. series, as well as in other various Mario sports titles. Yoshi also appears in New Super Mario Bros. Wii (2009) as the characters' companion and steed, similar to his original debut role in Super Mario World. Yoshi belongs to the species of the same name which comes in various colors, with green being the most common.
+ );
+ }
+}
+
+ExampleItem.propTypes = {
+ label: T.string.isRequired,
+ hint: T.string.isRequired,
+ code: T.string.isRequired,
+};
diff --git a/examples/src/components/examples/Avengers.js b/examples/src/components/examples/Avengers.js
new file mode 100644
index 0000000000..ccb53aa3e3
--- /dev/null
+++ b/examples/src/components/examples/Avengers.js
@@ -0,0 +1,113 @@
+import React from 'react';
+import ExampleItem from '../ExampleItem';
+import antMan from '../../images/ant_man.png';
+import blackWidow from '../../images/black_widow.png';
+import captain from '../../images/captain_america.png';
+import fury from '../../images/fury.png';
+import hawkeye from '../../images/hawkeye.png';
+import ironman from '../../images/ironman.png';
+import loki from '../../images/loki.png';
+import thor from '../../images/thor.png';
+import warMachine from '../../images/war_machine.png';
+
+const code = `class Component extends React.Component {
+ constructor(props) {
+ super(props);
+
+ this.characters = [
+ { name: "Ant-Man", img: "${antMan}", color: "IndianRed", text: "white", desc: "\\"I do some dumb things, and the people I love the most...they pay the price.\\"" },
+ { name: "Black Widow", img: "${blackWidow}", color: "SlateGrey", text: "white", desc: "\\"After everything that happened with S.H.I.E.L.D., during my little hiatus, I went back to Russia and tried to find my parents. Two little graves linked by a chain fence. I pulled some weeds and left some flowers. We have what we have when we have it.\\"" },
+ { name: "Captain America", img: "${captain}", color: "RoyalBlue", text: "white", desc: "\\"I'm not looking for forgiveness. And I'm way past asking for permission. Earth just lost their best defender. So we're here to fight. If you wanna stay in our way... we'll fight you, too.\\"" },
+ { name: "Director Fury", img: "${fury}", color: "Sienna", text: "white", desc: "\\"Back in the day, I had eyes everywhere, ears everywhere else. Here we all are, back on earth, with nothing but our wit, and our will to save the world. So stand. Outwit the platinum bastard.\\"" },
+ { name: "Hawkeye", img: "${hawkeye}", color: "MediumOrchid", text: "white", desc: "\\"Just can't seem to miss.\\"" },
+ { name: "Iron Man", img: "${ironman}", color: "LightCoral", text: "black", desc: "\\"My armor was never a distraction or a hobby. It was a cocoon. And now I'm a changed man. You can take away my house, all my tricks and toys. But one thing you can't take away... I am Iron Man.\\"" },
+ { name: "Loki", img: "${loki}", color: "LightGreen", text: "black", desc: "\\"I, Loki, Prince of Asgard, Odinson, the rightful King of Jotunheim, God of Mischief, do hereby pledge to you, my undying fidelity.\\"" },
+ { name: "Thor", img: "${thor}", color: "SkyBlue", text: "black", desc: "\\"You know Iâm 1500 years old. Iâve killed twice as many enemies as that. And every one of them would have rather killed me than not succeeded. Iâm only alive because fate wants me alive. Thanos is just the latest of a long line of bastards, and heâll be the latest to feel my vengeance. Fate wills it so.\\"" },
+ { name: "War Machine", img: "${warMachine}", color: "LightGrey", text: "black", desc: "\\"138 combat missions. That's how many I've flown, Tony. Every one of them could've been my last, but I flew 'em. Because the fight needed to be fought.\\"" }
+ ];
+
+ this.state = {
+ "Ant-Man": true,
+ "Black Widow": true,
+ "Captain America": true,
+ "Director Fury": false,
+ Loki: false,
+ Hawkeye: true,
+ "Iron Man": true,
+ Thor: true,
+ "War Machine": true,
+ selectedIndex: 0
+ };
+
+ this.handleCheckClicked = this.handleCheckClicked.bind(this);
+ }
+
+ handleCheckClicked(e) {
+ const state = {
+ [e.target.name]: e.target.checked
+ };
+ if (this.characters.findIndex(({name}) => name === e.target.name) <= this.state.selectedIndex) {
+ state.selectedIndex = this.state.selectedIndex + (e.target.checked ? 1 : -1);
+ }
+ this.setState(state);
+ }
+
+ render() {
+ const links = [];
+ const tabs = [];
+ const tabPanels = [];
+
+ this.characters.forEach(({ name, img, color: backgroundColor, text: color, desc }) => {
+ links.push(
+
+ );
+
+ if (!this.state[name]) return;
+
+ tabs.push(
+
+
+
+ );
+
+ tabPanels.push(
+
+ {desc}
+
+ );
+ });
+
+ return (
+
+ );
+ }
+}
+
+render(Component);
+`;
+
+const hint =
+ 'This example lets you disable or enable certain Tabs dynamically.';
+
+export default () => (
+
+);
diff --git a/examples/src/components/examples/MattGroening.js b/examples/src/components/examples/MattGroening.js
new file mode 100644
index 0000000000..696b4a0bb3
--- /dev/null
+++ b/examples/src/components/examples/MattGroening.js
@@ -0,0 +1,83 @@
+import React from 'react';
+import ExampleItem from '../ExampleItem';
+
+const code = `const Component = (
+
+
+ The Simpsons
+ Futurama
+
+
+
+
+ Homer Simpson
+ Marge Simpson
+ Bart Simpson
+ Lisa Simpson
+ Maggie Simpson
+
+
+
Husband of Marge; father of Bart, Lisa, and Maggie.
+
+
+
+
Wife of Homer; mother of Bart, Lisa, and Maggie.
+
+
+
+
Oldest child and only son of Homer and Marge; brother of Lisa and Maggie.
+
+
+
+
Middle child and eldest daughter of Homer and Marge; sister of Bart and Maggie.
+
+
+
+
Youngest child and daughter of Homer and Marge; sister of Bart and Lisa.
+
+
+
+
+
+
+
+ Philip J. Fry
+ Turanga Leela
+ Bender Bending Rodriguez
+ Amy Wong
+ Professor Hubert J. Farnsworth
+ Doctor John Zoidberg
+
+
+
Protagonist, from the 20th Century. Delivery boy. Many times great-uncle to Professor Hubert Farnsworth. Suitor of Leela.
+
+
+
+
Mutant cyclops. Captain of the Planet Express Ship. Love interest of Fry.
+
+
+
+
A kleptomaniacal, lazy, cigar-smoking, heavy-drinking robot who is Fry's best friend. Built in Tijuana, Mexico, he is the Planet Express Ship's cook.
+
+
+
+
Chinese-Martian intern at Planet Express. Fonfon Ru of Kif Kroker.
+
+
+
Many times great-nephew of Fry. CEO and owner of Planet Express delivery company. Tenured professor of Mars University.
+
+
+
+
Alien from Decapod 10. Planet Express' staff doctor and steward. Has a medical degree and Ph.D in art history.
+
+
+
+
+
+);
+
+render(Component);`;
+
+const hint = 'Tabs can also be nested within each other and will continue to work individually.';
+
+export default () => ;
diff --git a/examples/src/components/examples/RightToLeft.js b/examples/src/components/examples/RightToLeft.js
new file mode 100644
index 0000000000..bc57372702
--- /dev/null
+++ b/examples/src/components/examples/RightToLeft.js
@@ -0,0 +1,77 @@
+import React from 'react';
+import ExampleItem from '../ExampleItem';
+
+const code = `const Component = (
+
+);
+
+render(Component);`;
+
+const hint =
+ 'This is an example of a right to left option. Just pass the `direction` prop to the element';
+
+export default () => (
+
+);
diff --git a/examples/src/components/examples/SuperMario.js b/examples/src/components/examples/SuperMario.js
new file mode 100644
index 0000000000..e52226a8cd
--- /dev/null
+++ b/examples/src/components/examples/SuperMario.js
@@ -0,0 +1,107 @@
+import React from 'react';
+import ExampleItem from '../ExampleItem';
+
+const code = `const Component = (
+
+
+ Mario
+ Luigi
+ Peach
+ Yoshi
+ Toad
+
+
+
+
+ Mario (Japanese: ããĒãĒ Hepburn: Mario, [ma.ɞʲi.o]) (English:
+ /ËmÉËrioĘ/; Italian: [ËmaËrjo]) is a fictional character in the Mario video
+ game franchise, owned by Nintendo and created by Japanese video game designer
+ Shigeru Miyamoto. Serving as the company's mascot and the eponymous protagonist
+ of the series, Mario has appeared in over 200 video games since his creation.
+ Depicted as a short, pudgy, Italian plumber who resides in the Mushroom
+ Kingdom, his adventures generally center upon rescuing Princess Peach from the
+ Koopa villain Bowser. His younger brother and sidekick is Luigi.
+
+ Luigi (Japanese: ãĢã¤ãŧ㸠Hepburn: RuÄĢji, [ɞɯ.iË.dĘiĖĨ]) (English: /luËiËdĘi/;
+ Italian: [luËiËdĘi]) is a fictional character featured in video games and related media
+ released by Nintendo. Created by prominent game designer Shigeru Miyamoto, Luigi is portrayed
+ as the slightly younger but taller fraternal twin brother of Nintendo's mascot Mario, and
+ appears in many games throughout the Mario franchise, often as a sidekick to his brother.
+
+ Princess Peach (Japanese: ããŧãå§Ģ Hepburn: PÄĢchi-hime, [piË.tÉiĖĨ çiĖĨ.me])
+ is a character in Nintendo's Mario franchise. Originally created by Shigeru Miyamoto,
+ Peach is the princess of the fictional Mushroom Kingdom, which is constantly under
+ attack by Bowser. She often plays the damsel in distress role within the series and
+ is the lead female. She is often portrayed as Mario's love interest and has appeared
+ in Super Princess Peach, where she is the main playable character.
+
+ Yoshi (ã¨ããˇãŧ YosshÄĢ, [joÉ.ÉiË]) (English: /ËjoĘĘi/ or /ËjÉĘi/), once
+ romanized as Yossy, is a fictional anthropomorphic dinosaur who appears in
+ video games published by Nintendo. Yoshi debuted in Super Mario World (1990) on the
+ Super Nintendo Entertainment System as Mario and Luigi's sidekick. Yoshi later starred
+ in platform and puzzle games, including Super Mario World 2: Yoshi's Island, Yoshi's Story
+ and Yoshi's Woolly World. Yoshi also appears in many of the Mario spin-off games, including
+ Mario Party and Mario Kart, various Mario sports games, and Nintendo's crossover fighting
+ game series Super Smash Bros. Yoshi belongs to the species of the same name, which is
+ characterized by their variety of colors.
+
+ Toad (Japanese: ããããĒ Hepburn: Kinopio) is a fictional character who primarily
+ appears in Nintendo's Mario franchise. Created by Japanese video game designer Shigeru Miyamoto,
+ he is portrayed as a citizen of the Mushroom Kingdom and is one of Princess Peach's most loyal
+ attendants; constantly working on her behalf. He is usually seen as a non-player character (NPC)
+ who provides assistance to Mario and his friends in most games, but there are times when Toad(s)
+ takes center stage and appears as a protagonist, as seen in Super Mario Bros. 2, Wario's Woods,
+ Super Mario 3D World, and Captain Toad: Treasure Tracker.
+
+`;
+
+exports[` > should accept className 1`] = `
+
+`;
+
+exports[` > should allow to be wrapped in higher-order-component 1`] = `
+
+`;
+
+exports[` > should have sane defaults 1`] = `
+
+`;
+
+exports[` > should not allow overriding all default properties 1`] = `
+
+`;
+
+exports[` > should pass through custom properties 1`] = `
+
+`;
+
+exports[` > should support being disabled 1`] = `
+
+`;
+
+exports[` > should support being disabled with custom class name 1`] = `
+
+`;
+
+exports[` > should support being selected 1`] = `
+
+ Hello
+
+`;
+
+exports[` > should support being selected with custom class 1`] = `
+
+`;
diff --git a/src/components/__tests__/__snapshots__/TabList-test.jsx.snap b/src/components/__tests__/__snapshots__/TabList-test.jsx.snap
new file mode 100644
index 0000000000..c39e9c2525
--- /dev/null
+++ b/src/components/__tests__/__snapshots__/TabList-test.jsx.snap
@@ -0,0 +1,230 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[` > should accept className 1`] = `
+
+`;
+
+exports[` > should allow for higher order components 1`] = `
+
+
+
+ Foo
+
+
+ Bar
+
+
+
+ Foo
+
+
+
+`;
+
+exports[` > should display the custom classnames for selected and disabled tab 1`] = `
+
+
+
+ Foo
+
+
+ Bar
+
+
+
+ Foo
+
+
+
+`;
+
+exports[` > should display the custom classnames for selected and disabled tab specified on tabs 1`] = `
+
+
+
+ Foo
+
+
+ Bar
+
+
+
+ Foo
+
+
+
+`;
+
+exports[` > should have sane defaults 1`] = `
+
+`;
+
+exports[` > should not allow overriding all default properties 1`] = `
+
+`;
+
+exports[` > should pass through custom properties 1`] = `
+
+`;
+
+exports[` > should retain the default classnames for active and disabled tab 1`] = `
+
+
+
+ Foo
+
+
+ Bar
+
+
+
+ Foo
+
+
+
+`;
diff --git a/src/components/__tests__/__snapshots__/TabPanel-test.jsx.snap b/src/components/__tests__/__snapshots__/TabPanel-test.jsx.snap
new file mode 100644
index 0000000000..3f28f5ba10
--- /dev/null
+++ b/src/components/__tests__/__snapshots__/TabPanel-test.jsx.snap
@@ -0,0 +1,91 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[` > should accept className 1`] = `
+
+`;
+
+exports[` > should allow for higher-order components 1`] = `
+
+`;
+
+exports[` > should have sane defaults 1`] = `
+
+`;
+
+exports[` > should not allow overriding all default properties 1`] = `
+
+`;
+
+exports[` > should pass through custom properties 1`] = `
+
+`;
+
+exports[` > should render when forced 1`] = `
+
+ Hola
+
+`;
+
+exports[` > should render when selected 1`] = `
+
+ Hola
+
+`;
+
+exports[` > should support being selected 1`] = `
+
+ Hola
+
+`;
+
+exports[` > should support being selected with custom class name 1`] = `
+
+ Hola
+
+`;
diff --git a/src/components/__tests__/__snapshots__/Tabs-test.jsx.snap b/src/components/__tests__/__snapshots__/Tabs-test.jsx.snap
new file mode 100644
index 0000000000..25f05c1ccc
--- /dev/null
+++ b/src/components/__tests__/__snapshots__/Tabs-test.jsx.snap
@@ -0,0 +1,804 @@
+// Vitest Snapshot v1, https://vitest.dev/guide/snapshot.html
+
+exports[` > performance > should render all tabs if forceRenderTabPanel is true 1`] = `
+
+`;
+
+exports[` > should allow for higher order components 1`] = `
+
+
+
+ Foo
+
+
+ Bar
+
+
+
+ Foo
+
+
+
+`;
+
+exports[` > should allow string children 1`] = `
+
+ Foo
+
+ Foo
+
+ Foo
+
+ Foo
+
+ Bar
+
+ Foo
+
+
+ Bar
+
+
+ Foo
+
+`;
+
+exports[` > should not add known props to dom 1`] = `
+
+`;
+
+exports[` > should pass through custom properties 1`] = `
+
+`;
+
+exports[` > validation > should allow other DOM nodes 1`] = `
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+`;
+
+exports[` > validation > should allow random order for elements 1`] = `
+
+
+ Hello Foo
+
+
+
+ Foo
+
+
+ Bar
+
+
+
+ Hello Bar
+
+
+`;
+
+exports[` > validation > should be okay with rendering just TabList 1`] = `
+
+
+
+`;
+
+exports[` > validation > should be okay with rendering without any children 1`] = `
+
+`;
+
+exports[` > validation > should gracefully render null 1`] = `
+
+
+
+ Tab A
+
+
+
+ Content A
+
+
+`;
+
+exports[` > validation > should not throw a warning when wrong element is found 1`] = `
+