From 0d9a3dceae2d2853ae63bb3b572b308158aee066 Mon Sep 17 00:00:00 2001 From: Dorian Pula Date: Sun, 12 Jul 2015 18:11:11 -0400 Subject: [PATCH] Add back switching of themes. --- dist/rookeries.js | 2956 ++--------------- .../journal_actions.coffee => actions.coffee} | 13 +- rookeries/app.cjsx | 21 +- rookeries/routes.cjsx | 2 - rookeries/stores/journal_entry_store.coffee | 20 +- rookeries/stores/theme_switcher_store.coffee | 39 + rookeries/views/app_view.coffee | 14 - rookeries/views/feature_unavailable.cjsx | 47 - rookeries/views/journal_markdown_viewer.cjsx | 18 +- rookeries/views/theme_switcher_button.cjsx | 34 + 10 files changed, 445 insertions(+), 2719 deletions(-) rename rookeries/{actions/journal_actions.coffee => actions.coffee} (53%) create mode 100644 rookeries/stores/theme_switcher_store.coffee delete mode 100644 rookeries/views/app_view.coffee delete mode 100644 rookeries/views/feature_unavailable.cjsx create mode 100644 rookeries/views/theme_switcher_button.cjsx diff --git a/dist/rookeries.js b/dist/rookeries.js index c923cc0..6620eef 100644 --- a/dist/rookeries.js +++ b/dist/rookeries.js @@ -1399,7 +1399,7 @@ var Accordion = _react2['default'].createClass({ exports['default'] = Accordion; module.exports = exports['default']; -},{"./PanelGroup":48,"react":288}],4:[function(require,module,exports){ +},{"./PanelGroup":48,"react":270}],4:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -1450,7 +1450,7 @@ var Affix = _react2['default'].createClass({ exports['default'] = Affix; module.exports = exports['default']; -},{"./AffixMixin":5,"./utils/domUtils":72,"classnames":74,"react":288}],5:[function(require,module,exports){ +},{"./AffixMixin":5,"./utils/domUtils":72,"classnames":74,"react":270}],5:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -1597,7 +1597,7 @@ var AffixMixin = { exports['default'] = AffixMixin; module.exports = exports['default']; -},{"./utils/EventListener":64,"./utils/domUtils":72,"react":288}],6:[function(require,module,exports){ +},{"./utils/EventListener":64,"./utils/domUtils":72,"react":270}],6:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -1676,7 +1676,7 @@ var Alert = _react2['default'].createClass({ exports['default'] = Alert; module.exports = exports['default']; -},{"./BootstrapMixin":8,"classnames":74,"react":288}],7:[function(require,module,exports){ +},{"./BootstrapMixin":8,"classnames":74,"react":270}],7:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -1726,7 +1726,7 @@ var Badge = _react2['default'].createClass({ exports['default'] = Badge; module.exports = exports['default']; -},{"./utils/ValidComponentChildren":66,"classnames":74,"react":288}],8:[function(require,module,exports){ +},{"./utils/ValidComponentChildren":66,"classnames":74,"react":270}],8:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -1888,7 +1888,7 @@ var Button = _react2['default'].createClass({ exports['default'] = Button; module.exports = exports['default']; // eslint-disable-line object-shorthand -},{"./BootstrapMixin":8,"classnames":74,"react":288}],10:[function(require,module,exports){ +},{"./BootstrapMixin":8,"classnames":74,"react":270}],10:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -1954,7 +1954,7 @@ var ButtonGroup = _react2['default'].createClass({ exports['default'] = ButtonGroup; module.exports = exports['default']; -},{"./BootstrapMixin":8,"./utils/CustomPropTypes":63,"classnames":74,"react":288}],11:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./utils/CustomPropTypes":63,"classnames":74,"react":270}],11:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -2056,7 +2056,7 @@ ButtonInput.propTypes = { exports['default'] = ButtonInput; module.exports = exports['default']; -},{"./Button":9,"./FormGroup":24,"./InputBase":28,"./utils/childrenValueInputValidation":67,"react":288}],12:[function(require,module,exports){ +},{"./Button":9,"./FormGroup":24,"./InputBase":28,"./utils/childrenValueInputValidation":67,"react":270}],12:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -2105,7 +2105,7 @@ var ButtonToolbar = _react2['default'].createClass({ exports['default'] = ButtonToolbar; module.exports = exports['default']; -},{"./BootstrapMixin":8,"classnames":74,"react":288}],13:[function(require,module,exports){ +},{"./BootstrapMixin":8,"classnames":74,"react":270}],13:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -2407,7 +2407,7 @@ var Carousel = _react2['default'].createClass({ exports['default'] = Carousel; module.exports = exports['default']; -},{"./BootstrapMixin":8,"./Glyphicon":25,"./utils/ValidComponentChildren":66,"classnames":74,"react":288}],14:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./Glyphicon":25,"./utils/ValidComponentChildren":66,"classnames":74,"react":270}],14:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -2520,7 +2520,7 @@ var CarouselItem = _react2['default'].createClass({ exports['default'] = CarouselItem; module.exports = exports['default']; -},{"./utils/TransitionEvents":65,"classnames":74,"react":288}],15:[function(require,module,exports){ +},{"./utils/TransitionEvents":65,"classnames":74,"react":270}],15:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -2614,7 +2614,7 @@ var Col = _react2['default'].createClass({ exports['default'] = Col; module.exports = exports['default']; -},{"./styleMaps":62,"classnames":74,"react":288}],16:[function(require,module,exports){ +},{"./styleMaps":62,"classnames":74,"react":270}],16:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -2794,7 +2794,7 @@ var CollapsibleMixin = { exports['default'] = CollapsibleMixin; module.exports = exports['default']; -},{"./utils/TransitionEvents":65,"react":288}],17:[function(require,module,exports){ +},{"./utils/TransitionEvents":65,"react":270}],17:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -2924,7 +2924,7 @@ var CollapsibleNav = _react2['default'].createClass({ exports['default'] = CollapsibleNav; module.exports = exports['default']; -},{"./BootstrapMixin":8,"./CollapsibleMixin":16,"./utils/ValidComponentChildren":66,"./utils/createChainedFunction":68,"./utils/domUtils":72,"classnames":74,"react":288}],18:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./CollapsibleMixin":16,"./utils/ValidComponentChildren":66,"./utils/createChainedFunction":68,"./utils/domUtils":72,"classnames":74,"react":270}],18:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -3078,7 +3078,7 @@ var DropdownButton = _react2['default'].createClass({ exports['default'] = DropdownButton; module.exports = exports['default']; -},{"./BootstrapMixin":8,"./Button":9,"./ButtonGroup":10,"./DropdownMenu":19,"./DropdownStateMixin":20,"./utils/ValidComponentChildren":66,"./utils/createChainedFunction":68,"classnames":74,"react":288}],19:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./Button":9,"./ButtonGroup":10,"./DropdownMenu":19,"./DropdownStateMixin":20,"./utils/ValidComponentChildren":66,"./utils/createChainedFunction":68,"classnames":74,"react":270}],19:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -3141,7 +3141,7 @@ var DropdownMenu = _react2['default'].createClass({ exports['default'] = DropdownMenu; module.exports = exports['default']; -},{"./utils/ValidComponentChildren":66,"./utils/createChainedFunction":68,"classnames":74,"react":288}],20:[function(require,module,exports){ +},{"./utils/ValidComponentChildren":66,"./utils/createChainedFunction":68,"classnames":74,"react":270}],20:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -3242,7 +3242,7 @@ var DropdownStateMixin = { exports['default'] = DropdownStateMixin; module.exports = exports['default']; -},{"./utils/EventListener":64,"./utils/domUtils":72,"react":288}],21:[function(require,module,exports){ +},{"./utils/EventListener":64,"./utils/domUtils":72,"react":270}],21:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -3330,7 +3330,7 @@ exports['default'] = { } }; module.exports = exports['default']; -},{"./utils/domUtils":72,"react":288}],22:[function(require,module,exports){ +},{"./utils/domUtils":72,"react":270}],22:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -3404,7 +3404,7 @@ Static.propTypes = { exports['default'] = Static; module.exports = exports['default']; -},{"../InputBase":28,"../utils/childrenValueInputValidation":67,"classnames":74,"react":288}],23:[function(require,module,exports){ +},{"../InputBase":28,"../utils/childrenValueInputValidation":67,"classnames":74,"react":270}],23:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -3499,7 +3499,7 @@ FormGroup.propTypes = { exports['default'] = FormGroup; module.exports = exports['default']; -},{"classnames":74,"react":288}],25:[function(require,module,exports){ +},{"classnames":74,"react":270}],25:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -3556,7 +3556,7 @@ var Glyphicon = _react2['default'].createClass({ exports['default'] = Glyphicon; module.exports = exports['default']; -},{"./BootstrapMixin":8,"./styleMaps":62,"classnames":74,"react":288}],26:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./styleMaps":62,"classnames":74,"react":270}],26:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -3604,7 +3604,7 @@ var Grid = _react2['default'].createClass({ exports['default'] = Grid; module.exports = exports['default']; -},{"classnames":74,"react":288}],27:[function(require,module,exports){ +},{"classnames":74,"react":270}],27:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -3672,7 +3672,7 @@ var Input = (function (_InputBase) { exports['default'] = Input; module.exports = exports['default']; -},{"./ButtonInput":11,"./FormControls":23,"./InputBase":28,"./utils/deprecationWarning":71,"react":288}],28:[function(require,module,exports){ +},{"./ButtonInput":11,"./FormControls":23,"./InputBase":28,"./utils/deprecationWarning":71,"react":270}],28:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -3940,7 +3940,7 @@ InputBase.propTypes = { exports['default'] = InputBase; module.exports = exports['default']; -},{"./FormGroup":24,"classnames":74,"react":288}],29:[function(require,module,exports){ +},{"./FormGroup":24,"classnames":74,"react":270}],29:[function(require,module,exports){ // https://www.npmjs.org/package/react-interpolate-component // TODO: Drop this in favor of es6 string interpolation @@ -4036,7 +4036,7 @@ var Interpolate = _react2['default'].createClass({ exports['default'] = Interpolate; module.exports = exports['default']; -},{"./utils/ValidComponentChildren":66,"react":288}],30:[function(require,module,exports){ +},{"./utils/ValidComponentChildren":66,"react":270}],30:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -4069,7 +4069,7 @@ var Jumbotron = _react2['default'].createClass({ exports['default'] = Jumbotron; module.exports = exports['default']; -},{"classnames":74,"react":288}],31:[function(require,module,exports){ +},{"classnames":74,"react":270}],31:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -4117,7 +4117,7 @@ var Label = _react2['default'].createClass({ exports['default'] = Label; module.exports = exports['default']; -},{"./BootstrapMixin":8,"classnames":74,"react":288}],32:[function(require,module,exports){ +},{"./BootstrapMixin":8,"classnames":74,"react":270}],32:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -4230,7 +4230,7 @@ ListGroup.propTypes = { exports['default'] = ListGroup; module.exports = exports['default']; -},{"./utils/ValidComponentChildren":66,"classnames":74,"react":288}],33:[function(require,module,exports){ +},{"./utils/ValidComponentChildren":66,"classnames":74,"react":270}],33:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -4345,7 +4345,7 @@ var ListGroupItem = _react2['default'].createClass({ exports['default'] = ListGroupItem; module.exports = exports['default']; -},{"./BootstrapMixin":8,"classnames":74,"react":288}],34:[function(require,module,exports){ +},{"./BootstrapMixin":8,"classnames":74,"react":270}],34:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -4431,7 +4431,7 @@ var MenuItem = _react2['default'].createClass({ exports['default'] = MenuItem; module.exports = exports['default']; -},{"classnames":74,"react":288}],35:[function(require,module,exports){ +},{"classnames":74,"react":270}],35:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -4641,7 +4641,7 @@ var Modal = _react2['default'].createClass({ exports['default'] = Modal; module.exports = exports['default']; -},{"./BootstrapMixin":8,"./FadeMixin":21,"./utils/EventListener":64,"./utils/domUtils":72,"classnames":74,"react":288}],36:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./FadeMixin":21,"./utils/EventListener":64,"./utils/domUtils":72,"classnames":74,"react":270}],36:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -4741,7 +4741,7 @@ ModalTrigger.withContext = (0, _utilsCreateContextWrapper2['default'])(ModalTrig exports['default'] = ModalTrigger; module.exports = exports['default']; -},{"./OverlayMixin":40,"./utils/createChainedFunction":68,"./utils/createContextWrapper":69,"react":288}],37:[function(require,module,exports){ +},{"./OverlayMixin":40,"./utils/createChainedFunction":68,"./utils/createContextWrapper":69,"react":270}],37:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -4880,7 +4880,7 @@ var Nav = _react2['default'].createClass({ exports['default'] = Nav; module.exports = exports['default']; -},{"./BootstrapMixin":8,"./CollapsibleMixin":16,"./utils/ValidComponentChildren":66,"./utils/createChainedFunction":68,"./utils/domUtils":72,"classnames":74,"react":288}],38:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./CollapsibleMixin":16,"./utils/ValidComponentChildren":66,"./utils/createChainedFunction":68,"./utils/domUtils":72,"classnames":74,"react":270}],38:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -4978,7 +4978,7 @@ var NavItem = _react2['default'].createClass({ exports['default'] = NavItem; module.exports = exports['default']; -},{"./BootstrapMixin":8,"classnames":74,"react":288}],39:[function(require,module,exports){ +},{"./BootstrapMixin":8,"classnames":74,"react":270}],39:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -5148,7 +5148,7 @@ var Navbar = _react2['default'].createClass({ exports['default'] = Navbar; module.exports = exports['default']; -},{"./BootstrapMixin":8,"./utils/ValidComponentChildren":66,"./utils/createChainedFunction":68,"classnames":74,"react":288}],40:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./utils/ValidComponentChildren":66,"./utils/createChainedFunction":68,"classnames":74,"react":270}],40:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -5233,7 +5233,7 @@ exports['default'] = { } }; module.exports = exports['default']; -},{"./utils/CustomPropTypes":63,"./utils/domUtils":72,"react":288}],41:[function(require,module,exports){ +},{"./utils/CustomPropTypes":63,"./utils/domUtils":72,"react":270}],41:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -5579,7 +5579,7 @@ OverlayTrigger.withContext = (0, _utilsCreateContextWrapper2['default'])(Overlay exports['default'] = OverlayTrigger; module.exports = exports['default']; -},{"./OverlayMixin":40,"./RootCloseWrapper":51,"./utils/createChainedFunction":68,"./utils/createContextWrapper":69,"./utils/domUtils":72,"react":288}],42:[function(require,module,exports){ +},{"./OverlayMixin":40,"./RootCloseWrapper":51,"./utils/createChainedFunction":68,"./utils/createContextWrapper":69,"./utils/domUtils":72,"react":270}],42:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -5616,7 +5616,7 @@ var PageHeader = _react2['default'].createClass({ exports['default'] = PageHeader; module.exports = exports['default']; -},{"classnames":74,"react":288}],43:[function(require,module,exports){ +},{"classnames":74,"react":270}],43:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -5692,7 +5692,7 @@ var PageItem = _react2['default'].createClass({ exports['default'] = PageItem; module.exports = exports['default']; -},{"classnames":74,"react":288}],44:[function(require,module,exports){ +},{"classnames":74,"react":270}],44:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -5745,7 +5745,7 @@ var Pager = _react2['default'].createClass({ exports['default'] = Pager; module.exports = exports['default']; -},{"./utils/ValidComponentChildren":66,"./utils/createChainedFunction":68,"classnames":74,"react":288}],45:[function(require,module,exports){ +},{"./utils/ValidComponentChildren":66,"./utils/createChainedFunction":68,"classnames":74,"react":270}],45:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -5956,7 +5956,7 @@ var Pagination = _react2['default'].createClass({ exports['default'] = Pagination; module.exports = exports['default']; -},{"./BootstrapMixin":8,"./PaginationButton":46,"classnames":74,"react":288}],46:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./PaginationButton":46,"classnames":74,"react":270}],46:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -6031,7 +6031,7 @@ var PaginationButton = _react2['default'].createClass({ exports['default'] = PaginationButton; module.exports = exports['default']; -},{"./BootstrapMixin":8,"./utils/createSelectedEvent":70,"classnames":74,"react":288}],47:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./utils/createSelectedEvent":70,"classnames":74,"react":270}],47:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -6260,7 +6260,7 @@ var Panel = _react2['default'].createClass({ exports['default'] = Panel; module.exports = exports['default']; -},{"./BootstrapMixin":8,"./CollapsibleMixin":16,"classnames":74,"react":288}],48:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./CollapsibleMixin":16,"classnames":74,"react":270}],48:[function(require,module,exports){ /* eslint react/prop-types: [1, {ignore: ["children", "className", "bsStyle"]}]*/ /* BootstrapMixin contains `bsStyle` type validation */ 'use strict'; @@ -6368,7 +6368,7 @@ var PanelGroup = _react2['default'].createClass({ exports['default'] = PanelGroup; module.exports = exports['default']; -},{"./BootstrapMixin":8,"./utils/ValidComponentChildren":66,"classnames":74,"react":288}],49:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./utils/ValidComponentChildren":66,"classnames":74,"react":270}],49:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -6463,7 +6463,7 @@ exports['default'] = Popover; module.exports = exports['default']; // in class will be added by the FadeMixin when the animation property is true -},{"./BootstrapMixin":8,"./FadeMixin":21,"classnames":74,"react":288}],50:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./FadeMixin":21,"classnames":74,"react":270}],50:[function(require,module,exports){ /* eslint react/prop-types: [1, {ignore: ["className", "bsStyle"]}]*/ /* BootstrapMixin contains `bsStyle` type validation */ @@ -6636,7 +6636,7 @@ function onlyProgressBar(props, propName, componentName) { exports['default'] = ProgressBar; module.exports = exports['default']; -},{"./BootstrapMixin":8,"./Interpolate":29,"./utils/ValidComponentChildren":66,"classnames":74,"react":288}],51:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./Interpolate":29,"./utils/ValidComponentChildren":66,"classnames":74,"react":270}],51:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -6743,7 +6743,7 @@ RootCloseWrapper.propTypes = { onRootClose: _react2['default'].PropTypes.func.isRequired }; module.exports = exports['default']; -},{"./utils/EventListener":64,"./utils/domUtils":72,"react":288}],52:[function(require,module,exports){ +},{"./utils/EventListener":64,"./utils/domUtils":72,"react":270}],52:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -6788,7 +6788,7 @@ var Row = _react2['default'].createClass({ exports['default'] = Row; module.exports = exports['default']; -},{"classnames":74,"react":288}],53:[function(require,module,exports){ +},{"classnames":74,"react":270}],53:[function(require,module,exports){ /* eslint react/prop-types: [1, {ignore: ["children", "className", "bsSize"]}]*/ /* BootstrapMixin contains `bsSize` type validation */ 'use strict'; @@ -6939,7 +6939,7 @@ var SplitButton = _react2['default'].createClass({ exports['default'] = SplitButton; module.exports = exports['default']; -},{"./BootstrapMixin":8,"./Button":9,"./ButtonGroup":10,"./DropdownMenu":19,"./DropdownStateMixin":20,"classnames":74,"react":288}],54:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./Button":9,"./ButtonGroup":10,"./DropdownMenu":19,"./DropdownStateMixin":20,"classnames":74,"react":270}],54:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -7092,7 +7092,7 @@ var SubNav = _react2['default'].createClass({ exports['default'] = SubNav; module.exports = exports['default']; -},{"./BootstrapMixin":8,"./utils/ValidComponentChildren":66,"./utils/createChainedFunction":68,"classnames":74,"react":288}],55:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./utils/ValidComponentChildren":66,"./utils/createChainedFunction":68,"classnames":74,"react":270}],55:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -7199,7 +7199,7 @@ var TabPane = _react2['default'].createClass({ exports['default'] = TabPane; module.exports = exports['default']; -},{"./utils/TransitionEvents":65,"classnames":74,"react":288}],56:[function(require,module,exports){ +},{"./utils/TransitionEvents":65,"classnames":74,"react":270}],56:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -7365,7 +7365,7 @@ var TabbedArea = _react2['default'].createClass({ exports['default'] = TabbedArea; module.exports = exports['default']; -},{"./BootstrapMixin":8,"./Nav":37,"./NavItem":38,"./utils/ValidComponentChildren":66,"react":288}],57:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./Nav":37,"./NavItem":38,"./utils/ValidComponentChildren":66,"react":270}],57:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -7419,7 +7419,7 @@ var Table = _react2['default'].createClass({ exports['default'] = Table; module.exports = exports['default']; -},{"classnames":74,"react":288}],58:[function(require,module,exports){ +},{"classnames":74,"react":270}],58:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -7487,7 +7487,7 @@ var Thumbnail = _react2['default'].createClass({ exports['default'] = Thumbnail; module.exports = exports['default']; -},{"./BootstrapMixin":8,"classnames":74,"react":288}],59:[function(require,module,exports){ +},{"./BootstrapMixin":8,"classnames":74,"react":270}],59:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -7571,7 +7571,7 @@ exports['default'] = Tooltip; module.exports = exports['default']; // in class will be added by the FadeMixin when the animation property is true -},{"./BootstrapMixin":8,"./FadeMixin":21,"classnames":74,"react":288}],60:[function(require,module,exports){ +},{"./BootstrapMixin":8,"./FadeMixin":21,"classnames":74,"react":270}],60:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -7618,7 +7618,7 @@ var Well = _react2['default'].createClass({ exports['default'] = Well; module.exports = exports['default']; -},{"./BootstrapMixin":8,"classnames":74,"react":288}],61:[function(require,module,exports){ +},{"./BootstrapMixin":8,"classnames":74,"react":270}],61:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -8383,7 +8383,7 @@ exports['default'] = { hasValidComponent: hasValidComponent }; module.exports = exports['default']; -},{"react":288}],67:[function(require,module,exports){ +},{"react":270}],67:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -8412,7 +8412,7 @@ function valueValidation(props, propName, componentName) { } module.exports = exports['default']; -},{"./CustomPropTypes":63,"react":288}],68:[function(require,module,exports){ +},{"./CustomPropTypes":63,"react":270}],68:[function(require,module,exports){ /** * Safe chained function * @@ -8555,7 +8555,7 @@ function createContextWrapper(Trigger, propName) { } module.exports = exports['default']; -},{"react":288}],70:[function(require,module,exports){ +},{"react":270}],70:[function(require,module,exports){ "use strict"; Object.defineProperty(exports, "__esModule", { @@ -8759,7 +8759,7 @@ exports['default'] = { offsetParent: offsetParentFunc }; module.exports = exports['default']; -},{"react":288}],73:[function(require,module,exports){ +},{"react":270}],73:[function(require,module,exports){ 'use strict'; Object.defineProperty(exports, '__esModule', { @@ -8913,7 +8913,7 @@ module.exports = React.createClass({ } }) -},{"lodash":76,"react":288}],76:[function(require,module,exports){ +},{"lodash":76,"react":270}],76:[function(require,module,exports){ (function (global){ /** * @license @@ -21193,7 +21193,7 @@ var History = { }; module.exports = History; -},{"react/lib/ExecutionEnvironment":137,"react/lib/invariant":266}],79:[function(require,module,exports){ +},{"react/lib/ExecutionEnvironment":135,"react/lib/invariant":250}],79:[function(require,module,exports){ 'use strict'; var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; @@ -21494,7 +21494,7 @@ var PathUtils = { }; module.exports = PathUtils; -},{"object-assign":110,"qs":111,"react/lib/invariant":266}],82:[function(require,module,exports){ +},{"object-assign":110,"qs":111,"react/lib/invariant":250}],82:[function(require,module,exports){ 'use strict'; var assign = require('react/lib/Object.assign'); @@ -21526,7 +21526,7 @@ var PropTypes = assign({}, ReactPropTypes, { }); module.exports = PropTypes; -},{"./Route":84,"react":288,"react/lib/Object.assign":144}],83:[function(require,module,exports){ +},{"./Route":84,"react":270,"react/lib/Object.assign":141}],83:[function(require,module,exports){ /** * Encapsulates a redirect to the given route. */ @@ -21740,7 +21740,7 @@ var Route = (function () { })(); module.exports = Route; -},{"./PathUtils":81,"react/lib/Object.assign":144,"react/lib/invariant":266,"react/lib/warning":287}],85:[function(require,module,exports){ +},{"./PathUtils":81,"react/lib/Object.assign":141,"react/lib/invariant":250,"react/lib/warning":269}],85:[function(require,module,exports){ 'use strict'; var invariant = require('react/lib/invariant'); @@ -21816,7 +21816,7 @@ var ScrollHistory = { }; module.exports = ScrollHistory; -},{"./getWindowScrollPosition":100,"react/lib/ExecutionEnvironment":137,"react/lib/invariant":266}],86:[function(require,module,exports){ +},{"./getWindowScrollPosition":100,"react/lib/ExecutionEnvironment":135,"react/lib/invariant":250}],86:[function(require,module,exports){ 'use strict'; var PropTypes = require('./PropTypes'); @@ -22078,7 +22078,7 @@ var ContextWrapper = (function (_React$Component) { })(React.Component); module.exports = ContextWrapper; -},{"react":288}],92:[function(require,module,exports){ +},{"react":270}],92:[function(require,module,exports){ 'use strict'; var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; @@ -22262,7 +22262,7 @@ Link.defaultProps = { }; module.exports = Link; -},{"../PropTypes":82,"react":288,"react/lib/Object.assign":144}],94:[function(require,module,exports){ +},{"../PropTypes":82,"react":270,"react/lib/Object.assign":141}],94:[function(require,module,exports){ 'use strict'; var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; @@ -22447,7 +22447,7 @@ Route.defaultProps = { }; module.exports = Route; -},{"../PropTypes":82,"./RouteHandler":97,"react":288,"react/lib/invariant":266}],97:[function(require,module,exports){ +},{"../PropTypes":82,"./RouteHandler":97,"react":270,"react/lib/invariant":250}],97:[function(require,module,exports){ 'use strict'; var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; @@ -22556,7 +22556,7 @@ RouteHandler.childContextTypes = { }; module.exports = RouteHandler; -},{"../PropTypes":82,"./ContextWrapper":91,"react":288,"react/lib/Object.assign":144}],98:[function(require,module,exports){ +},{"../PropTypes":82,"./ContextWrapper":91,"react":270,"react/lib/Object.assign":141}],98:[function(require,module,exports){ (function (process){ /* jshint -W058 */ 'use strict'; @@ -23073,7 +23073,7 @@ function createRouter(options) { module.exports = createRouter; }).call(this,require('_process')) -},{"./Cancellation":77,"./History":78,"./Match":79,"./PathUtils":81,"./PropTypes":82,"./Redirect":83,"./Route":84,"./ScrollHistory":85,"./Transition":87,"./actions/LocationActions":88,"./behaviors/ImitateBrowserBehavior":89,"./createRoutesFromReactChildren":99,"./isReactChildren":102,"./locations/HashLocation":103,"./locations/HistoryLocation":104,"./locations/RefreshLocation":105,"./locations/StaticLocation":106,"./supportsHistory":109,"_process":1,"react":288,"react/lib/ExecutionEnvironment":137,"react/lib/invariant":266,"react/lib/warning":287}],99:[function(require,module,exports){ +},{"./Cancellation":77,"./History":78,"./Match":79,"./PathUtils":81,"./PropTypes":82,"./Redirect":83,"./Route":84,"./ScrollHistory":85,"./Transition":87,"./actions/LocationActions":88,"./behaviors/ImitateBrowserBehavior":89,"./createRoutesFromReactChildren":99,"./isReactChildren":102,"./locations/HashLocation":103,"./locations/HistoryLocation":104,"./locations/RefreshLocation":105,"./locations/StaticLocation":106,"./supportsHistory":109,"_process":1,"react":270,"react/lib/ExecutionEnvironment":135,"react/lib/invariant":250,"react/lib/warning":269}],99:[function(require,module,exports){ /* jshint -W084 */ 'use strict'; @@ -23155,7 +23155,7 @@ function createRoutesFromReactChildren(children) { } module.exports = createRoutesFromReactChildren; -},{"./Route":84,"./components/DefaultRoute":92,"./components/NotFoundRoute":94,"./components/Redirect":95,"react":288,"react/lib/Object.assign":144,"react/lib/warning":287}],100:[function(require,module,exports){ +},{"./Route":84,"./components/DefaultRoute":92,"./components/NotFoundRoute":94,"./components/Redirect":95,"react":270,"react/lib/Object.assign":141,"react/lib/warning":269}],100:[function(require,module,exports){ 'use strict'; var invariant = require('react/lib/invariant'); @@ -23174,7 +23174,7 @@ function getWindowScrollPosition() { } module.exports = getWindowScrollPosition; -},{"react/lib/ExecutionEnvironment":137,"react/lib/invariant":266}],101:[function(require,module,exports){ +},{"react/lib/ExecutionEnvironment":135,"react/lib/invariant":250}],101:[function(require,module,exports){ 'use strict'; exports.DefaultRoute = require('./components/DefaultRoute'); @@ -23220,7 +23220,7 @@ function isReactChildren(object) { } module.exports = isReactChildren; -},{"react":288}],103:[function(require,module,exports){ +},{"react":270}],103:[function(require,module,exports){ 'use strict'; var LocationActions = require('../actions/LocationActions'); @@ -23501,7 +23501,7 @@ StaticLocation.prototype.replace = throwCannotModify; StaticLocation.prototype.pop = throwCannotModify; module.exports = StaticLocation; -},{"react/lib/invariant":266}],107:[function(require,module,exports){ +},{"react/lib/invariant":250}],107:[function(require,module,exports){ 'use strict'; var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }; @@ -23596,7 +23596,7 @@ var TestLocation = (function () { })(); module.exports = TestLocation; -},{"../History":78,"../actions/LocationActions":88,"react/lib/invariant":266}],108:[function(require,module,exports){ +},{"../History":78,"../actions/LocationActions":88,"react/lib/invariant":250}],108:[function(require,module,exports){ 'use strict'; var createRouter = require('./createRouter'); @@ -24109,9 +24109,6 @@ exports.isBuffer = function (obj) { }; },{}],116:[function(require,module,exports){ -module.exports = require('./lib/ReactWithAddons'); - -},{"./lib/ReactWithAddons":216}],117:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -24138,7 +24135,7 @@ var AutoFocusMixin = { module.exports = AutoFocusMixin; -},{"./focusNode":250}],118:[function(require,module,exports){ +},{"./focusNode":234}],117:[function(require,module,exports){ /** * Copyright 2013-2015 Facebook, Inc. * All rights reserved. @@ -24633,119 +24630,7 @@ var BeforeInputEventPlugin = { module.exports = BeforeInputEventPlugin; -},{"./EventConstants":131,"./EventPropagators":136,"./ExecutionEnvironment":137,"./FallbackCompositionState":138,"./SyntheticCompositionEvent":222,"./SyntheticInputEvent":226,"./keyOf":273}],119:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule CSSCore - * @typechecks - */ - -var invariant = require("./invariant"); - -/** - * The CSSCore module specifies the API (and implements most of the methods) - * that should be used when dealing with the display of elements (via their - * CSS classes and visibility on screen. It is an API focused on mutating the - * display and not reading it as no logical state should be encoded in the - * display of elements. - */ - -var CSSCore = { - - /** - * Adds the class passed in to the element if it doesn't already have it. - * - * @param {DOMElement} element the element to set the class on - * @param {string} className the CSS className - * @return {DOMElement} the element passed in - */ - addClass: function(element, className) { - ("production" !== process.env.NODE_ENV ? invariant( - !/\s/.test(className), - 'CSSCore.addClass takes only a single class name. "%s" contains ' + - 'multiple classes.', className - ) : invariant(!/\s/.test(className))); - - if (className) { - if (element.classList) { - element.classList.add(className); - } else if (!CSSCore.hasClass(element, className)) { - element.className = element.className + ' ' + className; - } - } - return element; - }, - - /** - * Removes the class passed in from the element - * - * @param {DOMElement} element the element to set the class on - * @param {string} className the CSS className - * @return {DOMElement} the element passed in - */ - removeClass: function(element, className) { - ("production" !== process.env.NODE_ENV ? invariant( - !/\s/.test(className), - 'CSSCore.removeClass takes only a single class name. "%s" contains ' + - 'multiple classes.', className - ) : invariant(!/\s/.test(className))); - - if (className) { - if (element.classList) { - element.classList.remove(className); - } else if (CSSCore.hasClass(element, className)) { - element.className = element.className - .replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)', 'g'), '$1') - .replace(/\s+/g, ' ') // multiple spaces to one - .replace(/^\s*|\s*$/g, ''); // trim the ends - } - } - return element; - }, - - /** - * Helper to add or remove a class from an element based on a condition. - * - * @param {DOMElement} element the element to set the class on - * @param {string} className the CSS className - * @param {*} bool condition to whether to add or remove the class - * @return {DOMElement} the element passed in - */ - conditionClass: function(element, className, bool) { - return (bool ? CSSCore.addClass : CSSCore.removeClass)(element, className); - }, - - /** - * Tests whether the element has the class specified. - * - * @param {DOMNode|DOMWindow} element the element to set the class on - * @param {string} className the CSS className - * @return {boolean} true if the element has the class, false if not - */ - hasClass: function(element, className) { - ("production" !== process.env.NODE_ENV ? invariant( - !/\s/.test(className), - 'CSS.hasClass takes only a single class name.' - ) : invariant(!/\s/.test(className))); - if (element.classList) { - return !!className && element.classList.contains(className); - } - return (' ' + element.className + ' ').indexOf(' ' + className + ' ') > -1; - } - -}; - -module.exports = CSSCore; - -}).call(this,require('_process')) -},{"./invariant":266,"_process":1}],120:[function(require,module,exports){ +},{"./EventConstants":129,"./EventPropagators":134,"./ExecutionEnvironment":135,"./FallbackCompositionState":136,"./SyntheticCompositionEvent":208,"./SyntheticInputEvent":212,"./keyOf":256}],118:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -24870,7 +24755,7 @@ var CSSProperty = { module.exports = CSSProperty; -},{}],121:[function(require,module,exports){ +},{}],119:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -25052,7 +24937,7 @@ var CSSPropertyOperations = { module.exports = CSSPropertyOperations; }).call(this,require('_process')) -},{"./CSSProperty":120,"./ExecutionEnvironment":137,"./camelizeStyleName":237,"./dangerousStyleValue":244,"./hyphenateStyleName":264,"./memoizeStringOnly":275,"./warning":287,"_process":1}],122:[function(require,module,exports){ +},{"./CSSProperty":118,"./ExecutionEnvironment":135,"./camelizeStyleName":223,"./dangerousStyleValue":228,"./hyphenateStyleName":248,"./memoizeStringOnly":258,"./warning":269,"_process":1}],120:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -25152,7 +25037,7 @@ PooledClass.addPoolingTo(CallbackQueue); module.exports = CallbackQueue; }).call(this,require('_process')) -},{"./Object.assign":144,"./PooledClass":145,"./invariant":266,"_process":1}],123:[function(require,module,exports){ +},{"./Object.assign":141,"./PooledClass":142,"./invariant":250,"_process":1}],121:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -25534,7 +25419,7 @@ var ChangeEventPlugin = { module.exports = ChangeEventPlugin; -},{"./EventConstants":131,"./EventPluginHub":133,"./EventPropagators":136,"./ExecutionEnvironment":137,"./ReactUpdates":215,"./SyntheticEvent":224,"./isEventSupported":267,"./isTextInputElement":269,"./keyOf":273}],124:[function(require,module,exports){ +},{"./EventConstants":129,"./EventPluginHub":131,"./EventPropagators":134,"./ExecutionEnvironment":135,"./ReactUpdates":202,"./SyntheticEvent":210,"./isEventSupported":251,"./isTextInputElement":253,"./keyOf":256}],122:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -25559,7 +25444,7 @@ var ClientReactRootIndex = { module.exports = ClientReactRootIndex; -},{}],125:[function(require,module,exports){ +},{}],123:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -25697,7 +25582,7 @@ var DOMChildrenOperations = { module.exports = DOMChildrenOperations; }).call(this,require('_process')) -},{"./Danger":128,"./ReactMultiChildUpdateTypes":194,"./invariant":266,"./setTextContent":281,"_process":1}],126:[function(require,module,exports){ +},{"./Danger":126,"./ReactMultiChildUpdateTypes":187,"./invariant":250,"./setTextContent":264,"_process":1}],124:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -25996,7 +25881,7 @@ var DOMProperty = { module.exports = DOMProperty; }).call(this,require('_process')) -},{"./invariant":266,"_process":1}],127:[function(require,module,exports){ +},{"./invariant":250,"_process":1}],125:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -26188,7 +26073,7 @@ var DOMPropertyOperations = { module.exports = DOMPropertyOperations; }).call(this,require('_process')) -},{"./DOMProperty":126,"./quoteAttributeValueForBrowser":279,"./warning":287,"_process":1}],128:[function(require,module,exports){ +},{"./DOMProperty":124,"./quoteAttributeValueForBrowser":262,"./warning":269,"_process":1}],126:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -26375,7 +26260,7 @@ var Danger = { module.exports = Danger; }).call(this,require('_process')) -},{"./ExecutionEnvironment":137,"./createNodesFromMarkup":242,"./emptyFunction":245,"./getMarkupWrap":258,"./invariant":266,"_process":1}],129:[function(require,module,exports){ +},{"./ExecutionEnvironment":135,"./createNodesFromMarkup":227,"./emptyFunction":229,"./getMarkupWrap":242,"./invariant":250,"_process":1}],127:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -26414,7 +26299,7 @@ var DefaultEventPluginOrder = [ module.exports = DefaultEventPluginOrder; -},{"./keyOf":273}],130:[function(require,module,exports){ +},{"./keyOf":256}],128:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -26554,7 +26439,7 @@ var EnterLeaveEventPlugin = { module.exports = EnterLeaveEventPlugin; -},{"./EventConstants":131,"./EventPropagators":136,"./ReactMount":192,"./SyntheticMouseEvent":228,"./keyOf":273}],131:[function(require,module,exports){ +},{"./EventConstants":129,"./EventPropagators":134,"./ReactMount":185,"./SyntheticMouseEvent":214,"./keyOf":256}],129:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -26626,7 +26511,7 @@ var EventConstants = { module.exports = EventConstants; -},{"./keyMirror":272}],132:[function(require,module,exports){ +},{"./keyMirror":255}],130:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -26716,7 +26601,7 @@ var EventListener = { module.exports = EventListener; }).call(this,require('_process')) -},{"./emptyFunction":245,"_process":1}],133:[function(require,module,exports){ +},{"./emptyFunction":229,"_process":1}],131:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -26994,7 +26879,7 @@ var EventPluginHub = { module.exports = EventPluginHub; }).call(this,require('_process')) -},{"./EventPluginRegistry":134,"./EventPluginUtils":135,"./accumulateInto":234,"./forEachAccumulated":251,"./invariant":266,"_process":1}],134:[function(require,module,exports){ +},{"./EventPluginRegistry":132,"./EventPluginUtils":133,"./accumulateInto":220,"./forEachAccumulated":235,"./invariant":250,"_process":1}],132:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -27274,7 +27159,7 @@ var EventPluginRegistry = { module.exports = EventPluginRegistry; }).call(this,require('_process')) -},{"./invariant":266,"_process":1}],135:[function(require,module,exports){ +},{"./invariant":250,"_process":1}],133:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -27495,7 +27380,7 @@ var EventPluginUtils = { module.exports = EventPluginUtils; }).call(this,require('_process')) -},{"./EventConstants":131,"./invariant":266,"_process":1}],136:[function(require,module,exports){ +},{"./EventConstants":129,"./invariant":250,"_process":1}],134:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -27637,7 +27522,7 @@ var EventPropagators = { module.exports = EventPropagators; }).call(this,require('_process')) -},{"./EventConstants":131,"./EventPluginHub":133,"./accumulateInto":234,"./forEachAccumulated":251,"_process":1}],137:[function(require,module,exports){ +},{"./EventConstants":129,"./EventPluginHub":131,"./accumulateInto":220,"./forEachAccumulated":235,"_process":1}],135:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -27681,7 +27566,7 @@ var ExecutionEnvironment = { module.exports = ExecutionEnvironment; -},{}],138:[function(require,module,exports){ +},{}],136:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -27772,7 +27657,7 @@ PooledClass.addPoolingTo(FallbackCompositionState); module.exports = FallbackCompositionState; -},{"./Object.assign":144,"./PooledClass":145,"./getTextContentAccessor":261}],139:[function(require,module,exports){ +},{"./Object.assign":141,"./PooledClass":142,"./getTextContentAccessor":245}],137:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -27983,48 +27868,7 @@ var HTMLDOMPropertyConfig = { module.exports = HTMLDOMPropertyConfig; -},{"./DOMProperty":126,"./ExecutionEnvironment":137}],140:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule LinkedStateMixin - * @typechecks static-only - */ - -'use strict'; - -var ReactLink = require("./ReactLink"); -var ReactStateSetters = require("./ReactStateSetters"); - -/** - * A simple mixin around ReactLink.forState(). - */ -var LinkedStateMixin = { - /** - * Create a ReactLink that's linked to part of this component's state. The - * ReactLink will have the current value of this.state[key] and will call - * setState() when a change is requested. - * - * @param {string} key state key to update. Note: you may want to use keyOf() - * if you're using Google Closure Compiler advanced mode. - * @return {ReactLink} ReactLink instance linking to the state. - */ - linkState: function(key) { - return new ReactLink( - this.state[key], - ReactStateSetters.createStateKeySetter(this, key) - ); - } -}; - -module.exports = LinkedStateMixin; - -},{"./ReactLink":190,"./ReactStateSetters":209}],141:[function(require,module,exports){ +},{"./DOMProperty":124,"./ExecutionEnvironment":135}],138:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -28180,7 +28024,7 @@ var LinkedValueUtils = { module.exports = LinkedValueUtils; }).call(this,require('_process')) -},{"./ReactPropTypes":201,"./invariant":266,"_process":1}],142:[function(require,module,exports){ +},{"./ReactPropTypes":193,"./invariant":250,"_process":1}],139:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -28237,7 +28081,7 @@ var LocalEventTrapMixin = { module.exports = LocalEventTrapMixin; }).call(this,require('_process')) -},{"./ReactBrowserEventEmitter":148,"./accumulateInto":234,"./forEachAccumulated":251,"./invariant":266,"_process":1}],143:[function(require,module,exports){ +},{"./ReactBrowserEventEmitter":145,"./accumulateInto":220,"./forEachAccumulated":235,"./invariant":250,"_process":1}],140:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -28295,7 +28139,7 @@ var MobileSafariClickEventPlugin = { module.exports = MobileSafariClickEventPlugin; -},{"./EventConstants":131,"./emptyFunction":245}],144:[function(require,module,exports){ +},{"./EventConstants":129,"./emptyFunction":229}],141:[function(require,module,exports){ /** * Copyright 2014-2015, Facebook, Inc. * All rights reserved. @@ -28344,7 +28188,7 @@ function assign(target, sources) { module.exports = assign; -},{}],145:[function(require,module,exports){ +},{}],142:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -28460,7 +28304,7 @@ var PooledClass = { module.exports = PooledClass; }).call(this,require('_process')) -},{"./invariant":266,"_process":1}],146:[function(require,module,exports){ +},{"./invariant":250,"_process":1}],143:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -28612,7 +28456,7 @@ React.version = '0.13.3'; module.exports = React; }).call(this,require('_process')) -},{"./EventPluginUtils":135,"./ExecutionEnvironment":137,"./Object.assign":144,"./ReactChildren":152,"./ReactClass":153,"./ReactComponent":154,"./ReactContext":159,"./ReactCurrentOwner":160,"./ReactDOM":161,"./ReactDOMTextComponent":172,"./ReactDefaultInjection":175,"./ReactElement":178,"./ReactElementValidator":179,"./ReactInstanceHandles":187,"./ReactMount":192,"./ReactPerf":197,"./ReactPropTypes":201,"./ReactReconciler":204,"./ReactServerRendering":207,"./findDOMNode":248,"./onlyChild":276,"_process":1}],147:[function(require,module,exports){ +},{"./EventPluginUtils":133,"./ExecutionEnvironment":135,"./Object.assign":141,"./ReactChildren":147,"./ReactClass":148,"./ReactComponent":149,"./ReactContext":153,"./ReactCurrentOwner":154,"./ReactDOM":155,"./ReactDOMTextComponent":166,"./ReactDefaultInjection":169,"./ReactElement":172,"./ReactElementValidator":173,"./ReactInstanceHandles":181,"./ReactMount":185,"./ReactPerf":190,"./ReactPropTypes":193,"./ReactReconciler":196,"./ReactServerRendering":199,"./findDOMNode":232,"./onlyChild":259,"_process":1}],144:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -28643,7 +28487,7 @@ var ReactBrowserComponentMixin = { module.exports = ReactBrowserComponentMixin; -},{"./findDOMNode":248}],148:[function(require,module,exports){ +},{"./findDOMNode":232}],145:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -28996,225 +28840,7 @@ var ReactBrowserEventEmitter = assign({}, ReactEventEmitterMixin, { module.exports = ReactBrowserEventEmitter; -},{"./EventConstants":131,"./EventPluginHub":133,"./EventPluginRegistry":134,"./Object.assign":144,"./ReactEventEmitterMixin":182,"./ViewportMetrics":233,"./isEventSupported":267}],149:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - * @providesModule ReactCSSTransitionGroup - */ - -'use strict'; - -var React = require("./React"); - -var assign = require("./Object.assign"); - -var ReactTransitionGroup = React.createFactory( - require("./ReactTransitionGroup") -); -var ReactCSSTransitionGroupChild = React.createFactory( - require("./ReactCSSTransitionGroupChild") -); - -var ReactCSSTransitionGroup = React.createClass({ - displayName: 'ReactCSSTransitionGroup', - - propTypes: { - transitionName: React.PropTypes.string.isRequired, - transitionAppear: React.PropTypes.bool, - transitionEnter: React.PropTypes.bool, - transitionLeave: React.PropTypes.bool - }, - - getDefaultProps: function() { - return { - transitionAppear: false, - transitionEnter: true, - transitionLeave: true - }; - }, - - _wrapChild: function(child) { - // We need to provide this childFactory so that - // ReactCSSTransitionGroupChild can receive updates to name, enter, and - // leave while it is leaving. - return ReactCSSTransitionGroupChild( - { - name: this.props.transitionName, - appear: this.props.transitionAppear, - enter: this.props.transitionEnter, - leave: this.props.transitionLeave - }, - child - ); - }, - - render: function() { - return ( - ReactTransitionGroup( - assign({}, this.props, {childFactory: this._wrapChild}) - ) - ); - } -}); - -module.exports = ReactCSSTransitionGroup; - -},{"./Object.assign":144,"./React":146,"./ReactCSSTransitionGroupChild":150,"./ReactTransitionGroup":213}],150:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks - * @providesModule ReactCSSTransitionGroupChild - */ - -'use strict'; - -var React = require("./React"); - -var CSSCore = require("./CSSCore"); -var ReactTransitionEvents = require("./ReactTransitionEvents"); - -var onlyChild = require("./onlyChild"); -var warning = require("./warning"); - -// We don't remove the element from the DOM until we receive an animationend or -// transitionend event. If the user screws up and forgets to add an animation -// their node will be stuck in the DOM forever, so we detect if an animation -// does not start and if it doesn't, we just call the end listener immediately. -var TICK = 17; -var NO_EVENT_TIMEOUT = 5000; - -var noEventListener = null; - - -if ("production" !== process.env.NODE_ENV) { - noEventListener = function() { - ("production" !== process.env.NODE_ENV ? warning( - false, - 'transition(): tried to perform an animation without ' + - 'an animationend or transitionend event after timeout (' + - '%sms). You should either disable this ' + - 'transition in JS or add a CSS animation/transition.', - NO_EVENT_TIMEOUT - ) : null); - }; -} - -var ReactCSSTransitionGroupChild = React.createClass({ - displayName: 'ReactCSSTransitionGroupChild', - - transition: function(animationType, finishCallback) { - var node = this.getDOMNode(); - var className = this.props.name + '-' + animationType; - var activeClassName = className + '-active'; - var noEventTimeout = null; - - var endListener = function(e) { - if (e && e.target !== node) { - return; - } - if ("production" !== process.env.NODE_ENV) { - clearTimeout(noEventTimeout); - } - - CSSCore.removeClass(node, className); - CSSCore.removeClass(node, activeClassName); - - ReactTransitionEvents.removeEndEventListener(node, endListener); - - // Usually this optional callback is used for informing an owner of - // a leave animation and telling it to remove the child. - if (finishCallback) { - finishCallback(); - } - }; - - ReactTransitionEvents.addEndEventListener(node, endListener); - - CSSCore.addClass(node, className); - - // Need to do this to actually trigger a transition. - this.queueClass(activeClassName); - - if ("production" !== process.env.NODE_ENV) { - noEventTimeout = setTimeout(noEventListener, NO_EVENT_TIMEOUT); - } - }, - - queueClass: function(className) { - this.classNameQueue.push(className); - - if (!this.timeout) { - this.timeout = setTimeout(this.flushClassNameQueue, TICK); - } - }, - - flushClassNameQueue: function() { - if (this.isMounted()) { - this.classNameQueue.forEach( - CSSCore.addClass.bind(CSSCore, this.getDOMNode()) - ); - } - this.classNameQueue.length = 0; - this.timeout = null; - }, - - componentWillMount: function() { - this.classNameQueue = []; - }, - - componentWillUnmount: function() { - if (this.timeout) { - clearTimeout(this.timeout); - } - }, - - componentWillAppear: function(done) { - if (this.props.appear) { - this.transition('appear', done); - } else { - done(); - } - }, - - componentWillEnter: function(done) { - if (this.props.enter) { - this.transition('enter', done); - } else { - done(); - } - }, - - componentWillLeave: function(done) { - if (this.props.leave) { - this.transition('leave', done); - } else { - done(); - } - }, - - render: function() { - return onlyChild(this.props.children); - } -}); - -module.exports = ReactCSSTransitionGroupChild; - -}).call(this,require('_process')) -},{"./CSSCore":119,"./React":146,"./ReactTransitionEvents":212,"./onlyChild":276,"./warning":287,"_process":1}],151:[function(require,module,exports){ +},{"./EventConstants":129,"./EventPluginHub":131,"./EventPluginRegistry":132,"./Object.assign":141,"./ReactEventEmitterMixin":176,"./ViewportMetrics":219,"./isEventSupported":251}],146:[function(require,module,exports){ /** * Copyright 2014-2015, Facebook, Inc. * All rights reserved. @@ -29341,7 +28967,7 @@ var ReactChildReconciler = { module.exports = ReactChildReconciler; -},{"./ReactReconciler":204,"./flattenChildren":249,"./instantiateReactComponent":265,"./shouldUpdateReactComponent":283}],152:[function(require,module,exports){ +},{"./ReactReconciler":196,"./flattenChildren":233,"./instantiateReactComponent":249,"./shouldUpdateReactComponent":266}],147:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -29494,7 +29120,7 @@ var ReactChildren = { module.exports = ReactChildren; }).call(this,require('_process')) -},{"./PooledClass":145,"./ReactFragment":184,"./traverseAllChildren":285,"./warning":287,"_process":1}],153:[function(require,module,exports){ +},{"./PooledClass":142,"./ReactFragment":178,"./traverseAllChildren":268,"./warning":269,"_process":1}],148:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -30440,7 +30066,7 @@ var ReactClass = { module.exports = ReactClass; }).call(this,require('_process')) -},{"./Object.assign":144,"./ReactComponent":154,"./ReactCurrentOwner":160,"./ReactElement":178,"./ReactErrorUtils":181,"./ReactInstanceMap":188,"./ReactLifeCycle":189,"./ReactPropTypeLocationNames":199,"./ReactPropTypeLocations":200,"./ReactUpdateQueue":214,"./invariant":266,"./keyMirror":272,"./keyOf":273,"./warning":287,"_process":1}],154:[function(require,module,exports){ +},{"./Object.assign":141,"./ReactComponent":149,"./ReactCurrentOwner":154,"./ReactElement":172,"./ReactErrorUtils":175,"./ReactInstanceMap":182,"./ReactLifeCycle":183,"./ReactPropTypeLocationNames":191,"./ReactPropTypeLocations":192,"./ReactUpdateQueue":201,"./invariant":250,"./keyMirror":255,"./keyOf":256,"./warning":269,"_process":1}],149:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -30594,7 +30220,7 @@ if ("production" !== process.env.NODE_ENV) { module.exports = ReactComponent; }).call(this,require('_process')) -},{"./ReactUpdateQueue":214,"./invariant":266,"./warning":287,"_process":1}],155:[function(require,module,exports){ +},{"./ReactUpdateQueue":201,"./invariant":250,"./warning":269,"_process":1}],150:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -30641,7 +30267,7 @@ var ReactComponentBrowserEnvironment = { module.exports = ReactComponentBrowserEnvironment; -},{"./ReactDOMIDOperations":165,"./ReactMount":192}],156:[function(require,module,exports){ +},{"./ReactDOMIDOperations":159,"./ReactMount":185}],151:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -30702,56 +30328,7 @@ var ReactComponentEnvironment = { module.exports = ReactComponentEnvironment; }).call(this,require('_process')) -},{"./invariant":266,"_process":1}],157:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * -* @providesModule ReactComponentWithPureRenderMixin -*/ - -'use strict'; - -var shallowEqual = require("./shallowEqual"); - -/** - * If your React component's render function is "pure", e.g. it will render the - * same result given the same props and state, provide this Mixin for a - * considerable performance boost. - * - * Most React components have pure render functions. - * - * Example: - * - * var ReactComponentWithPureRenderMixin = - * require('ReactComponentWithPureRenderMixin'); - * React.createClass({ - * mixins: [ReactComponentWithPureRenderMixin], - * - * render: function() { - * return
foo
; - * } - * }); - * - * Note: This only checks shallow equality for props and state. If these contain - * complex data structures this mixin may have false-negatives for deeper - * differences. Only mixin to components which have simple props and state, or - * use `forceUpdate()` when you know deep data structures have changed. - */ -var ReactComponentWithPureRenderMixin = { - shouldComponentUpdate: function(nextProps, nextState) { - return !shallowEqual(this.props, nextProps) || - !shallowEqual(this.state, nextState); - } -}; - -module.exports = ReactComponentWithPureRenderMixin; - -},{"./shallowEqual":282}],158:[function(require,module,exports){ +},{"./invariant":250,"_process":1}],152:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -31664,7 +31241,7 @@ var ReactCompositeComponent = { module.exports = ReactCompositeComponent; }).call(this,require('_process')) -},{"./Object.assign":144,"./ReactComponentEnvironment":156,"./ReactContext":159,"./ReactCurrentOwner":160,"./ReactElement":178,"./ReactElementValidator":179,"./ReactInstanceMap":188,"./ReactLifeCycle":189,"./ReactNativeComponent":195,"./ReactPerf":197,"./ReactPropTypeLocationNames":199,"./ReactPropTypeLocations":200,"./ReactReconciler":204,"./ReactUpdates":215,"./emptyObject":246,"./invariant":266,"./shouldUpdateReactComponent":283,"./warning":287,"_process":1}],159:[function(require,module,exports){ +},{"./Object.assign":141,"./ReactComponentEnvironment":151,"./ReactContext":153,"./ReactCurrentOwner":154,"./ReactElement":172,"./ReactElementValidator":173,"./ReactInstanceMap":182,"./ReactLifeCycle":183,"./ReactNativeComponent":188,"./ReactPerf":190,"./ReactPropTypeLocationNames":191,"./ReactPropTypeLocations":192,"./ReactReconciler":196,"./ReactUpdates":202,"./emptyObject":230,"./invariant":250,"./shouldUpdateReactComponent":266,"./warning":269,"_process":1}],153:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -31742,7 +31319,7 @@ var ReactContext = { module.exports = ReactContext; }).call(this,require('_process')) -},{"./Object.assign":144,"./emptyObject":246,"./warning":287,"_process":1}],160:[function(require,module,exports){ +},{"./Object.assign":141,"./emptyObject":230,"./warning":269,"_process":1}],154:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -31776,7 +31353,7 @@ var ReactCurrentOwner = { module.exports = ReactCurrentOwner; -},{}],161:[function(require,module,exports){ +},{}],155:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -31955,7 +31532,7 @@ var ReactDOM = mapObject({ module.exports = ReactDOM; }).call(this,require('_process')) -},{"./ReactElement":178,"./ReactElementValidator":179,"./mapObject":274,"_process":1}],162:[function(require,module,exports){ +},{"./ReactElement":172,"./ReactElementValidator":173,"./mapObject":257,"_process":1}],156:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -32019,7 +31596,7 @@ var ReactDOMButton = ReactClass.createClass({ module.exports = ReactDOMButton; -},{"./AutoFocusMixin":117,"./ReactBrowserComponentMixin":147,"./ReactClass":153,"./ReactElement":178,"./keyMirror":272}],163:[function(require,module,exports){ +},{"./AutoFocusMixin":116,"./ReactBrowserComponentMixin":144,"./ReactClass":148,"./ReactElement":172,"./keyMirror":255}],157:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -32529,7 +32106,7 @@ ReactDOMComponent.injection = { module.exports = ReactDOMComponent; }).call(this,require('_process')) -},{"./CSSPropertyOperations":121,"./DOMProperty":126,"./DOMPropertyOperations":127,"./Object.assign":144,"./ReactBrowserEventEmitter":148,"./ReactComponentBrowserEnvironment":155,"./ReactMount":192,"./ReactMultiChild":193,"./ReactPerf":197,"./escapeTextContentForBrowser":247,"./invariant":266,"./isEventSupported":267,"./keyOf":273,"./warning":287,"_process":1}],164:[function(require,module,exports){ +},{"./CSSPropertyOperations":119,"./DOMProperty":124,"./DOMPropertyOperations":125,"./Object.assign":141,"./ReactBrowserEventEmitter":145,"./ReactComponentBrowserEnvironment":150,"./ReactMount":185,"./ReactMultiChild":186,"./ReactPerf":190,"./escapeTextContentForBrowser":231,"./invariant":250,"./isEventSupported":251,"./keyOf":256,"./warning":269,"_process":1}],158:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -32578,7 +32155,7 @@ var ReactDOMForm = ReactClass.createClass({ module.exports = ReactDOMForm; -},{"./EventConstants":131,"./LocalEventTrapMixin":142,"./ReactBrowserComponentMixin":147,"./ReactClass":153,"./ReactElement":178}],165:[function(require,module,exports){ +},{"./EventConstants":129,"./LocalEventTrapMixin":139,"./ReactBrowserComponentMixin":144,"./ReactClass":148,"./ReactElement":172}],159:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -32746,7 +32323,7 @@ ReactPerf.measureMethods(ReactDOMIDOperations, 'ReactDOMIDOperations', { module.exports = ReactDOMIDOperations; }).call(this,require('_process')) -},{"./CSSPropertyOperations":121,"./DOMChildrenOperations":125,"./DOMPropertyOperations":127,"./ReactMount":192,"./ReactPerf":197,"./invariant":266,"./setInnerHTML":280,"_process":1}],166:[function(require,module,exports){ +},{"./CSSPropertyOperations":119,"./DOMChildrenOperations":123,"./DOMPropertyOperations":125,"./ReactMount":185,"./ReactPerf":190,"./invariant":250,"./setInnerHTML":263,"_process":1}],160:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -32791,7 +32368,7 @@ var ReactDOMIframe = ReactClass.createClass({ module.exports = ReactDOMIframe; -},{"./EventConstants":131,"./LocalEventTrapMixin":142,"./ReactBrowserComponentMixin":147,"./ReactClass":153,"./ReactElement":178}],167:[function(require,module,exports){ +},{"./EventConstants":129,"./LocalEventTrapMixin":139,"./ReactBrowserComponentMixin":144,"./ReactClass":148,"./ReactElement":172}],161:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -32837,7 +32414,7 @@ var ReactDOMImg = ReactClass.createClass({ module.exports = ReactDOMImg; -},{"./EventConstants":131,"./LocalEventTrapMixin":142,"./ReactBrowserComponentMixin":147,"./ReactClass":153,"./ReactElement":178}],168:[function(require,module,exports){ +},{"./EventConstants":129,"./LocalEventTrapMixin":139,"./ReactBrowserComponentMixin":144,"./ReactClass":148,"./ReactElement":172}],162:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -33014,7 +32591,7 @@ var ReactDOMInput = ReactClass.createClass({ module.exports = ReactDOMInput; }).call(this,require('_process')) -},{"./AutoFocusMixin":117,"./DOMPropertyOperations":127,"./LinkedValueUtils":141,"./Object.assign":144,"./ReactBrowserComponentMixin":147,"./ReactClass":153,"./ReactElement":178,"./ReactMount":192,"./ReactUpdates":215,"./invariant":266,"_process":1}],169:[function(require,module,exports){ +},{"./AutoFocusMixin":116,"./DOMPropertyOperations":125,"./LinkedValueUtils":138,"./Object.assign":141,"./ReactBrowserComponentMixin":144,"./ReactClass":148,"./ReactElement":172,"./ReactMount":185,"./ReactUpdates":202,"./invariant":250,"_process":1}],163:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -33066,7 +32643,7 @@ var ReactDOMOption = ReactClass.createClass({ module.exports = ReactDOMOption; }).call(this,require('_process')) -},{"./ReactBrowserComponentMixin":147,"./ReactClass":153,"./ReactElement":178,"./warning":287,"_process":1}],170:[function(require,module,exports){ +},{"./ReactBrowserComponentMixin":144,"./ReactClass":148,"./ReactElement":172,"./warning":269,"_process":1}],164:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -33244,7 +32821,7 @@ var ReactDOMSelect = ReactClass.createClass({ module.exports = ReactDOMSelect; -},{"./AutoFocusMixin":117,"./LinkedValueUtils":141,"./Object.assign":144,"./ReactBrowserComponentMixin":147,"./ReactClass":153,"./ReactElement":178,"./ReactUpdates":215}],171:[function(require,module,exports){ +},{"./AutoFocusMixin":116,"./LinkedValueUtils":138,"./Object.assign":141,"./ReactBrowserComponentMixin":144,"./ReactClass":148,"./ReactElement":172,"./ReactUpdates":202}],165:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -33457,7 +33034,7 @@ var ReactDOMSelection = { module.exports = ReactDOMSelection; -},{"./ExecutionEnvironment":137,"./getNodeForCharacterOffset":259,"./getTextContentAccessor":261}],172:[function(require,module,exports){ +},{"./ExecutionEnvironment":135,"./getNodeForCharacterOffset":243,"./getTextContentAccessor":245}],166:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -33574,7 +33151,7 @@ assign(ReactDOMTextComponent.prototype, { module.exports = ReactDOMTextComponent; -},{"./DOMPropertyOperations":127,"./Object.assign":144,"./ReactComponentBrowserEnvironment":155,"./ReactDOMComponent":163,"./escapeTextContentForBrowser":247}],173:[function(require,module,exports){ +},{"./DOMPropertyOperations":125,"./Object.assign":141,"./ReactComponentBrowserEnvironment":150,"./ReactDOMComponent":157,"./escapeTextContentForBrowser":231}],167:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -33714,7 +33291,7 @@ var ReactDOMTextarea = ReactClass.createClass({ module.exports = ReactDOMTextarea; }).call(this,require('_process')) -},{"./AutoFocusMixin":117,"./DOMPropertyOperations":127,"./LinkedValueUtils":141,"./Object.assign":144,"./ReactBrowserComponentMixin":147,"./ReactClass":153,"./ReactElement":178,"./ReactUpdates":215,"./invariant":266,"./warning":287,"_process":1}],174:[function(require,module,exports){ +},{"./AutoFocusMixin":116,"./DOMPropertyOperations":125,"./LinkedValueUtils":138,"./Object.assign":141,"./ReactBrowserComponentMixin":144,"./ReactClass":148,"./ReactElement":172,"./ReactUpdates":202,"./invariant":250,"./warning":269,"_process":1}],168:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -33787,7 +33364,7 @@ var ReactDefaultBatchingStrategy = { module.exports = ReactDefaultBatchingStrategy; -},{"./Object.assign":144,"./ReactUpdates":215,"./Transaction":232,"./emptyFunction":245}],175:[function(require,module,exports){ +},{"./Object.assign":141,"./ReactUpdates":202,"./Transaction":218,"./emptyFunction":229}],169:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -33946,7 +33523,7 @@ module.exports = { }; }).call(this,require('_process')) -},{"./BeforeInputEventPlugin":118,"./ChangeEventPlugin":123,"./ClientReactRootIndex":124,"./DefaultEventPluginOrder":129,"./EnterLeaveEventPlugin":130,"./ExecutionEnvironment":137,"./HTMLDOMPropertyConfig":139,"./MobileSafariClickEventPlugin":143,"./ReactBrowserComponentMixin":147,"./ReactClass":153,"./ReactComponentBrowserEnvironment":155,"./ReactDOMButton":162,"./ReactDOMComponent":163,"./ReactDOMForm":164,"./ReactDOMIDOperations":165,"./ReactDOMIframe":166,"./ReactDOMImg":167,"./ReactDOMInput":168,"./ReactDOMOption":169,"./ReactDOMSelect":170,"./ReactDOMTextComponent":172,"./ReactDOMTextarea":173,"./ReactDefaultBatchingStrategy":174,"./ReactDefaultPerf":176,"./ReactElement":178,"./ReactEventListener":183,"./ReactInjection":185,"./ReactInstanceHandles":187,"./ReactMount":192,"./ReactReconcileTransaction":203,"./SVGDOMPropertyConfig":217,"./SelectEventPlugin":218,"./ServerReactRootIndex":219,"./SimpleEventPlugin":220,"./createFullPageComponent":241,"_process":1}],176:[function(require,module,exports){ +},{"./BeforeInputEventPlugin":117,"./ChangeEventPlugin":121,"./ClientReactRootIndex":122,"./DefaultEventPluginOrder":127,"./EnterLeaveEventPlugin":128,"./ExecutionEnvironment":135,"./HTMLDOMPropertyConfig":137,"./MobileSafariClickEventPlugin":140,"./ReactBrowserComponentMixin":144,"./ReactClass":148,"./ReactComponentBrowserEnvironment":150,"./ReactDOMButton":156,"./ReactDOMComponent":157,"./ReactDOMForm":158,"./ReactDOMIDOperations":159,"./ReactDOMIframe":160,"./ReactDOMImg":161,"./ReactDOMInput":162,"./ReactDOMOption":163,"./ReactDOMSelect":164,"./ReactDOMTextComponent":166,"./ReactDOMTextarea":167,"./ReactDefaultBatchingStrategy":168,"./ReactDefaultPerf":170,"./ReactElement":172,"./ReactEventListener":177,"./ReactInjection":179,"./ReactInstanceHandles":181,"./ReactMount":185,"./ReactReconcileTransaction":195,"./SVGDOMPropertyConfig":203,"./SelectEventPlugin":204,"./ServerReactRootIndex":205,"./SimpleEventPlugin":206,"./createFullPageComponent":226,"_process":1}],170:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -34212,7 +33789,7 @@ var ReactDefaultPerf = { module.exports = ReactDefaultPerf; -},{"./DOMProperty":126,"./ReactDefaultPerfAnalysis":177,"./ReactMount":192,"./ReactPerf":197,"./performanceNow":278}],177:[function(require,module,exports){ +},{"./DOMProperty":124,"./ReactDefaultPerfAnalysis":171,"./ReactMount":185,"./ReactPerf":190,"./performanceNow":261}],171:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -34418,7 +33995,7 @@ var ReactDefaultPerfAnalysis = { module.exports = ReactDefaultPerfAnalysis; -},{"./Object.assign":144}],178:[function(require,module,exports){ +},{"./Object.assign":141}],172:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -34726,7 +34303,7 @@ ReactElement.isValidElement = function(object) { module.exports = ReactElement; }).call(this,require('_process')) -},{"./Object.assign":144,"./ReactContext":159,"./ReactCurrentOwner":160,"./warning":287,"_process":1}],179:[function(require,module,exports){ +},{"./Object.assign":141,"./ReactContext":153,"./ReactCurrentOwner":154,"./warning":269,"_process":1}],173:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -35191,7 +34768,7 @@ var ReactElementValidator = { module.exports = ReactElementValidator; }).call(this,require('_process')) -},{"./ReactCurrentOwner":160,"./ReactElement":178,"./ReactFragment":184,"./ReactNativeComponent":195,"./ReactPropTypeLocationNames":199,"./ReactPropTypeLocations":200,"./getIteratorFn":257,"./invariant":266,"./warning":287,"_process":1}],180:[function(require,module,exports){ +},{"./ReactCurrentOwner":154,"./ReactElement":172,"./ReactFragment":178,"./ReactNativeComponent":188,"./ReactPropTypeLocationNames":191,"./ReactPropTypeLocations":192,"./getIteratorFn":241,"./invariant":250,"./warning":269,"_process":1}],174:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -35286,7 +34863,7 @@ var ReactEmptyComponent = { module.exports = ReactEmptyComponent; }).call(this,require('_process')) -},{"./ReactElement":178,"./ReactInstanceMap":188,"./invariant":266,"_process":1}],181:[function(require,module,exports){ +},{"./ReactElement":172,"./ReactInstanceMap":182,"./invariant":250,"_process":1}],175:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -35318,7 +34895,7 @@ var ReactErrorUtils = { module.exports = ReactErrorUtils; -},{}],182:[function(require,module,exports){ +},{}],176:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -35368,7 +34945,7 @@ var ReactEventEmitterMixin = { module.exports = ReactEventEmitterMixin; -},{"./EventPluginHub":133}],183:[function(require,module,exports){ +},{"./EventPluginHub":131}],177:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -35551,7 +35128,7 @@ var ReactEventListener = { module.exports = ReactEventListener; -},{"./EventListener":132,"./ExecutionEnvironment":137,"./Object.assign":144,"./PooledClass":145,"./ReactInstanceHandles":187,"./ReactMount":192,"./ReactUpdates":215,"./getEventTarget":256,"./getUnboundedScrollPosition":262}],184:[function(require,module,exports){ +},{"./EventListener":130,"./ExecutionEnvironment":135,"./Object.assign":141,"./PooledClass":142,"./ReactInstanceHandles":181,"./ReactMount":185,"./ReactUpdates":202,"./getEventTarget":240,"./getUnboundedScrollPosition":246}],178:[function(require,module,exports){ (function (process){ /** * Copyright 2015, Facebook, Inc. @@ -35736,7 +35313,7 @@ var ReactFragment = { module.exports = ReactFragment; }).call(this,require('_process')) -},{"./ReactElement":178,"./warning":287,"_process":1}],185:[function(require,module,exports){ +},{"./ReactElement":172,"./warning":269,"_process":1}],179:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -35778,7 +35355,7 @@ var ReactInjection = { module.exports = ReactInjection; -},{"./DOMProperty":126,"./EventPluginHub":133,"./ReactBrowserEventEmitter":148,"./ReactClass":153,"./ReactComponentEnvironment":156,"./ReactDOMComponent":163,"./ReactEmptyComponent":180,"./ReactNativeComponent":195,"./ReactPerf":197,"./ReactRootIndex":206,"./ReactUpdates":215}],186:[function(require,module,exports){ +},{"./DOMProperty":124,"./EventPluginHub":131,"./ReactBrowserEventEmitter":145,"./ReactClass":148,"./ReactComponentEnvironment":151,"./ReactDOMComponent":157,"./ReactEmptyComponent":174,"./ReactNativeComponent":188,"./ReactPerf":190,"./ReactRootIndex":198,"./ReactUpdates":202}],180:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -35913,7 +35490,7 @@ var ReactInputSelection = { module.exports = ReactInputSelection; -},{"./ReactDOMSelection":171,"./containsNode":239,"./focusNode":250,"./getActiveElement":252}],187:[function(require,module,exports){ +},{"./ReactDOMSelection":165,"./containsNode":224,"./focusNode":234,"./getActiveElement":236}],181:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -36249,7 +35826,7 @@ var ReactInstanceHandles = { module.exports = ReactInstanceHandles; }).call(this,require('_process')) -},{"./ReactRootIndex":206,"./invariant":266,"_process":1}],188:[function(require,module,exports){ +},{"./ReactRootIndex":198,"./invariant":250,"_process":1}],182:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -36298,7 +35875,7 @@ var ReactInstanceMap = { module.exports = ReactInstanceMap; -},{}],189:[function(require,module,exports){ +},{}],183:[function(require,module,exports){ /** * Copyright 2015, Facebook, Inc. * All rights reserved. @@ -36335,80 +35912,7 @@ var ReactLifeCycle = { module.exports = ReactLifeCycle; -},{}],190:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactLink - * @typechecks static-only - */ - -'use strict'; - -/** - * ReactLink encapsulates a common pattern in which a component wants to modify - * a prop received from its parent. ReactLink allows the parent to pass down a - * value coupled with a callback that, when invoked, expresses an intent to - * modify that value. For example: - * - * React.createClass({ - * getInitialState: function() { - * return {value: ''}; - * }, - * render: function() { - * var valueLink = new ReactLink(this.state.value, this._handleValueChange); - * return ; - * }, - * this._handleValueChange: function(newValue) { - * this.setState({value: newValue}); - * } - * }); - * - * We have provided some sugary mixins to make the creation and - * consumption of ReactLink easier; see LinkedValueUtils and LinkedStateMixin. - */ - -var React = require("./React"); - -/** - * @param {*} value current value of the link - * @param {function} requestChange callback to request a change - */ -function ReactLink(value, requestChange) { - this.value = value; - this.requestChange = requestChange; -} - -/** - * Creates a PropType that enforces the ReactLink API and optionally checks the - * type of the value being passed inside the link. Example: - * - * MyComponent.propTypes = { - * tabIndexLink: ReactLink.PropTypes.link(React.PropTypes.number) - * } - */ -function createLinkTypeChecker(linkType) { - var shapes = { - value: typeof linkType === 'undefined' ? - React.PropTypes.any.isRequired : - linkType.isRequired, - requestChange: React.PropTypes.func.isRequired - }; - return React.PropTypes.shape(shapes); -} - -ReactLink.PropTypes = { - link: createLinkTypeChecker -}; - -module.exports = ReactLink; - -},{"./React":146}],191:[function(require,module,exports){ +},{}],184:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -36456,7 +35960,7 @@ var ReactMarkupChecksum = { module.exports = ReactMarkupChecksum; -},{"./adler32":235}],192:[function(require,module,exports){ +},{"./adler32":221}],185:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -37347,7 +36851,7 @@ ReactPerf.measureMethods(ReactMount, 'ReactMount', { module.exports = ReactMount; }).call(this,require('_process')) -},{"./DOMProperty":126,"./ReactBrowserEventEmitter":148,"./ReactCurrentOwner":160,"./ReactElement":178,"./ReactElementValidator":179,"./ReactEmptyComponent":180,"./ReactInstanceHandles":187,"./ReactInstanceMap":188,"./ReactMarkupChecksum":191,"./ReactPerf":197,"./ReactReconciler":204,"./ReactUpdateQueue":214,"./ReactUpdates":215,"./containsNode":239,"./emptyObject":246,"./getReactRootElementInContainer":260,"./instantiateReactComponent":265,"./invariant":266,"./setInnerHTML":280,"./shouldUpdateReactComponent":283,"./warning":287,"_process":1}],193:[function(require,module,exports){ +},{"./DOMProperty":124,"./ReactBrowserEventEmitter":145,"./ReactCurrentOwner":154,"./ReactElement":172,"./ReactElementValidator":173,"./ReactEmptyComponent":174,"./ReactInstanceHandles":181,"./ReactInstanceMap":182,"./ReactMarkupChecksum":184,"./ReactPerf":190,"./ReactReconciler":196,"./ReactUpdateQueue":201,"./ReactUpdates":202,"./containsNode":224,"./emptyObject":230,"./getReactRootElementInContainer":244,"./instantiateReactComponent":249,"./invariant":250,"./setInnerHTML":263,"./shouldUpdateReactComponent":266,"./warning":269,"_process":1}],186:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -37777,7 +37281,7 @@ var ReactMultiChild = { module.exports = ReactMultiChild; -},{"./ReactChildReconciler":151,"./ReactComponentEnvironment":156,"./ReactMultiChildUpdateTypes":194,"./ReactReconciler":204}],194:[function(require,module,exports){ +},{"./ReactChildReconciler":146,"./ReactComponentEnvironment":151,"./ReactMultiChildUpdateTypes":187,"./ReactReconciler":196}],187:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -37810,7 +37314,7 @@ var ReactMultiChildUpdateTypes = keyMirror({ module.exports = ReactMultiChildUpdateTypes; -},{"./keyMirror":272}],195:[function(require,module,exports){ +},{"./keyMirror":255}],188:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -37917,7 +37421,7 @@ var ReactNativeComponent = { module.exports = ReactNativeComponent; }).call(this,require('_process')) -},{"./Object.assign":144,"./invariant":266,"_process":1}],196:[function(require,module,exports){ +},{"./Object.assign":141,"./invariant":250,"_process":1}],189:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -38029,7 +37533,7 @@ var ReactOwner = { module.exports = ReactOwner; }).call(this,require('_process')) -},{"./invariant":266,"_process":1}],197:[function(require,module,exports){ +},{"./invariant":250,"_process":1}],190:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -38133,117 +37637,7 @@ function _noMeasure(objName, fnName, func) { module.exports = ReactPerf; }).call(this,require('_process')) -},{"_process":1}],198:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactPropTransferer - */ - -'use strict'; - -var assign = require("./Object.assign"); -var emptyFunction = require("./emptyFunction"); -var joinClasses = require("./joinClasses"); - -/** - * Creates a transfer strategy that will merge prop values using the supplied - * `mergeStrategy`. If a prop was previously unset, this just sets it. - * - * @param {function} mergeStrategy - * @return {function} - */ -function createTransferStrategy(mergeStrategy) { - return function(props, key, value) { - if (!props.hasOwnProperty(key)) { - props[key] = value; - } else { - props[key] = mergeStrategy(props[key], value); - } - }; -} - -var transferStrategyMerge = createTransferStrategy(function(a, b) { - // `merge` overrides the first object's (`props[key]` above) keys using the - // second object's (`value`) keys. An object's style's existing `propA` would - // get overridden. Flip the order here. - return assign({}, b, a); -}); - -/** - * Transfer strategies dictate how props are transferred by `transferPropsTo`. - * NOTE: if you add any more exceptions to this list you should be sure to - * update `cloneWithProps()` accordingly. - */ -var TransferStrategies = { - /** - * Never transfer `children`. - */ - children: emptyFunction, - /** - * Transfer the `className` prop by merging them. - */ - className: createTransferStrategy(joinClasses), - /** - * Transfer the `style` prop (which is an object) by merging them. - */ - style: transferStrategyMerge -}; - -/** - * Mutates the first argument by transferring the properties from the second - * argument. - * - * @param {object} props - * @param {object} newProps - * @return {object} - */ -function transferInto(props, newProps) { - for (var thisKey in newProps) { - if (!newProps.hasOwnProperty(thisKey)) { - continue; - } - - var transferStrategy = TransferStrategies[thisKey]; - - if (transferStrategy && TransferStrategies.hasOwnProperty(thisKey)) { - transferStrategy(props, thisKey, newProps[thisKey]); - } else if (!props.hasOwnProperty(thisKey)) { - props[thisKey] = newProps[thisKey]; - } - } - return props; -} - -/** - * ReactPropTransferer are capable of transferring props to another component - * using a `transferPropsTo` method. - * - * @class ReactPropTransferer - */ -var ReactPropTransferer = { - - /** - * Merge two props objects using TransferStrategies. - * - * @param {object} oldProps original props (they take precedence) - * @param {object} newProps new props to merge in - * @return {object} a new object containing both sets of props merged. - */ - mergeProps: function(oldProps, newProps) { - return transferInto(assign({}, oldProps), newProps); - } - -}; - -module.exports = ReactPropTransferer; - -},{"./Object.assign":144,"./emptyFunction":245,"./joinClasses":271}],199:[function(require,module,exports){ +},{"_process":1}],191:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -38271,7 +37665,7 @@ if ("production" !== process.env.NODE_ENV) { module.exports = ReactPropTypeLocationNames; }).call(this,require('_process')) -},{"_process":1}],200:[function(require,module,exports){ +},{"_process":1}],192:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38295,7 +37689,7 @@ var ReactPropTypeLocations = keyMirror({ module.exports = ReactPropTypeLocations; -},{"./keyMirror":272}],201:[function(require,module,exports){ +},{"./keyMirror":255}],193:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38644,7 +38038,7 @@ function getPreciseType(propValue) { module.exports = ReactPropTypes; -},{"./ReactElement":178,"./ReactFragment":184,"./ReactPropTypeLocationNames":199,"./emptyFunction":245}],202:[function(require,module,exports){ +},{"./ReactElement":172,"./ReactFragment":178,"./ReactPropTypeLocationNames":191,"./emptyFunction":229}],194:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38700,7 +38094,7 @@ PooledClass.addPoolingTo(ReactPutListenerQueue); module.exports = ReactPutListenerQueue; -},{"./Object.assign":144,"./PooledClass":145,"./ReactBrowserEventEmitter":148}],203:[function(require,module,exports){ +},{"./Object.assign":141,"./PooledClass":142,"./ReactBrowserEventEmitter":145}],195:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -38876,7 +38270,7 @@ PooledClass.addPoolingTo(ReactReconcileTransaction); module.exports = ReactReconcileTransaction; -},{"./CallbackQueue":122,"./Object.assign":144,"./PooledClass":145,"./ReactBrowserEventEmitter":148,"./ReactInputSelection":186,"./ReactPutListenerQueue":202,"./Transaction":232}],204:[function(require,module,exports){ +},{"./CallbackQueue":120,"./Object.assign":141,"./PooledClass":142,"./ReactBrowserEventEmitter":145,"./ReactInputSelection":180,"./ReactPutListenerQueue":194,"./Transaction":218}],196:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -39000,7 +38394,7 @@ var ReactReconciler = { module.exports = ReactReconciler; }).call(this,require('_process')) -},{"./ReactElementValidator":179,"./ReactRef":205,"_process":1}],205:[function(require,module,exports){ +},{"./ReactElementValidator":173,"./ReactRef":197,"_process":1}],197:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -39071,7 +38465,7 @@ ReactRef.detachRefs = function(instance, element) { module.exports = ReactRef; -},{"./ReactOwner":196}],206:[function(require,module,exports){ +},{"./ReactOwner":189}],198:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -39102,7 +38496,7 @@ var ReactRootIndex = { module.exports = ReactRootIndex; -},{}],207:[function(require,module,exports){ +},{}],199:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -39184,7 +38578,7 @@ module.exports = { }; }).call(this,require('_process')) -},{"./ReactElement":178,"./ReactInstanceHandles":187,"./ReactMarkupChecksum":191,"./ReactServerRenderingTransaction":208,"./emptyObject":246,"./instantiateReactComponent":265,"./invariant":266,"_process":1}],208:[function(require,module,exports){ +},{"./ReactElement":172,"./ReactInstanceHandles":181,"./ReactMarkupChecksum":184,"./ReactServerRenderingTransaction":200,"./emptyObject":230,"./instantiateReactComponent":249,"./invariant":250,"_process":1}],200:[function(require,module,exports){ /** * Copyright 2014-2015, Facebook, Inc. * All rights reserved. @@ -39297,1073 +38691,7 @@ PooledClass.addPoolingTo(ReactServerRenderingTransaction); module.exports = ReactServerRenderingTransaction; -},{"./CallbackQueue":122,"./Object.assign":144,"./PooledClass":145,"./ReactPutListenerQueue":202,"./Transaction":232,"./emptyFunction":245}],209:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactStateSetters - */ - -'use strict'; - -var ReactStateSetters = { - /** - * Returns a function that calls the provided function, and uses the result - * of that to set the component's state. - * - * @param {ReactCompositeComponent} component - * @param {function} funcReturningState Returned callback uses this to - * determine how to update state. - * @return {function} callback that when invoked uses funcReturningState to - * determined the object literal to setState. - */ - createStateSetter: function(component, funcReturningState) { - return function(a, b, c, d, e, f) { - var partialState = funcReturningState.call(component, a, b, c, d, e, f); - if (partialState) { - component.setState(partialState); - } - }; - }, - - /** - * Returns a single-argument callback that can be used to update a single - * key in the component's state. - * - * Note: this is memoized function, which makes it inexpensive to call. - * - * @param {ReactCompositeComponent} component - * @param {string} key The key in the state that you should update. - * @return {function} callback of 1 argument which calls setState() with - * the provided keyName and callback argument. - */ - createStateKeySetter: function(component, key) { - // Memoize the setters. - var cache = component.__keySetters || (component.__keySetters = {}); - return cache[key] || (cache[key] = createStateKeySetter(component, key)); - } -}; - -function createStateKeySetter(component, key) { - // Partial state is allocated outside of the function closure so it can be - // reused with every call, avoiding memory allocation when this function - // is called. - var partialState = {}; - return function stateKeySetter(value) { - partialState[key] = value; - component.setState(partialState); - }; -} - -ReactStateSetters.Mixin = { - /** - * Returns a function that calls the provided function, and uses the result - * of that to set the component's state. - * - * For example, these statements are equivalent: - * - * this.setState({x: 1}); - * this.createStateSetter(function(xValue) { - * return {x: xValue}; - * })(1); - * - * @param {function} funcReturningState Returned callback uses this to - * determine how to update state. - * @return {function} callback that when invoked uses funcReturningState to - * determined the object literal to setState. - */ - createStateSetter: function(funcReturningState) { - return ReactStateSetters.createStateSetter(this, funcReturningState); - }, - - /** - * Returns a single-argument callback that can be used to update a single - * key in the component's state. - * - * For example, these statements are equivalent: - * - * this.setState({x: 1}); - * this.createStateKeySetter('x')(1); - * - * Note: this is memoized function, which makes it inexpensive to call. - * - * @param {string} key The key in the state that you should update. - * @return {function} callback of 1 argument which calls setState() with - * the provided keyName and callback argument. - */ - createStateKeySetter: function(key) { - return ReactStateSetters.createStateKeySetter(this, key); - } -}; - -module.exports = ReactStateSetters; - -},{}],210:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactTestUtils - */ - -'use strict'; - -var EventConstants = require("./EventConstants"); -var EventPluginHub = require("./EventPluginHub"); -var EventPropagators = require("./EventPropagators"); -var React = require("./React"); -var ReactElement = require("./ReactElement"); -var ReactEmptyComponent = require("./ReactEmptyComponent"); -var ReactBrowserEventEmitter = require("./ReactBrowserEventEmitter"); -var ReactCompositeComponent = require("./ReactCompositeComponent"); -var ReactInstanceHandles = require("./ReactInstanceHandles"); -var ReactInstanceMap = require("./ReactInstanceMap"); -var ReactMount = require("./ReactMount"); -var ReactUpdates = require("./ReactUpdates"); -var SyntheticEvent = require("./SyntheticEvent"); - -var assign = require("./Object.assign"); -var emptyObject = require("./emptyObject"); - -var topLevelTypes = EventConstants.topLevelTypes; - -function Event(suffix) {} - -/** - * @class ReactTestUtils - */ - -/** - * Todo: Support the entire DOM.scry query syntax. For now, these simple - * utilities will suffice for testing purposes. - * @lends ReactTestUtils - */ -var ReactTestUtils = { - renderIntoDocument: function(instance) { - var div = document.createElement('div'); - // None of our tests actually require attaching the container to the - // DOM, and doing so creates a mess that we rely on test isolation to - // clean up, so we're going to stop honoring the name of this method - // (and probably rename it eventually) if no problems arise. - // document.documentElement.appendChild(div); - return React.render(instance, div); - }, - - isElement: function(element) { - return ReactElement.isValidElement(element); - }, - - isElementOfType: function(inst, convenienceConstructor) { - return ( - ReactElement.isValidElement(inst) && - inst.type === convenienceConstructor - ); - }, - - isDOMComponent: function(inst) { - // TODO: Fix this heuristic. It's just here because composites can currently - // pretend to be DOM components. - return !!(inst && inst.tagName && inst.getDOMNode); - }, - - isDOMComponentElement: function(inst) { - return !!(inst && - ReactElement.isValidElement(inst) && - !!inst.tagName); - }, - - isCompositeComponent: function(inst) { - return typeof inst.render === 'function' && - typeof inst.setState === 'function'; - }, - - isCompositeComponentWithType: function(inst, type) { - return !!(ReactTestUtils.isCompositeComponent(inst) && - (inst.constructor === type)); - }, - - isCompositeComponentElement: function(inst) { - if (!ReactElement.isValidElement(inst)) { - return false; - } - // We check the prototype of the type that will get mounted, not the - // instance itself. This is a future proof way of duck typing. - var prototype = inst.type.prototype; - return ( - typeof prototype.render === 'function' && - typeof prototype.setState === 'function' - ); - }, - - isCompositeComponentElementWithType: function(inst, type) { - return !!(ReactTestUtils.isCompositeComponentElement(inst) && - (inst.constructor === type)); - }, - - getRenderedChildOfCompositeComponent: function(inst) { - if (!ReactTestUtils.isCompositeComponent(inst)) { - return null; - } - var internalInstance = ReactInstanceMap.get(inst); - return internalInstance._renderedComponent.getPublicInstance(); - }, - - findAllInRenderedTree: function(inst, test) { - if (!inst) { - return []; - } - var ret = test(inst) ? [inst] : []; - if (ReactTestUtils.isDOMComponent(inst)) { - var internalInstance = ReactInstanceMap.get(inst); - var renderedChildren = internalInstance - ._renderedComponent - ._renderedChildren; - var key; - for (key in renderedChildren) { - if (!renderedChildren.hasOwnProperty(key)) { - continue; - } - if (!renderedChildren[key].getPublicInstance) { - continue; - } - ret = ret.concat( - ReactTestUtils.findAllInRenderedTree( - renderedChildren[key].getPublicInstance(), - test - ) - ); - } - } else if (ReactTestUtils.isCompositeComponent(inst)) { - ret = ret.concat( - ReactTestUtils.findAllInRenderedTree( - ReactTestUtils.getRenderedChildOfCompositeComponent(inst), - test - ) - ); - } - return ret; - }, - - /** - * Finds all instance of components in the rendered tree that are DOM - * components with the class name matching `className`. - * @return an array of all the matches. - */ - scryRenderedDOMComponentsWithClass: function(root, className) { - return ReactTestUtils.findAllInRenderedTree(root, function(inst) { - var instClassName = inst.props.className; - return ReactTestUtils.isDOMComponent(inst) && ( - (instClassName && (' ' + instClassName + ' ').indexOf(' ' + className + ' ') !== -1) - ); - }); - }, - - /** - * Like scryRenderedDOMComponentsWithClass but expects there to be one result, - * and returns that one result, or throws exception if there is any other - * number of matches besides one. - * @return {!ReactDOMComponent} The one match. - */ - findRenderedDOMComponentWithClass: function(root, className) { - var all = - ReactTestUtils.scryRenderedDOMComponentsWithClass(root, className); - if (all.length !== 1) { - throw new Error('Did not find exactly one match ' + - '(found: ' + all.length + ') for class:' + className - ); - } - return all[0]; - }, - - - /** - * Finds all instance of components in the rendered tree that are DOM - * components with the tag name matching `tagName`. - * @return an array of all the matches. - */ - scryRenderedDOMComponentsWithTag: function(root, tagName) { - return ReactTestUtils.findAllInRenderedTree(root, function(inst) { - return ReactTestUtils.isDOMComponent(inst) && - inst.tagName === tagName.toUpperCase(); - }); - }, - - /** - * Like scryRenderedDOMComponentsWithTag but expects there to be one result, - * and returns that one result, or throws exception if there is any other - * number of matches besides one. - * @return {!ReactDOMComponent} The one match. - */ - findRenderedDOMComponentWithTag: function(root, tagName) { - var all = ReactTestUtils.scryRenderedDOMComponentsWithTag(root, tagName); - if (all.length !== 1) { - throw new Error('Did not find exactly one match for tag:' + tagName); - } - return all[0]; - }, - - - /** - * Finds all instances of components with type equal to `componentType`. - * @return an array of all the matches. - */ - scryRenderedComponentsWithType: function(root, componentType) { - return ReactTestUtils.findAllInRenderedTree(root, function(inst) { - return ReactTestUtils.isCompositeComponentWithType( - inst, - componentType - ); - }); - }, - - /** - * Same as `scryRenderedComponentsWithType` but expects there to be one result - * and returns that one result, or throws exception if there is any other - * number of matches besides one. - * @return {!ReactComponent} The one match. - */ - findRenderedComponentWithType: function(root, componentType) { - var all = ReactTestUtils.scryRenderedComponentsWithType( - root, - componentType - ); - if (all.length !== 1) { - throw new Error( - 'Did not find exactly one match for componentType:' + componentType - ); - } - return all[0]; - }, - - /** - * Pass a mocked component module to this method to augment it with - * useful methods that allow it to be used as a dummy React component. - * Instead of rendering as usual, the component will become a simple - *
containing any provided children. - * - * @param {object} module the mock function object exported from a - * module that defines the component to be mocked - * @param {?string} mockTagName optional dummy root tag name to return - * from render method (overrides - * module.mockTagName if provided) - * @return {object} the ReactTestUtils object (for chaining) - */ - mockComponent: function(module, mockTagName) { - mockTagName = mockTagName || module.mockTagName || "div"; - - module.prototype.render.mockImplementation(function() { - return React.createElement( - mockTagName, - null, - this.props.children - ); - }); - - return this; - }, - - /** - * Simulates a top level event being dispatched from a raw event that occured - * on an `Element` node. - * @param topLevelType {Object} A type from `EventConstants.topLevelTypes` - * @param {!Element} node The dom to simulate an event occurring on. - * @param {?Event} fakeNativeEvent Fake native event to use in SyntheticEvent. - */ - simulateNativeEventOnNode: function(topLevelType, node, fakeNativeEvent) { - fakeNativeEvent.target = node; - ReactBrowserEventEmitter.ReactEventListener.dispatchEvent( - topLevelType, - fakeNativeEvent - ); - }, - - /** - * Simulates a top level event being dispatched from a raw event that occured - * on the `ReactDOMComponent` `comp`. - * @param topLevelType {Object} A type from `EventConstants.topLevelTypes`. - * @param comp {!ReactDOMComponent} - * @param {?Event} fakeNativeEvent Fake native event to use in SyntheticEvent. - */ - simulateNativeEventOnDOMComponent: function( - topLevelType, - comp, - fakeNativeEvent) { - ReactTestUtils.simulateNativeEventOnNode( - topLevelType, - comp.getDOMNode(), - fakeNativeEvent - ); - }, - - nativeTouchData: function(x, y) { - return { - touches: [ - {pageX: x, pageY: y} - ] - }; - }, - - createRenderer: function() { - return new ReactShallowRenderer(); - }, - - Simulate: null, - SimulateNative: {} -}; - -/** - * @class ReactShallowRenderer - */ -var ReactShallowRenderer = function() { - this._instance = null; -}; - -ReactShallowRenderer.prototype.getRenderOutput = function() { - return ( - (this._instance && this._instance._renderedComponent && - this._instance._renderedComponent._renderedOutput) - || null - ); -}; - -var NoopInternalComponent = function(element) { - this._renderedOutput = element; - this._currentElement = element === null || element === false ? - ReactEmptyComponent.emptyElement : - element; -}; - -NoopInternalComponent.prototype = { - - mountComponent: function() { - }, - - receiveComponent: function(element) { - this._renderedOutput = element; - this._currentElement = element === null || element === false ? - ReactEmptyComponent.emptyElement : - element; - }, - - unmountComponent: function() { - } - -}; - -var ShallowComponentWrapper = function() { }; -assign( - ShallowComponentWrapper.prototype, - ReactCompositeComponent.Mixin, { - _instantiateReactComponent: function(element) { - return new NoopInternalComponent(element); - }, - _replaceNodeWithMarkupByID: function() {}, - _renderValidatedComponent: - ReactCompositeComponent.Mixin. - _renderValidatedComponentWithoutOwnerOrContext - } -); - -ReactShallowRenderer.prototype.render = function(element, context) { - if (!context) { - context = emptyObject; - } - var transaction = ReactUpdates.ReactReconcileTransaction.getPooled(); - this._render(element, transaction, context); - ReactUpdates.ReactReconcileTransaction.release(transaction); -}; - -ReactShallowRenderer.prototype.unmount = function() { - if (this._instance) { - this._instance.unmountComponent(); - } -}; - -ReactShallowRenderer.prototype._render = function(element, transaction, context) { - if (!this._instance) { - var rootID = ReactInstanceHandles.createReactRootID(); - var instance = new ShallowComponentWrapper(element.type); - instance.construct(element); - - instance.mountComponent(rootID, transaction, context); - - this._instance = instance; - } else { - this._instance.receiveComponent(element, transaction, context); - } -}; - -/** - * Exports: - * - * - `ReactTestUtils.Simulate.click(Element/ReactDOMComponent)` - * - `ReactTestUtils.Simulate.mouseMove(Element/ReactDOMComponent)` - * - `ReactTestUtils.Simulate.change(Element/ReactDOMComponent)` - * - ... (All keys from event plugin `eventTypes` objects) - */ -function makeSimulator(eventType) { - return function(domComponentOrNode, eventData) { - var node; - if (ReactTestUtils.isDOMComponent(domComponentOrNode)) { - node = domComponentOrNode.getDOMNode(); - } else if (domComponentOrNode.tagName) { - node = domComponentOrNode; - } - - var fakeNativeEvent = new Event(); - fakeNativeEvent.target = node; - // We don't use SyntheticEvent.getPooled in order to not have to worry about - // properly destroying any properties assigned from `eventData` upon release - var event = new SyntheticEvent( - ReactBrowserEventEmitter.eventNameDispatchConfigs[eventType], - ReactMount.getID(node), - fakeNativeEvent - ); - assign(event, eventData); - EventPropagators.accumulateTwoPhaseDispatches(event); - - ReactUpdates.batchedUpdates(function() { - EventPluginHub.enqueueEvents(event); - EventPluginHub.processEventQueue(); - }); - }; -} - -function buildSimulators() { - ReactTestUtils.Simulate = {}; - - var eventType; - for (eventType in ReactBrowserEventEmitter.eventNameDispatchConfigs) { - /** - * @param {!Element || ReactDOMComponent} domComponentOrNode - * @param {?object} eventData Fake event data to use in SyntheticEvent. - */ - ReactTestUtils.Simulate[eventType] = makeSimulator(eventType); - } -} - -// Rebuild ReactTestUtils.Simulate whenever event plugins are injected -var oldInjectEventPluginOrder = EventPluginHub.injection.injectEventPluginOrder; -EventPluginHub.injection.injectEventPluginOrder = function() { - oldInjectEventPluginOrder.apply(this, arguments); - buildSimulators(); -}; -var oldInjectEventPlugins = EventPluginHub.injection.injectEventPluginsByName; -EventPluginHub.injection.injectEventPluginsByName = function() { - oldInjectEventPlugins.apply(this, arguments); - buildSimulators(); -}; - -buildSimulators(); - -/** - * Exports: - * - * - `ReactTestUtils.SimulateNative.click(Element/ReactDOMComponent)` - * - `ReactTestUtils.SimulateNative.mouseMove(Element/ReactDOMComponent)` - * - `ReactTestUtils.SimulateNative.mouseIn/ReactDOMComponent)` - * - `ReactTestUtils.SimulateNative.mouseOut(Element/ReactDOMComponent)` - * - ... (All keys from `EventConstants.topLevelTypes`) - * - * Note: Top level event types are a subset of the entire set of handler types - * (which include a broader set of "synthetic" events). For example, onDragDone - * is a synthetic event. Except when testing an event plugin or React's event - * handling code specifically, you probably want to use ReactTestUtils.Simulate - * to dispatch synthetic events. - */ - -function makeNativeSimulator(eventType) { - return function(domComponentOrNode, nativeEventData) { - var fakeNativeEvent = new Event(eventType); - assign(fakeNativeEvent, nativeEventData); - if (ReactTestUtils.isDOMComponent(domComponentOrNode)) { - ReactTestUtils.simulateNativeEventOnDOMComponent( - eventType, - domComponentOrNode, - fakeNativeEvent - ); - } else if (!!domComponentOrNode.tagName) { - // Will allow on actual dom nodes. - ReactTestUtils.simulateNativeEventOnNode( - eventType, - domComponentOrNode, - fakeNativeEvent - ); - } - }; -} - -var eventType; -for (eventType in topLevelTypes) { - // Event type is stored as 'topClick' - we transform that to 'click' - var convenienceName = eventType.indexOf('top') === 0 ? - eventType.charAt(3).toLowerCase() + eventType.substr(4) : eventType; - /** - * @param {!Element || ReactDOMComponent} domComponentOrNode - * @param {?Event} nativeEventData Fake native event to use in SyntheticEvent. - */ - ReactTestUtils.SimulateNative[convenienceName] = - makeNativeSimulator(eventType); -} - -module.exports = ReactTestUtils; - -},{"./EventConstants":131,"./EventPluginHub":133,"./EventPropagators":136,"./Object.assign":144,"./React":146,"./ReactBrowserEventEmitter":148,"./ReactCompositeComponent":158,"./ReactElement":178,"./ReactEmptyComponent":180,"./ReactInstanceHandles":187,"./ReactInstanceMap":188,"./ReactMount":192,"./ReactUpdates":215,"./SyntheticEvent":224,"./emptyObject":246}],211:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks static-only - * @providesModule ReactTransitionChildMapping - */ - -'use strict'; - -var ReactChildren = require("./ReactChildren"); -var ReactFragment = require("./ReactFragment"); - -var ReactTransitionChildMapping = { - /** - * Given `this.props.children`, return an object mapping key to child. Just - * simple syntactic sugar around ReactChildren.map(). - * - * @param {*} children `this.props.children` - * @return {object} Mapping of key to child - */ - getChildMapping: function(children) { - if (!children) { - return children; - } - return ReactFragment.extract(ReactChildren.map(children, function(child) { - return child; - })); - }, - - /** - * When you're adding or removing children some may be added or removed in the - * same render pass. We want to show *both* since we want to simultaneously - * animate elements in and out. This function takes a previous set of keys - * and a new set of keys and merges them with its best guess of the correct - * ordering. In the future we may expose some of the utilities in - * ReactMultiChild to make this easy, but for now React itself does not - * directly have this concept of the union of prevChildren and nextChildren - * so we implement it here. - * - * @param {object} prev prev children as returned from - * `ReactTransitionChildMapping.getChildMapping()`. - * @param {object} next next children as returned from - * `ReactTransitionChildMapping.getChildMapping()`. - * @return {object} a key set that contains all keys in `prev` and all keys - * in `next` in a reasonable order. - */ - mergeChildMappings: function(prev, next) { - prev = prev || {}; - next = next || {}; - - function getValueForKey(key) { - if (next.hasOwnProperty(key)) { - return next[key]; - } else { - return prev[key]; - } - } - - // For each key of `next`, the list of keys to insert before that key in - // the combined list - var nextKeysPending = {}; - - var pendingKeys = []; - for (var prevKey in prev) { - if (next.hasOwnProperty(prevKey)) { - if (pendingKeys.length) { - nextKeysPending[prevKey] = pendingKeys; - pendingKeys = []; - } - } else { - pendingKeys.push(prevKey); - } - } - - var i; - var childMapping = {}; - for (var nextKey in next) { - if (nextKeysPending.hasOwnProperty(nextKey)) { - for (i = 0; i < nextKeysPending[nextKey].length; i++) { - var pendingNextKey = nextKeysPending[nextKey][i]; - childMapping[nextKeysPending[nextKey][i]] = getValueForKey( - pendingNextKey - ); - } - } - childMapping[nextKey] = getValueForKey(nextKey); - } - - // Finally, add the keys which didn't appear before any key in `next` - for (i = 0; i < pendingKeys.length; i++) { - childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]); - } - - return childMapping; - } -}; - -module.exports = ReactTransitionChildMapping; - -},{"./ReactChildren":152,"./ReactFragment":184}],212:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactTransitionEvents - */ - -'use strict'; - -var ExecutionEnvironment = require("./ExecutionEnvironment"); - -/** - * EVENT_NAME_MAP is used to determine which event fired when a - * transition/animation ends, based on the style property used to - * define that event. - */ -var EVENT_NAME_MAP = { - transitionend: { - 'transition': 'transitionend', - 'WebkitTransition': 'webkitTransitionEnd', - 'MozTransition': 'mozTransitionEnd', - 'OTransition': 'oTransitionEnd', - 'msTransition': 'MSTransitionEnd' - }, - - animationend: { - 'animation': 'animationend', - 'WebkitAnimation': 'webkitAnimationEnd', - 'MozAnimation': 'mozAnimationEnd', - 'OAnimation': 'oAnimationEnd', - 'msAnimation': 'MSAnimationEnd' - } -}; - -var endEvents = []; - -function detectEvents() { - var testEl = document.createElement('div'); - var style = testEl.style; - - // On some platforms, in particular some releases of Android 4.x, - // the un-prefixed "animation" and "transition" properties are defined on the - // style object but the events that fire will still be prefixed, so we need - // to check if the un-prefixed events are useable, and if not remove them - // from the map - if (!('AnimationEvent' in window)) { - delete EVENT_NAME_MAP.animationend.animation; - } - - if (!('TransitionEvent' in window)) { - delete EVENT_NAME_MAP.transitionend.transition; - } - - for (var baseEventName in EVENT_NAME_MAP) { - var baseEvents = EVENT_NAME_MAP[baseEventName]; - for (var styleName in baseEvents) { - if (styleName in style) { - endEvents.push(baseEvents[styleName]); - break; - } - } - } -} - -if (ExecutionEnvironment.canUseDOM) { - detectEvents(); -} - -// We use the raw {add|remove}EventListener() call because EventListener -// does not know how to remove event listeners and we really should -// clean up. Also, these events are not triggered in older browsers -// so we should be A-OK here. - -function addEventListener(node, eventName, eventListener) { - node.addEventListener(eventName, eventListener, false); -} - -function removeEventListener(node, eventName, eventListener) { - node.removeEventListener(eventName, eventListener, false); -} - -var ReactTransitionEvents = { - addEndEventListener: function(node, eventListener) { - if (endEvents.length === 0) { - // If CSS transitions are not supported, trigger an "end animation" - // event immediately. - window.setTimeout(eventListener, 0); - return; - } - endEvents.forEach(function(endEvent) { - addEventListener(node, endEvent, eventListener); - }); - }, - - removeEndEventListener: function(node, eventListener) { - if (endEvents.length === 0) { - return; - } - endEvents.forEach(function(endEvent) { - removeEventListener(node, endEvent, eventListener); - }); - } -}; - -module.exports = ReactTransitionEvents; - -},{"./ExecutionEnvironment":137}],213:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactTransitionGroup - */ - -'use strict'; - -var React = require("./React"); -var ReactTransitionChildMapping = require("./ReactTransitionChildMapping"); - -var assign = require("./Object.assign"); -var cloneWithProps = require("./cloneWithProps"); -var emptyFunction = require("./emptyFunction"); - -var ReactTransitionGroup = React.createClass({ - displayName: 'ReactTransitionGroup', - - propTypes: { - component: React.PropTypes.any, - childFactory: React.PropTypes.func - }, - - getDefaultProps: function() { - return { - component: 'span', - childFactory: emptyFunction.thatReturnsArgument - }; - }, - - getInitialState: function() { - return { - children: ReactTransitionChildMapping.getChildMapping(this.props.children) - }; - }, - - componentWillMount: function() { - this.currentlyTransitioningKeys = {}; - this.keysToEnter = []; - this.keysToLeave = []; - }, - - componentDidMount: function() { - var initialChildMapping = this.state.children; - for (var key in initialChildMapping) { - if (initialChildMapping[key]) { - this.performAppear(key); - } - } - }, - - componentWillReceiveProps: function(nextProps) { - var nextChildMapping = ReactTransitionChildMapping.getChildMapping( - nextProps.children - ); - var prevChildMapping = this.state.children; - - this.setState({ - children: ReactTransitionChildMapping.mergeChildMappings( - prevChildMapping, - nextChildMapping - ) - }); - - var key; - - for (key in nextChildMapping) { - var hasPrev = prevChildMapping && prevChildMapping.hasOwnProperty(key); - if (nextChildMapping[key] && !hasPrev && - !this.currentlyTransitioningKeys[key]) { - this.keysToEnter.push(key); - } - } - - for (key in prevChildMapping) { - var hasNext = nextChildMapping && nextChildMapping.hasOwnProperty(key); - if (prevChildMapping[key] && !hasNext && - !this.currentlyTransitioningKeys[key]) { - this.keysToLeave.push(key); - } - } - - // If we want to someday check for reordering, we could do it here. - }, - - componentDidUpdate: function() { - var keysToEnter = this.keysToEnter; - this.keysToEnter = []; - keysToEnter.forEach(this.performEnter); - - var keysToLeave = this.keysToLeave; - this.keysToLeave = []; - keysToLeave.forEach(this.performLeave); - }, - - performAppear: function(key) { - this.currentlyTransitioningKeys[key] = true; - - var component = this.refs[key]; - - if (component.componentWillAppear) { - component.componentWillAppear( - this._handleDoneAppearing.bind(this, key) - ); - } else { - this._handleDoneAppearing(key); - } - }, - - _handleDoneAppearing: function(key) { - var component = this.refs[key]; - if (component.componentDidAppear) { - component.componentDidAppear(); - } - - delete this.currentlyTransitioningKeys[key]; - - var currentChildMapping = ReactTransitionChildMapping.getChildMapping( - this.props.children - ); - - if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) { - // This was removed before it had fully appeared. Remove it. - this.performLeave(key); - } - }, - - performEnter: function(key) { - this.currentlyTransitioningKeys[key] = true; - - var component = this.refs[key]; - - if (component.componentWillEnter) { - component.componentWillEnter( - this._handleDoneEntering.bind(this, key) - ); - } else { - this._handleDoneEntering(key); - } - }, - - _handleDoneEntering: function(key) { - var component = this.refs[key]; - if (component.componentDidEnter) { - component.componentDidEnter(); - } - - delete this.currentlyTransitioningKeys[key]; - - var currentChildMapping = ReactTransitionChildMapping.getChildMapping( - this.props.children - ); - - if (!currentChildMapping || !currentChildMapping.hasOwnProperty(key)) { - // This was removed before it had fully entered. Remove it. - this.performLeave(key); - } - }, - - performLeave: function(key) { - this.currentlyTransitioningKeys[key] = true; - - var component = this.refs[key]; - if (component.componentWillLeave) { - component.componentWillLeave(this._handleDoneLeaving.bind(this, key)); - } else { - // Note that this is somewhat dangerous b/c it calls setState() - // again, effectively mutating the component before all the work - // is done. - this._handleDoneLeaving(key); - } - }, - - _handleDoneLeaving: function(key) { - var component = this.refs[key]; - - if (component.componentDidLeave) { - component.componentDidLeave(); - } - - delete this.currentlyTransitioningKeys[key]; - - var currentChildMapping = ReactTransitionChildMapping.getChildMapping( - this.props.children - ); - - if (currentChildMapping && currentChildMapping.hasOwnProperty(key)) { - // This entered again before it fully left. Add it again. - this.performEnter(key); - } else { - var newChildren = assign({}, this.state.children); - delete newChildren[key]; - this.setState({children: newChildren}); - } - }, - - render: function() { - // TODO: we could get rid of the need for the wrapper node - // by cloning a single child - var childrenToRender = []; - for (var key in this.state.children) { - var child = this.state.children[key]; - if (child) { - // You may need to apply reactive updates to a child as it is leaving. - // The normal React way to do it won't work since the child will have - // already been removed. In case you need this behavior you can provide - // a childFactory function to wrap every child, even the ones that are - // leaving. - childrenToRender.push(cloneWithProps( - this.props.childFactory(child), - {ref: key, key: key} - )); - } - } - return React.createElement( - this.props.component, - this.props, - childrenToRender - ); - } -}); - -module.exports = ReactTransitionGroup; - -},{"./Object.assign":144,"./React":146,"./ReactTransitionChildMapping":211,"./cloneWithProps":238,"./emptyFunction":245}],214:[function(require,module,exports){ +},{"./CallbackQueue":120,"./Object.assign":141,"./PooledClass":142,"./ReactPutListenerQueue":194,"./Transaction":218,"./emptyFunction":229}],201:[function(require,module,exports){ (function (process){ /** * Copyright 2015, Facebook, Inc. @@ -40662,7 +38990,7 @@ var ReactUpdateQueue = { module.exports = ReactUpdateQueue; }).call(this,require('_process')) -},{"./Object.assign":144,"./ReactCurrentOwner":160,"./ReactElement":178,"./ReactInstanceMap":188,"./ReactLifeCycle":189,"./ReactUpdates":215,"./invariant":266,"./warning":287,"_process":1}],215:[function(require,module,exports){ +},{"./Object.assign":141,"./ReactCurrentOwner":154,"./ReactElement":172,"./ReactInstanceMap":182,"./ReactLifeCycle":183,"./ReactUpdates":202,"./invariant":250,"./warning":269,"_process":1}],202:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -40944,63 +39272,7 @@ var ReactUpdates = { module.exports = ReactUpdates; }).call(this,require('_process')) -},{"./CallbackQueue":122,"./Object.assign":144,"./PooledClass":145,"./ReactCurrentOwner":160,"./ReactPerf":197,"./ReactReconciler":204,"./Transaction":232,"./invariant":266,"./warning":287,"_process":1}],216:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule ReactWithAddons - */ - -/** - * This module exists purely in the open source project, and is meant as a way - * to create a separate standalone build of React. This build has "addons", or - * functionality we've built and think might be useful but doesn't have a good - * place to live inside React core. - */ - -'use strict'; - -var LinkedStateMixin = require("./LinkedStateMixin"); -var React = require("./React"); -var ReactComponentWithPureRenderMixin = - require("./ReactComponentWithPureRenderMixin"); -var ReactCSSTransitionGroup = require("./ReactCSSTransitionGroup"); -var ReactFragment = require("./ReactFragment"); -var ReactTransitionGroup = require("./ReactTransitionGroup"); -var ReactUpdates = require("./ReactUpdates"); - -var cx = require("./cx"); -var cloneWithProps = require("./cloneWithProps"); -var update = require("./update"); - -React.addons = { - CSSTransitionGroup: ReactCSSTransitionGroup, - LinkedStateMixin: LinkedStateMixin, - PureRenderMixin: ReactComponentWithPureRenderMixin, - TransitionGroup: ReactTransitionGroup, - - batchedUpdates: ReactUpdates.batchedUpdates, - classSet: cx, - cloneWithProps: cloneWithProps, - createFragment: ReactFragment.create, - update: update -}; - -if ("production" !== process.env.NODE_ENV) { - React.addons.Perf = require("./ReactDefaultPerf"); - React.addons.TestUtils = require("./ReactTestUtils"); -} - -module.exports = React; - -}).call(this,require('_process')) -},{"./LinkedStateMixin":140,"./React":146,"./ReactCSSTransitionGroup":149,"./ReactComponentWithPureRenderMixin":157,"./ReactDefaultPerf":176,"./ReactFragment":184,"./ReactTestUtils":210,"./ReactTransitionGroup":213,"./ReactUpdates":215,"./cloneWithProps":238,"./cx":243,"./update":286,"_process":1}],217:[function(require,module,exports){ +},{"./CallbackQueue":120,"./Object.assign":141,"./PooledClass":142,"./ReactCurrentOwner":154,"./ReactPerf":190,"./ReactReconciler":196,"./Transaction":218,"./invariant":250,"./warning":269,"_process":1}],203:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -41094,7 +39366,7 @@ var SVGDOMPropertyConfig = { module.exports = SVGDOMPropertyConfig; -},{"./DOMProperty":126}],218:[function(require,module,exports){ +},{"./DOMProperty":124}],204:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -41289,7 +39561,7 @@ var SelectEventPlugin = { module.exports = SelectEventPlugin; -},{"./EventConstants":131,"./EventPropagators":136,"./ReactInputSelection":186,"./SyntheticEvent":224,"./getActiveElement":252,"./isTextInputElement":269,"./keyOf":273,"./shallowEqual":282}],219:[function(require,module,exports){ +},{"./EventConstants":129,"./EventPropagators":134,"./ReactInputSelection":180,"./SyntheticEvent":210,"./getActiveElement":236,"./isTextInputElement":253,"./keyOf":256,"./shallowEqual":265}],205:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -41320,7 +39592,7 @@ var ServerReactRootIndex = { module.exports = ServerReactRootIndex; -},{}],220:[function(require,module,exports){ +},{}],206:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -41748,7 +40020,7 @@ var SimpleEventPlugin = { module.exports = SimpleEventPlugin; }).call(this,require('_process')) -},{"./EventConstants":131,"./EventPluginUtils":135,"./EventPropagators":136,"./SyntheticClipboardEvent":221,"./SyntheticDragEvent":223,"./SyntheticEvent":224,"./SyntheticFocusEvent":225,"./SyntheticKeyboardEvent":227,"./SyntheticMouseEvent":228,"./SyntheticTouchEvent":229,"./SyntheticUIEvent":230,"./SyntheticWheelEvent":231,"./getEventCharCode":253,"./invariant":266,"./keyOf":273,"./warning":287,"_process":1}],221:[function(require,module,exports){ +},{"./EventConstants":129,"./EventPluginUtils":133,"./EventPropagators":134,"./SyntheticClipboardEvent":207,"./SyntheticDragEvent":209,"./SyntheticEvent":210,"./SyntheticFocusEvent":211,"./SyntheticKeyboardEvent":213,"./SyntheticMouseEvent":214,"./SyntheticTouchEvent":215,"./SyntheticUIEvent":216,"./SyntheticWheelEvent":217,"./getEventCharCode":237,"./invariant":250,"./keyOf":256,"./warning":269,"_process":1}],207:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -41793,7 +40065,7 @@ SyntheticEvent.augmentClass(SyntheticClipboardEvent, ClipboardEventInterface); module.exports = SyntheticClipboardEvent; -},{"./SyntheticEvent":224}],222:[function(require,module,exports){ +},{"./SyntheticEvent":210}],208:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -41838,7 +40110,7 @@ SyntheticEvent.augmentClass( module.exports = SyntheticCompositionEvent; -},{"./SyntheticEvent":224}],223:[function(require,module,exports){ +},{"./SyntheticEvent":210}],209:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -41877,7 +40149,7 @@ SyntheticMouseEvent.augmentClass(SyntheticDragEvent, DragEventInterface); module.exports = SyntheticDragEvent; -},{"./SyntheticMouseEvent":228}],224:[function(require,module,exports){ +},{"./SyntheticMouseEvent":214}],210:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -42043,7 +40315,7 @@ PooledClass.addPoolingTo(SyntheticEvent, PooledClass.threeArgumentPooler); module.exports = SyntheticEvent; -},{"./Object.assign":144,"./PooledClass":145,"./emptyFunction":245,"./getEventTarget":256}],225:[function(require,module,exports){ +},{"./Object.assign":141,"./PooledClass":142,"./emptyFunction":229,"./getEventTarget":240}],211:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -42082,7 +40354,7 @@ SyntheticUIEvent.augmentClass(SyntheticFocusEvent, FocusEventInterface); module.exports = SyntheticFocusEvent; -},{"./SyntheticUIEvent":230}],226:[function(require,module,exports){ +},{"./SyntheticUIEvent":216}],212:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -42128,7 +40400,7 @@ SyntheticEvent.augmentClass( module.exports = SyntheticInputEvent; -},{"./SyntheticEvent":224}],227:[function(require,module,exports){ +},{"./SyntheticEvent":210}],213:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -42215,7 +40487,7 @@ SyntheticUIEvent.augmentClass(SyntheticKeyboardEvent, KeyboardEventInterface); module.exports = SyntheticKeyboardEvent; -},{"./SyntheticUIEvent":230,"./getEventCharCode":253,"./getEventKey":254,"./getEventModifierState":255}],228:[function(require,module,exports){ +},{"./SyntheticUIEvent":216,"./getEventCharCode":237,"./getEventKey":238,"./getEventModifierState":239}],214:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -42296,7 +40568,7 @@ SyntheticUIEvent.augmentClass(SyntheticMouseEvent, MouseEventInterface); module.exports = SyntheticMouseEvent; -},{"./SyntheticUIEvent":230,"./ViewportMetrics":233,"./getEventModifierState":255}],229:[function(require,module,exports){ +},{"./SyntheticUIEvent":216,"./ViewportMetrics":219,"./getEventModifierState":239}],215:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -42344,7 +40616,7 @@ SyntheticUIEvent.augmentClass(SyntheticTouchEvent, TouchEventInterface); module.exports = SyntheticTouchEvent; -},{"./SyntheticUIEvent":230,"./getEventModifierState":255}],230:[function(require,module,exports){ +},{"./SyntheticUIEvent":216,"./getEventModifierState":239}],216:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -42406,7 +40678,7 @@ SyntheticEvent.augmentClass(SyntheticUIEvent, UIEventInterface); module.exports = SyntheticUIEvent; -},{"./SyntheticEvent":224,"./getEventTarget":256}],231:[function(require,module,exports){ +},{"./SyntheticEvent":210,"./getEventTarget":240}],217:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -42467,7 +40739,7 @@ SyntheticMouseEvent.augmentClass(SyntheticWheelEvent, WheelEventInterface); module.exports = SyntheticWheelEvent; -},{"./SyntheticMouseEvent":228}],232:[function(require,module,exports){ +},{"./SyntheticMouseEvent":214}],218:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -42708,7 +40980,7 @@ var Transaction = { module.exports = Transaction; }).call(this,require('_process')) -},{"./invariant":266,"_process":1}],233:[function(require,module,exports){ +},{"./invariant":250,"_process":1}],219:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -42737,7 +41009,7 @@ var ViewportMetrics = { module.exports = ViewportMetrics; -},{}],234:[function(require,module,exports){ +},{}],220:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -42803,7 +41075,7 @@ function accumulateInto(current, next) { module.exports = accumulateInto; }).call(this,require('_process')) -},{"./invariant":266,"_process":1}],235:[function(require,module,exports){ +},{"./invariant":250,"_process":1}],221:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -42837,7 +41109,7 @@ function adler32(data) { module.exports = adler32; -},{}],236:[function(require,module,exports){ +},{}],222:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -42869,7 +41141,7 @@ function camelize(string) { module.exports = camelize; -},{}],237:[function(require,module,exports){ +},{}],223:[function(require,module,exports){ /** * Copyright 2014-2015, Facebook, Inc. * All rights reserved. @@ -42911,66 +41183,7 @@ function camelizeStyleName(string) { module.exports = camelizeStyleName; -},{"./camelize":236}],238:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @typechecks static-only - * @providesModule cloneWithProps - */ - -'use strict'; - -var ReactElement = require("./ReactElement"); -var ReactPropTransferer = require("./ReactPropTransferer"); - -var keyOf = require("./keyOf"); -var warning = require("./warning"); - -var CHILDREN_PROP = keyOf({children: null}); - -/** - * Sometimes you want to change the props of a child passed to you. Usually - * this is to add a CSS class. - * - * @param {ReactElement} child child element you'd like to clone - * @param {object} props props you'd like to modify. className and style will be - * merged automatically. - * @return {ReactElement} a clone of child with props merged in. - */ -function cloneWithProps(child, props) { - if ("production" !== process.env.NODE_ENV) { - ("production" !== process.env.NODE_ENV ? warning( - !child.ref, - 'You are calling cloneWithProps() on a child with a ref. This is ' + - 'dangerous because you\'re creating a new child which will not be ' + - 'added as a ref to its parent.' - ) : null); - } - - var newProps = ReactPropTransferer.mergeProps(props, child.props); - - // Use `child.props.children` if it is provided. - if (!newProps.hasOwnProperty(CHILDREN_PROP) && - child.props.hasOwnProperty(CHILDREN_PROP)) { - newProps.children = child.props.children; - } - - // The current API doesn't retain _owner and _context, which is why this - // doesn't use ReactElement.cloneAndReplaceProps. - return ReactElement.createElement(child.type, newProps); -} - -module.exports = cloneWithProps; - -}).call(this,require('_process')) -},{"./ReactElement":178,"./ReactPropTransferer":198,"./keyOf":273,"./warning":287,"_process":1}],239:[function(require,module,exports){ +},{"./camelize":222}],224:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -43014,7 +41227,7 @@ function containsNode(outerNode, innerNode) { module.exports = containsNode; -},{"./isTextNode":270}],240:[function(require,module,exports){ +},{"./isTextNode":254}],225:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -43100,7 +41313,7 @@ function createArrayFromMixed(obj) { module.exports = createArrayFromMixed; -},{"./toArray":284}],241:[function(require,module,exports){ +},{"./toArray":267}],226:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -43162,7 +41375,7 @@ function createFullPageComponent(tag) { module.exports = createFullPageComponent; }).call(this,require('_process')) -},{"./ReactClass":153,"./ReactElement":178,"./invariant":266,"_process":1}],242:[function(require,module,exports){ +},{"./ReactClass":148,"./ReactElement":172,"./invariant":250,"_process":1}],227:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -43252,63 +41465,7 @@ function createNodesFromMarkup(markup, handleScript) { module.exports = createNodesFromMarkup; }).call(this,require('_process')) -},{"./ExecutionEnvironment":137,"./createArrayFromMixed":240,"./getMarkupWrap":258,"./invariant":266,"_process":1}],243:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule cx - */ - -/** - * This function is used to mark string literals representing CSS class names - * so that they can be transformed statically. This allows for modularization - * and minification of CSS class names. - * - * In static_upstream, this function is actually implemented, but it should - * eventually be replaced with something more descriptive, and the transform - * that is used in the main stack should be ported for use elsewhere. - * - * @param string|object className to modularize, or an object of key/values. - * In the object case, the values are conditions that - * determine if the className keys should be included. - * @param [string ...] Variable list of classNames in the string case. - * @return string Renderable space-separated CSS className. - */ - -'use strict'; -var warning = require("./warning"); - -var warned = false; - -function cx(classNames) { - if ("production" !== process.env.NODE_ENV) { - ("production" !== process.env.NODE_ENV ? warning( - warned, - 'React.addons.classSet will be deprecated in a future version. See ' + - 'http://fb.me/react-addons-classset' - ) : null); - warned = true; - } - - if (typeof classNames == 'object') { - return Object.keys(classNames).filter(function(className) { - return classNames[className]; - }).join(' '); - } else { - return Array.prototype.join.call(arguments, ' '); - } -} - -module.exports = cx; - -}).call(this,require('_process')) -},{"./warning":287,"_process":1}],244:[function(require,module,exports){ +},{"./ExecutionEnvironment":135,"./createArrayFromMixed":225,"./getMarkupWrap":242,"./invariant":250,"_process":1}],228:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -43366,7 +41523,7 @@ function dangerousStyleValue(name, value) { module.exports = dangerousStyleValue; -},{"./CSSProperty":120}],245:[function(require,module,exports){ +},{"./CSSProperty":118}],229:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -43400,7 +41557,7 @@ emptyFunction.thatReturnsArgument = function(arg) { return arg; }; module.exports = emptyFunction; -},{}],246:[function(require,module,exports){ +},{}],230:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -43424,7 +41581,7 @@ if ("production" !== process.env.NODE_ENV) { module.exports = emptyObject; }).call(this,require('_process')) -},{"_process":1}],247:[function(require,module,exports){ +},{"_process":1}],231:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -43464,7 +41621,7 @@ function escapeTextContentForBrowser(text) { module.exports = escapeTextContentForBrowser; -},{}],248:[function(require,module,exports){ +},{}],232:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -43537,7 +41694,7 @@ function findDOMNode(componentOrElement) { module.exports = findDOMNode; }).call(this,require('_process')) -},{"./ReactCurrentOwner":160,"./ReactInstanceMap":188,"./ReactMount":192,"./invariant":266,"./isNode":268,"./warning":287,"_process":1}],249:[function(require,module,exports){ +},{"./ReactCurrentOwner":154,"./ReactInstanceMap":182,"./ReactMount":185,"./invariant":250,"./isNode":252,"./warning":269,"_process":1}],233:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -43595,7 +41752,7 @@ function flattenChildren(children) { module.exports = flattenChildren; }).call(this,require('_process')) -},{"./traverseAllChildren":285,"./warning":287,"_process":1}],250:[function(require,module,exports){ +},{"./traverseAllChildren":268,"./warning":269,"_process":1}],234:[function(require,module,exports){ /** * Copyright 2014-2015, Facebook, Inc. * All rights reserved. @@ -43624,7 +41781,7 @@ function focusNode(node) { module.exports = focusNode; -},{}],251:[function(require,module,exports){ +},{}],235:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -43655,7 +41812,7 @@ var forEachAccumulated = function(arr, cb, scope) { module.exports = forEachAccumulated; -},{}],252:[function(require,module,exports){ +},{}],236:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -43684,7 +41841,7 @@ function getActiveElement() /*?DOMElement*/ { module.exports = getActiveElement; -},{}],253:[function(require,module,exports){ +},{}],237:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -43736,7 +41893,7 @@ function getEventCharCode(nativeEvent) { module.exports = getEventCharCode; -},{}],254:[function(require,module,exports){ +},{}],238:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -43841,7 +41998,7 @@ function getEventKey(nativeEvent) { module.exports = getEventKey; -},{"./getEventCharCode":253}],255:[function(require,module,exports){ +},{"./getEventCharCode":237}],239:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -43888,7 +42045,7 @@ function getEventModifierState(nativeEvent) { module.exports = getEventModifierState; -},{}],256:[function(require,module,exports){ +},{}],240:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -43919,7 +42076,7 @@ function getEventTarget(nativeEvent) { module.exports = getEventTarget; -},{}],257:[function(require,module,exports){ +},{}],241:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -43963,7 +42120,7 @@ function getIteratorFn(maybeIterable) { module.exports = getIteratorFn; -},{}],258:[function(require,module,exports){ +},{}],242:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -44082,7 +42239,7 @@ function getMarkupWrap(nodeName) { module.exports = getMarkupWrap; }).call(this,require('_process')) -},{"./ExecutionEnvironment":137,"./invariant":266,"_process":1}],259:[function(require,module,exports){ +},{"./ExecutionEnvironment":135,"./invariant":250,"_process":1}],243:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -44157,7 +42314,7 @@ function getNodeForCharacterOffset(root, offset) { module.exports = getNodeForCharacterOffset; -},{}],260:[function(require,module,exports){ +},{}],244:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -44192,7 +42349,7 @@ function getReactRootElementInContainer(container) { module.exports = getReactRootElementInContainer; -},{}],261:[function(require,module,exports){ +},{}],245:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -44229,7 +42386,7 @@ function getTextContentAccessor() { module.exports = getTextContentAccessor; -},{"./ExecutionEnvironment":137}],262:[function(require,module,exports){ +},{"./ExecutionEnvironment":135}],246:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -44269,7 +42426,7 @@ function getUnboundedScrollPosition(scrollable) { module.exports = getUnboundedScrollPosition; -},{}],263:[function(require,module,exports){ +},{}],247:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -44302,7 +42459,7 @@ function hyphenate(string) { module.exports = hyphenate; -},{}],264:[function(require,module,exports){ +},{}],248:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -44343,7 +42500,7 @@ function hyphenateStyleName(string) { module.exports = hyphenateStyleName; -},{"./hyphenate":263}],265:[function(require,module,exports){ +},{"./hyphenate":247}],249:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -44481,7 +42638,7 @@ function instantiateReactComponent(node, parentCompositeType) { module.exports = instantiateReactComponent; }).call(this,require('_process')) -},{"./Object.assign":144,"./ReactCompositeComponent":158,"./ReactEmptyComponent":180,"./ReactNativeComponent":195,"./invariant":266,"./warning":287,"_process":1}],266:[function(require,module,exports){ +},{"./Object.assign":141,"./ReactCompositeComponent":152,"./ReactEmptyComponent":174,"./ReactNativeComponent":188,"./invariant":250,"./warning":269,"_process":1}],250:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -44538,7 +42695,7 @@ var invariant = function(condition, format, a, b, c, d, e, f) { module.exports = invariant; }).call(this,require('_process')) -},{"_process":1}],267:[function(require,module,exports){ +},{"_process":1}],251:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -44603,7 +42760,7 @@ function isEventSupported(eventNameSuffix, capture) { module.exports = isEventSupported; -},{"./ExecutionEnvironment":137}],268:[function(require,module,exports){ +},{"./ExecutionEnvironment":135}],252:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -44630,7 +42787,7 @@ function isNode(object) { module.exports = isNode; -},{}],269:[function(require,module,exports){ +},{}],253:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -44673,7 +42830,7 @@ function isTextInputElement(elem) { module.exports = isTextInputElement; -},{}],270:[function(require,module,exports){ +},{}],254:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -44698,48 +42855,7 @@ function isTextNode(object) { module.exports = isTextNode; -},{"./isNode":268}],271:[function(require,module,exports){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule joinClasses - * @typechecks static-only - */ - -'use strict'; - -/** - * Combines multiple className strings into one. - * http://jsperf.com/joinclasses-args-vs-array - * - * @param {...?string} classes - * @return {string} - */ -function joinClasses(className/*, ... */) { - if (!className) { - className = ''; - } - var nextClass; - var argLength = arguments.length; - if (argLength > 1) { - for (var ii = 1; ii < argLength; ii++) { - nextClass = arguments[ii]; - if (nextClass) { - className = (className ? className + ' ' : '') + nextClass; - } - } - } - return className; -} - -module.exports = joinClasses; - -},{}],272:[function(require,module,exports){ +},{"./isNode":252}],255:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -44794,7 +42910,7 @@ var keyMirror = function(obj) { module.exports = keyMirror; }).call(this,require('_process')) -},{"./invariant":266,"_process":1}],273:[function(require,module,exports){ +},{"./invariant":250,"_process":1}],256:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -44830,7 +42946,7 @@ var keyOf = function(oneKeyObj) { module.exports = keyOf; -},{}],274:[function(require,module,exports){ +},{}],257:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -44883,7 +42999,7 @@ function mapObject(object, callback, context) { module.exports = mapObject; -},{}],275:[function(require,module,exports){ +},{}],258:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -44916,7 +43032,7 @@ function memoizeStringOnly(callback) { module.exports = memoizeStringOnly; -},{}],276:[function(require,module,exports){ +},{}],259:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -44956,7 +43072,7 @@ function onlyChild(children) { module.exports = onlyChild; }).call(this,require('_process')) -},{"./ReactElement":178,"./invariant":266,"_process":1}],277:[function(require,module,exports){ +},{"./ReactElement":172,"./invariant":250,"_process":1}],260:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -44984,7 +43100,7 @@ if (ExecutionEnvironment.canUseDOM) { module.exports = performance || {}; -},{"./ExecutionEnvironment":137}],278:[function(require,module,exports){ +},{"./ExecutionEnvironment":135}],261:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -45012,7 +43128,7 @@ var performanceNow = performance.now.bind(performance); module.exports = performanceNow; -},{"./performance":277}],279:[function(require,module,exports){ +},{"./performance":260}],262:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -45040,7 +43156,7 @@ function quoteAttributeValueForBrowser(value) { module.exports = quoteAttributeValueForBrowser; -},{"./escapeTextContentForBrowser":247}],280:[function(require,module,exports){ +},{"./escapeTextContentForBrowser":231}],263:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -45129,7 +43245,7 @@ if (ExecutionEnvironment.canUseDOM) { module.exports = setInnerHTML; -},{"./ExecutionEnvironment":137}],281:[function(require,module,exports){ +},{"./ExecutionEnvironment":135}],264:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -45171,7 +43287,7 @@ if (ExecutionEnvironment.canUseDOM) { module.exports = setTextContent; -},{"./ExecutionEnvironment":137,"./escapeTextContentForBrowser":247,"./setInnerHTML":280}],282:[function(require,module,exports){ +},{"./ExecutionEnvironment":135,"./escapeTextContentForBrowser":231,"./setInnerHTML":263}],265:[function(require,module,exports){ /** * Copyright 2013-2015, Facebook, Inc. * All rights reserved. @@ -45215,7 +43331,7 @@ function shallowEqual(objA, objB) { module.exports = shallowEqual; -},{}],283:[function(require,module,exports){ +},{}],266:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -45319,7 +43435,7 @@ function shouldUpdateReactComponent(prevElement, nextElement) { module.exports = shouldUpdateReactComponent; }).call(this,require('_process')) -},{"./warning":287,"_process":1}],284:[function(require,module,exports){ +},{"./warning":269,"_process":1}],267:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -45391,7 +43507,7 @@ function toArray(obj) { module.exports = toArray; }).call(this,require('_process')) -},{"./invariant":266,"_process":1}],285:[function(require,module,exports){ +},{"./invariant":250,"_process":1}],268:[function(require,module,exports){ (function (process){ /** * Copyright 2013-2015, Facebook, Inc. @@ -45644,178 +43760,7 @@ function traverseAllChildren(children, callback, traverseContext) { module.exports = traverseAllChildren; }).call(this,require('_process')) -},{"./ReactElement":178,"./ReactFragment":184,"./ReactInstanceHandles":187,"./getIteratorFn":257,"./invariant":266,"./warning":287,"_process":1}],286:[function(require,module,exports){ -(function (process){ -/** - * Copyright 2013-2015, Facebook, Inc. - * All rights reserved. - * - * This source code is licensed under the BSD-style license found in the - * LICENSE file in the root directory of this source tree. An additional grant - * of patent rights can be found in the PATENTS file in the same directory. - * - * @providesModule update - */ - - /* global hasOwnProperty:true */ - -'use strict'; - -var assign = require("./Object.assign"); -var keyOf = require("./keyOf"); -var invariant = require("./invariant"); -var hasOwnProperty = {}.hasOwnProperty; - -function shallowCopy(x) { - if (Array.isArray(x)) { - return x.concat(); - } else if (x && typeof x === 'object') { - return assign(new x.constructor(), x); - } else { - return x; - } -} - -var COMMAND_PUSH = keyOf({$push: null}); -var COMMAND_UNSHIFT = keyOf({$unshift: null}); -var COMMAND_SPLICE = keyOf({$splice: null}); -var COMMAND_SET = keyOf({$set: null}); -var COMMAND_MERGE = keyOf({$merge: null}); -var COMMAND_APPLY = keyOf({$apply: null}); - -var ALL_COMMANDS_LIST = [ - COMMAND_PUSH, - COMMAND_UNSHIFT, - COMMAND_SPLICE, - COMMAND_SET, - COMMAND_MERGE, - COMMAND_APPLY -]; - -var ALL_COMMANDS_SET = {}; - -ALL_COMMANDS_LIST.forEach(function(command) { - ALL_COMMANDS_SET[command] = true; -}); - -function invariantArrayCase(value, spec, command) { - ("production" !== process.env.NODE_ENV ? invariant( - Array.isArray(value), - 'update(): expected target of %s to be an array; got %s.', - command, - value - ) : invariant(Array.isArray(value))); - var specValue = spec[command]; - ("production" !== process.env.NODE_ENV ? invariant( - Array.isArray(specValue), - 'update(): expected spec of %s to be an array; got %s. ' + - 'Did you forget to wrap your parameter in an array?', - command, - specValue - ) : invariant(Array.isArray(specValue))); -} - -function update(value, spec) { - ("production" !== process.env.NODE_ENV ? invariant( - typeof spec === 'object', - 'update(): You provided a key path to update() that did not contain one ' + - 'of %s. Did you forget to include {%s: ...}?', - ALL_COMMANDS_LIST.join(', '), - COMMAND_SET - ) : invariant(typeof spec === 'object')); - - if (hasOwnProperty.call(spec, COMMAND_SET)) { - ("production" !== process.env.NODE_ENV ? invariant( - Object.keys(spec).length === 1, - 'Cannot have more than one key in an object with %s', - COMMAND_SET - ) : invariant(Object.keys(spec).length === 1)); - - return spec[COMMAND_SET]; - } - - var nextValue = shallowCopy(value); - - if (hasOwnProperty.call(spec, COMMAND_MERGE)) { - var mergeObj = spec[COMMAND_MERGE]; - ("production" !== process.env.NODE_ENV ? invariant( - mergeObj && typeof mergeObj === 'object', - 'update(): %s expects a spec of type \'object\'; got %s', - COMMAND_MERGE, - mergeObj - ) : invariant(mergeObj && typeof mergeObj === 'object')); - ("production" !== process.env.NODE_ENV ? invariant( - nextValue && typeof nextValue === 'object', - 'update(): %s expects a target of type \'object\'; got %s', - COMMAND_MERGE, - nextValue - ) : invariant(nextValue && typeof nextValue === 'object')); - assign(nextValue, spec[COMMAND_MERGE]); - } - - if (hasOwnProperty.call(spec, COMMAND_PUSH)) { - invariantArrayCase(value, spec, COMMAND_PUSH); - spec[COMMAND_PUSH].forEach(function(item) { - nextValue.push(item); - }); - } - - if (hasOwnProperty.call(spec, COMMAND_UNSHIFT)) { - invariantArrayCase(value, spec, COMMAND_UNSHIFT); - spec[COMMAND_UNSHIFT].forEach(function(item) { - nextValue.unshift(item); - }); - } - - if (hasOwnProperty.call(spec, COMMAND_SPLICE)) { - ("production" !== process.env.NODE_ENV ? invariant( - Array.isArray(value), - 'Expected %s target to be an array; got %s', - COMMAND_SPLICE, - value - ) : invariant(Array.isArray(value))); - ("production" !== process.env.NODE_ENV ? invariant( - Array.isArray(spec[COMMAND_SPLICE]), - 'update(): expected spec of %s to be an array of arrays; got %s. ' + - 'Did you forget to wrap your parameters in an array?', - COMMAND_SPLICE, - spec[COMMAND_SPLICE] - ) : invariant(Array.isArray(spec[COMMAND_SPLICE]))); - spec[COMMAND_SPLICE].forEach(function(args) { - ("production" !== process.env.NODE_ENV ? invariant( - Array.isArray(args), - 'update(): expected spec of %s to be an array of arrays; got %s. ' + - 'Did you forget to wrap your parameters in an array?', - COMMAND_SPLICE, - spec[COMMAND_SPLICE] - ) : invariant(Array.isArray(args))); - nextValue.splice.apply(nextValue, args); - }); - } - - if (hasOwnProperty.call(spec, COMMAND_APPLY)) { - ("production" !== process.env.NODE_ENV ? invariant( - typeof spec[COMMAND_APPLY] === 'function', - 'update(): expected spec of %s to be a function; got %s.', - COMMAND_APPLY, - spec[COMMAND_APPLY] - ) : invariant(typeof spec[COMMAND_APPLY] === 'function')); - nextValue = spec[COMMAND_APPLY](nextValue); - } - - for (var k in spec) { - if (!(ALL_COMMANDS_SET.hasOwnProperty(k) && ALL_COMMANDS_SET[k])) { - nextValue[k] = update(value[k], spec[k]); - } - } - - return nextValue; -} - -module.exports = update; - -}).call(this,require('_process')) -},{"./Object.assign":144,"./invariant":266,"./keyOf":273,"_process":1}],287:[function(require,module,exports){ +},{"./ReactElement":172,"./ReactFragment":178,"./ReactInstanceHandles":181,"./getIteratorFn":241,"./invariant":250,"./warning":269,"_process":1}],269:[function(require,module,exports){ (function (process){ /** * Copyright 2014-2015, Facebook, Inc. @@ -45878,13 +43823,13 @@ if ("production" !== process.env.NODE_ENV) { module.exports = warning; }).call(this,require('_process')) -},{"./emptyFunction":245,"_process":1}],288:[function(require,module,exports){ +},{"./emptyFunction":229,"_process":1}],270:[function(require,module,exports){ module.exports = require('./lib/React'); -},{"./lib/React":146}],289:[function(require,module,exports){ +},{"./lib/React":143}],271:[function(require,module,exports){ module.exports = require('./src'); -},{"./src":303}],290:[function(require,module,exports){ +},{"./src":285}],272:[function(require,module,exports){ 'use strict'; /** @@ -46115,7 +44060,7 @@ EventEmitter.EventEmitter3 = EventEmitter; // module.exports = EventEmitter; -},{}],291:[function(require,module,exports){ +},{}],273:[function(require,module,exports){ (function (global){ /*! Native Promise Only v0.7.8-a (c) Kyle Simpson @@ -46124,7 +44069,7 @@ module.exports = EventEmitter; !function(t,n,e){n[t]=n[t]||e(),"undefined"!=typeof module&&module.exports?module.exports=n[t]:"function"==typeof define&&define.amd&&define(function(){return n[t]})}("Promise","undefined"!=typeof global?global:this,function(){"use strict";function t(t,n){l.add(t,n),h||(h=y(l.drain))}function n(t){var n,e=typeof t;return null==t||"object"!=e&&"function"!=e||(n=t.then),"function"==typeof n?n:!1}function e(){for(var t=0;t0&&t(e,a))}catch(s){i.call(u||new f(a),s)}}}function i(n){var o=this;o.triggered||(o.triggered=!0,o.def&&(o=o.def),o.msg=n,o.state=2,o.chain.length>0&&t(e,o))}function c(t,n,e,o){for(var r=0;r= 0) { + current_themes.remove("daytime"); + return current_themes.add("evening"); + } else { + current_themes.remove("evening"); + return current_themes.add("daytime"); + } } }); -module.exports = MissingPageView; +module.exports = ThemeSwitchStore; -},{"react":288,"react-router":101,"reflux":289}],317:[function(require,module,exports){ - -/* -Rookeries client - Temporary unavailable modal. - -@copyright (c) Copyright 2013-2015 Dorian Pula -@license AGPL v3 -@author Dorian Pula [dorian.pula@amber-penguin-software.ca] - */ -'use strict'; -var Bootstrap, FeatureUnavailableModal, FeatureUnavailableModalTrigger, FontAwesome, React; - -React = require('react'); - -Bootstrap = require('react-bootstrap'); - -FontAwesome = require('react-fontawesome'); - -FeatureUnavailableModal = React.createClass({ - render: function() { - console.log('Render UserRegistrationModal view.'); - return React.createElement(Bootstrap.Modal, React.__spread({}, this.props, { - "title": 'Feature Unavailable', - "animation": false - }), React.createElement("div", { - "className": "modal-body" - }, React.createElement(Bootstrap.Alert, { - "bsStyle": 'warning' - }, "Feature currently unavailable.")), React.createElement("div", { - "className": "modal-footer" - }, React.createElement(Bootstrap.Button, { - "bsStyle": "warning", - "onClick": this.props.onRequestHide - }, "OK"))); - } -}); - -FeatureUnavailableModalTrigger = React.createElement(Bootstrap.ModalTrigger, React.__spread({}, this.props, { - "modal": React.createElement(FeatureUnavailableModal, null) -}), React.createElement("div", { - "className": "text-center muted hoverable" -}, React.createElement(FontAwesome, { - "name": 'eye' -}), "\u00a0\nChange to [ alternative_theme ] theme")); - -module.exports = FeatureUnavailableModalTrigger; - - - -},{"react":288,"react-bootstrap":61,"react-fontawesome":75}],318:[function(require,module,exports){ +},{"../actions.coffee":294,"reflux":271,"superagent":291}],298:[function(require,module,exports){ /* Rookeries client - Markdown controller to view a journal entry. @@ -48757,7 +46637,7 @@ Rookeries client - Markdown controller to view a journal entry. @author Dorian Pula [dorian.pula@amber-penguin-software.ca] */ 'use strict'; -var JournalEntryActions, JournalEntryStore, JournalMarkdownView, React, Reflux, Router, marked; +var Actions, JournalEntryStore, JournalMarkdownView, React, Reflux, Router, marked; React = require('react'); @@ -48767,7 +46647,7 @@ marked = require('marked'); Router = require('react-router'); -JournalEntryActions = require('../actions/journal_actions.coffee'); +Actions = require("../actions.coffee"); JournalEntryStore = require('../stores/journal_entry_store.coffee'); @@ -48797,11 +46677,11 @@ JournalMarkdownView = React.createClass({ componentDidMount: function() { var pageToLoad; console.log('Mount JournalMarkdownView.'); - this.listenTo(JournalEntryActions.viewEntry, this.onStatusChange); - this.listenTo(JournalEntryActions.showError, this.onErrorStatus); + this.listenTo(Actions.viewEntry, this.onStatusChange); + this.listenTo(Actions.showError, this.onErrorStatus); pageToLoad = this.getParams().id; console.log("Trigger JournalEntryAction.loadEntry event - " + pageToLoad + "."); - return JournalEntryActions.loadEntry(pageToLoad); + return Actions.loadEntry(pageToLoad); }, statics: { willTransitionTo: function(transition, params, query, callback) { @@ -48809,7 +46689,7 @@ JournalMarkdownView = React.createClass({ console.log('Transition for JournalMarkdownView triggered.'); pageToLoad = params.id; console.log("Trigger JournalEntryAction.loadEntry event - " + pageToLoad + "."); - JournalEntryActions.loadEntry(pageToLoad); + Actions.loadEntry(pageToLoad); return callback(); } }, @@ -48831,209 +46711,49 @@ module.exports = JournalMarkdownView; -},{"../actions/journal_actions.coffee":312,"../stores/journal_entry_store.coffee":314,"marked":2,"react":288,"react-router":101,"reflux":289}],319:[function(require,module,exports){ +},{"../actions.coffee":294,"../stores/journal_entry_store.coffee":296,"marked":2,"react":270,"react-router":101,"reflux":271}],299:[function(require,module,exports){ /* -Rookeries client - Theme switcher. +Rookeries client - Temporary unavailable modal. @copyright (c) Copyright 2013-2015 Dorian Pula @license AGPL v3 @author Dorian Pula [dorian.pula@amber-penguin-software.ca] */ -var ThemeManager; +"use strict"; +var Actions, Bootstrap, FontAwesome, React, ThemeSwitchStore, ThemeSwitchView; -ThemeManager = (function() { +React = require("react"); - /* Hardcoded list of themes. May become dynamic in the future. */ - ThemeManager.installed_themes = [ - { - "name": "daytime", - "icon_highlight": false - }, { - "name": "evening", - "icon_highlight": true - } - ]; +Bootstrap = require("react-bootstrap"); - function ThemeManager() { - this.theme_index = 0; - ThemeManager.update_theme_info(this); - } +FontAwesome = require("react-fontawesome"); - ThemeManager.adjust_index_to_fit_themes = function(index) { - if (index >= ThemeManager.installed_themes.length) { - return 0; - } - return Math.max(index, 0); - }; +Actions = require("../actions.coffee"); - ThemeManager.switch_theme = function(theme) { - theme.theme_index = ThemeManager.adjust_index_to_fit_themes(theme.theme_index + 1); - return ThemeManager.update_theme_info(theme); - }; +ThemeSwitchStore = require("../stores/theme_switcher_store.coffee"); - ThemeManager.update_theme_info = function(theme) { - var current_theme_index, current_theme_info, next_theme_index; - current_theme_index = ThemeManager.adjust_index_to_fit_themes(theme.theme_index); - current_theme_info = ThemeManager.installed_themes[current_theme_index]; - next_theme_index = ThemeManager.adjust_index_to_fit_themes(current_theme_index + 1); - theme.name = current_theme_info['name']; - theme.alternative_theme = ThemeManager.installed_themes[next_theme_index]['name']; - return theme.icon_colour = current_theme_info['icon_highlight'] ? 'fa-inverse' : ' '; - }; - - return ThemeManager; - -})(); - -module.exports = ThemeManager; - - - -},{}],320:[function(require,module,exports){ - -/* -Rookeries client - Modal user login. - -@copyright (c) Copyright 2013-2015 Dorian Pula -@license AGPL v3 -@author Dorian Pula [dorian.pula@amber-penguin-software.ca] - */ -'use strict'; -var Bootstrap, FontAwesome, React, UserLoginModal, UserLoginModalTrigger; - -React = require('react'); - -Bootstrap = require('react-bootstrap'); - -FontAwesome = require('react-fontawesome'); - -UserLoginModal = React.createClass({ +ThemeSwitchView = React.createClass({ + switchTheme: function() { + console.log("Switch theme"); + return Actions.switchTheme(); + }, render: function() { - console.log('Render UserLoginModal view.'); - return React.createElement(Bootstrap.Modal, React.__spread({}, this.props, { - "title": 'Login', - "animation": false - }), React.createElement("div", { - "className": "modal-body" - }, React.createElement(Bootstrap.Alert, { - "bsStyle": 'danger' - }, this.props.error_message), React.createElement("form", { - "className": "form-horizontal" - }, React.createElement(Bootstrap.Input, { - "type": "text", - "id": "username", - "placeholder": "Username", - "label": "Username", - "labelClassName": "col-xs-2", - "wrapperClassName": "col-xs-10" - }), React.createElement(Bootstrap.Input, { - "type": "text", - "id": "password", - "placeholder": "***", - "label": "Password", - "labelClassName": "col-xs-2", - "wrapperClassName": "col-xs-10" - }))), React.createElement("div", { - "className": "modal-footer" - }, React.createElement(Bootstrap.Button, { - "bsStyle": "warning", - "onClick": this.props.onRequestHide - }, "Cancel"), React.createElement(Bootstrap.Button, null, "Login"))); + console.log("Render UserRegistrationModal view."); + return React.createElement("div", { + "className": "text-center muted hoverable", + "onClick": this.switchTheme + }, React.createElement(FontAwesome, { + "name": "eye" + }), "\u00a0 Change to [ alternative_theme ] theme"); } }); -UserLoginModalTrigger = React.createElement(Bootstrap.ModalTrigger, React.__spread({}, this.props, { - "modal": React.createElement(UserLoginModal, { - "error_message": 'Just a test' - }) -}), React.createElement("div", { - "className": "text-center muted hoverable" -}, React.createElement(FontAwesome, { - "name": 'user' -}), "\u00a0\nHello [user_login.username]!\n\u2002", React.createElement(FontAwesome, { - "name": 'sign-in' -}), "\u00a0\nDo you want to [user_login.login_suggestion]?")); - -module.exports = UserLoginModalTrigger; +module.exports = ThemeSwitchView; -},{"react":288,"react-bootstrap":61,"react-fontawesome":75}],321:[function(require,module,exports){ - -/* -Rookeries client - Modal user registration. - -@copyright (c) Copyright 2013-2015 Dorian Pula -@license AGPL v3 -@author Dorian Pula [dorian.pula@amber-penguin-software.ca] - */ -'use strict'; -var Bootstrap, FontAwesome, React, UserRegistrationModal, UserRegistrationModalTrigger; - -React = require('react'); - -Bootstrap = require('react-bootstrap'); - -FontAwesome = require('react-fontawesome'); - -UserRegistrationModal = React.createClass({ - render: function() { - console.log('Render UserRegistrationModal view.'); - return React.createElement(Bootstrap.Modal, React.__spread({}, this.props, { - "title": 'Registration', - "animation": false - }), React.createElement("div", { - "className": "modal-body" - }, React.createElement(Bootstrap.Alert, { - "bsStyle": 'danger' - }, this.props.error_message), React.createElement("form", { - "className": "form-horizontal" - }, React.createElement(Bootstrap.Input, { - "type": "email", - "id": "email", - "placeholder": "user@email.net", - "label": "Email", - "labelClassName": "col-xs-2", - "wrapperClassName": "col-xs-10" - }), React.createElement(Bootstrap.Input, { - "type": "text", - "id": "password", - "placeholder": "***", - "label": "Password", - "labelClassName": "col-xs-2", - "wrapperClassName": "col-xs-10" - }), React.createElement(Bootstrap.Input, { - "type": "text", - "id": "password_confirm", - "placeholder": "***", - "label": "Confirm Password", - "labelClassName": "col-xs-2", - "wrapperClassName": "col-xs-10" - }))), React.createElement("div", { - "className": "modal-footer" - }, React.createElement(Bootstrap.Button, { - "bsStyle": "warning", - "onClick": this.props.onRequestHide - }, "Cancel"), React.createElement(Bootstrap.Button, null, "Register"))); - } -}); - -UserRegistrationModalTrigger = React.createElement(Bootstrap.ModalTrigger, React.__spread({}, this.props, { - "modal": React.createElement(UserRegistrationModal, { - "error_message": 'Just a test' - }) -}), React.createElement("div", { - "className": "text-center muted hoverable" -}, React.createElement(FontAwesome, { - "name": 'user-plus' -}), "\u00a0\nRegister for this site?")); - -module.exports = UserRegistrationModalTrigger; - - - -},{"react":288,"react-bootstrap":61,"react-fontawesome":75}],322:[function(require,module,exports){ +},{"../actions.coffee":294,"../stores/theme_switcher_store.coffee":297,"react":270,"react-bootstrap":61,"react-fontawesome":75}],300:[function(require,module,exports){ /* Rookeries client app @@ -49042,22 +46762,16 @@ Rookeries client app @license AGPL v3 @author Dorian Pula [dorian.pula@amber-penguin-software.ca] */ -'use strict'; -var AppRoutes, FeatureUnavailableModalTrigger, React, Router, UserLoginModalTrigger, UserRegistrationModalTrigger; +"use strict"; +var AppRoutes, React, Router, ThemeSwitchView; -React = require('react'); +React = require("react"); -Router = require('react-router'); +Router = require("react-router"); -AppRoutes = require('./routes.cjsx'); +AppRoutes = require("./routes.cjsx"); -UserLoginModalTrigger = require('./views/user_login_modal.cjsx'); - -UserRegistrationModalTrigger = require('./views/user_registration.cjsx'); - -FeatureUnavailableModalTrigger = require('./views/feature_unavailable.cjsx'); - -require('./views/theme_switcher.cjsx'); +ThemeSwitchView = require("./views/theme_switcher_button.cjsx"); Router.run(AppRoutes, Router.HistoryLocation, (function(_this) { return function(Root) { @@ -49065,12 +46779,8 @@ Router.run(AppRoutes, Router.HistoryLocation, (function(_this) { }; })(this)); -React.render(UserLoginModalTrigger, document.getElementById('user-login-trigger')); - -React.render(UserRegistrationModalTrigger, document.getElementById('user-registration-trigger')); - -React.render(FeatureUnavailableModalTrigger, document.getElementById('theme-switcher')); +React.render(React.createElement(ThemeSwitchView, null), document.getElementById("theme-switcher")); -},{"./routes.cjsx":313,"./views/feature_unavailable.cjsx":317,"./views/theme_switcher.cjsx":319,"./views/user_login_modal.cjsx":320,"./views/user_registration.cjsx":321,"react":288,"react-router":101}]},{},[322]); +},{"./routes.cjsx":295,"./views/theme_switcher_button.cjsx":299,"react":270,"react-router":101}]},{},[300]); diff --git a/rookeries/actions/journal_actions.coffee b/rookeries/actions.coffee similarity index 53% rename from rookeries/actions/journal_actions.coffee rename to rookeries/actions.coffee index ea97737..18ee15c 100644 --- a/rookeries/actions/journal_actions.coffee +++ b/rookeries/actions.coffee @@ -6,10 +6,15 @@ Rookeries client - Action events for journal entries.. @author Dorian Pula [dorian.pula@amber-penguin-software.ca] ### -'use strict' +"use strict" -Reflux = require('reflux') +Reflux = require "reflux" -JournalEntryActions = Reflux.createActions(["viewEntry", "loadEntry", "showError"]) +Actions = Reflux.createActions [ + "viewEntry" + "loadEntry" + "showError" + "switchTheme" +] -module.exports = JournalEntryActions +module.exports = Actions diff --git a/rookeries/app.cjsx b/rookeries/app.cjsx index f352eef..7263825 100644 --- a/rookeries/app.cjsx +++ b/rookeries/app.cjsx @@ -6,20 +6,19 @@ Rookeries client app @author Dorian Pula [dorian.pula@amber-penguin-software.ca] ### -'use strict' +"use strict" -React = require('react') -Router = require('react-router') +React = require "react" +Router = require "react-router" -AppRoutes = require('./routes.cjsx') -UserLoginModalTrigger = require('./views/user_login_modal.cjsx') -UserRegistrationModalTrigger = require('./views/user_registration.cjsx') -FeatureUnavailableModalTrigger = require('./views/feature_unavailable.cjsx') -require('./views/theme_switcher.cjsx') +AppRoutes = require "./routes.cjsx" +# UserLoginModalTrigger = require('./views/user_login_modal.cjsx') +# UserRegistrationModalTrigger = require('./views/user_registration.cjsx') +ThemeSwitchView = require "./views/theme_switcher_button.cjsx" Router.run(AppRoutes, Router.HistoryLocation, (Root) => React.render(, document.getElementById("markdown-target")) ) -React.render(UserLoginModalTrigger, document.getElementById('user-login-trigger')) -React.render(UserRegistrationModalTrigger, document.getElementById('user-registration-trigger')) -React.render(FeatureUnavailableModalTrigger, document.getElementById('theme-switcher')) +# React.render(UserLoginModalTrigger, document.getElementById('user-login-trigger')) +# React.render(UserRegistrationModalTrigger, document.getElementById('user-registration-trigger')) +React.render(, document.getElementById("theme-switcher")) diff --git a/rookeries/routes.cjsx b/rookeries/routes.cjsx index 34017ee..e63ce9b 100644 --- a/rookeries/routes.cjsx +++ b/rookeries/routes.cjsx @@ -11,9 +11,7 @@ Rookeries client app - Route setup React = require('react') Router = require('react-router') -App = require './views/app_view.coffee' JournalMarkdownView = require('./views/journal_markdown_viewer.cjsx') -MissingPageView = require('./views/error_page.cjsx') AppRoutes = ( diff --git a/rookeries/stores/journal_entry_store.coffee b/rookeries/stores/journal_entry_store.coffee index c07d872..99de6b0 100644 --- a/rookeries/stores/journal_entry_store.coffee +++ b/rookeries/stores/journal_entry_store.coffee @@ -6,31 +6,33 @@ Rookeries client - Journal entry store. @author Dorian Pula [dorian.pula@amber-penguin-software.ca] ### -'use strict' +"use strict" -Reflux = require('reflux') -request = require('superagent') +Reflux = require "reflux" +request = require "superagent" + +Actions = require "../actions.coffee" -JournalEntryActions = require('../actions/journal_actions.coffee') JournalEntryStore = Reflux.createStore( init: () -> console.log('Initialize JournalEntryStore.') - @listenTo(JournalEntryActions.loadEntry, @loadEntry) + @listenTo(Actions.loadEntry, @loadEntry) loadEntry: (id) -> - console.log('Request loading ') - id = "landing" if id is undefined + console.log("Request loading...") + if id is undefined + id = "landing" request.get("/api/docs/#{id}") .accept('json') .end( (err, res) -> if (res.ok) console.info("Received JSON #{res.status} - #{res.text}") - JournalEntryActions.viewEntry({name: res.body.name, page_content: res.body.page_content}) + Actions.viewEntry({name: res.body.name, page_content: res.body.page_content}) else console.error("Error getting document JSON - #{res.status} - #{res.text} - Actual #{err}") - JournalEntryActions.showError({status: res.status, message: res.text, actual: err, title: res.body.error.message}) + Actions.showError({status: res.status, message: res.text, actual: err, title: res.body.error.message}) ) ) diff --git a/rookeries/stores/theme_switcher_store.coffee b/rookeries/stores/theme_switcher_store.coffee new file mode 100644 index 0000000..1fe9d6f --- /dev/null +++ b/rookeries/stores/theme_switcher_store.coffee @@ -0,0 +1,39 @@ +### +Rookeries client - Theme switcher entry store. + +@copyright (c) Copyright 2013-2015 Dorian Pula +@license AGPL v3 +@author Dorian Pula [dorian.pula@amber-penguin-software.ca] +### + +"use strict" + +Reflux = require "reflux" +request = require "superagent" + +Actions = require "../actions.coffee" + + +ThemeSwitchStore = Reflux.createStore( + init: () -> + console.log('Initialize ThemeSwitchStore.') + @listenTo(Actions.switchTheme, @switchTheme) + + switchTheme: () -> + console.log('Theme switched ') + current_themes = document.body.classList + console.log "Current themes are #{current_themes}" + + # TODO Implement logic to switch between "daytime" and "evening" themes in a nicer manner. + # TODO Store the current theme in local storage somewhere... + if "daytime" in current_themes + current_themes.remove("daytime") + current_themes.add("evening") + + else + current_themes.remove("evening") + current_themes.add("daytime") + +) + +module.exports = ThemeSwitchStore diff --git a/rookeries/views/app_view.coffee b/rookeries/views/app_view.coffee deleted file mode 100644 index 1adaa4a..0000000 --- a/rookeries/views/app_view.coffee +++ /dev/null @@ -1,14 +0,0 @@ - -React = require "react/addons" -{div, h1} = React.DOM -Router = require('react-router') - -App = React.createClass - render: -> - (div {}, [ - h1 {}, "App" - Router.RouteHandler - ]) - - -module.exports = App diff --git a/rookeries/views/feature_unavailable.cjsx b/rookeries/views/feature_unavailable.cjsx deleted file mode 100644 index 8a96a75..0000000 --- a/rookeries/views/feature_unavailable.cjsx +++ /dev/null @@ -1,47 +0,0 @@ -### -Rookeries client - Temporary unavailable modal. - -@copyright (c) Copyright 2013-2015 Dorian Pula -@license AGPL v3 -@author Dorian Pula [dorian.pula@amber-penguin-software.ca] -### - -'use strict' - -React = require('react') -Bootstrap = require('react-bootstrap') -FontAwesome = require('react-fontawesome') - -FeatureUnavailableModal = React.createClass( - render: () -> - console.log('Render UserRegistrationModal view.') - return( - - - -
- - Feature currently unavailable. - -
- -
- OK -
- -
- ) -) - - -FeatureUnavailableModalTrigger = ( - } > -
- -   - Change to [ alternative_theme ] theme -
-
-) - -module.exports = FeatureUnavailableModalTrigger diff --git a/rookeries/views/journal_markdown_viewer.cjsx b/rookeries/views/journal_markdown_viewer.cjsx index b11c296..65319ad 100644 --- a/rookeries/views/journal_markdown_viewer.cjsx +++ b/rookeries/views/journal_markdown_viewer.cjsx @@ -8,12 +8,12 @@ Rookeries client - Markdown controller to view a journal entry. 'use strict' -React = require('react') -Reflux = require('reflux') -marked = require('marked') -Router = require('react-router') +React = require 'react' +Reflux = require 'reflux' +marked = require 'marked' +Router = require 'react-router' -JournalEntryActions = require('../actions/journal_actions.coffee') +Actions = require "../actions.coffee" JournalEntryStore = require('../stores/journal_entry_store.coffee') @@ -35,19 +35,19 @@ JournalMarkdownView = React.createClass( componentDidMount: () -> console.log('Mount JournalMarkdownView.') - @listenTo(JournalEntryActions.viewEntry, @onStatusChange) - @listenTo(JournalEntryActions.showError, @onErrorStatus) + @listenTo(Actions.viewEntry, @onStatusChange) + @listenTo(Actions.showError, @onErrorStatus) pageToLoad = @getParams().id console.log("Trigger JournalEntryAction.loadEntry event - #{pageToLoad}.") - JournalEntryActions.loadEntry(pageToLoad) + Actions.loadEntry(pageToLoad) statics: { willTransitionTo: (transition, params, query, callback) -> console.log('Transition for JournalMarkdownView triggered.') pageToLoad = params.id console.log("Trigger JournalEntryAction.loadEntry event - #{pageToLoad}.") - JournalEntryActions.loadEntry(pageToLoad) + Actions.loadEntry(pageToLoad) callback() } diff --git a/rookeries/views/theme_switcher_button.cjsx b/rookeries/views/theme_switcher_button.cjsx new file mode 100644 index 0000000..093654a --- /dev/null +++ b/rookeries/views/theme_switcher_button.cjsx @@ -0,0 +1,34 @@ +### +Rookeries client - Temporary unavailable modal. + +@copyright (c) Copyright 2013-2015 Dorian Pula +@license AGPL v3 +@author Dorian Pula [dorian.pula@amber-penguin-software.ca] +### + +"use strict" + +React = require "react" +Bootstrap = require "react-bootstrap" +FontAwesome = require "react-fontawesome" + +Actions = require "../actions.coffee" +ThemeSwitchStore = require "../stores/theme_switcher_store.coffee" + + +ThemeSwitchView = React.createClass( + switchTheme: () -> + console.log("Switch theme") + Actions.switchTheme() + + render: () -> + console.log("Render UserRegistrationModal view.") + return ( +
+ +   Change to [ alternative_theme ] theme +
+ ) +) + +module.exports = ThemeSwitchView