proxy-based Twister client written with react-js
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 

5962 lines
169 KiB

(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 = "<<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;
/***/ }
/******/ ])
});
;