(function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("react")); else if(typeof define === 'function' && define.amd) define(["react"], factory); else if(typeof exports === 'object') exports["ReactBootstrap"] = factory(require("react")); else root["ReactBootstrap"] = factory(root["React"]); })(this, function(__WEBPACK_EXTERNAL_MODULE_51__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) /******/ return installedModules[moduleId].exports; /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ exports: {}, /******/ id: moduleId, /******/ loaded: false /******/ }; /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ // Flag the module as loaded /******/ module.loaded = true; /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ // Load entry module and return exports /******/ return __webpack_require__(0); /******/ }) /************************************************************************/ /******/ ([ /* 0 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var Accordion = _interopRequire(__webpack_require__(1)); var Affix = _interopRequire(__webpack_require__(2)); var AffixMixin = _interopRequire(__webpack_require__(3)); var Alert = _interopRequire(__webpack_require__(4)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var Badge = _interopRequire(__webpack_require__(6)); var Button = _interopRequire(__webpack_require__(7)); var ButtonGroup = _interopRequire(__webpack_require__(8)); var ButtonToolbar = _interopRequire(__webpack_require__(9)); var CollapsableNav = _interopRequire(__webpack_require__(10)); var Carousel = _interopRequire(__webpack_require__(11)); var CarouselItem = _interopRequire(__webpack_require__(12)); var Col = _interopRequire(__webpack_require__(13)); var CollapsableMixin = _interopRequire(__webpack_require__(14)); var DropdownButton = _interopRequire(__webpack_require__(15)); var DropdownMenu = _interopRequire(__webpack_require__(16)); var DropdownStateMixin = _interopRequire(__webpack_require__(17)); var FadeMixin = _interopRequire(__webpack_require__(18)); var Glyphicon = _interopRequire(__webpack_require__(19)); var Grid = _interopRequire(__webpack_require__(20)); var Input = _interopRequire(__webpack_require__(21)); var Interpolate = _interopRequire(__webpack_require__(22)); var Jumbotron = _interopRequire(__webpack_require__(23)); var Label = _interopRequire(__webpack_require__(24)); var ListGroup = _interopRequire(__webpack_require__(25)); var ListGroupItem = _interopRequire(__webpack_require__(26)); var MenuItem = _interopRequire(__webpack_require__(27)); var Modal = _interopRequire(__webpack_require__(28)); var Nav = _interopRequire(__webpack_require__(29)); var Navbar = _interopRequire(__webpack_require__(30)); var NavItem = _interopRequire(__webpack_require__(31)); var ModalTrigger = _interopRequire(__webpack_require__(32)); var OverlayTrigger = _interopRequire(__webpack_require__(33)); var OverlayMixin = _interopRequire(__webpack_require__(34)); var PageHeader = _interopRequire(__webpack_require__(35)); var Panel = _interopRequire(__webpack_require__(36)); var PanelGroup = _interopRequire(__webpack_require__(37)); var PageItem = _interopRequire(__webpack_require__(38)); var Pager = _interopRequire(__webpack_require__(39)); var Popover = _interopRequire(__webpack_require__(40)); var ProgressBar = _interopRequire(__webpack_require__(41)); var Row = _interopRequire(__webpack_require__(42)); var SplitButton = _interopRequire(__webpack_require__(43)); var SubNav = _interopRequire(__webpack_require__(44)); var TabbedArea = _interopRequire(__webpack_require__(45)); var Table = _interopRequire(__webpack_require__(46)); var TabPane = _interopRequire(__webpack_require__(47)); var Tooltip = _interopRequire(__webpack_require__(48)); var Well = _interopRequire(__webpack_require__(49)); var constants = _interopRequire(__webpack_require__(50)); module.exports = { Accordion: Accordion, Affix: Affix, AffixMixin: AffixMixin, Alert: Alert, BootstrapMixin: BootstrapMixin, Badge: Badge, Button: Button, ButtonGroup: ButtonGroup, ButtonToolbar: ButtonToolbar, CollapsableNav: CollapsableNav, Carousel: Carousel, CarouselItem: CarouselItem, Col: Col, CollapsableMixin: CollapsableMixin, DropdownButton: DropdownButton, DropdownMenu: DropdownMenu, DropdownStateMixin: DropdownStateMixin, FadeMixin: FadeMixin, Glyphicon: Glyphicon, Grid: Grid, Input: Input, Interpolate: Interpolate, Jumbotron: Jumbotron, Label: Label, ListGroup: ListGroup, ListGroupItem: ListGroupItem, MenuItem: MenuItem, Modal: Modal, Nav: Nav, Navbar: Navbar, NavItem: NavItem, ModalTrigger: ModalTrigger, OverlayTrigger: OverlayTrigger, OverlayMixin: OverlayMixin, PageHeader: PageHeader, Panel: Panel, PanelGroup: PanelGroup, PageItem: PageItem, Pager: Pager, Popover: Popover, ProgressBar: ProgressBar, Row: Row, SplitButton: SplitButton, SubNav: SubNav, TabbedArea: TabbedArea, Table: Table, TabPane: TabPane, Tooltip: Tooltip, Well: Well, constants: constants }; /***/ }, /* 1 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var PanelGroup = _interopRequire(__webpack_require__(37)); var Accordion = React.createClass({ displayName: "Accordion", render: function render() { return React.createElement( PanelGroup, _extends({}, this.props, { accordion: true }), this.props.children ); } }); module.exports = Accordion; /***/ }, /* 2 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var AffixMixin = _interopRequire(__webpack_require__(3)); var domUtils = _interopRequire(__webpack_require__(52)); var Affix = React.createClass({ displayName: "Affix", statics: { domUtils: domUtils }, mixins: [AffixMixin], render: function render() { var holderStyle = { top: this.state.affixPositionTop }; return React.createElement( "div", _extends({}, this.props, { className: classNames(this.props.className, this.state.affixClass), style: holderStyle }), this.props.children ); } }); module.exports = Affix; /***/ }, /* 3 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var React = _interopRequire(__webpack_require__(51)); var domUtils = _interopRequire(__webpack_require__(52)); var EventListener = _interopRequire(__webpack_require__(53)); var AffixMixin = { propTypes: { offset: React.PropTypes.number, offsetTop: React.PropTypes.number, offsetBottom: React.PropTypes.number }, getInitialState: function getInitialState() { return { affixClass: "affix-top" }; }, getPinnedOffset: function getPinnedOffset(DOMNode) { if (this.pinnedOffset) { return this.pinnedOffset; } DOMNode.className = DOMNode.className.replace(/affix-top|affix-bottom|affix/, ""); DOMNode.className += DOMNode.className.length ? " affix" : "affix"; this.pinnedOffset = domUtils.getOffset(DOMNode).top - window.pageYOffset; return this.pinnedOffset; }, checkPosition: function checkPosition() { var DOMNode = undefined, scrollHeight = undefined, scrollTop = undefined, position = undefined, offsetTop = undefined, offsetBottom = undefined, affix = undefined, affixType = undefined, affixPositionTop = undefined; // TODO: or not visible if (!this.isMounted()) { return; } DOMNode = React.findDOMNode(this); scrollHeight = document.documentElement.offsetHeight; scrollTop = window.pageYOffset; position = domUtils.getOffset(DOMNode); if (this.affixed === "top") { position.top += scrollTop; } offsetTop = this.props.offsetTop != null ? this.props.offsetTop : this.props.offset; offsetBottom = this.props.offsetBottom != null ? this.props.offsetBottom : this.props.offset; if (offsetTop == null && offsetBottom == null) { return; } if (offsetTop == null) { offsetTop = 0; } if (offsetBottom == null) { offsetBottom = 0; } if (this.unpin != null && scrollTop + this.unpin <= position.top) { affix = false; } else if (offsetBottom != null && position.top + DOMNode.offsetHeight >= scrollHeight - offsetBottom) { affix = "bottom"; } else if (offsetTop != null && scrollTop <= offsetTop) { affix = "top"; } else { affix = false; } if (this.affixed === affix) { return; } if (this.unpin != null) { DOMNode.style.top = ""; } affixType = "affix" + (affix ? "-" + affix : ""); this.affixed = affix; this.unpin = affix === "bottom" ? this.getPinnedOffset(DOMNode) : null; if (affix === "bottom") { DOMNode.className = DOMNode.className.replace(/affix-top|affix-bottom|affix/, "affix-bottom"); affixPositionTop = scrollHeight - offsetBottom - DOMNode.offsetHeight - domUtils.getOffset(DOMNode).top; } this.setState({ affixClass: affixType, affixPositionTop: affixPositionTop }); }, checkPositionWithEventLoop: function checkPositionWithEventLoop() { setTimeout(this.checkPosition, 0); }, componentDidMount: function componentDidMount() { this._onWindowScrollListener = EventListener.listen(window, "scroll", this.checkPosition); this._onDocumentClickListener = EventListener.listen(domUtils.ownerDocument(this), "click", this.checkPositionWithEventLoop); }, componentWillUnmount: function componentWillUnmount() { if (this._onWindowScrollListener) { this._onWindowScrollListener.remove(); } if (this._onDocumentClickListener) { this._onDocumentClickListener.remove(); } }, componentDidUpdate: function componentDidUpdate(prevProps, prevState) { if (prevState.affixClass === this.state.affixClass) { this.checkPositionWithEventLoop(); } } }; module.exports = AffixMixin; /***/ }, /* 4 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var Alert = React.createClass({ displayName: "Alert", mixins: [BootstrapMixin], propTypes: { onDismiss: React.PropTypes.func, dismissAfter: React.PropTypes.number }, getDefaultProps: function getDefaultProps() { return { bsClass: "alert", bsStyle: "info" }; }, renderDismissButton: function renderDismissButton() { return React.createElement( "button", { type: "button", className: "close", onClick: this.props.onDismiss, "aria-hidden": "true" }, "×" ); }, render: function render() { var classes = this.getBsClassSet(); var isDismissable = !!this.props.onDismiss; classes["alert-dismissable"] = isDismissable; return React.createElement( "div", _extends({}, this.props, { className: classNames(this.props.className, classes) }), isDismissable ? this.renderDismissButton() : null, this.props.children ); }, componentDidMount: function componentDidMount() { if (this.props.dismissAfter && this.props.onDismiss) { this.dismissTimer = setTimeout(this.props.onDismiss, this.props.dismissAfter); } }, componentWillUnmount: function componentWillUnmount() { clearTimeout(this.dismissTimer); } }); module.exports = Alert; /***/ }, /* 5 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var React = _interopRequire(__webpack_require__(51)); var constants = _interopRequire(__webpack_require__(50)); var BootstrapMixin = { propTypes: { bsClass: React.PropTypes.oneOf(Object.keys(constants.CLASSES)), bsStyle: React.PropTypes.oneOf(Object.keys(constants.STYLES)), bsSize: React.PropTypes.oneOf(Object.keys(constants.SIZES)) }, getBsClassSet: function getBsClassSet() { var classes = {}; var bsClass = this.props.bsClass && constants.CLASSES[this.props.bsClass]; if (bsClass) { classes[bsClass] = true; var prefix = bsClass + "-"; var bsSize = this.props.bsSize && constants.SIZES[this.props.bsSize]; if (bsSize) { classes[prefix + bsSize] = true; } var bsStyle = this.props.bsStyle && constants.STYLES[this.props.bsStyle]; if (this.props.bsStyle) { classes[prefix + bsStyle] = true; } } return classes; }, prefixClass: function prefixClass(subClass) { return constants.CLASSES[this.props.bsClass] + "-" + subClass; } }; module.exports = BootstrapMixin; /***/ }, /* 6 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var ValidComponentChildren = _interopRequire(__webpack_require__(54)); var classNames = _interopRequire(__webpack_require__(60)); var Badge = React.createClass({ displayName: "Badge", propTypes: { pullRight: React.PropTypes.bool }, hasContent: function hasContent() { return ValidComponentChildren.hasValidComponent(this.props.children) || typeof this.props.children === "string" || typeof this.props.children === "number"; }, render: function render() { var classes = { "pull-right": this.props.pullRight, badge: this.hasContent() }; return React.createElement( "span", _extends({}, this.props, { className: classNames(this.props.className, classes) }), this.props.children ); } }); module.exports = Badge; /***/ }, /* 7 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var Button = React.createClass({ displayName: "Button", mixins: [BootstrapMixin], propTypes: { active: React.PropTypes.bool, disabled: React.PropTypes.bool, block: React.PropTypes.bool, navItem: React.PropTypes.bool, navDropdown: React.PropTypes.bool, componentClass: React.PropTypes.node, href: React.PropTypes.string, target: React.PropTypes.string }, getDefaultProps: function getDefaultProps() { return { bsClass: "button", bsStyle: "default", type: "button" }; }, render: function render() { var classes = this.props.navDropdown ? {} : this.getBsClassSet(); var renderFuncName = undefined; classes = _extends({ active: this.props.active, "btn-block": this.props.block }, classes); if (this.props.navItem) { return this.renderNavItem(classes); } renderFuncName = this.props.href || this.props.target || this.props.navDropdown ? "renderAnchor" : "renderButton"; return this[renderFuncName](classes); }, renderAnchor: function renderAnchor(classes) { var Component = this.props.componentClass || "a"; var href = this.props.href || "#"; classes.disabled = this.props.disabled; return React.createElement( Component, _extends({}, this.props, { href: href, className: classNames(this.props.className, classes), role: "button" }), this.props.children ); }, renderButton: function renderButton(classes) { var Component = this.props.componentClass || "button"; return React.createElement( Component, _extends({}, this.props, { className: classNames(this.props.className, classes) }), this.props.children ); }, renderNavItem: function renderNavItem(classes) { var liClasses = { active: this.props.active }; return React.createElement( "li", { className: classNames(liClasses) }, this.renderAnchor(classes) ); } }); module.exports = Button; /***/ }, /* 8 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var ButtonGroup = React.createClass({ displayName: "ButtonGroup", mixins: [BootstrapMixin], propTypes: { vertical: React.PropTypes.bool, justified: React.PropTypes.bool }, getDefaultProps: function getDefaultProps() { return { bsClass: "button-group" }; }, render: function render() { var classes = this.getBsClassSet(); classes["btn-group"] = !this.props.vertical; classes["btn-group-vertical"] = this.props.vertical; classes["btn-group-justified"] = this.props.justified; return React.createElement( "div", _extends({}, this.props, { className: classNames(this.props.className, classes) }), this.props.children ); } }); module.exports = ButtonGroup; /***/ }, /* 9 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var ButtonToolbar = React.createClass({ displayName: "ButtonToolbar", mixins: [BootstrapMixin], getDefaultProps: function getDefaultProps() { return { bsClass: "button-toolbar" }; }, render: function render() { var classes = this.getBsClassSet(); return React.createElement( "div", _extends({}, this.props, { role: "toolbar", className: classNames(this.props.className, classes) }), this.props.children ); } }); module.exports = ButtonToolbar; /***/ }, /* 10 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _react = __webpack_require__(51); var React = _interopRequire(_react); var cloneElement = _react.cloneElement; var BootstrapMixin = _interopRequire(__webpack_require__(5)); var CollapsableMixin = _interopRequire(__webpack_require__(14)); var classNames = _interopRequire(__webpack_require__(60)); var domUtils = _interopRequire(__webpack_require__(52)); var ValidComponentChildren = _interopRequire(__webpack_require__(54)); var createChainedFunction = _interopRequire(__webpack_require__(55)); var CollapsableNav = React.createClass({ displayName: "CollapsableNav", mixins: [BootstrapMixin, CollapsableMixin], propTypes: { onSelect: React.PropTypes.func, activeHref: React.PropTypes.string, activeKey: React.PropTypes.any, collapsable: React.PropTypes.bool, expanded: React.PropTypes.bool, eventKey: React.PropTypes.any }, getCollapsableDOMNode: function getCollapsableDOMNode() { return this.getDOMNode(); }, getCollapsableDimensionValue: function getCollapsableDimensionValue() { var height = 0; var nodes = this.refs; for (var key in nodes) { if (nodes.hasOwnProperty(key)) { var n = nodes[key].getDOMNode(), h = n.offsetHeight, computedStyles = domUtils.getComputedStyles(n); height += h + parseInt(computedStyles.marginTop, 10) + parseInt(computedStyles.marginBottom, 10); } } return height; }, render: function render() { /* * this.props.collapsable is set in NavBar when a eventKey is supplied. */ var classes = this.props.collapsable ? this.getCollapsableClassSet() : {}; /* * prevent duplicating navbar-collapse call if passed as prop. kind of overkill... good cadidate to have check implemented as a util that can * also be used elsewhere. */ if (this.props.className === undefined || this.props.className.split(" ").indexOf("navbar-collapse") === -2) { classes["navbar-collapse"] = this.props.collapsable; } return React.createElement( "div", { eventKey: this.props.eventKey, className: classNames(this.props.className, classes) }, ValidComponentChildren.map(this.props.children, this.props.collapsable ? this.renderCollapsableNavChildren : this.renderChildren) ); }, getChildActiveProp: function getChildActiveProp(child) { if (child.props.active) { return true; } if (this.props.activeKey != null) { if (child.props.eventKey === this.props.activeKey) { return true; } } if (this.props.activeHref != null) { if (child.props.href === this.props.activeHref) { return true; } } return child.props.active; }, renderChildren: function renderChildren(child, index) { var key = child.key ? child.key : index; return cloneElement(child, { activeKey: this.props.activeKey, activeHref: this.props.activeHref, ref: "nocollapse_" + key, key: key, navItem: true }); }, renderCollapsableNavChildren: function renderCollapsableNavChildren(child, index) { var key = child.key ? child.key : index; return cloneElement(child, { active: this.getChildActiveProp(child), activeKey: this.props.activeKey, activeHref: this.props.activeHref, onSelect: createChainedFunction(child.props.onSelect, this.props.onSelect), ref: "collapsable_" + key, key: key, navItem: true }); } }); module.exports = CollapsableNav; /***/ }, /* 11 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(51); var React = _interopRequire(_react); var cloneElement = _react.cloneElement; var classNames = _interopRequire(__webpack_require__(60)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var ValidComponentChildren = _interopRequire(__webpack_require__(54)); var Carousel = React.createClass({ displayName: "Carousel", mixins: [BootstrapMixin], propTypes: { slide: React.PropTypes.bool, indicators: React.PropTypes.bool, interval: React.PropTypes.number, controls: React.PropTypes.bool, pauseOnHover: React.PropTypes.bool, wrap: React.PropTypes.bool, onSelect: React.PropTypes.func, onSlideEnd: React.PropTypes.func, activeIndex: React.PropTypes.number, defaultActiveIndex: React.PropTypes.number, direction: React.PropTypes.oneOf(["prev", "next"]) }, getDefaultProps: function getDefaultProps() { return { slide: true, interval: 5000, pauseOnHover: true, wrap: true, indicators: true, controls: true }; }, getInitialState: function getInitialState() { return { activeIndex: this.props.defaultActiveIndex == null ? 0 : this.props.defaultActiveIndex, previousActiveIndex: null, direction: null }; }, getDirection: function getDirection(prevIndex, index) { if (prevIndex === index) { return null; } return prevIndex > index ? "prev" : "next"; }, componentWillReceiveProps: function componentWillReceiveProps(nextProps) { var activeIndex = this.getActiveIndex(); if (nextProps.activeIndex != null && nextProps.activeIndex !== activeIndex) { clearTimeout(this.timeout); this.setState({ previousActiveIndex: activeIndex, direction: nextProps.direction != null ? nextProps.direction : this.getDirection(activeIndex, nextProps.activeIndex) }); } }, componentDidMount: function componentDidMount() { this.waitForNext(); }, componentWillUnmount: function componentWillUnmount() { clearTimeout(this.timeout); }, next: function next(e) { if (e) { e.preventDefault(); } var index = this.getActiveIndex() + 1; var count = ValidComponentChildren.numberOf(this.props.children); if (index > count - 1) { if (!this.props.wrap) { return; } index = 0; } this.handleSelect(index, "next"); }, prev: function prev(e) { if (e) { e.preventDefault(); } var index = this.getActiveIndex() - 1; if (index < 0) { if (!this.props.wrap) { return; } index = ValidComponentChildren.numberOf(this.props.children) - 1; } this.handleSelect(index, "prev"); }, pause: function pause() { this.isPaused = true; clearTimeout(this.timeout); }, play: function play() { this.isPaused = false; this.waitForNext(); }, waitForNext: function waitForNext() { if (!this.isPaused && this.props.slide && this.props.interval && this.props.activeIndex == null) { this.timeout = setTimeout(this.next, this.props.interval); } }, handleMouseOver: function handleMouseOver() { if (this.props.pauseOnHover) { this.pause(); } }, handleMouseOut: function handleMouseOut() { if (this.isPaused) { this.play(); } }, render: function render() { var classes = { carousel: true, slide: this.props.slide }; return React.createElement( "div", _extends({}, this.props, { className: classNames(this.props.className, classes), onMouseOver: this.handleMouseOver, onMouseOut: this.handleMouseOut }), this.props.indicators ? this.renderIndicators() : null, React.createElement( "div", { className: "carousel-inner", ref: "inner" }, ValidComponentChildren.map(this.props.children, this.renderItem) ), this.props.controls ? this.renderControls() : null ); }, renderPrev: function renderPrev() { return React.createElement( "a", { className: "left carousel-control", href: "#prev", key: 0, onClick: this.prev }, React.createElement("span", { className: "glyphicon glyphicon-chevron-left" }) ); }, renderNext: function renderNext() { return React.createElement( "a", { className: "right carousel-control", href: "#next", key: 1, onClick: this.next }, React.createElement("span", { className: "glyphicon glyphicon-chevron-right" }) ); }, renderControls: function renderControls() { if (!this.props.wrap) { var activeIndex = this.getActiveIndex(); var count = ValidComponentChildren.numberOf(this.props.children); return [activeIndex !== 0 ? this.renderPrev() : null, activeIndex !== count - 1 ? this.renderNext() : null]; } return [this.renderPrev(), this.renderNext()]; }, renderIndicator: function renderIndicator(child, index) { var className = index === this.getActiveIndex() ? "active" : null; return React.createElement("li", { key: index, className: className, onClick: this.handleSelect.bind(this, index, null) }); }, renderIndicators: function renderIndicators() { var indicators = []; ValidComponentChildren.forEach(this.props.children, function (child, index) { indicators.push(this.renderIndicator(child, index), // Force whitespace between indicator elements, bootstrap // requires this for correct spacing of elements. " "); }, this); return React.createElement( "ol", { className: "carousel-indicators" }, indicators ); }, getActiveIndex: function getActiveIndex() { return this.props.activeIndex != null ? this.props.activeIndex : this.state.activeIndex; }, handleItemAnimateOutEnd: function handleItemAnimateOutEnd() { this.setState({ previousActiveIndex: null, direction: null }, function () { this.waitForNext(); if (this.props.onSlideEnd) { this.props.onSlideEnd(); } }); }, renderItem: function renderItem(child, index) { var activeIndex = this.getActiveIndex(); var isActive = index === activeIndex; var isPreviousActive = this.state.previousActiveIndex != null && this.state.previousActiveIndex === index && this.props.slide; return cloneElement(child, { active: isActive, ref: child.ref, key: child.key ? child.key : index, index: index, animateOut: isPreviousActive, animateIn: isActive && this.state.previousActiveIndex != null && this.props.slide, direction: this.state.direction, onAnimateOutEnd: isPreviousActive ? this.handleItemAnimateOutEnd : null }); }, handleSelect: function handleSelect(index, direction) { clearTimeout(this.timeout); var previousActiveIndex = this.getActiveIndex(); direction = direction || this.getDirection(previousActiveIndex, index); if (this.props.onSelect) { this.props.onSelect(index, direction); } if (this.props.activeIndex == null && index !== previousActiveIndex) { if (this.state.previousActiveIndex != null) { // If currently animating don't activate the new index. // TODO: look into queuing this canceled call and // animating after the current animation has ended. return; } this.setState({ activeIndex: index, previousActiveIndex: previousActiveIndex, direction: direction }); } } }); module.exports = Carousel; /***/ }, /* 12 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var TransitionEvents = _interopRequire(__webpack_require__(56)); var CarouselItem = React.createClass({ displayName: "CarouselItem", propTypes: { direction: React.PropTypes.oneOf(["prev", "next"]), onAnimateOutEnd: React.PropTypes.func, active: React.PropTypes.bool, animateIn: React.PropTypes.bool, animateOut: React.PropTypes.bool, caption: React.PropTypes.node, index: React.PropTypes.number }, getInitialState: function getInitialState() { return { direction: null }; }, getDefaultProps: function getDefaultProps() { return { animation: true }; }, handleAnimateOutEnd: function handleAnimateOutEnd() { if (this.props.onAnimateOutEnd && this.isMounted()) { this.props.onAnimateOutEnd(this.props.index); } }, componentWillReceiveProps: function componentWillReceiveProps(nextProps) { if (this.props.active !== nextProps.active) { this.setState({ direction: null }); } }, componentDidUpdate: function componentDidUpdate(prevProps) { if (!this.props.active && prevProps.active) { TransitionEvents.addEndEventListener(React.findDOMNode(this), this.handleAnimateOutEnd); } if (this.props.active !== prevProps.active) { setTimeout(this.startAnimation, 20); } }, startAnimation: function startAnimation() { if (!this.isMounted()) { return; } this.setState({ direction: this.props.direction === "prev" ? "right" : "left" }); }, render: function render() { var classes = { item: true, active: this.props.active && !this.props.animateIn || this.props.animateOut, next: this.props.active && this.props.animateIn && this.props.direction === "next", prev: this.props.active && this.props.animateIn && this.props.direction === "prev" }; if (this.state.direction && (this.props.animateIn || this.props.animateOut)) { classes[this.state.direction] = true; } return React.createElement( "div", _extends({}, this.props, { className: classNames(this.props.className, classes) }), this.props.children, this.props.caption ? this.renderCaption() : null ); }, renderCaption: function renderCaption() { return React.createElement( "div", { className: "carousel-caption" }, this.props.caption ); } }); module.exports = CarouselItem; /***/ }, /* 13 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var constants = _interopRequire(__webpack_require__(50)); var Col = React.createClass({ displayName: "Col", propTypes: { xs: React.PropTypes.number, sm: React.PropTypes.number, md: React.PropTypes.number, lg: React.PropTypes.number, xsOffset: React.PropTypes.number, smOffset: React.PropTypes.number, mdOffset: React.PropTypes.number, lgOffset: React.PropTypes.number, xsPush: React.PropTypes.number, smPush: React.PropTypes.number, mdPush: React.PropTypes.number, lgPush: React.PropTypes.number, xsPull: React.PropTypes.number, smPull: React.PropTypes.number, mdPull: React.PropTypes.number, lgPull: React.PropTypes.number, componentClass: React.PropTypes.node.isRequired }, getDefaultProps: function getDefaultProps() { return { componentClass: "div" }; }, render: function render() { var ComponentClass = this.props.componentClass; var classes = {}; Object.keys(constants.SIZES).forEach(function (key) { var size = constants.SIZES[key]; var prop = size; var classPart = size + "-"; if (this.props[prop]) { classes["col-" + classPart + this.props[prop]] = true; } prop = size + "Offset"; classPart = size + "-offset-"; if (this.props[prop] >= 0) { classes["col-" + classPart + this.props[prop]] = true; } prop = size + "Push"; classPart = size + "-push-"; if (this.props[prop] >= 0) { classes["col-" + classPart + this.props[prop]] = true; } prop = size + "Pull"; classPart = size + "-pull-"; if (this.props[prop] >= 0) { classes["col-" + classPart + this.props[prop]] = true; } }, this); return React.createElement( ComponentClass, _extends({}, this.props, { className: classNames(this.props.className, classes) }), this.props.children ); } }); module.exports = Col; /***/ }, /* 14 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var React = _interopRequire(__webpack_require__(51)); var TransitionEvents = _interopRequire(__webpack_require__(61)); var CollapsableMixin = { propTypes: { defaultExpanded: React.PropTypes.bool, expanded: React.PropTypes.bool }, getInitialState: function getInitialState() { var defaultExpanded = this.props.defaultExpanded != null ? this.props.defaultExpanded : this.props.expanded != null ? this.props.expanded : false; return { expanded: defaultExpanded, collapsing: false }; }, componentWillUpdate: function componentWillUpdate(nextProps, nextState) { var willExpanded = nextProps.expanded != null ? nextProps.expanded : nextState.expanded; if (willExpanded === this.isExpanded()) { return; } // if the expanded state is being toggled, ensure node has a dimension value // this is needed for the animation to work and needs to be set before // the collapsing class is applied (after collapsing is applied the in class // is removed and the node's dimension will be wrong) var node = this.getCollapsableDOMNode(); var dimension = this.dimension(); var value = "0"; if (!willExpanded) { value = this.getCollapsableDimensionValue(); } node.style[dimension] = value + "px"; this._afterWillUpdate(); }, componentDidUpdate: function componentDidUpdate(prevProps, prevState) { // check if expanded is being toggled; if so, set collapsing this._checkToggleCollapsing(prevProps, prevState); // check if collapsing was turned on; if so, start animation this._checkStartAnimation(); }, // helps enable test stubs _afterWillUpdate: function _afterWillUpdate() {}, _checkStartAnimation: function _checkStartAnimation() { if (!this.state.collapsing) { return; } var node = this.getCollapsableDOMNode(); var dimension = this.dimension(); var value = this.getCollapsableDimensionValue(); // setting the dimension here starts the transition animation var result = undefined; if (this.isExpanded()) { result = value + "px"; } else { result = "0px"; } node.style[dimension] = result; }, _checkToggleCollapsing: function _checkToggleCollapsing(prevProps, prevState) { var wasExpanded = prevProps.expanded != null ? prevProps.expanded : prevState.expanded; var isExpanded = this.isExpanded(); if (wasExpanded !== isExpanded) { if (wasExpanded) { this._handleCollapse(); } else { this._handleExpand(); } } }, _handleExpand: function _handleExpand() { var _this = this; var node = this.getCollapsableDOMNode(); var dimension = this.dimension(); var complete = function () { _this._removeEndEventListener(node, complete); // remove dimension value - this ensures the collapsable item can grow // in dimension after initial display (such as an image loading) node.style[dimension] = ""; _this.setState({ collapsing: false }); }; this._addEndEventListener(node, complete); this.setState({ collapsing: true }); }, _handleCollapse: function _handleCollapse() { var _this = this; var node = this.getCollapsableDOMNode(); var complete = function () { _this._removeEndEventListener(node, complete); _this.setState({ collapsing: false }); }; this._addEndEventListener(node, complete); this.setState({ collapsing: true }); }, // helps enable test stubs _addEndEventListener: function _addEndEventListener(node, complete) { TransitionEvents.addEndEventListener(node, complete); }, // helps enable test stubs _removeEndEventListener: function _removeEndEventListener(node, complete) { TransitionEvents.removeEndEventListener(node, complete); }, dimension: function dimension() { return typeof this.getCollapsableDimension === "function" ? this.getCollapsableDimension() : "height"; }, isExpanded: function isExpanded() { return this.props.expanded != null ? this.props.expanded : this.state.expanded; }, getCollapsableClassSet: function getCollapsableClassSet(className) { var classes = {}; if (typeof className === "string") { className.split(" ").forEach(function (subClasses) { if (subClasses) { classes[subClasses] = true; } }); } classes.collapsing = this.state.collapsing; classes.collapse = !this.state.collapsing; classes["in"] = this.isExpanded() && !this.state.collapsing; return classes; } }; module.exports = CollapsableMixin; /***/ }, /* 15 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(51); var React = _interopRequire(_react); var cloneElement = _react.cloneElement; var classNames = _interopRequire(__webpack_require__(60)); var createChainedFunction = _interopRequire(__webpack_require__(55)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var DropdownStateMixin = _interopRequire(__webpack_require__(17)); var Button = _interopRequire(__webpack_require__(7)); var ButtonGroup = _interopRequire(__webpack_require__(8)); var DropdownMenu = _interopRequire(__webpack_require__(16)); var ValidComponentChildren = _interopRequire(__webpack_require__(54)); var DropdownButton = React.createClass({ displayName: "DropdownButton", mixins: [BootstrapMixin, DropdownStateMixin], propTypes: { pullRight: React.PropTypes.bool, dropup: React.PropTypes.bool, title: React.PropTypes.node, href: React.PropTypes.string, onClick: React.PropTypes.func, onSelect: React.PropTypes.func, navItem: React.PropTypes.bool, noCaret: React.PropTypes.bool }, render: function render() { var renderMethod = this.props.navItem ? "renderNavItem" : "renderButtonGroup"; var caret = this.props.noCaret ? null : React.createElement("span", { className: "caret" }); return this[renderMethod]([React.createElement( Button, _extends({}, this.props, { ref: "dropdownButton", className: "dropdown-toggle", onClick: this.handleDropdownClick, key: 0, navDropdown: this.props.navItem, navItem: null, title: null, pullRight: null, dropup: null }), this.props.title, " ", caret ), React.createElement( DropdownMenu, { ref: "menu", "aria-labelledby": this.props.id, pullRight: this.props.pullRight, key: 1 }, ValidComponentChildren.map(this.props.children, this.renderMenuItem) )]); }, renderButtonGroup: function renderButtonGroup(children) { var groupClasses = { open: this.state.open, dropup: this.props.dropup }; return React.createElement( ButtonGroup, { bsSize: this.props.bsSize, className: classNames(this.props.className, groupClasses) }, children ); }, renderNavItem: function renderNavItem(children) { var classes = { dropdown: true, open: this.state.open, dropup: this.props.dropup }; return React.createElement( "li", { className: classNames(this.props.className, classes) }, children ); }, renderMenuItem: function renderMenuItem(child, index) { // Only handle the option selection if an onSelect prop has been set on the // component or it's child, this allows a user not to pass an onSelect // handler and have the browser preform the default action. var handleOptionSelect = this.props.onSelect || child.props.onSelect ? this.handleOptionSelect : null; return cloneElement(child, { // Capture onSelect events onSelect: createChainedFunction(child.props.onSelect, handleOptionSelect), key: child.key ? child.key : index }); }, handleDropdownClick: function handleDropdownClick(e) { e.preventDefault(); this.setDropdownState(!this.state.open); }, handleOptionSelect: function handleOptionSelect(key) { if (this.props.onSelect) { this.props.onSelect(key); } this.setDropdownState(false); } }); module.exports = DropdownButton; /***/ }, /* 16 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(51); var React = _interopRequire(_react); var cloneElement = _react.cloneElement; var classNames = _interopRequire(__webpack_require__(60)); var createChainedFunction = _interopRequire(__webpack_require__(55)); var ValidComponentChildren = _interopRequire(__webpack_require__(54)); var DropdownMenu = React.createClass({ displayName: "DropdownMenu", propTypes: { pullRight: React.PropTypes.bool, onSelect: React.PropTypes.func }, render: function render() { var classes = { "dropdown-menu": true, "dropdown-menu-right": this.props.pullRight }; return React.createElement( "ul", _extends({}, this.props, { className: classNames(this.props.className, classes), role: "menu" }), ValidComponentChildren.map(this.props.children, this.renderMenuItem) ); }, renderMenuItem: function renderMenuItem(child, index) { return cloneElement(child, { // Capture onSelect events onSelect: createChainedFunction(child.props.onSelect, this.props.onSelect), // Force special props to be transferred key: child.key ? child.key : index }); } }); module.exports = DropdownMenu; /***/ }, /* 17 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var React = _interopRequire(__webpack_require__(51)); var domUtils = _interopRequire(__webpack_require__(52)); var EventListener = _interopRequire(__webpack_require__(53)); /** * Checks whether a node is within * a root nodes tree * * @param {DOMElement} node * @param {DOMElement} root * @returns {boolean} */ function isNodeInRoot(node, root) { while (node) { if (node === root) { return true; } node = node.parentNode; } return false; } var DropdownStateMixin = { getInitialState: function getInitialState() { return { open: false }; }, setDropdownState: function setDropdownState(newState, onStateChangeComplete) { if (newState) { this.bindRootCloseHandlers(); } else { this.unbindRootCloseHandlers(); } this.setState({ open: newState }, onStateChangeComplete); }, handleDocumentKeyUp: function handleDocumentKeyUp(e) { if (e.keyCode === 27) { this.setDropdownState(false); } }, handleDocumentClick: function handleDocumentClick(e) { // If the click originated from within this component // don't do anything. if (isNodeInRoot(e.target, React.findDOMNode(this))) { return; } this.setDropdownState(false); }, bindRootCloseHandlers: function bindRootCloseHandlers() { var doc = domUtils.ownerDocument(this); this._onDocumentClickListener = EventListener.listen(doc, "click", this.handleDocumentClick); this._onDocumentKeyupListener = EventListener.listen(doc, "keyup", this.handleDocumentKeyUp); }, unbindRootCloseHandlers: function unbindRootCloseHandlers() { if (this._onDocumentClickListener) { this._onDocumentClickListener.remove(); } if (this._onDocumentKeyupListener) { this._onDocumentKeyupListener.remove(); } }, componentWillUnmount: function componentWillUnmount() { this.unbindRootCloseHandlers(); } }; module.exports = DropdownStateMixin; /***/ }, /* 18 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var React = _interopRequire(__webpack_require__(51)); var domUtils = _interopRequire(__webpack_require__(52)); // TODO: listen for onTransitionEnd to remove el function getElementsAndSelf(root, classes) { var els = root.querySelectorAll("." + classes.join(".")); els = [].map.call(els, function (e) { return e; }); for (var i = 0; i < classes.length; i++) { if (!root.className.match(new RegExp("\\b" + classes[i] + "\\b"))) { return els; } } els.unshift(root); return els; } module.exports = { _fadeIn: function _fadeIn() { var els = undefined; if (this.isMounted()) { els = getElementsAndSelf(React.findDOMNode(this), ["fade"]); if (els.length) { els.forEach(function (el) { el.className += " in"; }); } } }, _fadeOut: function _fadeOut() { var els = getElementsAndSelf(this._fadeOutEl, ["fade", "in"]); if (els.length) { els.forEach(function (el) { el.className = el.className.replace(/\bin\b/, ""); }); } setTimeout(this._handleFadeOutEnd, 300); }, _handleFadeOutEnd: function _handleFadeOutEnd() { if (this._fadeOutEl && this._fadeOutEl.parentNode) { this._fadeOutEl.parentNode.removeChild(this._fadeOutEl); } }, componentDidMount: function componentDidMount() { if (document.querySelectorAll) { // Firefox needs delay for transition to be triggered setTimeout(this._fadeIn, 20); } }, componentWillUnmount: function componentWillUnmount() { var els = getElementsAndSelf(React.findDOMNode(this), ["fade"]), container = this.props.container && React.findDOMNode(this.props.container) || domUtils.ownerDocument(this).body; if (els.length) { this._fadeOutEl = document.createElement("div"); container.appendChild(this._fadeOutEl); this._fadeOutEl.appendChild(React.findDOMNode(this).cloneNode(true)); // Firefox needs delay for transition to be triggered setTimeout(this._fadeOut, 20); } } }; /***/ }, /* 19 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var constants = _interopRequire(__webpack_require__(50)); var Glyphicon = React.createClass({ displayName: "Glyphicon", mixins: [BootstrapMixin], propTypes: { glyph: React.PropTypes.oneOf(constants.GLYPHS).isRequired }, getDefaultProps: function getDefaultProps() { return { bsClass: "glyphicon" }; }, render: function render() { var classes = this.getBsClassSet(); classes["glyphicon-" + this.props.glyph] = true; return React.createElement( "span", _extends({}, this.props, { className: classNames(this.props.className, classes) }), this.props.children ); } }); module.exports = Glyphicon; /***/ }, /* 20 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var Grid = React.createClass({ displayName: "Grid", propTypes: { fluid: React.PropTypes.bool, componentClass: React.PropTypes.node.isRequired }, getDefaultProps: function getDefaultProps() { return { componentClass: "div" }; }, render: function render() { var ComponentClass = this.props.componentClass; var className = this.props.fluid ? "container-fluid" : "container"; return React.createElement( ComponentClass, _extends({}, this.props, { className: classNames(this.props.className, className) }), this.props.children ); } }); module.exports = Grid; /***/ }, /* 21 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var Button = _interopRequire(__webpack_require__(7)); var FormGroup = _interopRequire(__webpack_require__(57)); var Input = React.createClass({ displayName: "Input", propTypes: { type: React.PropTypes.string, label: React.PropTypes.node, help: React.PropTypes.node, addonBefore: React.PropTypes.node, addonAfter: React.PropTypes.node, buttonBefore: React.PropTypes.node, buttonAfter: React.PropTypes.node, bsSize: React.PropTypes.oneOf(["small", "medium", "large"]), bsStyle: function bsStyle(props) { if (props.type === "submit") { // Return early if `type=submit` as the `Button` component // it transfers these props to has its own propType checks. return null; } return React.PropTypes.oneOf(["success", "warning", "error"]).apply(null, arguments); }, hasFeedback: React.PropTypes.bool, id: React.PropTypes.string, groupClassName: React.PropTypes.string, wrapperClassName: React.PropTypes.string, labelClassName: React.PropTypes.string, multiple: React.PropTypes.bool, disabled: React.PropTypes.bool, value: React.PropTypes.any }, getInputDOMNode: function getInputDOMNode() { return React.findDOMNode(this.refs.input); }, getValue: function getValue() { if (this.props.type === "static") { return this.props.value; } else if (this.props.type) { if (this.props.type === "select" && this.props.multiple) { return this.getSelectedOptions(); } else { return this.getInputDOMNode().value; } } else { throw "Cannot use getValue without specifying input type."; } }, getChecked: function getChecked() { return this.getInputDOMNode().checked; }, getSelectedOptions: function getSelectedOptions() { var values = []; Array.prototype.forEach.call(this.getInputDOMNode().getElementsByTagName("option"), function (option) { if (option.selected) { var value = option.getAttribute("value") || option.innerHTML; values.push(value); } }); return values; }, isCheckboxOrRadio: function isCheckboxOrRadio() { return this.props.type === "radio" || this.props.type === "checkbox"; }, isFile: function isFile() { return this.props.type === "file"; }, renderInput: function renderInput() { var input = null; if (!this.props.type) { return this.props.children; } switch (this.props.type) { case "select": input = React.createElement( "select", _extends({}, this.props, { className: classNames(this.props.className, "form-control"), ref: "input", key: "input" }), this.props.children ); break; case "textarea": input = React.createElement("textarea", _extends({}, this.props, { className: classNames(this.props.className, "form-control"), ref: "input", key: "input" })); break; case "static": input = React.createElement( "p", _extends({}, this.props, { className: classNames(this.props.className, "form-control-static"), ref: "input", key: "input" }), this.props.value ); break; case "submit": input = React.createElement(Button, _extends({}, this.props, { componentClass: "input", ref: "input", key: "input" })); break; default: var className = this.isCheckboxOrRadio() || this.isFile() ? "" : "form-control"; input = React.createElement("input", _extends({}, this.props, { className: classNames(this.props.className, className), ref: "input", key: "input" })); } return input; }, renderInputGroup: function renderInputGroup(children) { var addonBefore = this.props.addonBefore ? React.createElement( "span", { className: "input-group-addon", key: "addonBefore" }, this.props.addonBefore ) : null; var addonAfter = this.props.addonAfter ? React.createElement( "span", { className: "input-group-addon", key: "addonAfter" }, this.props.addonAfter ) : null; var buttonBefore = this.props.buttonBefore ? React.createElement( "span", { className: "input-group-btn" }, this.props.buttonBefore ) : null; var buttonAfter = this.props.buttonAfter ? React.createElement( "span", { className: "input-group-btn" }, this.props.buttonAfter ) : null; var inputGroupClassName = undefined; switch (this.props.bsSize) { case "small": inputGroupClassName = "input-group-sm";break; case "large": inputGroupClassName = "input-group-lg";break; } return addonBefore || addonAfter || buttonBefore || buttonAfter ? React.createElement( "div", { className: classNames(inputGroupClassName, "input-group"), key: "input-group" }, addonBefore, buttonBefore, children, addonAfter, buttonAfter ) : children; }, renderIcon: function renderIcon() { var classes = { glyphicon: true, "form-control-feedback": true, "glyphicon-ok": this.props.bsStyle === "success", "glyphicon-warning-sign": this.props.bsStyle === "warning", "glyphicon-remove": this.props.bsStyle === "error" }; return this.props.hasFeedback ? React.createElement("span", { className: classNames(classes), key: "icon" }) : null; }, renderHelp: function renderHelp() { return this.props.help ? React.createElement( "span", { className: "help-block", key: "help" }, this.props.help ) : null; }, renderCheckboxandRadioWrapper: function renderCheckboxandRadioWrapper(children) { var classes = { checkbox: this.props.type === "checkbox", radio: this.props.type === "radio" }; return React.createElement( "div", { className: classNames(classes), key: "checkboxRadioWrapper" }, children ); }, renderWrapper: function renderWrapper(children) { return this.props.wrapperClassName ? React.createElement( "div", { className: this.props.wrapperClassName, key: "wrapper" }, children ) : children; }, renderLabel: function renderLabel(children) { var classes = { "control-label": !this.isCheckboxOrRadio() }; classes[this.props.labelClassName] = this.props.labelClassName; return this.props.label ? React.createElement( "label", { htmlFor: this.props.id, className: classNames(classes), key: "label" }, children, this.props.label ) : children; }, render: function render() { var children = undefined; if (this.isCheckboxOrRadio()) { children = this.renderWrapper([this.renderCheckboxandRadioWrapper(this.renderLabel(this.renderInput())), this.renderHelp()]); } else { children = [this.renderLabel(), this.renderWrapper([this.renderInputGroup(this.renderInput()), this.renderIcon(), this.renderHelp()])]; } return React.createElement( FormGroup, this.props, children ); } }); module.exports = Input; /***/ }, /* 22 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; // https://www.npmjs.org/package/react-interpolate-component // TODO: Drop this in favor of es6 string interpolation var React = _interopRequire(__webpack_require__(51)); var ValidComponentChildren = _interopRequire(__webpack_require__(54)); var assign = _interopRequire(__webpack_require__(58)); var REGEXP = /\%\((.+?)\)s/; var Interpolate = React.createClass({ displayName: "Interpolate", propTypes: { format: React.PropTypes.string }, getDefaultProps: function getDefaultProps() { return { component: "span" }; }, render: function render() { var format = ValidComponentChildren.hasValidComponent(this.props.children) || typeof this.props.children === "string" ? this.props.children : this.props.format; var parent = this.props.component; var unsafe = this.props.unsafe === true; var props = assign({}, this.props); delete props.children; delete props.format; delete props.component; delete props.unsafe; if (unsafe) { var content = format.split(REGEXP).reduce(function (memo, match, index) { var html = undefined; if (index % 2 === 0) { html = match; } else { html = props[match]; delete props[match]; } if (React.isValidElement(html)) { throw new Error("cannot interpolate a React component into unsafe text"); } memo += html; return memo; }, ""); props.dangerouslySetInnerHTML = { __html: content }; return React.createElement(parent, props); } else { var kids = format.split(REGEXP).reduce(function (memo, match, index) { var child = undefined; if (index % 2 === 0) { if (match.length === 0) { return memo; } child = match; } else { child = props[match]; delete props[match]; } memo.push(child); return memo; }, []); return React.createElement(parent, props, kids); } } }); module.exports = Interpolate; /***/ }, /* 23 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var Jumbotron = React.createClass({ displayName: "Jumbotron", render: function render() { return React.createElement( "div", _extends({}, this.props, { className: classNames(this.props.className, "jumbotron") }), this.props.children ); } }); module.exports = Jumbotron; /***/ }, /* 24 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var Label = React.createClass({ displayName: "Label", mixins: [BootstrapMixin], getDefaultProps: function getDefaultProps() { return { bsClass: "label", bsStyle: "default" }; }, render: function render() { var classes = this.getBsClassSet(); return React.createElement( "span", _extends({}, this.props, { className: classNames(this.props.className, classes) }), this.props.children ); } }); module.exports = Label; /***/ }, /* 25 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _createClass = (function () { function defineProperties(target, props) { for (var key in props) { var prop = props[key]; prop.configurable = true; if (prop.value) prop.writable = true; } Object.defineProperties(target, props); } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); var _inherits = function (subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; }; var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; var _react = __webpack_require__(51); var React = _interopRequire(_react); var cloneElement = _react.cloneElement; var classNames = _interopRequire(__webpack_require__(60)); var ValidComponentChildren = _interopRequire(__webpack_require__(54)); var ListGroup = (function (_React$Component) { function ListGroup() { _classCallCheck(this, ListGroup); if (_React$Component != null) { _React$Component.apply(this, arguments); } } _inherits(ListGroup, _React$Component); _createClass(ListGroup, { render: { value: function render() { var items = ValidComponentChildren.map(this.props.children, function (item, index) { return cloneElement(item, { key: item.key ? item.key : index }); }); return React.createElement( "div", { className: classNames(this.props.className, "list-group") }, items ); } } }); return ListGroup; })(React.Component); ListGroup.propTypes = { className: React.PropTypes.string }; module.exports = ListGroup; /***/ }, /* 26 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(51); var React = _interopRequire(_react); var cloneElement = _react.cloneElement; var BootstrapMixin = _interopRequire(__webpack_require__(5)); var classNames = _interopRequire(__webpack_require__(60)); var ListGroupItem = React.createClass({ displayName: "ListGroupItem", mixins: [BootstrapMixin], propTypes: { bsStyle: React.PropTypes.oneOf(["danger", "info", "success", "warning"]), active: React.PropTypes.any, disabled: React.PropTypes.any, header: React.PropTypes.node, onClick: React.PropTypes.func, eventKey: React.PropTypes.any, href: React.PropTypes.string, target: React.PropTypes.string }, getDefaultProps: function getDefaultProps() { return { bsClass: "list-group-item" }; }, render: function render() { var classes = this.getBsClassSet(); classes.active = this.props.active; classes.disabled = this.props.disabled; if (this.props.href || this.props.target || this.props.onClick) { return this.renderAnchor(classes); } else { return this.renderSpan(classes); } }, renderSpan: function renderSpan(classes) { return React.createElement( "span", _extends({}, this.props, { className: classNames(this.props.className, classes) }), this.props.header ? this.renderStructuredContent() : this.props.children ); }, renderAnchor: function renderAnchor(classes) { return React.createElement( "a", _extends({}, this.props, { className: classNames(this.props.className, classes) }), this.props.header ? this.renderStructuredContent() : this.props.children ); }, renderStructuredContent: function renderStructuredContent() { var header = undefined; if (React.isValidElement(this.props.header)) { header = cloneElement(this.props.header, { key: "header", className: classNames(this.props.header.props.className, "list-group-item-heading") }); } else { header = React.createElement( "h4", { key: "header", className: "list-group-item-heading" }, this.props.header ); } var content = React.createElement( "p", { key: "content", className: "list-group-item-text" }, this.props.children ); return [header, content]; } }); module.exports = ListGroupItem; /***/ }, /* 27 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var MenuItem = React.createClass({ displayName: "MenuItem", propTypes: { header: React.PropTypes.bool, divider: React.PropTypes.bool, href: React.PropTypes.string, title: React.PropTypes.string, target: React.PropTypes.string, onSelect: React.PropTypes.func, eventKey: React.PropTypes.any }, getDefaultProps: function getDefaultProps() { return { href: "#" }; }, handleClick: function handleClick(e) { if (this.props.onSelect) { e.preventDefault(); this.props.onSelect(this.props.eventKey, this.props.href, this.props.target); } }, renderAnchor: function renderAnchor() { return React.createElement( "a", { onClick: this.handleClick, href: this.props.href, target: this.props.target, title: this.props.title, tabIndex: "-1" }, this.props.children ); }, render: function render() { var classes = { "dropdown-header": this.props.header, divider: this.props.divider }; var children = null; if (this.props.header) { children = this.props.children; } else if (!this.props.divider) { children = this.renderAnchor(); } return React.createElement( "li", _extends({}, this.props, { role: "presentation", title: null, href: null, className: classNames(this.props.className, classes) }), children ); } }); module.exports = MenuItem; /***/ }, /* 28 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var FadeMixin = _interopRequire(__webpack_require__(18)); var domUtils = _interopRequire(__webpack_require__(52)); var EventListener = _interopRequire(__webpack_require__(53)); // TODO: // - aria-labelledby // - Add `modal-body` div if only one child passed in that doesn't already have it // - Tests var Modal = React.createClass({ displayName: "Modal", mixins: [BootstrapMixin, FadeMixin], propTypes: { title: React.PropTypes.node, backdrop: React.PropTypes.oneOf(["static", true, false]), keyboard: React.PropTypes.bool, closeButton: React.PropTypes.bool, animation: React.PropTypes.bool, onRequestHide: React.PropTypes.func.isRequired }, getDefaultProps: function getDefaultProps() { return { bsClass: "modal", backdrop: true, keyboard: true, animation: true, closeButton: true }; }, render: function render() { var modalStyle = { display: "block" }; var dialogClasses = this.getBsClassSet(); delete dialogClasses.modal; dialogClasses["modal-dialog"] = true; var classes = { modal: true, fade: this.props.animation, "in": !this.props.animation || !document.querySelectorAll }; var modal = React.createElement( "div", _extends({}, this.props, { title: null, tabIndex: "-1", role: "dialog", style: modalStyle, className: classNames(this.props.className, classes), onClick: this.props.backdrop === true ? this.handleBackdropClick : null, ref: "modal" }), React.createElement( "div", { className: classNames(dialogClasses) }, React.createElement( "div", { className: "modal-content", style: { overflow: "hidden" } }, this.props.title ? this.renderHeader() : null, this.props.children ) ) ); return this.props.backdrop ? this.renderBackdrop(modal) : modal; }, renderBackdrop: function renderBackdrop(modal) { var classes = { "modal-backdrop": true, fade: this.props.animation }; classes["in"] = !this.props.animation || !document.querySelectorAll; var onClick = this.props.backdrop === true ? this.handleBackdropClick : null; return React.createElement( "div", null, React.createElement("div", { className: classNames(classes), ref: "backdrop", onClick: onClick }), modal ); }, renderHeader: function renderHeader() { var closeButton = undefined; if (this.props.closeButton) { closeButton = React.createElement( "button", { type: "button", className: "close", "aria-hidden": "true", onClick: this.props.onRequestHide }, "×" ); } var style = this.props.bsStyle; var classes = { "modal-header": true }; classes["bg-" + style] = style; classes["text-" + style] = style; var className = classNames(classes); return React.createElement( "div", { className: className }, closeButton, this.renderTitle() ); }, renderTitle: function renderTitle() { return React.isValidElement(this.props.title) ? this.props.title : React.createElement( "h4", { className: "modal-title" }, this.props.title ); }, iosClickHack: function iosClickHack() { // IOS only allows click events to be delegated to the document on elements // it considers 'clickable' - anchors, buttons, etc. We fake a click handler on the // DOM nodes themselves. Remove if handled by React: https://github.com/facebook/react/issues/1169 React.findDOMNode(this.refs.modal).onclick = function () {}; React.findDOMNode(this.refs.backdrop).onclick = function () {}; }, componentDidMount: function componentDidMount() { this._onDocumentKeyupListener = EventListener.listen(domUtils.ownerDocument(this), "keyup", this.handleDocumentKeyUp); var container = this.props.container && React.findDOMNode(this.props.container) || domUtils.ownerDocument(this).body; container.className += container.className.length ? " modal-open" : "modal-open"; if (this.props.backdrop) { this.iosClickHack(); } }, componentDidUpdate: function componentDidUpdate(prevProps) { if (this.props.backdrop && this.props.backdrop !== prevProps.backdrop) { this.iosClickHack(); } }, componentWillUnmount: function componentWillUnmount() { this._onDocumentKeyupListener.remove(); var container = this.props.container && React.findDOMNode(this.props.container) || domUtils.ownerDocument(this).body; container.className = container.className.replace(/ ?modal-open/, ""); }, handleBackdropClick: function handleBackdropClick(e) { if (e.target !== e.currentTarget) { return; } this.props.onRequestHide(); }, handleDocumentKeyUp: function handleDocumentKeyUp(e) { if (this.props.keyboard && e.keyCode === 27) { this.props.onRequestHide(); } } }); module.exports = Modal; /***/ }, /* 29 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(51); var React = _interopRequire(_react); var cloneElement = _react.cloneElement; var BootstrapMixin = _interopRequire(__webpack_require__(5)); var CollapsableMixin = _interopRequire(__webpack_require__(14)); var classNames = _interopRequire(__webpack_require__(60)); var domUtils = _interopRequire(__webpack_require__(52)); var ValidComponentChildren = _interopRequire(__webpack_require__(54)); var createChainedFunction = _interopRequire(__webpack_require__(55)); var Nav = React.createClass({ displayName: "Nav", mixins: [BootstrapMixin, CollapsableMixin], propTypes: { activeHref: React.PropTypes.string, activeKey: React.PropTypes.any, bsStyle: React.PropTypes.oneOf(["tabs", "pills"]), stacked: React.PropTypes.bool, justified: React.PropTypes.bool, onSelect: React.PropTypes.func, collapsable: React.PropTypes.bool, expanded: React.PropTypes.bool, navbar: React.PropTypes.bool, eventKey: React.PropTypes.any, pullRight: React.PropTypes.bool, right: React.PropTypes.bool }, getDefaultProps: function getDefaultProps() { return { bsClass: "nav" }; }, getCollapsableDOMNode: function getCollapsableDOMNode() { return React.findDOMNode(this); }, getCollapsableDimensionValue: function getCollapsableDimensionValue() { var node = React.findDOMNode(this.refs.ul), height = node.offsetHeight, computedStyles = domUtils.getComputedStyles(node); return height + parseInt(computedStyles.marginTop, 10) + parseInt(computedStyles.marginBottom, 10); }, render: function render() { var classes = this.props.collapsable ? this.getCollapsableClassSet() : {}; classes["navbar-collapse"] = this.props.collapsable; if (this.props.navbar && !this.props.collapsable) { return this.renderUl(); } return React.createElement( "nav", _extends({}, this.props, { className: classNames(this.props.className, classes) }), this.renderUl() ); }, renderUl: function renderUl() { var classes = this.getBsClassSet(); classes["nav-stacked"] = this.props.stacked; classes["nav-justified"] = this.props.justified; classes["navbar-nav"] = this.props.navbar; classes["pull-right"] = this.props.pullRight; classes["navbar-right"] = this.props.right; return React.createElement( "ul", _extends({}, this.props, { className: classNames(this.props.className, classes), ref: "ul" }), ValidComponentChildren.map(this.props.children, this.renderNavItem) ); }, getChildActiveProp: function getChildActiveProp(child) { if (child.props.active) { return true; } if (this.props.activeKey != null) { if (child.props.eventKey === this.props.activeKey) { return true; } } if (this.props.activeHref != null) { if (child.props.href === this.props.activeHref) { return true; } } return child.props.active; }, renderNavItem: function renderNavItem(child, index) { return cloneElement(child, { active: this.getChildActiveProp(child), activeKey: this.props.activeKey, activeHref: this.props.activeHref, onSelect: createChainedFunction(child.props.onSelect, this.props.onSelect), key: child.key ? child.key : index, navItem: true }); } }); module.exports = Nav; /***/ }, /* 30 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(51); var React = _interopRequire(_react); var cloneElement = _react.cloneElement; var BootstrapMixin = _interopRequire(__webpack_require__(5)); var classNames = _interopRequire(__webpack_require__(60)); var ValidComponentChildren = _interopRequire(__webpack_require__(54)); var createChainedFunction = _interopRequire(__webpack_require__(55)); var Navbar = React.createClass({ displayName: "Navbar", mixins: [BootstrapMixin], propTypes: { fixedTop: React.PropTypes.bool, fixedBottom: React.PropTypes.bool, staticTop: React.PropTypes.bool, inverse: React.PropTypes.bool, fluid: React.PropTypes.bool, role: React.PropTypes.string, componentClass: React.PropTypes.node.isRequired, brand: React.PropTypes.node, toggleButton: React.PropTypes.node, toggleNavKey: React.PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.number]), onToggle: React.PropTypes.func, navExpanded: React.PropTypes.bool, defaultNavExpanded: React.PropTypes.bool }, getDefaultProps: function getDefaultProps() { return { bsClass: "navbar", bsStyle: "default", role: "navigation", componentClass: "Nav" }; }, getInitialState: function getInitialState() { return { navExpanded: this.props.defaultNavExpanded }; }, shouldComponentUpdate: function shouldComponentUpdate() { // Defer any updates to this component during the `onSelect` handler. return !this._isChanging; }, handleToggle: function handleToggle() { if (this.props.onToggle) { this._isChanging = true; this.props.onToggle(); this._isChanging = false; } this.setState({ navExpanded: !this.state.navExpanded }); }, isNavExpanded: function isNavExpanded() { return this.props.navExpanded != null ? this.props.navExpanded : this.state.navExpanded; }, render: function render() { var classes = this.getBsClassSet(); var ComponentClass = this.props.componentClass; classes["navbar-fixed-top"] = this.props.fixedTop; classes["navbar-fixed-bottom"] = this.props.fixedBottom; classes["navbar-static-top"] = this.props.staticTop; classes["navbar-inverse"] = this.props.inverse; return React.createElement( ComponentClass, _extends({}, this.props, { className: classNames(this.props.className, classes) }), React.createElement( "div", { className: this.props.fluid ? "container-fluid" : "container" }, this.props.brand || this.props.toggleButton || this.props.toggleNavKey != null ? this.renderHeader() : null, ValidComponentChildren.map(this.props.children, this.renderChild) ) ); }, renderChild: function renderChild(child, index) { return cloneElement(child, { navbar: true, collapsable: this.props.toggleNavKey != null && this.props.toggleNavKey === child.props.eventKey, expanded: this.props.toggleNavKey != null && this.props.toggleNavKey === child.props.eventKey && this.isNavExpanded(), key: child.key ? child.key : index }); }, renderHeader: function renderHeader() { var brand = undefined; if (this.props.brand) { if (React.isValidElement(this.props.brand)) { brand = cloneElement(this.props.brand, { className: classNames(this.props.brand.props.className, "navbar-brand") }); } else { brand = React.createElement( "span", { className: "navbar-brand" }, this.props.brand ); } } return React.createElement( "div", { className: "navbar-header" }, brand, this.props.toggleButton || this.props.toggleNavKey != null ? this.renderToggleButton() : null ); }, renderToggleButton: function renderToggleButton() { var children = undefined; if (React.isValidElement(this.props.toggleButton)) { return cloneElement(this.props.toggleButton, { className: classNames(this.props.toggleButton.props.className, "navbar-toggle"), onClick: createChainedFunction(this.handleToggle, this.props.toggleButton.props.onClick) }); } children = this.props.toggleButton != null ? this.props.toggleButton : [React.createElement( "span", { className: "sr-only", key: 0 }, "Toggle navigation" ), React.createElement("span", { className: "icon-bar", key: 1 }), React.createElement("span", { className: "icon-bar", key: 2 }), React.createElement("span", { className: "icon-bar", key: 3 })]; return React.createElement( "button", { className: "navbar-toggle", type: "button", onClick: this.handleToggle }, children ); } }); module.exports = Navbar; /***/ }, /* 31 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _objectWithoutProperties = function (obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var NavItem = React.createClass({ displayName: "NavItem", mixins: [BootstrapMixin], propTypes: { onSelect: React.PropTypes.func, active: React.PropTypes.bool, disabled: React.PropTypes.bool, href: React.PropTypes.string, title: React.PropTypes.node, eventKey: React.PropTypes.any, target: React.PropTypes.string }, getDefaultProps: function getDefaultProps() { return { href: "#" }; }, render: function render() { var _props = this.props; var disabled = _props.disabled; var active = _props.active; var href = _props.href; var title = _props.title; var target = _props.target; var children = _props.children; var props = _objectWithoutProperties(_props, ["disabled", "active", "href", "title", "target", "children"]); var classes = { active: active, disabled: disabled }; var linkProps = { href: href, title: title, target: target, onClick: this.handleClick, ref: "anchor" }; if (href === "#") { linkProps.role = "button"; } return React.createElement( "li", _extends({}, props, { className: classNames(props.className, classes) }), React.createElement( "a", linkProps, children ) ); }, handleClick: function handleClick(e) { if (this.props.onSelect) { e.preventDefault(); if (!this.props.disabled) { this.props.onSelect(this.props.eventKey, this.props.href, this.props.target); } } } }); module.exports = NavItem; /***/ }, /* 32 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _react = __webpack_require__(51); var React = _interopRequire(_react); var cloneElement = _react.cloneElement; var OverlayMixin = _interopRequire(__webpack_require__(34)); var createChainedFunction = _interopRequire(__webpack_require__(55)); var ModalTrigger = React.createClass({ displayName: "ModalTrigger", mixins: [OverlayMixin], propTypes: { modal: React.PropTypes.node.isRequired }, getInitialState: function getInitialState() { return { isOverlayShown: false }; }, show: function show() { this.setState({ isOverlayShown: true }); }, hide: function hide() { this.setState({ isOverlayShown: false }); }, toggle: function toggle() { this.setState({ isOverlayShown: !this.state.isOverlayShown }); }, renderOverlay: function renderOverlay() { if (!this.state.isOverlayShown) { return React.createElement("span", null); } return cloneElement(this.props.modal, { onRequestHide: this.hide }); }, render: function render() { var child = React.Children.only(this.props.children); return cloneElement(child, { onClick: createChainedFunction(child.props.onClick, this.toggle) }); } }); module.exports = ModalTrigger; /***/ }, /* 33 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _react = __webpack_require__(51); var React = _interopRequire(_react); var cloneElement = _react.cloneElement; var OverlayMixin = _interopRequire(__webpack_require__(34)); var domUtils = _interopRequire(__webpack_require__(52)); var createChainedFunction = _interopRequire(__webpack_require__(55)); var assign = _interopRequire(__webpack_require__(58)); /** * Check if value one is inside or equal to the of value * * @param {string} one * @param {string|array} of * @returns {boolean} */ function isOneOf(one, of) { if (Array.isArray(of)) { return of.indexOf(one) >= 0; } return one === of; } var OverlayTrigger = React.createClass({ displayName: "OverlayTrigger", mixins: [OverlayMixin], propTypes: { trigger: React.PropTypes.oneOfType([React.PropTypes.oneOf(["manual", "click", "hover", "focus"]), React.PropTypes.arrayOf(React.PropTypes.oneOf(["click", "hover", "focus"]))]), placement: React.PropTypes.oneOf(["top", "right", "bottom", "left"]), delay: React.PropTypes.number, delayShow: React.PropTypes.number, delayHide: React.PropTypes.number, defaultOverlayShown: React.PropTypes.bool, overlay: React.PropTypes.node.isRequired }, getDefaultProps: function getDefaultProps() { return { placement: "right", trigger: ["hover", "focus"] }; }, getInitialState: function getInitialState() { return { isOverlayShown: this.props.defaultOverlayShown == null ? false : this.props.defaultOverlayShown, overlayLeft: null, overlayTop: null }; }, show: function show() { this.setState({ isOverlayShown: true }, function () { this.updateOverlayPosition(); }); }, hide: function hide() { this.setState({ isOverlayShown: false }); }, toggle: function toggle() { if (this.state.isOverlayShown) { this.hide(); } else { this.show(); } }, renderOverlay: function renderOverlay() { if (!this.state.isOverlayShown) { return React.createElement("span", null); } return cloneElement(this.props.overlay, { onRequestHide: this.hide, placement: this.props.placement, positionLeft: this.state.overlayLeft, positionTop: this.state.overlayTop }); }, render: function render() { if (this.props.trigger === "manual") { return React.Children.only(this.props.children); } var props = {}; if (isOneOf("click", this.props.trigger)) { props.onClick = createChainedFunction(this.toggle, this.props.onClick); } if (isOneOf("hover", this.props.trigger)) { props.onMouseOver = createChainedFunction(this.handleDelayedShow, this.props.onMouseOver); props.onMouseOut = createChainedFunction(this.handleDelayedHide, this.props.onMouseOut); } if (isOneOf("focus", this.props.trigger)) { props.onFocus = createChainedFunction(this.handleDelayedShow, this.props.onFocus); props.onBlur = createChainedFunction(this.handleDelayedHide, this.props.onBlur); } return cloneElement(React.Children.only(this.props.children), props); }, componentWillUnmount: function componentWillUnmount() { clearTimeout(this._hoverDelay); }, componentDidMount: function componentDidMount() { if (this.props.defaultOverlayShown) { this.updateOverlayPosition(); } }, handleDelayedShow: function handleDelayedShow() { if (this._hoverDelay != null) { clearTimeout(this._hoverDelay); this._hoverDelay = null; return; } var delay = this.props.delayShow != null ? this.props.delayShow : this.props.delay; if (!delay) { this.show(); return; } this._hoverDelay = setTimeout((function () { this._hoverDelay = null; this.show(); }).bind(this), delay); }, handleDelayedHide: function handleDelayedHide() { if (this._hoverDelay != null) { clearTimeout(this._hoverDelay); this._hoverDelay = null; return; } var delay = this.props.delayHide != null ? this.props.delayHide : this.props.delay; if (!delay) { this.hide(); return; } this._hoverDelay = setTimeout((function () { this._hoverDelay = null; this.hide(); }).bind(this), delay); }, updateOverlayPosition: function updateOverlayPosition() { if (!this.isMounted()) { return; } var pos = this.calcOverlayPosition(); this.setState({ overlayLeft: pos.left, overlayTop: pos.top }); }, calcOverlayPosition: function calcOverlayPosition() { var childOffset = this.getPosition(); var overlayNode = this.getOverlayDOMNode(); var overlayHeight = overlayNode.offsetHeight; var overlayWidth = overlayNode.offsetWidth; switch (this.props.placement) { case "right": return { top: childOffset.top + childOffset.height / 2 - overlayHeight / 2, left: childOffset.left + childOffset.width }; case "left": return { top: childOffset.top + childOffset.height / 2 - overlayHeight / 2, left: childOffset.left - overlayWidth }; case "top": return { top: childOffset.top - overlayHeight, left: childOffset.left + childOffset.width / 2 - overlayWidth / 2 }; case "bottom": return { top: childOffset.top + childOffset.height, left: childOffset.left + childOffset.width / 2 - overlayWidth / 2 }; default: throw new Error("calcOverlayPosition(): No such placement of \"" + this.props.placement + "\" found."); } }, getPosition: function getPosition() { var node = React.findDOMNode(this); var container = this.getContainerDOMNode(); var offset = container.tagName === "BODY" ? domUtils.getOffset(node) : domUtils.getPosition(node, container); return assign({}, offset, { height: node.offsetHeight, width: node.offsetWidth }); } }); module.exports = OverlayTrigger; /***/ }, /* 34 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var React = _interopRequire(__webpack_require__(51)); var CustomPropTypes = _interopRequire(__webpack_require__(59)); var domUtils = _interopRequire(__webpack_require__(52)); module.exports = { propTypes: { container: CustomPropTypes.mountable }, componentWillUnmount: function componentWillUnmount() { this._unrenderOverlay(); if (this._overlayTarget) { this.getContainerDOMNode().removeChild(this._overlayTarget); this._overlayTarget = null; } }, componentDidUpdate: function componentDidUpdate() { this._renderOverlay(); }, componentDidMount: function componentDidMount() { this._renderOverlay(); }, _mountOverlayTarget: function _mountOverlayTarget() { this._overlayTarget = document.createElement("div"); this.getContainerDOMNode().appendChild(this._overlayTarget); }, _renderOverlay: function _renderOverlay() { if (!this._overlayTarget) { this._mountOverlayTarget(); } var overlay = this.renderOverlay(); // Save reference to help testing if (overlay !== null) { this._overlayInstance = React.render(overlay, this._overlayTarget); } else { // Unrender if the component is null for transitions to null this._unrenderOverlay(); } }, _unrenderOverlay: function _unrenderOverlay() { React.unmountComponentAtNode(this._overlayTarget); this._overlayInstance = null; }, getOverlayDOMNode: function getOverlayDOMNode() { if (!this.isMounted()) { throw new Error("getOverlayDOMNode(): A component must be mounted to have a DOM node."); } if (this._overlayInstance) { return React.findDOMNode(this._overlayInstance); } return null; }, getContainerDOMNode: function getContainerDOMNode() { return React.findDOMNode(this.props.container) || domUtils.ownerDocument(this).body; } }; /***/ }, /* 35 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var PageHeader = React.createClass({ displayName: "PageHeader", render: function render() { return React.createElement( "div", _extends({}, this.props, { className: classNames(this.props.className, "page-header") }), React.createElement( "h1", null, this.props.children ) ); } }); module.exports = PageHeader; /***/ }, /* 36 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(51); var React = _interopRequire(_react); var cloneElement = _react.cloneElement; var classNames = _interopRequire(__webpack_require__(60)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var CollapsableMixin = _interopRequire(__webpack_require__(14)); var Panel = React.createClass({ displayName: "Panel", mixins: [BootstrapMixin, CollapsableMixin], propTypes: { collapsable: React.PropTypes.bool, onSelect: React.PropTypes.func, header: React.PropTypes.node, id: React.PropTypes.string, footer: React.PropTypes.node, eventKey: React.PropTypes.any }, getDefaultProps: function getDefaultProps() { return { bsClass: "panel", bsStyle: "default" }; }, handleSelect: function handleSelect(e) { e.selected = true; if (this.props.onSelect) { this.props.onSelect(e, this.props.eventKey); } else { e.preventDefault(); } if (e.selected) { this.handleToggle(); } }, handleToggle: function handleToggle() { this.setState({ expanded: !this.state.expanded }); }, getCollapsableDimensionValue: function getCollapsableDimensionValue() { return React.findDOMNode(this.refs.panel).scrollHeight; }, getCollapsableDOMNode: function getCollapsableDOMNode() { if (!this.isMounted() || !this.refs || !this.refs.panel) { return null; } return React.findDOMNode(this.refs.panel); }, render: function render() { var classes = this.getBsClassSet(); return React.createElement( "div", _extends({}, this.props, { className: classNames(this.props.className, classes), id: this.props.collapsable ? null : this.props.id, onSelect: null }), this.renderHeading(), this.props.collapsable ? this.renderCollapsableBody() : this.renderBody(), this.renderFooter() ); }, renderCollapsableBody: function renderCollapsableBody() { var collapseClass = this.prefixClass("collapse"); return React.createElement( "div", { className: classNames(this.getCollapsableClassSet(collapseClass)), id: this.props.id, ref: "panel", "aria-expanded": this.isExpanded() ? "true" : "false" }, this.renderBody() ); }, renderBody: function renderBody() { var allChildren = this.props.children; var bodyElements = []; var panelBodyChildren = []; var bodyClass = this.prefixClass("body"); function getProps() { return { key: bodyElements.length }; } function addPanelChild(child) { bodyElements.push(cloneElement(child, getProps())); } function addPanelBody(children) { bodyElements.push(React.createElement( "div", _extends({ className: bodyClass }, getProps()), children )); } function maybeRenderPanelBody() { if (panelBodyChildren.length === 0) { return; } addPanelBody(panelBodyChildren); panelBodyChildren = []; } // Handle edge cases where we should not iterate through children. if (!Array.isArray(allChildren) || allChildren.length === 0) { if (this.shouldRenderFill(allChildren)) { addPanelChild(allChildren); } else { addPanelBody(allChildren); } } else { allChildren.forEach((function (child) { if (this.shouldRenderFill(child)) { maybeRenderPanelBody(); // Separately add the filled element. addPanelChild(child); } else { panelBodyChildren.push(child); } }).bind(this)); maybeRenderPanelBody(); } return bodyElements; }, shouldRenderFill: function shouldRenderFill(child) { return React.isValidElement(child) && child.props.fill != null; }, renderHeading: function renderHeading() { var header = this.props.header; if (!header) { return null; } if (!React.isValidElement(header) || Array.isArray(header)) { header = this.props.collapsable ? this.renderCollapsableTitle(header) : header; } else if (this.props.collapsable) { header = cloneElement(header, { className: classNames(this.prefixClass("title")), children: this.renderAnchor(header.props.children) }); } else { header = cloneElement(header, { className: classNames(this.prefixClass("title")) }); } return React.createElement( "div", { className: this.prefixClass("heading") }, header ); }, renderAnchor: function renderAnchor(header) { return React.createElement( "a", { href: "#" + (this.props.id || ""), className: this.isExpanded() ? null : "collapsed", "aria-expanded": this.isExpanded() ? "true" : "false", onClick: this.handleSelect }, header ); }, renderCollapsableTitle: function renderCollapsableTitle(header) { return React.createElement( "h4", { className: this.prefixClass("title") }, this.renderAnchor(header) ); }, renderFooter: function renderFooter() { if (!this.props.footer) { return null; } return React.createElement( "div", { className: this.prefixClass("footer") }, this.props.footer ); } }); module.exports = Panel; /***/ }, /* 37 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* eslint react/prop-types: [1, {ignore: ["children", "className", "bsStyle"]}]*/ /* BootstrapMixin contains `bsStyle` type validation */ var _react = __webpack_require__(51); var React = _interopRequire(_react); var cloneElement = _react.cloneElement; var classNames = _interopRequire(__webpack_require__(60)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var ValidComponentChildren = _interopRequire(__webpack_require__(54)); var PanelGroup = React.createClass({ displayName: "PanelGroup", mixins: [BootstrapMixin], propTypes: { collapsable: React.PropTypes.bool, accordion: React.PropTypes.bool, activeKey: React.PropTypes.any, defaultActiveKey: React.PropTypes.any, onSelect: React.PropTypes.func }, getDefaultProps: function getDefaultProps() { return { bsClass: "panel-group" }; }, getInitialState: function getInitialState() { var defaultActiveKey = this.props.defaultActiveKey; return { activeKey: defaultActiveKey }; }, render: function render() { var classes = this.getBsClassSet(); return React.createElement( "div", _extends({}, this.props, { className: classNames(this.props.className, classes), onSelect: null }), ValidComponentChildren.map(this.props.children, this.renderPanel) ); }, renderPanel: function renderPanel(child, index) { var activeKey = this.props.activeKey != null ? this.props.activeKey : this.state.activeKey; var props = { bsStyle: child.props.bsStyle || this.props.bsStyle, key: child.key ? child.key : index, ref: child.ref }; if (this.props.accordion) { props.collapsable = true; props.expanded = child.props.eventKey === activeKey; props.onSelect = this.handleSelect; } return cloneElement(child, props); }, shouldComponentUpdate: function shouldComponentUpdate() { // Defer any updates to this component during the `onSelect` handler. return !this._isChanging; }, handleSelect: function handleSelect(e, key) { e.preventDefault(); if (this.props.onSelect) { this._isChanging = true; this.props.onSelect(key); this._isChanging = false; } if (this.state.activeKey === key) { key = null; } this.setState({ activeKey: key }); } }); module.exports = PanelGroup; /***/ }, /* 38 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var PageItem = React.createClass({ displayName: "PageItem", propTypes: { href: React.PropTypes.string, target: React.PropTypes.string, title: React.PropTypes.string, disabled: React.PropTypes.bool, previous: React.PropTypes.bool, next: React.PropTypes.bool, onSelect: React.PropTypes.func, eventKey: React.PropTypes.any }, getDefaultProps: function getDefaultProps() { return { href: "#" }; }, render: function render() { var classes = { disabled: this.props.disabled, previous: this.props.previous, next: this.props.next }; return React.createElement( "li", _extends({}, this.props, { className: classNames(this.props.className, classes) }), React.createElement( "a", { href: this.props.href, title: this.props.title, target: this.props.target, onClick: this.handleSelect, ref: "anchor" }, this.props.children ) ); }, handleSelect: function handleSelect(e) { if (this.props.onSelect) { e.preventDefault(); if (!this.props.disabled) { this.props.onSelect(this.props.eventKey, this.props.href, this.props.target); } } } }); module.exports = PageItem; /***/ }, /* 39 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(51); var React = _interopRequire(_react); var cloneElement = _react.cloneElement; var classNames = _interopRequire(__webpack_require__(60)); var ValidComponentChildren = _interopRequire(__webpack_require__(54)); var createChainedFunction = _interopRequire(__webpack_require__(55)); var Pager = React.createClass({ displayName: "Pager", propTypes: { onSelect: React.PropTypes.func }, render: function render() { return React.createElement( "ul", _extends({}, this.props, { className: classNames(this.props.className, "pager") }), ValidComponentChildren.map(this.props.children, this.renderPageItem) ); }, renderPageItem: function renderPageItem(child, index) { return cloneElement(child, { onSelect: createChainedFunction(child.props.onSelect, this.props.onSelect), key: child.key ? child.key : index }); } }); module.exports = Pager; /***/ }, /* 40 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _defineProperty = function (obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var Popover = React.createClass({ displayName: "Popover", mixins: [BootstrapMixin], propTypes: { placement: React.PropTypes.oneOf(["top", "right", "bottom", "left"]), positionLeft: React.PropTypes.number, positionTop: React.PropTypes.number, arrowOffsetLeft: React.PropTypes.number, arrowOffsetTop: React.PropTypes.number, title: React.PropTypes.node }, getDefaultProps: function getDefaultProps() { return { placement: "right" }; }, render: function render() { var _this = this; var classes = (function () { var _classes = { popover: true }; _defineProperty(_classes, _this.props.placement, true); _defineProperty(_classes, "in", _this.props.positionLeft != null || _this.props.positionTop != null); return _classes; })(); var style = { left: this.props.positionLeft, top: this.props.positionTop, display: "block" }; var arrowStyle = { left: this.props.arrowOffsetLeft, top: this.props.arrowOffsetTop }; return React.createElement( "div", _extends({}, this.props, { className: classNames(this.props.className, classes), style: style, title: null }), React.createElement("div", { className: "arrow", style: arrowStyle }), this.props.title ? this.renderTitle() : null, React.createElement( "div", { className: "popover-content" }, this.props.children ) ); }, renderTitle: function renderTitle() { return React.createElement( "h3", { className: "popover-title" }, this.props.title ); } }); module.exports = Popover; /***/ }, /* 41 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(51); var React = _interopRequire(_react); var cloneElement = _react.cloneElement; var Interpolate = _interopRequire(__webpack_require__(22)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var classNames = _interopRequire(__webpack_require__(60)); var ValidComponentChildren = _interopRequire(__webpack_require__(54)); var ProgressBar = React.createClass({ displayName: "ProgressBar", propTypes: { min: React.PropTypes.number, now: React.PropTypes.number, max: React.PropTypes.number, label: React.PropTypes.node, srOnly: React.PropTypes.bool, striped: React.PropTypes.bool, active: React.PropTypes.bool }, mixins: [BootstrapMixin], getDefaultProps: function getDefaultProps() { return { bsClass: "progress-bar", min: 0, max: 100 }; }, getPercentage: function getPercentage(now, min, max) { return Math.ceil((now - min) / (max - min) * 100); }, render: function render() { var classes = { progress: true }; if (this.props.active) { classes["progress-striped"] = true; classes.active = true; } else if (this.props.striped) { classes["progress-striped"] = true; } if (!ValidComponentChildren.hasValidComponent(this.props.children)) { if (!this.props.isChild) { return React.createElement( "div", _extends({}, this.props, { className: classNames(this.props.className, classes) }), this.renderProgressBar() ); } else { return this.renderProgressBar(); } } else { return React.createElement( "div", _extends({}, this.props, { className: classNames(this.props.className, classes) }), ValidComponentChildren.map(this.props.children, this.renderChildBar) ); } }, renderChildBar: function renderChildBar(child, index) { return cloneElement(child, { isChild: true, key: child.key ? child.key : index }); }, renderProgressBar: function renderProgressBar() { var percentage = this.getPercentage(this.props.now, this.props.min, this.props.max); var label = undefined; if (typeof this.props.label === "string") { label = this.renderLabel(percentage); } else if (this.props.label) { label = this.props.label; } if (this.props.srOnly) { label = this.renderScreenReaderOnlyLabel(label); } var classes = this.getBsClassSet(); return React.createElement( "div", _extends({}, this.props, { className: classNames(this.props.className, classes), role: "progressbar", style: { width: percentage + "%" }, "aria-valuenow": this.props.now, "aria-valuemin": this.props.min, "aria-valuemax": this.props.max }), label ); }, renderLabel: function renderLabel(percentage) { var InterpolateClass = this.props.interpolateClass || Interpolate; return React.createElement( InterpolateClass, { now: this.props.now, min: this.props.min, max: this.props.max, percent: percentage, bsStyle: this.props.bsStyle }, this.props.label ); }, renderScreenReaderOnlyLabel: function renderScreenReaderOnlyLabel(label) { return React.createElement( "span", { className: "sr-only" }, label ); } }); module.exports = ProgressBar; /***/ }, /* 42 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var Row = React.createClass({ displayName: "Row", propTypes: { componentClass: React.PropTypes.node.isRequired }, getDefaultProps: function getDefaultProps() { return { componentClass: "div" }; }, render: function render() { var ComponentClass = this.props.componentClass; return React.createElement( ComponentClass, _extends({}, this.props, { className: classNames(this.props.className, "row") }), this.props.children ); } }); module.exports = Row; /***/ }, /* 43 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; /* eslint react/prop-types: [1, {ignore: ["children", "className", "bsSize"]}]*/ /* BootstrapMixin contains `bsSize` type validation */ var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var DropdownStateMixin = _interopRequire(__webpack_require__(17)); var Button = _interopRequire(__webpack_require__(7)); var ButtonGroup = _interopRequire(__webpack_require__(8)); var DropdownMenu = _interopRequire(__webpack_require__(16)); var SplitButton = React.createClass({ displayName: "SplitButton", mixins: [BootstrapMixin, DropdownStateMixin], propTypes: { pullRight: React.PropTypes.bool, title: React.PropTypes.node, href: React.PropTypes.string, id: React.PropTypes.string, target: React.PropTypes.string, dropdownTitle: React.PropTypes.node, dropup: React.PropTypes.bool, onClick: React.PropTypes.func, onSelect: React.PropTypes.func, disabled: React.PropTypes.bool }, getDefaultProps: function getDefaultProps() { return { dropdownTitle: "Toggle dropdown" }; }, render: function render() { var groupClasses = { open: this.state.open, dropup: this.props.dropup }; var button = React.createElement( Button, _extends({}, this.props, { ref: "button", onClick: this.handleButtonClick, title: null, id: null }), this.props.title ); var dropdownButton = React.createElement( Button, _extends({}, this.props, { ref: "dropdownButton", className: classNames(this.props.className, "dropdown-toggle"), onClick: this.handleDropdownClick, title: null, href: null, target: null, id: null }), React.createElement( "span", { className: "sr-only" }, this.props.dropdownTitle ), React.createElement("span", { className: "caret" }), React.createElement( "span", { style: { letterSpacing: "-.3em" } }, " " ) ); return React.createElement( ButtonGroup, { bsSize: this.props.bsSize, className: classNames(groupClasses), id: this.props.id }, button, dropdownButton, React.createElement( DropdownMenu, { ref: "menu", onSelect: this.handleOptionSelect, "aria-labelledby": this.props.id, pullRight: this.props.pullRight }, this.props.children ) ); }, handleButtonClick: function handleButtonClick(e) { if (this.state.open) { this.setDropdownState(false); } if (this.props.onClick) { this.props.onClick(e, this.props.href, this.props.target); } }, handleDropdownClick: function handleDropdownClick(e) { e.preventDefault(); this.setDropdownState(!this.state.open); }, handleOptionSelect: function handleOptionSelect(key) { if (this.props.onSelect) { this.props.onSelect(key); } this.setDropdownState(false); } }); module.exports = SplitButton; /***/ }, /* 44 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(51); var React = _interopRequire(_react); var cloneElement = _react.cloneElement; var classNames = _interopRequire(__webpack_require__(60)); var ValidComponentChildren = _interopRequire(__webpack_require__(54)); var createChainedFunction = _interopRequire(__webpack_require__(55)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var SubNav = React.createClass({ displayName: "SubNav", mixins: [BootstrapMixin], propTypes: { onSelect: React.PropTypes.func, active: React.PropTypes.bool, activeHref: React.PropTypes.string, activeKey: React.PropTypes.any, disabled: React.PropTypes.bool, eventKey: React.PropTypes.any, href: React.PropTypes.string, title: React.PropTypes.string, text: React.PropTypes.node, target: React.PropTypes.string }, getDefaultProps: function getDefaultProps() { return { bsClass: "nav" }; }, handleClick: function handleClick(e) { if (this.props.onSelect) { e.preventDefault(); if (!this.props.disabled) { this.props.onSelect(this.props.eventKey, this.props.href, this.props.target); } } }, isActive: function isActive() { return this.isChildActive(this); }, isChildActive: function isChildActive(child) { var _this = this; if (child.props.active) { return true; } if (this.props.activeKey != null && this.props.activeKey === child.props.eventKey) { return true; } if (this.props.activeHref != null && this.props.activeHref === child.props.href) { return true; } if (child.props.children) { var _ret = (function () { var isActive = false; ValidComponentChildren.forEach(child.props.children, function (grandchild) { if (this.isChildActive(grandchild)) { isActive = true; } }, _this); return { v: isActive }; })(); if (typeof _ret === "object") { return _ret.v; } } return false; }, getChildActiveProp: function getChildActiveProp(child) { if (child.props.active) { return true; } if (this.props.activeKey != null) { if (child.props.eventKey === this.props.activeKey) { return true; } } if (this.props.activeHref != null) { if (child.props.href === this.props.activeHref) { return true; } } return child.props.active; }, render: function render() { var classes = { active: this.isActive(), disabled: this.props.disabled }; return React.createElement( "li", _extends({}, this.props, { className: classNames(this.props.className, classes) }), React.createElement( "a", { href: this.props.href, title: this.props.title, target: this.props.target, onClick: this.handleClick, ref: "anchor" }, this.props.text ), React.createElement( "ul", { className: "nav" }, ValidComponentChildren.map(this.props.children, this.renderNavItem) ) ); }, renderNavItem: function renderNavItem(child, index) { return cloneElement(child, { active: this.getChildActiveProp(child), onSelect: createChainedFunction(child.props.onSelect, this.props.onSelect), key: child.key ? child.key : index }); } }); module.exports = SubNav; /***/ }, /* 45 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var _react = __webpack_require__(51); var React = _interopRequire(_react); var cloneElement = _react.cloneElement; var BootstrapMixin = _interopRequire(__webpack_require__(5)); var ValidComponentChildren = _interopRequire(__webpack_require__(54)); var Nav = _interopRequire(__webpack_require__(29)); var NavItem = _interopRequire(__webpack_require__(31)); function getDefaultActiveKeyFromChildren(children) { var defaultActiveKey = undefined; ValidComponentChildren.forEach(children, function (child) { if (defaultActiveKey == null) { defaultActiveKey = child.props.eventKey; } }); return defaultActiveKey; } var TabbedArea = React.createClass({ displayName: "TabbedArea", mixins: [BootstrapMixin], propTypes: { activeKey: React.PropTypes.any, defaultActiveKey: React.PropTypes.any, bsStyle: React.PropTypes.oneOf(["tabs", "pills"]), animation: React.PropTypes.bool, id: React.PropTypes.string, onSelect: React.PropTypes.func }, getDefaultProps: function getDefaultProps() { return { bsStyle: "tabs", animation: true }; }, getInitialState: function getInitialState() { var defaultActiveKey = this.props.defaultActiveKey != null ? this.props.defaultActiveKey : getDefaultActiveKeyFromChildren(this.props.children); // TODO: In __DEV__ mode warn via `console.warn` if no `defaultActiveKey` has // been set by this point, invalid children or missing key properties are likely the cause. return { activeKey: defaultActiveKey, previousActiveKey: null }; }, componentWillReceiveProps: function componentWillReceiveProps(nextProps) { if (nextProps.activeKey != null && nextProps.activeKey !== this.props.activeKey) { this.setState({ previousActiveKey: this.props.activeKey }); } }, handlePaneAnimateOutEnd: function handlePaneAnimateOutEnd() { this.setState({ previousActiveKey: null }); }, render: function render() { var activeKey = this.props.activeKey != null ? this.props.activeKey : this.state.activeKey; function renderTabIfSet(child) { return child.props.tab != null ? this.renderTab(child) : null; } var nav = React.createElement( Nav, _extends({}, this.props, { activeKey: activeKey, onSelect: this.handleSelect, ref: "tabs" }), ValidComponentChildren.map(this.props.children, renderTabIfSet, this) ); return React.createElement( "div", null, nav, React.createElement( "div", { id: this.props.id, className: "tab-content", ref: "panes" }, ValidComponentChildren.map(this.props.children, this.renderPane) ) ); }, getActiveKey: function getActiveKey() { return this.props.activeKey != null ? this.props.activeKey : this.state.activeKey; }, renderPane: function renderPane(child, index) { var activeKey = this.getActiveKey(); return cloneElement(child, { active: child.props.eventKey === activeKey && (this.state.previousActiveKey == null || !this.props.animation), key: child.key ? child.key : index, animation: this.props.animation, onAnimateOutEnd: this.state.previousActiveKey != null && child.props.eventKey === this.state.previousActiveKey ? this.handlePaneAnimateOutEnd : null }); }, renderTab: function renderTab(child) { var key = child.props.eventKey; return React.createElement( NavItem, { ref: "tab" + key, eventKey: key }, child.props.tab ); }, shouldComponentUpdate: function shouldComponentUpdate() { // Defer any updates to this component during the `onSelect` handler. return !this._isChanging; }, handleSelect: function handleSelect(key) { if (this.props.onSelect) { this._isChanging = true; this.props.onSelect(key); this._isChanging = false; } else if (key !== this.getActiveKey()) { this.setState({ activeKey: key, previousActiveKey: this.getActiveKey() }); } } }); module.exports = TabbedArea; /***/ }, /* 46 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var Table = React.createClass({ displayName: "Table", propTypes: { striped: React.PropTypes.bool, bordered: React.PropTypes.bool, condensed: React.PropTypes.bool, hover: React.PropTypes.bool, responsive: React.PropTypes.bool }, render: function render() { var classes = { table: true, "table-striped": this.props.striped, "table-bordered": this.props.bordered, "table-condensed": this.props.condensed, "table-hover": this.props.hover }; var table = React.createElement( "table", _extends({}, this.props, { className: classNames(this.props.className, classes) }), this.props.children ); return this.props.responsive ? React.createElement( "div", { className: "table-responsive" }, table ) : table; } }); module.exports = Table; /***/ }, /* 47 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var TransitionEvents = _interopRequire(__webpack_require__(56)); var TabPane = React.createClass({ displayName: "TabPane", propTypes: { active: React.PropTypes.bool, animation: React.PropTypes.bool, onAnimateOutEnd: React.PropTypes.func }, getDefaultProps: function getDefaultProps() { return { animation: true }; }, getInitialState: function getInitialState() { return { animateIn: false, animateOut: false }; }, componentWillReceiveProps: function componentWillReceiveProps(nextProps) { if (this.props.animation) { if (!this.state.animateIn && nextProps.active && !this.props.active) { this.setState({ animateIn: true }); } else if (!this.state.animateOut && !nextProps.active && this.props.active) { this.setState({ animateOut: true }); } } }, componentDidUpdate: function componentDidUpdate() { if (this.state.animateIn) { setTimeout(this.startAnimateIn, 0); } if (this.state.animateOut) { TransitionEvents.addEndEventListener(React.findDOMNode(this), this.stopAnimateOut); } }, startAnimateIn: function startAnimateIn() { if (this.isMounted()) { this.setState({ animateIn: false }); } }, stopAnimateOut: function stopAnimateOut() { if (this.isMounted()) { this.setState({ animateOut: false }); if (this.props.onAnimateOutEnd) { this.props.onAnimateOutEnd(); } } }, render: function render() { var classes = { "tab-pane": true, fade: true, active: this.props.active || this.state.animateOut, "in": this.props.active && !this.state.animateIn }; return React.createElement( "div", _extends({}, this.props, { className: classNames(this.props.className, classes) }), this.props.children ); } }); module.exports = TabPane; /***/ }, /* 48 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _defineProperty = function (obj, key, value) { return Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var Tooltip = React.createClass({ displayName: "Tooltip", mixins: [BootstrapMixin], propTypes: { placement: React.PropTypes.oneOf(["top", "right", "bottom", "left"]), positionLeft: React.PropTypes.number, positionTop: React.PropTypes.number, arrowOffsetLeft: React.PropTypes.number, arrowOffsetTop: React.PropTypes.number }, getDefaultProps: function getDefaultProps() { return { placement: "right" }; }, render: function render() { var _this = this; var classes = (function () { var _classes = { tooltip: true }; _defineProperty(_classes, _this.props.placement, true); _defineProperty(_classes, "in", _this.props.positionLeft != null || _this.props.positionTop != null); return _classes; })(); var style = { left: this.props.positionLeft, top: this.props.positionTop }; var arrowStyle = { left: this.props.arrowOffsetLeft, top: this.props.arrowOffsetTop }; return React.createElement( "div", _extends({}, this.props, { className: classNames(this.props.className, classes), style: style }), React.createElement("div", { className: "tooltip-arrow", style: arrowStyle }), React.createElement( "div", { className: "tooltip-inner" }, this.props.children ) ); } }); module.exports = Tooltip; /***/ }, /* 49 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var BootstrapMixin = _interopRequire(__webpack_require__(5)); var Well = React.createClass({ displayName: "Well", mixins: [BootstrapMixin], getDefaultProps: function getDefaultProps() { return { bsClass: "well" }; }, render: function render() { var classes = this.getBsClassSet(); return React.createElement( "div", _extends({}, this.props, { className: classNames(this.props.className, classes) }), this.props.children ); } }); module.exports = Well; /***/ }, /* 50 */ /***/ function(module, exports, __webpack_require__) { "use strict"; module.exports = { CLASSES: { alert: "alert", button: "btn", "button-group": "btn-group", "button-toolbar": "btn-toolbar", column: "col", "input-group": "input-group", form: "form", glyphicon: "glyphicon", label: "label", "list-group-item": "list-group-item", panel: "panel", "panel-group": "panel-group", "progress-bar": "progress-bar", nav: "nav", navbar: "navbar", modal: "modal", row: "row", well: "well" }, STYLES: { "default": "default", primary: "primary", success: "success", info: "info", warning: "warning", danger: "danger", link: "link", inline: "inline", tabs: "tabs", pills: "pills" }, SIZES: { large: "lg", medium: "md", small: "sm", xsmall: "xs" }, GLYPHS: ["asterisk", "plus", "euro", "eur", "minus", "cloud", "envelope", "pencil", "glass", "music", "search", "heart", "star", "star-empty", "user", "film", "th-large", "th", "th-list", "ok", "remove", "zoom-in", "zoom-out", "off", "signal", "cog", "trash", "home", "file", "time", "road", "download-alt", "download", "upload", "inbox", "play-circle", "repeat", "refresh", "list-alt", "lock", "flag", "headphones", "volume-off", "volume-down", "volume-up", "qrcode", "barcode", "tag", "tags", "book", "bookmark", "print", "camera", "font", "bold", "italic", "text-height", "text-width", "align-left", "align-center", "align-right", "align-justify", "list", "indent-left", "indent-right", "facetime-video", "picture", "map-marker", "adjust", "tint", "edit", "share", "check", "move", "step-backward", "fast-backward", "backward", "play", "pause", "stop", "forward", "fast-forward", "step-forward", "eject", "chevron-left", "chevron-right", "plus-sign", "minus-sign", "remove-sign", "ok-sign", "question-sign", "info-sign", "screenshot", "remove-circle", "ok-circle", "ban-circle", "arrow-left", "arrow-right", "arrow-up", "arrow-down", "share-alt", "resize-full", "resize-small", "exclamation-sign", "gift", "leaf", "fire", "eye-open", "eye-close", "warning-sign", "plane", "calendar", "random", "comment", "magnet", "chevron-up", "chevron-down", "retweet", "shopping-cart", "folder-close", "folder-open", "resize-vertical", "resize-horizontal", "hdd", "bullhorn", "bell", "certificate", "thumbs-up", "thumbs-down", "hand-right", "hand-left", "hand-up", "hand-down", "circle-arrow-right", "circle-arrow-left", "circle-arrow-up", "circle-arrow-down", "globe", "wrench", "tasks", "filter", "briefcase", "fullscreen", "dashboard", "paperclip", "heart-empty", "link", "phone", "pushpin", "usd", "gbp", "sort", "sort-by-alphabet", "sort-by-alphabet-alt", "sort-by-order", "sort-by-order-alt", "sort-by-attributes", "sort-by-attributes-alt", "unchecked", "expand", "collapse-down", "collapse-up", "log-in", "flash", "log-out", "new-window", "record", "save", "open", "saved", "import", "export", "send", "floppy-disk", "floppy-saved", "floppy-remove", "floppy-save", "floppy-open", "credit-card", "transfer", "cutlery", "header", "compressed", "earphone", "phone-alt", "tower", "stats", "sd-video", "hd-video", "subtitles", "sound-stereo", "sound-dolby", "sound-5-1", "sound-6-1", "sound-7-1", "copyright-mark", "registration-mark", "cloud-download", "cloud-upload", "tree-conifer", "tree-deciduous", "cd", "save-file", "open-file", "level-up", "copy", "paste", "alert", "equalizer", "king", "queen", "pawn", "bishop", "knight", "baby-formula", "tent", "blackboard", "bed", "apple", "erase", "hourglass", "lamp", "duplicate", "piggy-bank", "scissors", "bitcoin", "yen", "ruble", "scale", "ice-lolly", "ice-lolly-tasted", "education", "option-horizontal", "option-vertical", "menu-hamburger", "modal-window", "oil", "grain", "sunglasses", "text-size", "text-color", "text-background", "object-align-top", "object-align-bottom", "object-align-horizontal", "object-align-left", "object-align-vertical", "object-align-right", "triangle-right", "triangle-left", "triangle-bottom", "triangle-top", "console", "superscript", "subscript", "menu-left", "menu-right", "menu-down", "menu-up"] }; /***/ }, /* 51 */ /***/ function(module, exports, __webpack_require__) { module.exports = __WEBPACK_EXTERNAL_MODULE_51__; /***/ }, /* 52 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var React = _interopRequire(__webpack_require__(51)); /** * Get elements owner document * * @param {ReactComponent|HTMLElement} componentOrElement * @returns {HTMLElement} */ function ownerDocument(componentOrElement) { var elem = React.findDOMNode(componentOrElement); return elem && elem.ownerDocument || document; } /** * Shortcut to compute element style * * @param {HTMLElement} elem * @returns {CssStyle} */ function getComputedStyles(elem) { return ownerDocument(elem).defaultView.getComputedStyle(elem, null); } /** * Get elements offset * * TODO: REMOVE JQUERY! * * @param {HTMLElement} DOMNode * @returns {{top: number, left: number}} */ function getOffset(DOMNode) { if (window.jQuery) { return window.jQuery(DOMNode).offset(); } var docElem = ownerDocument(DOMNode).documentElement; var box = { top: 0, left: 0 }; // If we don't have gBCR, just use 0,0 rather than error // BlackBerry 5, iOS 3 (original iPhone) if (typeof DOMNode.getBoundingClientRect !== "undefined") { box = DOMNode.getBoundingClientRect(); } return { top: box.top + window.pageYOffset - docElem.clientTop, left: box.left + window.pageXOffset - docElem.clientLeft }; } /** * Get elements position * * TODO: REMOVE JQUERY! * * @param {HTMLElement} elem * @param {HTMLElement?} offsetParent * @returns {{top: number, left: number}} */ function getPosition(elem, offsetParent) { if (window.jQuery) { return window.jQuery(elem).position(); } var offset = undefined, parentOffset = { top: 0, left: 0 }; // Fixed elements are offset from window (parentOffset = {top:0, left: 0}, because it is its only offset parent if (getComputedStyles(elem).position === "fixed") { // We assume that getBoundingClientRect is available when computed position is fixed offset = elem.getBoundingClientRect(); } else { if (!offsetParent) { // Get *real* offsetParent offsetParent = offsetParentFunc(elem); } // Get correct offsets offset = getOffset(elem); if (offsetParent.nodeName !== "HTML") { parentOffset = getOffset(offsetParent); } // Add offsetParent borders parentOffset.top += parseInt(getComputedStyles(offsetParent).borderTopWidth, 10); parentOffset.left += parseInt(getComputedStyles(offsetParent).borderLeftWidth, 10); } // Subtract parent offsets and element margins return { top: offset.top - parentOffset.top - parseInt(getComputedStyles(elem).marginTop, 10), left: offset.left - parentOffset.left - parseInt(getComputedStyles(elem).marginLeft, 10) }; } /** * Get parent element * * @param {HTMLElement?} elem * @returns {HTMLElement} */ function offsetParentFunc(elem) { var docElem = ownerDocument(elem).documentElement; var offsetParent = elem.offsetParent || docElem; while (offsetParent && (offsetParent.nodeName !== "HTML" && getComputedStyles(offsetParent).position === "static")) { offsetParent = offsetParent.offsetParent; } return offsetParent || docElem; } module.exports = { ownerDocument: ownerDocument, getComputedStyles: getComputedStyles, getOffset: getOffset, getPosition: getPosition, offsetParent: offsetParentFunc }; /***/ }, /* 53 */ /***/ function(module, exports, __webpack_require__) { /** * Copyright 2013-2014 Facebook, Inc. * * This file contains a modified version of: * https://github.com/facebook/react/blob/v0.12.0/src/vendor/stubs/EventListener.js * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. * * TODO: remove in favour of solution provided by: * https://github.com/facebook/react/issues/285 */ /** * Does not take into account specific nature of platform. */ "use strict"; var EventListener = { /** * Listen to DOM events during the bubble phase. * * @param {DOMEventTarget} target DOM element to register listener on. * @param {string} eventType Event type, e.g. 'click' or 'mouseover'. * @param {function} callback Callback function. * @return {object} Object with a `remove` method. */ listen: function listen(target, eventType, callback) { if (target.addEventListener) { target.addEventListener(eventType, callback, false); return { remove: function remove() { target.removeEventListener(eventType, callback, false); } }; } else if (target.attachEvent) { target.attachEvent("on" + eventType, callback); return { remove: function remove() { target.detachEvent("on" + eventType, callback); } }; } } }; module.exports = EventListener; /***/ }, /* 54 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var React = _interopRequire(__webpack_require__(51)); /** * Maps children that are typically specified as `props.children`, * but only iterates over children that are "valid components". * * The mapFunction provided index will be normalised to the components mapped, * so an invalid component would not increase the index. * * @param {?*} children Children tree container. * @param {function(*, int)} mapFunction. * @param {*} mapContext Context for mapFunction. * @return {object} Object containing the ordered map of results. */ function mapValidComponents(children, func, context) { var index = 0; return React.Children.map(children, function (child) { if (React.isValidElement(child)) { var lastIndex = index; index++; return func.call(context, child, lastIndex); } return child; }); } /** * Iterates through children that are typically specified as `props.children`, * but only iterates over children that are "valid components". * * The provided forEachFunc(child, index) will be called for each * leaf child with the index reflecting the position relative to "valid components". * * @param {?*} children Children tree container. * @param {function(*, int)} forEachFunc. * @param {*} forEachContext Context for forEachContext. */ function forEachValidComponents(children, func, context) { var index = 0; return React.Children.forEach(children, function (child) { if (React.isValidElement(child)) { func.call(context, child, index); index++; } }); } /** * Count the number of "valid components" in the Children container. * * @param {?*} children Children tree container. * @returns {number} */ function numberOfValidComponents(children) { var count = 0; React.Children.forEach(children, function (child) { if (React.isValidElement(child)) { count++; } }); return count; } /** * Determine if the Child container has one or more "valid components". * * @param {?*} children Children tree container. * @returns {boolean} */ function hasValidComponent(children) { var hasValid = false; React.Children.forEach(children, function (child) { if (!hasValid && React.isValidElement(child)) { hasValid = true; } }); return hasValid; } module.exports = { map: mapValidComponents, forEach: forEachValidComponents, numberOf: numberOfValidComponents, hasValidComponent: hasValidComponent }; /***/ }, /* 55 */ /***/ function(module, exports, __webpack_require__) { /** * Safe chained function * * Will only create a new function if needed, * otherwise will pass back existing functions or null. * * @param {function} one * @param {function} two * @returns {function|null} */ "use strict"; function createChainedFunction(one, two) { var hasOne = typeof one === "function"; var hasTwo = typeof two === "function"; if (!hasOne && !hasTwo) { return null; } if (!hasOne) { return two; } if (!hasTwo) { return one; } return function chainedFunction() { one.apply(this, arguments); two.apply(this, arguments); }; } module.exports = createChainedFunction; /***/ }, /* 56 */ /***/ function(module, exports, __webpack_require__) { /** * Copyright 2013-2014, Facebook, Inc. * All rights reserved. * * This file contains a modified version of: * https://github.com/facebook/react/blob/v0.12.0/src/addons/transitions/ReactTransitionEvents.js * * This source code is licensed under the BSD-style license found here: * https://github.com/facebook/react/blob/v0.12.0/LICENSE * An additional grant of patent rights can be found here: * https://github.com/facebook/react/blob/v0.12.0/PATENTS */ "use strict"; var canUseDOM = !!(typeof window !== "undefined" && window.document && window.document.createElement); /** * 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 (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 addEndEventListener(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 removeEndEventListener(node, eventListener) { if (endEvents.length === 0) { return; } endEvents.forEach(function (endEvent) { removeEventListener(node, endEvent, eventListener); }); } }; module.exports = ReactTransitionEvents; /***/ }, /* 57 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var _interopRequire = function (obj) { return obj && obj.__esModule ? obj["default"] : obj; }; var _createClass = (function () { function defineProperties(target, props) { for (var key in props) { var prop = props[key]; prop.configurable = true; if (prop.value) prop.writable = true; } Object.defineProperties(target, props); } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; })(); var _inherits = function (subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; }; var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }; var React = _interopRequire(__webpack_require__(51)); var classNames = _interopRequire(__webpack_require__(60)); var FormGroup = (function (_React$Component) { function FormGroup() { _classCallCheck(this, FormGroup); if (_React$Component != null) { _React$Component.apply(this, arguments); } } _inherits(FormGroup, _React$Component); _createClass(FormGroup, { render: { value: function render() { var classes = { "form-group": !this.props.standalone, "has-feedback": this.props.hasFeedback, "has-success": this.props.bsStyle === "success", "has-warning": this.props.bsStyle === "warning", "has-error": this.props.bsStyle === "error" }; return React.createElement( "div", { className: classNames(classes, this.props.groupClassName) }, this.props.children ); } } }); return FormGroup; })(React.Component); FormGroup.defaultProps = { standalone: false }; FormGroup.propTypes = { standalone: React.PropTypes.bool, hasFeedback: React.PropTypes.bool, bsStyle: React.PropTypes.oneOf(["success", "warning", "error"]), groupClassName: React.PropTypes.string }; module.exports = FormGroup; /***/ }, /* 58 */ /***/ function(module, exports, __webpack_require__) { /** * Copyright 2014, Facebook, Inc. * All rights reserved. * * This file contains an unmodified version of: * https://github.com/facebook/react/blob/v0.12.0/src/vendor/stubs/Object.assign.js * * This source code is licensed under the BSD-style license found here: * https://github.com/facebook/react/blob/v0.12.0/LICENSE * An additional grant of patent rights can be found here: * https://github.com/facebook/react/blob/v0.12.0/PATENTS */ // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.assign "use strict"; function assign(target, sources) { if (target == null) { throw new TypeError("Object.assign target cannot be null or undefined"); } var to = Object(target); var hasOwnProperty = Object.prototype.hasOwnProperty; for (var nextIndex = 1; nextIndex < arguments.length; nextIndex++) { var nextSource = arguments[nextIndex]; if (nextSource == null) { continue; } var from = Object(nextSource); // We don't currently support accessors nor proxies. Therefore this // copy cannot throw. If we ever supported this then we must handle // exceptions and side-effects. We don't support symbols so they won't // be transferred. for (var key in from) { if (hasOwnProperty.call(from, key)) { to[key] = from[key]; } } } return to; } module.exports = assign; /***/ }, /* 59 */ /***/ function(module, exports, __webpack_require__) { "use strict"; var ANONYMOUS = "<>"; var CustomPropTypes = { /** * Checks whether a prop provides a DOM element * * The element can be provided in two forms: * - Directly passed * - Or passed an object which has a `getDOMNode` method which will return the required DOM element * * @param props * @param propName * @param componentName * @returns {Error|undefined} */ mountable: createMountableChecker() }; /** * Create chain-able isRequired validator * * Largely copied directly from: * https://github.com/facebook/react/blob/0.11-stable/src/core/ReactPropTypes.js#L94 */ function createChainableTypeChecker(validate) { function checkType(isRequired, props, propName, componentName) { componentName = componentName || ANONYMOUS; if (props[propName] == null) { if (isRequired) { return new Error("Required prop `" + propName + "` was not specified in " + "`" + componentName + "`."); } } else { return validate(props, propName, componentName); } } var chainedCheckType = checkType.bind(null, false); chainedCheckType.isRequired = checkType.bind(null, true); return chainedCheckType; } function createMountableChecker() { function validate(props, propName, componentName) { if (typeof props[propName] !== "object" || typeof props[propName].render !== "function" && props[propName].nodeType !== 1) { return new Error("Invalid prop `" + propName + "` supplied to " + "`" + componentName + "`, expected a DOM element or an object that has a `render` method"); } } return createChainableTypeChecker(validate); } module.exports = CustomPropTypes; /***/ }, /* 60 */ /***/ function(module, exports, __webpack_require__) { function classNames() { var classes = ''; var arg; for (var i = 0; i < arguments.length; i++) { arg = arguments[i]; if (!arg) { continue; } if ('string' === typeof arg || 'number' === typeof arg) { classes += ' ' + arg; } else if (Object.prototype.toString.call(arg) === '[object Array]') { classes += ' ' + classNames.apply(null, arg); } else if ('object' === typeof arg) { for (var key in arg) { if (!arg.hasOwnProperty(key) || !arg[key]) { continue; } classes += ' ' + key; } } } return classes.substr(1); } // safely export classNames in case the script is included directly on a page if (typeof module !== 'undefined' && module.exports) { module.exports = classNames; } /***/ }, /* 61 */ /***/ function(module, exports, __webpack_require__) { /** * 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 = __webpack_require__(62); /** * 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; /***/ }, /* 62 */ /***/ function(module, exports, __webpack_require__) { /** * 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 ExecutionEnvironment */ /*jslint evil: true */ "use strict"; var canUseDOM = !!( (typeof window !== 'undefined' && window.document && window.document.createElement) ); /** * Simple, lightweight module assisting with the detection and context of * Worker. Helps avoid circular dependencies and allows code to reason about * whether or not they are in a Worker, even if they never include the main * `ReactWorker` dependency. */ var ExecutionEnvironment = { canUseDOM: canUseDOM, canUseWorkers: typeof Worker !== 'undefined', canUseEventListeners: canUseDOM && !!(window.addEventListener || window.attachEvent), canUseViewport: canUseDOM && !!window.screen, isInWorker: !canUseDOM // For now, this is true - might change in the future. }; module.exports = ExecutionEnvironment; /***/ } /******/ ]) }); ;