2015-05-17 19:08:10 +02:00

5962 lines
169 KiB
JavaScript
Executable File
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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