react 15.5.4 → 15.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (61) hide show
  1. package/LICENSE +16 -26
  2. package/dist/react-with-addons.js +1647 -1416
  3. package/dist/react-with-addons.min.js +6 -8
  4. package/dist/react.js +1737 -1456
  5. package/dist/react.min.js +5 -7
  6. package/lib/KeyEscapeUtils.js +3 -5
  7. package/lib/LinkedStateMixin.js +3 -5
  8. package/lib/PooledClass.js +3 -5
  9. package/lib/React.js +48 -22
  10. package/lib/ReactAddonsDOMDependencies.js +3 -5
  11. package/lib/ReactAddonsDOMDependenciesUMDShim.js +3 -5
  12. package/lib/{ReactComponent.js → ReactBaseClasses.js} +32 -9
  13. package/lib/ReactCSSTransitionGroup.js +4 -6
  14. package/lib/ReactCSSTransitionGroupChild.js +3 -5
  15. package/lib/ReactChildren.js +3 -5
  16. package/lib/ReactComponentTreeDevtool.js +3 -5
  17. package/lib/ReactComponentTreeHook.js +52 -9
  18. package/lib/ReactComponentTreeHookUMDShim.js +3 -5
  19. package/lib/ReactComponentWithPureRenderMixin.js +3 -5
  20. package/lib/ReactCurrentOwner.js +3 -7
  21. package/lib/ReactCurrentOwnerUMDShim.js +3 -5
  22. package/lib/ReactDOMFactories.js +3 -6
  23. package/lib/ReactElement.js +3 -5
  24. package/lib/ReactElementSymbol.js +3 -5
  25. package/lib/ReactElementType.js +3 -5
  26. package/lib/ReactElementValidator.js +9 -9
  27. package/lib/ReactFragment.js +3 -5
  28. package/lib/ReactLink.js +4 -27
  29. package/lib/ReactNoopUpdateQueue.js +3 -6
  30. package/lib/ReactPropTypeLocationNames.js +3 -5
  31. package/lib/ReactPropTypeLocations.js +3 -5
  32. package/lib/ReactPropTypes.js +3 -5
  33. package/lib/ReactPropTypesSecret.js +3 -5
  34. package/lib/ReactStateSetters.js +3 -5
  35. package/lib/ReactTransitionChildMapping.js +3 -5
  36. package/lib/ReactTransitionEvents.js +3 -5
  37. package/lib/ReactTransitionGroup.js +7 -6
  38. package/lib/ReactUMDEntry.js +3 -5
  39. package/lib/ReactUMDShim.js +3 -5
  40. package/lib/ReactVersion.js +4 -6
  41. package/lib/ReactWithAddons.js +3 -5
  42. package/lib/ReactWithAddonsUMDEntry.js +3 -5
  43. package/lib/canDefineProperty.js +3 -5
  44. package/lib/checkReactTypeSpec.js +3 -5
  45. package/lib/createClass.js +20 -0
  46. package/lib/deprecated.js +6 -8
  47. package/lib/flattenChildren.js +3 -5
  48. package/lib/getIteratorFn.js +3 -5
  49. package/lib/getNextDebugID.js +3 -5
  50. package/lib/getNextDebugIDUMDShim.js +3 -5
  51. package/lib/lowPriorityWarning.js +62 -0
  52. package/lib/onlyChild.js +3 -5
  53. package/lib/reactProdInvariant.js +2 -4
  54. package/lib/shallowCompare.js +3 -5
  55. package/lib/sliceChildren.js +3 -5
  56. package/lib/traverseAllChildren.js +4 -6
  57. package/lib/update.js +3 -5
  58. package/package.json +4 -4
  59. package/PATENTS +0 -33
  60. package/lib/ReactClass.js +0 -722
  61. package/lib/ReactPureComponent.js +0 -41
@@ -1,13 +1,11 @@
1
1
  /**
2
- * React (with addons) v15.5.4
2
+ * React (with addons) v15.6.2
3
3
  *
4
- * Copyright 2013-present, Facebook, Inc.
5
- * All rights reserved.
4
+ * Copyright (c) 2013-present, Facebook, Inc.
6
5
  *
7
- * This source code is licensed under the BSD-style license found in the
8
- * LICENSE file in the root directory of this source tree. An additional grant
9
- * of patent rights can be found in the PATENTS file in the same directory.
6
+ * This source code is licensed under the MIT license found in the
7
+ * LICENSE file in the root directory of this source tree.
10
8
  *
11
9
  */
