├── .gitignore ├── .npmignore ├── source ├── index.js ├── components │ └── ReadMoreReact.jsx └── utils │ └── trimText.js ├── demo ├── assets │ ├── notebook.png │ └── style.css └── lib │ ├── demo.js │ ├── addText.jsx │ └── app.jsx ├── webpack.config.js ├── index.html ├── package.json ├── README.md └── demo.js /.gitignore: -------------------------------------------------------------------------------- 1 | node_modules 2 | dist/ 3 | .idea* -------------------------------------------------------------------------------- /.npmignore: -------------------------------------------------------------------------------- 1 | demo/ 2 | source/ 3 | index.html 4 | root.js -------------------------------------------------------------------------------- /source/index.js: -------------------------------------------------------------------------------- 1 | module.exports = require('./components/ReadMoreReact'); -------------------------------------------------------------------------------- /demo/assets/notebook.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/alexandersmanning/read-more-react/HEAD/demo/assets/notebook.png -------------------------------------------------------------------------------- /demo/lib/demo.js: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import ReactDOM from 'react-dom'; 3 | import App from './app'; 4 | 5 | document.addEventListener("DOMContentLoaded", () => { 6 | let root = document.getElementById("root"); 7 | ReactDOM.render(, root); 8 | }); -------------------------------------------------------------------------------- /webpack.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | context: __dirname, 3 | entry: "./demo/lib/demo.js", 4 | output: { 5 | path: `${__dirname}/`, 6 | filename: "demo.js" 7 | }, 8 | module: { 9 | rules: [ 10 | { 11 | test: [/\.jsx?$/, /\.js?$/], 12 | exclude: /(node_modules)/, 13 | use: { 14 | loader: 'babel-loader', 15 | options: { 16 | presets: ['@babel/env', '@babel/react'] 17 | }, 18 | } 19 | } 20 | ] 21 | }, 22 | devtool: 'source-map', 23 | resolve: { 24 | extensions: ['.js', '.jsx' ] 25 | }, 26 | }; -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Read More + React 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | Fork me on GitHub 13 |
14 | 15 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "read-more-react", 3 | "version": "1.0.10", 4 | "description": "A moderately intelligent truncation of text for react", 5 | "main": "./dist/index.js", 6 | "scripts": { 7 | "prepublish": "npm run build", 8 | "build": "babel source --out-dir dist --presets=@babel/preset-env,@babel/preset-react", 9 | "watcher": "webpack --watch" 10 | }, 11 | "repository": { 12 | "type": "git", 13 | "url": "git+https://github.com/alexandersmanning/read-more-react.git" 14 | }, 15 | "keywords": [ 16 | "readmore", 17 | "read more", 18 | "react" 19 | ], 20 | "author": "Alex Manning", 21 | "license": "ISC", 22 | "bugs": { 23 | "url": "https://github.com/alexandersmanning/read-more-react/issues" 24 | }, 25 | "homepage": "https://github.com/alexandersmanning/read-more-react#readme", 26 | "devDependencies": { 27 | "@babel/cli": "^7.8.3", 28 | "@babel/core": "^7.8.3", 29 | "@babel/preset-env": "^7.8.3", 30 | "@babel/preset-react": "^7.8.3", 31 | "@babel/runtime": "^7.8.3", 32 | "babel-loader": "^8.0.6", 33 | "prop-types": "^15.4.1", 34 | "react": "^15.4.1", 35 | "react-dom": "^15.4.1", 36 | "webpack": "^4.41.5", 37 | "webpack-cli": "^3.3.10" 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /source/components/ReadMoreReact.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import PropTypes from 'prop-types'; 3 | import trimText from '../utils/trimText' 4 | 5 | export default class ReadMoreReact extends React.Component { 6 | constructor(props){ 7 | super(props); 8 | 9 | let args = [ 10 | this.props.text, 11 | this.props.min, 12 | this.props.ideal, 13 | this.props.max 14 | ]; 15 | 16 | const [primaryText, secondaryText] = trimText(...args); 17 | this.state = { displaySecondary: false, primaryText , secondaryText, readMoreText: this.props.readMoreText }; 18 | } 19 | 20 | setStatus() { 21 | let display = !this.state.displaySecondary; 22 | this.setState({displaySecondary: display}); 23 | } 24 | 25 | render() { 26 | let displayText; 27 | if (!this.state.secondaryText) { 28 | displayText = ( 29 |
30 | 31 | {`${this.state.primaryText} ${this.state.secondaryText}`} 32 | 33 |
); 34 | } 35 | else if (this.state.displaySecondary) { 36 | displayText = ( 37 |
38 | 40 | {`${this.state.primaryText} ${this.state.secondaryText}`} 41 | 42 |
); 43 | } else { 44 | displayText = (
45 | 46 | {this.state.primaryText}{this.state.secondaryText} 47 |
{this.state.readMoreText}
49 |
50 |
); 51 | } 52 | 53 | return displayText; 54 | } 55 | } 56 | 57 | ReadMoreReact.propTypes = { 58 | text: PropTypes.string.isRequired, 59 | min: PropTypes.number, 60 | ideal: PropTypes.number, 61 | max: PropTypes.number, 62 | readMoreText: PropTypes.string, 63 | }; 64 | 65 | ReadMoreReact.defaultProps = { 66 | readMoreText: "read more", 67 | }; 68 | -------------------------------------------------------------------------------- /source/utils/trimText.js: -------------------------------------------------------------------------------- 1 | const PUNCTUATION_LIST = [".",",","!","?","'","{","}","(",")","[","]", "/"]; 2 | 3 | const trimText = (text, min = 80, ideal = 100, max = 200) => { 4 | //This main function uses two pointers to move out from the ideal, to find the first instance of a punctuation mark followed by a space. If one cannot be found, it will go with the first space closest to the ideal. 5 | 6 | if (max < min || ideal > max || ideal < min) { 7 | throw new Error("The minimum length must be less than the maximum, and the ideal must be between the minimum and maximum.") 8 | } 9 | 10 | if (text.length < ideal) { 11 | return [text, '']; 12 | } 13 | 14 | let pointerOne = ideal; 15 | let pointerTwo = ideal; 16 | let firstSpace, resultIdx; 17 | 18 | const setSpace = (idx) => { 19 | if (spaceMatch(text[idx])) { firstSpace = firstSpace || idx } 20 | } 21 | 22 | while (pointerOne < max || pointerTwo > min) { 23 | if (checkMatch(pointerOne, text, max, min)) { 24 | resultIdx = pointerOne + 1 25 | break; 26 | } else if (checkMatch(pointerTwo, text, max, min)) { 27 | resultIdx = pointerTwo + 1; 28 | break; 29 | } else { 30 | setSpace(pointerOne); 31 | setSpace(pointerTwo); 32 | } 33 | 34 | pointerOne++; 35 | pointerTwo--; 36 | } 37 | 38 | if (resultIdx === undefined) { 39 | if (firstSpace && firstSpace >= min && firstSpace <= max) { 40 | resultIdx = firstSpace; 41 | } else if (ideal - min < max - ideal) { 42 | resultIdx = min; 43 | } else { 44 | resultIdx = max; 45 | } 46 | } 47 | 48 | return [text.slice(0, resultIdx), text.slice(resultIdx).trim()]; 49 | } 50 | 51 | const spaceMatch = (character) => { 52 | if (character === " ") { return true } 53 | } 54 | 55 | const punctuationMatch = (idx, text) => { 56 | let punctuationIdx = PUNCTUATION_LIST.indexOf(text[idx]); 57 | if (punctuationIdx >= 0 && spaceMatch(text[idx + 1])) 58 | { 59 | return true; 60 | } 61 | } 62 | 63 | const checkMatch = (idx, text, max, min) => { 64 | if (idx < max && idx > min && punctuationMatch(idx, text)) { 65 | return true; 66 | } 67 | } 68 | 69 | export default trimText -------------------------------------------------------------------------------- /demo/assets/style.css: -------------------------------------------------------------------------------- 1 | body { 2 | margin: 0; 3 | padding: 0; 4 | background-color: #FAFAFC; 5 | font-family: "europa", sans-serif; 6 | } 7 | 8 | .title { 9 | background-color: white; 10 | padding: 15px; 11 | margin: 0; 12 | text-align: center; 13 | color: #286DA8; 14 | } 15 | 16 | 17 | .add-text-form { 18 | display: flex; 19 | flex-direction: column; 20 | justify-content: center; 21 | align-items: center; 22 | padding-bottom: 3vh; 23 | border-bottom: 1px solid lightgrey; 24 | box-shadow: 0 2px 4px 0 rgba(73,73,73,0.1); 25 | background-color: white; 26 | font-size: 16px; 27 | } 28 | 29 | .error-messages { 30 | color: red; 31 | } 32 | 33 | .text-box { 34 | width: 50vw; 35 | outline: none; 36 | border-radius: 4px; 37 | border: 1px solid lightgrey; 38 | font-size: 16px; 39 | box-shadow: 0 18px 27px 0 rgba(0,0,0,.1); 40 | margin-bottom: 3vh; 41 | resize: none; 42 | padding: 8px; 43 | background-color: #FAFAFC; 44 | } 45 | 46 | .number-container { 47 | margin-bottom: 15px; 48 | } 49 | 50 | label { 51 | margin-right: 8px; 52 | margin-left: 15px; 53 | } 54 | 55 | .number-box { 56 | border: none; 57 | border-bottom: 1px solid lightgrey; 58 | width: 60px; 59 | text-align: center; 60 | outline: none; 61 | font-size: 16px; 62 | } 63 | 64 | .number-box:hover { 65 | border-bottom: 1.5px solid #286DA8; 66 | transition: border-bottom 0.2s ease-in; 67 | } 68 | 69 | button { 70 | font-size: 16px; 71 | background-color: #286DA8; 72 | color: white; 73 | border: 1px solid #286DA8; 74 | border-radius: 4px; 75 | padding: 15px; 76 | cursor: pointer; 77 | } 78 | 79 | button:hover { 80 | background-color: #4591d3; 81 | border: 1px solid #4591d3; 82 | transition: background-color 0.5s 83 | } 84 | 85 | .display-text-group { 86 | width: 30vh; 87 | min-height: 25vh; 88 | padding: 2vh; 89 | float: left; 90 | display: flex; 91 | align-items: center; 92 | justify-content: center; 93 | border: 1px solid lightgrey; 94 | margin: 40px; 95 | border-radius: 4px; 96 | box-shadow: 0 8px 14px 0 rgba(0,0,0,.03); 97 | background-color: white; 98 | } 99 | 100 | .display-text-group:hover { 101 | box-shadow: 0 18px 27px 0 rgba(0,0,0,.1); 102 | } 103 | 104 | .text-display-group:after { 105 | content: ""; 106 | display: block; 107 | clear: both; 108 | } 109 | 110 | .text-display-group { 111 | padding-left: 2vw; 112 | padding-right: 2vw; 113 | display: flex; 114 | justify-content: center; 115 | flex-wrap: wrap; 116 | } 117 | 118 | .read-more-button { 119 | display: inline-block; 120 | margin-left: 3px; 121 | color: #286DA8; 122 | cursor: pointer; 123 | } 124 | 125 | .read-more-button:hover { 126 | color: #4591d3; 127 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Read More + React 2 | Read More + React is a simple npm component for react that "intelligently" truncates text at the appropriate point given a min, an ideal, and max text length. The idea is to cut off at the best point, and not just a specific character, cutting words short. 3 | 4 | [Demo of Read More + React][demoSite] 5 | [demoSite]: http://www.alexandersmanning.com/read-more-react/ 6 | 7 | ## How to Use 8 | 9 | ### With React 10 | Read More + React is extraordinarily simple to use with react. You only need to add one prop, text. 11 | 12 | #### Install and Import 13 | ``` 14 | npm install --save read-more-react 15 | import ReadMoreReact from 'read-more-react'; 16 | ``` 17 | 18 | #### Use 19 | ``` 20 | 21 | ``` 22 | 23 | Additional Parameters: You can customize the starting point (min), the ideal length (ideal), and the max length (max). The defaults for these are 80, 100, and 200 characters respectively. 24 | 25 | | Parameter | Default Value (characters) | 26 | |--------------------|----------------------------| 27 | | min | 80 | 28 | | ideal | 100 | 29 | | max | 200 | 30 | | readMoreText | "read more" | 31 | 32 | ```javascript 33 | 38 | ``` 39 | 40 | Example: 41 | 42 | ``` 43 | npm install --save read-more-react 44 | ``` 45 | 46 | ```javascript 47 | import ReadMoreReact from 'read-more-react'; 48 | 49 | class DemoClass extends React.Component { 50 | 51 | render() { 52 | return ( 53 | 58 | ) 59 | } 60 | } 61 | ``` 62 | 63 | ### Without React 64 | The logic for truncation can all be found in the [trimText][trimtext] file under source/utils. The trimText function can be imported, and takes 4 parameters: text (required), min (default: 80), ideal (default: 100), max (default: 200) 65 | 66 | [trimtext]: https://github.com/alexandersmanning/read-more-react/blob/master/source/utils/trimText.js 67 | 68 | ```javascript 69 | import trimText from './source/utils/trimText.js'; 70 | 71 | let textArray = trimText("this is some text", 10, 20, 100); 72 | console.log(textArray[0]) //"this is some text"; 73 | console.log(textArray[1]) //"" 74 | ``` 75 | 76 | ## Future Steps 77 | 78 | ### More Intelligent Truncation 79 | My hope is to add more intelligent truncation through adding a weight to each punctuation mark based on average sentence breakdowns, to figure out when it is best to cut off a text block. A example of this would be giving more weight to a period than a comma, so that a period close to a comma (although further from the ideal), can become the cutoff point. 80 | 81 | 82 | -------------------------------------------------------------------------------- /demo/lib/addText.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | 3 | class AddText extends React.Component { 4 | constructor(props) { 5 | super(props); 6 | this.state = {text: "", min: 80, ideal: 100, max: 200, errors: ""}; 7 | this.updateField = this.updateField.bind(this); 8 | this.setDefaults = this.setDefaults.bind(this); 9 | this.checkErrors = this.checkErrors.bind(this); 10 | this.addText = this.addText.bind(this); 11 | } 12 | 13 | updateField(fieldName) { 14 | return e => this.setState({ 15 | [fieldName]: e.currentTarget.value 16 | }); 17 | } 18 | 19 | setDefaults() { 20 | this.setState({text: "", min: 80, ideal: 100, max: 200, errors: ""}); 21 | } 22 | 23 | handleSubmit(e) { 24 | e.preventDefault(); 25 | this.checkErrors(); 26 | } 27 | 28 | checkErrors() { 29 | if (parseInt(this.state.max) < parseInt(this.state.ideal) || 30 | parseInt(this.state.min) > parseInt(this.state.ideal) 31 | ) { 32 | this.setState({errors: "Please make sure the min is less than the ideal, and the ideal is less than the max"}) 33 | } 34 | else if (this.state.text.length === 0) { 35 | this.setState({errors: "You must enter some text"}); 36 | } else { this.addText() } 37 | } 38 | 39 | addText() { 40 | this.props.addToState({ 41 | text: this.state.text, 42 | max: parseInt(this.state.max), 43 | min: parseInt(this.state.min), 44 | ideal: parseInt(this.state.ideal) 45 | }); 46 | 47 | this.setDefaults(); 48 | } 49 | 50 | render() { 51 | return ( 52 |
54 |
{this.state.errors}
55 | 56 | 65 |
66 | 67 | 75 | 76 | 85 | 86 | 94 |
95 | 96 | 97 |
98 | ) 99 | } 100 | }; 101 | 102 | export default AddText; -------------------------------------------------------------------------------- /demo/lib/app.jsx: -------------------------------------------------------------------------------- 1 | import React from 'react'; 2 | import merge from 'lodash/merge'; 3 | import ReadMoreReact from '../../source/index.js'; 4 | import AddText from './addText'; 5 | 6 | class App extends React.Component { 7 | constructor(props) { 8 | super(props); 9 | this.state = {textGroup: []} 10 | this.setDefaults = this.setDefaults.bind(this); 11 | } 12 | 13 | setDefaults() { 14 | let exampleText = [ 15 | "This is a short sentence. Since it is shorter than the ideal length, it is not split up.", 16 | "This is an example of a longer sentence that needs to be split up, since it is over ideal length of 100 characters. When the sentence goes past the max allowed characters, the module will find the first punctuation character that is closest to the ideal length to cut it off.", 17 | "What I highly recommended is creating hobbies together and exploring new things together. When life becomes dull and has become a stalemate routine then this affects communication. Take a trip to the theaters for example. After the movie people usually proceed to have a discussion about it afterwards. Couples need to have new experiences and constantly push themselves out of that same day to day routine, or else that routine will slowly kill the relationship one step at a time.", 18 | "We shall not cease from exploration / And the end of all our exploring / Will be to arrive where we started / And know the place for the first time." , 19 | "It's like in the great stories, Mr. Frodo. The ones that really mattered. Full of darkness and danger they were. And sometimes you didn't want to know the end... because how could the end be happy? How could the world go back to the way it was when so much bad had happened? But in the end, it's only a passing thin... this shadow. Even darkness must pass.", 20 | "I decline to accept the end of man... I refuse to accept this. I believe that man will not merely endure: he will prevail. He is immortal, not because he alone among the creatures has an inexhaustible voice, but because he has a soul, a spirit capable of compassion and sacrifice and endurance. The poet's, the writer's, duty is to write about these things. It is his privilege to help man endure by lifting his heart, by reminding him of the courage and honor and hope and pride and compassion and pity and sacrifice which have been the glory of his past. The poet's voice need not merely be the record of man, it can be one of the props, the pillars to help him endure and prevail." 21 | ] 22 | 23 | let textGroup = exampleText.map(el => ( {text: el} )) 24 | this.setState({textGroup: textGroup}) 25 | } 26 | 27 | componentWillMount() { 28 | this.setDefaults(); 29 | } 30 | 31 | addToState(textSpec) { 32 | let textGroup = this.state.textGroup.concat(textSpec); 33 | this.setState({textGroup: textGroup}); 34 | } 35 | 36 | render() { 37 | let errorMessage = ""; 38 | let wordDisplay = this.state.textGroup.map((el, idx) => { 39 | return 43 | }); 44 | 45 | return ( 46 |
47 |

Read More + React

48 |
{errorMessage}
49 | 50 |
    51 | { 52 | wordDisplay 53 | } 54 |
55 |
56 | 57 | ); 58 | }; 59 | } 60 | 61 | export default App; -------------------------------------------------------------------------------- /demo.js: -------------------------------------------------------------------------------- 1 | !function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=270)}([function(e,t,n){"use strict";e.exports=function(e,t,n,r,o,i,a,s){if(!e){var u;if(void 0===t)u=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,r,o,i,a,s],l=0;(u=new Error(t.replace(/%s/g,(function(){return c[l++]})))).name="Invariant Violation"}throw u.framesToPop=1,u}}},function(e,t,n){"use strict";e.exports=n(14)},function(e,t,n){"use strict";var r=n(7);e.exports=r},function(e,t,n){"use strict";e.exports=function(e){for(var t=arguments.length-1,n="Minified React error #"+e+"; visit http://facebook.github.io/react/docs/error-decoder.html?invariant="+e,r=0;r1){for(var h=Array(d),m=0;m1){for(var y=Array(v),g=0;g]/,u=n(47)((function(e,t){if(e.namespaceURI!==i.svg||"innerHTML"in e)e.innerHTML=t;else{(r=r||document.createElement("div")).innerHTML=""+t+"";for(var n=r.firstChild;n.firstChild;)e.appendChild(n.firstChild)}}));if(o.canUseDOM){var c=document.createElement("div");c.innerHTML=" ",""===c.innerHTML&&(u=function(e,t){if(e.parentNode&&e.parentNode.replaceChild(e,e),a.test(t)||"<"===t[0]&&s.test(t)){e.innerHTML=String.fromCharCode(65279)+t;var n=e.firstChild;1===n.data.length?e.removeChild(n):n.deleteData(0,1)}else e.innerHTML=t}),c=null}e.exports=u},function(e,t,n){"use strict";var r=/["'&<>]/;e.exports=function(e){return"boolean"==typeof e||"number"==typeof e?""+e:function(e){var t,n=""+e,o=r.exec(n);if(!o)return n;var i="",a=0,s=0;for(a=o.index;a-1||r("96",e),!c.plugins[n]){t.extractEvents||r("97",e),c.plugins[n]=t;var a=t.eventTypes;for(var u in a)s(a[u],t,u)||r("98",u,e)}}}function s(e,t,n){c.eventNameDispatchConfigs.hasOwnProperty(n)&&r("99",n),c.eventNameDispatchConfigs[n]=e;var o=e.phasedRegistrationNames;if(o){for(var i in o){if(o.hasOwnProperty(i))u(o[i],t,n)}return!0}return!!e.registrationName&&(u(e.registrationName,t,n),!0)}function u(e,t,n){c.registrationNameModules[e]&&r("100",e),c.registrationNameModules[e]=t,c.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var c={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},possibleRegistrationNames:null,injectEventPluginOrder:function(e){o&&r("101"),o=Array.prototype.slice.call(e),a()},injectEventPluginsByName:function(e){var t=!1;for(var n in e)if(e.hasOwnProperty(n)){var o=e[n];i.hasOwnProperty(n)&&i[n]===o||(i[n]&&r("102",n),i[n]=o,t=!0)}t&&a()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return c.registrationNameModules[t.registrationName]||null;if(void 0!==t.phasedRegistrationNames){var n=t.phasedRegistrationNames;for(var r in n)if(n.hasOwnProperty(r)){var o=c.registrationNameModules[n[r]];if(o)return o}}return null},_resetEventPlugins:function(){for(var e in o=null,i)i.hasOwnProperty(e)&&delete i[e];c.plugins.length=0;var t=c.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=c.registrationNameModules;for(var a in r)r.hasOwnProperty(a)&&delete r[a]}};e.exports=c},function(e,t,n){"use strict";var r,o,i=n(3),a=n(41);n(0),n(2);function s(e,t,n,r){var o=e.type||"unknown-event";e.currentTarget=u.getNodeFromInstance(r),t?a.invokeGuardedCallbackWithCatch(o,n,e):a.invokeGuardedCallback(o,n,e),e.currentTarget=null}var u={isEndish:function(e){return"topMouseUp"===e||"topTouchEnd"===e||"topTouchCancel"===e},isMoveish:function(e){return"topMouseMove"===e||"topTouchMove"===e},isStartish:function(e){return"topMouseDown"===e||"topTouchStart"===e},executeDirectDispatch:function(e){var t=e._dispatchListeners,n=e._dispatchInstances;Array.isArray(t)&&i("103"),e.currentTarget=t?u.getNodeFromInstance(n):null;var r=t?t(e):null;return e.currentTarget=null,e._dispatchListeners=null,e._dispatchInstances=null,r},executeDispatchesInOrder:function(e,t){var n=e._dispatchListeners,r=e._dispatchInstances;if(Array.isArray(n))for(var o=0;o0&&r.length<20?n+" (keys: "+r.join(", ")+")":n}(e))}};e.exports=u},function(e,t,n){"use strict";n(4);var r=n(7),o=(n(2),r);e.exports=o},function(e,t,n){"use strict";e.exports=function(e){var t,n=e.keyCode;return"charCode"in e?0===(t=e.charCode)&&13===n&&(t=13):t=n,t>=32||13===t?t:0}},function(e,t,n){var r=n(214),o=n(221);e.exports=function(e,t){var n=o(e,t);return r(n)?n:void 0}},function(e,t,n){var r=n(36),o=n(13);e.exports=function(e){if(!o(e))return!1;var t=r(e);return"[object Function]"==t||"[object GeneratorFunction]"==t||"[object AsyncFunction]"==t||"[object Proxy]"==t}},function(e,t,n){var r=n(97);e.exports=function(e,t,n){"__proto__"==t&&r?r(e,t,{configurable:!0,enumerable:!0,value:n,writable:!0}):e[t]=n}},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},function(e,t,n){var r=n(57),o=n(102);e.exports=function(e){return null!=e&&o(e.length)&&!r(e)}},function(e,t,n){"use strict";var r=n(21),o=n(4),i=n(62),a=(n(63),n(27));n(0),n(111);function s(e,t,n){this.props=e,this.context=t,this.refs=a,this.updater=n||i}function u(e,t,n){this.props=e,this.context=t,this.refs=a,this.updater=n||i}function c(){}s.prototype.isReactComponent={},s.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e&&r("85"),this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t,"setState")},s.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e,"forceUpdate")},c.prototype=s.prototype,u.prototype=new c,u.prototype.constructor=u,o(u.prototype,s.prototype),u.prototype.isPureReactComponent=!0,e.exports={Component:s,PureComponent:u}},function(e,t,n){"use strict";n(2);var r={isMounted:function(e){return!1},enqueueCallback:function(e,t){},enqueueForceUpdate:function(e){},enqueueReplaceState:function(e,t){},enqueueSetState:function(e,t){}};e.exports=r},function(e,t,n){"use strict";e.exports=!1},function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;e.exports=r},function(e,t,n){"use strict";var r=n(119);e.exports=function(e){return r(e,!1)}},function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},function(e,t,n){"use strict";e.exports={hasCachedChildNodes:1}},function(e,t,n){"use strict";var r=n(3);n(0);e.exports=function(e,t){return null==t&&r("30"),null==e?t:Array.isArray(e)?Array.isArray(t)?(e.push.apply(e,t),e):(e.push(t),e):Array.isArray(t)?[e].concat(t):[e,t]}},function(e,t,n){"use strict";e.exports=function(e,t,n){Array.isArray(e)?e.forEach(t,n):e&&t.call(n,e)}},function(e,t,n){"use strict";var r=n(6),o=null;e.exports=function(){return!o&&r.canUseDOM&&(o="textContent"in document.documentElement?"textContent":"innerText"),o}},function(e,t,n){"use strict";var r=n(3);var o=n(12),i=(n(0),function(){function e(t){!function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this._callbacks=null,this._contexts=null,this._arg=t}return e.prototype.enqueue=function(e,t){this._callbacks=this._callbacks||[],this._callbacks.push(e),this._contexts=this._contexts||[],this._contexts.push(t)},e.prototype.notifyAll=function(){var e=this._callbacks,t=this._contexts,n=this._arg;if(e&&t){e.length!==t.length&&r("24"),this._callbacks=null,this._contexts=null;for(var o=0;o1)for(var n=1;n.":"function"==typeof t?" Instead of passing a class like Foo, pass React.createElement(Foo) or .":null!=t&&void 0!==t.props?" This may be caused by unintentionally loading two independent copies of React.":"");var i,s=a.createElement(I,{child:t});if(e){var u=f.get(e);i=u._processChildContext(u._context)}else i=y;var c=O(n);if(c){var l=c._currentElement.props.child;if(_(l,t)){var p=c._renderedComponent.getPublicInstance(),d=o&&function(){o.call(p)};return A._updateRootComponent(c,s,i,n,d),p}A.unmountComponentAtNode(n)}var h,v=w(n),g=v&&!(!(h=v).getAttribute||!h.getAttribute(C)),b=S(n),x=g&&!c&&!b,E=A._renderNewRootComponent(s,n,x,i)._renderedComponent.getPublicInstance();return o&&o.call(E),E},render:function(e,t,n){return A._renderSubtreeIntoContainer(null,e,t,n)},unmountComponentAtNode:function(e){N(e)||r("40");var t=O(e);if(!t){S(e),1===e.nodeType&&e.hasAttribute(x);return!1}return delete E[t._instance.rootID],v.batchedUpdates(P,t,e,!1),!0},_mountImageIntoNode:function(e,t,n,i,a){if(N(t)||r("41"),i){var s=w(t);if(d.canReuseMarkup(e,s))return void u.precacheNode(n,s);var c=s.getAttribute(d.CHECKSUM_ATTR_NAME);s.removeAttribute(d.CHECKSUM_ATTR_NAME);var l=s.outerHTML;s.setAttribute(d.CHECKSUM_ATTR_NAME,c);var p=e,f=function(e,t){for(var n=Math.min(e.length,t.length),r=0;r-1&&e%1==0&&e<=9007199254740991}},function(e,t,n){(function(e){var r=n(19),o=n(248),i=t&&!t.nodeType&&t,a=i&&"object"==typeof e&&e&&!e.nodeType&&e,s=a&&a.exports===i?r.Buffer:void 0,u=(s?s.isBuffer:void 0)||o;e.exports=u}).call(this,n(59)(e))},function(e,t,n){var r=n(250),o=n(251),i=n(252),a=i&&i.isTypedArray,s=a?o(a):r;e.exports=s},function(e,t){e.exports=function(e,t){if(("constructor"!==t||"function"!=typeof e[t])&&"__proto__"!=t)return e[t]}},function(e,t,n){var r=n(256),o=n(258),i=n(60);e.exports=function(e){return i(e)?r(e,!0):o(e)}},function(e,t){var n=/^(?:0|[1-9]\d*)$/;e.exports=function(e,t){var r=typeof e;return!!(t=null==t?9007199254740991:t)&&("number"==r||"symbol"!=r&&n.test(e))&&e>-1&&e%1==0&&e>";return new p("Invalid "+o+" `"+i+"` of type `"+function(e){if(!e.constructor||!e.constructor.name)return"<>";return e.constructor.name}(t[n])+"` supplied to `"+r+"`, expected instance of `"+a+"`.")}return null}))},node:f((function(e,t,n,r,o){return h(e[t])?null:new p("Invalid "+r+" `"+o+"` supplied to `"+n+"`, expected a ReactNode.")})),objectOf:function(e){return f((function(t,n,r,o,i){if("function"!=typeof e)return new p("Property `"+i+"` of component `"+r+"` has invalid PropType notation inside objectOf.");var a=t[n],u=m(a);if("object"!==u)return new p("Invalid "+o+" `"+i+"` of type `"+u+"` supplied to `"+r+"`, expected an object.");for(var c in a)if(a.hasOwnProperty(c)){var l=e(a,c,r,o,i+"."+c,s);if(l instanceof Error)return l}return null}))},oneOf:function(e){if(!Array.isArray(e))return r.thatReturnsNull;return f((function(t,n,r,o,i){for(var a=t[n],s=0;s>",c=c||i,l!==s)&&(t&&o(!1,"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"));return null==r[i]?n?null===r[i]?new p("The "+u+" `"+c+"` is marked as required in `"+a+"`, but its value is `null`."):new p("The "+u+" `"+c+"` is marked as required in `"+a+"`, but its value is `undefined`."):null:e(r,i,a,u,c)}var r=n.bind(null,!1);return r.isRequired=n.bind(null,!0),r}function d(e){return f((function(t,n,r,o,i,a){var s=t[n];return m(s)!==e?new p("Invalid "+o+" `"+i+"` of type `"+v(s)+"` supplied to `"+r+"`, expected `"+e+"`."):null}))}function h(t){switch(typeof t){case"number":case"string":case"undefined":return!0;case"boolean":return!t;case"object":if(Array.isArray(t))return t.every(h);if(null===t||e(t))return!0;var r=function(e){var t=e&&(n&&e[n]||e["@@iterator"]);if("function"==typeof t)return t}(t);if(!r)return!1;var o,i=r.call(t);if(r!==t.entries){for(;!(o=i.next()).done;)if(!h(o.value))return!1}else for(;!(o=i.next()).done;){var a=o.value;if(a&&!h(a[1]))return!1}return!0;default:return!1}}function m(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":function(e,t){return"symbol"===e||("Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol)}(t,e)?"symbol":t}function v(e){if(null==e)return""+e;var t=m(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function y(e){var t=v(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}return p.prototype=Error.prototype,c.checkPropTypes=u,c.PropTypes=c,c}},function(e,t,n){"use strict";e.exports=function(e,t,n,r,o){}},function(e,t,n){"use strict";e.exports="15.6.2"},function(e,t,n){"use strict";var r=n(61).Component,o=n(15).isValidElement,i=n(62),a=n(123);e.exports=a(r,o,i)},function(e,t,n){"use strict";var r=n(4),o=n(27),i=n(0);e.exports=function(e,t,n){var a=[],s={mixins:"DEFINE_MANY",statics:"DEFINE_MANY",propTypes:"DEFINE_MANY",contextTypes:"DEFINE_MANY",childContextTypes:"DEFINE_MANY",getDefaultProps:"DEFINE_MANY_MERGED",getInitialState:"DEFINE_MANY_MERGED",getChildContext:"DEFINE_MANY_MERGED",render:"DEFINE_ONCE",componentWillMount:"DEFINE_MANY",componentDidMount:"DEFINE_MANY",componentWillReceiveProps:"DEFINE_MANY",shouldComponentUpdate:"DEFINE_ONCE",componentWillUpdate:"DEFINE_MANY",componentDidUpdate:"DEFINE_MANY",componentWillUnmount:"DEFINE_MANY",UNSAFE_componentWillMount:"DEFINE_MANY",UNSAFE_componentWillReceiveProps:"DEFINE_MANY",UNSAFE_componentWillUpdate:"DEFINE_MANY",updateComponent:"OVERRIDE_BASE"},u={getDerivedStateFromProps:"DEFINE_MANY_MERGED"},c={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n8&&l<=11);var h=String.fromCharCode(32),m={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:["topBlur","topCompositionEnd","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:["topBlur","topCompositionStart","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:["topBlur","topCompositionUpdate","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]}},v=!1;function y(e,t){switch(e){case"topKeyUp":return-1!==u.indexOf(t.keyCode);case"topKeyDown":return 229!==t.keyCode;case"topKeyPress":case"topMouseDown":case"topBlur":return!0;default:return!1}}function g(e){var t=e.detail;return"object"==typeof t&&"data"in t?t.data:null}var b=null;function _(e,t,n,o){var s,u;if(c?s=function(e){switch(e){case"topCompositionStart":return m.compositionStart;case"topCompositionEnd":return m.compositionEnd;case"topCompositionUpdate":return m.compositionUpdate}}(e):b?y(e,n)&&(s=m.compositionEnd):function(e,t){return"topKeyDown"===e&&229===t.keyCode}(e,n)&&(s=m.compositionStart),!s)return null;d&&(b||s!==m.compositionStart?s===m.compositionEnd&&b&&(u=b.getData()):b=i.getPooled(o));var l=a.getPooled(s,t,n,o);if(u)l.data=u;else{var p=g(n);null!==p&&(l.data=p)}return r.accumulateTwoPhaseDispatches(l),l}function C(e,t,n,o){var a;if(!(a=f?function(e,t){switch(e){case"topCompositionEnd":return g(t);case"topKeyPress":return 32!==t.which?null:(v=!0,h);case"topTextInput":var n=t.data;return n===h&&v?null:n;default:return null}}(e,n):function(e,t){if(b){if("topCompositionEnd"===e||!c&&y(e,t)){var n=b.getData();return i.release(b),b=null,n}return null}switch(e){case"topPaste":return null;case"topKeyPress":return t.which&&!function(e){return(e.ctrlKey||e.altKey||e.metaKey)&&!(e.ctrlKey&&e.altKey)}(t)?String.fromCharCode(t.which):null;case"topCompositionEnd":return d?null:t.data;default:return null}}(e,n)))return null;var u=s.getPooled(m.beforeInput,t,n,o);return u.data=a,r.accumulateTwoPhaseDispatches(u),u}var x={eventTypes:m,extractEvents:function(e,t,n,r){return[_(e,t,n,r),C(e,t,n,r)]}};e.exports=x},function(e,t,n){"use strict";var r=n(4),o=n(12),i=n(70);function a(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}r(a.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[i()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,o=this.getText(),i=o.length;for(e=0;e1?1-t:void 0;return this._fallbackText=o.slice(e,s),this._fallbackText}}),o.addPoolingTo(a),e.exports=a},function(e,t,n){"use strict";var r=n(11);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{data:null}),e.exports=o},function(e,t,n){"use strict";var r=n(11);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{data:null}),e.exports=o},function(e,t,n){"use strict";var r=n(23),o=n(22),i=n(6),a=n(5),s=n(9),u=n(11),c=n(73),l=n(42),p=n(43),f=n(74),d={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:["topBlur","topChange","topClick","topFocus","topInput","topKeyDown","topKeyUp","topSelectionChange"]}};function h(e,t,n){var r=u.getPooled(d.change,e,t,n);return r.type="change",o.accumulateTwoPhaseDispatches(r),r}var m=null,v=null;var y=!1;function g(e){var t=h(v,e,l(e));s.batchedUpdates(b,t)}function b(e){r.enqueueEvents(e),r.processEventQueue(!1)}function _(){m&&(m.detachEvent("onchange",g),m=null,v=null)}function C(e,t){var n=c.updateValueIfChanged(e),r=!0===t.simulated&&M._allowSimulatedPassThrough;if(n||r)return e}function x(e,t){if("topChange"===e)return t}function E(e,t,n){"topFocus"===e?(_(),function(e,t){v=t,(m=e).attachEvent("onchange",g)}(t,n)):"topBlur"===e&&_()}i.canUseDOM&&(y=p("change")&&(!document.documentMode||document.documentMode>8));var w=!1;function T(){m&&(m.detachEvent("onpropertychange",k),m=null,v=null)}function k(e){"value"===e.propertyName&&C(v,e)&&g(e)}function P(e,t,n){"topFocus"===e?(T(),function(e,t){v=t,(m=e).attachEvent("onpropertychange",k)}(t,n)):"topBlur"===e&&T()}function S(e,t,n){if("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)return C(v,n)}function N(e,t,n){if("topClick"===e)return C(t,n)}function O(e,t,n){if("topInput"===e||"topChange"===e)return C(t,n)}i.canUseDOM&&(w=p("input")&&(!document.documentMode||document.documentMode>9));var M={eventTypes:d,_allowSimulatedPassThrough:!0,_isInputEventSupported:w,extractEvents:function(e,t,n,r){var o,i,s,u,c=t?a.getNodeFromInstance(t):window;if("select"===(u=(s=c).nodeName&&s.nodeName.toLowerCase())||"input"===u&&"file"===s.type?y?o=x:i=E:f(c)?w?o=O:(o=S,i=P):function(e){var t=e.nodeName;return t&&"input"===t.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}(c)&&(o=N),o){var l=o(e,t,n);if(l)return h(l,n,r)}i&&i(e,c,t),"topBlur"===e&&function(e,t){if(null!=e){var n=e._wrapperState||t._wrapperState;if(n&&n.controlled&&"number"===t.type){var r=""+t.value;t.getAttribute("value")!==r&&t.setAttribute("value",r)}}}(t,c)}};e.exports=M},function(e,t,n){"use strict";var r=n(134),o={};o.attachRefs=function(e,t){if(null!==t&&"object"==typeof t){var n=t.ref;null!=n&&function(e,t,n){"function"==typeof e?e(t.getPublicInstance()):r.addComponentAsRefTo(t,e,n)}(n,e,t._owner)}},o.shouldUpdateRefs=function(e,t){var n=null,r=null;null!==e&&"object"==typeof e&&(n=e.ref,r=e._owner);var o=null,i=null;return null!==t&&"object"==typeof t&&(o=t.ref,i=t._owner),n!==o||"string"==typeof o&&i!==r},o.detachRefs=function(e,t){if(null!==t&&"object"==typeof t){var n=t.ref;null!=n&&function(e,t,n){"function"==typeof e?e(null):r.removeComponentAsRefFrom(t,e,n)}(n,e,t._owner)}},e.exports=o},function(e,t,n){"use strict";var r=n(3);n(0);function o(e){return!(!e||"function"!=typeof e.attachRef||"function"!=typeof e.detachRef)}var i={addComponentAsRefTo:function(e,t,n){o(n)||r("119"),n.attachRef(t,e)},removeComponentAsRefFrom:function(e,t,n){o(n)||r("120");var i=n.getPublicInstance();i&&i.refs[t]===e.getPublicInstance()&&n.detachRef(t)}};e.exports=i},function(e,t,n){"use strict";e.exports=["ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin"]},function(e,t,n){"use strict";var r=n(22),o=n(5),i=n(29),a={mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},s={eventTypes:a,extractEvents:function(e,t,n,s){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement))return null;if("topMouseOut"!==e&&"topMouseOver"!==e)return null;var u,c,l;if(s.window===s)u=s;else{var p=s.ownerDocument;u=p?p.defaultView||p.parentWindow:window}if("topMouseOut"===e){c=t;var f=n.relatedTarget||n.toElement;l=f?o.getClosestInstanceFromNode(f):null}else c=null,l=t;if(c===l)return null;var d=null==c?u:o.getNodeFromInstance(c),h=null==l?u:o.getNodeFromInstance(l),m=i.getPooled(a.mouseLeave,c,n,s);m.type="mouseleave",m.target=d,m.relatedTarget=h;var v=i.getPooled(a.mouseEnter,l,n,s);return v.type="mouseenter",v.target=h,v.relatedTarget=d,r.accumulateEnterLeaveDispatches(m,v,c,l),[m,v]}};e.exports=s},function(e,t,n){"use strict";var r=n(16),o=r.injection.MUST_USE_PROPERTY,i=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,s=r.injection.HAS_POSITIVE_NUMERIC_VALUE,u=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,c={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:i,allowTransparency:0,alt:0,as:0,async:i,autoComplete:0,autoPlay:i,capture:i,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:o|i,cite:0,classID:0,className:0,cols:s,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:i,controlsList:0,coords:0,crossOrigin:0,data:0,dateTime:0,default:i,defer:i,dir:0,disabled:i,download:u,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:i,formTarget:0,frameBorder:0,headers:0,height:0,hidden:i,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:i,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:o|i,muted:o|i,name:0,nonce:0,noValidate:i,open:i,optimum:0,pattern:0,placeholder:0,playsInline:i,poster:0,preload:0,profile:0,radioGroup:0,readOnly:i,referrerPolicy:0,rel:0,required:i,reversed:i,role:0,rows:s,rowSpan:a,sandbox:0,scope:0,scoped:i,scrolling:0,seamless:i,selected:o|i,shape:0,size:s,sizes:0,span:s,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,typeof:0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:i,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{},DOMMutationMethods:{value:function(e,t){if(null==t)return e.removeAttribute("value");"number"!==e.type||!1===e.hasAttribute("value")?e.setAttribute("value",""+t):e.validity&&!e.validity.badInput&&e.ownerDocument.activeElement!==e&&e.setAttribute("value",""+t)}}};e.exports=c},function(e,t,n){"use strict";var r=n(45),o={processChildrenUpdates:n(143).dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};e.exports=o},function(e,t,n){"use strict";var r=n(3),o=n(18),i=n(6),a=n(140),s=n(7),u=(n(0),{dangerouslyReplaceNodeWithMarkup:function(e,t){if(i.canUseDOM||r("56"),t||r("57"),"HTML"===e.nodeName&&r("58"),"string"==typeof t){var n=a(t,s)[0];e.parentNode.replaceChild(n,e)}else o.replaceChildWithTree(e,t)}});e.exports=u},function(e,t,n){"use strict";var r=n(6),o=n(141),i=n(142),a=n(0),s=r.canUseDOM?document.createElement("div"):null,u=/^\s*<(\w+)/;e.exports=function(e,t){var n=s;s||a(!1);var r=function(e){var t=e.match(u);return t&&t[1].toLowerCase()}(e),c=r&&i(r);if(c){n.innerHTML=c[1]+e+c[2];for(var l=c[0];l--;)n=n.lastChild}else n.innerHTML=e;var p=n.getElementsByTagName("script");p.length&&(t||a(!1),o(p).forEach(t));for(var f=Array.from(n.childNodes);n.lastChild;)n.removeChild(n.lastChild);return f}},function(e,t,n){"use strict";var r=n(0);e.exports=function(e){return function(e){return!!e&&("object"==typeof e||"function"==typeof e)&&"length"in e&&!("setInterval"in e)&&"number"!=typeof e.nodeType&&(Array.isArray(e)||"callee"in e||"item"in e)}(e)?Array.isArray(e)?e.slice():function(e){var t=e.length;if((Array.isArray(e)||"object"!=typeof e&&"function"!=typeof e)&&r(!1),"number"!=typeof t&&r(!1),0===t||t-1 in e||r(!1),"function"==typeof e.callee&&r(!1),e.hasOwnProperty)try{return Array.prototype.slice.call(e)}catch(e){}for(var n=Array(t),o=0;o',""],u=[1,"","
"],c=[3,"","
"],l=[1,'',""],p={"*":[1,"?
","
"],area:[1,"",""],col:[2,"","
"],legend:[1,"
","
"],param:[1,"",""],tr:[2,"","
"],optgroup:s,option:s,caption:u,colgroup:u,tbody:u,tfoot:u,thead:u,td:c,th:c};["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"].forEach((function(e){p[e]=l,a[e]=!0})),e.exports=function(e){return i||o(!1),p.hasOwnProperty(e)||(e="*"),a.hasOwnProperty(e)||(i.innerHTML="*"===e?"":"<"+e+">",a[e]=!i.firstChild),a[e]?p[e]:null}},function(e,t,n){"use strict";var r=n(45),o=n(5),i={dangerouslyProcessChildrenUpdates:function(e,t){var n=o.getNodeFromInstance(e);r.processUpdates(n,t)}};e.exports=i},function(e,t,n){"use strict";var r=n(3),o=n(4),i=n(145),a=n(146),s=n(18),u=n(46),c=n(16),l=n(79),p=n(23),f=n(39),d=n(32),h=n(67),m=n(5),v=n(156),y=n(158),g=n(80),b=n(159),_=(n(8),n(160)),C=n(167),x=(n(7),n(31)),E=(n(0),n(43),n(50),n(73)),w=(n(54),n(2),h),T=p.deleteListener,k=m.getNodeFromInstance,P=d.listenTo,S=f.registrationNameModules,N={string:!0,number:!0},O={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null};function M(e,t){t&&(H[e._tag]&&(null!=t.children||null!=t.dangerouslySetInnerHTML)&&r("137",e._tag,e._currentElement._owner?" Check the render method of "+e._currentElement._owner.getName()+".":""),null!=t.dangerouslySetInnerHTML&&(null!=t.children&&r("60"),"object"==typeof t.dangerouslySetInnerHTML&&"__html"in t.dangerouslySetInnerHTML||r("61")),null!=t.style&&"object"!=typeof t.style&&r("62",function(e){if(e){var t=e._currentElement._owner||null;if(t){var n=t.getName();if(n)return" This DOM node was rendered by `"+n+"`."}}return""}(e)))}function I(e,t,n,r){if(!(r instanceof C)){0;var o=e._hostContainerInfo,i=o._node&&11===o._node.nodeType?o._node:o._ownerDocument;P(t,i),r.getReactMountReady().enqueue(A,{inst:e,registrationName:t,listener:n})}}function A(){p.putListener(this.inst,this.registrationName,this.listener)}function R(){v.postMountWrapper(this)}function D(){b.postMountWrapper(this)}function j(){y.postMountWrapper(this)}var U={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"};function L(){E.track(this)}function F(){this._rootNodeID||r("63");var e=k(this);switch(e||r("64"),this._tag){case"iframe":case"object":this._wrapperState.listeners=[d.trapBubbledEvent("topLoad","load",e)];break;case"video":case"audio":for(var t in this._wrapperState.listeners=[],U)U.hasOwnProperty(t)&&this._wrapperState.listeners.push(d.trapBubbledEvent(t,U[t],e));break;case"source":this._wrapperState.listeners=[d.trapBubbledEvent("topError","error",e)];break;case"img":this._wrapperState.listeners=[d.trapBubbledEvent("topError","error",e),d.trapBubbledEvent("topLoad","load",e)];break;case"form":this._wrapperState.listeners=[d.trapBubbledEvent("topReset","reset",e),d.trapBubbledEvent("topSubmit","submit",e)];break;case"input":case"select":case"textarea":this._wrapperState.listeners=[d.trapBubbledEvent("topInvalid","invalid",e)]}}function V(){g.postUpdateWrapper(this)}var B={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},W={listing:!0,pre:!0,textarea:!0},H=o({menuitem:!0},B),q=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,z={},K={}.hasOwnProperty;function Y(e,t){return e.indexOf("-")>=0||null!=t.is}var G=1;function X(e){var t=e.type;!function(e){K.call(z,e)||(q.test(e)||r("65",e),z[e]=!0)}(t),this._currentElement=e,this._tag=t.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}X.displayName="ReactDOMComponent",X.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=G++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var o,a,c,p=this._currentElement.props;switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":this._wrapperState={listeners:null},e.getReactMountReady().enqueue(F,this);break;case"input":v.mountWrapper(this,p,t),p=v.getHostProps(this,p),e.getReactMountReady().enqueue(L,this),e.getReactMountReady().enqueue(F,this);break;case"option":y.mountWrapper(this,p,t),p=y.getHostProps(this,p);break;case"select":g.mountWrapper(this,p,t),p=g.getHostProps(this,p),e.getReactMountReady().enqueue(F,this);break;case"textarea":b.mountWrapper(this,p,t),p=b.getHostProps(this,p),e.getReactMountReady().enqueue(L,this),e.getReactMountReady().enqueue(F,this)}if(M(this,p),null!=t?(o=t._namespaceURI,a=t._tag):n._tag&&(o=n._namespaceURI,a=n._tag),(null==o||o===u.svg&&"foreignobject"===a)&&(o=u.html),o===u.html&&("svg"===this._tag?o=u.svg:"math"===this._tag&&(o=u.mathml)),this._namespaceURI=o,e.useCreateElement){var f,d=n._ownerDocument;if(o===u.html)if("script"===this._tag){var h=d.createElement("div"),_=this._currentElement.type;h.innerHTML="<"+_+">",f=h.removeChild(h.firstChild)}else f=p.is?d.createElement(this._currentElement.type,p.is):d.createElement(this._currentElement.type);else f=d.createElementNS(o,this._currentElement.type);m.precacheNode(this,f),this._flags|=w.hasCachedChildNodes,this._hostParent||l.setAttributeForRoot(f),this._updateDOMProperties(null,p,e);var C=s(f);this._createInitialChildren(e,p,r,C),c=C}else{var x=this._createOpenTagMarkupAndPutListeners(e,p),E=this._createContentMarkup(e,p,r);c=!E&&B[this._tag]?x+"/>":x+">"+E+""}switch(this._tag){case"input":e.getReactMountReady().enqueue(R,this),p.autoFocus&&e.getReactMountReady().enqueue(i.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(D,this),p.autoFocus&&e.getReactMountReady().enqueue(i.focusDOMComponent,this);break;case"select":case"button":p.autoFocus&&e.getReactMountReady().enqueue(i.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(j,this)}return c},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var i=t[r];if(null!=i)if(S.hasOwnProperty(r))i&&I(this,r,i,e);else{"style"===r&&(i&&(i=this._previousStyleCopy=o({},t.style)),i=a.createMarkupForStyles(i,this));var s=null;null!=this._tag&&Y(this._tag,t)?O.hasOwnProperty(r)||(s=l.createMarkupForCustomAttribute(r,i)):s=l.createMarkupForProperty(r,i),s&&(n+=" "+s)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+l.createMarkupForRoot()),n+=" "+l.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var i=N[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)r=x(i);else if(null!=a){r=this.mountChildren(a,e,n).join("")}}return W[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&s.queueHTML(r,o.__html);else{var i=N[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)""!==i&&s.queueText(r,i);else if(null!=a)for(var u=this.mountChildren(a,e,n),c=0;c0;)e=e._hostParent,n--;for(;i-n>0;)t=t._hostParent,i--;for(var s=n;s--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}e.exports={isAncestor:function(e,t){"_hostNode"in e||r("35"),"_hostNode"in t||r("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1},getLowestCommonAncestor:o,getParentInstance:function(e){return"_hostNode"in e||r("36"),e._hostParent},traverseTwoPhase:function(e,t,n){for(var r,o=[];e;)o.push(e),e=e._hostParent;for(r=o.length;r-- >0;)t(o[r],"captured",n);for(r=0;r0;)n(c[u],"captured",i)}}},function(e,t,n){"use strict";var r=n(3),o=n(4),i=n(45),a=n(18),s=n(5),u=n(31),c=(n(0),n(54),function(e){this._currentElement=e,this._stringText=""+e,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});o(c.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++,i=" react-text: "+o+" ";if(this._domID=o,this._hostParent=t,e.useCreateElement){var c=n._ownerDocument,l=c.createComment(i),p=c.createComment(" /react-text "),f=a(c.createDocumentFragment());return a.queueChild(f,a(l)),this._stringText&&a.queueChild(f,a(c.createTextNode(this._stringText))),a.queueChild(f,a(p)),s.precacheNode(this,l),this._closingComment=p,f}var d=u(this._stringText);return e.renderToStaticMarkup?d:"\x3c!--"+i+"--\x3e"+d+"\x3c!-- /react-text --\x3e"},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();i.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=s.getNodeFromInstance(this).nextSibling;;){if(null==t&&r("67",this._domID),8===t.nodeType&&" /react-text "===t.nodeValue){this._closingComment=t;break}t=t.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,s.uncacheNode(this)}}),e.exports=c},function(e,t,n){"use strict";var r=n(4),o=n(9),i=n(28),a=n(7),s={initialize:a,close:function(){p.isBatchingUpdates=!1}},u=[{initialize:a,close:o.flushBatchedUpdates.bind(o)},s];function c(){this.reinitializeTransaction()}r(c.prototype,i,{getTransactionWrappers:function(){return u}});var l=new c,p={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,i){var a=p.isBatchingUpdates;return p.isBatchingUpdates=!0,a?e(t,n,r,o,i):l.perform(e,null,t,n,r,o,i)}};e.exports=p},function(e,t,n){"use strict";var r=n(4),o=n(88),i=n(6),a=n(12),s=n(5),u=n(9),c=n(42),l=n(174);function p(e){for(;e._hostParent;)e=e._hostParent;var t=s.getNodeFromInstance(e).parentNode;return s.getClosestInstanceFromNode(t)}function f(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function d(e){var t=c(e.nativeEvent),n=s.getClosestInstanceFromNode(t),r=n;do{e.ancestors.push(r),r=r&&p(r)}while(r);for(var o=0;ot.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}:function(e,t){if(window.getSelection){var n=window.getSelection(),r=e[i()].length,a=Math.min(t.start,r),s=void 0===t.end?a:Math.min(t.end,r);if(!n.extend&&a>s){var u=s;s=a,a=u}var c=o(e,a),l=o(e,s);if(c&&l){var p=document.createRange();p.setStart(c.node,c.offset),n.removeAllRanges(),a>s?(n.addRange(p),n.extend(l.node,l.offset)):(p.setEnd(l.node,l.offset),n.addRange(p))}}}};e.exports=u},function(e,t,n){"use strict";function r(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function o(e){for(;e;){if(e.nextSibling)return e.nextSibling;e=e.parentNode}}e.exports=function(e,t){for(var n=r(e),i=0,a=0;n;){if(3===n.nodeType){if(a=i+n.textContent.length,i<=t&&a>=t)return{node:n,offset:t-i};i=a}n=r(o(n))}}},function(e,t,n){"use strict";var r=n(180);e.exports=function e(t,n){return!(!t||!n)&&(t===n||!r(t)&&(r(n)?e(t,n.parentNode):"contains"in t?t.contains(n):!!t.compareDocumentPosition&&!!(16&t.compareDocumentPosition(n))))}},function(e,t,n){"use strict";var r=n(181);e.exports=function(e){return r(e)&&3==e.nodeType}},function(e,t,n){"use strict";e.exports=function(e){var t=(e?e.ownerDocument||e:document).defaultView||window;return!(!e||!("function"==typeof t.Node?e instanceof t.Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}},function(e,t,n){"use strict";var r="http://www.w3.org/1999/xlink",o="http://www.w3.org/XML/1998/namespace",i={accentHeight:"accent-height",accumulate:0,additive:0,alignmentBaseline:"alignment-baseline",allowReorder:"allowReorder",alphabetic:0,amplitude:0,arabicForm:"arabic-form",ascent:0,attributeName:"attributeName",attributeType:"attributeType",autoReverse:"autoReverse",azimuth:0,baseFrequency:"baseFrequency",baseProfile:"baseProfile",baselineShift:"baseline-shift",bbox:0,begin:0,bias:0,by:0,calcMode:"calcMode",capHeight:"cap-height",clip:0,clipPath:"clip-path",clipRule:"clip-rule",clipPathUnits:"clipPathUnits",colorInterpolation:"color-interpolation",colorInterpolationFilters:"color-interpolation-filters",colorProfile:"color-profile",colorRendering:"color-rendering",contentScriptType:"contentScriptType",contentStyleType:"contentStyleType",cursor:0,cx:0,cy:0,d:0,decelerate:0,descent:0,diffuseConstant:"diffuseConstant",direction:0,display:0,divisor:0,dominantBaseline:"dominant-baseline",dur:0,dx:0,dy:0,edgeMode:"edgeMode",elevation:0,enableBackground:"enable-background",end:0,exponent:0,externalResourcesRequired:"externalResourcesRequired",fill:0,fillOpacity:"fill-opacity",fillRule:"fill-rule",filter:0,filterRes:"filterRes",filterUnits:"filterUnits",floodColor:"flood-color",floodOpacity:"flood-opacity",focusable:0,fontFamily:"font-family",fontSize:"font-size",fontSizeAdjust:"font-size-adjust",fontStretch:"font-stretch",fontStyle:"font-style",fontVariant:"font-variant",fontWeight:"font-weight",format:0,from:0,fx:0,fy:0,g1:0,g2:0,glyphName:"glyph-name",glyphOrientationHorizontal:"glyph-orientation-horizontal",glyphOrientationVertical:"glyph-orientation-vertical",glyphRef:"glyphRef",gradientTransform:"gradientTransform",gradientUnits:"gradientUnits",hanging:0,horizAdvX:"horiz-adv-x",horizOriginX:"horiz-origin-x",ideographic:0,imageRendering:"image-rendering",in:0,in2:0,intercept:0,k:0,k1:0,k2:0,k3:0,k4:0,kernelMatrix:"kernelMatrix",kernelUnitLength:"kernelUnitLength",kerning:0,keyPoints:"keyPoints",keySplines:"keySplines",keyTimes:"keyTimes",lengthAdjust:"lengthAdjust",letterSpacing:"letter-spacing",lightingColor:"lighting-color",limitingConeAngle:"limitingConeAngle",local:0,markerEnd:"marker-end",markerMid:"marker-mid",markerStart:"marker-start",markerHeight:"markerHeight",markerUnits:"markerUnits",markerWidth:"markerWidth",mask:0,maskContentUnits:"maskContentUnits",maskUnits:"maskUnits",mathematical:0,mode:0,numOctaves:"numOctaves",offset:0,opacity:0,operator:0,order:0,orient:0,orientation:0,origin:0,overflow:0,overlinePosition:"overline-position",overlineThickness:"overline-thickness",paintOrder:"paint-order",panose1:"panose-1",pathLength:"pathLength",patternContentUnits:"patternContentUnits",patternTransform:"patternTransform",patternUnits:"patternUnits",pointerEvents:"pointer-events",points:0,pointsAtX:"pointsAtX",pointsAtY:"pointsAtY",pointsAtZ:"pointsAtZ",preserveAlpha:"preserveAlpha",preserveAspectRatio:"preserveAspectRatio",primitiveUnits:"primitiveUnits",r:0,radius:0,refX:"refX",refY:"refY",renderingIntent:"rendering-intent",repeatCount:"repeatCount",repeatDur:"repeatDur",requiredExtensions:"requiredExtensions",requiredFeatures:"requiredFeatures",restart:0,result:0,rotate:0,rx:0,ry:0,scale:0,seed:0,shapeRendering:"shape-rendering",slope:0,spacing:0,specularConstant:"specularConstant",specularExponent:"specularExponent",speed:0,spreadMethod:"spreadMethod",startOffset:"startOffset",stdDeviation:"stdDeviation",stemh:0,stemv:0,stitchTiles:"stitchTiles",stopColor:"stop-color",stopOpacity:"stop-opacity",strikethroughPosition:"strikethrough-position",strikethroughThickness:"strikethrough-thickness",string:0,stroke:0,strokeDasharray:"stroke-dasharray",strokeDashoffset:"stroke-dashoffset",strokeLinecap:"stroke-linecap",strokeLinejoin:"stroke-linejoin",strokeMiterlimit:"stroke-miterlimit",strokeOpacity:"stroke-opacity",strokeWidth:"stroke-width",surfaceScale:"surfaceScale",systemLanguage:"systemLanguage",tableValues:"tableValues",targetX:"targetX",targetY:"targetY",textAnchor:"text-anchor",textDecoration:"text-decoration",textRendering:"text-rendering",textLength:"textLength",to:0,transform:0,u1:0,u2:0,underlinePosition:"underline-position",underlineThickness:"underline-thickness",unicode:0,unicodeBidi:"unicode-bidi",unicodeRange:"unicode-range",unitsPerEm:"units-per-em",vAlphabetic:"v-alphabetic",vHanging:"v-hanging",vIdeographic:"v-ideographic",vMathematical:"v-mathematical",values:0,vectorEffect:"vector-effect",version:0,vertAdvY:"vert-adv-y",vertOriginX:"vert-origin-x",vertOriginY:"vert-origin-y",viewBox:"viewBox",viewTarget:"viewTarget",visibility:0,widths:0,wordSpacing:"word-spacing",writingMode:"writing-mode",x:0,xHeight:"x-height",x1:0,x2:0,xChannelSelector:"xChannelSelector",xlinkActuate:"xlink:actuate",xlinkArcrole:"xlink:arcrole",xlinkHref:"xlink:href",xlinkRole:"xlink:role",xlinkShow:"xlink:show",xlinkTitle:"xlink:title",xlinkType:"xlink:type",xmlBase:"xml:base",xmlns:0,xmlnsXlink:"xmlns:xlink",xmlLang:"xml:lang",xmlSpace:"xml:space",y:0,y1:0,y2:0,yChannelSelector:"yChannelSelector",z:0,zoomAndPan:"zoomAndPan"},a={Properties:{},DOMAttributeNamespaces:{xlinkActuate:r,xlinkArcrole:r,xlinkHref:r,xlinkRole:r,xlinkShow:r,xlinkTitle:r,xlinkType:r,xmlBase:o,xmlLang:o,xmlSpace:o},DOMAttributeNames:{}};Object.keys(i).forEach((function(e){a.Properties[e]=0,i[e]&&(a.DOMAttributeNames[e]=i[e])})),e.exports=a},function(e,t,n){"use strict";var r=n(22),o=n(6),i=n(5),a=n(89),s=n(11),u=n(90),c=n(74),l=n(50),p=o.canUseDOM&&"documentMode"in document&&document.documentMode<=11,f={select:{phasedRegistrationNames:{bubbled:"onSelect",captured:"onSelectCapture"},dependencies:["topBlur","topContextMenu","topFocus","topKeyDown","topKeyUp","topMouseDown","topMouseUp","topSelectionChange"]}},d=null,h=null,m=null,v=!1,y=!1;function g(e,t){if(v||null==d||d!==u())return null;var n=function(e){if("selectionStart"in e&&a.hasSelectionCapabilities(e))return{start:e.selectionStart,end:e.selectionEnd};if(window.getSelection){var t=window.getSelection();return{anchorNode:t.anchorNode,anchorOffset:t.anchorOffset,focusNode:t.focusNode,focusOffset:t.focusOffset}}if(document.selection){var n=document.selection.createRange();return{parentElement:n.parentElement(),text:n.text,top:n.boundingTop,left:n.boundingLeft}}}(d);if(!m||!l(m,n)){m=n;var o=s.getPooled(f.select,h,e,t);return o.type="select",o.target=d,r.accumulateTwoPhaseDispatches(o),o}return null}var b={eventTypes:f,extractEvents:function(e,t,n,r){if(!y)return null;var o=t?i.getNodeFromInstance(t):window;switch(e){case"topFocus":(c(o)||"true"===o.contentEditable)&&(d=o,h=t,m=null);break;case"topBlur":d=null,h=null,m=null;break;case"topMouseDown":v=!0;break;case"topContextMenu":case"topMouseUp":return v=!1,g(n,r);case"topSelectionChange":if(p)break;case"topKeyDown":case"topKeyUp":return g(n,r)}return null},didPutListener:function(e,t,n){"onSelect"===t&&(y=!0)}};e.exports=b},function(e,t,n){"use strict";var r=n(3),o=n(88),i=n(22),a=n(5),s=n(185),u=n(186),c=n(11),l=n(187),p=n(188),f=n(29),d=n(190),h=n(191),m=n(192),v=n(24),y=n(193),g=n(7),b=n(55),_=(n(0),{}),C={};["abort","animationEnd","animationIteration","animationStart","blur","canPlay","canPlayThrough","click","contextMenu","copy","cut","doubleClick","drag","dragEnd","dragEnter","dragExit","dragLeave","dragOver","dragStart","drop","durationChange","emptied","encrypted","ended","error","focus","input","invalid","keyDown","keyPress","keyUp","load","loadedData","loadedMetadata","loadStart","mouseDown","mouseMove","mouseOut","mouseOver","mouseUp","paste","pause","play","playing","progress","rateChange","reset","scroll","seeked","seeking","stalled","submit","suspend","timeUpdate","touchCancel","touchEnd","touchMove","touchStart","transitionEnd","volumeChange","waiting","wheel"].forEach((function(e){var t=e[0].toUpperCase()+e.slice(1),n="on"+t,r="top"+t,o={phasedRegistrationNames:{bubbled:n,captured:n+"Capture"},dependencies:[r]};_[e]=o,C[r]=o}));var x={};function E(e){return"."+e._rootNodeID}function w(e){return"button"===e||"input"===e||"select"===e||"textarea"===e}var T={eventTypes:_,extractEvents:function(e,t,n,o){var a,g=C[e];if(!g)return null;switch(e){case"topAbort":case"topCanPlay":case"topCanPlayThrough":case"topDurationChange":case"topEmptied":case"topEncrypted":case"topEnded":case"topError":case"topInput":case"topInvalid":case"topLoad":case"topLoadedData":case"topLoadedMetadata":case"topLoadStart":case"topPause":case"topPlay":case"topPlaying":case"topProgress":case"topRateChange":case"topReset":case"topSeeked":case"topSeeking":case"topStalled":case"topSubmit":case"topSuspend":case"topTimeUpdate":case"topVolumeChange":case"topWaiting":a=c;break;case"topKeyPress":if(0===b(n))return null;case"topKeyDown":case"topKeyUp":a=p;break;case"topBlur":case"topFocus":a=l;break;case"topClick":if(2===n.button)return null;case"topDoubleClick":case"topMouseDown":case"topMouseMove":case"topMouseUp":case"topMouseOut":case"topMouseOver":case"topContextMenu":a=f;break;case"topDrag":case"topDragEnd":case"topDragEnter":case"topDragExit":case"topDragLeave":case"topDragOver":case"topDragStart":case"topDrop":a=d;break;case"topTouchCancel":case"topTouchEnd":case"topTouchMove":case"topTouchStart":a=h;break;case"topAnimationEnd":case"topAnimationIteration":case"topAnimationStart":a=s;break;case"topTransitionEnd":a=m;break;case"topScroll":a=v;break;case"topWheel":a=y;break;case"topCopy":case"topCut":case"topPaste":a=u}a||r("86",e);var _=a.getPooled(g,t,n,o);return i.accumulateTwoPhaseDispatches(_),_},didPutListener:function(e,t,n){if("onClick"===t&&!w(e._tag)){var r=E(e),i=a.getNodeFromInstance(e);x[r]||(x[r]=o.listen(i,"click",g))}},willDeleteListener:function(e,t){if("onClick"===t&&!w(e._tag)){var n=E(e);x[n].remove(),delete x[n]}}};e.exports=T},function(e,t,n){"use strict";var r=n(11);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{animationName:null,elapsedTime:null,pseudoElement:null}),e.exports=o},function(e,t,n){"use strict";var r=n(11),o={clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}};function i(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(i,o),e.exports=i},function(e,t,n){"use strict";var r=n(24);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{relatedTarget:null}),e.exports=o},function(e,t,n){"use strict";var r=n(24),o=n(55),i={key:n(189),location:null,ctrlKey:null,shiftKey:null,altKey:null,metaKey:null,repeat:null,locale:null,getModifierState:n(44),charCode:function(e){return"keypress"===e.type?o(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?o(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}};function a(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(a,i),e.exports=a},function(e,t,n){"use strict";var r=n(55),o={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},i={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"};e.exports=function(e){if(e.key){var t=o[e.key]||e.key;if("Unidentified"!==t)return t}if("keypress"===e.type){var n=r(e);return 13===n?"Enter":String.fromCharCode(n)}return"keydown"===e.type||"keyup"===e.type?i[e.keyCode]||"Unidentified":""}},function(e,t,n){"use strict";var r=n(29);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{dataTransfer:null}),e.exports=o},function(e,t,n){"use strict";var r=n(24),o={touches:null,targetTouches:null,changedTouches:null,altKey:null,metaKey:null,ctrlKey:null,shiftKey:null,getModifierState:n(44)};function i(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(i,o),e.exports=i},function(e,t,n){"use strict";var r=n(11);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{propertyName:null,elapsedTime:null,pseudoElement:null}),e.exports=o},function(e,t,n){"use strict";var r=n(29);function o(e,t,n,o){return r.call(this,e,t,n,o)}r.augmentClass(o,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:null,deltaMode:null}),e.exports=o},function(e,t,n){"use strict";n(54);e.exports=function(e,t){return{_topLevelWrapper:e,_idCounter:1,_ownerDocument:t?9===t.nodeType?t:t.ownerDocument:null,_node:t,_tag:t?t.nodeName.toLowerCase():null,_namespaceURI:t?t.namespaceURI:null}}},function(e,t,n){"use strict";e.exports={useCreateElement:!0,useFiber:!1}},function(e,t,n){"use strict";var r=n(197),o=/\/?>/,i=/^<\!\-\-/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return i.test(e)?e:e.replace(o," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);return n=n&&parseInt(n,10),r(e)===n}};e.exports=a},function(e,t,n){"use strict";e.exports=function(e){for(var t=1,n=0,r=0,o=e.length,i=-4&o;r-1}},function(e,t,n){var r=n(34);e.exports=function(e,t){var n=this.__data__,o=r(n,e);return o<0?(++this.size,n.push([e,t])):n[o][1]=t,this}},function(e,t,n){var r=n(33);e.exports=function(){this.__data__=new r,this.size=0}},function(e,t){e.exports=function(e){var t=this.__data__,n=t.delete(e);return this.size=t.size,n}},function(e,t){e.exports=function(e){return this.__data__.get(e)}},function(e,t){e.exports=function(e){return this.__data__.has(e)}},function(e,t,n){var r=n(33),o=n(93),i=n(222);e.exports=function(e,t){var n=this.__data__;if(n instanceof r){var a=n.__data__;if(!o||a.length<199)return a.push([e,t]),this.size=++n.size,this;n=this.__data__=new i(a)}return n.set(e,t),this.size=n.size,this}},function(e,t,n){var r=n(57),o=n(218),i=n(13),a=n(220),s=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,l=u.toString,p=c.hasOwnProperty,f=RegExp("^"+l.call(p).replace(/[\\^$.*+?()[\]{}|]/g,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");e.exports=function(e){return!(!i(e)||o(e))&&(r(e)?f:s).test(a(e))}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){var r=n(94),o=Object.prototype,i=o.hasOwnProperty,a=o.toString,s=r?r.toStringTag:void 0;e.exports=function(e){var t=i.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(e){}var o=a.call(e);return r&&(t?e[s]=n:delete e[s]),o}},function(e,t){var n=Object.prototype.toString;e.exports=function(e){return n.call(e)}},function(e,t,n){var r,o=n(219),i=(r=/[^.]+$/.exec(o&&o.keys&&o.keys.IE_PROTO||""))?"Symbol(src)_1."+r:"";e.exports=function(e){return!!i&&i in e}},function(e,t,n){var r=n(19)["__core-js_shared__"];e.exports=r},function(e,t){var n=Function.prototype.toString;e.exports=function(e){if(null!=e){try{return n.call(e)}catch(e){}try{return e+""}catch(e){}}return""}},function(e,t){e.exports=function(e,t){return null==e?void 0:e[t]}},function(e,t,n){var r=n(223),o=n(230),i=n(232),a=n(233),s=n(234);function u(e){var t=-1,n=null==e?0:e.length;for(this.clear();++t1?n[i-1]:void 0,s=i>2?n[2]:void 0;for(a=e.length>3&&"function"==typeof a?(i--,a):void 0,s&&o(n[0],n[1],s)&&(a=i<3?void 0:a,i=1),t=Object(t);++r0){if(++t>=800)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}},function(e,t,n){var r=n(35),o=n(60),i=n(107),a=n(13);e.exports=function(e,t,n){if(!a(n))return!1;var s=typeof t;return!!("number"==s?o(n)&&i(t,n.length):"string"==s&&t in n)&&r(n[t],e)}},function(e,t,n){"use strict";var r=n(7),o=n(0),i=n(66);e.exports=function(){function e(e,t,n,r,a,s){s!==i&&o(!1,"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")}function t(){return e}e.isRequired=e;var n={array:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t};return n.checkPropTypes=r,n.PropTypes=n,n}},function(e,t,n){"use strict";n.r(t);var r=n(1),o=n.n(r),i=n(109),a=n.n(i),s=(n(201),n(110)),u=n.n(s);function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function l(e,t){for(var n=0;nparseInt(this.state.ideal)?this.setState({errors:"Please make sure the min is less than the ideal, and the ideal is less than the max"}):0===this.state.text.length?this.setState({errors:"You must enter some text"}):this.addText()}},{key:"addText",value:function(){this.props.addToState({text:this.state.text,max:parseInt(this.state.max),min:parseInt(this.state.min),ideal:parseInt(this.state.ideal)}),this.setDefaults()}},{key:"render",value:function(){return o.a.createElement("form",{onSubmit:this.handleSubmit,className:"add-text-form"},o.a.createElement("div",{className:"error-messages"},this.state.errors),o.a.createElement("label",{htmlFor:"truncate-text",hidden:!0},"Text to Truncate"),o.a.createElement("textarea",{className:"text-box",id:"truncate-text",rows:"8",cols:"50",placeholder:"enter text here",value:this.state.text,onChange:this.updateField("text")}),o.a.createElement("div",{className:"number-container"},o.a.createElement("label",{htmlFor:"truncate-min"},"Minimum:"),o.a.createElement("input",{className:"number-box",id:"truncate-min",type:"number",value:this.state.min,max:this.state.ideal,onChange:this.updateField("min")}),o.a.createElement("label",{htmlFor:"truncate-ideal"},"Ideal:"),o.a.createElement("input",{className:"number-box",id:"truncate-ideal",type:"number",value:this.state.ideal,min:this.state.min,max:this.state.max,onChange:this.updateField("ideal")}),o.a.createElement("label",{htmlFor:"truncate-max"},"Maximum:"),o.a.createElement("input",{className:"number-box",id:"truncate-max",type:"number",value:this.state.max,min:this.state.ideal,onChange:this.updateField("max")})),o.a.createElement("button",{onClick:this.handleSubmit.bind(this)},"add text"))}}])&&l(n.prototype,r),i&&l(n,i),t}(o.a.Component);function m(e){return(m="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function v(e,t){for(var n=0;nr&&function(e,t){if(s.indexOf(t[e])>=0&&u(t[e+1]))return!0}(e,t))return!0},l=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:80,n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:100,r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:200;if(rr||nt;){if(c(a,e,r,t)){i=a+1;break}if(c(s,e,r,t)){i=s+1;break}l(a),l(s),a++,s--}return void 0===i&&(i=o&&o>=t&&o<=r?o:n-t