12
- !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.React=e()}}(function(){return function e(t,n,r){function o(a,s){if(!n[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(i)return i(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var p=n[a]={exports:{}};t[a][0].call(p.exports,function(e){var n=t[a][1][e];return o(n||e)},p,p.exports,e,t,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t,n){"use strict";function r(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}function o(e){if(s[e])return s[e];if(!a[e])return e;var t=a[e];for(var n in t)if(t.hasOwnProperty(n)&&n in u)return s[e]=t[n];return""}var i=e(39),a={animationend:r("Animation","AnimationEnd"),animationiteration:r("Animation","AnimationIteration"),animationstart:r("Animation","AnimationStart"),transitionend:r("Transition","TransitionEnd")},s={},u={};i.canUseDOM&&(u=document.createElement("div").style,"AnimationEvent"in window||(delete a.animationend.animation,delete a.animationiteration.animation,delete a.animationstart.animation),"TransitionEvent"in window||delete a.transitionend.transition),t.exports=o},{39:39}],2:[function(e,t,n){"use strict";function r(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})}function o(e){var t={"=0":"=","=2":":"};return(""+("."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1))).replace(/(=0|=2)/g,function(e){return t[e]})}var i={escape:r,unescape:o};t.exports=i},{}],3:[function(e,t,n){"use strict";var r=e(18),o=e(23),i={linkState:function(e){return new r(this.state[e],o.createStateKeySetter(this,e))}};t.exports=i},{18:18,23:23}],4:[function(e,t,n){"use strict";var r=e(34),o=(e(42),function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)}),i=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},a=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},s=function(e,t,n,r){var o=this;if(o.instancePool.length){var i=o.instancePool.pop();return o.call(i,e,t,n,r),i}return new o(e,t,n,r)},u=function(e){var t=this;e instanceof t||r("25"),e.destructor(),t.instancePool.length<t.poolSize&&t.instancePool.push(e)},c=o,p=function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||c,n.poolSize||(n.poolSize=10),n.release=u,n},l={addPoolingTo:p,oneArgumentPooler:o,twoArgumentPooler:i,threeArgumentPooler:a,fourArgumentPooler:s};t.exports=l},{34:34,42:42}],5:[function(e,t,n){"use strict";var r=e(45),o=e(9),i=e(11),a=e(22),s=e(10),u=e(14),c=e(15),p=e(21),l=e(27),f=e(33),d=(e(44),c.createElement),h=c.createFactory,y=c.cloneElement,v=r,m={Children:{map:o.map,forEach:o.forEach,count:o.count,toArray:o.toArray,only:f},Component:i,PureComponent:a,createElement:d,cloneElement:y,isValidElement:c.isValidElement,PropTypes:p,createClass:s.createClass,createFactory:h,createMixin:function(e){return e},DOM:u,version:l,__spread:v};t.exports=m},{10:10,11:11,14:14,15:15,21:21,22:22,27:27,33:33,44:44,45:45,9:9}],6:[function(e,t,n){"use strict";function r(){if(!o){var t=e(29);o=t.__SECRET_INJECTED_REACT_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED}return o}var o;n.getReactDOM=r},{29:29}],7:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function a(e){var t="transition"+e+"Timeout",n="transition"+e;return function(e){if(e[n]){if(null==e[t])return new Error(t+" wasn't supplied to ReactCSSTransitionGroup: this can cause unreliable animations and won't be supported in a future version of React. See https://fb.me/react-animation-transition-group-timeout for more information.");if("number"!=typeof e[t])return new Error(t+" must be a number (in milliseconds)")}}}var s=e(45),u=e(5),c=e(47),p=c(u.isValidElement),l=e(26),f=e(8),d=function(e){function t(){var n,i,a;r(this,t);for(var s=arguments.length,c=Array(s),p=0;p<s;p++)c[p]=arguments[p];return n=i=o(this,e.call.apply(e,[this].concat(c))),i._wrapChild=function(e){return u.createElement(f,{name:i.props.transitionName,appear:i.props.transitionAppear,enter:i.props.transitionEnter,leave:i.props.transitionLeave,appearTimeout:i.props.transitionAppearTimeout,enterTimeout:i.props.transitionEnterTimeout,leaveTimeout:i.props.transitionLeaveTimeout},e)},a=n,o(i,a)}return i(t,e),t.prototype.render=function(){return u.createElement(l,s({},this.props,{childFactory:this._wrapChild}))},t}(u.Component);d.displayName="ReactCSSTransitionGroup",d.propTypes={transitionName:f.propTypes.name,transitionAppear:p.bool,transitionEnter:p.bool,transitionLeave:p.bool,transitionAppearTimeout:a("Appear"),transitionEnterTimeout:a("Enter"),transitionLeaveTimeout:a("Leave")},d.defaultProps={transitionAppear:!1,transitionEnter:!0,transitionLeave:!0},t.exports=d},{26:26,45:45,47:47,5:5,8:8}],8:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var a=e(5),s=e(6),u=e(47),c=u(a.isValidElement),p=e(38),l=e(25),f=e(33),d=17,h=function(e){function t(){var n,i,a;r(this,t);for(var u=arguments.length,c=Array(u),f=0;f<u;f++)c[f]=arguments[f];return n=i=o(this,e.call.apply(e,[this].concat(c))),i._isMounted=!1,i.transition=function(e,t,n){var r=s.getReactDOM().findDOMNode(i);if(!r)return void(t&&t());var o=i.props.name[e]||i.props.name+"-"+e,a=i.props.name[e+"Active"]||o+"-active",u=null,c=function(e){e&&e.target!==r||(clearTimeout(u),p.removeClass(r,o),p.removeClass(r,a),l.removeEndEventListener(r,c),t&&t())};p.addClass(r,o),i.queueClassAndNode(a,r),n?(u=setTimeout(c,n),i.transitionTimeouts.push(u)):l.addEndEventListener(r,c)},i.queueClassAndNode=function(e,t){i.classNameAndNodeQueue.push({className:e,node:t}),i.timeout||(i.timeout=setTimeout(i.flushClassNameAndNodeQueue,d))},i.flushClassNameAndNodeQueue=function(){i._isMounted&&i.classNameAndNodeQueue.forEach(function(e){p.addClass(e.node,e.className)}),i.classNameAndNodeQueue.length=0,i.timeout=null},i.componentWillAppear=function(e){i.props.appear?i.transition("appear",e,i.props.appearTimeout):e()},i.componentWillEnter=function(e){i.props.enter?i.transition("enter",e,i.props.enterTimeout):e()},i.componentWillLeave=function(e){i.props.leave?i.transition("leave",e,i.props.leaveTimeout):e()},a=n,o(i,a)}return i(t,e),t.prototype.componentWillMount=function(){this.classNameAndNodeQueue=[],this.transitionTimeouts=[]},t.prototype.componentDidMount=function(){this._isMounted=!0},t.prototype.componentWillUnmount=function(){this._isMounted=!1,this.timeout&&clearTimeout(this.timeout),this.transitionTimeouts.forEach(function(e){clearTimeout(e)}),this.classNameAndNodeQueue.length=0},t.prototype.render=function(){return f(this.props.children)},t}(a.Component);h.propTypes={name:c.oneOfType([c.string,c.shape({enter:c.string,leave:c.string,active:c.string}),c.shape({enter:c.string,enterActive:c.string,leave:c.string,leaveActive:c.string,appear:c.string,appearActive:c.string})]).isRequired,appear:c.bool,enter:c.bool,leave:c.bool,appearTimeout:c.number,enterTimeout:c.number,leaveTimeout:c.number},t.exports=h},{25:25,33:33,38:38,47:47,5:5,6:6}],9:[function(e,t,n){"use strict";function r(e){return(""+e).replace(b,"$&/")}function o(e,t){this.func=e,this.context=t,this.count=0}function i(e,t,n){var r=e.func,o=e.context;r.call(o,t,e.count++)}function a(e,t,n){if(null==e)return e;var r=o.getPooled(t,n);m(e,i,r),o.release(r)}function s(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function u(e,t,n){var o=e.result,i=e.keyPrefix,a=e.func,s=e.context,u=a.call(s,t,e.count++);Array.isArray(u)?c(u,o,n,v.thatReturnsArgument):null!=u&&(y.isValidElement(u)&&(u=y.cloneAndReplaceKey(u,i+(!u.key||t&&t.key===u.key?"":r(u.key)+"/")+n)),o.push(u))}function c(e,t,n,o,i){var a="";null!=n&&(a=r(n)+"/");var c=s.getPooled(t,a,o,i);m(e,u,c),s.release(c)}function p(e,t,n){if(null==e)return e;var r=[];return c(e,r,null,t,n),r}function l(e,t,n){return null}function f(e,t){return m(e,l,null)}function d(e){var t=[];return c(e,t,null,v.thatReturnsArgument),t}var h=e(4),y=e(15),v=e(40),m=e(36),E=h.twoArgumentPooler,g=h.fourArgumentPooler,b=/\/+/g;o.prototype.destructor=function(){this.func=null,this.context=null,this.count=0},h.addPoolingTo(o,E),s.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},h.addPoolingTo(s,g);var _={forEach:a,map:p,mapIntoWithKeyPrefixInternal:c,count:f,toArray:d};t.exports=_},{15:15,36:36,4:4,40:40}],10:[function(e,t,n){"use strict";function r(e){return e}function o(e,t){var n=b.hasOwnProperty(t)?b[t]:null;w.hasOwnProperty(t)&&"OVERRIDE_BASE"!==n&&f("73",t),e&&"DEFINE_MANY"!==n&&"DEFINE_MANY_MERGED"!==n&&f("74",t)}function i(e,t){if(t){"function"==typeof t&&f("75"),y.isValidElement(t)&&f("76");var n=e.prototype,r=n.__reactAutoBindPairs;t.hasOwnProperty(E)&&_.mixins(e,t.mixins);for(var i in t)if(t.hasOwnProperty(i)&&i!==E){var a=t[i],s=n.hasOwnProperty(i);if(o(s,i),_.hasOwnProperty(i))_[i](e,a);else{var p=b.hasOwnProperty(i),l="function"==typeof a,d=l&&!p&&!s&&!1!==t.autobind;if(d)r.push(i,a),n[i]=a;else if(s){var h=b[i];(!p||"DEFINE_MANY_MERGED"!==h&&"DEFINE_MANY"!==h)&&f("77",h,i),"DEFINE_MANY_MERGED"===h?n[i]=u(n[i],a):"DEFINE_MANY"===h&&(n[i]=c(n[i],a))}else n[i]=a}}}}function a(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in _;o&&f("78",n);var i=n in e;i&&f("79",n),e[n]=r}}}function s(e,t){e&&t&&"object"==typeof e&&"object"==typeof t||f("80");for(var n in t)t.hasOwnProperty(n)&&(void 0!==e[n]&&f("81",n),e[n]=t[n]);return e}function u(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return s(o,n),s(o,r),o}}function c(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function p(e,t){return t.bind(e)}function l(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var r=t[n],o=t[n+1];e[r]=p(e,o)}}var f=e(34),d=e(45),h=e(11),y=e(15),v=(e(20),e(19)),m=e(41),E=(e(42),e(44),"mixins"),g=[],b={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",updateComponent:"OVERRIDE_BASE"},_={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)i(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=d({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=d({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=u(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=d({},e.propTypes,t)},statics:function(e,t){a(e,t)},autobind:function(){}},w={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e),t&&this.updater.enqueueCallback(this,t,"replaceState")},isMounted:function(){return this.updater.isMounted(this)}},A=function(){};d(A.prototype,h.prototype,w);var T={createClass:function(e){var t=r(function(e,n,r){this.__reactAutoBindPairs.length&&l(this),this.props=e,this.context=n,this.refs=m,this.updater=r||v,this.state=null;var o=this.getInitialState?this.getInitialState():null;("object"!=typeof o||Array.isArray(o))&&f("82",t.displayName||"ReactCompositeComponent"),this.state=o});t.prototype=new A,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],g.forEach(i.bind(null,t)),i(t,e),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),t.prototype.render||f("83");for(var n in b)t.prototype[n]||(t.prototype[n]=null);return t},injection:{injectMixin:function(e){g.push(e)}}};t.exports=T},{11:11,15:15,19:19,20:20,34:34,41:41,42:42,44:44,45:45}],11:[function(e,t,n){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=a,this.updater=n||i}var o=e(34),i=e(19),a=(e(30),e(41));e(42),e(44);r.prototype.isReactComponent={},r.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e&&o("85"),this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t,"setState")},r.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e,"forceUpdate")};t.exports=r},{19:19,30:30,34:34,41:41,42:42,44:44}],12:[function(e,t,n){"use strict";var r=e(35),o={shouldComponentUpdate:function(e,t){return r(this,e,t)}};t.exports=o},{35:35}],13:[function(e,t,n){"use strict";var r={current:null};t.exports=r},{}],14:[function(e,t,n){"use strict";var r=e(15),o=r.createFactory,i={a:o("a"),abbr:o("abbr"),address:o("address"),area:o("area"),article:o("article"),aside:o("aside"),audio:o("audio"),b:o("b"),base:o("base"),bdi:o("bdi"),bdo:o("bdo"),big:o("big"),blockquote:o("blockquote"),body:o("body"),br:o("br"),button:o("button"),canvas:o("canvas"),caption:o("caption"),cite:o("cite"),code:o("code"),col:o("col"),colgroup:o("colgroup"),data:o("data"),datalist:o("datalist"),dd:o("dd"),del:o("del"),details:o("details"),dfn:o("dfn"),dialog:o("dialog"),div:o("div"),dl:o("dl"),dt:o("dt"),em:o("em"),embed:o("embed"),fieldset:o("fieldset"),figcaption:o("figcaption"),figure:o("figure"),footer:o("footer"),form:o("form"),h1:o("h1"),h2:o("h2"),h3:o("h3"),h4:o("h4"),h5:o("h5"),h6:o("h6"),head:o("head"),header:o("header"),hgroup:o("hgroup"),hr:o("hr"),html:o("html"),i:o("i"),iframe:o("iframe"),img:o("img"),input:o("input"),ins:o("ins"),kbd:o("kbd"),keygen:o("keygen"),label:o("label"),legend:o("legend"),li:o("li"),link:o("link"),main:o("main"),map:o("map"),mark:o("mark"),menu:o("menu"),menuitem:o("menuitem"),meta:o("meta"),meter:o("meter"),nav:o("nav"),noscript:o("noscript"),object:o("object"),ol:o("ol"),optgroup:o("optgroup"),option:o("option"),output:o("output"),p:o("p"),param:o("param"),picture:o("picture"),pre:o("pre"),progress:o("progress"),q:o("q"),rp:o("rp"),rt:o("rt"),ruby:o("ruby"),s:o("s"),samp:o("samp"),script:o("script"),section:o("section"),select:o("select"),small:o("small"),source:o("source"),span:o("span"),strong:o("strong"),style:o("style"),sub:o("sub"),summary:o("summary"),sup:o("sup"),table:o("table"),tbody:o("tbody"),td:o("td"),textarea:o("textarea"),tfoot:o("tfoot"),th:o("th"),thead:o("thead"),time:o("time"),title:o("title"),tr:o("tr"),track:o("track"),u:o("u"),ul:o("ul"),var:o("var"),video:o("video"),wbr:o("wbr"),circle:o("circle"),clipPath:o("clipPath"),defs:o("defs"),ellipse:o("ellipse"),g:o("g"),image:o("image"),line:o("line"),linearGradient:o("linearGradient"),mask:o("mask"),path:o("path"),pattern:o("pattern"),polygon:o("polygon"),polyline:o("polyline"),radialGradient:o("radialGradient"),rect:o("rect"),stop:o("stop"),svg:o("svg"),text:o("text"),tspan:o("tspan")};t.exports=i},{15:15}],15:[function(e,t,n){"use strict";function r(e){return void 0!==e.ref}function o(e){return void 0!==e.key}var i=e(45),a=e(13),s=(e(44),e(30),Object.prototype.hasOwnProperty),u=e(16),c={key:!0,ref:!0,__self:!0,__source:!0},p=function(e,t,n,r,o,i,a){return{$$typeof:u,type:e,key:t,ref:n,props:a,_owner:i}};p.createElement=function(e,t,n){var i,u={},l=null,f=null;if(null!=t){r(t)&&(f=t.ref),o(t)&&(l=""+t.key),void 0===t.__self?null:t.__self,void 0===t.__source?null:t.__source;for(i in t)s.call(t,i)&&!c.hasOwnProperty(i)&&(u[i]=t[i])}var d=arguments.length-2;if(1===d)u.children=n;else if(d>1){for(var h=Array(d),y=0;y<d;y++)h[y]=arguments[y+2];u.children=h}if(e&&e.defaultProps){var v=e.defaultProps;for(i in v)void 0===u[i]&&(u[i]=v[i])}return p(e,l,f,0,0,a.current,u)},p.createFactory=function(e){var t=p.createElement.bind(null,e);return t.type=e,t},p.cloneAndReplaceKey=function(e,t){return p(e.type,t,e.ref,e._self,e._source,e._owner,e.props)},p.cloneElement=function(e,t,n){var u,l=i({},e.props),f=e.key,d=e.ref,h=(e._self,e._source,e._owner);if(null!=t){r(t)&&(d=t.ref,h=a.current),o(t)&&(f=""+t.key);var y;e.type&&e.type.defaultProps&&(y=e.type.defaultProps);for(u in t)s.call(t,u)&&!c.hasOwnProperty(u)&&(void 0===t[u]&&void 0!==y?l[u]=y[u]:l[u]=t[u])}var v=arguments.length-2;if(1===v)l.children=n;else if(v>1){for(var m=Array(v),E=0;E<v;E++)m[E]=arguments[E+2];l.children=m}return p(e.type,f,d,0,0,h,l)},p.isValidElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===u},t.exports=p},{13:13,16:16,30:30,44:44,45:45}],16:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;t.exports=r},{}],17:[function(e,t,n){"use strict";var r=e(34),o=e(9),i=e(15),a=e(40),s=(e(42),e(44),{create:function(e){if("object"!=typeof e||!e||Array.isArray(e))return e;if(i.isValidElement(e))return e;1===e.nodeType&&r("0");var t=[];for(var n in e)o.mapIntoWithKeyPrefixInternal(e[n],t,n,a.thatReturnsArgument);return t}});t.exports=s},{15:15,34:34,40:40,42:42,44:44,9:9}],18:[function(e,t,n){"use strict";function r(e,t){this.value=e,this.requestChange=t}function o(e){var t={value:void 0===e?i.PropTypes.any.isRequired:e.isRequired,requestChange:i.PropTypes.func.isRequired};return i.PropTypes.shape(t)}var i=e(5);r.PropTypes={link:o},t.exports=r},{5:5}],19:[function(e,t,n){"use strict";var r=(e(44),{isMounted:function(e){return!1},enqueueCallback:function(e,t){},enqueueForceUpdate:function(e){},enqueueReplaceState:function(e,t){},enqueueSetState:function(e,t){}});t.exports=r},{44:44}],20:[function(e,t,n){"use strict";var r={};t.exports=r},{}],21:[function(e,t,n){"use strict";var r=e(15),o=r.isValidElement,i=e(47);t.exports=i(o)},{15:15,47:47}],22:[function(e,t,n){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=u,this.updater=n||s}function o(){}var i=e(45),a=e(11),s=e(19),u=e(41);o.prototype=a.prototype,r.prototype=new o,r.prototype.constructor=r,i(r.prototype,a.prototype),r.prototype.isPureReactComponent=!0,t.exports=r},{11:11,19:19,41:41,45:45}],23:[function(e,t,n){"use strict";function r(e,t){var n={};return function(r){n[t]=r,e.setState(n)}}var o={createStateSetter:function(e,t){return function(n,r,o,i,a,s){var u=t.call(e,n,r,o,i,a,s);u&&e.setState(u)}},createStateKeySetter:function(e,t){var n=e.__keySetters||(e.__keySetters={});return n[t]||(n[t]=r(e,t))}};o.Mixin={createStateSetter:function(e){return o.createStateSetter(this,e)},createStateKeySetter:function(e){return o.createStateKeySetter(this,e)}},t.exports=o},{}],24:[function(e,t,n){"use strict";var r=e(31),o={getChildMapping:function(e,t){return e?r(e):e},mergeChildMappings:function(e,t){function n(n){return t.hasOwnProperty(n)?t[n]:e[n]}e=e||{},t=t||{};var r={},o=[];for(var i in e)t.hasOwnProperty(i)?o.length&&(r[i]=o,o=[]):o.push(i);var a,s={};for(var u in t){if(r.hasOwnProperty(u))for(a=0;a<r[u].length;a++){var c=r[u][a];s[r[u][a]]=n(c)}s[u]=n(u)}for(a=0;a<o.length;a++)s[o[a]]=n(o[a]);return s}};t.exports=o},{31:31}],25:[function(e,t,n){"use strict";function r(e,t,n){e.addEventListener(t,n,!1)}function o(e,t,n){e.removeEventListener(t,n,!1)}var i=e(39),a=e(1),s=[];i.canUseDOM&&function(){var e=a("animationend"),t=a("transitionend");e&&s.push(e),t&&s.push(t)}();var u={addEndEventListener:function(e,t){if(0===s.length)return void window.setTimeout(t,0);s.forEach(function(n){r(e,n,t)})},removeEndEventListener:function(e,t){0!==s.length&&s.forEach(function(n){o(e,n,t)})}};t.exports=u},{1:1,39:39}],26:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var a=e(45),s=e(5),u=e(24),c=e(47),p=c(s.isValidElement),l=e(40),f=function(e){function t(){var n,i,s;r(this,t);for(var c=arguments.length,p=Array(c),l=0;l<c;l++)p[l]=arguments[l];return n=i=o(this,e.call.apply(e,[this].concat(p))),i.state={children:u.getChildMapping(i.props.children)},i.performAppear=function(e){i.currentlyTransitioningKeys[e]=!0;var t=i.refs[e];t.componentWillAppear?t.componentWillAppear(i._handleDoneAppearing.bind(i,e)):i._handleDoneAppearing(e)},i._handleDoneAppearing=function(e){var t=i.refs[e];t.componentDidAppear&&t.componentDidAppear(),delete i.currentlyTransitioningKeys[e];var n=u.getChildMapping(i.props.children);n&&n.hasOwnProperty(e)||i.performLeave(e)},i.performEnter=function(e){i.currentlyTransitioningKeys[e]=!0;var t=i.refs[e];t.componentWillEnter?t.componentWillEnter(i._handleDoneEntering.bind(i,e)):i._handleDoneEntering(e)},i._handleDoneEntering=function(e){var t=i.refs[e];t.componentDidEnter&&t.componentDidEnter(),delete i.currentlyTransitioningKeys[e];var n=u.getChildMapping(i.props.children);n&&n.hasOwnProperty(e)||i.performLeave(e)},i.performLeave=function(e){i.currentlyTransitioningKeys[e]=!0;var t=i.refs[e];t.componentWillLeave?t.componentWillLeave(i._handleDoneLeaving.bind(i,e)):i._handleDoneLeaving(e)},i._handleDoneLeaving=function(e){var t=i.refs[e];t.componentDidLeave&&t.componentDidLeave(),delete i.currentlyTransitioningKeys[e];var n=u.getChildMapping(i.props.children);n&&n.hasOwnProperty(e)?i.performEnter(e):i.setState(function(t){var n=a({},t.children);return delete n[e],{children:n}})},s=n,o(i,s)}return i(t,e),t.prototype.componentWillMount=function(){this.currentlyTransitioningKeys={},this.keysToEnter=[],this.keysToLeave=[]},t.prototype.componentDidMount=function(){var e=this.state.children;for(var t in e)e[t]&&this.performAppear(t)},t.prototype.componentWillReceiveProps=function(e){var t=u.getChildMapping(e.children),n=this.state.children;this.setState({children:u.mergeChildMappings(n,t)});var r;for(r in t){var o=n&&n.hasOwnProperty(r);!t[r]||o||this.currentlyTransitioningKeys[r]||this.keysToEnter.push(r)}for(r in n){var i=t&&t.hasOwnProperty(r);!n[r]||i||this.currentlyTransitioningKeys[r]||this.keysToLeave.push(r)}},t.prototype.componentDidUpdate=function(){var e=this.keysToEnter;this.keysToEnter=[],e.forEach(this.performEnter);var t=this.keysToLeave;this.keysToLeave=[],t.forEach(this.performLeave)},t.prototype.render=function(){var e=[];for(var t in this.state.children){var n=this.state.children[t];n&&e.push(s.cloneElement(this.props.childFactory(n),{ref:t,key:t}))}var r=a({},this.props);return delete r.transitionLeave,delete r.transitionName,delete r.transitionAppear,delete r.transitionEnter,delete r.childFactory,delete r.transitionLeaveTimeout,delete r.transitionEnterTimeout,delete r.transitionAppearTimeout,delete r.component,s.createElement(this.props.component,r,e)},t}(s.Component);f.displayName="ReactTransitionGroup",f.propTypes={component:p.any,childFactory:p.func},f.defaultProps={component:"span",childFactory:l.thatReturnsArgument},t.exports=f},{24:24,40:40,45:45,47:47,5:5}],27:[function(e,t,n){"use strict";t.exports="15.5.4"},{}],28:[function(e,t,n){"use strict";var r=e(3),o=e(5),i=(e(6),e(12)),a=e(7),s=e(17),u=e(26),c=e(35),p=e(37);o.addons={CSSTransitionGroup:a,LinkedStateMixin:r,PureRenderMixin:i,TransitionGroup:u,createFragment:s.create,shallowCompare:c,update:p},t.exports=o},{12:12,17:17,26:26,3:3,35:35,37:37,5:5,6:6,7:7}],29:[function(e,t,n){"use strict";var r=e(45),o=e(28),i=r(o,{__SECRET_INJECTED_REACT_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:null,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:e(13)}});t.exports=i},{13:13,28:28,45:45}],30:[function(e,t,n){"use strict";t.exports=!1},{}],31:[function(e,t,n){(function(n){"use strict";function r(e,t,n,r){if(e&&"object"==typeof e){var o=e;void 0===o[n]&&null!=t&&(o[n]=t)}}function o(e,t){if(null==e)return e;var n={};return i(e,r,n),n}var i=(e(2),e(36));e(44);void 0!==n&&n.env,t.exports=o}).call(this,void 0)},{2:2,36:36,44:44}],32:[function(e,t,n){"use strict";function r(e){var t=e&&(o&&e[o]||e[i]);if("function"==typeof t)return t}var o="function"==typeof Symbol&&Symbol.iterator,i="@@iterator";t.exports=r},{}],33:[function(e,t,n){"use strict";function r(e){return i.isValidElement(e)||o("143"),e}var o=e(34),i=e(15);e(42);t.exports=r},{15:15,34:34,42:42}],34:[function(e,t,n){"use strict";function r(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;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);n+=" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";var o=new Error(n);throw o.name="Invariant Violation",o.framesToPop=1,o}t.exports=r},{}],35:[function(e,t,n){"use strict";function r(e,t,n){return!o(e.props,t)||!o(e.state,n)}var o=e(43);t.exports=r},{43:43}],36:[function(e,t,n){"use strict";function r(e,t){return e&&"object"==typeof e&&null!=e.key?c.escape(e.key):t.toString(36)}function o(e,t,n,i){var f=typeof e;if("undefined"!==f&&"boolean"!==f||(e=null),null===e||"string"===f||"number"===f||"object"===f&&e.$$typeof===s)return n(i,e,""===t?p+r(e,0):t),1;var d,h,y=0,v=""===t?p:t+l;if(Array.isArray(e))for(var m=0;m<e.length;m++)d=e[m],h=v+r(d,m),y+=o(d,h,n,i);else{var E=u(e);if(E){var g,b=E.call(e);if(E!==e.entries)for(var _=0;!(g=b.next()).done;)d=g.value,h=v+r(d,_++),y+=o(d,h,n,i);else for(;!(g=b.next()).done;){var w=g.value;w&&(d=w[1],h=v+c.escape(w[0])+l+r(d,0),y+=o(d,h,n,i))}}else if("object"===f){var A=String(e);a("31","[object Object]"===A?"object with keys {"+Object.keys(e).join(", ")+"}":A,"")}}return y}function i(e,t,n){return null==e?0:o(e,"",t,n)}var a=e(34),s=(e(13),e(16)),u=e(32),c=(e(42),e(2)),p=(e(44),"."),l=":";t.exports=i},{13:13,16:16,2:2,32:32,34:34,42:42,44:44}],37:[function(e,t,n){"use strict";function r(e){return Array.isArray(e)?e.concat():e&&"object"==typeof e?s(new e.constructor,e):e}function o(e,t,n){Array.isArray(e)||a("1",n,e);var r=t[n];Array.isArray(r)||a("2",n,r)}function i(e,t){if("object"!=typeof t&&a("3",y.join(", "),f),u.call(t,f))return 1!==Object.keys(t).length&&a("4",f),t[f];var n=r(e);if(u.call(t,d)){var m=t[d];m&&"object"==typeof m||a("5",d,m),n&&"object"==typeof n||a("6",d,n),s(n,t[d])}u.call(t,c)&&(o(e,t,c),t[c].forEach(function(e){n.push(e)})),u.call(t,p)&&(o(e,t,p),t[p].forEach(function(e){n.unshift(e)})),u.call(t,l)&&(Array.isArray(e)||a("7",l,e),Array.isArray(t[l])||a("8",l,t[l]),t[l].forEach(function(e){Array.isArray(e)||a("8",l,t[l]),n.splice.apply(n,e)})),u.call(t,h)&&("function"!=typeof t[h]&&a("9",h,t[h]),n=t[h](n));for(var E in t)v.hasOwnProperty(E)&&v[E]||(n[E]=i(e[E],t[E]));return n}var a=e(34),s=e(45),u=(e(42),{}.hasOwnProperty),c="$push",p="$unshift",l="$splice",f="$set",d="$merge",h="$apply",y=[c,p,l,f,d,h],v={};y.forEach(function(e){v[e]=!0}),t.exports=i},{34:34,42:42,45:45}],38:[function(e,t,n){"use strict";function r(e,t){for(var n=e;n.parentNode;)n=n.parentNode;var r=n.querySelectorAll(t);return-1!==Array.prototype.indexOf.call(r,e)}var o=e(42),i={addClass:function(e,t){return/\s/.test(t)&&o(!1),t&&(e.classList?e.classList.add(t):i.hasClass(e,t)||(e.className=e.className+" "+t)),e},removeClass:function(e,t){return/\s/.test(t)&&o(!1),t&&(e.classList?e.classList.remove(t):i.hasClass(e,t)&&(e.className=e.className.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,""))),e},conditionClass:function(e,t,n){return(n?i.addClass:i.removeClass)(e,t)},hasClass:function(e,t){return/\s/.test(t)&&o(!1),e.classList?!!t&&e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1},matchesSelector:function(e,t){return(e.matches||e.webkitMatchesSelector||e.mozMatchesSelector||e.msMatchesSelector||function(t){return r(e,t)}).call(e,t)}};t.exports=i},{42:42}],39:[function(e,t,n){"use strict";var r=!("undefined"==typeof window||!window.document||!window.document.createElement),o={canUseDOM:r,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};t.exports=o},{}],40:[function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},t.exports=o},{}],41:[function(e,t,n){"use strict";var r={};t.exports=r},{}],42:[function(e,t,n){"use strict";function r(e,t,n,r,i,a,s,u){if(o(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 p=[n,r,i,a,s,u],l=0;c=new Error(t.replace(/%s/g,function(){return p[l++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}}var o=function(e){};t.exports=r},{}],43:[function(e,t,n){"use strict";function r(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!==e&&t!==t}function o(e,t){if(r(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var a=0;a<n.length;a++)if(!i.call(t,n[a])||!r(e[n[a]],t[n[a]]))return!1;return!0}var i=Object.prototype.hasOwnProperty;t.exports=o},{}],44:[function(e,t,n){"use strict";var r=e(40),o=r;t.exports=o},{40:40}],45:[function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var o=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,u=r(e),c=1;c<arguments.length;c++){n=Object(arguments[c]);for(var p in n)i.call(n,p)&&(u[p]=n[p]);if(o){s=o(n);for(var l=0;l<s.length;l++)a.call(n,s[l])&&(u[s[l]]=n[s[l]])}}return u}},{}],46:[function(e,t,n){"use strict";function r(e,t,n,r,o){}t.exports=r},{42:42,44:44,49:49}],47:[function(e,t,n){"use strict";var r=e(48)
13
- ;t.exports=function(e){return r(e,!1)}},{48:48}],48:[function(e,t,n){"use strict";var r=e(40),o=e(42),i=(e(44),e(49)),a=e(46);t.exports=function(e,t){function n(e){var t=e&&(w&&e[w]||e[A]);if("function"==typeof t)return t}function s(e,t){return e===t?0!==e||1/e==1/t:e!==e&&t!==t}function u(e){this.message=e,this.stack=""}function c(e){function n(n,r,a,s,c,p,l){if(s=s||T,p=p||a,l!==i)if(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");else;return null==r[a]?n?new u(null===r[a]?"The "+c+" `"+p+"` is marked as required in `"+s+"`, but its value is `null`.":"The "+c+" `"+p+"` is marked as required in `"+s+"`, but its value is `undefined`."):null:e(r,a,s,c,p)}var r=n.bind(null,!1);return r.isRequired=n.bind(null,!0),r}function p(e){function t(t,n,r,o,i,a){var s=t[n];if(g(s)!==e)return new u("Invalid "+o+" `"+i+"` of type `"+b(s)+"` supplied to `"+r+"`, expected `"+e+"`.");return null}return c(t)}function l(e){function t(t,n,r,o,a){if("function"!=typeof e)return new u("Property `"+a+"` of component `"+r+"` has invalid PropType notation inside arrayOf.");var s=t[n];if(!Array.isArray(s)){return new u("Invalid "+o+" `"+a+"` of type `"+g(s)+"` supplied to `"+r+"`, expected an array.")}for(var c=0;c<s.length;c++){var p=e(s,c,r,o,a+"["+c+"]",i);if(p instanceof Error)return p}return null}return c(t)}function f(e){function t(t,n,r,o,i){if(!(t[n]instanceof e)){var a=e.name||T;return new u("Invalid "+o+" `"+i+"` of type `"+_(t[n])+"` supplied to `"+r+"`, expected instance of `"+a+"`.")}return null}return c(t)}function d(e){function t(t,n,r,o,i){for(var a=t[n],c=0;c<e.length;c++)if(s(a,e[c]))return null;return new u("Invalid "+o+" `"+i+"` of value `"+a+"` supplied to `"+r+"`, expected one of "+JSON.stringify(e)+".")}return Array.isArray(e)?c(t):r.thatReturnsNull}function h(e){function t(t,n,r,o,a){if("function"!=typeof e)return new u("Property `"+a+"` of component `"+r+"` has invalid PropType notation inside objectOf.");var s=t[n],c=g(s);if("object"!==c)return new u("Invalid "+o+" `"+a+"` of type `"+c+"` supplied to `"+r+"`, expected an object.");for(var p in s)if(s.hasOwnProperty(p)){var l=e(s,p,r,o,a+"."+p,i);if(l instanceof Error)return l}return null}return c(t)}function y(e){function t(t,n,r,o,a){for(var s=0;s<e.length;s++){if(null==(0,e[s])(t,n,r,o,a,i))return null}return new u("Invalid "+o+" `"+a+"` supplied to `"+r+"`.")}return Array.isArray(e)?c(t):r.thatReturnsNull}function v(e){function t(t,n,r,o,a){var s=t[n],c=g(s);if("object"!==c)return new u("Invalid "+o+" `"+a+"` of type `"+c+"` supplied to `"+r+"`, expected `object`.");for(var p in e){var l=e[p];if(l){var f=l(s,p,r,o,a+"."+p,i);if(f)return f}}return null}return c(t)}function m(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(m);if(null===t||e(t))return!0;var r=n(t);if(!r)return!1;var o,i=r.call(t);if(r!==t.entries){for(;!(o=i.next()).done;)if(!m(o.value))return!1}else for(;!(o=i.next()).done;){var a=o.value;if(a&&!m(a[1]))return!1}return!0;default:return!1}}function E(e,t){return"symbol"===e||("Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol)}function g(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":E(t,e)?"symbol":t}function b(e){var t=g(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function _(e){return e.constructor&&e.constructor.name?e.constructor.name:T}var w="function"==typeof Symbol&&Symbol.iterator,A="@@iterator",T="<<anonymous>>",x={array:p("array"),bool:p("boolean"),func:p("function"),number:p("number"),object:p("object"),string:p("string"),symbol:p("symbol"),any:function(){return c(r.thatReturnsNull)}(),arrayOf:l,element:function(){function t(t,n,r,o,i){var a=t[n];if(!e(a)){return new u("Invalid "+o+" `"+i+"` of type `"+g(a)+"` supplied to `"+r+"`, expected a single ReactElement.")}return null}return c(t)}(),instanceOf:f,node:function(){function e(e,t,n,r,o){return m(e[t])?null:new u("Invalid "+r+" `"+o+"` supplied to `"+n+"`, expected a ReactNode.")}return c(e)}(),objectOf:h,oneOf:d,oneOfType:y,shape:v};return u.prototype=Error.prototype,x.checkPropTypes=a,x.PropTypes=x,x}},{40:40,42:42,44:44,46:46,49:49}],49:[function(e,t,n){"use strict";t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},{}]},{},[29])(29)});
10
+ !function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.React=e()}}(function(){return function e(t,n,r){function o(a,s){if(!n[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(i)return i(a,!0);var c=new Error("Cannot find module '"+a+"'");throw c.code="MODULE_NOT_FOUND",c}var l=n[a]={exports:{}};t[a][0].call(l.exports,function(e){var n=t[a][1][e];return o(n||e)},l,l.exports,e,t,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a<r.length;a++)o(r[a]);return o}({1:[function(e,t,n){"use strict";function r(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}function o(e){if(s[e])return s[e];if(!a[e])return e;var t=a[e];for(var n in t)if(t.hasOwnProperty(n)&&n in u)return s[e]=t[n];return""}var i=e(39),a={animationend:r("Animation","AnimationEnd"),animationiteration:r("Animation","AnimationIteration"),animationstart:r("Animation","AnimationStart"),transitionend:r("Transition","TransitionEnd")},s={},u={};i.canUseDOM&&(u=document.createElement("div").style,"AnimationEvent"in window||(delete a.animationend.animation,delete a.animationiteration.animation,delete a.animationstart.animation),"TransitionEvent"in window||delete a.transitionend.transition),t.exports=o},{39:39}],2:[function(e,t,n){"use strict";function r(e){var t={"=":"=0",":":"=2"};return"$"+(""+e).replace(/[=:]/g,function(e){return t[e]})}function o(e){var t=/(=0|=2)/g,n={"=0":"=","=2":":"};return(""+("."===e[0]&&"$"===e[1]?e.substring(2):e.substring(1))).replace(t,function(e){return n[e]})}var i={escape:r,unescape:o};t.exports=i},{}],3:[function(e,t,n){"use strict";var r=e(17),o=e(20),i={linkState:function(e){return new r(this.state[e],o.createStateKeySetter(this,e))}};t.exports=i},{17:17,20:20}],4:[function(e,t,n){"use strict";var r=e(33),o=(e(42),function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)}),i=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},a=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},s=function(e,t,n,r){var o=this;if(o.instancePool.length){var i=o.instancePool.pop();return o.call(i,e,t,n,r),i}return new o(e,t,n,r)},u=function(e){var t=this;e instanceof t||r("25"),e.destructor(),t.instancePool.length<t.poolSize&&t.instancePool.push(e)},c=o,l=function(e,t){var n=e;return n.instancePool=[],n.getPooled=t||c,n.poolSize||(n.poolSize=10),n.release=u,n},p={addPoolingTo:l,oneArgumentPooler:o,twoArgumentPooler:i,threeArgumentPooler:a,fourArgumentPooler:s};t.exports=p},{33:33,42:42}],5:[function(e,t,n){"use strict";var r=e(45),o=e(7),i=e(10),a=e(13),s=e(14),u=e(19),c=e(24),l=e(28),p=e(32),f=s.createElement,d=s.createFactory,h=s.cloneElement,y=r,m=function(e){return e},v={Children:{map:i.map,forEach:i.forEach,count:i.count,toArray:i.toArray,only:p},Component:o.Component,PureComponent:o.PureComponent,createElement:f,cloneElement:h,isValidElement:s.isValidElement,PropTypes:u,createClass:l,createFactory:d,createMixin:m,DOM:a,version:c,__spread:y};t.exports=v},{10:10,13:13,14:14,19:19,24:24,28:28,32:32,45:45,7:7}],6:[function(e,t,n){"use strict";function r(){if(!o){var t=e(26);o=t.__SECRET_INJECTED_REACT_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED}return o}var o;n.getReactDOM=r},{26:26}],7:[function(e,t,n){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=c,this.updater=n||u}function o(e,t,n){this.props=e,this.context=t,this.refs=c,this.updater=n||u}function i(){}var a=e(33),s=e(45),u=e(18),c=(e(27),e(41));e(42),e(31);r.prototype.isReactComponent={},r.prototype.setState=function(e,t){"object"!=typeof e&&"function"!=typeof e&&null!=e&&a("85"),this.updater.enqueueSetState(this,e),t&&this.updater.enqueueCallback(this,t,"setState")},r.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this),e&&this.updater.enqueueCallback(this,e,"forceUpdate")};i.prototype=r.prototype,o.prototype=new i,o.prototype.constructor=o,s(o.prototype,r.prototype),o.prototype.isPureReactComponent=!0,t.exports={Component:r,PureComponent:o}},{18:18,27:27,31:31,33:33,41:41,42:42,45:45}],8:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function a(e){var t="transition"+e+"Timeout",n="transition"+e;return function(e){if(e[n]){if(null==e[t])return new Error(t+" wasn't supplied to ReactCSSTransitionGroup: this can cause unreliable animations and won't be supported in a future version of React. See https://fb.me/react-animation-transition-group-timeout for more information.");if("number"!=typeof e[t])return new Error(t+" must be a number (in milliseconds)")}}}var s=e(45),u=e(5),c=e(47),l=c(u.isValidElement),p=e(23),f=e(9),d=function(e){function t(){var n,i,a;r(this,t);for(var s=arguments.length,c=Array(s),l=0;l<s;l++)c[l]=arguments[l];return n=i=o(this,e.call.apply(e,[this].concat(c))),i._wrapChild=function(e){return u.createElement(f,{name:i.props.transitionName,appear:i.props.transitionAppear,enter:i.props.transitionEnter,leave:i.props.transitionLeave,appearTimeout:i.props.transitionAppearTimeout,enterTimeout:i.props.transitionEnterTimeout,leaveTimeout:i.props.transitionLeaveTimeout},e)},a=n,o(i,a)}return i(t,e),t.prototype.render=function(){return u.createElement(p,s({},this.props,{childFactory:this._wrapChild}))},t}(u.Component);d.displayName="ReactCSSTransitionGroup",d.propTypes={transitionName:f.propTypes.name,transitionAppear:l.bool,transitionEnter:l.bool,transitionLeave:l.bool,transitionAppearTimeout:a("Appear"),transitionEnterTimeout:a("Enter"),transitionLeaveTimeout:a("Leave")},d.defaultProps={transitionAppear:!1,transitionEnter:!0,transitionLeave:!0},t.exports=d},{23:23,45:45,47:47,5:5,9:9}],9:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var a=e(5),s=e(6),u=e(47),c=u(a.isValidElement),l=e(38),p=e(22),f=e(32),d=17,h=function(e){function t(){var n,i,a;r(this,t);for(var u=arguments.length,c=Array(u),f=0;f<u;f++)c[f]=arguments[f];return n=i=o(this,e.call.apply(e,[this].concat(c))),i._isMounted=!1,i.transition=function(e,t,n){var r=s.getReactDOM().findDOMNode(i);if(!r)return void(t&&t());var o=i.props.name[e]||i.props.name+"-"+e,a=i.props.name[e+"Active"]||o+"-active",u=null,c=function(e){e&&e.target!==r||(clearTimeout(u),l.removeClass(r,o),l.removeClass(r,a),p.removeEndEventListener(r,c),t&&t())};l.addClass(r,o),i.queueClassAndNode(a,r),n?(u=setTimeout(c,n),i.transitionTimeouts.push(u)):p.addEndEventListener(r,c)},i.queueClassAndNode=function(e,t){i.classNameAndNodeQueue.push({className:e,node:t}),i.timeout||(i.timeout=setTimeout(i.flushClassNameAndNodeQueue,d))},i.flushClassNameAndNodeQueue=function(){i._isMounted&&i.classNameAndNodeQueue.forEach(function(e){l.addClass(e.node,e.className)}),i.classNameAndNodeQueue.length=0,i.timeout=null},i.componentWillAppear=function(e){i.props.appear?i.transition("appear",e,i.props.appearTimeout):e()},i.componentWillEnter=function(e){i.props.enter?i.transition("enter",e,i.props.enterTimeout):e()},i.componentWillLeave=function(e){i.props.leave?i.transition("leave",e,i.props.leaveTimeout):e()},a=n,o(i,a)}return i(t,e),t.prototype.componentWillMount=function(){this.classNameAndNodeQueue=[],this.transitionTimeouts=[]},t.prototype.componentDidMount=function(){this._isMounted=!0},t.prototype.componentWillUnmount=function(){this._isMounted=!1,this.timeout&&clearTimeout(this.timeout),this.transitionTimeouts.forEach(function(e){clearTimeout(e)}),this.classNameAndNodeQueue.length=0},t.prototype.render=function(){return f(this.props.children)},t}(a.Component);h.propTypes={name:c.oneOfType([c.string,c.shape({enter:c.string,leave:c.string,active:c.string}),c.shape({enter:c.string,enterActive:c.string,leave:c.string,leaveActive:c.string,appear:c.string,appearActive:c.string})]).isRequired,appear:c.bool,enter:c.bool,leave:c.bool,appearTimeout:c.number,enterTimeout:c.number,leaveTimeout:c.number},t.exports=h},{22:22,32:32,38:38,47:47,5:5,6:6}],10:[function(e,t,n){"use strict";function r(e){return(""+e).replace(E,"$&/")}function o(e,t){this.func=e,this.context=t,this.count=0}function i(e,t,n){var r=e.func,o=e.context;r.call(o,t,e.count++)}function a(e,t,n){if(null==e)return e;var r=o.getPooled(t,n);v(e,i,r),o.release(r)}function s(e,t,n,r){this.result=e,this.keyPrefix=t,this.func=n,this.context=r,this.count=0}function u(e,t,n){var o=e.result,i=e.keyPrefix,a=e.func,s=e.context,u=a.call(s,t,e.count++);Array.isArray(u)?c(u,o,n,m.thatReturnsArgument):null!=u&&(y.isValidElement(u)&&(u=y.cloneAndReplaceKey(u,i+(!u.key||t&&t.key===u.key?"":r(u.key)+"/")+n)),o.push(u))}function c(e,t,n,o,i){var a="";null!=n&&(a=r(n)+"/");var c=s.getPooled(t,a,o,i);v(e,u,c),s.release(c)}function l(e,t,n){if(null==e)return e;var r=[];return c(e,r,null,t,n),r}function p(e,t,n){return null}function f(e,t){return v(e,p,null)}function d(e){var t=[];return c(e,t,null,m.thatReturnsArgument),t}var h=e(4),y=e(14),m=e(40),v=e(35),g=h.twoArgumentPooler,b=h.fourArgumentPooler,E=/\/+/g;o.prototype.destructor=function(){this.func=null,this.context=null,this.count=0},h.addPoolingTo(o,g),s.prototype.destructor=function(){this.result=null,this.keyPrefix=null,this.func=null,this.context=null,this.count=0},h.addPoolingTo(s,b);var _={forEach:a,map:l,mapIntoWithKeyPrefixInternal:c,count:f,toArray:d};t.exports=_},{14:14,35:35,4:4,40:40}],11:[function(e,t,n){"use strict";var r=e(34),o={shouldComponentUpdate:function(e,t){return r(this,e,t)}};t.exports=o},{34:34}],12:[function(e,t,n){"use strict";var r={current:null};t.exports=r},{}],13:[function(e,t,n){"use strict";var r=e(14),o=r.createFactory,i={a:o("a"),abbr:o("abbr"),address:o("address"),area:o("area"),article:o("article"),aside:o("aside"),audio:o("audio"),b:o("b"),base:o("base"),bdi:o("bdi"),bdo:o("bdo"),big:o("big"),blockquote:o("blockquote"),body:o("body"),br:o("br"),button:o("button"),canvas:o("canvas"),caption:o("caption"),cite:o("cite"),code:o("code"),col:o("col"),colgroup:o("colgroup"),data:o("data"),datalist:o("datalist"),dd:o("dd"),del:o("del"),details:o("details"),dfn:o("dfn"),dialog:o("dialog"),div:o("div"),dl:o("dl"),dt:o("dt"),em:o("em"),embed:o("embed"),fieldset:o("fieldset"),figcaption:o("figcaption"),figure:o("figure"),footer:o("footer"),form:o("form"),h1:o("h1"),h2:o("h2"),h3:o("h3"),h4:o("h4"),h5:o("h5"),h6:o("h6"),head:o("head"),header:o("header"),hgroup:o("hgroup"),hr:o("hr"),html:o("html"),i:o("i"),iframe:o("iframe"),img:o("img"),input:o("input"),ins:o("ins"),kbd:o("kbd"),keygen:o("keygen"),label:o("label"),legend:o("legend"),li:o("li"),link:o("link"),main:o("main"),map:o("map"),mark:o("mark"),menu:o("menu"),menuitem:o("menuitem"),meta:o("meta"),meter:o("meter"),nav:o("nav"),noscript:o("noscript"),object:o("object"),ol:o("ol"),optgroup:o("optgroup"),option:o("option"),output:o("output"),p:o("p"),param:o("param"),picture:o("picture"),pre:o("pre"),progress:o("progress"),q:o("q"),rp:o("rp"),rt:o("rt"),ruby:o("ruby"),s:o("s"),samp:o("samp"),script:o("script"),section:o("section"),select:o("select"),small:o("small"),source:o("source"),span:o("span"),strong:o("strong"),style:o("style"),sub:o("sub"),summary:o("summary"),sup:o("sup"),table:o("table"),tbody:o("tbody"),td:o("td"),textarea:o("textarea"),tfoot:o("tfoot"),th:o("th"),thead:o("thead"),time:o("time"),title:o("title"),tr:o("tr"),track:o("track"),u:o("u"),ul:o("ul"),var:o("var"),video:o("video"),wbr:o("wbr"),circle:o("circle"),clipPath:o("clipPath"),defs:o("defs"),ellipse:o("ellipse"),g:o("g"),image:o("image"),line:o("line"),linearGradient:o("linearGradient"),mask:o("mask"),path:o("path"),pattern:o("pattern"),polygon:o("polygon"),polyline:o("polyline"),radialGradient:o("radialGradient"),rect:o("rect"),stop:o("stop"),svg:o("svg"),text:o("text"),tspan:o("tspan")};t.exports=i},{14:14}],14:[function(e,t,n){"use strict";function r(e){return void 0!==e.ref}function o(e){return void 0!==e.key}var i=e(45),a=e(12),s=(e(44),e(27),Object.prototype.hasOwnProperty),u=e(15),c={key:!0,ref:!0,__self:!0,__source:!0},l=function(e,t,n,r,o,i,a){return{$$typeof:u,type:e,key:t,ref:n,props:a,_owner:i}};l.createElement=function(e,t,n){var i,u={},p=null,f=null;if(null!=t){r(t)&&(f=t.ref),o(t)&&(p=""+t.key),void 0===t.__self?null:t.__self,void 0===t.__source?null:t.__source;for(i in t)s.call(t,i)&&!c.hasOwnProperty(i)&&(u[i]=t[i])}var d=arguments.length-2;if(1===d)u.children=n;else if(d>1){for(var h=Array(d),y=0;y<d;y++)h[y]=arguments[y+2];u.children=h}if(e&&e.defaultProps){var m=e.defaultProps;for(i in m)void 0===u[i]&&(u[i]=m[i])}return l(e,p,f,0,0,a.current,u)},l.createFactory=function(e){var t=l.createElement.bind(null,e);return t.type=e,t},l.cloneAndReplaceKey=function(e,t){return l(e.type,t,e.ref,e._self,e._source,e._owner,e.props)},l.cloneElement=function(e,t,n){var u,p=i({},e.props),f=e.key,d=e.ref,h=(e._self,e._source,e._owner);if(null!=t){r(t)&&(d=t.ref,h=a.current),o(t)&&(f=""+t.key);var y;e.type&&e.type.defaultProps&&(y=e.type.defaultProps);for(u in t)s.call(t,u)&&!c.hasOwnProperty(u)&&(void 0===t[u]&&void 0!==y?p[u]=y[u]:p[u]=t[u])}var m=arguments.length-2;if(1===m)p.children=n;else if(m>1){for(var v=Array(m),g=0;g<m;g++)v[g]=arguments[g+2];p.children=v}return l(e.type,f,d,0,0,h,p)},l.isValidElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===u},t.exports=l},{12:12,15:15,27:27,44:44,45:45}],15:[function(e,t,n){"use strict";var r="function"==typeof Symbol&&Symbol.for&&Symbol.for("react.element")||60103;t.exports=r},{}],16:[function(e,t,n){"use strict";var r=e(33),o=e(10),i=e(14),a=e(40),s=(e(42),e(44),{create:function(e){if("object"!=typeof e||!e||Array.isArray(e))return e;if(i.isValidElement(e))return e;1===e.nodeType&&r("0");var t=[];for(var n in e)o.mapIntoWithKeyPrefixInternal(e[n],t,n,a.thatReturnsArgument);return t}});t.exports=s},{10:10,14:14,33:33,40:40,42:42,44:44}],17:[function(e,t,n){"use strict";function r(e,t){this.value=e,this.requestChange=t}t.exports=r},{}],18:[function(e,t,n){"use strict";var r=(e(44),{isMounted:function(e){return!1},enqueueCallback:function(e,t){},enqueueForceUpdate:function(e){},enqueueReplaceState:function(e,t){},enqueueSetState:function(e,t){}});t.exports=r},{44:44}],19:[function(e,t,n){"use strict";var r=e(14),o=r.isValidElement,i=e(47);t.exports=i(o)},{14:14,47:47}],20:[function(e,t,n){"use strict";function r(e,t){var n={};return function(r){n[t]=r,e.setState(n)}}var o={createStateSetter:function(e,t){return function(n,r,o,i,a,s){var u=t.call(e,n,r,o,i,a,s);u&&e.setState(u)}},createStateKeySetter:function(e,t){var n=e.__keySetters||(e.__keySetters={});return n[t]||(n[t]=r(e,t))}};o.Mixin={createStateSetter:function(e){return o.createStateSetter(this,e)},createStateKeySetter:function(e){return o.createStateKeySetter(this,e)}},t.exports=o},{}],21:[function(e,t,n){"use strict";var r=e(29),o={getChildMapping:function(e,t){return e?r(e):e},mergeChildMappings:function(e,t){function n(n){return t.hasOwnProperty(n)?t[n]:e[n]}e=e||{},t=t||{};var r={},o=[];for(var i in e)t.hasOwnProperty(i)?o.length&&(r[i]=o,o=[]):o.push(i);var a,s={};for(var u in t){if(r.hasOwnProperty(u))for(a=0;a<r[u].length;a++){var c=r[u][a];s[r[u][a]]=n(c)}s[u]=n(u)}for(a=0;a<o.length;a++)s[o[a]]=n(o[a]);return s}};t.exports=o},{29:29}],22:[function(e,t,n){"use strict";function r(e,t,n){e.addEventListener(t,n,!1)}function o(e,t,n){e.removeEventListener(t,n,!1)}var i=e(39),a=e(1),s=[];i.canUseDOM&&function(){var e=a("animationend"),t=a("transitionend");e&&s.push(e),t&&s.push(t)}();var u={addEndEventListener:function(e,t){if(0===s.length)return void window.setTimeout(t,0);s.forEach(function(n){r(e,n,t)})},removeEndEventListener:function(e,t){0!==s.length&&s.forEach(function(n){o(e,n,t)})}};t.exports=u},{1:1,39:39}],23:[function(e,t,n){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function o(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function i(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}var a=e(45),s=e(5),u=e(21),c=e(47),l=c(s.isValidElement),p=e(40),f=function(e){function t(){var n,i,s;r(this,t);for(var c=arguments.length,l=Array(c),p=0;p<c;p++)l[p]=arguments[p];return n=i=o(this,e.call.apply(e,[this].concat(l))),i.state={children:u.getChildMapping(i.props.children)},i.performAppear=function(e){i.currentlyTransitioningKeys[e]=!0;var t=i.refs[e];t.componentWillAppear?t.componentWillAppear(i._handleDoneAppearing.bind(i,e)):i._handleDoneAppearing(e)},i._handleDoneAppearing=function(e){var t=i.refs[e];t.componentDidAppear&&t.componentDidAppear(),delete i.currentlyTransitioningKeys[e];var n=u.getChildMapping(i.props.children);n&&n.hasOwnProperty(e)||i.performLeave(e)},i.performEnter=function(e){i.currentlyTransitioningKeys[e]=!0;var t=i.refs[e];t.componentWillEnter?t.componentWillEnter(i._handleDoneEntering.bind(i,e)):i._handleDoneEntering(e)},i._handleDoneEntering=function(e){var t=i.refs[e];t.componentDidEnter&&t.componentDidEnter(),delete i.currentlyTransitioningKeys[e];var n=u.getChildMapping(i.props.children);n&&n.hasOwnProperty(e)||i.performLeave(e)},i.performLeave=function(e){i.currentlyTransitioningKeys[e]=!0;var t=i.refs[e];t.componentWillLeave?t.componentWillLeave(i._handleDoneLeaving.bind(i,e)):i._handleDoneLeaving(e)},i._handleDoneLeaving=function(e){var t=i.refs[e];t.componentDidLeave&&t.componentDidLeave(),delete i.currentlyTransitioningKeys[e];var n=u.getChildMapping(i.props.children);n&&n.hasOwnProperty(e)?i.performEnter(e):i.setState(function(t){var n=a({},t.children);return delete n[e],{children:n}})},s=n,o(i,s)}return i(t,e),t.prototype.componentWillMount=function(){this.currentlyTransitioningKeys={},this.keysToEnter=[],this.keysToLeave=[]},t.prototype.componentDidMount=function(){var e=this.state.children;for(var t in e)e[t]&&this.performAppear(t)},t.prototype.componentWillReceiveProps=function(e){var t=u.getChildMapping(e.children),n=this.state.children;this.setState({children:u.mergeChildMappings(n,t)});var r;for(r in t){var o=n&&n.hasOwnProperty(r);!t[r]||o||this.currentlyTransitioningKeys[r]||this.keysToEnter.push(r)}for(r in n){var i=t&&t.hasOwnProperty(r);!n[r]||i||this.currentlyTransitioningKeys[r]||this.keysToLeave.push(r)}},t.prototype.componentDidUpdate=function(){var e=this.keysToEnter;this.keysToEnter=[],e.forEach(this.performEnter);var t=this.keysToLeave;this.keysToLeave=[],t.forEach(this.performLeave)},t.prototype.render=function(){var e=[];for(var t in this.state.children){var n=this.state.children[t];n&&e.push(s.cloneElement(this.props.childFactory(n),{ref:t,key:t}))}var r=a({},this.props);return delete r.transitionLeave,delete r.transitionName,delete r.transitionAppear,delete r.transitionEnter,delete r.childFactory,delete r.transitionLeaveTimeout,delete r.transitionEnterTimeout,delete r.transitionAppearTimeout,delete r.component,s.createElement(this.props.component,r,e)},t}(s.Component);f.displayName="ReactTransitionGroup",f.propTypes={component:l.any,childFactory:l.func},f.defaultProps={component:"span",childFactory:p.thatReturnsArgument},t.exports=f},{21:21,40:40,45:45,47:47,5:5}],24:[function(e,t,n){"use strict";t.exports="15.6.2"},{}],25:[function(e,t,n){"use strict";var r=e(3),o=e(5),i=(e(6),e(11)),a=e(8),s=e(16),u=e(23),c=e(34),l=e(36);o.addons={CSSTransitionGroup:a,LinkedStateMixin:r,PureRenderMixin:i,TransitionGroup:u,createFragment:s.create,shallowCompare:c,update:l},t.exports=o},{11:11,16:16,23:23,3:3,34:34,36:36,5:5,6:6,8:8}],26:[function(e,t,n){"use strict";var r=e(45),o=e(25),i=r(o,{__SECRET_INJECTED_REACT_DOM_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:null,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:{ReactCurrentOwner:e(12)}});t.exports=i},{12:12,25:25,45:45}],27:[function(e,t,n){"use strict";t.exports=!1},{}],28:[function(e,t,n){"use strict";var r=e(7),o=r.Component,i=e(14),a=i.isValidElement,s=e(18),u=e(37);t.exports=u(o,a,s)},{14:14,18:18,37:37,7:7}],29:[function(e,t,n){(function(n){"use strict";function r(e,t,n,r){if(e&&"object"==typeof e){var o=e;void 0===o[n]&&null!=t&&(o[n]=t)}}function o(e,t){if(null==e)return e;var n={};return i(e,r,n),n}var i=(e(2),e(35));e(44);void 0!==n&&n.env,t.exports=o}).call(this,void 0)},{2:2,35:35,44:44}],30:[function(e,t,n){"use strict";function r(e){var t=e&&(o&&e[o]||e[i]);if("function"==typeof t)return t}var o="function"==typeof Symbol&&Symbol.iterator,i="@@iterator";t.exports=r},{}],31:[function(e,t,n){"use strict";var r=function(){};t.exports=r},{}],32:[function(e,t,n){"use strict";function r(e){return i.isValidElement(e)||o("143"),e}var o=e(33),i=e(14);e(42);t.exports=r},{14:14,33:33,42:42}],33:[function(e,t,n){"use strict";function r(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;r<t;r++)n+="&args[]="+encodeURIComponent(arguments[r+1]);n+=" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.";var o=new Error(n);throw o.name="Invariant Violation",o.framesToPop=1,o}t.exports=r},{}],34:[function(e,t,n){"use strict";function r(e,t,n){return!o(e.props,t)||!o(e.state,n)}var o=e(43);t.exports=r},{43:43}],35:[function(e,t,n){"use strict";function r(e,t){return e&&"object"==typeof e&&null!=e.key?c.escape(e.key):t.toString(36)}function o(e,t,n,i){var f=typeof e;if("undefined"!==f&&"boolean"!==f||(e=null),null===e||"string"===f||"number"===f||"object"===f&&e.$$typeof===s)return n(i,e,""===t?l+r(e,0):t),1;var d,h,y=0,m=""===t?l:t+p;if(Array.isArray(e))for(var v=0;v<e.length;v++)d=e[v],h=m+r(d,v),y+=o(d,h,n,i);else{var g=u(e);if(g){var b,E=g.call(e);if(g!==e.entries)for(var _=0;!(b=E.next()).done;)d=b.value,h=m+r(d,_++),y+=o(d,h,n,i);else for(;!(b=E.next()).done;){var w=b.value;w&&(d=w[1],h=m+c.escape(w[0])+p+r(d,0),y+=o(d,h,n,i))}}else if("object"===f){var x=String(e);a("31","[object Object]"===x?"object with keys {"+Object.keys(e).join(", ")+"}":x,"")}}return y}function i(e,t,n){return null==e?0:o(e,"",t,n)}var a=e(33),s=(e(12),e(15)),u=e(30),c=(e(42),e(2)),l=(e(44),"."),p=":";t.exports=i},{12:12,15:15,2:2,30:30,33:33,42:42,44:44}],36:[function(e,t,n){"use strict";function r(e){return Array.isArray(e)?e.concat():e&&"object"==typeof e?s(new e.constructor,e):e}function o(e,t,n){Array.isArray(e)||a("1",n,e);var r=t[n];Array.isArray(r)||a("2",n,r)}function i(e,t){if("object"!=typeof t&&a("3",y.join(", "),f),u.call(t,f))return 1!==Object.keys(t).length&&a("4",f),t[f];var n=r(e);if(u.call(t,d)){var v=t[d];v&&"object"==typeof v||a("5",d,v),n&&"object"==typeof n||a("6",d,n),s(n,t[d])}u.call(t,c)&&(o(e,t,c),t[c].forEach(function(e){n.push(e)})),u.call(t,l)&&(o(e,t,l),t[l].forEach(function(e){n.unshift(e)})),u.call(t,p)&&(Array.isArray(e)||a("7",p,e),Array.isArray(t[p])||a("8",p,t[p]),t[p].forEach(function(e){Array.isArray(e)||a("8",p,t[p]),n.splice.apply(n,e)})),u.call(t,h)&&("function"!=typeof t[h]&&a("9",h,t[h]),n=t[h](n));for(var g in t)m.hasOwnProperty(g)&&m[g]||(n[g]=i(e[g],t[g]));return n}var a=e(33),s=e(45),u=(e(42),{}.hasOwnProperty),c="$push",l="$unshift",p="$splice",f="$set",d="$merge",h="$apply",y=[c,l,p,f,d,h],m={};y.forEach(function(e){m[e]=!0}),t.exports=i},{33:33,42:42,45:45}],37:[function(e,t,n){"use strict";function r(e){return e}function o(e,t,n){function o(e,t){var n=g.hasOwnProperty(t)?g[t]:null;w.hasOwnProperty(t)&&s("OVERRIDE_BASE"===n,"ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.",t),e&&s("DEFINE_MANY"===n||"DEFINE_MANY_MERGED"===n,"ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",t)}function c(e,n){if(n){s("function"!=typeof n,"ReactClass: You're attempting to use a component class or function as a mixin. Instead, just use a regular object."),s(!t(n),"ReactClass: You're attempting to use a component as a mixin. Instead, just use a regular object.");var r=e.prototype,i=r.__reactAutoBindPairs;n.hasOwnProperty(u)&&b.mixins(e,n.mixins);for(var a in n)if(n.hasOwnProperty(a)&&a!==u){var c=n[a],l=r.hasOwnProperty(a);if(o(l,a),b.hasOwnProperty(a))b[a](e,c);else{var p=g.hasOwnProperty(a),h="function"==typeof c,y=h&&!p&&!l&&!1!==n.autobind;if(y)i.push(a,c),r[a]=c;else if(l){var m=g[a];s(p&&("DEFINE_MANY_MERGED"===m||"DEFINE_MANY"===m),"ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.",m,a),"DEFINE_MANY_MERGED"===m?r[a]=f(r[a],c):"DEFINE_MANY"===m&&(r[a]=d(r[a],c))}else r[a]=c}}}else;}function l(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in b;s(!o,'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.',n);var i=n in e;s(!i,"ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.",n),e[n]=r}}}function p(e,t){s(e&&t&&"object"==typeof e&&"object"==typeof t,"mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.");for(var n in t)t.hasOwnProperty(n)&&(s(void 0===e[n],"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.",n),e[n]=t[n]);return e}function f(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return p(o,n),p(o,r),o}}function d(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function h(e,t){var n=t.bind(e);return n}function y(e){for(var t=e.__reactAutoBindPairs,n=0;n<t.length;n+=2){var r=t[n],o=t[n+1];e[r]=h(e,o)}}function m(e){var t=r(function(e,r,o){this.__reactAutoBindPairs.length&&y(this),this.props=e,this.context=r,this.refs=a,this.updater=o||n,this.state=null;var i=this.getInitialState?this.getInitialState():null;s("object"==typeof i&&!Array.isArray(i),"%s.getInitialState(): must return an object or null",t.displayName||"ReactCompositeComponent"),this.state=i});t.prototype=new x,t.prototype.constructor=t,t.prototype.__reactAutoBindPairs=[],v.forEach(c.bind(null,t)),c(t,E),c(t,e),c(t,_),t.getDefaultProps&&(t.defaultProps=t.getDefaultProps()),s(t.prototype.render,"createClass(...): Class specification must implement a `render` method.");for(var o in g)t.prototype[o]||(t.prototype[o]=null);return t}var v=[],g={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",updateComponent:"OVERRIDE_BASE"},b={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n<t.length;n++)c(e,t[n])},childContextTypes:function(e,t){e.childContextTypes=i({},e.childContextTypes,t)},contextTypes:function(e,t){e.contextTypes=i({},e.contextTypes,t)},getDefaultProps:function(e,t){e.getDefaultProps?e.getDefaultProps=f(e.getDefaultProps,t):e.getDefaultProps=t},propTypes:function(e,t){e.propTypes=i({},e.propTypes,t)},statics:function(e,t){l(e,t)},autobind:function(){}},E={componentDidMount:function(){this.__isMounted=!0}},_={componentWillUnmount:function(){this.__isMounted=!1}},w={replaceState:function(e,t){this.updater.enqueueReplaceState(this,e,t)},isMounted:function(){return!!this.__isMounted}},x=function(){};return i(x.prototype,e.prototype,w),m}var i=e(45),a=e(41),s=e(42),u="mixins";t.exports=o},{41:41,42:42,44:44,45:45}],38:[function(e,t,n){"use strict";function r(e,t){for(var n=e;n.parentNode;)n=n.parentNode;var r=n.querySelectorAll(t);return-1!==Array.prototype.indexOf.call(r,e)}var o=e(42),i={addClass:function(e,t){return/\s/.test(t)&&o(!1),t&&(e.classList?e.classList.add(t):i.hasClass(e,t)||(e.className=e.className+" "+t)),e},removeClass:function(e,t){return/\s/.test(t)&&o(!1),t&&(e.classList?e.classList.remove(t):i.hasClass(e,t)&&(e.className=e.className.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,""))),e},conditionClass:function(e,t,n){return(n?i.addClass:i.removeClass)(e,t)},hasClass:function(e,t){return/\s/.test(t)&&o(!1),e.classList?!!t&&e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1},matchesSelector:function(e,t){return(e.matches||e.webkitMatchesSelector||e.mozMatchesSelector||e.msMatchesSelector||function(t){return r(e,t)}).call(e,t)}};t.exports=i},{42:42}],39:[function(e,t,n){"use strict";var r=!("undefined"==typeof window||!window.document||!window.document.createElement),o={canUseDOM:r,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:r&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:r&&!!window.screen,isInWorker:!r};t.exports=o},{}],40:[function(e,t,n){"use strict";function r(e){return function(){return e}}var o=function(){};o.thatReturns=r,o.thatReturnsFalse=r(!1),o.thatReturnsTrue=r(!0),o.thatReturnsNull=r(null),o.thatReturnsThis=function(){return this},o.thatReturnsArgument=function(e){return e},t.exports=o},{}],41:[function(e,t,n){"use strict";var r={};t.exports=r},{}],42:[function(e,t,n){"use strict";function r(e,t,n,r,i,a,s,u){if(o(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,r,i,a,s,u],p=0;c=new Error(t.replace(/%s/g,function(){return l[p++]})),c.name="Invariant Violation"}throw c.framesToPop=1,c}}var o=function(e){};t.exports=r},{}],43:[function(e,t,n){"use strict";function r(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!==e&&t!==t}function o(e,t){if(r(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),o=Object.keys(t);if(n.length!==o.length)return!1;for(var a=0;a<n.length;a++)if(!i.call(t,n[a])||!r(e[n[a]],t[n[a]]))return!1;return!0}var i=Object.prototype.hasOwnProperty;t.exports=o},{}],44:[function(e,t,n){"use strict";var r=e(40),o=r
11
+ ;t.exports=o},{40:40}],45:[function(e,t,n){"use strict";function r(e){if(null===e||void 0===e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}var o=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,a=Object.prototype.propertyIsEnumerable;t.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map(function(e){return t[e]}).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach(function(e){r[e]=e}),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,s,u=r(e),c=1;c<arguments.length;c++){n=Object(arguments[c]);for(var l in n)i.call(n,l)&&(u[l]=n[l]);if(o){s=o(n);for(var p=0;p<s.length;p++)a.call(n,s[p])&&(u[s[p]]=n[s[p]])}}return u}},{}],46:[function(e,t,n){"use strict";function r(e,t,n,r,o){}t.exports=r},{42:42,44:44,49:49}],47:[function(e,t,n){"use strict";var r=e(48);t.exports=function(e){return r(e,!1)}},{48:48}],48:[function(e,t,n){"use strict";var r=e(40),o=e(42),i=e(44),a=e(49),s=e(46);t.exports=function(e,t){function n(e){var t=e&&(A&&e[A]||e[T]);if("function"==typeof t)return t}function u(e,t){return e===t?0!==e||1/e==1/t:e!==e&&t!==t}function c(e){this.message=e,this.stack=""}function l(e){function n(n,r,i,s,u,l,p){if(s=s||O,l=l||i,p!==a)if(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");else;return null==r[i]?n?new c(null===r[i]?"The "+u+" `"+l+"` is marked as required in `"+s+"`, but its value is `null`.":"The "+u+" `"+l+"` is marked as required in `"+s+"`, but its value is `undefined`."):null:e(r,i,s,u,l)}var r=n.bind(null,!1);return r.isRequired=n.bind(null,!0),r}function p(e){function t(t,n,r,o,i,a){var s=t[n];if(E(s)!==e)return new c("Invalid "+o+" `"+i+"` of type `"+_(s)+"` supplied to `"+r+"`, expected `"+e+"`.");return null}return l(t)}function f(e){function t(t,n,r,o,i){if("function"!=typeof e)return new c("Property `"+i+"` of component `"+r+"` has invalid PropType notation inside arrayOf.");var s=t[n];if(!Array.isArray(s)){return new c("Invalid "+o+" `"+i+"` of type `"+E(s)+"` supplied to `"+r+"`, expected an array.")}for(var u=0;u<s.length;u++){var l=e(s,u,r,o,i+"["+u+"]",a);if(l instanceof Error)return l}return null}return l(t)}function d(e){function t(t,n,r,o,i){if(!(t[n]instanceof e)){var a=e.name||O;return new c("Invalid "+o+" `"+i+"` of type `"+x(t[n])+"` supplied to `"+r+"`, expected instance of `"+a+"`.")}return null}return l(t)}function h(e){function t(t,n,r,o,i){for(var a=t[n],s=0;s<e.length;s++)if(u(a,e[s]))return null;return new c("Invalid "+o+" `"+i+"` of value `"+a+"` supplied to `"+r+"`, expected one of "+JSON.stringify(e)+".")}return Array.isArray(e)?l(t):r.thatReturnsNull}function y(e){function t(t,n,r,o,i){if("function"!=typeof e)return new c("Property `"+i+"` of component `"+r+"` has invalid PropType notation inside objectOf.");var s=t[n],u=E(s);if("object"!==u)return new c("Invalid "+o+" `"+i+"` of type `"+u+"` supplied to `"+r+"`, expected an object.");for(var l in s)if(s.hasOwnProperty(l)){var p=e(s,l,r,o,i+"."+l,a);if(p instanceof Error)return p}return null}return l(t)}function m(e){function t(t,n,r,o,i){for(var s=0;s<e.length;s++){if(null==(0,e[s])(t,n,r,o,i,a))return null}return new c("Invalid "+o+" `"+i+"` supplied to `"+r+"`.")}if(!Array.isArray(e))return r.thatReturnsNull;for(var n=0;n<e.length;n++){var o=e[n];if("function"!=typeof o)return i(!1,"Invalid argument supplid to oneOfType. Expected an array of check functions, but received %s at index %s.",w(o),n),r.thatReturnsNull}return l(t)}function v(e){function t(t,n,r,o,i){var s=t[n],u=E(s);if("object"!==u)return new c("Invalid "+o+" `"+i+"` of type `"+u+"` supplied to `"+r+"`, expected `object`.");for(var l in e){var p=e[l];if(p){var f=p(s,l,r,o,i+"."+l,a);if(f)return f}}return null}return l(t)}function g(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(g);if(null===t||e(t))return!0;var r=n(t);if(!r)return!1;var o,i=r.call(t);if(r!==t.entries){for(;!(o=i.next()).done;)if(!g(o.value))return!1}else for(;!(o=i.next()).done;){var a=o.value;if(a&&!g(a[1]))return!1}return!0;default:return!1}}function b(e,t){return"symbol"===e||("Symbol"===t["@@toStringTag"]||"function"==typeof Symbol&&t instanceof Symbol)}function E(e){var t=typeof e;return Array.isArray(e)?"array":e instanceof RegExp?"object":b(t,e)?"symbol":t}function _(e){if(void 0===e||null===e)return""+e;var t=E(e);if("object"===t){if(e instanceof Date)return"date";if(e instanceof RegExp)return"regexp"}return t}function w(e){var t=_(e);switch(t){case"array":case"object":return"an "+t;case"boolean":case"date":case"regexp":return"a "+t;default:return t}}function x(e){return e.constructor&&e.constructor.name?e.constructor.name:O}var A="function"==typeof Symbol&&Symbol.iterator,T="@@iterator",O="<<anonymous>>",P={array:p("array"),bool:p("boolean"),func:p("function"),number:p("number"),object:p("object"),string:p("string"),symbol:p("symbol"),any:function(){return l(r.thatReturnsNull)}(),arrayOf:f,element:function(){function t(t,n,r,o,i){var a=t[n];if(!e(a)){return new c("Invalid "+o+" `"+i+"` of type `"+E(a)+"` supplied to `"+r+"`, expected a single ReactElement.")}return null}return l(t)}(),instanceOf:d,node:function(){function e(e,t,n,r,o){return g(e[t])?null:new c("Invalid "+r+" `"+o+"` supplied to `"+n+"`, expected a ReactNode.")}return l(e)}(),objectOf:y,oneOf:h,oneOfType:m,shape:v};return c.prototype=Error.prototype,P.checkPropTypes=s,P.PropTypes=P,P}},{40:40,42:42,44:44,46:46,49:49}],49:[function(e,t,n){"use strict";t.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},{}]},{},[26])(26)});
package/dist/react.js CHANGED
@@ -1,14 +1,12 @@
1
1
  /**
2
- * React v15.5.4
2
+ * React v15.6.2
3
3
  */
4
4
  (function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.React = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){
5
5
  /**
6
- * Copyright 2013-present, Facebook, Inc.
7
- * All rights reserved.
6
+ * Copyright (c) 2013-present, Facebook, Inc.
8
7
  *
9
- * This source code is licensed under the BSD-style license found in the
10
- * LICENSE file in the root directory of this source tree. An additional grant
11
- * of patent rights can be found in the PATENTS file in the same directory.
8
+ * This source code is licensed under the MIT license found in the
9
+ * LICENSE file in the root directory of this source tree.
12
10
  *
13
11
  *
14
12
  */
@@ -62,12 +60,10 @@ var KeyEscapeUtils = {
62
60
  module.exports = KeyEscapeUtils;
63
61
  },{}],2:[function(_dereq_,module,exports){
64
62
  /**
65
- * Copyright 2013-present, Facebook, Inc.
66
- * All rights reserved.
63
+ * Copyright (c) 2013-present, Facebook, Inc.
67
64
  *
68
- * This source code is licensed under the BSD-style license found in the
69
- * LICENSE file in the root directory of this source tree. An additional grant
70
- * of patent rights can be found in the PATENTS file in the same directory.
65
+ * This source code is licensed under the MIT license found in the
66
+ * LICENSE file in the root directory of this source tree.
71
67
  *
72
68
  *
73
69
  */
@@ -76,7 +72,7 @@ module.exports = KeyEscapeUtils;
76
72
 
77
73
  var _prodInvariant = _dereq_(25);
78
74
 
79
- var invariant = _dereq_(29);
75
+ var invariant = _dereq_(30);
80
76
 
81
77
  /**
82
78
  * Static poolers. Several custom versions for each potential number of
@@ -172,40 +168,37 @@ var PooledClass = {
172
168
  };
173
169
 
174
170
  module.exports = PooledClass;
175
- },{"25":25,"29":29}],3:[function(_dereq_,module,exports){
171
+ },{"25":25,"30":30}],3:[function(_dereq_,module,exports){
176
172
  /**
177
- * Copyright 2013-present, Facebook, Inc.
178
- * All rights reserved.
173
+ * Copyright (c) 2013-present, Facebook, Inc.
179
174
  *
180
- * This source code is licensed under the BSD-style license found in the
181
- * LICENSE file in the root directory of this source tree. An additional grant
182
- * of patent rights can be found in the PATENTS file in the same directory.
175
+ * This source code is licensed under the MIT license found in the
176
+ * LICENSE file in the root directory of this source tree.
183
177
  *
184
178
  */
185
179
 
186
180
  'use strict';
187
181
 
188
- var _assign = _dereq_(31);
182
+ var _assign = _dereq_(32);
189
183
 
190
- var ReactChildren = _dereq_(4);
191
- var ReactComponent = _dereq_(6);
192
- var ReactPureComponent = _dereq_(17);
193
- var ReactClass = _dereq_(5);
194
- var ReactDOMFactories = _dereq_(9);
195
- var ReactElement = _dereq_(10);
196
- var ReactPropTypes = _dereq_(15);
197
- var ReactVersion = _dereq_(19);
184
+ var ReactBaseClasses = _dereq_(4);
185
+ var ReactChildren = _dereq_(5);
186
+ var ReactDOMFactories = _dereq_(8);
187
+ var ReactElement = _dereq_(9);
188
+ var ReactPropTypes = _dereq_(14);
189
+ var ReactVersion = _dereq_(17);
198
190
 
191
+ var createReactClass = _dereq_(20);
199
192
  var onlyChild = _dereq_(24);
200
- var warning = _dereq_(30);
201
193
 
202
194
  var createElement = ReactElement.createElement;
203
195
  var createFactory = ReactElement.createFactory;
204
196
  var cloneElement = ReactElement.cloneElement;
205
197
 
206
198
  if ("development" !== 'production') {
207
- var canDefineProperty = _dereq_(20);
208
- var ReactElementValidator = _dereq_(12);
199
+ var lowPriorityWarning = _dereq_(23);
200
+ var canDefineProperty = _dereq_(18);
201
+ var ReactElementValidator = _dereq_(11);
209
202
  var didWarnPropTypesDeprecated = false;
210
203
  createElement = ReactElementValidator.createElement;
211
204
  createFactory = ReactElementValidator.createFactory;
@@ -213,18 +206,27 @@ if ("development" !== 'production') {
213
206
  }
214
207
 
215
208
  var __spread = _assign;
209
+ var createMixin = function (mixin) {
210
+ return mixin;
211
+ };
216
212
 
217
213
  if ("development" !== 'production') {
218
- var warned = false;
214
+ var warnedForSpread = false;
215
+ var warnedForCreateMixin = false;
219
216
  __spread = function () {
220
- "development" !== 'production' ? warning(warned, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.') : void 0;
221
- warned = true;
217
+ lowPriorityWarning(warnedForSpread, 'React.__spread is deprecated and should not be used. Use ' + 'Object.assign directly or another helper function with similar ' + 'semantics. You may be seeing this warning due to your compiler. ' + 'See https://fb.me/react-spread-deprecation for more details.');
218
+ warnedForSpread = true;
222
219
  return _assign.apply(null, arguments);
223
220
  };
221
+
222
+ createMixin = function (mixin) {
223
+ lowPriorityWarning(warnedForCreateMixin, 'React.createMixin is deprecated and should not be used. ' + 'In React v16.0, it will be removed. ' + 'You can use this mixin directly instead. ' + 'See https://fb.me/createmixin-was-never-implemented for more info.');
224
+ warnedForCreateMixin = true;
225
+ return mixin;
226
+ };
224
227
  }
225
228
 
226
229
  var React = {
227
-
228
230
  // Modern
229
231
 
230
232
  Children: {
@@ -235,8 +237,8 @@ var React = {
235
237
  only: onlyChild
236
238
  },
237
239
 
238
- Component: ReactComponent,
239
- PureComponent: ReactPureComponent,
240
+ Component: ReactBaseClasses.Component,
241
+ PureComponent: ReactBaseClasses.PureComponent,
240
242
 
241
243
  createElement: createElement,
242
244
  cloneElement: cloneElement,
@@ -245,12 +247,9 @@ var React = {
245
247
  // Classic
246
248
 
247
249
  PropTypes: ReactPropTypes,
248
- createClass: ReactClass.createClass,
250
+ createClass: createReactClass,
249
251
  createFactory: createFactory,
250
- createMixin: function (mixin) {
251
- // Currently a noop. Will be used to validate and trace mixins.
252
- return mixin;
253
- },
252
+ createMixin: createMixin,
254
253
 
255
254
  // This looks DOM specific but these are actually isomorphic helpers
256
255
  // since they are just generating DOM strings.
@@ -262,37 +261,199 @@ var React = {
262
261
  __spread: __spread
263
262
  };
264
263
 
265
- // TODO: Fix tests so that this deprecation warning doesn't cause failures.
266
264
  if ("development" !== 'production') {
265
+ var warnedForCreateClass = false;
267
266
  if (canDefineProperty) {
268
267
  Object.defineProperty(React, 'PropTypes', {
269
268
  get: function () {
270
- "development" !== 'production' ? warning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated. Use ' + 'the prop-types package from npm instead.') : void 0;
269
+ lowPriorityWarning(didWarnPropTypesDeprecated, 'Accessing PropTypes via the main React package is deprecated,' + ' and will be removed in React v16.0.' + ' Use the latest available v15.* prop-types package from npm instead.' + ' For info on usage, compatibility, migration and more, see ' + 'https://fb.me/prop-types-docs');
271
270
  didWarnPropTypesDeprecated = true;
272
271
  return ReactPropTypes;
273
272
  }
274
273
  });
274
+
275
+ Object.defineProperty(React, 'createClass', {
276
+ get: function () {
277
+ lowPriorityWarning(warnedForCreateClass, 'Accessing createClass via the main React package is deprecated,' + ' and will be removed in React v16.0.' + " Use a plain JavaScript class instead. If you're not yet " + 'ready to migrate, create-react-class v15.* is available ' + 'on npm as a temporary, drop-in replacement. ' + 'For more info see https://fb.me/react-create-class');
278
+ warnedForCreateClass = true;
279
+ return createReactClass;
280
+ }
281
+ });
275
282
  }
283
+
284
+ // React.DOM factories are deprecated. Wrap these methods so that
285
+ // invocations of the React.DOM namespace and alert users to switch
286
+ // to the `react-dom-factories` package.
287
+ React.DOM = {};
288
+ var warnedForFactories = false;
289
+ Object.keys(ReactDOMFactories).forEach(function (factory) {
290
+ React.DOM[factory] = function () {
291
+ if (!warnedForFactories) {
292
+ lowPriorityWarning(false, 'Accessing factories like React.DOM.%s has been deprecated ' + 'and will be removed in v16.0+. Use the ' + 'react-dom-factories package instead. ' + ' Version 1.0 provides a drop-in replacement.' + ' For more info, see https://fb.me/react-dom-factories', factory);
293
+ warnedForFactories = true;
294
+ }
295
+ return ReactDOMFactories[factory].apply(ReactDOMFactories, arguments);
296
+ };
297
+ });
276
298
  }
277
299
 
278
300
  module.exports = React;
279
- },{"10":10,"12":12,"15":15,"17":17,"19":19,"20":20,"24":24,"30":30,"31":31,"4":4,"5":5,"6":6,"9":9}],4:[function(_dereq_,module,exports){
301
+ },{"11":11,"14":14,"17":17,"18":18,"20":20,"23":23,"24":24,"32":32,"4":4,"5":5,"8":8,"9":9}],4:[function(_dereq_,module,exports){
280
302
  /**
281
- * Copyright 2013-present, Facebook, Inc.
282
- * All rights reserved.
303
+ * Copyright (c) 2013-present, Facebook, Inc.
283
304
  *
284
- * This source code is licensed under the BSD-style license found in the
285
- * LICENSE file in the root directory of this source tree. An additional grant
286
- * of patent rights can be found in the PATENTS file in the same directory.
305
+ * This source code is licensed under the MIT license found in the
306
+ * LICENSE file in the root directory of this source tree.
307
+ *
308
+ */
309
+
310
+ 'use strict';
311
+
312
+ var _prodInvariant = _dereq_(25),
313
+ _assign = _dereq_(32);
314
+
315
+ var ReactNoopUpdateQueue = _dereq_(12);
316
+
317
+ var canDefineProperty = _dereq_(18);
318
+ var emptyObject = _dereq_(29);
319
+ var invariant = _dereq_(30);
320
+ var lowPriorityWarning = _dereq_(23);
321
+
322
+ /**
323
+ * Base class helpers for the updating state of a component.
324
+ */
325
+ function ReactComponent(props, context, updater) {
326
+ this.props = props;
327
+ this.context = context;
328
+ this.refs = emptyObject;
329
+ // We initialize the default updater but the real one gets injected by the
330
+ // renderer.
331
+ this.updater = updater || ReactNoopUpdateQueue;
332
+ }
333
+
334
+ ReactComponent.prototype.isReactComponent = {};
335
+
336
+ /**
337
+ * Sets a subset of the state. Always use this to mutate
338
+ * state. You should treat `this.state` as immutable.
339
+ *
340
+ * There is no guarantee that `this.state` will be immediately updated, so
341
+ * accessing `this.state` after calling this method may return the old value.
342
+ *
343
+ * There is no guarantee that calls to `setState` will run synchronously,
344
+ * as they may eventually be batched together. You can provide an optional
345
+ * callback that will be executed when the call to setState is actually
346
+ * completed.
347
+ *
348
+ * When a function is provided to setState, it will be called at some point in
349
+ * the future (not synchronously). It will be called with the up to date
350
+ * component arguments (state, props, context). These values can be different
351
+ * from this.* because your function may be called after receiveProps but before
352
+ * shouldComponentUpdate, and this new state, props, and context will not yet be
353
+ * assigned to this.
354
+ *
355
+ * @param {object|function} partialState Next partial state or function to
356
+ * produce next partial state to be merged with current state.
357
+ * @param {?function} callback Called after state is updated.
358
+ * @final
359
+ * @protected
360
+ */
361
+ ReactComponent.prototype.setState = function (partialState, callback) {
362
+ !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? "development" !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0;
363
+ this.updater.enqueueSetState(this, partialState);
364
+ if (callback) {
365
+ this.updater.enqueueCallback(this, callback, 'setState');
366
+ }
367
+ };
368
+
369
+ /**
370
+ * Forces an update. This should only be invoked when it is known with
371
+ * certainty that we are **not** in a DOM transaction.
372
+ *
373
+ * You may want to call this when you know that some deeper aspect of the
374
+ * component's state has changed but `setState` was not called.
375
+ *
376
+ * This will not invoke `shouldComponentUpdate`, but it will invoke
377
+ * `componentWillUpdate` and `componentDidUpdate`.
378
+ *
379
+ * @param {?function} callback Called after update is complete.
380
+ * @final
381
+ * @protected
382
+ */
383
+ ReactComponent.prototype.forceUpdate = function (callback) {
384
+ this.updater.enqueueForceUpdate(this);
385
+ if (callback) {
386
+ this.updater.enqueueCallback(this, callback, 'forceUpdate');
387
+ }
388
+ };
389
+
390
+ /**
391
+ * Deprecated APIs. These APIs used to exist on classic React classes but since
392
+ * we would like to deprecate them, we're not going to move them over to this
393
+ * modern base class. Instead, we define a getter that warns if it's accessed.
394
+ */
395
+ if ("development" !== 'production') {
396
+ var deprecatedAPIs = {
397
+ isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],
398
+ replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']
399
+ };
400
+ var defineDeprecationWarning = function (methodName, info) {
401
+ if (canDefineProperty) {
402
+ Object.defineProperty(ReactComponent.prototype, methodName, {
403
+ get: function () {
404
+ lowPriorityWarning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]);
405
+ return undefined;
406
+ }
407
+ });
408
+ }
409
+ };
410
+ for (var fnName in deprecatedAPIs) {
411
+ if (deprecatedAPIs.hasOwnProperty(fnName)) {
412
+ defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
413
+ }
414
+ }
415
+ }
416
+
417
+ /**
418
+ * Base class helpers for the updating state of a component.
419
+ */
420
+ function ReactPureComponent(props, context, updater) {
421
+ // Duplicated from ReactComponent.
422
+ this.props = props;
423
+ this.context = context;
424
+ this.refs = emptyObject;
425
+ // We initialize the default updater but the real one gets injected by the
426
+ // renderer.
427
+ this.updater = updater || ReactNoopUpdateQueue;
428
+ }
429
+
430
+ function ComponentDummy() {}
431
+ ComponentDummy.prototype = ReactComponent.prototype;
432
+ ReactPureComponent.prototype = new ComponentDummy();
433
+ ReactPureComponent.prototype.constructor = ReactPureComponent;
434
+ // Avoid an extra prototype jump for these methods.
435
+ _assign(ReactPureComponent.prototype, ReactComponent.prototype);
436
+ ReactPureComponent.prototype.isPureReactComponent = true;
437
+
438
+ module.exports = {
439
+ Component: ReactComponent,
440
+ PureComponent: ReactPureComponent
441
+ };
442
+ },{"12":12,"18":18,"23":23,"25":25,"29":29,"30":30,"32":32}],5:[function(_dereq_,module,exports){
443
+ /**
444
+ * Copyright (c) 2013-present, Facebook, Inc.
445
+ *
446
+ * This source code is licensed under the MIT license found in the
447
+ * LICENSE file in the root directory of this source tree.
287
448
  *
288
449
  */
289
450
 
290
451
  'use strict';
291
452
 
292
453
  var PooledClass = _dereq_(2);
293
- var ReactElement = _dereq_(10);
454
+ var ReactElement = _dereq_(9);
294
455
 
295
- var emptyFunction = _dereq_(27);
456
+ var emptyFunction = _dereq_(28);
296
457
  var traverseAllChildren = _dereq_(26);
297
458
 
298
459
  var twoArgumentPooler = PooledClass.twoArgumentPooler;
@@ -467,936 +628,93 @@ var ReactChildren = {
467
628
  };
468
629
 
469
630
  module.exports = ReactChildren;
470
- },{"10":10,"2":2,"26":26,"27":27}],5:[function(_dereq_,module,exports){
631
+ },{"2":2,"26":26,"28":28,"9":9}],6:[function(_dereq_,module,exports){
471
632
  /**
472
- * Copyright 2013-present, Facebook, Inc.
473
- * All rights reserved.
633
+ * Copyright (c) 2016-present, Facebook, Inc.
474
634
  *
475
- * This source code is licensed under the BSD-style license found in the
476
- * LICENSE file in the root directory of this source tree. An additional grant
477
- * of patent rights can be found in the PATENTS file in the same directory.
635
+ * This source code is licensed under the MIT license found in the
636
+ * LICENSE file in the root directory of this source tree.
478
637
  *
638
+ *
479
639
  */
480
640
 
481
641
  'use strict';
482
642
 
483
- var _prodInvariant = _dereq_(25),
484
- _assign = _dereq_(31);
485
-
486
- var ReactComponent = _dereq_(6);
487
- var ReactElement = _dereq_(10);
488
- var ReactPropTypeLocationNames = _dereq_(14);
489
- var ReactNoopUpdateQueue = _dereq_(13);
643
+ var _prodInvariant = _dereq_(25);
490
644
 
491
- var emptyObject = _dereq_(28);
492
- var invariant = _dereq_(29);
493
- var warning = _dereq_(30);
645
+ var ReactCurrentOwner = _dereq_(7);
494
646
 
495
- var MIXINS_KEY = 'mixins';
647
+ var invariant = _dereq_(30);
648
+ var warning = _dereq_(31);
496
649
 
497
- // Helper function to allow the creation of anonymous functions which do not
498
- // have .name set to the name of the variable being assigned to.
499
- function identity(fn) {
500
- return fn;
650
+ function isNative(fn) {
651
+ // Based on isNative() from Lodash
652
+ var funcToString = Function.prototype.toString;
653
+ var hasOwnProperty = Object.prototype.hasOwnProperty;
654
+ var reIsNative = RegExp('^' + funcToString
655
+ // Take an example native function source for comparison
656
+ .call(hasOwnProperty
657
+ // Strip regex characters so we can use it for regex
658
+ ).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&'
659
+ // Remove hasOwnProperty from the template to make it generic
660
+ ).replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
661
+ try {
662
+ var source = funcToString.call(fn);
663
+ return reIsNative.test(source);
664
+ } catch (err) {
665
+ return false;
666
+ }
501
667
  }
502
668
 
503
- /**
504
- * Policies that describe methods in `ReactClassInterface`.
505
- */
669
+ var canUseCollections =
670
+ // Array.from
671
+ typeof Array.from === 'function' &&
672
+ // Map
673
+ typeof Map === 'function' && isNative(Map) &&
674
+ // Map.prototype.keys
675
+ Map.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) &&
676
+ // Set
677
+ typeof Set === 'function' && isNative(Set) &&
678
+ // Set.prototype.keys
679
+ Set.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys);
506
680
 
681
+ var setItem;
682
+ var getItem;
683
+ var removeItem;
684
+ var getItemIDs;
685
+ var addRoot;
686
+ var removeRoot;
687
+ var getRootIDs;
507
688
 
508
- var injectedMixins = [];
689
+ if (canUseCollections) {
690
+ var itemMap = new Map();
691
+ var rootIDSet = new Set();
509
692
 
510
- /**
511
- * Composite components are higher-level components that compose other composite
512
- * or host components.
513
- *
514
- * To create a new type of `ReactClass`, pass a specification of
515
- * your new class to `React.createClass`. The only requirement of your class
516
- * specification is that you implement a `render` method.
517
- *
518
- * var MyComponent = React.createClass({
519
- * render: function() {
520
- * return <div>Hello World</div>;
521
- * }
522
- * });
523
- *
524
- * The class specification supports a specific protocol of methods that have
525
- * special meaning (e.g. `render`). See `ReactClassInterface` for
526
- * more the comprehensive protocol. Any other properties and methods in the
527
- * class specification will be available on the prototype.
528
- *
529
- * @interface ReactClassInterface
530
- * @internal
531
- */
532
- var ReactClassInterface = {
693
+ setItem = function (id, item) {
694
+ itemMap.set(id, item);
695
+ };
696
+ getItem = function (id) {
697
+ return itemMap.get(id);
698
+ };
699
+ removeItem = function (id) {
700
+ itemMap['delete'](id);
701
+ };
702
+ getItemIDs = function () {
703
+ return Array.from(itemMap.keys());
704
+ };
533
705
 
534
- /**
535
- * An array of Mixin objects to include when defining your component.
536
- *
537
- * @type {array}
538
- * @optional
539
- */
540
- mixins: 'DEFINE_MANY',
541
-
542
- /**
543
- * An object containing properties and methods that should be defined on
544
- * the component's constructor instead of its prototype (static methods).
545
- *
546
- * @type {object}
547
- * @optional
548
- */
549
- statics: 'DEFINE_MANY',
550
-
551
- /**
552
- * Definition of prop types for this component.
553
- *
554
- * @type {object}
555
- * @optional
556
- */
557
- propTypes: 'DEFINE_MANY',
558
-
559
- /**
560
- * Definition of context types for this component.
561
- *
562
- * @type {object}
563
- * @optional
564
- */
565
- contextTypes: 'DEFINE_MANY',
566
-
567
- /**
568
- * Definition of context types this component sets for its children.
569
- *
570
- * @type {object}
571
- * @optional
572
- */
573
- childContextTypes: 'DEFINE_MANY',
574
-
575
- // ==== Definition methods ====
576
-
577
- /**
578
- * Invoked when the component is mounted. Values in the mapping will be set on
579
- * `this.props` if that prop is not specified (i.e. using an `in` check).
580
- *
581
- * This method is invoked before `getInitialState` and therefore cannot rely
582
- * on `this.state` or use `this.setState`.
583
- *
584
- * @return {object}
585
- * @optional
586
- */
587
- getDefaultProps: 'DEFINE_MANY_MERGED',
588
-
589
- /**
590
- * Invoked once before the component is mounted. The return value will be used
591
- * as the initial value of `this.state`.
592
- *
593
- * getInitialState: function() {
594
- * return {
595
- * isOn: false,
596
- * fooBaz: new BazFoo()
597
- * }
598
- * }
599
- *
600
- * @return {object}
601
- * @optional
602
- */
603
- getInitialState: 'DEFINE_MANY_MERGED',
604
-
605
- /**
606
- * @return {object}
607
- * @optional
608
- */
609
- getChildContext: 'DEFINE_MANY_MERGED',
610
-
611
- /**
612
- * Uses props from `this.props` and state from `this.state` to render the
613
- * structure of the component.
614
- *
615
- * No guarantees are made about when or how often this method is invoked, so
616
- * it must not have side effects.
617
- *
618
- * render: function() {
619
- * var name = this.props.name;
620
- * return <div>Hello, {name}!</div>;
621
- * }
622
- *
623
- * @return {ReactComponent}
624
- * @required
625
- */
626
- render: 'DEFINE_ONCE',
627
-
628
- // ==== Delegate methods ====
629
-
630
- /**
631
- * Invoked when the component is initially created and about to be mounted.
632
- * This may have side effects, but any external subscriptions or data created
633
- * by this method must be cleaned up in `componentWillUnmount`.
634
- *
635
- * @optional
636
- */
637
- componentWillMount: 'DEFINE_MANY',
638
-
639
- /**
640
- * Invoked when the component has been mounted and has a DOM representation.
641
- * However, there is no guarantee that the DOM node is in the document.
642
- *
643
- * Use this as an opportunity to operate on the DOM when the component has
644
- * been mounted (initialized and rendered) for the first time.
645
- *
646
- * @param {DOMElement} rootNode DOM element representing the component.
647
- * @optional
648
- */
649
- componentDidMount: 'DEFINE_MANY',
650
-
651
- /**
652
- * Invoked before the component receives new props.
653
- *
654
- * Use this as an opportunity to react to a prop transition by updating the
655
- * state using `this.setState`. Current props are accessed via `this.props`.
656
- *
657
- * componentWillReceiveProps: function(nextProps, nextContext) {
658
- * this.setState({
659
- * likesIncreasing: nextProps.likeCount > this.props.likeCount
660
- * });
661
- * }
662
- *
663
- * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop
664
- * transition may cause a state change, but the opposite is not true. If you
665
- * need it, you are probably looking for `componentWillUpdate`.
666
- *
667
- * @param {object} nextProps
668
- * @optional
669
- */
670
- componentWillReceiveProps: 'DEFINE_MANY',
671
-
672
- /**
673
- * Invoked while deciding if the component should be updated as a result of
674
- * receiving new props, state and/or context.
675
- *
676
- * Use this as an opportunity to `return false` when you're certain that the
677
- * transition to the new props/state/context will not require a component
678
- * update.
679
- *
680
- * shouldComponentUpdate: function(nextProps, nextState, nextContext) {
681
- * return !equal(nextProps, this.props) ||
682
- * !equal(nextState, this.state) ||
683
- * !equal(nextContext, this.context);
684
- * }
685
- *
686
- * @param {object} nextProps
687
- * @param {?object} nextState
688
- * @param {?object} nextContext
689
- * @return {boolean} True if the component should update.
690
- * @optional
691
- */
692
- shouldComponentUpdate: 'DEFINE_ONCE',
693
-
694
- /**
695
- * Invoked when the component is about to update due to a transition from
696
- * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`
697
- * and `nextContext`.
698
- *
699
- * Use this as an opportunity to perform preparation before an update occurs.
700
- *
701
- * NOTE: You **cannot** use `this.setState()` in this method.
702
- *
703
- * @param {object} nextProps
704
- * @param {?object} nextState
705
- * @param {?object} nextContext
706
- * @param {ReactReconcileTransaction} transaction
707
- * @optional
708
- */
709
- componentWillUpdate: 'DEFINE_MANY',
710
-
711
- /**
712
- * Invoked when the component's DOM representation has been updated.
713
- *
714
- * Use this as an opportunity to operate on the DOM when the component has
715
- * been updated.
716
- *
717
- * @param {object} prevProps
718
- * @param {?object} prevState
719
- * @param {?object} prevContext
720
- * @param {DOMElement} rootNode DOM element representing the component.
721
- * @optional
722
- */
723
- componentDidUpdate: 'DEFINE_MANY',
724
-
725
- /**
726
- * Invoked when the component is about to be removed from its parent and have
727
- * its DOM representation destroyed.
728
- *
729
- * Use this as an opportunity to deallocate any external resources.
730
- *
731
- * NOTE: There is no `componentDidUnmount` since your component will have been
732
- * destroyed by that point.
733
- *
734
- * @optional
735
- */
736
- componentWillUnmount: 'DEFINE_MANY',
737
-
738
- // ==== Advanced methods ====
739
-
740
- /**
741
- * Updates the component's currently mounted DOM representation.
742
- *
743
- * By default, this implements React's rendering and reconciliation algorithm.
744
- * Sophisticated clients may wish to override this.
745
- *
746
- * @param {ReactReconcileTransaction} transaction
747
- * @internal
748
- * @overridable
749
- */
750
- updateComponent: 'OVERRIDE_BASE'
751
-
752
- };
753
-
754
- /**
755
- * Mapping from class specification keys to special processing functions.
756
- *
757
- * Although these are declared like instance properties in the specification
758
- * when defining classes using `React.createClass`, they are actually static
759
- * and are accessible on the constructor instead of the prototype. Despite
760
- * being static, they must be defined outside of the "statics" key under
761
- * which all other static methods are defined.
762
- */
763
- var RESERVED_SPEC_KEYS = {
764
- displayName: function (Constructor, displayName) {
765
- Constructor.displayName = displayName;
766
- },
767
- mixins: function (Constructor, mixins) {
768
- if (mixins) {
769
- for (var i = 0; i < mixins.length; i++) {
770
- mixSpecIntoComponent(Constructor, mixins[i]);
771
- }
772
- }
773
- },
774
- childContextTypes: function (Constructor, childContextTypes) {
775
- if ("development" !== 'production') {
776
- validateTypeDef(Constructor, childContextTypes, 'childContext');
777
- }
778
- Constructor.childContextTypes = _assign({}, Constructor.childContextTypes, childContextTypes);
779
- },
780
- contextTypes: function (Constructor, contextTypes) {
781
- if ("development" !== 'production') {
782
- validateTypeDef(Constructor, contextTypes, 'context');
783
- }
784
- Constructor.contextTypes = _assign({}, Constructor.contextTypes, contextTypes);
785
- },
786
- /**
787
- * Special case getDefaultProps which should move into statics but requires
788
- * automatic merging.
789
- */
790
- getDefaultProps: function (Constructor, getDefaultProps) {
791
- if (Constructor.getDefaultProps) {
792
- Constructor.getDefaultProps = createMergedResultFunction(Constructor.getDefaultProps, getDefaultProps);
793
- } else {
794
- Constructor.getDefaultProps = getDefaultProps;
795
- }
796
- },
797
- propTypes: function (Constructor, propTypes) {
798
- if ("development" !== 'production') {
799
- validateTypeDef(Constructor, propTypes, 'prop');
800
- }
801
- Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);
802
- },
803
- statics: function (Constructor, statics) {
804
- mixStaticSpecIntoComponent(Constructor, statics);
805
- },
806
- autobind: function () {} };
807
-
808
- function validateTypeDef(Constructor, typeDef, location) {
809
- for (var propName in typeDef) {
810
- if (typeDef.hasOwnProperty(propName)) {
811
- // use a warning instead of an invariant so components
812
- // don't show up in prod but only in __DEV__
813
- "development" !== '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;
814
- }
815
- }
816
- }
817
-
818
- function validateMethodOverride(isAlreadyDefined, name) {
819
- var specPolicy = ReactClassInterface.hasOwnProperty(name) ? ReactClassInterface[name] : null;
820
-
821
- // Disallow overriding of base class methods unless explicitly allowed.
822
- if (ReactClassMixin.hasOwnProperty(name)) {
823
- !(specPolicy === 'OVERRIDE_BASE') ? "development" !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to override `%s` from your class specification. Ensure that your method names do not overlap with React methods.', name) : _prodInvariant('73', name) : void 0;
824
- }
825
-
826
- // Disallow defining methods more than once unless explicitly allowed.
827
- if (isAlreadyDefined) {
828
- !(specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED') ? "development" !== 'production' ? invariant(false, 'ReactClassInterface: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('74', name) : void 0;
829
- }
830
- }
831
-
832
- /**
833
- * Mixin helper which handles policy validation and reserved
834
- * specification keys when building React classes.
835
- */
836
- function mixSpecIntoComponent(Constructor, spec) {
837
- if (!spec) {
838
- if ("development" !== 'production') {
839
- var typeofSpec = typeof spec;
840
- var isMixinValid = typeofSpec === 'object' && spec !== null;
841
-
842
- "development" !== '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;
843
- }
844
-
845
- return;
846
- }
847
-
848
- !(typeof spec !== 'function') ? "development" !== 'production' ? invariant(false, 'ReactClass: You\'re attempting to use a component class or function as a mixin. Instead, just use a regular object.') : _prodInvariant('75') : void 0;
849
- !!ReactElement.isValidElement(spec) ? "development" !== 'production' ? invariant(false, 'ReactClass: You\'re attempting to use a component as a mixin. Instead, just use a regular object.') : _prodInvariant('76') : void 0;
850
-
851
- var proto = Constructor.prototype;
852
- var autoBindPairs = proto.__reactAutoBindPairs;
853
-
854
- // By handling mixins before any other properties, we ensure the same
855
- // chaining order is applied to methods with DEFINE_MANY policy, whether
856
- // mixins are listed before or after these methods in the spec.
857
- if (spec.hasOwnProperty(MIXINS_KEY)) {
858
- RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);
859
- }
860
-
861
- for (var name in spec) {
862
- if (!spec.hasOwnProperty(name)) {
863
- continue;
864
- }
865
-
866
- if (name === MIXINS_KEY) {
867
- // We have already handled mixins in a special case above.
868
- continue;
869
- }
870
-
871
- var property = spec[name];
872
- var isAlreadyDefined = proto.hasOwnProperty(name);
873
- validateMethodOverride(isAlreadyDefined, name);
874
-
875
- if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {
876
- RESERVED_SPEC_KEYS[name](Constructor, property);
877
- } else {
878
- // Setup methods on prototype:
879
- // The following member methods should not be automatically bound:
880
- // 1. Expected ReactClass methods (in the "interface").
881
- // 2. Overridden methods (that were mixed in).
882
- var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);
883
- var isFunction = typeof property === 'function';
884
- var shouldAutoBind = isFunction && !isReactClassMethod && !isAlreadyDefined && spec.autobind !== false;
885
-
886
- if (shouldAutoBind) {
887
- autoBindPairs.push(name, property);
888
- proto[name] = property;
889
- } else {
890
- if (isAlreadyDefined) {
891
- var specPolicy = ReactClassInterface[name];
892
-
893
- // These cases should already be caught by validateMethodOverride.
894
- !(isReactClassMethod && (specPolicy === 'DEFINE_MANY_MERGED' || specPolicy === 'DEFINE_MANY')) ? "development" !== 'production' ? invariant(false, 'ReactClass: Unexpected spec policy %s for key %s when mixing in component specs.', specPolicy, name) : _prodInvariant('77', specPolicy, name) : void 0;
895
-
896
- // For methods which are defined more than once, call the existing
897
- // methods before calling the new property, merging if appropriate.
898
- if (specPolicy === 'DEFINE_MANY_MERGED') {
899
- proto[name] = createMergedResultFunction(proto[name], property);
900
- } else if (specPolicy === 'DEFINE_MANY') {
901
- proto[name] = createChainedFunction(proto[name], property);
902
- }
903
- } else {
904
- proto[name] = property;
905
- if ("development" !== 'production') {
906
- // Add verbose displayName to the function, which helps when looking
907
- // at profiling tools.
908
- if (typeof property === 'function' && spec.displayName) {
909
- proto[name].displayName = spec.displayName + '_' + name;
910
- }
911
- }
912
- }
913
- }
914
- }
915
- }
916
- }
917
-
918
- function mixStaticSpecIntoComponent(Constructor, statics) {
919
- if (!statics) {
920
- return;
921
- }
922
- for (var name in statics) {
923
- var property = statics[name];
924
- if (!statics.hasOwnProperty(name)) {
925
- continue;
926
- }
927
-
928
- var isReserved = name in RESERVED_SPEC_KEYS;
929
- !!isReserved ? "development" !== 'production' ? invariant(false, '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) : _prodInvariant('78', name) : void 0;
930
-
931
- var isInherited = name in Constructor;
932
- !!isInherited ? "development" !== 'production' ? invariant(false, 'ReactClass: You are attempting to define `%s` on your component more than once. This conflict may be due to a mixin.', name) : _prodInvariant('79', name) : void 0;
933
- Constructor[name] = property;
934
- }
935
- }
936
-
937
- /**
938
- * Merge two objects, but throw if both contain the same key.
939
- *
940
- * @param {object} one The first object, which is mutated.
941
- * @param {object} two The second object
942
- * @return {object} one after it has been mutated to contain everything in two.
943
- */
944
- function mergeIntoWithNoDuplicateKeys(one, two) {
945
- !(one && two && typeof one === 'object' && typeof two === 'object') ? "development" !== 'production' ? invariant(false, 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.') : _prodInvariant('80') : void 0;
946
-
947
- for (var key in two) {
948
- if (two.hasOwnProperty(key)) {
949
- !(one[key] === undefined) ? "development" !== 'production' ? invariant(false, '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) : _prodInvariant('81', key) : void 0;
950
- one[key] = two[key];
951
- }
952
- }
953
- return one;
954
- }
955
-
956
- /**
957
- * Creates a function that invokes two functions and merges their return values.
958
- *
959
- * @param {function} one Function to invoke first.
960
- * @param {function} two Function to invoke second.
961
- * @return {function} Function that invokes the two argument functions.
962
- * @private
963
- */
964
- function createMergedResultFunction(one, two) {
965
- return function mergedResult() {
966
- var a = one.apply(this, arguments);
967
- var b = two.apply(this, arguments);
968
- if (a == null) {
969
- return b;
970
- } else if (b == null) {
971
- return a;
972
- }
973
- var c = {};
974
- mergeIntoWithNoDuplicateKeys(c, a);
975
- mergeIntoWithNoDuplicateKeys(c, b);
976
- return c;
977
- };
978
- }
979
-
980
- /**
981
- * Creates a function that invokes two functions and ignores their return vales.
982
- *
983
- * @param {function} one Function to invoke first.
984
- * @param {function} two Function to invoke second.
985
- * @return {function} Function that invokes the two argument functions.
986
- * @private
987
- */
988
- function createChainedFunction(one, two) {
989
- return function chainedFunction() {
990
- one.apply(this, arguments);
991
- two.apply(this, arguments);
992
- };
993
- }
994
-
995
- /**
996
- * Binds a method to the component.
997
- *
998
- * @param {object} component Component whose method is going to be bound.
999
- * @param {function} method Method to be bound.
1000
- * @return {function} The bound method.
1001
- */
1002
- function bindAutoBindMethod(component, method) {
1003
- var boundMethod = method.bind(component);
1004
- if ("development" !== 'production') {
1005
- boundMethod.__reactBoundContext = component;
1006
- boundMethod.__reactBoundMethod = method;
1007
- boundMethod.__reactBoundArguments = null;
1008
- var componentName = component.constructor.displayName;
1009
- var _bind = boundMethod.bind;
1010
- boundMethod.bind = function (newThis) {
1011
- for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
1012
- args[_key - 1] = arguments[_key];
1013
- }
1014
-
1015
- // User is trying to bind() an autobound method; we effectively will
1016
- // ignore the value of "this" that the user is trying to use, so
1017
- // let's warn.
1018
- if (newThis !== component && newThis !== null) {
1019
- "development" !== 'production' ? warning(false, 'bind(): React component methods may only be bound to the ' + 'component instance. See %s', componentName) : void 0;
1020
- } else if (!args.length) {
1021
- "development" !== '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;
1022
- return boundMethod;
1023
- }
1024
- var reboundMethod = _bind.apply(boundMethod, arguments);
1025
- reboundMethod.__reactBoundContext = component;
1026
- reboundMethod.__reactBoundMethod = method;
1027
- reboundMethod.__reactBoundArguments = args;
1028
- return reboundMethod;
1029
- };
1030
- }
1031
- return boundMethod;
1032
- }
1033
-
1034
- /**
1035
- * Binds all auto-bound methods in a component.
1036
- *
1037
- * @param {object} component Component whose method is going to be bound.
1038
- */
1039
- function bindAutoBindMethods(component) {
1040
- var pairs = component.__reactAutoBindPairs;
1041
- for (var i = 0; i < pairs.length; i += 2) {
1042
- var autoBindKey = pairs[i];
1043
- var method = pairs[i + 1];
1044
- component[autoBindKey] = bindAutoBindMethod(component, method);
1045
- }
1046
- }
1047
-
1048
- /**
1049
- * Add more to the ReactClass base class. These are all legacy features and
1050
- * therefore not already part of the modern ReactComponent.
1051
- */
1052
- var ReactClassMixin = {
1053
-
1054
- /**
1055
- * TODO: This will be deprecated because state should always keep a consistent
1056
- * type signature and the only use case for this, is to avoid that.
1057
- */
1058
- replaceState: function (newState, callback) {
1059
- this.updater.enqueueReplaceState(this, newState);
1060
- if (callback) {
1061
- this.updater.enqueueCallback(this, callback, 'replaceState');
1062
- }
1063
- },
1064
-
1065
- /**
1066
- * Checks whether or not this composite component is mounted.
1067
- * @return {boolean} True if mounted, false otherwise.
1068
- * @protected
1069
- * @final
1070
- */
1071
- isMounted: function () {
1072
- return this.updater.isMounted(this);
1073
- }
1074
- };
1075
-
1076
- var ReactClassComponent = function () {};
1077
- _assign(ReactClassComponent.prototype, ReactComponent.prototype, ReactClassMixin);
1078
-
1079
- var didWarnDeprecated = false;
1080
-
1081
- /**
1082
- * Module for creating composite components.
1083
- *
1084
- * @class ReactClass
1085
- */
1086
- var ReactClass = {
1087
-
1088
- /**
1089
- * Creates a composite component class given a class specification.
1090
- * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass
1091
- *
1092
- * @param {object} spec Class specification (which must define `render`).
1093
- * @return {function} Component constructor function.
1094
- * @public
1095
- */
1096
- createClass: function (spec) {
1097
- if ("development" !== 'production') {
1098
- "development" !== 'production' ? warning(didWarnDeprecated, '%s: React.createClass is deprecated and will be removed in version 16. ' + 'Use plain JavaScript classes instead. If you\'re not yet ready to ' + 'migrate, create-react-class is available on npm as a ' + 'drop-in replacement.', spec && spec.displayName || 'A Component') : void 0;
1099
- didWarnDeprecated = true;
1100
- }
1101
-
1102
- // To keep our warnings more understandable, we'll use a little hack here to
1103
- // ensure that Constructor.name !== 'Constructor'. This makes sure we don't
1104
- // unnecessarily identify a class without displayName as 'Constructor'.
1105
- var Constructor = identity(function (props, context, updater) {
1106
- // This constructor gets overridden by mocks. The argument is used
1107
- // by mocks to assert on what gets mounted.
1108
-
1109
- if ("development" !== 'production') {
1110
- "development" !== '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;
1111
- }
1112
-
1113
- // Wire up auto-binding
1114
- if (this.__reactAutoBindPairs.length) {
1115
- bindAutoBindMethods(this);
1116
- }
1117
-
1118
- this.props = props;
1119
- this.context = context;
1120
- this.refs = emptyObject;
1121
- this.updater = updater || ReactNoopUpdateQueue;
1122
-
1123
- this.state = null;
1124
-
1125
- // ReactClasses doesn't have constructors. Instead, they use the
1126
- // getInitialState and componentWillMount methods for initialization.
1127
-
1128
- var initialState = this.getInitialState ? this.getInitialState() : null;
1129
- if ("development" !== 'production') {
1130
- // We allow auto-mocks to proceed as if they're returning null.
1131
- if (initialState === undefined && this.getInitialState._isMockFunction) {
1132
- // This is probably bad practice. Consider warning here and
1133
- // deprecating this convenience.
1134
- initialState = null;
1135
- }
1136
- }
1137
- !(typeof initialState === 'object' && !Array.isArray(initialState)) ? "development" !== 'production' ? invariant(false, '%s.getInitialState(): must return an object or null', Constructor.displayName || 'ReactCompositeComponent') : _prodInvariant('82', Constructor.displayName || 'ReactCompositeComponent') : void 0;
1138
-
1139
- this.state = initialState;
1140
- });
1141
- Constructor.prototype = new ReactClassComponent();
1142
- Constructor.prototype.constructor = Constructor;
1143
- Constructor.prototype.__reactAutoBindPairs = [];
1144
-
1145
- injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));
1146
-
1147
- mixSpecIntoComponent(Constructor, spec);
1148
-
1149
- // Initialize the defaultProps property after all mixins have been merged.
1150
- if (Constructor.getDefaultProps) {
1151
- Constructor.defaultProps = Constructor.getDefaultProps();
1152
- }
1153
-
1154
- if ("development" !== 'production') {
1155
- // This is a tag to indicate that the use of these method names is ok,
1156
- // since it's used with createClass. If it's not, then it's likely a
1157
- // mistake so we'll warn you to use the static property, property
1158
- // initializer or constructor respectively.
1159
- if (Constructor.getDefaultProps) {
1160
- Constructor.getDefaultProps.isReactClassApproved = {};
1161
- }
1162
- if (Constructor.prototype.getInitialState) {
1163
- Constructor.prototype.getInitialState.isReactClassApproved = {};
1164
- }
1165
- }
1166
-
1167
- !Constructor.prototype.render ? "development" !== 'production' ? invariant(false, 'createClass(...): Class specification must implement a `render` method.') : _prodInvariant('83') : void 0;
1168
-
1169
- if ("development" !== 'production') {
1170
- "development" !== '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;
1171
- "development" !== 'production' ? warning(!Constructor.prototype.componentWillRecieveProps, '%s has a method called ' + 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?', spec.displayName || 'A component') : void 0;
1172
- }
1173
-
1174
- // Reduce time spent doing lookups by setting these on the prototype.
1175
- for (var methodName in ReactClassInterface) {
1176
- if (!Constructor.prototype[methodName]) {
1177
- Constructor.prototype[methodName] = null;
1178
- }
1179
- }
1180
-
1181
- return Constructor;
1182
- },
1183
-
1184
- injection: {
1185
- injectMixin: function (mixin) {
1186
- injectedMixins.push(mixin);
1187
- }
1188
- }
1189
-
1190
- };
1191
-
1192
- module.exports = ReactClass;
1193
- },{"10":10,"13":13,"14":14,"25":25,"28":28,"29":29,"30":30,"31":31,"6":6}],6:[function(_dereq_,module,exports){
1194
- /**
1195
- * Copyright 2013-present, Facebook, Inc.
1196
- * All rights reserved.
1197
- *
1198
- * This source code is licensed under the BSD-style license found in the
1199
- * LICENSE file in the root directory of this source tree. An additional grant
1200
- * of patent rights can be found in the PATENTS file in the same directory.
1201
- *
1202
- */
1203
-
1204
- 'use strict';
1205
-
1206
- var _prodInvariant = _dereq_(25);
1207
-
1208
- var ReactNoopUpdateQueue = _dereq_(13);
1209
-
1210
- var canDefineProperty = _dereq_(20);
1211
- var emptyObject = _dereq_(28);
1212
- var invariant = _dereq_(29);
1213
- var warning = _dereq_(30);
1214
-
1215
- /**
1216
- * Base class helpers for the updating state of a component.
1217
- */
1218
- function ReactComponent(props, context, updater) {
1219
- this.props = props;
1220
- this.context = context;
1221
- this.refs = emptyObject;
1222
- // We initialize the default updater but the real one gets injected by the
1223
- // renderer.
1224
- this.updater = updater || ReactNoopUpdateQueue;
1225
- }
1226
-
1227
- ReactComponent.prototype.isReactComponent = {};
1228
-
1229
- /**
1230
- * Sets a subset of the state. Always use this to mutate
1231
- * state. You should treat `this.state` as immutable.
1232
- *
1233
- * There is no guarantee that `this.state` will be immediately updated, so
1234
- * accessing `this.state` after calling this method may return the old value.
1235
- *
1236
- * There is no guarantee that calls to `setState` will run synchronously,
1237
- * as they may eventually be batched together. You can provide an optional
1238
- * callback that will be executed when the call to setState is actually
1239
- * completed.
1240
- *
1241
- * When a function is provided to setState, it will be called at some point in
1242
- * the future (not synchronously). It will be called with the up to date
1243
- * component arguments (state, props, context). These values can be different
1244
- * from this.* because your function may be called after receiveProps but before
1245
- * shouldComponentUpdate, and this new state, props, and context will not yet be
1246
- * assigned to this.
1247
- *
1248
- * @param {object|function} partialState Next partial state or function to
1249
- * produce next partial state to be merged with current state.
1250
- * @param {?function} callback Called after state is updated.
1251
- * @final
1252
- * @protected
1253
- */
1254
- ReactComponent.prototype.setState = function (partialState, callback) {
1255
- !(typeof partialState === 'object' || typeof partialState === 'function' || partialState == null) ? "development" !== 'production' ? invariant(false, 'setState(...): takes an object of state variables to update or a function which returns an object of state variables.') : _prodInvariant('85') : void 0;
1256
- this.updater.enqueueSetState(this, partialState);
1257
- if (callback) {
1258
- this.updater.enqueueCallback(this, callback, 'setState');
1259
- }
1260
- };
1261
-
1262
- /**
1263
- * Forces an update. This should only be invoked when it is known with
1264
- * certainty that we are **not** in a DOM transaction.
1265
- *
1266
- * You may want to call this when you know that some deeper aspect of the
1267
- * component's state has changed but `setState` was not called.
1268
- *
1269
- * This will not invoke `shouldComponentUpdate`, but it will invoke
1270
- * `componentWillUpdate` and `componentDidUpdate`.
1271
- *
1272
- * @param {?function} callback Called after update is complete.
1273
- * @final
1274
- * @protected
1275
- */
1276
- ReactComponent.prototype.forceUpdate = function (callback) {
1277
- this.updater.enqueueForceUpdate(this);
1278
- if (callback) {
1279
- this.updater.enqueueCallback(this, callback, 'forceUpdate');
1280
- }
1281
- };
1282
-
1283
- /**
1284
- * Deprecated APIs. These APIs used to exist on classic React classes but since
1285
- * we would like to deprecate them, we're not going to move them over to this
1286
- * modern base class. Instead, we define a getter that warns if it's accessed.
1287
- */
1288
- if ("development" !== 'production') {
1289
- var deprecatedAPIs = {
1290
- isMounted: ['isMounted', 'Instead, make sure to clean up subscriptions and pending requests in ' + 'componentWillUnmount to prevent memory leaks.'],
1291
- replaceState: ['replaceState', 'Refactor your code to use setState instead (see ' + 'https://github.com/facebook/react/issues/3236).']
1292
- };
1293
- var defineDeprecationWarning = function (methodName, info) {
1294
- if (canDefineProperty) {
1295
- Object.defineProperty(ReactComponent.prototype, methodName, {
1296
- get: function () {
1297
- "development" !== 'production' ? warning(false, '%s(...) is deprecated in plain JavaScript React classes. %s', info[0], info[1]) : void 0;
1298
- return undefined;
1299
- }
1300
- });
1301
- }
1302
- };
1303
- for (var fnName in deprecatedAPIs) {
1304
- if (deprecatedAPIs.hasOwnProperty(fnName)) {
1305
- defineDeprecationWarning(fnName, deprecatedAPIs[fnName]);
1306
- }
1307
- }
1308
- }
1309
-
1310
- module.exports = ReactComponent;
1311
- },{"13":13,"20":20,"25":25,"28":28,"29":29,"30":30}],7:[function(_dereq_,module,exports){
1312
- /**
1313
- * Copyright 2016-present, Facebook, Inc.
1314
- * All rights reserved.
1315
- *
1316
- * This source code is licensed under the BSD-style license found in the
1317
- * LICENSE file in the root directory of this source tree. An additional grant
1318
- * of patent rights can be found in the PATENTS file in the same directory.
1319
- *
1320
- *
1321
- */
1322
-
1323
- 'use strict';
1324
-
1325
- var _prodInvariant = _dereq_(25);
1326
-
1327
- var ReactCurrentOwner = _dereq_(8);
1328
-
1329
- var invariant = _dereq_(29);
1330
- var warning = _dereq_(30);
1331
-
1332
- function isNative(fn) {
1333
- // Based on isNative() from Lodash
1334
- var funcToString = Function.prototype.toString;
1335
- var hasOwnProperty = Object.prototype.hasOwnProperty;
1336
- var reIsNative = RegExp('^' + funcToString
1337
- // Take an example native function source for comparison
1338
- .call(hasOwnProperty)
1339
- // Strip regex characters so we can use it for regex
1340
- .replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
1341
- // Remove hasOwnProperty from the template to make it generic
1342
- .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$');
1343
- try {
1344
- var source = funcToString.call(fn);
1345
- return reIsNative.test(source);
1346
- } catch (err) {
1347
- return false;
1348
- }
1349
- }
1350
-
1351
- var canUseCollections =
1352
- // Array.from
1353
- typeof Array.from === 'function' &&
1354
- // Map
1355
- typeof Map === 'function' && isNative(Map) &&
1356
- // Map.prototype.keys
1357
- Map.prototype != null && typeof Map.prototype.keys === 'function' && isNative(Map.prototype.keys) &&
1358
- // Set
1359
- typeof Set === 'function' && isNative(Set) &&
1360
- // Set.prototype.keys
1361
- Set.prototype != null && typeof Set.prototype.keys === 'function' && isNative(Set.prototype.keys);
1362
-
1363
- var setItem;
1364
- var getItem;
1365
- var removeItem;
1366
- var getItemIDs;
1367
- var addRoot;
1368
- var removeRoot;
1369
- var getRootIDs;
1370
-
1371
- if (canUseCollections) {
1372
- var itemMap = new Map();
1373
- var rootIDSet = new Set();
1374
-
1375
- setItem = function (id, item) {
1376
- itemMap.set(id, item);
1377
- };
1378
- getItem = function (id) {
1379
- return itemMap.get(id);
1380
- };
1381
- removeItem = function (id) {
1382
- itemMap['delete'](id);
1383
- };
1384
- getItemIDs = function () {
1385
- return Array.from(itemMap.keys());
1386
- };
1387
-
1388
- addRoot = function (id) {
1389
- rootIDSet.add(id);
1390
- };
1391
- removeRoot = function (id) {
1392
- rootIDSet['delete'](id);
1393
- };
1394
- getRootIDs = function () {
1395
- return Array.from(rootIDSet.keys());
1396
- };
1397
- } else {
1398
- var itemByKey = {};
1399
- var rootByKey = {};
706
+ addRoot = function (id) {
707
+ rootIDSet.add(id);
708
+ };
709
+ removeRoot = function (id) {
710
+ rootIDSet['delete'](id);
711
+ };
712
+ getRootIDs = function () {
713
+ return Array.from(rootIDSet.keys());
714
+ };
715
+ } else {
716
+ var itemByKey = {};
717
+ var rootByKey = {};
1400
718
 
1401
719
  // Use non-numeric keys to prevent V8 performance issues:
1402
720
  // https://github.com/facebook/react/pull/7232
@@ -1637,19 +955,62 @@ var ReactComponentTreeHook = {
1637
955
  },
1638
956
 
1639
957
 
1640
- getRootIDs: getRootIDs,
1641
- getRegisteredIDs: getItemIDs
958
+ getRootIDs: getRootIDs,
959
+ getRegisteredIDs: getItemIDs,
960
+
961
+ pushNonStandardWarningStack: function (isCreatingElement, currentSource) {
962
+ if (typeof console.reactStack !== 'function') {
963
+ return;
964
+ }
965
+
966
+ var stack = [];
967
+ var currentOwner = ReactCurrentOwner.current;
968
+ var id = currentOwner && currentOwner._debugID;
969
+
970
+ try {
971
+ if (isCreatingElement) {
972
+ stack.push({
973
+ name: id ? ReactComponentTreeHook.getDisplayName(id) : null,
974
+ fileName: currentSource ? currentSource.fileName : null,
975
+ lineNumber: currentSource ? currentSource.lineNumber : null
976
+ });
977
+ }
978
+
979
+ while (id) {
980
+ var element = ReactComponentTreeHook.getElement(id);
981
+ var parentID = ReactComponentTreeHook.getParentID(id);
982
+ var ownerID = ReactComponentTreeHook.getOwnerID(id);
983
+ var ownerName = ownerID ? ReactComponentTreeHook.getDisplayName(ownerID) : null;
984
+ var source = element && element._source;
985
+ stack.push({
986
+ name: ownerName,
987
+ fileName: source ? source.fileName : null,
988
+ lineNumber: source ? source.lineNumber : null
989
+ });
990
+ id = parentID;
991
+ }
992
+ } catch (err) {
993
+ // Internal state is messed up.
994
+ // Stop building the stack (it's just a nice to have).
995
+ }
996
+
997
+ console.reactStack(stack);
998
+ },
999
+ popNonStandardWarningStack: function () {
1000
+ if (typeof console.reactStackEnd !== 'function') {
1001
+ return;
1002
+ }
1003
+ console.reactStackEnd();
1004
+ }
1642
1005
  };
1643
1006
 
1644
1007
  module.exports = ReactComponentTreeHook;
1645
- },{"25":25,"29":29,"30":30,"8":8}],8:[function(_dereq_,module,exports){
1008
+ },{"25":25,"30":30,"31":31,"7":7}],7:[function(_dereq_,module,exports){
1646
1009
  /**
1647
- * Copyright 2013-present, Facebook, Inc.
1648
- * All rights reserved.
1010
+ * Copyright (c) 2013-present, Facebook, Inc.
1649
1011
  *
1650
- * This source code is licensed under the BSD-style license found in the
1651
- * LICENSE file in the root directory of this source tree. An additional grant
1652
- * of patent rights can be found in the PATENTS file in the same directory.
1012
+ * This source code is licensed under the MIT license found in the
1013
+ * LICENSE file in the root directory of this source tree.
1653
1014
  *
1654
1015
  *
1655
1016
  */
@@ -1663,30 +1024,26 @@ module.exports = ReactComponentTreeHook;
1663
1024
  * currently being constructed.
1664
1025
  */
1665
1026
  var ReactCurrentOwner = {
1666
-
1667
1027
  /**
1668
1028
  * @internal
1669
1029
  * @type {ReactComponent}
1670
1030
  */
1671
1031
  current: null
1672
-
1673
1032
  };
1674
1033
 
1675
1034
  module.exports = ReactCurrentOwner;
1676
- },{}],9:[function(_dereq_,module,exports){
1035
+ },{}],8:[function(_dereq_,module,exports){
1677
1036
  /**
1678
- * Copyright 2013-present, Facebook, Inc.
1679
- * All rights reserved.
1037
+ * Copyright (c) 2013-present, Facebook, Inc.
1680
1038
  *
1681
- * This source code is licensed under the BSD-style license found in the
1682
- * LICENSE file in the root directory of this source tree. An additional grant
1683
- * of patent rights can be found in the PATENTS file in the same directory.
1039
+ * This source code is licensed under the MIT license found in the
1040
+ * LICENSE file in the root directory of this source tree.
1684
1041
  *
1685
1042
  */
1686
1043
 
1687
1044
  'use strict';
1688
1045
 
1689
- var ReactElement = _dereq_(10);
1046
+ var ReactElement = _dereq_(9);
1690
1047
 
1691
1048
  /**
1692
1049
  * Create a factory that creates HTML tag elements.
@@ -1695,13 +1052,12 @@ var ReactElement = _dereq_(10);
1695
1052
  */
1696
1053
  var createDOMFactory = ReactElement.createFactory;
1697
1054
  if ("development" !== 'production') {
1698
- var ReactElementValidator = _dereq_(12);
1055
+ var ReactElementValidator = _dereq_(11);
1699
1056
  createDOMFactory = ReactElementValidator.createFactory;
1700
1057
  }
1701
1058
 
1702
1059
  /**
1703
1060
  * Creates a mapping from supported HTML tags to `ReactDOMComponent` classes.
1704
- * This is also accessible via `React.DOM`.
1705
1061
  *
1706
1062
  * @public
1707
1063
  */
@@ -1843,28 +1199,26 @@ var ReactDOMFactories = {
1843
1199
  };
1844
1200
 
1845
1201
  module.exports = ReactDOMFactories;
1846
- },{"10":10,"12":12}],10:[function(_dereq_,module,exports){
1202
+ },{"11":11,"9":9}],9:[function(_dereq_,module,exports){
1847
1203
  /**
1848
- * Copyright 2014-present, Facebook, Inc.
1849
- * All rights reserved.
1204
+ * Copyright (c) 2014-present, Facebook, Inc.
1850
1205
  *
1851
- * This source code is licensed under the BSD-style license found in the
1852
- * LICENSE file in the root directory of this source tree. An additional grant
1853
- * of patent rights can be found in the PATENTS file in the same directory.
1206
+ * This source code is licensed under the MIT license found in the
1207
+ * LICENSE file in the root directory of this source tree.
1854
1208
  *
1855
1209
  */
1856
1210
 
1857
1211
  'use strict';
1858
1212
 
1859
- var _assign = _dereq_(31);
1213
+ var _assign = _dereq_(32);
1860
1214
 
1861
- var ReactCurrentOwner = _dereq_(8);
1215
+ var ReactCurrentOwner = _dereq_(7);
1862
1216
 
1863
- var warning = _dereq_(30);
1864
- var canDefineProperty = _dereq_(20);
1217
+ var warning = _dereq_(31);
1218
+ var canDefineProperty = _dereq_(18);
1865
1219
  var hasOwnProperty = Object.prototype.hasOwnProperty;
1866
1220
 
1867
- var REACT_ELEMENT_TYPE = _dereq_(11);
1221
+ var REACT_ELEMENT_TYPE = _dereq_(10);
1868
1222
 
1869
1223
  var RESERVED_PROPS = {
1870
1224
  key: true,
@@ -2184,14 +1538,12 @@ ReactElement.isValidElement = function (object) {
2184
1538
  };
2185
1539
 
2186
1540
  module.exports = ReactElement;
2187
- },{"11":11,"20":20,"30":30,"31":31,"8":8}],11:[function(_dereq_,module,exports){
1541
+ },{"10":10,"18":18,"31":31,"32":32,"7":7}],10:[function(_dereq_,module,exports){
2188
1542
  /**
2189
- * Copyright 2014-present, Facebook, Inc.
2190
- * All rights reserved.
1543
+ * Copyright (c) 2014-present, Facebook, Inc.
2191
1544
  *
2192
- * This source code is licensed under the BSD-style license found in the
2193
- * LICENSE file in the root directory of this source tree. An additional grant
2194
- * of patent rights can be found in the PATENTS file in the same directory.
1545
+ * This source code is licensed under the MIT license found in the
1546
+ * LICENSE file in the root directory of this source tree.
2195
1547
  *
2196
1548
  *
2197
1549
  */
@@ -2204,14 +1556,12 @@ module.exports = ReactElement;
2204
1556
  var REACT_ELEMENT_TYPE = typeof Symbol === 'function' && Symbol['for'] && Symbol['for']('react.element') || 0xeac7;
2205
1557
 
2206
1558
  module.exports = REACT_ELEMENT_TYPE;
2207
- },{}],12:[function(_dereq_,module,exports){
1559
+ },{}],11:[function(_dereq_,module,exports){
2208
1560
  /**
2209
- * Copyright 2014-present, Facebook, Inc.
2210
- * All rights reserved.
1561
+ * Copyright (c) 2014-present, Facebook, Inc.
2211
1562
  *
2212
- * This source code is licensed under the BSD-style license found in the
2213
- * LICENSE file in the root directory of this source tree. An additional grant
2214
- * of patent rights can be found in the PATENTS file in the same directory.
1563
+ * This source code is licensed under the MIT license found in the
1564
+ * LICENSE file in the root directory of this source tree.
2215
1565
  *
2216
1566
  */
2217
1567
 
@@ -2224,15 +1574,16 @@ module.exports = REACT_ELEMENT_TYPE;
2224
1574
 
2225
1575
  'use strict';
2226
1576
 
2227
- var ReactCurrentOwner = _dereq_(8);
2228
- var ReactComponentTreeHook = _dereq_(7);
2229
- var ReactElement = _dereq_(10);
1577
+ var ReactCurrentOwner = _dereq_(7);
1578
+ var ReactComponentTreeHook = _dereq_(6);
1579
+ var ReactElement = _dereq_(9);
2230
1580
 
2231
- var checkReactTypeSpec = _dereq_(21);
1581
+ var checkReactTypeSpec = _dereq_(19);
2232
1582
 
2233
- var canDefineProperty = _dereq_(20);
2234
- var getIteratorFn = _dereq_(22);
2235
- var warning = _dereq_(30);
1583
+ var canDefineProperty = _dereq_(18);
1584
+ var getIteratorFn = _dereq_(21);
1585
+ var warning = _dereq_(31);
1586
+ var lowPriorityWarning = _dereq_(23);
2236
1587
 
2237
1588
  function getDeclarationErrorAddendum() {
2238
1589
  if (ReactCurrentOwner.current) {
@@ -2373,7 +1724,6 @@ function validatePropTypes(element) {
2373
1724
  }
2374
1725
 
2375
1726
  var ReactElementValidator = {
2376
-
2377
1727
  createElement: function (type, props, children) {
2378
1728
  var validType = typeof type === 'string' || typeof type === 'function';
2379
1729
  // We warn in this case but don't throw. We expect the element creation to
@@ -2382,7 +1732,7 @@ var ReactElementValidator = {
2382
1732
  if (typeof type !== 'function' && typeof type !== 'string') {
2383
1733
  var info = '';
2384
1734
  if (type === undefined || typeof type === 'object' && type !== null && Object.keys(type).length === 0) {
2385
- info += ' You likely forgot to export your component from the file ' + 'it\'s defined in.';
1735
+ info += ' You likely forgot to export your component from the file ' + "it's defined in.";
2386
1736
  }
2387
1737
 
2388
1738
  var sourceInfo = getSourceInfoErrorAddendum(props);
@@ -2394,7 +1744,10 @@ var ReactElementValidator = {
2394
1744
 
2395
1745
  info += ReactComponentTreeHook.getCurrentStackAddendum();
2396
1746
 
1747
+ var currentSource = props !== null && props !== undefined && props.__source !== undefined ? props.__source : null;
1748
+ ReactComponentTreeHook.pushNonStandardWarningStack(true, currentSource);
2397
1749
  "development" !== 'production' ? warning(false, 'React.createElement: type is invalid -- expected a string (for ' + 'built-in components) or a class/function (for composite ' + 'components) but got: %s.%s', type == null ? type : typeof type, info) : void 0;
1750
+ ReactComponentTreeHook.popNonStandardWarningStack();
2398
1751
  }
2399
1752
  }
2400
1753
 
@@ -2432,7 +1785,7 @@ var ReactElementValidator = {
2432
1785
  Object.defineProperty(validatedFactory, 'type', {
2433
1786
  enumerable: false,
2434
1787
  get: function () {
2435
- "development" !== 'production' ? warning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.') : void 0;
1788
+ lowPriorityWarning(false, 'Factory.type is deprecated. Access the class directly ' + 'before passing it to createFactory.');
2436
1789
  Object.defineProperty(this, 'type', {
2437
1790
  value: type
2438
1791
  });
@@ -2453,24 +1806,21 @@ var ReactElementValidator = {
2453
1806
  validatePropTypes(newElement);
2454
1807
  return newElement;
2455
1808
  }
2456
-
2457
1809
  };
2458
1810
 
2459
1811
  module.exports = ReactElementValidator;
2460
- },{"10":10,"20":20,"21":21,"22":22,"30":30,"7":7,"8":8}],13:[function(_dereq_,module,exports){
1812
+ },{"18":18,"19":19,"21":21,"23":23,"31":31,"6":6,"7":7,"9":9}],12:[function(_dereq_,module,exports){
2461
1813
  /**
2462
- * Copyright 2015-present, Facebook, Inc.
2463
- * All rights reserved.
1814
+ * Copyright (c) 2015-present, Facebook, Inc.
2464
1815
  *
2465
- * This source code is licensed under the BSD-style license found in the
2466
- * LICENSE file in the root directory of this source tree. An additional grant
2467
- * of patent rights can be found in the PATENTS file in the same directory.
1816
+ * This source code is licensed under the MIT license found in the
1817
+ * LICENSE file in the root directory of this source tree.
2468
1818
  *
2469
1819
  */
2470
1820
 
2471
1821
  'use strict';
2472
1822
 
2473
- var warning = _dereq_(30);
1823
+ var warning = _dereq_(31);
2474
1824
 
2475
1825
  function warnNoop(publicInstance, callerName) {
2476
1826
  if ("development" !== 'production') {
@@ -2483,7 +1833,6 @@ function warnNoop(publicInstance, callerName) {
2483
1833
  * This is the abstract API for an update queue.
2484
1834
  */
2485
1835
  var ReactNoopUpdateQueue = {
2486
-
2487
1836
  /**
2488
1837
  * Checks whether or not this composite component is mounted.
2489
1838
  * @param {ReactClass} publicInstance The instance we want to test.
@@ -2553,14 +1902,12 @@ var ReactNoopUpdateQueue = {
2553
1902
  };
2554
1903
 
2555
1904
  module.exports = ReactNoopUpdateQueue;
2556
- },{"30":30}],14:[function(_dereq_,module,exports){
1905
+ },{"31":31}],13:[function(_dereq_,module,exports){
2557
1906
  /**
2558
- * Copyright 2013-present, Facebook, Inc.
2559
- * All rights reserved.
1907
+ * Copyright (c) 2013-present, Facebook, Inc.
2560
1908
  *
2561
- * This source code is licensed under the BSD-style license found in the
2562
- * LICENSE file in the root directory of this source tree. An additional grant
2563
- * of patent rights can be found in the PATENTS file in the same directory.
1909
+ * This source code is licensed under the MIT license found in the
1910
+ * LICENSE file in the root directory of this source tree.
2564
1911
  *
2565
1912
  *
2566
1913
  */
@@ -2578,33 +1925,29 @@ if ("development" !== 'production') {
2578
1925
  }
2579
1926
 
2580
1927
  module.exports = ReactPropTypeLocationNames;
2581
- },{}],15:[function(_dereq_,module,exports){
1928
+ },{}],14:[function(_dereq_,module,exports){
2582
1929
  /**
2583
- * Copyright 2013-present, Facebook, Inc.
2584
- * All rights reserved.
1930
+ * Copyright (c) 2013-present, Facebook, Inc.
2585
1931
  *
2586
- * This source code is licensed under the BSD-style license found in the
2587
- * LICENSE file in the root directory of this source tree. An additional grant
2588
- * of patent rights can be found in the PATENTS file in the same directory.
1932
+ * This source code is licensed under the MIT license found in the
1933
+ * LICENSE file in the root directory of this source tree.
2589
1934
  *
2590
1935
  */
2591
1936
 
2592
1937
  'use strict';
2593
1938
 
2594
- var _require = _dereq_(10),
1939
+ var _require = _dereq_(9),
2595
1940
  isValidElement = _require.isValidElement;
2596
1941
 
2597
- var factory = _dereq_(33);
1942
+ var factory = _dereq_(34);
2598
1943
 
2599
1944
  module.exports = factory(isValidElement);
2600
- },{"10":10,"33":33}],16:[function(_dereq_,module,exports){
1945
+ },{"34":34,"9":9}],15:[function(_dereq_,module,exports){
2601
1946
  /**
2602
- * Copyright 2013-present, Facebook, Inc.
2603
- * All rights reserved.
1947
+ * Copyright (c) 2013-present, Facebook, Inc.
2604
1948
  *
2605
- * This source code is licensed under the BSD-style license found in the
2606
- * LICENSE file in the root directory of this source tree. An additional grant
2607
- * of patent rights can be found in the PATENTS file in the same directory.
1949
+ * This source code is licensed under the MIT license found in the
1950
+ * LICENSE file in the root directory of this source tree.
2608
1951
  *
2609
1952
  *
2610
1953
  */
@@ -2614,130 +1957,381 @@ module.exports = factory(isValidElement);
2614
1957
  var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
2615
1958
 
2616
1959
  module.exports = ReactPropTypesSecret;
2617
- },{}],17:[function(_dereq_,module,exports){
1960
+ },{}],16:[function(_dereq_,module,exports){
2618
1961
  /**
2619
- * Copyright 2013-present, Facebook, Inc.
2620
- * All rights reserved.
1962
+ * Copyright (c) 2013-present, Facebook, Inc.
2621
1963
  *
2622
- * This source code is licensed under the BSD-style license found in the
2623
- * LICENSE file in the root directory of this source tree. An additional grant
2624
- * of patent rights can be found in the PATENTS file in the same directory.
1964
+ * This source code is licensed under the MIT license found in the
1965
+ * LICENSE file in the root directory of this source tree.
2625
1966
  *
2626
1967
  */
2627
1968
 
2628
1969
  'use strict';
2629
1970
 
2630
- var _assign = _dereq_(31);
1971
+ var _assign = _dereq_(32);
1972
+
1973
+ var React = _dereq_(3);
2631
1974
 
2632
- var ReactComponent = _dereq_(6);
2633
- var ReactNoopUpdateQueue = _dereq_(13);
1975
+ // `version` will be added here by the React module.
1976
+ var ReactUMDEntry = _assign(React, {
1977
+ __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {
1978
+ ReactCurrentOwner: _dereq_(7)
1979
+ }
1980
+ });
2634
1981
 
2635
- var emptyObject = _dereq_(28);
1982
+ if ("development" !== 'production') {
1983
+ _assign(ReactUMDEntry.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, {
1984
+ // ReactComponentTreeHook should not be included in production.
1985
+ ReactComponentTreeHook: _dereq_(6),
1986
+ getNextDebugID: _dereq_(22)
1987
+ });
1988
+ }
2636
1989
 
1990
+ module.exports = ReactUMDEntry;
1991
+ },{"22":22,"3":3,"32":32,"6":6,"7":7}],17:[function(_dereq_,module,exports){
2637
1992
  /**
2638
- * Base class helpers for the updating state of a component.
1993
+ * Copyright (c) 2013-present, Facebook, Inc.
1994
+ *
1995
+ * This source code is licensed under the MIT license found in the
1996
+ * LICENSE file in the root directory of this source tree.
1997
+ *
2639
1998
  */
2640
- function ReactPureComponent(props, context, updater) {
2641
- // Duplicated from ReactComponent.
2642
- this.props = props;
2643
- this.context = context;
2644
- this.refs = emptyObject;
2645
- // We initialize the default updater but the real one gets injected by the
2646
- // renderer.
2647
- this.updater = updater || ReactNoopUpdateQueue;
1999
+
2000
+ 'use strict';
2001
+
2002
+ module.exports = '15.6.2';
2003
+ },{}],18:[function(_dereq_,module,exports){
2004
+ /**
2005
+ * Copyright (c) 2013-present, Facebook, Inc.
2006
+ *
2007
+ * This source code is licensed under the MIT license found in the
2008
+ * LICENSE file in the root directory of this source tree.
2009
+ *
2010
+ *
2011
+ */
2012
+
2013
+ 'use strict';
2014
+
2015
+ var canDefineProperty = false;
2016
+ if ("development" !== 'production') {
2017
+ try {
2018
+ // $FlowFixMe https://github.com/facebook/flow/issues/285
2019
+ Object.defineProperty({}, 'x', { get: function () {} });
2020
+ canDefineProperty = true;
2021
+ } catch (x) {
2022
+ // IE will fail on defineProperty
2023
+ }
2648
2024
  }
2649
2025
 
2650
- function ComponentDummy() {}
2651
- ComponentDummy.prototype = ReactComponent.prototype;
2652
- ReactPureComponent.prototype = new ComponentDummy();
2653
- ReactPureComponent.prototype.constructor = ReactPureComponent;
2654
- // Avoid an extra prototype jump for these methods.
2655
- _assign(ReactPureComponent.prototype, ReactComponent.prototype);
2656
- ReactPureComponent.prototype.isPureReactComponent = true;
2026
+ module.exports = canDefineProperty;
2027
+ },{}],19:[function(_dereq_,module,exports){
2028
+ (function (process){
2029
+ /**
2030
+ * Copyright (c) 2013-present, Facebook, Inc.
2031
+ *
2032
+ * This source code is licensed under the MIT license found in the
2033
+ * LICENSE file in the root directory of this source tree.
2034
+ *
2035
+ */
2036
+
2037
+ 'use strict';
2038
+
2039
+ var _prodInvariant = _dereq_(25);
2040
+
2041
+ var ReactPropTypeLocationNames = _dereq_(13);
2042
+ var ReactPropTypesSecret = _dereq_(15);
2043
+
2044
+ var invariant = _dereq_(30);
2045
+ var warning = _dereq_(31);
2046
+
2047
+ var ReactComponentTreeHook;
2048
+
2049
+ if (typeof process !== 'undefined' && process.env && "development" === 'test') {
2050
+ // Temporary hack.
2051
+ // Inline requires don't work well with Jest:
2052
+ // https://github.com/facebook/react/issues/7240
2053
+ // Remove the inline requires when we don't need them anymore:
2054
+ // https://github.com/facebook/react/pull/7178
2055
+ ReactComponentTreeHook = _dereq_(6);
2056
+ }
2057
+
2058
+ var loggedTypeFailures = {};
2059
+
2060
+ /**
2061
+ * Assert that the values match with the type specs.
2062
+ * Error messages are memorized and will only be shown once.
2063
+ *
2064
+ * @param {object} typeSpecs Map of name to a ReactPropType
2065
+ * @param {object} values Runtime values that need to be type-checked
2066
+ * @param {string} location e.g. "prop", "context", "child context"
2067
+ * @param {string} componentName Name of the component for error messages.
2068
+ * @param {?object} element The React element that is being type-checked
2069
+ * @param {?number} debugID The React component instance that is being type-checked
2070
+ * @private
2071
+ */
2072
+ function checkReactTypeSpec(typeSpecs, values, location, componentName, element, debugID) {
2073
+ for (var typeSpecName in typeSpecs) {
2074
+ if (typeSpecs.hasOwnProperty(typeSpecName)) {
2075
+ var error;
2076
+ // Prop type validation may throw. In case they do, we don't want to
2077
+ // fail the render phase where it didn't fail before. So we log it.
2078
+ // After these have been cleaned up, we'll let them throw.
2079
+ try {
2080
+ // This is intentionally an invariant that gets caught. It's the same
2081
+ // behavior as without this statement except with a better message.
2082
+ !(typeof typeSpecs[typeSpecName] === 'function') ? "development" !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : _prodInvariant('84', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : void 0;
2083
+ error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
2084
+ } catch (ex) {
2085
+ error = ex;
2086
+ }
2087
+ "development" !== 'production' ? 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', ReactPropTypeLocationNames[location], typeSpecName, typeof error) : void 0;
2088
+ if (error instanceof Error && !(error.message in loggedTypeFailures)) {
2089
+ // Only monitor this failure once because there tends to be a lot of the
2090
+ // same error.
2091
+ loggedTypeFailures[error.message] = true;
2092
+
2093
+ var componentStackInfo = '';
2094
+
2095
+ if ("development" !== 'production') {
2096
+ if (!ReactComponentTreeHook) {
2097
+ ReactComponentTreeHook = _dereq_(6);
2098
+ }
2099
+ if (debugID !== null) {
2100
+ componentStackInfo = ReactComponentTreeHook.getStackAddendumByID(debugID);
2101
+ } else if (element !== null) {
2102
+ componentStackInfo = ReactComponentTreeHook.getCurrentStackAddendum(element);
2103
+ }
2104
+ }
2105
+
2106
+ "development" !== 'production' ? warning(false, 'Failed %s type: %s%s', location, error.message, componentStackInfo) : void 0;
2107
+ }
2108
+ }
2109
+ }
2110
+ }
2111
+
2112
+ module.exports = checkReactTypeSpec;
2113
+ }).call(this,undefined)
2114
+ },{"13":13,"15":15,"25":25,"30":30,"31":31,"6":6}],20:[function(_dereq_,module,exports){
2115
+ /**
2116
+ * Copyright (c) 2013-present, Facebook, Inc.
2117
+ *
2118
+ * This source code is licensed under the MIT license found in the
2119
+ * LICENSE file in the root directory of this source tree.
2120
+ *
2121
+ */
2122
+
2123
+ 'use strict';
2124
+
2125
+ var _require = _dereq_(4),
2126
+ Component = _require.Component;
2127
+
2128
+ var _require2 = _dereq_(9),
2129
+ isValidElement = _require2.isValidElement;
2130
+
2131
+ var ReactNoopUpdateQueue = _dereq_(12);
2132
+ var factory = _dereq_(27);
2133
+
2134
+ module.exports = factory(Component, isValidElement, ReactNoopUpdateQueue);
2135
+ },{"12":12,"27":27,"4":4,"9":9}],21:[function(_dereq_,module,exports){
2136
+ /**
2137
+ * Copyright (c) 2013-present, Facebook, Inc.
2138
+ *
2139
+ * This source code is licensed under the MIT license found in the
2140
+ * LICENSE file in the root directory of this source tree.
2141
+ *
2142
+ *
2143
+ */
2144
+
2145
+ 'use strict';
2146
+
2147
+ /* global Symbol */
2148
+
2149
+ var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
2150
+ var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
2151
+
2152
+ /**
2153
+ * Returns the iterator method function contained on the iterable object.
2154
+ *
2155
+ * Be sure to invoke the function with the iterable as context:
2156
+ *
2157
+ * var iteratorFn = getIteratorFn(myIterable);
2158
+ * if (iteratorFn) {
2159
+ * var iterator = iteratorFn.call(myIterable);
2160
+ * ...
2161
+ * }
2162
+ *
2163
+ * @param {?object} maybeIterable
2164
+ * @return {?function}
2165
+ */
2166
+ function getIteratorFn(maybeIterable) {
2167
+ var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
2168
+ if (typeof iteratorFn === 'function') {
2169
+ return iteratorFn;
2170
+ }
2171
+ }
2172
+
2173
+ module.exports = getIteratorFn;
2174
+ },{}],22:[function(_dereq_,module,exports){
2175
+ /**
2176
+ * Copyright (c) 2013-present, Facebook, Inc.
2177
+ *
2178
+ * This source code is licensed under the MIT license found in the
2179
+ * LICENSE file in the root directory of this source tree.
2180
+ *
2181
+ *
2182
+ */
2183
+
2184
+ 'use strict';
2185
+
2186
+ var nextDebugID = 1;
2187
+
2188
+ function getNextDebugID() {
2189
+ return nextDebugID++;
2190
+ }
2657
2191
 
2658
- module.exports = ReactPureComponent;
2659
- },{"13":13,"28":28,"31":31,"6":6}],18:[function(_dereq_,module,exports){
2192
+ module.exports = getNextDebugID;
2193
+ },{}],23:[function(_dereq_,module,exports){
2660
2194
  /**
2661
- * Copyright 2013-present, Facebook, Inc.
2662
- * All rights reserved.
2195
+ * Copyright (c) 2014-present, Facebook, Inc.
2663
2196
  *
2664
- * This source code is licensed under the BSD-style license found in the
2665
- * LICENSE file in the root directory of this source tree. An additional grant
2666
- * of patent rights can be found in the PATENTS file in the same directory.
2197
+ * This source code is licensed under the MIT license found in the
2198
+ * LICENSE file in the root directory of this source tree.
2667
2199
  *
2668
2200
  */
2669
2201
 
2670
2202
  'use strict';
2671
2203
 
2672
- var _assign = _dereq_(31);
2673
-
2674
- var React = _dereq_(3);
2204
+ /**
2205
+ * Forked from fbjs/warning:
2206
+ * https://github.com/facebook/fbjs/blob/e66ba20ad5be433eb54423f2b097d829324d9de6/packages/fbjs/src/__forks__/warning.js
2207
+ *
2208
+ * Only change is we use console.warn instead of console.error,
2209
+ * and do nothing when 'console' is not supported.
2210
+ * This really simplifies the code.
2211
+ * ---
2212
+ * Similar to invariant but only logs a warning if the condition is not met.
2213
+ * This can be used to log issues in development environments in critical
2214
+ * paths. Removing the logging code for production environments will keep the
2215
+ * same logic and follow the same code paths.
2216
+ */
2675
2217
 
2676
- // `version` will be added here by the React module.
2677
- var ReactUMDEntry = _assign(React, {
2678
- __SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED: {
2679
- ReactCurrentOwner: _dereq_(8)
2680
- }
2681
- });
2218
+ var lowPriorityWarning = function () {};
2682
2219
 
2683
2220
  if ("development" !== 'production') {
2684
- _assign(ReactUMDEntry.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED, {
2685
- // ReactComponentTreeHook should not be included in production.
2686
- ReactComponentTreeHook: _dereq_(7),
2687
- getNextDebugID: _dereq_(23)
2688
- });
2221
+ var printWarning = function (format) {
2222
+ for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
2223
+ args[_key - 1] = arguments[_key];
2224
+ }
2225
+
2226
+ var argIndex = 0;
2227
+ var message = 'Warning: ' + format.replace(/%s/g, function () {
2228
+ return args[argIndex++];
2229
+ });
2230
+ if (typeof console !== 'undefined') {
2231
+ console.warn(message);
2232
+ }
2233
+ try {
2234
+ // --- Welcome to debugging React ---
2235
+ // This error was thrown as a convenience so that you can use this stack
2236
+ // to find the callsite that caused this warning to fire.
2237
+ throw new Error(message);
2238
+ } catch (x) {}
2239
+ };
2240
+
2241
+ lowPriorityWarning = function (condition, format) {
2242
+ if (format === undefined) {
2243
+ throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
2244
+ }
2245
+ if (!condition) {
2246
+ for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
2247
+ args[_key2 - 2] = arguments[_key2];
2248
+ }
2249
+
2250
+ printWarning.apply(undefined, [format].concat(args));
2251
+ }
2252
+ };
2689
2253
  }
2690
2254
 
2691
- module.exports = ReactUMDEntry;
2692
- },{"23":23,"3":3,"31":31,"7":7,"8":8}],19:[function(_dereq_,module,exports){
2255
+ module.exports = lowPriorityWarning;
2256
+ },{}],24:[function(_dereq_,module,exports){
2693
2257
  /**
2694
- * Copyright 2013-present, Facebook, Inc.
2695
- * All rights reserved.
2258
+ * Copyright (c) 2013-present, Facebook, Inc.
2696
2259
  *
2697
- * This source code is licensed under the BSD-style license found in the
2698
- * LICENSE file in the root directory of this source tree. An additional grant
2699
- * of patent rights can be found in the PATENTS file in the same directory.
2260
+ * This source code is licensed under the MIT license found in the
2261
+ * LICENSE file in the root directory of this source tree.
2700
2262
  *
2701
2263
  */
2702
-
2703
2264
  'use strict';
2704
2265
 
2705
- module.exports = '15.5.4';
2706
- },{}],20:[function(_dereq_,module,exports){
2266
+ var _prodInvariant = _dereq_(25);
2267
+
2268
+ var ReactElement = _dereq_(9);
2269
+
2270
+ var invariant = _dereq_(30);
2271
+
2707
2272
  /**
2708
- * Copyright 2013-present, Facebook, Inc.
2709
- * All rights reserved.
2273
+ * Returns the first child in a collection of children and verifies that there
2274
+ * is only one child in the collection.
2710
2275
  *
2711
- * This source code is licensed under the BSD-style license found in the
2712
- * LICENSE file in the root directory of this source tree. An additional grant
2713
- * of patent rights can be found in the PATENTS file in the same directory.
2276
+ * See https://facebook.github.io/react/docs/top-level-api.html#react.children.only
2714
2277
  *
2715
- *
2278
+ * The current implementation of this function assumes that a single child gets
2279
+ * passed without a wrapper, but the purpose of this helper function is to
2280
+ * abstract away the particular structure of children.
2281
+ *
2282
+ * @param {?object} children Child collection structure.
2283
+ * @return {ReactElement} The first and only `ReactElement` contained in the
2284
+ * structure.
2716
2285
  */
2286
+ function onlyChild(children) {
2287
+ !ReactElement.isValidElement(children) ? "development" !== 'production' ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0;
2288
+ return children;
2289
+ }
2717
2290
 
2291
+ module.exports = onlyChild;
2292
+ },{"25":25,"30":30,"9":9}],25:[function(_dereq_,module,exports){
2293
+ /**
2294
+ * Copyright (c) 2013-present, Facebook, Inc.
2295
+ *
2296
+ * This source code is licensed under the MIT license found in the
2297
+ * LICENSE file in the root directory of this source tree.
2298
+ *
2299
+ *
2300
+ */
2718
2301
  'use strict';
2719
2302
 
2720
- var canDefineProperty = false;
2721
- if ("development" !== 'production') {
2722
- try {
2723
- // $FlowFixMe https://github.com/facebook/flow/issues/285
2724
- Object.defineProperty({}, 'x', { get: function () {} });
2725
- canDefineProperty = true;
2726
- } catch (x) {
2727
- // IE will fail on defineProperty
2303
+ /**
2304
+ * WARNING: DO NOT manually require this module.
2305
+ * This is a replacement for `invariant(...)` used by the error code system
2306
+ * and will _only_ be required by the corresponding babel pass.
2307
+ * It always throws.
2308
+ */
2309
+
2310
+ function reactProdInvariant(code) {
2311
+ var argCount = arguments.length - 1;
2312
+
2313
+ var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;
2314
+
2315
+ for (var argIdx = 0; argIdx < argCount; argIdx++) {
2316
+ message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);
2728
2317
  }
2318
+
2319
+ message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';
2320
+
2321
+ var error = new Error(message);
2322
+ error.name = 'Invariant Violation';
2323
+ error.framesToPop = 1; // we don't care about reactProdInvariant's own frame
2324
+
2325
+ throw error;
2729
2326
  }
2730
2327
 
2731
- module.exports = canDefineProperty;
2732
- },{}],21:[function(_dereq_,module,exports){
2733
- (function (process){
2328
+ module.exports = reactProdInvariant;
2329
+ },{}],26:[function(_dereq_,module,exports){
2734
2330
  /**
2735
- * Copyright 2013-present, Facebook, Inc.
2736
- * All rights reserved.
2331
+ * Copyright (c) 2013-present, Facebook, Inc.
2737
2332
  *
2738
- * This source code is licensed under the BSD-style license found in the
2739
- * LICENSE file in the root directory of this source tree. An additional grant
2740
- * of patent rights can be found in the PATENTS file in the same directory.
2333
+ * This source code is licensed under the MIT license found in the
2334
+ * LICENSE file in the root directory of this source tree.
2741
2335
  *
2742
2336
  */
2743
2337
 
@@ -2745,121 +2339,168 @@ module.exports = canDefineProperty;
2745
2339
 
2746
2340
  var _prodInvariant = _dereq_(25);
2747
2341
 
2748
- var ReactPropTypeLocationNames = _dereq_(14);
2749
- var ReactPropTypesSecret = _dereq_(16);
2342
+ var ReactCurrentOwner = _dereq_(7);
2343
+ var REACT_ELEMENT_TYPE = _dereq_(10);
2750
2344
 
2751
- var invariant = _dereq_(29);
2752
- var warning = _dereq_(30);
2345
+ var getIteratorFn = _dereq_(21);
2346
+ var invariant = _dereq_(30);
2347
+ var KeyEscapeUtils = _dereq_(1);
2348
+ var warning = _dereq_(31);
2753
2349
 
2754
- var ReactComponentTreeHook;
2350
+ var SEPARATOR = '.';
2351
+ var SUBSEPARATOR = ':';
2755
2352
 
2756
- if (typeof process !== 'undefined' && process.env && "development" === 'test') {
2757
- // Temporary hack.
2758
- // Inline requires don't work well with Jest:
2759
- // https://github.com/facebook/react/issues/7240
2760
- // Remove the inline requires when we don't need them anymore:
2761
- // https://github.com/facebook/react/pull/7178
2762
- ReactComponentTreeHook = _dereq_(7);
2763
- }
2353
+ /**
2354
+ * This is inlined from ReactElement since this file is shared between
2355
+ * isomorphic and renderers. We could extract this to a
2356
+ *
2357
+ */
2764
2358
 
2765
- var loggedTypeFailures = {};
2359
+ /**
2360
+ * TODO: Test that a single child and an array with one item have the same key
2361
+ * pattern.
2362
+ */
2363
+
2364
+ var didWarnAboutMaps = false;
2766
2365
 
2767
2366
  /**
2768
- * Assert that the values match with the type specs.
2769
- * Error messages are memorized and will only be shown once.
2367
+ * Generate a key string that identifies a component within a set.
2770
2368
  *
2771
- * @param {object} typeSpecs Map of name to a ReactPropType
2772
- * @param {object} values Runtime values that need to be type-checked
2773
- * @param {string} location e.g. "prop", "context", "child context"
2774
- * @param {string} componentName Name of the component for error messages.
2775
- * @param {?object} element The React element that is being type-checked
2776
- * @param {?number} debugID The React component instance that is being type-checked
2777
- * @private
2369
+ * @param {*} component A component that could contain a manual key.
2370
+ * @param {number} index Index that is used if a manual key is not provided.
2371
+ * @return {string}
2778
2372
  */
2779
- function checkReactTypeSpec(typeSpecs, values, location, componentName, element, debugID) {
2780
- for (var typeSpecName in typeSpecs) {
2781
- if (typeSpecs.hasOwnProperty(typeSpecName)) {
2782
- var error;
2783
- // Prop type validation may throw. In case they do, we don't want to
2784
- // fail the render phase where it didn't fail before. So we log it.
2785
- // After these have been cleaned up, we'll let them throw.
2786
- try {
2787
- // This is intentionally an invariant that gets caught. It's the same
2788
- // behavior as without this statement except with a better message.
2789
- !(typeof typeSpecs[typeSpecName] === 'function') ? "development" !== 'production' ? invariant(false, '%s: %s type `%s` is invalid; it must be a function, usually from React.PropTypes.', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : _prodInvariant('84', componentName || 'React class', ReactPropTypeLocationNames[location], typeSpecName) : void 0;
2790
- error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
2791
- } catch (ex) {
2792
- error = ex;
2793
- }
2794
- "development" !== 'production' ? 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', ReactPropTypeLocationNames[location], typeSpecName, typeof error) : void 0;
2795
- if (error instanceof Error && !(error.message in loggedTypeFailures)) {
2796
- // Only monitor this failure once because there tends to be a lot of the
2797
- // same error.
2798
- loggedTypeFailures[error.message] = true;
2373
+ function getComponentKey(component, index) {
2374
+ // Do some typechecking here since we call this blindly. We want to ensure
2375
+ // that we don't block potential future ES APIs.
2376
+ if (component && typeof component === 'object' && component.key != null) {
2377
+ // Explicit key
2378
+ return KeyEscapeUtils.escape(component.key);
2379
+ }
2380
+ // Implicit key determined by the index in the set
2381
+ return index.toString(36);
2382
+ }
2799
2383
 
2800
- var componentStackInfo = '';
2384
+ /**
2385
+ * @param {?*} children Children tree container.
2386
+ * @param {!string} nameSoFar Name of the key path so far.
2387
+ * @param {!function} callback Callback to invoke with each child found.
2388
+ * @param {?*} traverseContext Used to pass information throughout the traversal
2389
+ * process.
2390
+ * @return {!number} The number of children in this subtree.
2391
+ */
2392
+ function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {
2393
+ var type = typeof children;
2394
+
2395
+ if (type === 'undefined' || type === 'boolean') {
2396
+ // All of the above are perceived as null.
2397
+ children = null;
2398
+ }
2399
+
2400
+ if (children === null || type === 'string' || type === 'number' ||
2401
+ // The following is inlined from ReactElement. This means we can optimize
2402
+ // some checks. React Fiber also inlines this logic for similar purposes.
2403
+ type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {
2404
+ callback(traverseContext, children,
2405
+ // If it's the only child, treat the name as if it was wrapped in an array
2406
+ // so that it's consistent if the number of children grows.
2407
+ nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);
2408
+ return 1;
2409
+ }
2410
+
2411
+ var child;
2412
+ var nextName;
2413
+ var subtreeCount = 0; // Count of children found in the current subtree.
2414
+ var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;
2801
2415
 
2416
+ if (Array.isArray(children)) {
2417
+ for (var i = 0; i < children.length; i++) {
2418
+ child = children[i];
2419
+ nextName = nextNamePrefix + getComponentKey(child, i);
2420
+ subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);
2421
+ }
2422
+ } else {
2423
+ var iteratorFn = getIteratorFn(children);
2424
+ if (iteratorFn) {
2425
+ var iterator = iteratorFn.call(children);
2426
+ var step;
2427
+ if (iteratorFn !== children.entries) {
2428
+ var ii = 0;
2429
+ while (!(step = iterator.next()).done) {
2430
+ child = step.value;
2431
+ nextName = nextNamePrefix + getComponentKey(child, ii++);
2432
+ subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);
2433
+ }
2434
+ } else {
2802
2435
  if ("development" !== 'production') {
2803
- if (!ReactComponentTreeHook) {
2804
- ReactComponentTreeHook = _dereq_(7);
2436
+ var mapsAsChildrenAddendum = '';
2437
+ if (ReactCurrentOwner.current) {
2438
+ var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();
2439
+ if (mapsAsChildrenOwnerName) {
2440
+ mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';
2441
+ }
2805
2442
  }
2806
- if (debugID !== null) {
2807
- componentStackInfo = ReactComponentTreeHook.getStackAddendumByID(debugID);
2808
- } else if (element !== null) {
2809
- componentStackInfo = ReactComponentTreeHook.getCurrentStackAddendum(element);
2443
+ "development" !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0;
2444
+ didWarnAboutMaps = true;
2445
+ }
2446
+ // Iterator will provide entry [k,v] tuples rather than values.
2447
+ while (!(step = iterator.next()).done) {
2448
+ var entry = step.value;
2449
+ if (entry) {
2450
+ child = entry[1];
2451
+ nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);
2452
+ subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);
2453
+ }
2454
+ }
2455
+ }
2456
+ } else if (type === 'object') {
2457
+ var addendum = '';
2458
+ if ("development" !== 'production') {
2459
+ addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';
2460
+ if (children._isReactElement) {
2461
+ addendum = " It looks like you're using an element created by a different " + 'version of React. Make sure to use only one copy of React.';
2462
+ }
2463
+ if (ReactCurrentOwner.current) {
2464
+ var name = ReactCurrentOwner.current.getName();
2465
+ if (name) {
2466
+ addendum += ' Check the render method of `' + name + '`.';
2810
2467
  }
2811
2468
  }
2812
-
2813
- "development" !== 'production' ? warning(false, 'Failed %s type: %s%s', location, error.message, componentStackInfo) : void 0;
2814
2469
  }
2470
+ var childrenString = String(children);
2471
+ !false ? "development" !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;
2815
2472
  }
2816
2473
  }
2817
- }
2818
-
2819
- module.exports = checkReactTypeSpec;
2820
- }).call(this,undefined)
2821
- },{"14":14,"16":16,"25":25,"29":29,"30":30,"7":7}],22:[function(_dereq_,module,exports){
2822
- /**
2823
- * Copyright 2013-present, Facebook, Inc.
2824
- * All rights reserved.
2825
- *
2826
- * This source code is licensed under the BSD-style license found in the
2827
- * LICENSE file in the root directory of this source tree. An additional grant
2828
- * of patent rights can be found in the PATENTS file in the same directory.
2829
- *
2830
- *
2831
- */
2832
-
2833
- 'use strict';
2834
-
2835
- /* global Symbol */
2836
2474
 
2837
- var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
2838
- var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
2475
+ return subtreeCount;
2476
+ }
2839
2477
 
2840
2478
  /**
2841
- * Returns the iterator method function contained on the iterable object.
2479
+ * Traverses children that are typically specified as `props.children`, but
2480
+ * might also be specified through attributes:
2842
2481
  *
2843
- * Be sure to invoke the function with the iterable as context:
2482
+ * - `traverseAllChildren(this.props.children, ...)`
2483
+ * - `traverseAllChildren(this.props.leftPanelChildren, ...)`
2844
2484
  *
2845
- * var iteratorFn = getIteratorFn(myIterable);
2846
- * if (iteratorFn) {
2847
- * var iterator = iteratorFn.call(myIterable);
2848
- * ...
2849
- * }
2485
+ * The `traverseContext` is an optional argument that is passed through the
2486
+ * entire traversal. It can be used to store accumulations or anything else that
2487
+ * the callback might find relevant.
2850
2488
  *
2851
- * @param {?object} maybeIterable
2852
- * @return {?function}
2489
+ * @param {?*} children Children tree object.
2490
+ * @param {!function} callback To invoke upon traversing each child.
2491
+ * @param {?*} traverseContext Context for traversal.
2492
+ * @return {!number} The number of children in this subtree.
2853
2493
  */
2854
- function getIteratorFn(maybeIterable) {
2855
- var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
2856
- if (typeof iteratorFn === 'function') {
2857
- return iteratorFn;
2494
+ function traverseAllChildren(children, callback, traverseContext) {
2495
+ if (children == null) {
2496
+ return 0;
2858
2497
  }
2498
+
2499
+ return traverseAllChildrenImpl(children, '', callback, traverseContext);
2859
2500
  }
2860
2501
 
2861
- module.exports = getIteratorFn;
2862
- },{}],23:[function(_dereq_,module,exports){
2502
+ module.exports = traverseAllChildren;
2503
+ },{"1":1,"10":10,"21":21,"25":25,"30":30,"31":31,"7":7}],27:[function(_dereq_,module,exports){
2863
2504
  /**
2864
2505
  * Copyright 2013-present, Facebook, Inc.
2865
2506
  * All rights reserved.
@@ -2868,272 +2509,872 @@ module.exports = getIteratorFn;
2868
2509
  * LICENSE file in the root directory of this source tree. An additional grant
2869
2510
  * of patent rights can be found in the PATENTS file in the same directory.
2870
2511
  *
2871
- *
2872
2512
  */
2873
2513
 
2874
2514
  'use strict';
2875
2515
 
2876
- var nextDebugID = 1;
2516
+ var _assign = _dereq_(32);
2877
2517
 
2878
- function getNextDebugID() {
2879
- return nextDebugID++;
2518
+ var emptyObject = _dereq_(29);
2519
+ var _invariant = _dereq_(30);
2520
+
2521
+ if ("development" !== 'production') {
2522
+ var warning = _dereq_(31);
2880
2523
  }
2881
2524
 
2882
- module.exports = getNextDebugID;
2883
- },{}],24:[function(_dereq_,module,exports){
2884
- /**
2885
- * Copyright 2013-present, Facebook, Inc.
2886
- * All rights reserved.
2887
- *
2888
- * This source code is licensed under the BSD-style license found in the
2889
- * LICENSE file in the root directory of this source tree. An additional grant
2890
- * of patent rights can be found in the PATENTS file in the same directory.
2891
- *
2892
- */
2893
- 'use strict';
2525
+ var MIXINS_KEY = 'mixins';
2894
2526
 
2895
- var _prodInvariant = _dereq_(25);
2527
+ // Helper function to allow the creation of anonymous functions which do not
2528
+ // have .name set to the name of the variable being assigned to.
2529
+ function identity(fn) {
2530
+ return fn;
2531
+ }
2896
2532
 
2897
- var ReactElement = _dereq_(10);
2533
+ var ReactPropTypeLocationNames;
2534
+ if ("development" !== 'production') {
2535
+ ReactPropTypeLocationNames = {
2536
+ prop: 'prop',
2537
+ context: 'context',
2538
+ childContext: 'child context'
2539
+ };
2540
+ } else {
2541
+ ReactPropTypeLocationNames = {};
2542
+ }
2898
2543
 
2899
- var invariant = _dereq_(29);
2544
+ function factory(ReactComponent, isValidElement, ReactNoopUpdateQueue) {
2545
+ /**
2546
+ * Policies that describe methods in `ReactClassInterface`.
2547
+ */
2900
2548
 
2901
- /**
2902
- * Returns the first child in a collection of children and verifies that there
2903
- * is only one child in the collection.
2904
- *
2905
- * See https://facebook.github.io/react/docs/top-level-api.html#react.children.only
2906
- *
2907
- * The current implementation of this function assumes that a single child gets
2908
- * passed without a wrapper, but the purpose of this helper function is to
2909
- * abstract away the particular structure of children.
2910
- *
2911
- * @param {?object} children Child collection structure.
2912
- * @return {ReactElement} The first and only `ReactElement` contained in the
2913
- * structure.
2914
- */
2915
- function onlyChild(children) {
2916
- !ReactElement.isValidElement(children) ? "development" !== 'production' ? invariant(false, 'React.Children.only expected to receive a single React element child.') : _prodInvariant('143') : void 0;
2917
- return children;
2918
- }
2549
+ var injectedMixins = [];
2919
2550
 
2920
- module.exports = onlyChild;
2921
- },{"10":10,"25":25,"29":29}],25:[function(_dereq_,module,exports){
2922
- /**
2923
- * Copyright (c) 2013-present, Facebook, Inc.
2924
- * All rights reserved.
2925
- *
2926
- * This source code is licensed under the BSD-style license found in the
2927
- * LICENSE file in the root directory of this source tree. An additional grant
2928
- * of patent rights can be found in the PATENTS file in the same directory.
2929
- *
2930
- *
2931
- */
2932
- 'use strict';
2551
+ /**
2552
+ * Composite components are higher-level components that compose other composite
2553
+ * or host components.
2554
+ *
2555
+ * To create a new type of `ReactClass`, pass a specification of
2556
+ * your new class to `React.createClass`. The only requirement of your class
2557
+ * specification is that you implement a `render` method.
2558
+ *
2559
+ * var MyComponent = React.createClass({
2560
+ * render: function() {
2561
+ * return <div>Hello World</div>;
2562
+ * }
2563
+ * });
2564
+ *
2565
+ * The class specification supports a specific protocol of methods that have
2566
+ * special meaning (e.g. `render`). See `ReactClassInterface` for
2567
+ * more the comprehensive protocol. Any other properties and methods in the
2568
+ * class specification will be available on the prototype.
2569
+ *
2570
+ * @interface ReactClassInterface
2571
+ * @internal
2572
+ */
2573
+ var ReactClassInterface = {
2574
+ /**
2575
+ * An array of Mixin objects to include when defining your component.
2576
+ *
2577
+ * @type {array}
2578
+ * @optional
2579
+ */
2580
+ mixins: 'DEFINE_MANY',
2581
+
2582
+ /**
2583
+ * An object containing properties and methods that should be defined on
2584
+ * the component's constructor instead of its prototype (static methods).
2585
+ *
2586
+ * @type {object}
2587
+ * @optional
2588
+ */
2589
+ statics: 'DEFINE_MANY',
2590
+
2591
+ /**
2592
+ * Definition of prop types for this component.
2593
+ *
2594
+ * @type {object}
2595
+ * @optional
2596
+ */
2597
+ propTypes: 'DEFINE_MANY',
2598
+
2599
+ /**
2600
+ * Definition of context types for this component.
2601
+ *
2602
+ * @type {object}
2603
+ * @optional
2604
+ */
2605
+ contextTypes: 'DEFINE_MANY',
2606
+
2607
+ /**
2608
+ * Definition of context types this component sets for its children.
2609
+ *
2610
+ * @type {object}
2611
+ * @optional
2612
+ */
2613
+ childContextTypes: 'DEFINE_MANY',
2614
+
2615
+ // ==== Definition methods ====
2616
+
2617
+ /**
2618
+ * Invoked when the component is mounted. Values in the mapping will be set on
2619
+ * `this.props` if that prop is not specified (i.e. using an `in` check).
2620
+ *
2621
+ * This method is invoked before `getInitialState` and therefore cannot rely
2622
+ * on `this.state` or use `this.setState`.
2623
+ *
2624
+ * @return {object}
2625
+ * @optional
2626
+ */
2627
+ getDefaultProps: 'DEFINE_MANY_MERGED',
2628
+
2629
+ /**
2630
+ * Invoked once before the component is mounted. The return value will be used
2631
+ * as the initial value of `this.state`.
2632
+ *
2633
+ * getInitialState: function() {
2634
+ * return {
2635
+ * isOn: false,
2636
+ * fooBaz: new BazFoo()
2637
+ * }
2638
+ * }
2639
+ *
2640
+ * @return {object}
2641
+ * @optional
2642
+ */
2643
+ getInitialState: 'DEFINE_MANY_MERGED',
2644
+
2645
+ /**
2646
+ * @return {object}
2647
+ * @optional
2648
+ */
2649
+ getChildContext: 'DEFINE_MANY_MERGED',
2650
+
2651
+ /**
2652
+ * Uses props from `this.props` and state from `this.state` to render the
2653
+ * structure of the component.
2654
+ *
2655
+ * No guarantees are made about when or how often this method is invoked, so
2656
+ * it must not have side effects.
2657
+ *
2658
+ * render: function() {
2659
+ * var name = this.props.name;
2660
+ * return <div>Hello, {name}!</div>;
2661
+ * }
2662
+ *
2663
+ * @return {ReactComponent}
2664
+ * @required
2665
+ */
2666
+ render: 'DEFINE_ONCE',
2667
+
2668
+ // ==== Delegate methods ====
2669
+
2670
+ /**
2671
+ * Invoked when the component is initially created and about to be mounted.
2672
+ * This may have side effects, but any external subscriptions or data created
2673
+ * by this method must be cleaned up in `componentWillUnmount`.
2674
+ *
2675
+ * @optional
2676
+ */
2677
+ componentWillMount: 'DEFINE_MANY',
2678
+
2679
+ /**
2680
+ * Invoked when the component has been mounted and has a DOM representation.
2681
+ * However, there is no guarantee that the DOM node is in the document.
2682
+ *
2683
+ * Use this as an opportunity to operate on the DOM when the component has
2684
+ * been mounted (initialized and rendered) for the first time.
2685
+ *
2686
+ * @param {DOMElement} rootNode DOM element representing the component.
2687
+ * @optional
2688
+ */
2689
+ componentDidMount: 'DEFINE_MANY',
2690
+
2691
+ /**
2692
+ * Invoked before the component receives new props.
2693
+ *
2694
+ * Use this as an opportunity to react to a prop transition by updating the
2695
+ * state using `this.setState`. Current props are accessed via `this.props`.
2696
+ *
2697
+ * componentWillReceiveProps: function(nextProps, nextContext) {
2698
+ * this.setState({
2699
+ * likesIncreasing: nextProps.likeCount > this.props.likeCount
2700
+ * });
2701
+ * }
2702
+ *
2703
+ * NOTE: There is no equivalent `componentWillReceiveState`. An incoming prop
2704
+ * transition may cause a state change, but the opposite is not true. If you
2705
+ * need it, you are probably looking for `componentWillUpdate`.
2706
+ *
2707
+ * @param {object} nextProps
2708
+ * @optional
2709
+ */
2710
+ componentWillReceiveProps: 'DEFINE_MANY',
2711
+
2712
+ /**
2713
+ * Invoked while deciding if the component should be updated as a result of
2714
+ * receiving new props, state and/or context.
2715
+ *
2716
+ * Use this as an opportunity to `return false` when you're certain that the
2717
+ * transition to the new props/state/context will not require a component
2718
+ * update.
2719
+ *
2720
+ * shouldComponentUpdate: function(nextProps, nextState, nextContext) {
2721
+ * return !equal(nextProps, this.props) ||
2722
+ * !equal(nextState, this.state) ||
2723
+ * !equal(nextContext, this.context);
2724
+ * }
2725
+ *
2726
+ * @param {object} nextProps
2727
+ * @param {?object} nextState
2728
+ * @param {?object} nextContext
2729
+ * @return {boolean} True if the component should update.
2730
+ * @optional
2731
+ */
2732
+ shouldComponentUpdate: 'DEFINE_ONCE',
2733
+
2734
+ /**
2735
+ * Invoked when the component is about to update due to a transition from
2736
+ * `this.props`, `this.state` and `this.context` to `nextProps`, `nextState`
2737
+ * and `nextContext`.
2738
+ *
2739
+ * Use this as an opportunity to perform preparation before an update occurs.
2740
+ *
2741
+ * NOTE: You **cannot** use `this.setState()` in this method.
2742
+ *
2743
+ * @param {object} nextProps
2744
+ * @param {?object} nextState
2745
+ * @param {?object} nextContext
2746
+ * @param {ReactReconcileTransaction} transaction
2747
+ * @optional
2748
+ */
2749
+ componentWillUpdate: 'DEFINE_MANY',
2750
+
2751
+ /**
2752
+ * Invoked when the component's DOM representation has been updated.
2753
+ *
2754
+ * Use this as an opportunity to operate on the DOM when the component has
2755
+ * been updated.
2756
+ *
2757
+ * @param {object} prevProps
2758
+ * @param {?object} prevState
2759
+ * @param {?object} prevContext
2760
+ * @param {DOMElement} rootNode DOM element representing the component.
2761
+ * @optional
2762
+ */
2763
+ componentDidUpdate: 'DEFINE_MANY',
2764
+
2765
+ /**
2766
+ * Invoked when the component is about to be removed from its parent and have
2767
+ * its DOM representation destroyed.
2768
+ *
2769
+ * Use this as an opportunity to deallocate any external resources.
2770
+ *
2771
+ * NOTE: There is no `componentDidUnmount` since your component will have been
2772
+ * destroyed by that point.
2773
+ *
2774
+ * @optional
2775
+ */
2776
+ componentWillUnmount: 'DEFINE_MANY',
2777
+
2778
+ // ==== Advanced methods ====
2779
+
2780
+ /**
2781
+ * Updates the component's currently mounted DOM representation.
2782
+ *
2783
+ * By default, this implements React's rendering and reconciliation algorithm.
2784
+ * Sophisticated clients may wish to override this.
2785
+ *
2786
+ * @param {ReactReconcileTransaction} transaction
2787
+ * @internal
2788
+ * @overridable
2789
+ */
2790
+ updateComponent: 'OVERRIDE_BASE'
2791
+ };
2933
2792
 
2934
- /**
2935
- * WARNING: DO NOT manually require this module.
2936
- * This is a replacement for `invariant(...)` used by the error code system
2937
- * and will _only_ be required by the corresponding babel pass.
2938
- * It always throws.
2939
- */
2793
+ /**
2794
+ * Mapping from class specification keys to special processing functions.
2795
+ *
2796
+ * Although these are declared like instance properties in the specification
2797
+ * when defining classes using `React.createClass`, they are actually static
2798
+ * and are accessible on the constructor instead of the prototype. Despite
2799
+ * being static, they must be defined outside of the "statics" key under
2800
+ * which all other static methods are defined.
2801
+ */
2802
+ var RESERVED_SPEC_KEYS = {
2803
+ displayName: function(Constructor, displayName) {
2804
+ Constructor.displayName = displayName;
2805
+ },
2806
+ mixins: function(Constructor, mixins) {
2807
+ if (mixins) {
2808
+ for (var i = 0; i < mixins.length; i++) {
2809
+ mixSpecIntoComponent(Constructor, mixins[i]);
2810
+ }
2811
+ }
2812
+ },
2813
+ childContextTypes: function(Constructor, childContextTypes) {
2814
+ if ("development" !== 'production') {
2815
+ validateTypeDef(Constructor, childContextTypes, 'childContext');
2816
+ }
2817
+ Constructor.childContextTypes = _assign(
2818
+ {},
2819
+ Constructor.childContextTypes,
2820
+ childContextTypes
2821
+ );
2822
+ },
2823
+ contextTypes: function(Constructor, contextTypes) {
2824
+ if ("development" !== 'production') {
2825
+ validateTypeDef(Constructor, contextTypes, 'context');
2826
+ }
2827
+ Constructor.contextTypes = _assign(
2828
+ {},
2829
+ Constructor.contextTypes,
2830
+ contextTypes
2831
+ );
2832
+ },
2833
+ /**
2834
+ * Special case getDefaultProps which should move into statics but requires
2835
+ * automatic merging.
2836
+ */
2837
+ getDefaultProps: function(Constructor, getDefaultProps) {
2838
+ if (Constructor.getDefaultProps) {
2839
+ Constructor.getDefaultProps = createMergedResultFunction(
2840
+ Constructor.getDefaultProps,
2841
+ getDefaultProps
2842
+ );
2843
+ } else {
2844
+ Constructor.getDefaultProps = getDefaultProps;
2845
+ }
2846
+ },
2847
+ propTypes: function(Constructor, propTypes) {
2848
+ if ("development" !== 'production') {
2849
+ validateTypeDef(Constructor, propTypes, 'prop');
2850
+ }
2851
+ Constructor.propTypes = _assign({}, Constructor.propTypes, propTypes);
2852
+ },
2853
+ statics: function(Constructor, statics) {
2854
+ mixStaticSpecIntoComponent(Constructor, statics);
2855
+ },
2856
+ autobind: function() {}
2857
+ };
2940
2858
 
2941
- function reactProdInvariant(code) {
2942
- var argCount = arguments.length - 1;
2859
+ function validateTypeDef(Constructor, typeDef, location) {
2860
+ for (var propName in typeDef) {
2861
+ if (typeDef.hasOwnProperty(propName)) {
2862
+ // use a warning instead of an _invariant so components
2863
+ // don't show up in prod but only in __DEV__
2864
+ if ("development" !== 'production') {
2865
+ warning(
2866
+ typeof typeDef[propName] === 'function',
2867
+ '%s: %s type `%s` is invalid; it must be a function, usually from ' +
2868
+ 'React.PropTypes.',
2869
+ Constructor.displayName || 'ReactClass',
2870
+ ReactPropTypeLocationNames[location],
2871
+ propName
2872
+ );
2873
+ }
2874
+ }
2875
+ }
2876
+ }
2943
2877
 
2944
- var message = 'Minified React error #' + code + '; visit ' + 'http://facebook.github.io/react/docs/error-decoder.html?invariant=' + code;
2878
+ function validateMethodOverride(isAlreadyDefined, name) {
2879
+ var specPolicy = ReactClassInterface.hasOwnProperty(name)
2880
+ ? ReactClassInterface[name]
2881
+ : null;
2882
+
2883
+ // Disallow overriding of base class methods unless explicitly allowed.
2884
+ if (ReactClassMixin.hasOwnProperty(name)) {
2885
+ _invariant(
2886
+ specPolicy === 'OVERRIDE_BASE',
2887
+ 'ReactClassInterface: You are attempting to override ' +
2888
+ '`%s` from your class specification. Ensure that your method names ' +
2889
+ 'do not overlap with React methods.',
2890
+ name
2891
+ );
2892
+ }
2893
+
2894
+ // Disallow defining methods more than once unless explicitly allowed.
2895
+ if (isAlreadyDefined) {
2896
+ _invariant(
2897
+ specPolicy === 'DEFINE_MANY' || specPolicy === 'DEFINE_MANY_MERGED',
2898
+ 'ReactClassInterface: You are attempting to define ' +
2899
+ '`%s` on your component more than once. This conflict may be due ' +
2900
+ 'to a mixin.',
2901
+ name
2902
+ );
2903
+ }
2904
+ }
2905
+
2906
+ /**
2907
+ * Mixin helper which handles policy validation and reserved
2908
+ * specification keys when building React classes.
2909
+ */
2910
+ function mixSpecIntoComponent(Constructor, spec) {
2911
+ if (!spec) {
2912
+ if ("development" !== 'production') {
2913
+ var typeofSpec = typeof spec;
2914
+ var isMixinValid = typeofSpec === 'object' && spec !== null;
2915
+
2916
+ if ("development" !== 'production') {
2917
+ warning(
2918
+ isMixinValid,
2919
+ "%s: You're attempting to include a mixin that is either null " +
2920
+ 'or not an object. Check the mixins included by the component, ' +
2921
+ 'as well as any mixins they include themselves. ' +
2922
+ 'Expected object but got %s.',
2923
+ Constructor.displayName || 'ReactClass',
2924
+ spec === null ? null : typeofSpec
2925
+ );
2926
+ }
2927
+ }
2928
+
2929
+ return;
2930
+ }
2931
+
2932
+ _invariant(
2933
+ typeof spec !== 'function',
2934
+ "ReactClass: You're attempting to " +
2935
+ 'use a component class or function as a mixin. Instead, just use a ' +
2936
+ 'regular object.'
2937
+ );
2938
+ _invariant(
2939
+ !isValidElement(spec),
2940
+ "ReactClass: You're attempting to " +
2941
+ 'use a component as a mixin. Instead, just use a regular object.'
2942
+ );
2943
+
2944
+ var proto = Constructor.prototype;
2945
+ var autoBindPairs = proto.__reactAutoBindPairs;
2946
+
2947
+ // By handling mixins before any other properties, we ensure the same
2948
+ // chaining order is applied to methods with DEFINE_MANY policy, whether
2949
+ // mixins are listed before or after these methods in the spec.
2950
+ if (spec.hasOwnProperty(MIXINS_KEY)) {
2951
+ RESERVED_SPEC_KEYS.mixins(Constructor, spec.mixins);
2952
+ }
2953
+
2954
+ for (var name in spec) {
2955
+ if (!spec.hasOwnProperty(name)) {
2956
+ continue;
2957
+ }
2958
+
2959
+ if (name === MIXINS_KEY) {
2960
+ // We have already handled mixins in a special case above.
2961
+ continue;
2962
+ }
2963
+
2964
+ var property = spec[name];
2965
+ var isAlreadyDefined = proto.hasOwnProperty(name);
2966
+ validateMethodOverride(isAlreadyDefined, name);
2967
+
2968
+ if (RESERVED_SPEC_KEYS.hasOwnProperty(name)) {
2969
+ RESERVED_SPEC_KEYS[name](Constructor, property);
2970
+ } else {
2971
+ // Setup methods on prototype:
2972
+ // The following member methods should not be automatically bound:
2973
+ // 1. Expected ReactClass methods (in the "interface").
2974
+ // 2. Overridden methods (that were mixed in).
2975
+ var isReactClassMethod = ReactClassInterface.hasOwnProperty(name);
2976
+ var isFunction = typeof property === 'function';
2977
+ var shouldAutoBind =
2978
+ isFunction &&
2979
+ !isReactClassMethod &&
2980
+ !isAlreadyDefined &&
2981
+ spec.autobind !== false;
2982
+
2983
+ if (shouldAutoBind) {
2984
+ autoBindPairs.push(name, property);
2985
+ proto[name] = property;
2986
+ } else {
2987
+ if (isAlreadyDefined) {
2988
+ var specPolicy = ReactClassInterface[name];
2989
+
2990
+ // These cases should already be caught by validateMethodOverride.
2991
+ _invariant(
2992
+ isReactClassMethod &&
2993
+ (specPolicy === 'DEFINE_MANY_MERGED' ||
2994
+ specPolicy === 'DEFINE_MANY'),
2995
+ 'ReactClass: Unexpected spec policy %s for key %s ' +
2996
+ 'when mixing in component specs.',
2997
+ specPolicy,
2998
+ name
2999
+ );
3000
+
3001
+ // For methods which are defined more than once, call the existing
3002
+ // methods before calling the new property, merging if appropriate.
3003
+ if (specPolicy === 'DEFINE_MANY_MERGED') {
3004
+ proto[name] = createMergedResultFunction(proto[name], property);
3005
+ } else if (specPolicy === 'DEFINE_MANY') {
3006
+ proto[name] = createChainedFunction(proto[name], property);
3007
+ }
3008
+ } else {
3009
+ proto[name] = property;
3010
+ if ("development" !== 'production') {
3011
+ // Add verbose displayName to the function, which helps when looking
3012
+ // at profiling tools.
3013
+ if (typeof property === 'function' && spec.displayName) {
3014
+ proto[name].displayName = spec.displayName + '_' + name;
3015
+ }
3016
+ }
3017
+ }
3018
+ }
3019
+ }
3020
+ }
3021
+ }
3022
+
3023
+ function mixStaticSpecIntoComponent(Constructor, statics) {
3024
+ if (!statics) {
3025
+ return;
3026
+ }
3027
+ for (var name in statics) {
3028
+ var property = statics[name];
3029
+ if (!statics.hasOwnProperty(name)) {
3030
+ continue;
3031
+ }
3032
+
3033
+ var isReserved = name in RESERVED_SPEC_KEYS;
3034
+ _invariant(
3035
+ !isReserved,
3036
+ 'ReactClass: You are attempting to define a reserved ' +
3037
+ 'property, `%s`, that shouldn\'t be on the "statics" key. Define it ' +
3038
+ 'as an instance property instead; it will still be accessible on the ' +
3039
+ 'constructor.',
3040
+ name
3041
+ );
3042
+
3043
+ var isInherited = name in Constructor;
3044
+ _invariant(
3045
+ !isInherited,
3046
+ 'ReactClass: You are attempting to define ' +
3047
+ '`%s` on your component more than once. This conflict may be ' +
3048
+ 'due to a mixin.',
3049
+ name
3050
+ );
3051
+ Constructor[name] = property;
3052
+ }
3053
+ }
3054
+
3055
+ /**
3056
+ * Merge two objects, but throw if both contain the same key.
3057
+ *
3058
+ * @param {object} one The first object, which is mutated.
3059
+ * @param {object} two The second object
3060
+ * @return {object} one after it has been mutated to contain everything in two.
3061
+ */
3062
+ function mergeIntoWithNoDuplicateKeys(one, two) {
3063
+ _invariant(
3064
+ one && two && typeof one === 'object' && typeof two === 'object',
3065
+ 'mergeIntoWithNoDuplicateKeys(): Cannot merge non-objects.'
3066
+ );
3067
+
3068
+ for (var key in two) {
3069
+ if (two.hasOwnProperty(key)) {
3070
+ _invariant(
3071
+ one[key] === undefined,
3072
+ 'mergeIntoWithNoDuplicateKeys(): ' +
3073
+ 'Tried to merge two objects with the same key: `%s`. This conflict ' +
3074
+ 'may be due to a mixin; in particular, this may be caused by two ' +
3075
+ 'getInitialState() or getDefaultProps() methods returning objects ' +
3076
+ 'with clashing keys.',
3077
+ key
3078
+ );
3079
+ one[key] = two[key];
3080
+ }
3081
+ }
3082
+ return one;
3083
+ }
3084
+
3085
+ /**
3086
+ * Creates a function that invokes two functions and merges their return values.
3087
+ *
3088
+ * @param {function} one Function to invoke first.
3089
+ * @param {function} two Function to invoke second.
3090
+ * @return {function} Function that invokes the two argument functions.
3091
+ * @private
3092
+ */
3093
+ function createMergedResultFunction(one, two) {
3094
+ return function mergedResult() {
3095
+ var a = one.apply(this, arguments);
3096
+ var b = two.apply(this, arguments);
3097
+ if (a == null) {
3098
+ return b;
3099
+ } else if (b == null) {
3100
+ return a;
3101
+ }
3102
+ var c = {};
3103
+ mergeIntoWithNoDuplicateKeys(c, a);
3104
+ mergeIntoWithNoDuplicateKeys(c, b);
3105
+ return c;
3106
+ };
3107
+ }
3108
+
3109
+ /**
3110
+ * Creates a function that invokes two functions and ignores their return vales.
3111
+ *
3112
+ * @param {function} one Function to invoke first.
3113
+ * @param {function} two Function to invoke second.
3114
+ * @return {function} Function that invokes the two argument functions.
3115
+ * @private
3116
+ */
3117
+ function createChainedFunction(one, two) {
3118
+ return function chainedFunction() {
3119
+ one.apply(this, arguments);
3120
+ two.apply(this, arguments);
3121
+ };
3122
+ }
3123
+
3124
+ /**
3125
+ * Binds a method to the component.
3126
+ *
3127
+ * @param {object} component Component whose method is going to be bound.
3128
+ * @param {function} method Method to be bound.
3129
+ * @return {function} The bound method.
3130
+ */
3131
+ function bindAutoBindMethod(component, method) {
3132
+ var boundMethod = method.bind(component);
3133
+ if ("development" !== 'production') {
3134
+ boundMethod.__reactBoundContext = component;
3135
+ boundMethod.__reactBoundMethod = method;
3136
+ boundMethod.__reactBoundArguments = null;
3137
+ var componentName = component.constructor.displayName;
3138
+ var _bind = boundMethod.bind;
3139
+ boundMethod.bind = function(newThis) {
3140
+ for (
3141
+ var _len = arguments.length,
3142
+ args = Array(_len > 1 ? _len - 1 : 0),
3143
+ _key = 1;
3144
+ _key < _len;
3145
+ _key++
3146
+ ) {
3147
+ args[_key - 1] = arguments[_key];
3148
+ }
3149
+
3150
+ // User is trying to bind() an autobound method; we effectively will
3151
+ // ignore the value of "this" that the user is trying to use, so
3152
+ // let's warn.
3153
+ if (newThis !== component && newThis !== null) {
3154
+ if ("development" !== 'production') {
3155
+ warning(
3156
+ false,
3157
+ 'bind(): React component methods may only be bound to the ' +
3158
+ 'component instance. See %s',
3159
+ componentName
3160
+ );
3161
+ }
3162
+ } else if (!args.length) {
3163
+ if ("development" !== 'production') {
3164
+ warning(
3165
+ false,
3166
+ 'bind(): You are binding a component method to the component. ' +
3167
+ 'React does this for you automatically in a high-performance ' +
3168
+ 'way, so you can safely remove this call. See %s',
3169
+ componentName
3170
+ );
3171
+ }
3172
+ return boundMethod;
3173
+ }
3174
+ var reboundMethod = _bind.apply(boundMethod, arguments);
3175
+ reboundMethod.__reactBoundContext = component;
3176
+ reboundMethod.__reactBoundMethod = method;
3177
+ reboundMethod.__reactBoundArguments = args;
3178
+ return reboundMethod;
3179
+ };
3180
+ }
3181
+ return boundMethod;
3182
+ }
2945
3183
 
2946
- for (var argIdx = 0; argIdx < argCount; argIdx++) {
2947
- message += '&args[]=' + encodeURIComponent(arguments[argIdx + 1]);
3184
+ /**
3185
+ * Binds all auto-bound methods in a component.
3186
+ *
3187
+ * @param {object} component Component whose method is going to be bound.
3188
+ */
3189
+ function bindAutoBindMethods(component) {
3190
+ var pairs = component.__reactAutoBindPairs;
3191
+ for (var i = 0; i < pairs.length; i += 2) {
3192
+ var autoBindKey = pairs[i];
3193
+ var method = pairs[i + 1];
3194
+ component[autoBindKey] = bindAutoBindMethod(component, method);
3195
+ }
2948
3196
  }
2949
3197
 
2950
- message += ' for the full message or use the non-minified dev environment' + ' for full errors and additional helpful warnings.';
3198
+ var IsMountedPreMixin = {
3199
+ componentDidMount: function() {
3200
+ this.__isMounted = true;
3201
+ }
3202
+ };
2951
3203
 
2952
- var error = new Error(message);
2953
- error.name = 'Invariant Violation';
2954
- error.framesToPop = 1; // we don't care about reactProdInvariant's own frame
3204
+ var IsMountedPostMixin = {
3205
+ componentWillUnmount: function() {
3206
+ this.__isMounted = false;
3207
+ }
3208
+ };
2955
3209
 
2956
- throw error;
2957
- }
3210
+ /**
3211
+ * Add more to the ReactClass base class. These are all legacy features and
3212
+ * therefore not already part of the modern ReactComponent.
3213
+ */
3214
+ var ReactClassMixin = {
3215
+ /**
3216
+ * TODO: This will be deprecated because state should always keep a consistent
3217
+ * type signature and the only use case for this, is to avoid that.
3218
+ */
3219
+ replaceState: function(newState, callback) {
3220
+ this.updater.enqueueReplaceState(this, newState, callback);
3221
+ },
3222
+
3223
+ /**
3224
+ * Checks whether or not this composite component is mounted.
3225
+ * @return {boolean} True if mounted, false otherwise.
3226
+ * @protected
3227
+ * @final
3228
+ */
3229
+ isMounted: function() {
3230
+ if ("development" !== 'production') {
3231
+ warning(
3232
+ this.__didWarnIsMounted,
3233
+ '%s: isMounted is deprecated. Instead, make sure to clean up ' +
3234
+ 'subscriptions and pending requests in componentWillUnmount to ' +
3235
+ 'prevent memory leaks.',
3236
+ (this.constructor && this.constructor.displayName) ||
3237
+ this.name ||
3238
+ 'Component'
3239
+ );
3240
+ this.__didWarnIsMounted = true;
3241
+ }
3242
+ return !!this.__isMounted;
3243
+ }
3244
+ };
2958
3245
 
2959
- module.exports = reactProdInvariant;
2960
- },{}],26:[function(_dereq_,module,exports){
2961
- /**
2962
- * Copyright 2013-present, Facebook, Inc.
2963
- * All rights reserved.
2964
- *
2965
- * This source code is licensed under the BSD-style license found in the
2966
- * LICENSE file in the root directory of this source tree. An additional grant
2967
- * of patent rights can be found in the PATENTS file in the same directory.
2968
- *
2969
- */
3246
+ var ReactClassComponent = function() {};
3247
+ _assign(
3248
+ ReactClassComponent.prototype,
3249
+ ReactComponent.prototype,
3250
+ ReactClassMixin
3251
+ );
2970
3252
 
2971
- 'use strict';
3253
+ /**
3254
+ * Creates a composite component class given a class specification.
3255
+ * See https://facebook.github.io/react/docs/top-level-api.html#react.createclass
3256
+ *
3257
+ * @param {object} spec Class specification (which must define `render`).
3258
+ * @return {function} Component constructor function.
3259
+ * @public
3260
+ */
3261
+ function createClass(spec) {
3262
+ // To keep our warnings more understandable, we'll use a little hack here to
3263
+ // ensure that Constructor.name !== 'Constructor'. This makes sure we don't
3264
+ // unnecessarily identify a class without displayName as 'Constructor'.
3265
+ var Constructor = identity(function(props, context, updater) {
3266
+ // This constructor gets overridden by mocks. The argument is used
3267
+ // by mocks to assert on what gets mounted.
2972
3268
 
2973
- var _prodInvariant = _dereq_(25);
3269
+ if ("development" !== 'production') {
3270
+ warning(
3271
+ this instanceof Constructor,
3272
+ 'Something is calling a React component directly. Use a factory or ' +
3273
+ 'JSX instead. See: https://fb.me/react-legacyfactory'
3274
+ );
3275
+ }
2974
3276
 
2975
- var ReactCurrentOwner = _dereq_(8);
2976
- var REACT_ELEMENT_TYPE = _dereq_(11);
3277
+ // Wire up auto-binding
3278
+ if (this.__reactAutoBindPairs.length) {
3279
+ bindAutoBindMethods(this);
3280
+ }
2977
3281
 
2978
- var getIteratorFn = _dereq_(22);
2979
- var invariant = _dereq_(29);
2980
- var KeyEscapeUtils = _dereq_(1);
2981
- var warning = _dereq_(30);
3282
+ this.props = props;
3283
+ this.context = context;
3284
+ this.refs = emptyObject;
3285
+ this.updater = updater || ReactNoopUpdateQueue;
2982
3286
 
2983
- var SEPARATOR = '.';
2984
- var SUBSEPARATOR = ':';
3287
+ this.state = null;
2985
3288
 
2986
- /**
2987
- * This is inlined from ReactElement since this file is shared between
2988
- * isomorphic and renderers. We could extract this to a
2989
- *
2990
- */
3289
+ // ReactClasses doesn't have constructors. Instead, they use the
3290
+ // getInitialState and componentWillMount methods for initialization.
2991
3291
 
2992
- /**
2993
- * TODO: Test that a single child and an array with one item have the same key
2994
- * pattern.
2995
- */
3292
+ var initialState = this.getInitialState ? this.getInitialState() : null;
3293
+ if ("development" !== 'production') {
3294
+ // We allow auto-mocks to proceed as if they're returning null.
3295
+ if (
3296
+ initialState === undefined &&
3297
+ this.getInitialState._isMockFunction
3298
+ ) {
3299
+ // This is probably bad practice. Consider warning here and
3300
+ // deprecating this convenience.
3301
+ initialState = null;
3302
+ }
3303
+ }
3304
+ _invariant(
3305
+ typeof initialState === 'object' && !Array.isArray(initialState),
3306
+ '%s.getInitialState(): must return an object or null',
3307
+ Constructor.displayName || 'ReactCompositeComponent'
3308
+ );
2996
3309
 
2997
- var didWarnAboutMaps = false;
3310
+ this.state = initialState;
3311
+ });
3312
+ Constructor.prototype = new ReactClassComponent();
3313
+ Constructor.prototype.constructor = Constructor;
3314
+ Constructor.prototype.__reactAutoBindPairs = [];
2998
3315
 
2999
- /**
3000
- * Generate a key string that identifies a component within a set.
3001
- *
3002
- * @param {*} component A component that could contain a manual key.
3003
- * @param {number} index Index that is used if a manual key is not provided.
3004
- * @return {string}
3005
- */
3006
- function getComponentKey(component, index) {
3007
- // Do some typechecking here since we call this blindly. We want to ensure
3008
- // that we don't block potential future ES APIs.
3009
- if (component && typeof component === 'object' && component.key != null) {
3010
- // Explicit key
3011
- return KeyEscapeUtils.escape(component.key);
3012
- }
3013
- // Implicit key determined by the index in the set
3014
- return index.toString(36);
3015
- }
3316
+ injectedMixins.forEach(mixSpecIntoComponent.bind(null, Constructor));
3016
3317
 
3017
- /**
3018
- * @param {?*} children Children tree container.
3019
- * @param {!string} nameSoFar Name of the key path so far.
3020
- * @param {!function} callback Callback to invoke with each child found.
3021
- * @param {?*} traverseContext Used to pass information throughout the traversal
3022
- * process.
3023
- * @return {!number} The number of children in this subtree.
3024
- */
3025
- function traverseAllChildrenImpl(children, nameSoFar, callback, traverseContext) {
3026
- var type = typeof children;
3318
+ mixSpecIntoComponent(Constructor, IsMountedPreMixin);
3319
+ mixSpecIntoComponent(Constructor, spec);
3320
+ mixSpecIntoComponent(Constructor, IsMountedPostMixin);
3027
3321
 
3028
- if (type === 'undefined' || type === 'boolean') {
3029
- // All of the above are perceived as null.
3030
- children = null;
3031
- }
3322
+ // Initialize the defaultProps property after all mixins have been merged.
3323
+ if (Constructor.getDefaultProps) {
3324
+ Constructor.defaultProps = Constructor.getDefaultProps();
3325
+ }
3032
3326
 
3033
- if (children === null || type === 'string' || type === 'number' ||
3034
- // The following is inlined from ReactElement. This means we can optimize
3035
- // some checks. React Fiber also inlines this logic for similar purposes.
3036
- type === 'object' && children.$$typeof === REACT_ELEMENT_TYPE) {
3037
- callback(traverseContext, children,
3038
- // If it's the only child, treat the name as if it was wrapped in an array
3039
- // so that it's consistent if the number of children grows.
3040
- nameSoFar === '' ? SEPARATOR + getComponentKey(children, 0) : nameSoFar);
3041
- return 1;
3042
- }
3327
+ if ("development" !== 'production') {
3328
+ // This is a tag to indicate that the use of these method names is ok,
3329
+ // since it's used with createClass. If it's not, then it's likely a
3330
+ // mistake so we'll warn you to use the static property, property
3331
+ // initializer or constructor respectively.
3332
+ if (Constructor.getDefaultProps) {
3333
+ Constructor.getDefaultProps.isReactClassApproved = {};
3334
+ }
3335
+ if (Constructor.prototype.getInitialState) {
3336
+ Constructor.prototype.getInitialState.isReactClassApproved = {};
3337
+ }
3338
+ }
3043
3339
 
3044
- var child;
3045
- var nextName;
3046
- var subtreeCount = 0; // Count of children found in the current subtree.
3047
- var nextNamePrefix = nameSoFar === '' ? SEPARATOR : nameSoFar + SUBSEPARATOR;
3340
+ _invariant(
3341
+ Constructor.prototype.render,
3342
+ 'createClass(...): Class specification must implement a `render` method.'
3343
+ );
3048
3344
 
3049
- if (Array.isArray(children)) {
3050
- for (var i = 0; i < children.length; i++) {
3051
- child = children[i];
3052
- nextName = nextNamePrefix + getComponentKey(child, i);
3053
- subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);
3345
+ if ("development" !== 'production') {
3346
+ warning(
3347
+ !Constructor.prototype.componentShouldUpdate,
3348
+ '%s has a method called ' +
3349
+ 'componentShouldUpdate(). Did you mean shouldComponentUpdate()? ' +
3350
+ 'The name is phrased as a question because the function is ' +
3351
+ 'expected to return a value.',
3352
+ spec.displayName || 'A component'
3353
+ );
3354
+ warning(
3355
+ !Constructor.prototype.componentWillRecieveProps,
3356
+ '%s has a method called ' +
3357
+ 'componentWillRecieveProps(). Did you mean componentWillReceiveProps()?',
3358
+ spec.displayName || 'A component'
3359
+ );
3054
3360
  }
3055
- } else {
3056
- var iteratorFn = getIteratorFn(children);
3057
- if (iteratorFn) {
3058
- var iterator = iteratorFn.call(children);
3059
- var step;
3060
- if (iteratorFn !== children.entries) {
3061
- var ii = 0;
3062
- while (!(step = iterator.next()).done) {
3063
- child = step.value;
3064
- nextName = nextNamePrefix + getComponentKey(child, ii++);
3065
- subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);
3066
- }
3067
- } else {
3068
- if ("development" !== 'production') {
3069
- var mapsAsChildrenAddendum = '';
3070
- if (ReactCurrentOwner.current) {
3071
- var mapsAsChildrenOwnerName = ReactCurrentOwner.current.getName();
3072
- if (mapsAsChildrenOwnerName) {
3073
- mapsAsChildrenAddendum = ' Check the render method of `' + mapsAsChildrenOwnerName + '`.';
3074
- }
3075
- }
3076
- "development" !== 'production' ? warning(didWarnAboutMaps, 'Using Maps as children is not yet fully supported. It is an ' + 'experimental feature that might be removed. Convert it to a ' + 'sequence / iterable of keyed ReactElements instead.%s', mapsAsChildrenAddendum) : void 0;
3077
- didWarnAboutMaps = true;
3078
- }
3079
- // Iterator will provide entry [k,v] tuples rather than values.
3080
- while (!(step = iterator.next()).done) {
3081
- var entry = step.value;
3082
- if (entry) {
3083
- child = entry[1];
3084
- nextName = nextNamePrefix + KeyEscapeUtils.escape(entry[0]) + SUBSEPARATOR + getComponentKey(child, 0);
3085
- subtreeCount += traverseAllChildrenImpl(child, nextName, callback, traverseContext);
3086
- }
3087
- }
3088
- }
3089
- } else if (type === 'object') {
3090
- var addendum = '';
3091
- if ("development" !== 'production') {
3092
- addendum = ' If you meant to render a collection of children, use an array ' + 'instead or wrap the object using createFragment(object) from the ' + 'React add-ons.';
3093
- if (children._isReactElement) {
3094
- addendum = ' It looks like you\'re using an element created by a different ' + 'version of React. Make sure to use only one copy of React.';
3095
- }
3096
- if (ReactCurrentOwner.current) {
3097
- var name = ReactCurrentOwner.current.getName();
3098
- if (name) {
3099
- addendum += ' Check the render method of `' + name + '`.';
3100
- }
3101
- }
3361
+
3362
+ // Reduce time spent doing lookups by setting these on the prototype.
3363
+ for (var methodName in ReactClassInterface) {
3364
+ if (!Constructor.prototype[methodName]) {
3365
+ Constructor.prototype[methodName] = null;
3102
3366
  }
3103
- var childrenString = String(children);
3104
- !false ? "development" !== 'production' ? invariant(false, 'Objects are not valid as a React child (found: %s).%s', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : _prodInvariant('31', childrenString === '[object Object]' ? 'object with keys {' + Object.keys(children).join(', ') + '}' : childrenString, addendum) : void 0;
3105
3367
  }
3106
- }
3107
-
3108
- return subtreeCount;
3109
- }
3110
3368
 
3111
- /**
3112
- * Traverses children that are typically specified as `props.children`, but
3113
- * might also be specified through attributes:
3114
- *
3115
- * - `traverseAllChildren(this.props.children, ...)`
3116
- * - `traverseAllChildren(this.props.leftPanelChildren, ...)`
3117
- *
3118
- * The `traverseContext` is an optional argument that is passed through the
3119
- * entire traversal. It can be used to store accumulations or anything else that
3120
- * the callback might find relevant.
3121
- *
3122
- * @param {?*} children Children tree object.
3123
- * @param {!function} callback To invoke upon traversing each child.
3124
- * @param {?*} traverseContext Context for traversal.
3125
- * @return {!number} The number of children in this subtree.
3126
- */
3127
- function traverseAllChildren(children, callback, traverseContext) {
3128
- if (children == null) {
3129
- return 0;
3369
+ return Constructor;
3130
3370
  }
3131
3371
 
3132
- return traverseAllChildrenImpl(children, '', callback, traverseContext);
3372
+ return createClass;
3133
3373
  }
3134
3374
 
3135
- module.exports = traverseAllChildren;
3136
- },{"1":1,"11":11,"22":22,"25":25,"29":29,"30":30,"8":8}],27:[function(_dereq_,module,exports){
3375
+ module.exports = factory;
3376
+
3377
+ },{"29":29,"30":30,"31":31,"32":32}],28:[function(_dereq_,module,exports){
3137
3378
  "use strict";
3138
3379
 
3139
3380
  /**
@@ -3172,7 +3413,7 @@ emptyFunction.thatReturnsArgument = function (arg) {
3172
3413
  };
3173
3414
 
3174
3415
  module.exports = emptyFunction;
3175
- },{}],28:[function(_dereq_,module,exports){
3416
+ },{}],29:[function(_dereq_,module,exports){
3176
3417
  /**
3177
3418
  * Copyright (c) 2013-present, Facebook, Inc.
3178
3419
  * All rights reserved.
@@ -3192,7 +3433,7 @@ if ("development" !== 'production') {
3192
3433
  }
3193
3434
 
3194
3435
  module.exports = emptyObject;
3195
- },{}],29:[function(_dereq_,module,exports){
3436
+ },{}],30:[function(_dereq_,module,exports){
3196
3437
  /**
3197
3438
  * Copyright (c) 2013-present, Facebook, Inc.
3198
3439
  * All rights reserved.
@@ -3248,7 +3489,7 @@ function invariant(condition, format, a, b, c, d, e, f) {
3248
3489
  }
3249
3490
 
3250
3491
  module.exports = invariant;
3251
- },{}],30:[function(_dereq_,module,exports){
3492
+ },{}],31:[function(_dereq_,module,exports){
3252
3493
  /**
3253
3494
  * Copyright 2014-2015, Facebook, Inc.
3254
3495
  * All rights reserved.
@@ -3261,7 +3502,7 @@ module.exports = invariant;
3261
3502
 
3262
3503
  'use strict';
3263
3504
 
3264
- var emptyFunction = _dereq_(27);
3505
+ var emptyFunction = _dereq_(28);
3265
3506
 
3266
3507
  /**
3267
3508
  * Similar to invariant but only logs a warning if the condition is not met.
@@ -3315,7 +3556,7 @@ if ("development" !== 'production') {
3315
3556
  }
3316
3557
 
3317
3558
  module.exports = warning;
3318
- },{"27":27}],31:[function(_dereq_,module,exports){
3559
+ },{"28":28}],32:[function(_dereq_,module,exports){
3319
3560
  /*
3320
3561
  object-assign
3321
3562
  (c) Sindre Sorhus
@@ -3407,7 +3648,7 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
3407
3648
  return to;
3408
3649
  };
3409
3650
 
3410
- },{}],32:[function(_dereq_,module,exports){
3651
+ },{}],33:[function(_dereq_,module,exports){
3411
3652
  /**
3412
3653
  * Copyright 2013-present, Facebook, Inc.
3413
3654
  * All rights reserved.
@@ -3420,9 +3661,9 @@ module.exports = shouldUseNative() ? Object.assign : function (target, source) {
3420
3661
  'use strict';
3421
3662
 
3422
3663
  if ("development" !== 'production') {
3423
- var invariant = _dereq_(29);
3424
- var warning = _dereq_(30);
3425
- var ReactPropTypesSecret = _dereq_(35);
3664
+ var invariant = _dereq_(30);
3665
+ var warning = _dereq_(31);
3666
+ var ReactPropTypesSecret = _dereq_(36);
3426
3667
  var loggedTypeFailures = {};
3427
3668
  }
3428
3669
 
@@ -3470,7 +3711,7 @@ function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
3470
3711
 
3471
3712
  module.exports = checkPropTypes;
3472
3713
 
3473
- },{"29":29,"30":30,"35":35}],33:[function(_dereq_,module,exports){
3714
+ },{"30":30,"31":31,"36":36}],34:[function(_dereq_,module,exports){
3474
3715
  /**
3475
3716
  * Copyright 2013-present, Facebook, Inc.
3476
3717
  * All rights reserved.
@@ -3486,14 +3727,14 @@ module.exports = checkPropTypes;
3486
3727
  // Therefore we re-export development-only version with all the PropTypes checks here.
3487
3728
  // However if one is migrating to the `prop-types` npm library, they will go through the
3488
3729
  // `index.js` entry point, and it will branch depending on the environment.
3489
- var factory = _dereq_(34);
3730
+ var factory = _dereq_(35);
3490
3731
  module.exports = function(isValidElement) {
3491
3732
  // It is still allowed in 15.5.
3492
3733
  var throwOnDirectAccess = false;
3493
3734
  return factory(isValidElement, throwOnDirectAccess);
3494
3735
  };
3495
3736
 
3496
- },{"34":34}],34:[function(_dereq_,module,exports){
3737
+ },{"35":35}],35:[function(_dereq_,module,exports){
3497
3738
  /**
3498
3739
  * Copyright 2013-present, Facebook, Inc.
3499
3740
  * All rights reserved.
@@ -3505,12 +3746,12 @@ module.exports = function(isValidElement) {
3505
3746
 
3506
3747
  'use strict';
3507
3748
 
3508
- var emptyFunction = _dereq_(27);
3509
- var invariant = _dereq_(29);
3510
- var warning = _dereq_(30);
3749
+ var emptyFunction = _dereq_(28);
3750
+ var invariant = _dereq_(30);
3751
+ var warning = _dereq_(31);
3511
3752
 
3512
- var ReactPropTypesSecret = _dereq_(35);
3513
- var checkPropTypes = _dereq_(32);
3753
+ var ReactPropTypesSecret = _dereq_(36);
3754
+ var checkPropTypes = _dereq_(33);
3514
3755
 
3515
3756
  module.exports = function(isValidElement, throwOnDirectAccess) {
3516
3757
  /* global Symbol */
@@ -3644,6 +3885,7 @@ module.exports = function(isValidElement, throwOnDirectAccess) {
3644
3885
  function createChainableTypeChecker(validate) {
3645
3886
  if ("development" !== 'production') {
3646
3887
  var manualPropTypeCallCache = {};
3888
+ var manualPropTypeWarningCount = 0;
3647
3889
  }
3648
3890
  function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
3649
3891
  componentName = componentName || ANONYMOUS;
@@ -3661,7 +3903,11 @@ module.exports = function(isValidElement, throwOnDirectAccess) {
3661
3903
  } else if ("development" !== 'production' && typeof console !== 'undefined') {
3662
3904
  // Old behavior for people using React.PropTypes
3663
3905
  var cacheKey = componentName + ':' + propName;
3664
- if (!manualPropTypeCallCache[cacheKey]) {
3906
+ if (
3907
+ !manualPropTypeCallCache[cacheKey] &&
3908
+ // Avoid spamming the console because they are often not actionable except for lib authors
3909
+ manualPropTypeWarningCount < 3
3910
+ ) {
3665
3911
  warning(
3666
3912
  false,
3667
3913
  'You are manually calling a React.PropTypes validation ' +
@@ -3673,6 +3919,7 @@ module.exports = function(isValidElement, throwOnDirectAccess) {
3673
3919
  componentName
3674
3920
  );
3675
3921
  manualPropTypeCallCache[cacheKey] = true;
3922
+ manualPropTypeWarningCount++;
3676
3923
  }
3677
3924
  }
3678
3925
  }
@@ -3810,6 +4057,20 @@ module.exports = function(isValidElement, throwOnDirectAccess) {
3810
4057
  return emptyFunction.thatReturnsNull;
3811
4058
  }
3812
4059
 
4060
+ for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
4061
+ var checker = arrayOfTypeCheckers[i];
4062
+ if (typeof checker !== 'function') {
4063
+ warning(
4064
+ false,
4065
+ 'Invalid argument supplid to oneOfType. Expected an array of check functions, but ' +
4066
+ 'received %s at index %s.',
4067
+ getPostfixForTypeWarning(checker),
4068
+ i
4069
+ );
4070
+ return emptyFunction.thatReturnsNull;
4071
+ }
4072
+ }
4073
+
3813
4074
  function validate(props, propName, componentName, location, propFullName) {
3814
4075
  for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
3815
4076
  var checker = arrayOfTypeCheckers[i];
@@ -3942,6 +4203,9 @@ module.exports = function(isValidElement, throwOnDirectAccess) {
3942
4203
  // This handles more types than `getPropType`. Only used for error messages.
3943
4204
  // See `createPrimitiveTypeChecker`.
3944
4205
  function getPreciseType(propValue) {
4206
+ if (typeof propValue === 'undefined' || propValue === null) {
4207
+ return '' + propValue;
4208
+ }
3945
4209
  var propType = getPropType(propValue);
3946
4210
  if (propType === 'object') {
3947
4211
  if (propValue instanceof Date) {
@@ -3953,6 +4217,23 @@ module.exports = function(isValidElement, throwOnDirectAccess) {
3953
4217
  return propType;
3954
4218
  }
3955
4219
 
4220
+ // Returns a string that is postfixed to a warning about an invalid type.
4221
+ // For example, "undefined" or "of type array"
4222
+ function getPostfixForTypeWarning(value) {
4223
+ var type = getPreciseType(value);
4224
+ switch (type) {
4225
+ case 'array':
4226
+ case 'object':
4227
+ return 'an ' + type;
4228
+ case 'boolean':
4229
+ case 'date':
4230
+ case 'regexp':
4231
+ return 'a ' + type;
4232
+ default:
4233
+ return type;
4234
+ }
4235
+ }
4236
+
3956
4237
  // Returns class name of the object, if any.
3957
4238
  function getClassName(propValue) {
3958
4239
  if (!propValue.constructor || !propValue.constructor.name) {
@@ -3967,7 +4248,7 @@ module.exports = function(isValidElement, throwOnDirectAccess) {
3967
4248
  return ReactPropTypes;
3968
4249
  };
3969
4250
 
3970
- },{"27":27,"29":29,"30":30,"32":32,"35":35}],35:[function(_dereq_,module,exports){
4251
+ },{"28":28,"30":30,"31":31,"33":33,"36":36}],36:[function(_dereq_,module,exports){
3971
4252
  /**
3972
4253
  * Copyright 2013-present, Facebook, Inc.
3973
4254
  * All rights reserved.
@@ -3983,5 +4264,5 @@ var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
3983
4264
 
3984
4265
  module.exports = ReactPropTypesSecret;
3985
4266
 
3986
- },{}]},{},[18])(18)
4267
+ },{}]},{},[16])(16)
3987
4268
  });