Skip to content

Instantly share code, notes, and snippets.

@poldim
Created October 9, 2018 21:19
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save poldim/d03c56f7f7b4fab201666417a7c17b60 to your computer and use it in GitHub Desktop.
Save poldim/d03c56f7f7b4fab201666417a7c17b60 to your computer and use it in GitHub Desktop.
RFA
This file has been truncated, but you can view the full file.
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
'use strict';
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _LoginForm = require('./components/LoginForm');
var _LoginForm2 = _interopRequireDefault(_LoginForm);
var _AppContainer = require('./components/AppContainer');
var _AppContainer2 = _interopRequireDefault(_AppContainer);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
//custom classes
console.log("Application Started");
var sections = [];
var idx = 0;
_reactDom2.default.render(_react2.default.createElement(
'div',
null,
_react2.default.createElement(_AppContainer2.default, { className: 'container wifi-container' })
), document.getElementById('app'));
},{"./components/AppContainer":2,"./components/LoginForm":6,"react":321,"react-dom":273}],2:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _SelectMode = require('./SelectMode');
var _SelectMode2 = _interopRequireDefault(_SelectMode);
var _EnableDisable = require('./EnableDisable');
var _EnableDisable2 = _interopRequireDefault(_EnableDisable);
var _ClientMode = require('./ClientMode');
var _ClientMode2 = _interopRequireDefault(_ClientMode);
var _DisableWifi = require('./DisableWifi');
var _DisableWifi2 = _interopRequireDefault(_DisableWifi);
var _Requests = require('../functions/Requests');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(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) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
var DOMParser = require('xmldom').DOMParser;
var Modal = require('react-modal');
var customStyles = {
overlay: {
position: 'fixed',
top: 0,
left: 0,
right: 0,
bottom: 0,
backgroundColor: 'rgba(211,211,211,0.35)'
},
content: {
top: '50%',
left: '50%',
transform: 'translate(-50%, -50%)',
border: '1px solid #fffff',
right: 'auto',
bottom: 'auto',
marginRight: '-50%',
padding: '0',
width: '425px',
backgroundColor: 'rgb(255, 255, 255)',
//display : 'flex',
//flexDirection : 'column',
overflow: 'hidden'
}
};
var overlay = {
position: 'fixed',
top: 0,
left: 0,
right: 0,
bottom: 0,
backgroundColor: 'rgb(211,211,211)'
};
var AppContainer = function (_React$Component) {
_inherits(AppContainer, _React$Component);
function AppContainer(props) {
_classCallCheck(this, AppContainer);
var _this = _possibleConstructorReturn(this, (AppContainer.__proto__ || Object.getPrototypeOf(AppContainer)).call(this, props));
_this.successNetworkScan = _this.successNetworkScan.bind(_this);
_this.failureNetworkScan = _this.failureNetworkScan.bind(_this);
_this.renderDisableWifiDialogue = _this.renderDisableWifiDialogue.bind(_this);
_this.informationText = _this.informationText.bind(_this);
_this.infoConnectText = _this.infoConnectText.bind(_this);
_this.closeModal = _this.closeModal.bind(_this);
_this.state = {
clientMode: false,
disableMode: false,
successfulScan: false,
loggedIn: false,
networkArray: [],
user: [],
selected: false,
disableWifi: false,
modalIsOpen: false,
spinNow: false,
postConfigureInstruction: false,
noNetworksFound: false,
connectTextCustomer: false
};
return _this;
}
_createClass(AppContainer, [{
key: 'appClientMode',
value: function appClientMode() {
console.log("AppContainer: Client Mode");
this.setState({
clientMode: true,
scanWifi: true,
modalIsOpen: true
});
(0, _Requests.wifi_scan)(this.successNetworkScan.bind(this), this.failureNetworkScan.bind(this));
}
}, {
key: 'appDisableMode',
value: function appDisableMode() {
//ethernet mode is same as disable wifi mode
console.log("AppContainer: Ethernet Mode");
this.setState({
modalIsOpen: true,
disableMode: true
});
}
}, {
key: 'appEthernetModeConfirm',
value: function appEthernetModeConfirm() {
//to confirm if the customer wants to permanently disable the Wifi on the EAGLE
console.log("AppContainer: Are you sure you want to disable Wi-Fi Mode?");
//this.setState({spinNow: true});
(0, _Requests.disableWifi)(this.successDisableWifi.bind(this), this.failureDisableWifi.bind(this));
this.setState({ disableWifi: true });
}
}, {
key: 'successNetworkScan',
value: function successNetworkScan(networklist) {
console.log("AppContainer: successful scan list");
this.setState({ networkArray: networklist });
console.log(this.state.networkArray);
if (this.state.networkArray.length == 0) {
this.setState({ "noNetworksFound": true });
} else {
this.setState({ "successfulScan": true });
}
}
}, {
key: 'failureNetworkScan',
value: function failureNetworkScan(failure) {
console.log("Connection failed; trying again");
//this.appClientMode();
}
}, {
key: 'informationText',
value: function informationText() {
console.log("Time for information cutsomer");
this.setState({
postConfigureInstruction: true,
successfulScan: false,
clientMode: false
});
}
}, {
key: 'infoConnectText',
value: function infoConnectText() {
console.log("State: connectTextCustomer: True");
this.setState({
connectTextCustomer: true,
postConfigureInstruction: false,
successfulScan: false,
clientMode: false
});
}
}, {
key: 'successDisableWifi',
value: function successDisableWifi(status) {
console.log("AppContainer: wifi-disabled");
this.setState({ disableWifi: true });
}
}, {
key: 'failureDisableWifi',
value: function failureDisableWifi(status) {
console.log("Connection failed; trying again");
//this.appClientMode();
}
//modal testing
}, {
key: 'openModal',
value: function openModal() {
this.setState({ modalIsOpen: true });
}
}, {
key: 'closeModal',
value: function closeModal() {
this.setState({
modalIsOpen: false,
clientMode: false,
successfulScan: false,
disableMode: false
});
}
}, {
key: 'renderDisableWifiDialogue',
value: function renderDisableWifiDialogue() {
return _react2.default.createElement(
Modal,
{ isOpen: this.state.modalIsOpen, onRequestClose: this.closeModal, style: customStyles, contentLabel: 'Example Modal', overlayClassName: overlay },
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement(
'div',
{ className: 'col-xs-12 col-lg-12' },
_react2.default.createElement(
'b',
{ className: 'modal-header modal-header-text' },
'Check Wi-Fi Status'
),
_react2.default.createElement('br', null),
_react2.default.createElement('br', null),
_react2.default.createElement(_DisableWifi2.default, null),
_react2.default.createElement('br', null)
)
)
);
}
}, {
key: 'renderSpinAndWait',
value: function renderSpinAndWait() {
return _react2.default.createElement(
Modal,
{ isOpen: true, onRequestClose: this.closeModal, style: customStyles, contentLabel: 'Example Modal', overlayClassName: overlay },
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement(
'div',
{ className: 'col-xs-12 col-lg-12' },
_react2.default.createElement('div', { className: 'modal-header' })
),
_react2.default.createElement('br', null),
_react2.default.createElement('br', null),
_react2.default.createElement(
'div',
{ className: 'center' },
_react2.default.createElement('i', { className: 'fa fa-spinner fa-pulse fa-3x fa-fw' }),
_react2.default.createElement(
'h5',
null,
'Disabling Wi-Fi'
)
),
_react2.default.createElement(
'span',
{ className: 'sr-only' },
'Loading...'
),
_react2.default.createElement('br', null),
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement('div', { className: 'col-xs-12 col-lg-9 ' })
)
)
);
}
}, {
key: 'renderDisableWifiControl',
value: function renderDisableWifiControl() {
console.log("return modal now: ");
return _react2.default.createElement(
Modal,
{ isOpen: true, onRequestClose: this.closeModal, style: customStyles, contentLabel: 'Example Modal', overlayClassName: overlay },
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement(
'div',
{ className: 'col-xs-12 col-lg-12' },
_react2.default.createElement(
'b',
{ className: 'modal-header center modal-header-text' },
'Disable Wi-Fi'
),
_react2.default.createElement('hr', null),
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement(
'div',
{ className: 'col-xs-12 col-lg-10 offset-lg-1' },
_react2.default.createElement(
'div',
{ className: 'confirmation-text center' },
_react2.default.createElement(
'div',
null,
'Would you like to Disable'
),
_react2.default.createElement(
'div',
null,
' Wi-Fi radio on the EAGLE?'
)
),
_react2.default.createElement('br', null)
),
_react2.default.createElement(
'div',
{ className: 'center' },
_react2.default.createElement(
'button',
{ className: 'small-buttons', onClick: this.appEthernetModeConfirm.bind(this) },
_react2.default.createElement(
'b',
{ className: 'button-text' },
'Yes'
)
)
),
_react2.default.createElement('br', null),
_react2.default.createElement(
'div',
{ className: 'center' },
_react2.default.createElement(
'button',
{ className: 'small-buttons', onClick: this.closeModal.bind(this) },
_react2.default.createElement(
'b',
{ className: 'button-text' },
'No'
)
)
)
),
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement('br', null)
)
)
)
);
}
}, {
key: 'renderNoNetworks',
value: function renderNoNetworks() {
return _react2.default.createElement(
Modal,
{ isOpen: this.state.modalIsOpen, onRequestClose: this.closeModal, style: customStyles, contentLabel: 'Example Modal', overlayClassName: overlay },
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement(
'div',
{ className: 'col-xs-12 col-lg-12' },
_react2.default.createElement(
'b',
{ className: 'modal-header center modal-header-text' },
'Network List'
),
_react2.default.createElement('hr', null),
_react2.default.createElement(
'div',
{ className: 'center_text confirmation-text' },
_react2.default.createElement(
'b',
null,
'No Networks Founds'
),
_react2.default.createElement('br', null),
_react2.default.createElement('br', null),
_react2.default.createElement(
'div',
{
className: 'col-xs-12 col-lg-10 offset-lg-1 confirmation-text' },
'Please enable Wi-Fi on your device by pressing button 1 to scan the networks and try again'
)
),
_react2.default.createElement('br', null)
)
)
);
}
}, {
key: 'rendersuccessfulScan',
value: function rendersuccessfulScan() {
return _react2.default.createElement(
Modal,
{ isOpen: this.state.modalIsOpen, onRequestClose: this.closeModal, style: customStyles, contentLabel: 'Example Modal', overlayClassName: overlay },
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement(
'div',
{ className: 'col-xs-12 col-lg-12' },
_react2.default.createElement(
'b',
{ className: 'modal-header center modal-header-text' },
'Network List'
),
_react2.default.createElement('hr', null),
_react2.default.createElement(_ClientMode2.default, { networkArray: this.state.networkArray, informationText: this.informationText, instructionConnect: this.infoConnectText }),
_react2.default.createElement('br', null),
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement(
'div',
{ className: 'center' },
_react2.default.createElement(
'button',
{ className: 'small-buttons button-text', onClick: this.closeModal },
_react2.default.createElement(
'b',
null,
'Cancel'
)
)
),
_react2.default.createElement('br', null)
)
)
)
);
}
}, {
key: 'renderpostConfigure',
value: function renderpostConfigure() {
console.log("post configure");
return _react2.default.createElement(
Modal,
{ isOpen: this.state.modalIsOpen, onRequestClose: this.closeModal, style: customStyles, contentLabel: 'Example Modal', overlayClassName: overlay },
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement(
'div',
{ className: 'col-xs-12 col-lg-12' },
_react2.default.createElement(
'b',
{ className: 'modal-header center modal-header-text' },
' Network Information '
),
_react2.default.createElement('hr', null),
_react2.default.createElement(_ClientMode2.default, { networkArray: this.state.networkArray, informationText: this.informationText, instructionConnect: this.infoConnectText }),
_react2.default.createElement('br', null)
)
)
);
}
}, {
key: 'renderScanningSoWait',
value: function renderScanningSoWait() {
return _react2.default.createElement(
Modal,
{ isOpen: this.state.modalIsOpen, onRequestClose: this.closeModal, style: customStyles, contentLabel: 'Example Modal', overlayClassName: overlay },
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement('div', { className: 'modal-header' })
),
_react2.default.createElement('br', null),
_react2.default.createElement('br', null),
_react2.default.createElement(
'div',
{ style: { "text-align": "center" } },
_react2.default.createElement('i', { className: 'fa fa-spinner fa-pulse fa-3x fa-fw' }),
_react2.default.createElement(
'h5',
null,
'Loading networks'
)
),
_react2.default.createElement(
'span',
{ className: 'sr-only' },
'Loading...'
),
_react2.default.createElement('br', null),
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement('div', { className: 'col-xs-12 col-lg-9 ' })
)
);
}
}, {
key: 'renderConnectInformation',
value: function renderConnectInformation() {
return _react2.default.createElement(
Modal,
{ isOpen: this.state.modalIsOpen, onRequestClose: this.closeModal, style: customStyles, contentLabel: 'Example Modal', overlayClassName: overlay },
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement(
'div',
{ className: 'col-xs-12 col-lg-12' },
_react2.default.createElement(
'b',
{ className: 'modal-header modal-header-text' },
'Check Wi-Fi Status'
),
_react2.default.createElement('br', null),
_react2.default.createElement('br', null),
_react2.default.createElement(_ClientMode2.default, { networkArray: this.state.networkArray, informationText: this.informationText, instructionConnect: this.infoConnectText }),
_react2.default.createElement('br', null)
)
)
);
}
}, {
key: 'render',
value: function render() {
var self = this;
return _react2.default.createElement(
'div',
null,
this.state.disableWifi ? this.renderDisableWifiDialogue() : null,
this.state.disableMode ? this.renderDisableWifiControl() : null,
this.state.noNetworksFound ? this.renderNoNetworks() : null,
this.state.connectTextCustomer ? this.renderConnectInformation() : null,
this.state.postConfigureInstruction ? this.renderpostConfigure() : null,
this.state.successfulScan ? this.rendersuccessfulScan() : null,
this.state.clientMode ? this.renderScanningSoWait() : null,
_react2.default.createElement(_SelectMode2.default, { appClientMode: this.appClientMode.bind(this), appDisableMode: this.appDisableMode.bind(this) })
);
}
}]);
return AppContainer;
}(_react2.default.Component);
exports.default = AppContainer;
},{"../functions/Requests":8,"./ClientMode":3,"./DisableWifi":4,"./EnableDisable":5,"./SelectMode":7,"react":321,"react-dom":273,"react-modal":302,"xmldom":331}],3:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _AppContainer = require('./AppContainer');
var _AppContainer2 = _interopRequireDefault(_AppContainer);
var _Requests = require('../functions/Requests');
var _reactCellblock = require('react-cellblock');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(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) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
//requests needed
var ClientMode = function (_React$Component) {
_inherits(ClientMode, _React$Component);
function ClientMode(props) {
_classCallCheck(this, ClientMode);
var _this = _possibleConstructorReturn(this, (ClientMode.__proto__ || Object.getPrototypeOf(ClientMode)).call(this, props));
_this.state = {
passwordRequired: false,
explainEagleBehaviour: false,
displayNetworks: false,
networkList: [],
scanWifi: false,
password: [],
text: false,
defaultvalue: false,
ssid: ""
};
_this.handleKeyPress = _this.handleKeyPress.bind(_this);
_this.handleChange = _this.handleChange.bind(_this);
return _this;
}
_createClass(ClientMode, [{
key: 'handleKeyPress',
value: function handleKeyPress(event) {
if (event.key == 'Enter') {
this.setState({
explainEagleBehaviour: true,
passwordRequired: false
});
(0, _Requests.connectWifi)(this.state.ssid, this.state.password, this.scanSuccess.bind(this), this.loginFailure.bind(this));
this.props.infoConnectText();
}
}
}, {
key: 'handleChange',
value: function handleChange(event) {
var target = event.target;
var value = target.type === 'checkbox' ? target.checked : target.value;
var name = target.name;
this.setState(_defineProperty({}, name, value));
}
}, {
key: 'scanWifi',
value: function scanWifi() {
this.setState({ scanWifi: true });
getCurrentUser(text, password, this.scanSuccess.bind(this), this.loginFailure.bind(this));
}
}, {
key: 'loginFailure',
value: function loginFailure(failure) {
this.setState({ scanWifi: false });
}
}, {
key: 'connectionCredentials',
value: function connectionCredentials(networkSsid) {
console.log(networkSsid);
this.state.ssid = networkSsid;
this.setState({ ssid: networkSsid });
console.log("Client choose:");
console.log(this.state.ssid);
this.setState({ "defaultvalue": true });
}
}, {
key: 'connectToWifi',
value: function connectToWifi() {
this.setState({
explainEagleBehaviour: true,
passwordRequired: false
});
console.log("Connecting to Wifi connection; try to connect is now true");
(0, _Requests.connectWifi)(this.state.ssid, this.state.password, this.scanSuccess.bind(this), this.loginFailure.bind(this));
this.props.infoConnectText();
}
}, {
key: 'scanSuccess',
value: function scanSuccess(networkList) {
console.log("ClientMode: Wi-Fi configure complete");
this.props.infoConnectText();
}
}, {
key: 'renderLightBehaviour',
value: function renderLightBehaviour() {
return _react2.default.createElement(
'div',
null,
_react2.default.createElement(
'div',
{ className: 'center' },
_react2.default.createElement(
'h5',
null,
'The device is attempting to join network "',
this.state.ssid,
'".'
),
_react2.default.createElement(
'div',
null,
' You are now disconnected from Wi-Fi network of the device.'
),
_react2.default.createElement('br', null),
_react2.default.createElement(
'div',
{ className: 'center bottom-padding' },
'Please wait 1 minute, then confirm the status of the connectivity by checking the Wi-Fi light (middle LED).'
),
_react2.default.createElement(
'div',
null,
_react2.default.createElement(
'ui',
null,
_react2.default.createElement(
'li',
null,
_react2.default.createElement(
'b',
null,
'Solid Light indicates that device successfully joined with Wi-Fi network'
)
)
)
),
_react2.default.createElement(
'div',
null,
_react2.default.createElement(
'ui',
null,
_react2.default.createElement(
'li',
null,
_react2.default.createElement(
'b',
null,
'Fast Blinking Light indicates that could not join the network'
)
)
),
_react2.default.createElement(
'div',
{ className: 'center' },
'If device failed to connect, then please confirm the password of the network and press button 1 for 5 seconds and let go to reset. You will need to reconnect to the Wi-Fi of your device to try again.'
)
)
)
);
}
}, {
key: 'renderPasswordRequired',
value: function renderPasswordRequired() {
return _react2.default.createElement(
'div',
null,
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement(
'div',
{ className: 'col-xs-12 col-lg-10 offset-lg-1' },
_react2.default.createElement(
'div',
{ className: 'icon-style' },
_react2.default.createElement('i', { className: 'fa fa-wifi fa-5x', 'aria-hidden': 'true' }),
_react2.default.createElement(
'div',
null,
_react2.default.createElement(
'b',
null,
'The Wi-Fi network "',
this.state.ssid,
'"'
)
),
_react2.default.createElement(
'div',
null,
_react2.default.createElement(
'b',
null,
'requires a password.'
)
)
),
_react2.default.createElement('br', null),
_react2.default.createElement(
'div',
{ style: { "text-align": "center" } },
_react2.default.createElement(
'div',
null,
' Enter Password: '
)
),
_react2.default.createElement(
'form',
{ className: 'form-inline', style: { "text-align": "center" } },
_react2.default.createElement(
'div',
null,
'\xA0'
),
_react2.default.createElement('input', {
className: 'password-border',
type: 'password',
id: 'inlineFormInput',
placeholder: 'Password',
value: this.state.password,
name: 'password',
onChange: this.handleChange,
onKeyPress: this.handleKeyPress
}),
_react2.default.createElement(
'div',
null,
'\xA0 \xA0'
)
)
),
_react2.default.createElement(
'div',
{ className: 'center' },
_react2.default.createElement(
'button',
{ className: 'small-buttons button-text', onClick: this.connectToWifi.bind(this) },
_react2.default.createElement(
'b',
null,
'Join'
)
)
)
)
);
}
}, {
key: 'renderNetworkList',
value: function renderNetworkList(network) {
var _this2 = this;
return _react2.default.createElement(
'div',
null,
_react2.default.createElement(
'div',
{ className: 'center_text' },
_react2.default.createElement(
'b',
null,
'Select the network you would like to'
)
),
_react2.default.createElement(
'div',
{ className: 'center_text' },
_react2.default.createElement(
'b',
null,
'connect the gateway to:'
)
),
_react2.default.createElement(
'div',
{ className: 'container' },
_react2.default.createElement(
'div',
{ className: 'col-xs-12 col-lg-8 offset-lg-2' },
_react2.default.createElement(
'div',
{ className: 'wifi-network-container' },
_react2.default.createElement(
'div',
{ className: 'list-group list-cust', onClick: function onClick() {
return _this2.setState({ passwordRequired: true });
} },
network
)
)
)
)
);
}
}, {
key: 'render',
value: function render() {
var self = this;
console.log(this.state.explainEagleBehaviour);
console.log(this.state.passwordRequired);
console.log(this.state.explainEagleBehaviour && this.state.passwordRequired);
var network = self.props.networkArray.map(function (network, i) {
/*self.state.ssid = network.ssid;*/
var networkSsid = network.ssid;
return _react2.default.createElement(
'button',
{ type: 'button', className: 'btn btn-default btn-block', 'data-toggle': 'modal', 'data-target': '#myModal', key: i, value: networkSsid, onClick: self.connectionCredentials.bind(self, networkSsid), style: { "text-align": "left" } },
_react2.default.createElement('i', { className: 'fa fa-wifi', 'aria-hidden': 'true' }),
'\xA0',
networkSsid
);
});
return _react2.default.createElement(
'div',
null,
this.state.explainEagleBehaviour ? this.renderLightBehaviour() : null,
this.state.passwordRequired ? this.renderPasswordRequired() : null,
this.state.explainEagleBehaviour == false && this.state.passwordRequired == false ? this.renderNetworkList(network) : null
);
}
}]);
return ClientMode;
}(_react2.default.Component);
exports.default = ClientMode;
},{"../functions/Requests":8,"./AppContainer":2,"react":321,"react-cellblock":263,"react-dom":273}],4:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _LoginForm = require('./LoginForm');
var _LoginForm2 = _interopRequireDefault(_LoginForm);
var _AppContainer = require('./AppContainer');
var _AppContainer2 = _interopRequireDefault(_AppContainer);
var _Requests = require('../functions/Requests');
var _reactCellblock = require('react-cellblock');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(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) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
//requests needed
var DisableWifiAlert = function (_React$Component) {
_inherits(DisableWifiAlert, _React$Component);
function DisableWifiAlert() {
_classCallCheck(this, DisableWifiAlert);
return _possibleConstructorReturn(this, (DisableWifiAlert.__proto__ || Object.getPrototypeOf(DisableWifiAlert)).apply(this, arguments));
}
_createClass(DisableWifiAlert, [{
key: 'render',
value: function render() {
var visibleElement;
var self = this;
console.log("DisableWifi Visible now");
/*if(this.state.disable_wifi== true){*/
visibleElement = _react2.default.createElement(
'div',
null,
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement(
'div',
{ className: 'col-xs-12 col-lg-12' },
_react2.default.createElement(
'div',
{ className: 'center confirmation-text' },
'Wi-Fi is now successfully disabled'
),
_react2.default.createElement('br', null),
_react2.default.createElement('br', null),
_react2.default.createElement(
'div',
{ className: 'center confirmation-text' },
'This action can be confirmed by checking if the 3rd LED on the EAGLE turns off within 1 minute after sending this command',
_react2.default.createElement('br', null)
)
)
)
);
return visibleElement;
}
}]);
return DisableWifiAlert;
}(_react2.default.Component);
exports.default = DisableWifiAlert;
},{"../functions/Requests":8,"./AppContainer":2,"./LoginForm":6,"react":321,"react-cellblock":263,"react-dom":273}],5:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _AppContainer = require('./AppContainer');
var _AppContainer2 = _interopRequireDefault(_AppContainer);
var _Requests = require('../functions/Requests');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(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) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } //Not in use
//requests needed
var EnableDisable = function (_React$Component) {
_inherits(EnableDisable, _React$Component);
function EnableDisable(props) {
_classCallCheck(this, EnableDisable);
var _this = _possibleConstructorReturn(this, (EnableDisable.__proto__ || Object.getPrototypeOf(EnableDisable)).call(this, props));
_this.state = {};
return _this;
}
_createClass(EnableDisable, [{
key: 'settings',
value: function settings() {
console.log("selected");
this.props.selected();
}
}, {
key: 'render',
value: function render() {
var visibleElement;
visibleElement = _react2.default.createElement(
'form',
{ className: 'form-signin' },
_react2.default.createElement(
'h2',
{ className: 'form-signin-heading text-muted' },
_react2.default.createElement(
'div',
{ className: 'titles' },
'Wifi Configuration'
)
),
_react2.default.createElement(
'button',
{ className: 'btn btn-lg btn-primary btn-block', type: 'submit', onClick: this.settings.bind(this) },
'Change Wifi config mode'
),
_react2.default.createElement(
'button',
{ className: 'btn btn-lg btn-primary btn-block', type: 'submit' },
' Disable Wifi'
)
);
return visibleElement;
}
}]);
return EnableDisable;
}(_react2.default.Component);
exports.default = EnableDisable;
},{"../functions/Requests":8,"./AppContainer":2,"react":321,"react-dom":273}],6:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _AppContainer = require('./AppContainer');
var _AppContainer2 = _interopRequireDefault(_AppContainer);
var _EnableDisable = require('./EnableDisable');
var _EnableDisable2 = _interopRequireDefault(_EnableDisable);
var _DisableWifi = require('./DisableWifi');
var _DisableWifi2 = _interopRequireDefault(_DisableWifi);
var _reactCellblock = require('react-cellblock');
var _Requests = require('../functions/Requests');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(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) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
//import DeviceRow from './DeviceRow';
//requests needed
var EagleInternetModes = function (_React$Component) {
_inherits(EagleInternetModes, _React$Component);
function EagleInternetModes(props) {
_classCallCheck(this, EagleInternetModes);
var _this = _possibleConstructorReturn(this, (EagleInternetModes.__proto__ || Object.getPrototypeOf(EagleInternetModes)).call(this, props));
_this.state = {};
console.log("Constructing Login Form");
return _this;
}
_createClass(EagleInternetModes, [{
key: 'clientMode',
value: function clientMode() {
console.log("LoginForm: clientMode pressed");
this.props.clientMode();
}
}, {
key: 'disableWifi',
value: function disableWifi() {
this.props.disableWifi();
(0, _Requests.disableWifi)(this.loginSuccess.bind(this), this.loginFailure.bind(this));
console.log("disabled Wifi");
}
}, {
key: 'loginSuccess',
value: function loginSuccess(networkList) {
console.log("LoginForm: Connection success");
}
}, {
key: 'loginFailure',
value: function loginFailure(failure) {
console.log("Connection failed");
}
}, {
key: 'render',
value: function render() {
var eagleModes = _react2.default.createElement(
'div',
{ className: 'wifi-container' },
_react2.default.createElement('div', { className: 'row' }),
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement(
'div',
{ className: 'col-xs-12 col-lg-4 ' },
_react2.default.createElement('h1', null)
),
_react2.default.createElement(
'div',
{ className: 'col-xs-12 col-lg-4 col-lg-offset-3 text-center' },
_react2.default.createElement(
'h1',
null,
'Wi-Fi Configuration'
),
_react2.default.createElement('br', null),
_react2.default.createElement('br', null)
),
_react2.default.createElement('div', { className: 'col-xs-12 col-lg-4 ' })
),
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement('div', { className: 'col-xs-12 col-lg-2 ' }),
_react2.default.createElement(
'div',
{ className: 'form-inline col-xs-12 col-lg-8 col-lg-offset-3 text-center' },
_react2.default.createElement('br', null),
_react2.default.createElement(
'button',
{ type: 'submit', className: 'btn btn-primary btn-lg select-wifi-button' },
'Connect Internet using Wi-Fi'
),
_react2.default.createElement('br', null),
_react2.default.createElement(
'button',
{ type: 'submit', className: 'btn btn-primary btn-lg select-wifi-button' },
'Connect Internet using Ethernet Cable'
),
_react2.default.createElement('br', null),
_react2.default.createElement(
'button',
{ type: 'submit', className: 'btn btn-primary btn-lg select-wifi-button' },
'Connect Internet using Wi-Fi and Ethernet Cable'
)
),
_react2.default.createElement('div', { className: 'col-xs-12 col-lg-2 ' })
)
);
return eagleModes;
}
}]);
return EagleInternetModes;
}(_react2.default.Component);
exports.default = EagleInternetModes;
},{"../functions/Requests":8,"./AppContainer":2,"./DisableWifi":4,"./EnableDisable":5,"react":321,"react-cellblock":263,"react-dom":273}],7:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _AppContainer = require('./AppContainer');
var _AppContainer2 = _interopRequireDefault(_AppContainer);
var _EnableDisable = require('./EnableDisable');
var _EnableDisable2 = _interopRequireDefault(_EnableDisable);
var _DisableWifi = require('./DisableWifi');
var _DisableWifi2 = _interopRequireDefault(_DisableWifi);
var _reactBootstrap = require('react-bootstrap');
var _Requests = require('../functions/Requests');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(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) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
//requests needed
var clientMode = _react2.default.createElement(
_reactBootstrap.Popover,
{ id: 'popover-positioned-scrolling-left' },
_react2.default.createElement(
'center',
null,
_react2.default.createElement(
'strong',
null,
'What will "Setup Wi-Fi" do?'
)
),
'This will connect to your router\'s Wi-Fi network.'
);
var disableMode = _react2.default.createElement(
_reactBootstrap.Popover,
{ id: 'popover-positioned-scrolling-left' },
_react2.default.createElement(
'center',
null,
_react2.default.createElement(
'strong',
null,
'What will "Disable Wi-Fi"" do?'
)
),
'This turns off the Wi-Fi radio. This mode can be used when the Ethernet cable is plugged in.'
);
var SelectMode = function (_React$Component) {
_inherits(SelectMode, _React$Component);
function SelectMode(props) {
_classCallCheck(this, SelectMode);
var _this = _possibleConstructorReturn(this, (SelectMode.__proto__ || Object.getPrototypeOf(SelectMode)).call(this, props));
_this.state = {};
console.log("Constructing Login Form");
return _this;
}
_createClass(SelectMode, [{
key: 'clientMode',
value: function clientMode() {
console.log("SelectMode: clientMode pressed");
this.props.appClientMode();
}
}, {
key: 'diableMode',
value: function diableMode() {
console.log("SelectMode: Disable Mode");
this.props.appDisableMode();
}
}, {
key: 'render',
value: function render() {
var eagleModes = _react2.default.createElement(
'div',
{ className: 'wifi-container' },
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement(
'div',
{ className: 'col-xs-12 col-lg-4 offset-lg-4 text-center wifi-title' },
_react2.default.createElement(
'h1',
null,
'Wi-Fi Configuration'
)
)
),
_react2.default.createElement(
'div',
{ className: 'row' },
_react2.default.createElement(
'div',
{ className: 'col-xs-12 col-lg-4 offset-lg-4 center' },
_react2.default.createElement('br', null),
_react2.default.createElement(
'div',
null,
_react2.default.createElement(
'a',
{ className: 'btn btn-lg main-wifi-button', onClick: this.clientMode.bind(this) },
'Setup Wi-Fi \xA0',
_react2.default.createElement(
'span',
{ style: { "text-align": "right" } },
_react2.default.createElement(
_reactBootstrap.OverlayTrigger,
{ placement: 'right', overlay: clientMode },
_react2.default.createElement('i', { className: 'fa fa-info-circle', 'aria-hidden': 'true' })
)
)
)
),
_react2.default.createElement(
'div',
null,
_react2.default.createElement(
'a',
{ className: 'btn btn-lg main-wifi-button', onClick: this.diableMode.bind(this) },
'Disable Wi-Fi \xA0',
_react2.default.createElement(
'span',
{ style: { "text-align": "right" } },
_react2.default.createElement(
_reactBootstrap.OverlayTrigger,
{ placement: 'right', overlay: disableMode },
_react2.default.createElement('i', { className: 'fa fa-info-circle', 'aria-hidden': 'true' })
)
)
)
)
)
)
);
return eagleModes;
}
}]);
return SelectMode;
}(_react2.default.Component);
exports.default = SelectMode;
},{"../functions/Requests":8,"./AppContainer":2,"./DisableWifi":4,"./EnableDisable":5,"react":321,"react-bootstrap":249,"react-dom":273}],8:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
var makeBasicAuth = function makeBasicAuth(user, password) {
var tok = credentials;
var hash = window.btoa(tok);
return "Basic " + hash;
};
var wifi_scan = function wifi_scan(success, failure) {
var commandObj = "<Command><Name>wifi_scan</Name></Command>";
console.log(commandObj);
var url = "/cgi-bin/post_manager";
var self = this;
var xhr = new XMLHttpRequest();
xhr.open('POST', url);
xhr.setRequestHeader("Access-Control-Allow-Origin", 'http://homebase.rainforestautomation.com');
xhr.setRequestHeader('Content-Type', 'application/xml');
xhr.setRequestHeader('Accept', 'application/xml');
xhr.withCredentials = false;
xhr.onload = function () {
if (xhr.status === 200) {
var parser = new DOMParser();
var networkList = new Array();
var doc = parser.parseFromString(xhr.responseText, "text/xml").documentElement;
//var listNode = doc.getElementsByTagName("WifiScan")
//console.log(listNode)
var list = doc.getElementsByTagName("Network");
for (var i = 0; i < list.length; i++) {
var network = new Object();
var emElement = list.item(i);
network.address = emElement.getElementsByTagName("Address")[0].firstChild.data;
network.ssid = emElement.getElementsByTagName("SSID")[0].firstChild.data;
network.mode = emElement.getElementsByTagName("Mode")[0].firstChild.data;
network.channel = emElement.getElementsByTagName("Channel")[0].firstChild.data;
network.encryption = emElement.getElementsByTagName("Encryption")[0].firstChild.data;
networkList.push(network);
}
console.log("This is the networklist parsed into array");
console.log(networkList);
if (networkList.length == 0) {
console.log("error recieved while trying to get length");
}
success(networkList);
} else {
console.log("Requests: Login Failed");
failure(xhr.status);
console.log(xhr.status);
}
};
xhr.onerror = function () {
console.log("Requests: Login Failed");
failure(xhr.status);
};
xhr.send(commandObj);
};
var connectWifi = function connectWifi(wifiSsid, wifiPassword, success, failure) {
console.log(wifiSsid);
console.log(wifiPassword);
var commandObj = "<Command><Name>wifi_configure</Name><Enabled>Y</Enabled><Type>client</Type><SSID>" + wifiSsid + "</SSID><Key>" + wifiPassword + "</Key><Encryption>psk2</Encryption></Command>";
console.log("Post to configure wifi");
console.log(commandObj);
var url = "/cgi-bin/post_manager";
var self = this;
var xhr = new XMLHttpRequest();
xhr.open('POST', url);
xhr.setRequestHeader("Access-Control-Allow-Origin", 'http://homebase.rainforestautomation.com');
xhr.setRequestHeader('Content-Type', 'application/xml');
xhr.setRequestHeader('Accept', 'application/xml');
xhr.withCredentials = false;
xhr.onload = function () {
if (xhr.status === 200) {
console.log("Requests: Wi-Fi Configuration complete");
success(xhr.responseText);
console.log(xhr.responseText);
} else {
console.log("Requests: Login Failed");
failure(xhr.status);
console.log(xhr.status);
}
};
xhr.onerror = function () {
console.log("Requests: Login Failed");
failure(xhr.status);
};
console.log("request sent");
xhr.send(commandObj);
};
var disableWifi = function disableWifi(success, failure) {
var commandObj = "<Command><Name>wifi_configure</Name><Enabled>N</Enabled></Command>";
console.log("Post to diable wifi");
console.log(commandObj);
var url = "/cgi-bin/post_manager";
var self = this;
var xhr = new XMLHttpRequest();
xhr.open('POST', url);
xhr.setRequestHeader("Access-Control-Allow-Origin", 'http://homebase.rainforestautomation.com');
xhr.setRequestHeader('Content-Type', 'application/xml');
xhr.setRequestHeader('Accept', 'application/xml');
xhr.withCredentials = false;
xhr.onload = function () {
if (xhr.status === 200) {
//let jsonData = JSON.parse(xhr.responseText);
success(xhr.responseText);
console.log(xhr.responseText);
} else {
console.log("Requests: Login Failed");
failure(xhr.status);
console.log(xhr.status);
}
};
xhr.onerror = function () {
console.log("Requests: Login Failed");
failure(xhr.status);
};
console.log("request sent");
xhr.send(commandObj);
};
var wifi_status = function wifi_status(success, failure) {
var commandObj = "<Command><Name>wifi_status</Name></Command>";
console.log(commandObj);
var url = "/cgi-bin/post_manager";
var self = this;
var xhr = new XMLHttpRequest();
xhr.open('POST', url);
xhr.setRequestHeader('Content-Type', 'application/xml');
xhr.setRequestHeader('Accept', 'application/xml');
xhr.withCredentials = false;
xhr.onload = function () {
if (xhr.status === 200) {
var parser = new DOMParser();
var wifiStatusList = new Array();
var doc = parser.parseFromString(xhr.responseText, "text/xml").documentElement;
var networkStatus = new Object();
var emElement = list.item(i);
networkStatus.enable = emElement.getElementsByTagName("Address")[0].firstChild.data;
networkStatus.type = emElement.getElementsByTagName("SSID")[0].firstChild.data;
networkStatus.ssid = emElement.getElementsByTagName("Mode")[0].firstChild.data;
networkStatus.channel = emElement.getElementsByTagName("Channel")[0].firstChild.data;
wifiStatusList.push(networkStatus);
console.log("This is the wifiStatusList parsed into array");
console.log(wifiStatusList);
if (wifiStatusList.length == 0) {
console.log("error recieved while trying to get length");
}
success(wifiStatusList);
} else {
console.log("Requests: Login Failed");
failure(xhr.status);
console.log(xhr.status);
}
};
xhr.onerror = function () {
console.log("Requests: Login Failed");
failure(xhr.status);
};
xhr.send(commandObj);
};
exports.makeBasicAuth = makeBasicAuth;
exports.wifi_scan = wifi_scan;
exports.connectWifi = connectWifi;
exports.disableWifi = disableWifi;
},{}],9:[function(require,module,exports){
module.exports = { "default": require("core-js/library/fn/array/from"), __esModule: true };
},{"core-js/library/fn/array/from":23}],10:[function(require,module,exports){
module.exports = { "default": require("core-js/library/fn/object/assign"), __esModule: true };
},{"core-js/library/fn/object/assign":24}],11:[function(require,module,exports){
module.exports = { "default": require("core-js/library/fn/object/create"), __esModule: true };
},{"core-js/library/fn/object/create":25}],12:[function(require,module,exports){
module.exports = { "default": require("core-js/library/fn/object/entries"), __esModule: true };
},{"core-js/library/fn/object/entries":26}],13:[function(require,module,exports){
module.exports = { "default": require("core-js/library/fn/object/set-prototype-of"), __esModule: true };
},{"core-js/library/fn/object/set-prototype-of":27}],14:[function(require,module,exports){
module.exports = { "default": require("core-js/library/fn/object/values"), __esModule: true };
},{"core-js/library/fn/object/values":28}],15:[function(require,module,exports){
module.exports = { "default": require("core-js/library/fn/symbol"), __esModule: true };
},{"core-js/library/fn/symbol":29}],16:[function(require,module,exports){
module.exports = { "default": require("core-js/library/fn/symbol/iterator"), __esModule: true };
},{"core-js/library/fn/symbol/iterator":30}],17:[function(require,module,exports){
"use strict";
exports.__esModule = true;
exports.default = function (instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
};
},{}],18:[function(require,module,exports){
"use strict";
exports.__esModule = true;
var _assign = require("../core-js/object/assign");
var _assign2 = _interopRequireDefault(_assign);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = _assign2.default || 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;
};
},{"../core-js/object/assign":10}],19:[function(require,module,exports){
"use strict";
exports.__esModule = true;
var _setPrototypeOf = require("../core-js/object/set-prototype-of");
var _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);
var _create = require("../core-js/object/create");
var _create2 = _interopRequireDefault(_create);
var _typeof2 = require("../helpers/typeof");
var _typeof3 = _interopRequireDefault(_typeof2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (subClass, superClass) {
if (typeof superClass !== "function" && superClass !== null) {
throw new TypeError("Super expression must either be null or a function, not " + (typeof superClass === "undefined" ? "undefined" : (0, _typeof3.default)(superClass)));
}
subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {
constructor: {
value: subClass,
enumerable: false,
writable: true,
configurable: true
}
});
if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;
};
},{"../core-js/object/create":11,"../core-js/object/set-prototype-of":13,"../helpers/typeof":22}],20:[function(require,module,exports){
"use strict";
exports.__esModule = true;
exports.default = 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;
};
},{}],21:[function(require,module,exports){
"use strict";
exports.__esModule = true;
var _typeof2 = require("../helpers/typeof");
var _typeof3 = _interopRequireDefault(_typeof2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function (self, call) {
if (!self) {
throw new ReferenceError("this hasn't been initialised - super() hasn't been called");
}
return call && ((typeof call === "undefined" ? "undefined" : (0, _typeof3.default)(call)) === "object" || typeof call === "function") ? call : self;
};
},{"../helpers/typeof":22}],22:[function(require,module,exports){
"use strict";
exports.__esModule = true;
var _iterator = require("../core-js/symbol/iterator");
var _iterator2 = _interopRequireDefault(_iterator);
var _symbol = require("../core-js/symbol");
var _symbol2 = _interopRequireDefault(_symbol);
var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default ? "symbol" : typeof obj; };
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) {
return typeof obj === "undefined" ? "undefined" : _typeof(obj);
} : function (obj) {
return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj);
};
},{"../core-js/symbol":15,"../core-js/symbol/iterator":16}],23:[function(require,module,exports){
require('../../modules/es6.string.iterator');
require('../../modules/es6.array.from');
module.exports = require('../../modules/_core').Array.from;
},{"../../modules/_core":37,"../../modules/es6.array.from":96,"../../modules/es6.string.iterator":102}],24:[function(require,module,exports){
require('../../modules/es6.object.assign');
module.exports = require('../../modules/_core').Object.assign;
},{"../../modules/_core":37,"../../modules/es6.object.assign":98}],25:[function(require,module,exports){
require('../../modules/es6.object.create');
var $Object = require('../../modules/_core').Object;
module.exports = function create(P, D){
return $Object.create(P, D);
};
},{"../../modules/_core":37,"../../modules/es6.object.create":99}],26:[function(require,module,exports){
require('../../modules/es7.object.entries');
module.exports = require('../../modules/_core').Object.entries;
},{"../../modules/_core":37,"../../modules/es7.object.entries":104}],27:[function(require,module,exports){
require('../../modules/es6.object.set-prototype-of');
module.exports = require('../../modules/_core').Object.setPrototypeOf;
},{"../../modules/_core":37,"../../modules/es6.object.set-prototype-of":100}],28:[function(require,module,exports){
require('../../modules/es7.object.values');
module.exports = require('../../modules/_core').Object.values;
},{"../../modules/_core":37,"../../modules/es7.object.values":105}],29:[function(require,module,exports){
require('../../modules/es6.symbol');
require('../../modules/es6.object.to-string');
require('../../modules/es7.symbol.async-iterator');
require('../../modules/es7.symbol.observable');
module.exports = require('../../modules/_core').Symbol;
},{"../../modules/_core":37,"../../modules/es6.object.to-string":101,"../../modules/es6.symbol":103,"../../modules/es7.symbol.async-iterator":106,"../../modules/es7.symbol.observable":107}],30:[function(require,module,exports){
require('../../modules/es6.string.iterator');
require('../../modules/web.dom.iterable');
module.exports = require('../../modules/_wks-ext').f('iterator');
},{"../../modules/_wks-ext":93,"../../modules/es6.string.iterator":102,"../../modules/web.dom.iterable":108}],31:[function(require,module,exports){
module.exports = function(it){
if(typeof it != 'function')throw TypeError(it + ' is not a function!');
return it;
};
},{}],32:[function(require,module,exports){
module.exports = function(){ /* empty */ };
},{}],33:[function(require,module,exports){
var isObject = require('./_is-object');
module.exports = function(it){
if(!isObject(it))throw TypeError(it + ' is not an object!');
return it;
};
},{"./_is-object":55}],34:[function(require,module,exports){
// false -> Array#indexOf
// true -> Array#includes
var toIObject = require('./_to-iobject')
, toLength = require('./_to-length')
, toIndex = require('./_to-index');
module.exports = function(IS_INCLUDES){
return function($this, el, fromIndex){
var O = toIObject($this)
, length = toLength(O.length)
, index = toIndex(fromIndex, length)
, value;
// Array#includes uses SameValueZero equality algorithm
if(IS_INCLUDES && el != el)while(length > index){
value = O[index++];
if(value != value)return true;
// Array#toIndex ignores holes, Array#includes - not
} else for(;length > index; index++)if(IS_INCLUDES || index in O){
if(O[index] === el)return IS_INCLUDES || index || 0;
} return !IS_INCLUDES && -1;
};
};
},{"./_to-index":85,"./_to-iobject":87,"./_to-length":88}],35:[function(require,module,exports){
// getting tag from 19.1.3.6 Object.prototype.toString()
var cof = require('./_cof')
, TAG = require('./_wks')('toStringTag')
// ES3 wrong here
, ARG = cof(function(){ return arguments; }()) == 'Arguments';
// fallback for IE11 Script Access Denied error
var tryGet = function(it, key){
try {
return it[key];
} catch(e){ /* empty */ }
};
module.exports = function(it){
var O, T, B;
return it === undefined ? 'Undefined' : it === null ? 'Null'
// @@toStringTag case
: typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T
// builtinTag case
: ARG ? cof(O)
// ES3 arguments fallback
: (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};
},{"./_cof":36,"./_wks":94}],36:[function(require,module,exports){
var toString = {}.toString;
module.exports = function(it){
return toString.call(it).slice(8, -1);
};
},{}],37:[function(require,module,exports){
var core = module.exports = {version: '2.4.0'};
if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
},{}],38:[function(require,module,exports){
'use strict';
var $defineProperty = require('./_object-dp')
, createDesc = require('./_property-desc');
module.exports = function(object, index, value){
if(index in object)$defineProperty.f(object, index, createDesc(0, value));
else object[index] = value;
};
},{"./_object-dp":67,"./_property-desc":78}],39:[function(require,module,exports){
// optional / simple context binding
var aFunction = require('./_a-function');
module.exports = function(fn, that, length){
aFunction(fn);
if(that === undefined)return fn;
switch(length){
case 1: return function(a){
return fn.call(that, a);
};
case 2: return function(a, b){
return fn.call(that, a, b);
};
case 3: return function(a, b, c){
return fn.call(that, a, b, c);
};
}
return function(/* ...args */){
return fn.apply(that, arguments);
};
};
},{"./_a-function":31}],40:[function(require,module,exports){
// 7.2.1 RequireObjectCoercible(argument)
module.exports = function(it){
if(it == undefined)throw TypeError("Can't call method on " + it);
return it;
};
},{}],41:[function(require,module,exports){
// Thank's IE8 for his funny defineProperty
module.exports = !require('./_fails')(function(){
return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;
});
},{"./_fails":46}],42:[function(require,module,exports){
var isObject = require('./_is-object')
, document = require('./_global').document
// in old IE typeof document.createElement is 'object'
, is = isObject(document) && isObject(document.createElement);
module.exports = function(it){
return is ? document.createElement(it) : {};
};
},{"./_global":47,"./_is-object":55}],43:[function(require,module,exports){
// IE 8- don't enum bug keys
module.exports = (
'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');
},{}],44:[function(require,module,exports){
// all enumerable object keys, includes symbols
var getKeys = require('./_object-keys')
, gOPS = require('./_object-gops')
, pIE = require('./_object-pie');
module.exports = function(it){
var result = getKeys(it)
, getSymbols = gOPS.f;
if(getSymbols){
var symbols = getSymbols(it)
, isEnum = pIE.f
, i = 0
, key;
while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);
} return result;
};
},{"./_object-gops":72,"./_object-keys":75,"./_object-pie":76}],45:[function(require,module,exports){
var global = require('./_global')
, core = require('./_core')
, ctx = require('./_ctx')
, hide = require('./_hide')
, PROTOTYPE = 'prototype';
var $export = function(type, name, source){
var IS_FORCED = type & $export.F
, IS_GLOBAL = type & $export.G
, IS_STATIC = type & $export.S
, IS_PROTO = type & $export.P
, IS_BIND = type & $export.B
, IS_WRAP = type & $export.W
, exports = IS_GLOBAL ? core : core[name] || (core[name] = {})
, expProto = exports[PROTOTYPE]
, target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]
, key, own, out;
if(IS_GLOBAL)source = name;
for(key in source){
// contains in native
own = !IS_FORCED && target && target[key] !== undefined;
if(own && key in exports)continue;
// export native or passed
out = own ? target[key] : source[key];
// prevent global pollution for namespaces
exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]
// bind timers to global for call from export context
: IS_BIND && own ? ctx(out, global)
// wrap global constructors for prevent change them in library
: IS_WRAP && target[key] == out ? (function(C){
var F = function(a, b, c){
if(this instanceof C){
switch(arguments.length){
case 0: return new C;
case 1: return new C(a);
case 2: return new C(a, b);
} return new C(a, b, c);
} return C.apply(this, arguments);
};
F[PROTOTYPE] = C[PROTOTYPE];
return F;
// make static versions for prototype methods
})(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
// export proto methods to core.%CONSTRUCTOR%.methods.%NAME%
if(IS_PROTO){
(exports.virtual || (exports.virtual = {}))[key] = out;
// export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%
if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);
}
}
};
// type bitmap
$export.F = 1; // forced
$export.G = 2; // global
$export.S = 4; // static
$export.P = 8; // proto
$export.B = 16; // bind
$export.W = 32; // wrap
$export.U = 64; // safe
$export.R = 128; // real proto method for `library`
module.exports = $export;
},{"./_core":37,"./_ctx":39,"./_global":47,"./_hide":49}],46:[function(require,module,exports){
module.exports = function(exec){
try {
return !!exec();
} catch(e){
return true;
}
};
},{}],47:[function(require,module,exports){
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
},{}],48:[function(require,module,exports){
var hasOwnProperty = {}.hasOwnProperty;
module.exports = function(it, key){
return hasOwnProperty.call(it, key);
};
},{}],49:[function(require,module,exports){
var dP = require('./_object-dp')
, createDesc = require('./_property-desc');
module.exports = require('./_descriptors') ? function(object, key, value){
return dP.f(object, key, createDesc(1, value));
} : function(object, key, value){
object[key] = value;
return object;
};
},{"./_descriptors":41,"./_object-dp":67,"./_property-desc":78}],50:[function(require,module,exports){
module.exports = require('./_global').document && document.documentElement;
},{"./_global":47}],51:[function(require,module,exports){
module.exports = !require('./_descriptors') && !require('./_fails')(function(){
return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;
});
},{"./_descriptors":41,"./_dom-create":42,"./_fails":46}],52:[function(require,module,exports){
// fallback for non-array-like ES3 and non-enumerable old V8 strings
var cof = require('./_cof');
module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){
return cof(it) == 'String' ? it.split('') : Object(it);
};
},{"./_cof":36}],53:[function(require,module,exports){
// check on default Array iterator
var Iterators = require('./_iterators')
, ITERATOR = require('./_wks')('iterator')
, ArrayProto = Array.prototype;
module.exports = function(it){
return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
};
},{"./_iterators":61,"./_wks":94}],54:[function(require,module,exports){
// 7.2.2 IsArray(argument)
var cof = require('./_cof');
module.exports = Array.isArray || function isArray(arg){
return cof(arg) == 'Array';
};
},{"./_cof":36}],55:[function(require,module,exports){
module.exports = function(it){
return typeof it === 'object' ? it !== null : typeof it === 'function';
};
},{}],56:[function(require,module,exports){
// call something on iterator step with safe closing on error
var anObject = require('./_an-object');
module.exports = function(iterator, fn, value, entries){
try {
return entries ? fn(anObject(value)[0], value[1]) : fn(value);
// 7.4.6 IteratorClose(iterator, completion)
} catch(e){
var ret = iterator['return'];
if(ret !== undefined)anObject(ret.call(iterator));
throw e;
}
};
},{"./_an-object":33}],57:[function(require,module,exports){
'use strict';
var create = require('./_object-create')
, descriptor = require('./_property-desc')
, setToStringTag = require('./_set-to-string-tag')
, IteratorPrototype = {};
// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
require('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });
module.exports = function(Constructor, NAME, next){
Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});
setToStringTag(Constructor, NAME + ' Iterator');
};
},{"./_hide":49,"./_object-create":66,"./_property-desc":78,"./_set-to-string-tag":81,"./_wks":94}],58:[function(require,module,exports){
'use strict';
var LIBRARY = require('./_library')
, $export = require('./_export')
, redefine = require('./_redefine')
, hide = require('./_hide')
, has = require('./_has')
, Iterators = require('./_iterators')
, $iterCreate = require('./_iter-create')
, setToStringTag = require('./_set-to-string-tag')
, getPrototypeOf = require('./_object-gpo')
, ITERATOR = require('./_wks')('iterator')
, BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`
, FF_ITERATOR = '@@iterator'
, KEYS = 'keys'
, VALUES = 'values';
var returnThis = function(){ return this; };
module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){
$iterCreate(Constructor, NAME, next);
var getMethod = function(kind){
if(!BUGGY && kind in proto)return proto[kind];
switch(kind){
case KEYS: return function keys(){ return new Constructor(this, kind); };
case VALUES: return function values(){ return new Constructor(this, kind); };
} return function entries(){ return new Constructor(this, kind); };
};
var TAG = NAME + ' Iterator'
, DEF_VALUES = DEFAULT == VALUES
, VALUES_BUG = false
, proto = Base.prototype
, $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]
, $default = $native || getMethod(DEFAULT)
, $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined
, $anyNative = NAME == 'Array' ? proto.entries || $native : $native
, methods, key, IteratorPrototype;
// Fix native
if($anyNative){
IteratorPrototype = getPrototypeOf($anyNative.call(new Base));
if(IteratorPrototype !== Object.prototype){
// Set @@toStringTag to native iterators
setToStringTag(IteratorPrototype, TAG, true);
// fix for some old engines
if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);
}
}
// fix Array#{values, @@iterator}.name in V8 / FF
if(DEF_VALUES && $native && $native.name !== VALUES){
VALUES_BUG = true;
$default = function values(){ return $native.call(this); };
}
// Define iterator
if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){
hide(proto, ITERATOR, $default);
}
// Plug for library
Iterators[NAME] = $default;
Iterators[TAG] = returnThis;
if(DEFAULT){
methods = {
values: DEF_VALUES ? $default : getMethod(VALUES),
keys: IS_SET ? $default : getMethod(KEYS),
entries: $entries
};
if(FORCED)for(key in methods){
if(!(key in proto))redefine(proto, key, methods[key]);
} else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);
}
return methods;
};
},{"./_export":45,"./_has":48,"./_hide":49,"./_iter-create":57,"./_iterators":61,"./_library":63,"./_object-gpo":73,"./_redefine":79,"./_set-to-string-tag":81,"./_wks":94}],59:[function(require,module,exports){
var ITERATOR = require('./_wks')('iterator')
, SAFE_CLOSING = false;
try {
var riter = [7][ITERATOR]();
riter['return'] = function(){ SAFE_CLOSING = true; };
Array.from(riter, function(){ throw 2; });
} catch(e){ /* empty */ }
module.exports = function(exec, skipClosing){
if(!skipClosing && !SAFE_CLOSING)return false;
var safe = false;
try {
var arr = [7]
, iter = arr[ITERATOR]();
iter.next = function(){ return {done: safe = true}; };
arr[ITERATOR] = function(){ return iter; };
exec(arr);
} catch(e){ /* empty */ }
return safe;
};
},{"./_wks":94}],60:[function(require,module,exports){
module.exports = function(done, value){
return {value: value, done: !!done};
};
},{}],61:[function(require,module,exports){
module.exports = {};
},{}],62:[function(require,module,exports){
var getKeys = require('./_object-keys')
, toIObject = require('./_to-iobject');
module.exports = function(object, el){
var O = toIObject(object)
, keys = getKeys(O)
, length = keys.length
, index = 0
, key;
while(length > index)if(O[key = keys[index++]] === el)return key;
};
},{"./_object-keys":75,"./_to-iobject":87}],63:[function(require,module,exports){
module.exports = true;
},{}],64:[function(require,module,exports){
var META = require('./_uid')('meta')
, isObject = require('./_is-object')
, has = require('./_has')
, setDesc = require('./_object-dp').f
, id = 0;
var isExtensible = Object.isExtensible || function(){
return true;
};
var FREEZE = !require('./_fails')(function(){
return isExtensible(Object.preventExtensions({}));
});
var setMeta = function(it){
setDesc(it, META, {value: {
i: 'O' + ++id, // object ID
w: {} // weak collections IDs
}});
};
var fastKey = function(it, create){
// return primitive with prefix
if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
if(!has(it, META)){
// can't set metadata to uncaught frozen object
if(!isExtensible(it))return 'F';
// not necessary to add metadata
if(!create)return 'E';
// add missing metadata
setMeta(it);
// return object ID
} return it[META].i;
};
var getWeak = function(it, create){
if(!has(it, META)){
// can't set metadata to uncaught frozen object
if(!isExtensible(it))return true;
// not necessary to add metadata
if(!create)return false;
// add missing metadata
setMeta(it);
// return hash weak collections IDs
} return it[META].w;
};
// add metadata on freeze-family methods calling
var onFreeze = function(it){
if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);
return it;
};
var meta = module.exports = {
KEY: META,
NEED: false,
fastKey: fastKey,
getWeak: getWeak,
onFreeze: onFreeze
};
},{"./_fails":46,"./_has":48,"./_is-object":55,"./_object-dp":67,"./_uid":91}],65:[function(require,module,exports){
'use strict';
// 19.1.2.1 Object.assign(target, source, ...)
var getKeys = require('./_object-keys')
, gOPS = require('./_object-gops')
, pIE = require('./_object-pie')
, toObject = require('./_to-object')
, IObject = require('./_iobject')
, $assign = Object.assign;
// should work with symbols and should have deterministic property order (V8 bug)
module.exports = !$assign || require('./_fails')(function(){
var A = {}
, B = {}
, S = Symbol()
, K = 'abcdefghijklmnopqrst';
A[S] = 7;
K.split('').forEach(function(k){ B[k] = k; });
return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
}) ? function assign(target, source){ // eslint-disable-line no-unused-vars
var T = toObject(target)
, aLen = arguments.length
, index = 1
, getSymbols = gOPS.f
, isEnum = pIE.f;
while(aLen > index){
var S = IObject(arguments[index++])
, keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)
, length = keys.length
, j = 0
, key;
while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];
} return T;
} : $assign;
},{"./_fails":46,"./_iobject":52,"./_object-gops":72,"./_object-keys":75,"./_object-pie":76,"./_to-object":89}],66:[function(require,module,exports){
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject = require('./_an-object')
, dPs = require('./_object-dps')
, enumBugKeys = require('./_enum-bug-keys')
, IE_PROTO = require('./_shared-key')('IE_PROTO')
, Empty = function(){ /* empty */ }
, PROTOTYPE = 'prototype';
// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function(){
// Thrash, waste and sodomy: IE GC bug
var iframe = require('./_dom-create')('iframe')
, i = enumBugKeys.length
, lt = '<'
, gt = '>'
, iframeDocument;
iframe.style.display = 'none';
require('./_html').appendChild(iframe);
iframe.src = 'javascript:'; // eslint-disable-line no-script-url
// createDict = iframe.contentWindow.Object;
// html.removeChild(iframe);
iframeDocument = iframe.contentWindow.document;
iframeDocument.open();
iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
iframeDocument.close();
createDict = iframeDocument.F;
while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];
return createDict();
};
module.exports = Object.create || function create(O, Properties){
var result;
if(O !== null){
Empty[PROTOTYPE] = anObject(O);
result = new Empty;
Empty[PROTOTYPE] = null;
// add "__proto__" for Object.getPrototypeOf polyfill
result[IE_PROTO] = O;
} else result = createDict();
return Properties === undefined ? result : dPs(result, Properties);
};
},{"./_an-object":33,"./_dom-create":42,"./_enum-bug-keys":43,"./_html":50,"./_object-dps":68,"./_shared-key":82}],67:[function(require,module,exports){
var anObject = require('./_an-object')
, IE8_DOM_DEFINE = require('./_ie8-dom-define')
, toPrimitive = require('./_to-primitive')
, dP = Object.defineProperty;
exports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){
anObject(O);
P = toPrimitive(P, true);
anObject(Attributes);
if(IE8_DOM_DEFINE)try {
return dP(O, P, Attributes);
} catch(e){ /* empty */ }
if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');
if('value' in Attributes)O[P] = Attributes.value;
return O;
};
},{"./_an-object":33,"./_descriptors":41,"./_ie8-dom-define":51,"./_to-primitive":90}],68:[function(require,module,exports){
var dP = require('./_object-dp')
, anObject = require('./_an-object')
, getKeys = require('./_object-keys');
module.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){
anObject(O);
var keys = getKeys(Properties)
, length = keys.length
, i = 0
, P;
while(length > i)dP.f(O, P = keys[i++], Properties[P]);
return O;
};
},{"./_an-object":33,"./_descriptors":41,"./_object-dp":67,"./_object-keys":75}],69:[function(require,module,exports){
var pIE = require('./_object-pie')
, createDesc = require('./_property-desc')
, toIObject = require('./_to-iobject')
, toPrimitive = require('./_to-primitive')
, has = require('./_has')
, IE8_DOM_DEFINE = require('./_ie8-dom-define')
, gOPD = Object.getOwnPropertyDescriptor;
exports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P){
O = toIObject(O);
P = toPrimitive(P, true);
if(IE8_DOM_DEFINE)try {
return gOPD(O, P);
} catch(e){ /* empty */ }
if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);
};
},{"./_descriptors":41,"./_has":48,"./_ie8-dom-define":51,"./_object-pie":76,"./_property-desc":78,"./_to-iobject":87,"./_to-primitive":90}],70:[function(require,module,exports){
// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
var toIObject = require('./_to-iobject')
, gOPN = require('./_object-gopn').f
, toString = {}.toString;
var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
? Object.getOwnPropertyNames(window) : [];
var getWindowNames = function(it){
try {
return gOPN(it);
} catch(e){
return windowNames.slice();
}
};
module.exports.f = function getOwnPropertyNames(it){
return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
};
},{"./_object-gopn":71,"./_to-iobject":87}],71:[function(require,module,exports){
// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
var $keys = require('./_object-keys-internal')
, hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');
exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){
return $keys(O, hiddenKeys);
};
},{"./_enum-bug-keys":43,"./_object-keys-internal":74}],72:[function(require,module,exports){
exports.f = Object.getOwnPropertySymbols;
},{}],73:[function(require,module,exports){
// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has = require('./_has')
, toObject = require('./_to-object')
, IE_PROTO = require('./_shared-key')('IE_PROTO')
, ObjectProto = Object.prototype;
module.exports = Object.getPrototypeOf || function(O){
O = toObject(O);
if(has(O, IE_PROTO))return O[IE_PROTO];
if(typeof O.constructor == 'function' && O instanceof O.constructor){
return O.constructor.prototype;
} return O instanceof Object ? ObjectProto : null;
};
},{"./_has":48,"./_shared-key":82,"./_to-object":89}],74:[function(require,module,exports){
var has = require('./_has')
, toIObject = require('./_to-iobject')
, arrayIndexOf = require('./_array-includes')(false)
, IE_PROTO = require('./_shared-key')('IE_PROTO');
module.exports = function(object, names){
var O = toIObject(object)
, i = 0
, result = []
, key;
for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);
// Don't enum bug & hidden keys
while(names.length > i)if(has(O, key = names[i++])){
~arrayIndexOf(result, key) || result.push(key);
}
return result;
};
},{"./_array-includes":34,"./_has":48,"./_shared-key":82,"./_to-iobject":87}],75:[function(require,module,exports){
// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys = require('./_object-keys-internal')
, enumBugKeys = require('./_enum-bug-keys');
module.exports = Object.keys || function keys(O){
return $keys(O, enumBugKeys);
};
},{"./_enum-bug-keys":43,"./_object-keys-internal":74}],76:[function(require,module,exports){
exports.f = {}.propertyIsEnumerable;
},{}],77:[function(require,module,exports){
var getKeys = require('./_object-keys')
, toIObject = require('./_to-iobject')
, isEnum = require('./_object-pie').f;
module.exports = function(isEntries){
return function(it){
var O = toIObject(it)
, keys = getKeys(O)
, length = keys.length
, i = 0
, result = []
, key;
while(length > i)if(isEnum.call(O, key = keys[i++])){
result.push(isEntries ? [key, O[key]] : O[key]);
} return result;
};
};
},{"./_object-keys":75,"./_object-pie":76,"./_to-iobject":87}],78:[function(require,module,exports){
module.exports = function(bitmap, value){
return {
enumerable : !(bitmap & 1),
configurable: !(bitmap & 2),
writable : !(bitmap & 4),
value : value
};
};
},{}],79:[function(require,module,exports){
module.exports = require('./_hide');
},{"./_hide":49}],80:[function(require,module,exports){
// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
var isObject = require('./_is-object')
, anObject = require('./_an-object');
var check = function(O, proto){
anObject(O);
if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!");
};
module.exports = {
set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
function(test, buggy, set){
try {
set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);
set(test, []);
buggy = !(test instanceof Array);
} catch(e){ buggy = true; }
return function setPrototypeOf(O, proto){
check(O, proto);
if(buggy)O.__proto__ = proto;
else set(O, proto);
return O;
};
}({}, false) : undefined),
check: check
};
},{"./_an-object":33,"./_ctx":39,"./_is-object":55,"./_object-gopd":69}],81:[function(require,module,exports){
var def = require('./_object-dp').f
, has = require('./_has')
, TAG = require('./_wks')('toStringTag');
module.exports = function(it, tag, stat){
if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});
};
},{"./_has":48,"./_object-dp":67,"./_wks":94}],82:[function(require,module,exports){
var shared = require('./_shared')('keys')
, uid = require('./_uid');
module.exports = function(key){
return shared[key] || (shared[key] = uid(key));
};
},{"./_shared":83,"./_uid":91}],83:[function(require,module,exports){
var global = require('./_global')
, SHARED = '__core-js_shared__'
, store = global[SHARED] || (global[SHARED] = {});
module.exports = function(key){
return store[key] || (store[key] = {});
};
},{"./_global":47}],84:[function(require,module,exports){
var toInteger = require('./_to-integer')
, defined = require('./_defined');
// true -> String#at
// false -> String#codePointAt
module.exports = function(TO_STRING){
return function(that, pos){
var s = String(defined(that))
, i = toInteger(pos)
, l = s.length
, a, b;
if(i < 0 || i >= l)return TO_STRING ? '' : undefined;
a = s.charCodeAt(i);
return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff
? TO_STRING ? s.charAt(i) : a
: TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;
};
};
},{"./_defined":40,"./_to-integer":86}],85:[function(require,module,exports){
var toInteger = require('./_to-integer')
, max = Math.max
, min = Math.min;
module.exports = function(index, length){
index = toInteger(index);
return index < 0 ? max(index + length, 0) : min(index, length);
};
},{"./_to-integer":86}],86:[function(require,module,exports){
// 7.1.4 ToInteger
var ceil = Math.ceil
, floor = Math.floor;
module.exports = function(it){
return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};
},{}],87:[function(require,module,exports){
// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = require('./_iobject')
, defined = require('./_defined');
module.exports = function(it){
return IObject(defined(it));
};
},{"./_defined":40,"./_iobject":52}],88:[function(require,module,exports){
// 7.1.15 ToLength
var toInteger = require('./_to-integer')
, min = Math.min;
module.exports = function(it){
return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};
},{"./_to-integer":86}],89:[function(require,module,exports){
// 7.1.13 ToObject(argument)
var defined = require('./_defined');
module.exports = function(it){
return Object(defined(it));
};
},{"./_defined":40}],90:[function(require,module,exports){
// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = require('./_is-object');
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function(it, S){
if(!isObject(it))return it;
var fn, val;
if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;
if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;
throw TypeError("Can't convert object to primitive value");
};
},{"./_is-object":55}],91:[function(require,module,exports){
var id = 0
, px = Math.random();
module.exports = function(key){
return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};
},{}],92:[function(require,module,exports){
var global = require('./_global')
, core = require('./_core')
, LIBRARY = require('./_library')
, wksExt = require('./_wks-ext')
, defineProperty = require('./_object-dp').f;
module.exports = function(name){
var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});
if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});
};
},{"./_core":37,"./_global":47,"./_library":63,"./_object-dp":67,"./_wks-ext":93}],93:[function(require,module,exports){
exports.f = require('./_wks');
},{"./_wks":94}],94:[function(require,module,exports){
var store = require('./_shared')('wks')
, uid = require('./_uid')
, Symbol = require('./_global').Symbol
, USE_SYMBOL = typeof Symbol == 'function';
var $exports = module.exports = function(name){
return store[name] || (store[name] =
USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
};
$exports.store = store;
},{"./_global":47,"./_shared":83,"./_uid":91}],95:[function(require,module,exports){
var classof = require('./_classof')
, ITERATOR = require('./_wks')('iterator')
, Iterators = require('./_iterators');
module.exports = require('./_core').getIteratorMethod = function(it){
if(it != undefined)return it[ITERATOR]
|| it['@@iterator']
|| Iterators[classof(it)];
};
},{"./_classof":35,"./_core":37,"./_iterators":61,"./_wks":94}],96:[function(require,module,exports){
'use strict';
var ctx = require('./_ctx')
, $export = require('./_export')
, toObject = require('./_to-object')
, call = require('./_iter-call')
, isArrayIter = require('./_is-array-iter')
, toLength = require('./_to-length')
, createProperty = require('./_create-property')
, getIterFn = require('./core.get-iterator-method');
$export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array.from(iter); }), 'Array', {
// 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){
var O = toObject(arrayLike)
, C = typeof this == 'function' ? this : Array
, aLen = arguments.length
, mapfn = aLen > 1 ? arguments[1] : undefined
, mapping = mapfn !== undefined
, index = 0
, iterFn = getIterFn(O)
, length, result, step, iterator;
if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
// if object isn't iterable or it's array with default iterator - use simple case
if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){
for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){
createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
}
} else {
length = toLength(O.length);
for(result = new C(length); length > index; index++){
createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
}
}
result.length = index;
return result;
}
});
},{"./_create-property":38,"./_ctx":39,"./_export":45,"./_is-array-iter":53,"./_iter-call":56,"./_iter-detect":59,"./_to-length":88,"./_to-object":89,"./core.get-iterator-method":95}],97:[function(require,module,exports){
'use strict';
var addToUnscopables = require('./_add-to-unscopables')
, step = require('./_iter-step')
, Iterators = require('./_iterators')
, toIObject = require('./_to-iobject');
// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
module.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){
this._t = toIObject(iterated); // target
this._i = 0; // next index
this._k = kind; // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
}, function(){
var O = this._t
, kind = this._k
, index = this._i++;
if(!O || index >= O.length){
this._t = undefined;
return step(1);
}
if(kind == 'keys' )return step(0, index);
if(kind == 'values')return step(0, O[index]);
return step(0, [index, O[index]]);
}, 'values');
// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
Iterators.Arguments = Iterators.Array;
addToUnscopables('keys');
addToUnscopables('values');
addToUnscopables('entries');
},{"./_add-to-unscopables":32,"./_iter-define":58,"./_iter-step":60,"./_iterators":61,"./_to-iobject":87}],98:[function(require,module,exports){
// 19.1.3.1 Object.assign(target, source)
var $export = require('./_export');
$export($export.S + $export.F, 'Object', {assign: require('./_object-assign')});
},{"./_export":45,"./_object-assign":65}],99:[function(require,module,exports){
var $export = require('./_export')
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
$export($export.S, 'Object', {create: require('./_object-create')});
},{"./_export":45,"./_object-create":66}],100:[function(require,module,exports){
// 19.1.3.19 Object.setPrototypeOf(O, proto)
var $export = require('./_export');
$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set});
},{"./_export":45,"./_set-proto":80}],101:[function(require,module,exports){
},{}],102:[function(require,module,exports){
'use strict';
var $at = require('./_string-at')(true);
// 21.1.3.27 String.prototype[@@iterator]()
require('./_iter-define')(String, 'String', function(iterated){
this._t = String(iterated); // target
this._i = 0; // next index
// 21.1.5.2.1 %StringIteratorPrototype%.next()
}, function(){
var O = this._t
, index = this._i
, point;
if(index >= O.length)return {value: undefined, done: true};
point = $at(O, index);
this._i += point.length;
return {value: point, done: false};
});
},{"./_iter-define":58,"./_string-at":84}],103:[function(require,module,exports){
'use strict';
// ECMAScript 6 symbols shim
var global = require('./_global')
, has = require('./_has')
, DESCRIPTORS = require('./_descriptors')
, $export = require('./_export')
, redefine = require('./_redefine')
, META = require('./_meta').KEY
, $fails = require('./_fails')
, shared = require('./_shared')
, setToStringTag = require('./_set-to-string-tag')
, uid = require('./_uid')
, wks = require('./_wks')
, wksExt = require('./_wks-ext')
, wksDefine = require('./_wks-define')
, keyOf = require('./_keyof')
, enumKeys = require('./_enum-keys')
, isArray = require('./_is-array')
, anObject = require('./_an-object')
, toIObject = require('./_to-iobject')
, toPrimitive = require('./_to-primitive')
, createDesc = require('./_property-desc')
, _create = require('./_object-create')
, gOPNExt = require('./_object-gopn-ext')
, $GOPD = require('./_object-gopd')
, $DP = require('./_object-dp')
, $keys = require('./_object-keys')
, gOPD = $GOPD.f
, dP = $DP.f
, gOPN = gOPNExt.f
, $Symbol = global.Symbol
, $JSON = global.JSON
, _stringify = $JSON && $JSON.stringify
, PROTOTYPE = 'prototype'
, HIDDEN = wks('_hidden')
, TO_PRIMITIVE = wks('toPrimitive')
, isEnum = {}.propertyIsEnumerable
, SymbolRegistry = shared('symbol-registry')
, AllSymbols = shared('symbols')
, OPSymbols = shared('op-symbols')
, ObjectProto = Object[PROTOTYPE]
, USE_NATIVE = typeof $Symbol == 'function'
, QObject = global.QObject;
// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;
// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
var setSymbolDesc = DESCRIPTORS && $fails(function(){
return _create(dP({}, 'a', {
get: function(){ return dP(this, 'a', {value: 7}).a; }
})).a != 7;
}) ? function(it, key, D){
var protoDesc = gOPD(ObjectProto, key);
if(protoDesc)delete ObjectProto[key];
dP(it, key, D);
if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);
} : dP;
var wrap = function(tag){
var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);
sym._k = tag;
return sym;
};
var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){
return typeof it == 'symbol';
} : function(it){
return it instanceof $Symbol;
};
var $defineProperty = function defineProperty(it, key, D){
if(it === ObjectProto)$defineProperty(OPSymbols, key, D);
anObject(it);
key = toPrimitive(key, true);
anObject(D);
if(has(AllSymbols, key)){
if(!D.enumerable){
if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));
it[HIDDEN][key] = true;
} else {
if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;
D = _create(D, {enumerable: createDesc(0, false)});
} return setSymbolDesc(it, key, D);
} return dP(it, key, D);
};
var $defineProperties = function defineProperties(it, P){
anObject(it);
var keys = enumKeys(P = toIObject(P))
, i = 0
, l = keys.length
, key;
while(l > i)$defineProperty(it, key = keys[i++], P[key]);
return it;
};
var $create = function create(it, P){
return P === undefined ? _create(it) : $defineProperties(_create(it), P);
};
var $propertyIsEnumerable = function propertyIsEnumerable(key){
var E = isEnum.call(this, key = toPrimitive(key, true));
if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;
return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){
it = toIObject(it);
key = toPrimitive(key, true);
if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;
var D = gOPD(it, key);
if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;
return D;
};
var $getOwnPropertyNames = function getOwnPropertyNames(it){
var names = gOPN(toIObject(it))
, result = []
, i = 0
, key;
while(names.length > i){
if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);
} return result;
};
var $getOwnPropertySymbols = function getOwnPropertySymbols(it){
var IS_OP = it === ObjectProto
, names = gOPN(IS_OP ? OPSymbols : toIObject(it))
, result = []
, i = 0
, key;
while(names.length > i){
if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);
} return result;
};
// 19.4.1.1 Symbol([description])
if(!USE_NATIVE){
$Symbol = function Symbol(){
if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');
var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
var $set = function(value){
if(this === ObjectProto)$set.call(OPSymbols, value);
if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;
setSymbolDesc(this, tag, createDesc(1, value));
};
if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});
return wrap(tag);
};
redefine($Symbol[PROTOTYPE], 'toString', function toString(){
return this._k;
});
$GOPD.f = $getOwnPropertyDescriptor;
$DP.f = $defineProperty;
require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;
require('./_object-pie').f = $propertyIsEnumerable;
require('./_object-gops').f = $getOwnPropertySymbols;
if(DESCRIPTORS && !require('./_library')){
redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);
}
wksExt.f = function(name){
return wrap(wks(name));
}
}
$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});
for(var symbols = (
// 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);
for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);
$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {
// 19.4.2.1 Symbol.for(key)
'for': function(key){
return has(SymbolRegistry, key += '')
? SymbolRegistry[key]
: SymbolRegistry[key] = $Symbol(key);
},
// 19.4.2.5 Symbol.keyFor(sym)
keyFor: function keyFor(key){
if(isSymbol(key))return keyOf(SymbolRegistry, key);
throw TypeError(key + ' is not a symbol!');
},
useSetter: function(){ setter = true; },
useSimple: function(){ setter = false; }
});
$export($export.S + $export.F * !USE_NATIVE, 'Object', {
// 19.1.2.2 Object.create(O [, Properties])
create: $create,
// 19.1.2.4 Object.defineProperty(O, P, Attributes)
defineProperty: $defineProperty,
// 19.1.2.3 Object.defineProperties(O, Properties)
defineProperties: $defineProperties,
// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
getOwnPropertyDescriptor: $getOwnPropertyDescriptor,
// 19.1.2.7 Object.getOwnPropertyNames(O)
getOwnPropertyNames: $getOwnPropertyNames,
// 19.1.2.8 Object.getOwnPropertySymbols(O)
getOwnPropertySymbols: $getOwnPropertySymbols
});
// 24.3.2 JSON.stringify(value [, replacer [, space]])
$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){
var S = $Symbol();
// MS Edge converts symbol values to JSON as {}
// WebKit converts symbol values to JSON as null
// V8 throws on boxed symbols
return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';
})), 'JSON', {
stringify: function stringify(it){
if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined
var args = [it]
, i = 1
, replacer, $replacer;
while(arguments.length > i)args.push(arguments[i++]);
replacer = args[1];
if(typeof replacer == 'function')$replacer = replacer;
if($replacer || !isArray(replacer))replacer = function(key, value){
if($replacer)value = $replacer.call(this, key, value);
if(!isSymbol(value))return value;
};
args[1] = replacer;
return _stringify.apply($JSON, args);
}
});
// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);
// 19.4.3.5 Symbol.prototype[@@toStringTag]
setToStringTag($Symbol, 'Symbol');
// 20.2.1.9 Math[@@toStringTag]
setToStringTag(Math, 'Math', true);
// 24.3.3 JSON[@@toStringTag]
setToStringTag(global.JSON, 'JSON', true);
},{"./_an-object":33,"./_descriptors":41,"./_enum-keys":44,"./_export":45,"./_fails":46,"./_global":47,"./_has":48,"./_hide":49,"./_is-array":54,"./_keyof":62,"./_library":63,"./_meta":64,"./_object-create":66,"./_object-dp":67,"./_object-gopd":69,"./_object-gopn":71,"./_object-gopn-ext":70,"./_object-gops":72,"./_object-keys":75,"./_object-pie":76,"./_property-desc":78,"./_redefine":79,"./_set-to-string-tag":81,"./_shared":83,"./_to-iobject":87,"./_to-primitive":90,"./_uid":91,"./_wks":94,"./_wks-define":92,"./_wks-ext":93}],104:[function(require,module,exports){
// https://github.com/tc39/proposal-object-values-entries
var $export = require('./_export')
, $entries = require('./_object-to-array')(true);
$export($export.S, 'Object', {
entries: function entries(it){
return $entries(it);
}
});
},{"./_export":45,"./_object-to-array":77}],105:[function(require,module,exports){
// https://github.com/tc39/proposal-object-values-entries
var $export = require('./_export')
, $values = require('./_object-to-array')(false);
$export($export.S, 'Object', {
values: function values(it){
return $values(it);
}
});
},{"./_export":45,"./_object-to-array":77}],106:[function(require,module,exports){
require('./_wks-define')('asyncIterator');
},{"./_wks-define":92}],107:[function(require,module,exports){
require('./_wks-define')('observable');
},{"./_wks-define":92}],108:[function(require,module,exports){
require('./es6.array.iterator');
var global = require('./_global')
, hide = require('./_hide')
, Iterators = require('./_iterators')
, TO_STRING_TAG = require('./_wks')('toStringTag');
for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){
var NAME = collections[i]
, Collection = global[NAME]
, proto = Collection && Collection.prototype;
if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);
Iterators[NAME] = Iterators.Array;
}
},{"./_global":47,"./_hide":49,"./_iterators":61,"./_wks":94,"./es6.array.iterator":97}],109:[function(require,module,exports){
var initId = 0;
module.exports = function makeColumn(rootCol, fraction) {
rootCol = rootCol || {K: 1, G: 0, depth: 0, children: {}};
var col = {
depth: rootCol.depth + 1,
children: {}
};
var id = initId++;
var rawf, f;
col.setWidth = function (fraction) {
fraction = fraction || '1/1';
if (fraction === rawf) return;
rawf = fraction;
f = fractionToArray(fraction);
col.updateWidth();
if (col.children.length) {
var child;
for (child in col.children) {
col.children[child].updateWidth();
}
}
}
col.updateWidth = function () {
col.K = rootCol.K * f[0] / f[1];
col.G = (rootCol.G * f[0] / f[1]) + (f[0] / f[1]) - 1;
}
col.getFraction = function () {
return f;
}
col.getId = function() {
return id;
}
col.getWidth = function (viewport, gutter) {
return (viewport * col.K) + (gutter * col.G);
}
col.detach = function () {
delete rootCol.children[id];
}
col.setWidth(fraction);
rootCol.children[id] = col;
return col;
}
function fractionToArray(f) {
f = f.split('/');
f[0] = parseInt(f[0]);
f[1] = parseInt(f[1]);
return f;
}
},{}],110:[function(require,module,exports){
/*!
Copyright (c) 2016 Jed Watson.
Licensed under the MIT License (MIT), see
http://jedwatson.github.io/classnames
*/
/* global define */
(function () {
'use strict';
var hasOwn = {}.hasOwnProperty;
function classNames () {
var classes = [];
for (var i = 0; i < arguments.length; i++) {
var arg = arguments[i];
if (!arg) continue;
var argType = typeof arg;
if (argType === 'string' || argType === 'number') {
classes.push(arg);
} else if (Array.isArray(arg)) {
classes.push(classNames.apply(null, arg));
} else if (argType === 'object') {
for (var key in arg) {
if (hasOwn.call(arg, key) && arg[key]) {
classes.push(key);
}
}
}
}
return classes.join(' ');
}
if (typeof module !== 'undefined' && module.exports) {
module.exports = classNames;
} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {
// register as 'classnames', consistent with npm package name
define('classnames', [], function () {
return classNames;
});
} else {
window.classNames = classNames;
}
}());
},{}],111:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = activeElement;
var _ownerDocument = require('./ownerDocument');
var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function activeElement() {
var doc = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : (0, _ownerDocument2.default)();
try {
return doc.activeElement;
} catch (e) {/* ie throws if no active element */}
}
module.exports = exports['default'];
},{"./ownerDocument":121}],112:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = addClass;
var _hasClass = require('./hasClass');
var _hasClass2 = _interopRequireDefault(_hasClass);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function addClass(element, className) {
if (element.classList) element.classList.add(className);else if (!(0, _hasClass2.default)(element)) element.className = element.className + ' ' + className;
}
module.exports = exports['default'];
},{"./hasClass":113}],113:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = hasClass;
function hasClass(element, className) {
if (element.classList) return !!className && element.classList.contains(className);else return (" " + element.className + " ").indexOf(" " + className + " ") !== -1;
}
module.exports = exports["default"];
},{}],114:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.hasClass = exports.removeClass = exports.addClass = undefined;
var _addClass = require('./addClass');
var _addClass2 = _interopRequireDefault(_addClass);
var _removeClass = require('./removeClass');
var _removeClass2 = _interopRequireDefault(_removeClass);
var _hasClass = require('./hasClass');
var _hasClass2 = _interopRequireDefault(_hasClass);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.addClass = _addClass2.default;
exports.removeClass = _removeClass2.default;
exports.hasClass = _hasClass2.default;
exports.default = { addClass: _addClass2.default, removeClass: _removeClass2.default, hasClass: _hasClass2.default };
},{"./addClass":112,"./hasClass":113,"./removeClass":115}],115:[function(require,module,exports){
'use strict';
module.exports = function removeClass(element, className) {
if (element.classList) element.classList.remove(className);else element.className = element.className.replace(new RegExp('(^|\\s)' + className + '(?:\\s|$)', 'g'), '$1').replace(/\s+/g, ' ').replace(/^\s*|\s*$/g, '');
};
},{}],116:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = filterEvents;
var _contains = require('../query/contains');
var _contains2 = _interopRequireDefault(_contains);
var _querySelectorAll = require('../query/querySelectorAll');
var _querySelectorAll2 = _interopRequireDefault(_querySelectorAll);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function filterEvents(selector, handler) {
return function filterHandler(e) {
var top = e.currentTarget,
target = e.target,
matches = (0, _querySelectorAll2.default)(top, selector);
if (matches.some(function (match) {
return (0, _contains2.default)(match, target);
})) handler.call(this, e);
};
}
module.exports = exports['default'];
},{"../query/contains":122,"../query/querySelectorAll":127}],117:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.listen = exports.filter = exports.off = exports.on = undefined;
var _on = require('./on');
var _on2 = _interopRequireDefault(_on);
var _off = require('./off');
var _off2 = _interopRequireDefault(_off);
var _filter = require('./filter');
var _filter2 = _interopRequireDefault(_filter);
var _listen = require('./listen');
var _listen2 = _interopRequireDefault(_listen);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.on = _on2.default;
exports.off = _off2.default;
exports.filter = _filter2.default;
exports.listen = _listen2.default;
exports.default = { on: _on2.default, off: _off2.default, filter: _filter2.default, listen: _listen2.default };
},{"./filter":116,"./listen":118,"./off":119,"./on":120}],118:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _inDOM = require('../util/inDOM');
var _inDOM2 = _interopRequireDefault(_inDOM);
var _on = require('./on');
var _on2 = _interopRequireDefault(_on);
var _off = require('./off');
var _off2 = _interopRequireDefault(_off);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var listen = function listen() {};
if (_inDOM2.default) {
listen = function listen(node, eventName, handler, capture) {
(0, _on2.default)(node, eventName, handler, capture);
return function () {
(0, _off2.default)(node, eventName, handler, capture);
};
};
}
exports.default = listen;
module.exports = exports['default'];
},{"../util/inDOM":139,"./off":119,"./on":120}],119:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _inDOM = require('../util/inDOM');
var _inDOM2 = _interopRequireDefault(_inDOM);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var off = function off() {};
if (_inDOM2.default) {
off = function () {
if (document.addEventListener) return function (node, eventName, handler, capture) {
return node.removeEventListener(eventName, handler, capture || false);
};else if (document.attachEvent) return function (node, eventName, handler) {
return node.detachEvent('on' + eventName, handler);
};
}();
}
exports.default = off;
module.exports = exports['default'];
},{"../util/inDOM":139}],120:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _inDOM = require('../util/inDOM');
var _inDOM2 = _interopRequireDefault(_inDOM);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var on = function on() {};
if (_inDOM2.default) {
on = function () {
if (document.addEventListener) return function (node, eventName, handler, capture) {
return node.addEventListener(eventName, handler, capture || false);
};else if (document.attachEvent) return function (node, eventName, handler) {
return node.attachEvent('on' + eventName, function (e) {
e = e || window.event;
e.target = e.target || e.srcElement;
e.currentTarget = node;
handler.call(node, e);
});
};
}();
}
exports.default = on;
module.exports = exports['default'];
},{"../util/inDOM":139}],121:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = ownerDocument;
function ownerDocument(node) {
return node && node.ownerDocument || document;
}
module.exports = exports["default"];
},{}],122:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _inDOM = require('../util/inDOM');
var _inDOM2 = _interopRequireDefault(_inDOM);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = function () {
// HTML DOM and SVG DOM may have different support levels,
// so we need to check on context instead of a document root element.
return _inDOM2.default ? function (context, node) {
if (context.contains) {
return context.contains(node);
} else if (context.compareDocumentPosition) {
return context === node || !!(context.compareDocumentPosition(node) & 16);
} else {
return fallback(context, node);
}
} : fallback;
}();
function fallback(context, node) {
if (node) do {
if (node === context) return true;
} while (node = node.parentNode);
return false;
}
module.exports = exports['default'];
},{"../util/inDOM":139}],123:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getWindow;
function getWindow(node) {
return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false;
}
module.exports = exports["default"];
},{}],124:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = offset;
var _contains = require('./contains');
var _contains2 = _interopRequireDefault(_contains);
var _isWindow = require('./isWindow');
var _isWindow2 = _interopRequireDefault(_isWindow);
var _ownerDocument = require('../ownerDocument');
var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function offset(node) {
var doc = (0, _ownerDocument2.default)(node),
win = (0, _isWindow2.default)(doc),
docElem = doc && doc.documentElement,
box = { top: 0, left: 0, height: 0, width: 0 };
if (!doc) return;
// Make sure it's not a disconnected DOM node
if (!(0, _contains2.default)(docElem, node)) return box;
if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect();
// IE8 getBoundingClientRect doesn't support width & height
box = {
top: box.top + (win.pageYOffset || docElem.scrollTop) - (docElem.clientTop || 0),
left: box.left + (win.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || 0),
width: (box.width == null ? node.offsetWidth : box.width) || 0,
height: (box.height == null ? node.offsetHeight : box.height) || 0
};
return box;
}
module.exports = exports['default'];
},{"../ownerDocument":121,"./contains":122,"./isWindow":123}],125:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = offsetParent;
var _ownerDocument = require('../ownerDocument');
var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
var _style = require('../style');
var _style2 = _interopRequireDefault(_style);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function nodeName(node) {
return node.nodeName && node.nodeName.toLowerCase();
}
function offsetParent(node) {
var doc = (0, _ownerDocument2.default)(node),
offsetParent = node && node.offsetParent;
while (offsetParent && nodeName(node) !== 'html' && (0, _style2.default)(offsetParent, 'position') === 'static') {
offsetParent = offsetParent.offsetParent;
}
return offsetParent || doc.documentElement;
}
module.exports = exports['default'];
},{"../ownerDocument":121,"../style":131}],126:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: 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; };
exports.default = position;
var _offset = require('./offset');
var _offset2 = _interopRequireDefault(_offset);
var _offsetParent = require('./offsetParent');
var _offsetParent2 = _interopRequireDefault(_offsetParent);
var _scrollTop = require('./scrollTop');
var _scrollTop2 = _interopRequireDefault(_scrollTop);
var _scrollLeft = require('./scrollLeft');
var _scrollLeft2 = _interopRequireDefault(_scrollLeft);
var _style = require('../style');
var _style2 = _interopRequireDefault(_style);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function nodeName(node) {
return node.nodeName && node.nodeName.toLowerCase();
}
function position(node, offsetParent) {
var parentOffset = { top: 0, left: 0 },
offset;
// Fixed elements are offset from window (parentOffset = {top:0, left: 0},
// because it is its only offset parent
if ((0, _style2.default)(node, 'position') === 'fixed') {
offset = node.getBoundingClientRect();
} else {
offsetParent = offsetParent || (0, _offsetParent2.default)(node);
offset = (0, _offset2.default)(node);
if (nodeName(offsetParent) !== 'html') parentOffset = (0, _offset2.default)(offsetParent);
parentOffset.top += parseInt((0, _style2.default)(offsetParent, 'borderTopWidth'), 10) - (0, _scrollTop2.default)(offsetParent) || 0;
parentOffset.left += parseInt((0, _style2.default)(offsetParent, 'borderLeftWidth'), 10) - (0, _scrollLeft2.default)(offsetParent) || 0;
}
// Subtract parent offsets and node margins
return _extends({}, offset, {
top: offset.top - parentOffset.top - (parseInt((0, _style2.default)(node, 'marginTop'), 10) || 0),
left: offset.left - parentOffset.left - (parseInt((0, _style2.default)(node, 'marginLeft'), 10) || 0)
});
}
module.exports = exports['default'];
},{"../style":131,"./offset":124,"./offsetParent":125,"./scrollLeft":128,"./scrollTop":129}],127:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = qsa;
// Zepto.js
// (c) 2010-2015 Thomas Fuchs
// Zepto.js may be freely distributed under the MIT license.
var simpleSelectorRE = /^[\w-]*$/;
var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice);
function qsa(element, selector) {
var maybeID = selector[0] === '#',
maybeClass = selector[0] === '.',
nameOnly = maybeID || maybeClass ? selector.slice(1) : selector,
isSimple = simpleSelectorRE.test(nameOnly),
found;
if (isSimple) {
if (maybeID) {
element = element.getElementById ? element : document;
return (found = element.getElementById(nameOnly)) ? [found] : [];
}
if (element.getElementsByClassName && maybeClass) return toArray(element.getElementsByClassName(nameOnly));
return toArray(element.getElementsByTagName(selector));
}
return toArray(element.querySelectorAll(selector));
}
module.exports = exports['default'];
},{}],128:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = scrollTop;
var _isWindow = require('./isWindow');
var _isWindow2 = _interopRequireDefault(_isWindow);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function scrollTop(node, val) {
var win = (0, _isWindow2.default)(node);
if (val === undefined) return win ? 'pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft : node.scrollLeft;
if (win) win.scrollTo(val, 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop);else node.scrollLeft = val;
}
module.exports = exports['default'];
},{"./isWindow":123}],129:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = scrollTop;
var _isWindow = require('./isWindow');
var _isWindow2 = _interopRequireDefault(_isWindow);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function scrollTop(node, val) {
var win = (0, _isWindow2.default)(node);
if (val === undefined) return win ? 'pageYOffset' in win ? win.pageYOffset : win.document.documentElement.scrollTop : node.scrollTop;
if (win) win.scrollTo('pageXOffset' in win ? win.pageXOffset : win.document.documentElement.scrollLeft, val);else node.scrollTop = val;
}
module.exports = exports['default'];
},{"./isWindow":123}],130:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _getComputedStyle;
var _camelizeStyle = require('../util/camelizeStyle');
var _camelizeStyle2 = _interopRequireDefault(_camelizeStyle);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var rposition = /^(top|right|bottom|left)$/;
var rnumnonpx = /^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i;
function _getComputedStyle(node) {
if (!node) throw new TypeError('No Element passed to `getComputedStyle()`');
var doc = node.ownerDocument;
return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : {
//ie 8 "magic" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72
getPropertyValue: function getPropertyValue(prop) {
var style = node.style;
prop = (0, _camelizeStyle2.default)(prop);
if (prop == 'float') prop = 'styleFloat';
var current = node.currentStyle[prop] || null;
if (current == null && style && style[prop]) current = style[prop];
if (rnumnonpx.test(current) && !rposition.test(prop)) {
// Remember the original values
var left = style.left;
var runStyle = node.runtimeStyle;
var rsLeft = runStyle && runStyle.left;
// Put in the new values to get a computed value out
if (rsLeft) runStyle.left = node.currentStyle.left;
style.left = prop === 'fontSize' ? '1em' : current;
current = style.pixelLeft + 'px';
// Revert the changed values
style.left = left;
if (rsLeft) runStyle.left = rsLeft;
}
return current;
}
};
}
module.exports = exports['default'];
},{"../util/camelizeStyle":136}],131:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = style;
var _camelizeStyle = require('../util/camelizeStyle');
var _camelizeStyle2 = _interopRequireDefault(_camelizeStyle);
var _hyphenateStyle = require('../util/hyphenateStyle');
var _hyphenateStyle2 = _interopRequireDefault(_hyphenateStyle);
var _getComputedStyle2 = require('./getComputedStyle');
var _getComputedStyle3 = _interopRequireDefault(_getComputedStyle2);
var _removeStyle = require('./removeStyle');
var _removeStyle2 = _interopRequireDefault(_removeStyle);
var _properties = require('../transition/properties');
var _isTransform = require('../transition/isTransform');
var _isTransform2 = _interopRequireDefault(_isTransform);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function style(node, property, value) {
var css = '';
var transforms = '';
var props = property;
if (typeof property === 'string') {
if (value === undefined) {
return node.style[(0, _camelizeStyle2.default)(property)] || (0, _getComputedStyle3.default)(node).getPropertyValue((0, _hyphenateStyle2.default)(property));
} else {
(props = {})[property] = value;
}
}
Object.keys(props).forEach(function (key) {
var value = props[key];
if (!value && value !== 0) {
(0, _removeStyle2.default)(node, (0, _hyphenateStyle2.default)(key));
} else if ((0, _isTransform2.default)(key)) {
transforms += key + '(' + value + ') ';
} else {
css += (0, _hyphenateStyle2.default)(key) + ': ' + value + ';';
}
});
if (transforms) {
css += _properties.transform + ': ' + transforms + ';';
}
node.style.cssText += ';' + css;
}
module.exports = exports['default'];
},{"../transition/isTransform":133,"../transition/properties":134,"../util/camelizeStyle":136,"../util/hyphenateStyle":138,"./getComputedStyle":130,"./removeStyle":132}],132:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = removeStyle;
function removeStyle(node, key) {
return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key);
}
module.exports = exports['default'];
},{}],133:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = isTransform;
var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i;
function isTransform(property) {
return !!(property && supportedTransforms.test(property));
}
module.exports = exports["default"];
},{}],134:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.animationEnd = exports.animationDelay = exports.animationTiming = exports.animationDuration = exports.animationName = exports.transitionEnd = exports.transitionDuration = exports.transitionDelay = exports.transitionTiming = exports.transitionProperty = exports.transform = undefined;
var _inDOM = require('../util/inDOM');
var _inDOM2 = _interopRequireDefault(_inDOM);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var transform = 'transform';
var prefix = void 0,
transitionEnd = void 0,
animationEnd = void 0;
var transitionProperty = void 0,
transitionDuration = void 0,
transitionTiming = void 0,
transitionDelay = void 0;
var animationName = void 0,
animationDuration = void 0,
animationTiming = void 0,
animationDelay = void 0;
if (_inDOM2.default) {
var _getTransitionPropert = getTransitionProperties();
prefix = _getTransitionPropert.prefix;
exports.transitionEnd = transitionEnd = _getTransitionPropert.transitionEnd;
exports.animationEnd = animationEnd = _getTransitionPropert.animationEnd;
exports.transform = transform = prefix + '-' + transform;
exports.transitionProperty = transitionProperty = prefix + '-transition-property';
exports.transitionDuration = transitionDuration = prefix + '-transition-duration';
exports.transitionDelay = transitionDelay = prefix + '-transition-delay';
exports.transitionTiming = transitionTiming = prefix + '-transition-timing-function';
exports.animationName = animationName = prefix + '-animation-name';
exports.animationDuration = animationDuration = prefix + '-animation-duration';
exports.animationTiming = animationTiming = prefix + '-animation-delay';
exports.animationDelay = animationDelay = prefix + '-animation-timing-function';
}
exports.transform = transform;
exports.transitionProperty = transitionProperty;
exports.transitionTiming = transitionTiming;
exports.transitionDelay = transitionDelay;
exports.transitionDuration = transitionDuration;
exports.transitionEnd = transitionEnd;
exports.animationName = animationName;
exports.animationDuration = animationDuration;
exports.animationTiming = animationTiming;
exports.animationDelay = animationDelay;
exports.animationEnd = animationEnd;
exports.default = {
transform: transform,
end: transitionEnd,
property: transitionProperty,
timing: transitionTiming,
delay: transitionDelay,
duration: transitionDuration
};
function getTransitionProperties() {
var style = document.createElement('div').style;
var vendorMap = {
O: function O(e) {
return 'o' + e.toLowerCase();
},
Moz: function Moz(e) {
return e.toLowerCase();
},
Webkit: function Webkit(e) {
return 'webkit' + e;
},
ms: function ms(e) {
return 'MS' + e;
}
};
var vendors = Object.keys(vendorMap);
var transitionEnd = void 0,
animationEnd = void 0;
var prefix = '';
for (var i = 0; i < vendors.length; i++) {
var vendor = vendors[i];
if (vendor + 'TransitionProperty' in style) {
prefix = '-' + vendor.toLowerCase();
transitionEnd = vendorMap[vendor]('TransitionEnd');
animationEnd = vendorMap[vendor]('AnimationEnd');
break;
}
}
if (!transitionEnd && 'transitionProperty' in style) transitionEnd = 'transitionend';
if (!animationEnd && 'animationName' in style) animationEnd = 'animationend';
style = null;
return { animationEnd: animationEnd, transitionEnd: transitionEnd, prefix: prefix };
}
},{"../util/inDOM":139}],135:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = camelize;
var rHyphen = /-(.)/g;
function camelize(string) {
return string.replace(rHyphen, function (_, chr) {
return chr.toUpperCase();
});
}
module.exports = exports["default"];
},{}],136:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = camelizeStyleName;
var _camelize = require('./camelize');
var _camelize2 = _interopRequireDefault(_camelize);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var msPattern = /^-ms-/; /**
* Copyright 2014-2015, Facebook, Inc.
* All rights reserved.
* https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js
*/
function camelizeStyleName(string) {
return (0, _camelize2.default)(string.replace(msPattern, 'ms-'));
}
module.exports = exports['default'];
},{"./camelize":135}],137:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = hyphenate;
var rUpper = /([A-Z])/g;
function hyphenate(string) {
return string.replace(rUpper, '-$1').toLowerCase();
}
module.exports = exports['default'];
},{}],138:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = hyphenateStyleName;
var _hyphenate = require('./hyphenate');
var _hyphenate2 = _interopRequireDefault(_hyphenate);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var msPattern = /^ms-/; /**
* Copyright 2013-2014, Facebook, Inc.
* All rights reserved.
* https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js
*/
function hyphenateStyleName(string) {
return (0, _hyphenate2.default)(string).replace(msPattern, '-ms-');
}
module.exports = exports['default'];
},{"./hyphenate":137}],139:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
module.exports = exports['default'];
},{}],140:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (recalc) {
if (!size || recalc) {
if (_inDOM2.default) {
var scrollDiv = document.createElement('div');
scrollDiv.style.position = 'absolute';
scrollDiv.style.top = '-9999px';
scrollDiv.style.width = '50px';
scrollDiv.style.height = '50px';
scrollDiv.style.overflow = 'scroll';
document.body.appendChild(scrollDiv);
size = scrollDiv.offsetWidth - scrollDiv.clientWidth;
document.body.removeChild(scrollDiv);
}
}
return size;
};
var _inDOM = require('./inDOM');
var _inDOM2 = _interopRequireDefault(_inDOM);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var size = void 0;
module.exports = exports['default'];
},{"./inDOM":139}],141:[function(require,module,exports){
(function(root,factory){
if (typeof define === 'function' && define.amd) {
define(factory);
} else if (typeof exports === 'object') {
module.exports = factory();
} else {
root.eventListener = factory();
}
}(this, function () {
function wrap(standard, fallback) {
return function (el, evtName, listener, useCapture) {
if (el[standard]) {
el[standard](evtName, listener, useCapture);
} else if (el[fallback]) {
el[fallback]('on' + evtName, listener);
}
}
}
return {
add: wrap('addEventListener', 'attachEvent'),
remove: wrap('removeEventListener', 'detachEvent')
};
}));
},{}],142:[function(require,module,exports){
/*!
Copyright (c) 2015 Jed Watson.
Based on code that is Copyright 2013-2015, Facebook, Inc.
All rights reserved.
*/
/* global define */
(function () {
'use strict';
var canUseDOM = !!(
typeof window !== 'undefined' &&
window.document &&
window.document.createElement
);
var ExecutionEnvironment = {
canUseDOM: canUseDOM,
canUseWorkers: typeof Worker !== 'undefined',
canUseEventListeners:
canUseDOM && !!(window.addEventListener || window.attachEvent),
canUseViewport: canUseDOM && !!window.screen
};
if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {
define(function () {
return ExecutionEnvironment;
});
} else if (typeof module !== 'undefined' && module.exports) {
module.exports = ExecutionEnvironment;
} else {
window.ExecutionEnvironment = ExecutionEnvironment;
}
}());
},{}],143:[function(require,module,exports){
(function (process){
/**
* Copyright 2013-2015, Facebook, Inc.
* All rights reserved.
*
* This source code is licensed under the BSD-style license found in the
* LICENSE file in the root directory of this source tree. An additional grant
* of patent rights can be found in the PATENTS file in the same directory.
*/
'use strict';
/**
* Use invariant() to assert state which your program assumes to be true.
*
* Provide sprintf-style format (only %s is supported) and arguments
* to provide information about what broke and what you were
* expecting.
*
* The invariant message will be stripped in production, but the invariant
* will remain to ensure logic does not differ in production.
*/
var invariant = function(condition, format, a, b, c, d, e, f) {
if (process.env.NODE_ENV !== 'production') {
if (format === undefined) {
throw new Error('invariant requires an error message argument');
}
}
if (!condition) {
var error;
if (format === undefined) {
error = new Error(
'Minified exception occurred; use the non-minified dev environment ' +
'for the full error message and additional helpful warnings.'
);
} else {
var args = [a, b, c, d, e, f];
var argIndex = 0;
error = new Error(
format.replace(/%s/g, function() { return args[argIndex++]; })
);
error.name = 'Invariant Violation';
}
error.framesToPop = 1; // we don't care about invariant's own frame
throw error;
}
};
module.exports = invariant;
}).call(this,require('_process'))
},{"_process":334}],144:[function(require,module,exports){
// Source: http://jsfiddle.net/vWx8V/
// http://stackoverflow.com/questions/5603195/full-list-of-javascript-keycodes
/**
* Conenience method returns corresponding value for given keyName or keyCode.
*
* @param {Mixed} keyCode {Number} or keyName {String}
* @return {Mixed}
* @api public
*/
exports = module.exports = function(searchInput) {
// Keyboard Events
if (searchInput && 'object' === typeof searchInput) {
var hasKeyCode = searchInput.which || searchInput.keyCode || searchInput.charCode
if (hasKeyCode) searchInput = hasKeyCode
}
// Numbers
if ('number' === typeof searchInput) return names[searchInput]
// Everything else (cast to string)
var search = String(searchInput)
// check codes
var foundNamedKey = codes[search.toLowerCase()]
if (foundNamedKey) return foundNamedKey
// check aliases
var foundNamedKey = aliases[search.toLowerCase()]
if (foundNamedKey) return foundNamedKey
// weird character?
if (search.length === 1) return search.charCodeAt(0)
return undefined
}
/**
* Get by name
*
* exports.code['enter'] // => 13
*/
var codes = exports.code = exports.codes = {
'backspace': 8,
'tab': 9,
'enter': 13,
'shift': 16,
'ctrl': 17,
'alt': 18,
'pause/break': 19,
'caps lock': 20,
'esc': 27,
'space': 32,
'page up': 33,
'page down': 34,
'end': 35,
'home': 36,
'left': 37,
'up': 38,
'right': 39,
'down': 40,
'insert': 45,
'delete': 46,
'command': 91,
'left command': 91,
'right command': 93,
'numpad *': 106,
'numpad +': 107,
'numpad -': 109,
'numpad .': 110,
'numpad /': 111,
'num lock': 144,
'scroll lock': 145,
'my computer': 182,
'my calculator': 183,
';': 186,
'=': 187,
',': 188,
'-': 189,
'.': 190,
'/': 191,
'`': 192,
'[': 219,
'\\': 220,
']': 221,
"'": 222
}
// Helper aliases
var aliases = exports.aliases = {
'windows': 91,
'⇧': 16,
'⌥': 18,
'⌃': 17,
'⌘': 91,
'ctl': 17,
'control': 17,
'option': 18,
'pause': 19,
'break': 19,
'caps': 20,
'return': 13,
'escape': 27,
'spc': 32,
'pgup': 33,
'pgdn': 34,
'ins': 45,
'del': 46,
'cmd': 91
}
/*!
* Programatically add the following
*/
// lower case chars
for (i = 97; i < 123; i++) codes[String.fromCharCode(i)] = i - 32
// numbers
for (var i = 48; i < 58; i++) codes[i - 48] = i
// function keys
for (i = 1; i < 13; i++) codes['f'+i] = i + 111
// numpad keys
for (i = 0; i < 10; i++) codes['numpad '+i] = i + 96
/**
* Get by code
*
* exports.name[13] // => 'Enter'
*/
var names = exports.names = exports.title = {} // title for backward compat
// Create reverse mapping
for (i in codes) names[codes[i]] = i
// Add aliases
for (var alias in aliases) {
codes[alias] = aliases[alias]
}
},{}],145:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = all;
var _createChainableTypeChecker = require('./utils/createChainableTypeChecker');
var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function all() {
for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) {
validators[_key] = arguments[_key];
}
function allPropTypes() {
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
var error = null;
validators.forEach(function (validator) {
if (error != null) {
return;
}
var result = validator.apply(undefined, args);
if (result != null) {
error = result;
}
});
return error;
}
return (0, _createChainableTypeChecker2.default)(allPropTypes);
}
module.exports = exports['default'];
},{"./utils/createChainableTypeChecker":150}],146:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _createChainableTypeChecker = require('./utils/createChainableTypeChecker');
var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function validate(props, propName, componentName, location, propFullName) {
var propValue = props[propName];
var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue);
if (_react2.default.isValidElement(propValue)) {
return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement. You can usually obtain a ReactComponent or DOMElement ' + 'from a ReactElement by attaching a ref to it.');
}
if ((propType !== 'object' || typeof propValue.render !== 'function') && propValue.nodeType !== 1) {
return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement.');
}
return null;
}
exports.default = (0, _createChainableTypeChecker2.default)(validate);
module.exports = exports['default'];
},{"./utils/createChainableTypeChecker":150,"react":321}],147:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = deprecated;
var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var warned = {};
function deprecated(validator, reason) {
return function validate(props, propName, componentName, location, propFullName) {
var componentNameSafe = componentName || '<<anonymous>>';
var propFullNameSafe = propFullName || propName;
if (props[propName] != null) {
var messageKey = componentName + '.' + propName;
(0, _warning2.default)(warned[messageKey], 'The ' + location + ' `' + propFullNameSafe + '` of ' + ('`' + componentNameSafe + '` is deprecated. ' + reason + '.'));
warned[messageKey] = true;
}
for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {
args[_key - 5] = arguments[_key];
}
return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args));
};
}
/* eslint-disable no-underscore-dangle */
function _resetWarned() {
warned = {};
}
deprecated._resetWarned = _resetWarned;
/* eslint-enable no-underscore-dangle */
module.exports = exports['default'];
},{"warning":330}],148:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _createChainableTypeChecker = require('./utils/createChainableTypeChecker');
var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function elementType(props, propName, componentName, location, propFullName) {
var propValue = props[propName];
var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue);
if (_react2.default.isValidElement(propValue)) {
return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + 'or a ReactClass).');
}
if (propType !== 'function' && propType !== 'string') {
return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + 'or a ReactClass).');
}
return null;
}
exports.default = (0, _createChainableTypeChecker2.default)(elementType);
module.exports = exports['default'];
},{"./utils/createChainableTypeChecker":150,"react":321}],149:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = isRequiredForA11y;
function isRequiredForA11y(validator) {
return function validate(props, propName, componentName, location, propFullName) {
var componentNameSafe = componentName || '<<anonymous>>';
var propFullNameSafe = propFullName || propName;
if (props[propName] == null) {
return new Error('The ' + location + ' `' + propFullNameSafe + '` is required to make ' + ('`' + componentNameSafe + '` accessible for users of assistive ') + 'technologies such as screen readers.');
}
for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) {
args[_key - 5] = arguments[_key];
}
return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args));
};
}
module.exports = exports['default'];
},{}],150:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = createChainableTypeChecker;
/**
* Copyright 2013-present, 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.
*/
// Mostly taken from ReactPropTypes.
function createChainableTypeChecker(validate) {
function checkType(isRequired, props, propName, componentName, location, propFullName) {
var componentNameSafe = componentName || '<<anonymous>>';
var propFullNameSafe = propFullName || propName;
if (props[propName] == null) {
if (isRequired) {
return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.'));
}
return null;
}
for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) {
args[_key - 6] = arguments[_key];
}
return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args));
}
var chainedCheckType = checkType.bind(null, false);
chainedCheckType.isRequired = checkType.bind(null, true);
return chainedCheckType;
}
module.exports = exports['default'];
},{}],151:[function(require,module,exports){
(function (process){
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
'use strict';
if (process.env.NODE_ENV !== 'production') {
var invariant = require('fbjs/lib/invariant');
var warning = require('fbjs/lib/warning');
var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');
var loggedTypeFailures = {};
}
/**
* Assert that the values match with the type specs.
* Error messages are memorized and will only be shown once.
*
* @param {object} typeSpecs Map of name to a ReactPropType
* @param {object} values Runtime values that need to be type-checked
* @param {string} location e.g. "prop", "context", "child context"
* @param {string} componentName Name of the component for error messages.
* @param {?Function} getStack Returns the component stack.
* @private
*/
function checkPropTypes(typeSpecs, values, location, componentName, getStack) {
if (process.env.NODE_ENV !== 'production') {
for (var typeSpecName in typeSpecs) {
if (typeSpecs.hasOwnProperty(typeSpecName)) {
var error;
// Prop type validation may throw. In case they do, we don't want to
// fail the render phase where it didn't fail before. So we log it.
// After these have been cleaned up, we'll let them throw.
try {
// This is intentionally an invariant that gets caught. It's the same
// behavior as without this statement except with a better message.
invariant(typeof typeSpecs[typeSpecName] === 'function', '%s: %s type `%s` is invalid; it must be a function, usually from ' + 'the `prop-types` package, but received `%s`.', componentName || 'React class', location, typeSpecName, typeof typeSpecs[typeSpecName]);
error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);
} catch (ex) {
error = ex;
}
warning(!error || error instanceof Error, '%s: type specification of %s `%s` is invalid; the type checker ' + 'function must return `null` or an `Error` but returned a %s. ' + 'You may have forgotten to pass an argument to the type checker ' + 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' + 'shape all require an argument).', componentName || 'React class', location, typeSpecName, typeof error);
if (error instanceof Error && !(error.message in loggedTypeFailures)) {
// Only monitor this failure once because there tends to be a lot of the
// same error.
loggedTypeFailures[error.message] = true;
var stack = getStack ? getStack() : '';
warning(false, 'Failed %s type: %s%s', location, error.message, stack != null ? stack : '');
}
}
}
}
}
module.exports = checkPropTypes;
}).call(this,require('_process'))
},{"./lib/ReactPropTypesSecret":155,"_process":334,"fbjs/lib/invariant":157,"fbjs/lib/warning":158}],152:[function(require,module,exports){
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
'use strict';
var emptyFunction = require('fbjs/lib/emptyFunction');
var invariant = require('fbjs/lib/invariant');
var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');
module.exports = function() {
function shim(props, propName, componentName, location, propFullName, secret) {
if (secret === ReactPropTypesSecret) {
// It is still safe when called from React.
return;
}
invariant(
false,
'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
'Use PropTypes.checkPropTypes() to call them. ' +
'Read more at http://fb.me/use-check-prop-types'
);
};
shim.isRequired = shim;
function getShim() {
return shim;
};
// Important!
// Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.
var ReactPropTypes = {
array: shim,
bool: shim,
func: shim,
number: shim,
object: shim,
string: shim,
symbol: shim,
any: shim,
arrayOf: getShim,
element: shim,
instanceOf: getShim,
node: shim,
objectOf: getShim,
oneOf: getShim,
oneOfType: getShim,
shape: getShim,
exact: getShim
};
ReactPropTypes.checkPropTypes = emptyFunction;
ReactPropTypes.PropTypes = ReactPropTypes;
return ReactPropTypes;
};
},{"./lib/ReactPropTypesSecret":155,"fbjs/lib/emptyFunction":156,"fbjs/lib/invariant":157}],153:[function(require,module,exports){
(function (process){
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
'use strict';
var emptyFunction = require('fbjs/lib/emptyFunction');
var invariant = require('fbjs/lib/invariant');
var warning = require('fbjs/lib/warning');
var assign = require('object-assign');
var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');
var checkPropTypes = require('./checkPropTypes');
module.exports = function(isValidElement, throwOnDirectAccess) {
/* global Symbol */
var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;
var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.
/**
* Returns the iterator method function contained on the iterable object.
*
* Be sure to invoke the function with the iterable as context:
*
* var iteratorFn = getIteratorFn(myIterable);
* if (iteratorFn) {
* var iterator = iteratorFn.call(myIterable);
* ...
* }
*
* @param {?object} maybeIterable
* @return {?function}
*/
function getIteratorFn(maybeIterable) {
var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);
if (typeof iteratorFn === 'function') {
return iteratorFn;
}
}
/**
* Collection of methods that allow declaration and validation of props that are
* supplied to React components. Example usage:
*
* var Props = require('ReactPropTypes');
* var MyArticle = React.createClass({
* propTypes: {
* // An optional string prop named "description".
* description: Props.string,
*
* // A required enum prop named "category".
* category: Props.oneOf(['News','Photos']).isRequired,
*
* // A prop named "dialog" that requires an instance of Dialog.
* dialog: Props.instanceOf(Dialog).isRequired
* },
* render: function() { ... }
* });
*
* A more formal specification of how these methods are used:
*
* type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)
* decl := ReactPropTypes.{type}(.isRequired)?
*
* Each and every declaration produces a function with the same signature. This
* allows the creation of custom validation functions. For example:
*
* var MyLink = React.createClass({
* propTypes: {
* // An optional string or URI prop named "href".
* href: function(props, propName, componentName) {
* var propValue = props[propName];
* if (propValue != null && typeof propValue !== 'string' &&
* !(propValue instanceof URI)) {
* return new Error(
* 'Expected a string or an URI for ' + propName + ' in ' +
* componentName
* );
* }
* }
* },
* render: function() {...}
* });
*
* @internal
*/
var ANONYMOUS = '<<anonymous>>';
// Important!
// Keep this list in sync with production version in `./factoryWithThrowingShims.js`.
var ReactPropTypes = {
array: createPrimitiveTypeChecker('array'),
bool: createPrimitiveTypeChecker('boolean'),
func: createPrimitiveTypeChecker('function'),
number: createPrimitiveTypeChecker('number'),
object: createPrimitiveTypeChecker('object'),
string: createPrimitiveTypeChecker('string'),
symbol: createPrimitiveTypeChecker('symbol'),
any: createAnyTypeChecker(),
arrayOf: createArrayOfTypeChecker,
element: createElementTypeChecker(),
instanceOf: createInstanceTypeChecker,
node: createNodeChecker(),
objectOf: createObjectOfTypeChecker,
oneOf: createEnumTypeChecker,
oneOfType: createUnionTypeChecker,
shape: createShapeTypeChecker,
exact: createStrictShapeTypeChecker,
};
/**
* inlined Object.is polyfill to avoid requiring consumers ship their own
* https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is
*/
/*eslint-disable no-self-compare*/
function is(x, y) {
// SameValue algorithm
if (x === y) {
// Steps 1-5, 7-10
// Steps 6.b-6.e: +0 != -0
return x !== 0 || 1 / x === 1 / y;
} else {
// Step 6.a: NaN == NaN
return x !== x && y !== y;
}
}
/*eslint-enable no-self-compare*/
/**
* We use an Error-like object for backward compatibility as people may call
* PropTypes directly and inspect their output. However, we don't use real
* Errors anymore. We don't inspect their stack anyway, and creating them
* is prohibitively expensive if they are created too often, such as what
* happens in oneOfType() for any type before the one that matched.
*/
function PropTypeError(message) {
this.message = message;
this.stack = '';
}
// Make `instanceof Error` still work for returned errors.
PropTypeError.prototype = Error.prototype;
function createChainableTypeChecker(validate) {
if (process.env.NODE_ENV !== 'production') {
var manualPropTypeCallCache = {};
var manualPropTypeWarningCount = 0;
}
function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {
componentName = componentName || ANONYMOUS;
propFullName = propFullName || propName;
if (secret !== ReactPropTypesSecret) {
if (throwOnDirectAccess) {
// New behavior only for users of `prop-types` package
invariant(
false,
'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +
'Use `PropTypes.checkPropTypes()` to call them. ' +
'Read more at http://fb.me/use-check-prop-types'
);
} else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {
// Old behavior for people using React.PropTypes
var cacheKey = componentName + ':' + propName;
if (
!manualPropTypeCallCache[cacheKey] &&
// Avoid spamming the console because they are often not actionable except for lib authors
manualPropTypeWarningCount < 3
) {
warning(
false,
'You are manually calling a React.PropTypes validation ' +
'function for the `%s` prop on `%s`. This is deprecated ' +
'and will throw in the standalone `prop-types` package. ' +
'You may be seeing this warning due to a third-party PropTypes ' +
'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.',
propFullName,
componentName
);
manualPropTypeCallCache[cacheKey] = true;
manualPropTypeWarningCount++;
}
}
}
if (props[propName] == null) {
if (isRequired) {
if (props[propName] === null) {
return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));
}
return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));
}
return null;
} else {
return validate(props, propName, componentName, location, propFullName);
}
}
var chainedCheckType = checkType.bind(null, false);
chainedCheckType.isRequired = checkType.bind(null, true);
return chainedCheckType;
}
function createPrimitiveTypeChecker(expectedType) {
function validate(props, propName, componentName, location, propFullName, secret) {
var propValue = props[propName];
var propType = getPropType(propValue);
if (propType !== expectedType) {
// `propValue` being instance of, say, date/regexp, pass the 'object'
// check, but we can offer a more precise error message here rather than
// 'of type `object`'.
var preciseType = getPreciseType(propValue);
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'));
}
return null;
}
return createChainableTypeChecker(validate);
}
function createAnyTypeChecker() {
return createChainableTypeChecker(emptyFunction.thatReturnsNull);
}
function createArrayOfTypeChecker(typeChecker) {
function validate(props, propName, componentName, location, propFullName) {
if (typeof typeChecker !== 'function') {
return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');
}
var propValue = props[propName];
if (!Array.isArray(propValue)) {
var propType = getPropType(propValue);
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));
}
for (var i = 0; i < propValue.length; i++) {
var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);
if (error instanceof Error) {
return error;
}
}
return null;
}
return createChainableTypeChecker(validate);
}
function createElementTypeChecker() {
function validate(props, propName, componentName, location, propFullName) {
var propValue = props[propName];
if (!isValidElement(propValue)) {
var propType = getPropType(propValue);
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));
}
return null;
}
return createChainableTypeChecker(validate);
}
function createInstanceTypeChecker(expectedClass) {
function validate(props, propName, componentName, location, propFullName) {
if (!(props[propName] instanceof expectedClass)) {
var expectedClassName = expectedClass.name || ANONYMOUS;
var actualClassName = getClassName(props[propName]);
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));
}
return null;
}
return createChainableTypeChecker(validate);
}
function createEnumTypeChecker(expectedValues) {
if (!Array.isArray(expectedValues)) {
process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOf, expected an instance of array.') : void 0;
return emptyFunction.thatReturnsNull;
}
function validate(props, propName, componentName, location, propFullName) {
var propValue = props[propName];
for (var i = 0; i < expectedValues.length; i++) {
if (is(propValue, expectedValues[i])) {
return null;
}
}
var valuesString = JSON.stringify(expectedValues);
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));
}
return createChainableTypeChecker(validate);
}
function createObjectOfTypeChecker(typeChecker) {
function validate(props, propName, componentName, location, propFullName) {
if (typeof typeChecker !== 'function') {
return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');
}
var propValue = props[propName];
var propType = getPropType(propValue);
if (propType !== 'object') {
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));
}
for (var key in propValue) {
if (propValue.hasOwnProperty(key)) {
var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
if (error instanceof Error) {
return error;
}
}
}
return null;
}
return createChainableTypeChecker(validate);
}
function createUnionTypeChecker(arrayOfTypeCheckers) {
if (!Array.isArray(arrayOfTypeCheckers)) {
process.env.NODE_ENV !== 'production' ? warning(false, 'Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;
return emptyFunction.thatReturnsNull;
}
for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
var checker = arrayOfTypeCheckers[i];
if (typeof checker !== 'function') {
warning(
false,
'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +
'received %s at index %s.',
getPostfixForTypeWarning(checker),
i
);
return emptyFunction.thatReturnsNull;
}
}
function validate(props, propName, componentName, location, propFullName) {
for (var i = 0; i < arrayOfTypeCheckers.length; i++) {
var checker = arrayOfTypeCheckers[i];
if (checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret) == null) {
return null;
}
}
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`.'));
}
return createChainableTypeChecker(validate);
}
function createNodeChecker() {
function validate(props, propName, componentName, location, propFullName) {
if (!isNode(props[propName])) {
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));
}
return null;
}
return createChainableTypeChecker(validate);
}
function createShapeTypeChecker(shapeTypes) {
function validate(props, propName, componentName, location, propFullName) {
var propValue = props[propName];
var propType = getPropType(propValue);
if (propType !== 'object') {
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
}
for (var key in shapeTypes) {
var checker = shapeTypes[key];
if (!checker) {
continue;
}
var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
if (error) {
return error;
}
}
return null;
}
return createChainableTypeChecker(validate);
}
function createStrictShapeTypeChecker(shapeTypes) {
function validate(props, propName, componentName, location, propFullName) {
var propValue = props[propName];
var propType = getPropType(propValue);
if (propType !== 'object') {
return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));
}
// We need to check all keys in case some are required but missing from
// props.
var allKeys = assign({}, props[propName], shapeTypes);
for (var key in allKeys) {
var checker = shapeTypes[key];
if (!checker) {
return new PropTypeError(
'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +
'\nBad object: ' + JSON.stringify(props[propName], null, ' ') +
'\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')
);
}
var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);
if (error) {
return error;
}
}
return null;
}
return createChainableTypeChecker(validate);
}
function isNode(propValue) {
switch (typeof propValue) {
case 'number':
case 'string':
case 'undefined':
return true;
case 'boolean':
return !propValue;
case 'object':
if (Array.isArray(propValue)) {
return propValue.every(isNode);
}
if (propValue === null || isValidElement(propValue)) {
return true;
}
var iteratorFn = getIteratorFn(propValue);
if (iteratorFn) {
var iterator = iteratorFn.call(propValue);
var step;
if (iteratorFn !== propValue.entries) {
while (!(step = iterator.next()).done) {
if (!isNode(step.value)) {
return false;
}
}
} else {
// Iterator will provide entry [k,v] tuples rather than values.
while (!(step = iterator.next()).done) {
var entry = step.value;
if (entry) {
if (!isNode(entry[1])) {
return false;
}
}
}
}
} else {
return false;
}
return true;
default:
return false;
}
}
function isSymbol(propType, propValue) {
// Native Symbol.
if (propType === 'symbol') {
return true;
}
// 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'
if (propValue['@@toStringTag'] === 'Symbol') {
return true;
}
// Fallback for non-spec compliant Symbols which are polyfilled.
if (typeof Symbol === 'function' && propValue instanceof Symbol) {
return true;
}
return false;
}
// Equivalent of `typeof` but with special handling for array and regexp.
function getPropType(propValue) {
var propType = typeof propValue;
if (Array.isArray(propValue)) {
return 'array';
}
if (propValue instanceof RegExp) {
// Old webkits (at least until Android 4.0) return 'function' rather than
// 'object' for typeof a RegExp. We'll normalize this here so that /bla/
// passes PropTypes.object.
return 'object';
}
if (isSymbol(propType, propValue)) {
return 'symbol';
}
return propType;
}
// This handles more types than `getPropType`. Only used for error messages.
// See `createPrimitiveTypeChecker`.
function getPreciseType(propValue) {
if (typeof propValue === 'undefined' || propValue === null) {
return '' + propValue;
}
var propType = getPropType(propValue);
if (propType === 'object') {
if (propValue instanceof Date) {
return 'date';
} else if (propValue instanceof RegExp) {
return 'regexp';
}
}
return propType;
}
// Returns a string that is postfixed to a warning about an invalid type.
// For example, "undefined" or "of type array"
function getPostfixForTypeWarning(value) {
var type = getPreciseType(value);
switch (type) {
case 'array':
case 'object':
return 'an ' + type;
case 'boolean':
case 'date':
case 'regexp':
return 'a ' + type;
default:
return type;
}
}
// Returns class name of the object, if any.
function getClassName(propValue) {
if (!propValue.constructor || !propValue.constructor.name) {
return ANONYMOUS;
}
return propValue.constructor.name;
}
ReactPropTypes.checkPropTypes = checkPropTypes;
ReactPropTypes.PropTypes = ReactPropTypes;
return ReactPropTypes;
};
}).call(this,require('_process'))
},{"./checkPropTypes":151,"./lib/ReactPropTypesSecret":155,"_process":334,"fbjs/lib/emptyFunction":156,"fbjs/lib/invariant":157,"fbjs/lib/warning":158,"object-assign":159}],154:[function(require,module,exports){
(function (process){
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
if (process.env.NODE_ENV !== 'production') {
var REACT_ELEMENT_TYPE = (typeof Symbol === 'function' &&
Symbol.for &&
Symbol.for('react.element')) ||
0xeac7;
var isValidElement = function(object) {
return typeof object === 'object' &&
object !== null &&
object.$$typeof === REACT_ELEMENT_TYPE;
};
// By explicitly using `prop-types` you are opting into new development behavior.
// http://fb.me/prop-types-in-prod
var throwOnDirectAccess = true;
module.exports = require('./factoryWithTypeCheckers')(isValidElement, throwOnDirectAccess);
} else {
// By explicitly using `prop-types` you are opting into new production behavior.
// http://fb.me/prop-types-in-prod
module.exports = require('./factoryWithThrowingShims')();
}
}).call(this,require('_process'))
},{"./factoryWithThrowingShims":152,"./factoryWithTypeCheckers":153,"_process":334}],155:[function(require,module,exports){
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
'use strict';
var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
module.exports = ReactPropTypesSecret;
},{}],156:[function(require,module,exports){
"use strict";
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*
*/
function makeEmptyFunction(arg) {
return function () {
return arg;
};
}
/**
* This function accepts and discards inputs; it has no side effects. This is
* primarily useful idiomatically for overridable function endpoints which
* always need to be callable, since JS lacks a null-call idiom ala Cocoa.
*/
var emptyFunction = function emptyFunction() {};
emptyFunction.thatReturns = makeEmptyFunction;
emptyFunction.thatReturnsFalse = makeEmptyFunction(false);
emptyFunction.thatReturnsTrue = makeEmptyFunction(true);
emptyFunction.thatReturnsNull = makeEmptyFunction(null);
emptyFunction.thatReturnsThis = function () {
return this;
};
emptyFunction.thatReturnsArgument = function (arg) {
return arg;
};
module.exports = emptyFunction;
},{}],157:[function(require,module,exports){
(function (process){
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
'use strict';
/**
* Use invariant() to assert state which your program assumes to be true.
*
* Provide sprintf-style format (only %s is supported) and arguments
* to provide information about what broke and what you were
* expecting.
*
* The invariant message will be stripped in production, but the invariant
* will remain to ensure logic does not differ in production.
*/
var validateFormat = function validateFormat(format) {};
if (process.env.NODE_ENV !== 'production') {
validateFormat = function validateFormat(format) {
if (format === undefined) {
throw new Error('invariant requires an error message argument');
}
};
}
function invariant(condition, format, a, b, c, d, e, f) {
validateFormat(format);
if (!condition) {
var error;
if (format === undefined) {
error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.');
} else {
var args = [a, b, c, d, e, f];
var argIndex = 0;
error = new Error(format.replace(/%s/g, function () {
return args[argIndex++];
}));
error.name = 'Invariant Violation';
}
error.framesToPop = 1; // we don't care about invariant's own frame
throw error;
}
}
module.exports = invariant;
}).call(this,require('_process'))
},{"_process":334}],158:[function(require,module,exports){
(function (process){
/**
* Copyright (c) 2014-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*/
'use strict';
var emptyFunction = require('./emptyFunction');
/**
* Similar to invariant but only logs a warning if the condition is not met.
* This can be used to log issues in development environments in critical
* paths. Removing the logging code for production environments will keep the
* same logic and follow the same code paths.
*/
var warning = emptyFunction;
if (process.env.NODE_ENV !== 'production') {
var printWarning = function printWarning(format) {
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
var argIndex = 0;
var message = 'Warning: ' + format.replace(/%s/g, function () {
return args[argIndex++];
});
if (typeof console !== 'undefined') {
console.error(message);
}
try {
// --- Welcome to debugging React ---
// This error was thrown as a convenience so that you can use this stack
// to find the callsite that caused this warning to fire.
throw new Error(message);
} catch (x) {}
};
warning = function warning(condition, format) {
if (format === undefined) {
throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument');
}
if (format.indexOf('Failed Composite propType: ') === 0) {
return; // Ignore CompositeComponent proptype check.
}
if (!condition) {
for (var _len2 = arguments.length, args = Array(_len2 > 2 ? _len2 - 2 : 0), _key2 = 2; _key2 < _len2; _key2++) {
args[_key2 - 2] = arguments[_key2];
}
printWarning.apply(undefined, [format].concat(args));
}
};
}
module.exports = warning;
}).call(this,require('_process'))
},{"./emptyFunction":156,"_process":334}],159:[function(require,module,exports){
/*
object-assign
(c) Sindre Sorhus
@license MIT
*/
'use strict';
/* eslint-disable no-unused-vars */
var getOwnPropertySymbols = Object.getOwnPropertySymbols;
var hasOwnProperty = Object.prototype.hasOwnProperty;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
function toObject(val) {
if (val === null || val === undefined) {
throw new TypeError('Object.assign cannot be called with null or undefined');
}
return Object(val);
}
function shouldUseNative() {
try {
if (!Object.assign) {
return false;
}
// Detect buggy property enumeration order in older V8 versions.
// https://bugs.chromium.org/p/v8/issues/detail?id=4118
var test1 = new String('abc'); // eslint-disable-line no-new-wrappers
test1[5] = 'de';
if (Object.getOwnPropertyNames(test1)[0] === '5') {
return false;
}
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test2 = {};
for (var i = 0; i < 10; i++) {
test2['_' + String.fromCharCode(i)] = i;
}
var order2 = Object.getOwnPropertyNames(test2).map(function (n) {
return test2[n];
});
if (order2.join('') !== '0123456789') {
return false;
}
// https://bugs.chromium.org/p/v8/issues/detail?id=3056
var test3 = {};
'abcdefghijklmnopqrst'.split('').forEach(function (letter) {
test3[letter] = letter;
});
if (Object.keys(Object.assign({}, test3)).join('') !==
'abcdefghijklmnopqrst') {
return false;
}
return true;
} catch (err) {
// We don't expect any of the above to throw, but better to be safe.
return false;
}
}
module.exports = shouldUseNative() ? Object.assign : function (target, source) {
var from;
var to = toObject(target);
var symbols;
for (var s = 1; s < arguments.length; s++) {
from = Object(arguments[s]);
for (var key in from) {
if (hasOwnProperty.call(from, key)) {
to[key] = from[key];
}
}
if (getOwnPropertySymbols) {
symbols = getOwnPropertySymbols(from);
for (var i = 0; i < symbols.length; i++) {
if (propIsEnumerable.call(from, symbols[i])) {
to[symbols[i]] = from[symbols[i]];
}
}
}
}
return to;
};
},{}],160:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _PanelGroup = require('./PanelGroup');
var _PanelGroup2 = _interopRequireDefault(_PanelGroup);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Accordion = function (_React$Component) {
(0, _inherits3.default)(Accordion, _React$Component);
function Accordion() {
(0, _classCallCheck3.default)(this, Accordion);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Accordion.prototype.render = function render() {
return _react2.default.createElement(
_PanelGroup2.default,
(0, _extends3.default)({}, this.props, { accordion: true }),
this.props.children
);
};
return Accordion;
}(_react2.default.Component);
exports.default = Accordion;
module.exports = exports['default'];
},{"./PanelGroup":229,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/possibleConstructorReturn":21,"react":321}],161:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _values = require('babel-runtime/core-js/object/values');
var _values2 = _interopRequireDefault(_values);
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _StyleConfig = require('./utils/StyleConfig');
var _CloseButton = require('./CloseButton');
var _CloseButton2 = _interopRequireDefault(_CloseButton);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
onDismiss: _propTypes2.default.func,
closeLabel: _propTypes2.default.string
};
var defaultProps = {
closeLabel: 'Close alert'
};
var Alert = function (_React$Component) {
(0, _inherits3.default)(Alert, _React$Component);
function Alert() {
(0, _classCallCheck3.default)(this, Alert);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Alert.prototype.render = function render() {
var _extends2;
var _props = this.props,
onDismiss = _props.onDismiss,
closeLabel = _props.closeLabel,
className = _props.className,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['onDismiss', 'closeLabel', 'className', 'children']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var dismissable = !!onDismiss;
var classes = (0, _extends4.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), (_extends2 = {}, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'dismissable')] = dismissable, _extends2));
return _react2.default.createElement(
'div',
(0, _extends4.default)({}, elementProps, {
role: 'alert',
className: (0, _classnames2.default)(className, classes)
}),
dismissable && _react2.default.createElement(_CloseButton2.default, {
onClick: onDismiss,
label: closeLabel
}),
children
);
};
return Alert;
}(_react2.default.Component);
Alert.propTypes = propTypes;
Alert.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsStyles)((0, _values2.default)(_StyleConfig.State), _StyleConfig.State.INFO, (0, _bootstrapUtils.bsClass)('alert', Alert));
module.exports = exports['default'];
},{"./CloseButton":173,"./utils/StyleConfig":251,"./utils/bootstrapUtils":254,"babel-runtime/core-js/object/values":14,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],162:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// TODO: `pullRight` doesn't belong here. There's no special handling here.
var propTypes = {
pullRight: _propTypes2.default.bool
};
var defaultProps = {
pullRight: false
};
var Badge = function (_React$Component) {
(0, _inherits3.default)(Badge, _React$Component);
function Badge() {
(0, _classCallCheck3.default)(this, Badge);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Badge.prototype.hasContent = function hasContent(children) {
var result = false;
_react2.default.Children.forEach(children, function (child) {
if (result) {
return;
}
if (child || child === 0) {
result = true;
}
});
return result;
};
Badge.prototype.render = function render() {
var _props = this.props,
pullRight = _props.pullRight,
className = _props.className,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['pullRight', 'className', 'children']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _extends3.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), {
'pull-right': pullRight,
// Hack for collapsing on IE8.
hidden: !this.hasContent(children)
});
return _react2.default.createElement(
'span',
(0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}),
children
);
};
return Badge;
}(_react2.default.Component);
Badge.propTypes = propTypes;
Badge.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('badge', Badge);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],163:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _BreadcrumbItem = require('./BreadcrumbItem');
var _BreadcrumbItem2 = _interopRequireDefault(_BreadcrumbItem);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Breadcrumb = function (_React$Component) {
(0, _inherits3.default)(Breadcrumb, _React$Component);
function Breadcrumb() {
(0, _classCallCheck3.default)(this, Breadcrumb);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Breadcrumb.prototype.render = function render() {
var _props = this.props,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement('ol', (0, _extends3.default)({}, elementProps, {
role: 'navigation',
'aria-label': 'breadcrumbs',
className: (0, _classnames2.default)(className, classes)
}));
};
return Breadcrumb;
}(_react2.default.Component);
Breadcrumb.Item = _BreadcrumbItem2.default;
exports.default = (0, _bootstrapUtils.bsClass)('breadcrumb', Breadcrumb);
module.exports = exports['default'];
},{"./BreadcrumbItem":164,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"react":321}],164:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _SafeAnchor = require('./SafeAnchor');
var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* If set to true, renders `span` instead of `a`
*/
active: _propTypes2.default.bool,
/**
* `href` attribute for the inner `a` element
*/
href: _propTypes2.default.string,
/**
* `title` attribute for the inner `a` element
*/
title: _propTypes2.default.node,
/**
* `target` attribute for the inner `a` element
*/
target: _propTypes2.default.string
};
var defaultProps = {
active: false
};
var BreadcrumbItem = function (_React$Component) {
(0, _inherits3.default)(BreadcrumbItem, _React$Component);
function BreadcrumbItem() {
(0, _classCallCheck3.default)(this, BreadcrumbItem);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
BreadcrumbItem.prototype.render = function render() {
var _props = this.props,
active = _props.active,
href = _props.href,
title = _props.title,
target = _props.target,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['active', 'href', 'title', 'target', 'className']);
// Don't try to render these props on non-active <span>.
var linkProps = { href: href, title: title, target: target };
return _react2.default.createElement(
'li',
{ className: (0, _classnames2.default)(className, { active: active }) },
active ? _react2.default.createElement('span', props) : _react2.default.createElement(_SafeAnchor2.default, (0, _extends3.default)({}, props, linkProps))
);
};
return BreadcrumbItem;
}(_react2.default.Component);
BreadcrumbItem.propTypes = propTypes;
BreadcrumbItem.defaultProps = defaultProps;
exports.default = BreadcrumbItem;
module.exports = exports['default'];
},{"./SafeAnchor":235,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],165:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _values = require('babel-runtime/core-js/object/values');
var _values2 = _interopRequireDefault(_values);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _StyleConfig = require('./utils/StyleConfig');
var _SafeAnchor = require('./SafeAnchor');
var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
active: _propTypes2.default.bool,
disabled: _propTypes2.default.bool,
block: _propTypes2.default.bool,
onClick: _propTypes2.default.func,
componentClass: _elementType2.default,
href: _propTypes2.default.string,
/**
* Defines HTML button type attribute
* @defaultValue 'button'
*/
type: _propTypes2.default.oneOf(['button', 'reset', 'submit'])
};
var defaultProps = {
active: false,
block: false,
disabled: false
};
var Button = function (_React$Component) {
(0, _inherits3.default)(Button, _React$Component);
function Button() {
(0, _classCallCheck3.default)(this, Button);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Button.prototype.renderAnchor = function renderAnchor(elementProps, className) {
return _react2.default.createElement(_SafeAnchor2.default, (0, _extends4.default)({}, elementProps, {
className: (0, _classnames2.default)(className, elementProps.disabled && 'disabled')
}));
};
Button.prototype.renderButton = function renderButton(_ref, className) {
var componentClass = _ref.componentClass,
elementProps = (0, _objectWithoutProperties3.default)(_ref, ['componentClass']);
var Component = componentClass || 'button';
return _react2.default.createElement(Component, (0, _extends4.default)({}, elementProps, {
type: elementProps.type || 'button',
className: className
}));
};
Button.prototype.render = function render() {
var _extends2;
var _props = this.props,
active = _props.active,
block = _props.block,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['active', 'block', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _extends4.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), (_extends2 = {
active: active
}, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'block')] = block, _extends2));
var fullClassName = (0, _classnames2.default)(className, classes);
if (elementProps.href) {
return this.renderAnchor(elementProps, fullClassName);
}
return this.renderButton(elementProps, fullClassName);
};
return Button;
}(_react2.default.Component);
Button.propTypes = propTypes;
Button.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('btn', (0, _bootstrapUtils.bsSizes)([_StyleConfig.Size.LARGE, _StyleConfig.Size.SMALL, _StyleConfig.Size.XSMALL], (0, _bootstrapUtils.bsStyles)([].concat((0, _values2.default)(_StyleConfig.State), [_StyleConfig.Style.DEFAULT, _StyleConfig.Style.PRIMARY, _StyleConfig.Style.LINK]), _StyleConfig.Style.DEFAULT, Button)));
module.exports = exports['default'];
},{"./SafeAnchor":235,"./utils/StyleConfig":251,"./utils/bootstrapUtils":254,"babel-runtime/core-js/object/values":14,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/elementType":148,"react":321}],166:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _all = require('prop-types-extra/lib/all');
var _all2 = _interopRequireDefault(_all);
var _Button = require('./Button');
var _Button2 = _interopRequireDefault(_Button);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
vertical: _propTypes2.default.bool,
justified: _propTypes2.default.bool,
/**
* Display block buttons; only useful when used with the "vertical" prop.
* @type {bool}
*/
block: (0, _all2.default)(_propTypes2.default.bool, function (_ref) {
var block = _ref.block,
vertical = _ref.vertical;
return block && !vertical ? new Error('`block` requires `vertical` to be set to have any effect') : null;
})
};
var defaultProps = {
block: false,
justified: false,
vertical: false
};
var ButtonGroup = function (_React$Component) {
(0, _inherits3.default)(ButtonGroup, _React$Component);
function ButtonGroup() {
(0, _classCallCheck3.default)(this, ButtonGroup);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
ButtonGroup.prototype.render = function render() {
var _extends2;
var _props = this.props,
block = _props.block,
justified = _props.justified,
vertical = _props.vertical,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['block', 'justified', 'vertical', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _extends4.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), (_extends2 = {}, _extends2[(0, _bootstrapUtils.prefix)(bsProps)] = !vertical, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'vertical')] = vertical, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'justified')] = justified, _extends2[(0, _bootstrapUtils.prefix)(_Button2.default.defaultProps, 'block')] = block, _extends2));
return _react2.default.createElement('div', (0, _extends4.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return ButtonGroup;
}(_react2.default.Component);
ButtonGroup.propTypes = propTypes;
ButtonGroup.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('btn-group', ButtonGroup);
module.exports = exports['default'];
},{"./Button":165,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/all":145,"react":321}],167:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var ButtonToolbar = function (_React$Component) {
(0, _inherits3.default)(ButtonToolbar, _React$Component);
function ButtonToolbar() {
(0, _classCallCheck3.default)(this, ButtonToolbar);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
ButtonToolbar.prototype.render = function render() {
var _props = this.props,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement('div', (0, _extends3.default)({}, elementProps, {
role: 'toolbar',
className: (0, _classnames2.default)(className, classes)
}));
};
return ButtonToolbar;
}(_react2.default.Component);
exports.default = (0, _bootstrapUtils.bsClass)('btn-toolbar', ButtonToolbar);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"react":321}],168:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _CarouselCaption = require('./CarouselCaption');
var _CarouselCaption2 = _interopRequireDefault(_CarouselCaption);
var _CarouselItem = require('./CarouselItem');
var _CarouselItem2 = _interopRequireDefault(_CarouselItem);
var _Glyphicon = require('./Glyphicon');
var _Glyphicon2 = _interopRequireDefault(_Glyphicon);
var _SafeAnchor = require('./SafeAnchor');
var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _ValidComponentChildren = require('./utils/ValidComponentChildren');
var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// TODO: `slide` should be `animate`.
// TODO: Use uncontrollable.
var propTypes = {
slide: _propTypes2.default.bool,
indicators: _propTypes2.default.bool,
/**
* The amount of time to delay between automatically cycling an item.
* If `null`, carousel will not automatically cycle.
*/
interval: _propTypes2.default.number,
controls: _propTypes2.default.bool,
pauseOnHover: _propTypes2.default.bool,
wrap: _propTypes2.default.bool,
/**
* Callback fired when the active item changes.
*
* ```js
* (eventKey: any) => any | (eventKey: any, event: Object) => any
* ```
*
* If this callback takes two or more arguments, the second argument will
* be a persisted event object with `direction` set to the direction of the
* transition.
*/
onSelect: _propTypes2.default.func,
onSlideEnd: _propTypes2.default.func,
activeIndex: _propTypes2.default.number,
defaultActiveIndex: _propTypes2.default.number,
direction: _propTypes2.default.oneOf(['prev', 'next']),
prevIcon: _propTypes2.default.node,
/**
* Label shown to screen readers only, can be used to show the previous element
* in the carousel.
* Set to null to deactivate.
*/
prevLabel: _propTypes2.default.string,
nextIcon: _propTypes2.default.node,
/**
* Label shown to screen readers only, can be used to show the next element
* in the carousel.
* Set to null to deactivate.
*/
nextLabel: _propTypes2.default.string
};
var defaultProps = {
slide: true,
interval: 5000,
pauseOnHover: true,
wrap: true,
indicators: true,
controls: true,
prevIcon: _react2.default.createElement(_Glyphicon2.default, { glyph: 'chevron-left' }),
prevLabel: 'Previous',
nextIcon: _react2.default.createElement(_Glyphicon2.default, { glyph: 'chevron-right' }),
nextLabel: 'Next'
};
var Carousel = function (_React$Component) {
(0, _inherits3.default)(Carousel, _React$Component);
function Carousel(props, context) {
(0, _classCallCheck3.default)(this, Carousel);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
_this.handleMouseOver = _this.handleMouseOver.bind(_this);
_this.handleMouseOut = _this.handleMouseOut.bind(_this);
_this.handlePrev = _this.handlePrev.bind(_this);
_this.handleNext = _this.handleNext.bind(_this);
_this.handleItemAnimateOutEnd = _this.handleItemAnimateOutEnd.bind(_this);
var defaultActiveIndex = props.defaultActiveIndex;
_this.state = {
activeIndex: defaultActiveIndex != null ? defaultActiveIndex : 0,
previousActiveIndex: null,
direction: null
};
_this.isUnmounted = false;
return _this;
}
Carousel.prototype.componentDidMount = function componentDidMount() {
this.waitForNext();
};
Carousel.prototype.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)
});
}
if (nextProps.activeIndex == null && this.state.activeIndex >= nextProps.children.length) {
this.setState({
activeIndex: 0,
previousActiveIndex: null,
direction: null
});
}
};
Carousel.prototype.componentWillUnmount = function componentWillUnmount() {
clearTimeout(this.timeout);
this.isUnmounted = true;
};
Carousel.prototype.getActiveIndex = function getActiveIndex() {
var activeIndexProp = this.props.activeIndex;
return activeIndexProp != null ? activeIndexProp : this.state.activeIndex;
};
Carousel.prototype.getDirection = function getDirection(prevIndex, index) {
if (prevIndex === index) {
return null;
}
return prevIndex > index ? 'prev' : 'next';
};
Carousel.prototype.handleItemAnimateOutEnd = function handleItemAnimateOutEnd() {
var _this2 = this;
this.setState({
previousActiveIndex: null,
direction: null
}, function () {
_this2.waitForNext();
if (_this2.props.onSlideEnd) {
_this2.props.onSlideEnd();
}
});
};
Carousel.prototype.handleMouseOut = function handleMouseOut() {
if (this.isPaused) {
this.play();
}
};
Carousel.prototype.handleMouseOver = function handleMouseOver() {
if (this.props.pauseOnHover) {
this.pause();
}
};
Carousel.prototype.handleNext = function handleNext(e) {
var index = this.getActiveIndex() + 1;
var count = _ValidComponentChildren2.default.count(this.props.children);
if (index > count - 1) {
if (!this.props.wrap) {
return;
}
index = 0;
}
this.select(index, e, 'next');
};
Carousel.prototype.handlePrev = function handlePrev(e) {
var index = this.getActiveIndex() - 1;
if (index < 0) {
if (!this.props.wrap) {
return;
}
index = _ValidComponentChildren2.default.count(this.props.children) - 1;
}
this.select(index, e, 'prev');
};
// This might be a public API.
Carousel.prototype.pause = function pause() {
this.isPaused = true;
clearTimeout(this.timeout);
};
// This might be a public API.
Carousel.prototype.play = function play() {
this.isPaused = false;
this.waitForNext();
};
Carousel.prototype.select = function select(index, e, direction) {
clearTimeout(this.timeout);
// TODO: Is this necessary? Seems like the only risk is if the component
// unmounts while handleItemAnimateOutEnd fires.
if (this.isUnmounted) {
return;
}
var previousActiveIndex = this.props.slide ? this.getActiveIndex() : null;
direction = direction || this.getDirection(previousActiveIndex, index);
var onSelect = this.props.onSelect;
if (onSelect) {
if (onSelect.length > 1) {
// React SyntheticEvents are pooled, so we need to remove this event
// from the pool to add a custom property. To avoid unnecessarily
// removing objects from the pool, only do this when the listener
// actually wants the event.
if (e) {
e.persist();
e.direction = direction;
} else {
e = { direction: direction };
}
onSelect(index, e);
} else {
onSelect(index);
}
}
if (this.props.activeIndex == null && index !== previousActiveIndex) {
if (this.state.previousActiveIndex != null) {
// If currently animating don't activate the new index.
// TODO: look into queueing this canceled call and
// animating after the current animation has ended.
return;
}
this.setState({
activeIndex: index,
previousActiveIndex: previousActiveIndex,
direction: direction
});
}
};
Carousel.prototype.waitForNext = function waitForNext() {
var _props = this.props,
slide = _props.slide,
interval = _props.interval,
activeIndexProp = _props.activeIndex;
if (!this.isPaused && slide && interval && activeIndexProp == null) {
this.timeout = setTimeout(this.handleNext, interval);
}
};
Carousel.prototype.renderControls = function renderControls(properties) {
var wrap = properties.wrap,
children = properties.children,
activeIndex = properties.activeIndex,
prevIcon = properties.prevIcon,
nextIcon = properties.nextIcon,
bsProps = properties.bsProps,
prevLabel = properties.prevLabel,
nextLabel = properties.nextLabel;
var controlClassName = (0, _bootstrapUtils.prefix)(bsProps, 'control');
var count = _ValidComponentChildren2.default.count(children);
return [(wrap || activeIndex !== 0) && _react2.default.createElement(
_SafeAnchor2.default,
{
key: 'prev',
className: (0, _classnames2.default)(controlClassName, 'left'),
onClick: this.handlePrev
},
prevIcon,
prevLabel && _react2.default.createElement(
'span',
{ className: 'sr-only' },
prevLabel
)
), (wrap || activeIndex !== count - 1) && _react2.default.createElement(
_SafeAnchor2.default,
{
key: 'next',
className: (0, _classnames2.default)(controlClassName, 'right'),
onClick: this.handleNext
},
nextIcon,
nextLabel && _react2.default.createElement(
'span',
{ className: 'sr-only' },
nextLabel
)
)];
};
Carousel.prototype.renderIndicators = function renderIndicators(children, activeIndex, bsProps) {
var _this3 = this;
var indicators = [];
_ValidComponentChildren2.default.forEach(children, function (child, index) {
indicators.push(_react2.default.createElement('li', {
key: index,
className: index === activeIndex ? 'active' : null,
onClick: function onClick(e) {
return _this3.select(index, e);
}
}),
// Force whitespace between indicator elements. Bootstrap requires
// this for correct spacing of elements.
' ');
});
return _react2.default.createElement(
'ol',
{ className: (0, _bootstrapUtils.prefix)(bsProps, 'indicators') },
indicators
);
};
Carousel.prototype.render = function render() {
var _this4 = this;
var _props2 = this.props,
slide = _props2.slide,
indicators = _props2.indicators,
controls = _props2.controls,
wrap = _props2.wrap,
prevIcon = _props2.prevIcon,
prevLabel = _props2.prevLabel,
nextIcon = _props2.nextIcon,
nextLabel = _props2.nextLabel,
className = _props2.className,
children = _props2.children,
props = (0, _objectWithoutProperties3.default)(_props2, ['slide', 'indicators', 'controls', 'wrap', 'prevIcon', 'prevLabel', 'nextIcon', 'nextLabel', 'className', 'children']);
var _state = this.state,
previousActiveIndex = _state.previousActiveIndex,
direction = _state.direction;
var _splitBsPropsAndOmit = (0, _bootstrapUtils.splitBsPropsAndOmit)(props, ['interval', 'pauseOnHover', 'onSelect', 'onSlideEnd', 'activeIndex', // Accessed via this.getActiveIndex().
'defaultActiveIndex', 'direction']),
bsProps = _splitBsPropsAndOmit[0],
elementProps = _splitBsPropsAndOmit[1];
var activeIndex = this.getActiveIndex();
var classes = (0, _extends3.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), {
slide: slide
});
return _react2.default.createElement(
'div',
(0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes),
onMouseOver: this.handleMouseOver,
onMouseOut: this.handleMouseOut
}),
indicators && this.renderIndicators(children, activeIndex, bsProps),
_react2.default.createElement(
'div',
{ className: (0, _bootstrapUtils.prefix)(bsProps, 'inner') },
_ValidComponentChildren2.default.map(children, function (child, index) {
var active = index === activeIndex;
var previousActive = slide && index === previousActiveIndex;
return (0, _react.cloneElement)(child, {
active: active,
index: index,
animateOut: previousActive,
animateIn: active && previousActiveIndex != null && slide,
direction: direction,
onAnimateOutEnd: previousActive ? _this4.handleItemAnimateOutEnd : null
});
})
),
controls && this.renderControls({
wrap: wrap,
children: children,
activeIndex: activeIndex,
prevIcon: prevIcon,
prevLabel: prevLabel,
nextIcon: nextIcon,
nextLabel: nextLabel,
bsProps: bsProps
})
);
};
return Carousel;
}(_react2.default.Component);
Carousel.propTypes = propTypes;
Carousel.defaultProps = defaultProps;
Carousel.Caption = _CarouselCaption2.default;
Carousel.Item = _CarouselItem2.default;
exports.default = (0, _bootstrapUtils.bsClass)('carousel', Carousel);
module.exports = exports['default'];
},{"./CarouselCaption":169,"./CarouselItem":170,"./Glyphicon":187,"./SafeAnchor":235,"./utils/ValidComponentChildren":253,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],169:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
componentClass: _elementType2.default
};
var defaultProps = {
componentClass: 'div'
};
var CarouselCaption = function (_React$Component) {
(0, _inherits3.default)(CarouselCaption, _React$Component);
function CarouselCaption() {
(0, _classCallCheck3.default)(this, CarouselCaption);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
CarouselCaption.prototype.render = function render() {
var _props = this.props,
Component = _props.componentClass,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['componentClass', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement(Component, (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return CarouselCaption;
}(_react2.default.Component);
CarouselCaption.propTypes = propTypes;
CarouselCaption.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('carousel-caption', CarouselCaption);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types-extra/lib/elementType":148,"react":321}],170:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _TransitionEvents = require('./utils/TransitionEvents');
var _TransitionEvents2 = _interopRequireDefault(_TransitionEvents);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// TODO: This should use a timeout instead of TransitionEvents, or else just
// not wait until transition end to trigger continuing animations.
var propTypes = {
direction: _propTypes2.default.oneOf(['prev', 'next']),
onAnimateOutEnd: _propTypes2.default.func,
active: _propTypes2.default.bool,
animateIn: _propTypes2.default.bool,
animateOut: _propTypes2.default.bool,
index: _propTypes2.default.number
};
var defaultProps = {
active: false,
animateIn: false,
animateOut: false
};
var CarouselItem = function (_React$Component) {
(0, _inherits3.default)(CarouselItem, _React$Component);
function CarouselItem(props, context) {
(0, _classCallCheck3.default)(this, CarouselItem);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
_this.handleAnimateOutEnd = _this.handleAnimateOutEnd.bind(_this);
_this.state = {
direction: null
};
_this.isUnmounted = false;
return _this;
}
CarouselItem.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
if (this.props.active !== nextProps.active) {
this.setState({ direction: null });
}
};
CarouselItem.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
var _this2 = this;
var active = this.props.active;
var prevActive = prevProps.active;
if (!active && prevActive) {
_TransitionEvents2.default.addEndEventListener(_reactDom2.default.findDOMNode(this), this.handleAnimateOutEnd);
}
if (active !== prevActive) {
setTimeout(function () {
return _this2.startAnimation();
}, 20);
}
};
CarouselItem.prototype.componentWillUnmount = function componentWillUnmount() {
this.isUnmounted = true;
};
CarouselItem.prototype.handleAnimateOutEnd = function handleAnimateOutEnd() {
if (this.isUnmounted) {
return;
}
if (this.props.onAnimateOutEnd) {
this.props.onAnimateOutEnd(this.props.index);
}
};
CarouselItem.prototype.startAnimation = function startAnimation() {
if (this.isUnmounted) {
return;
}
this.setState({
direction: this.props.direction === 'prev' ? 'right' : 'left'
});
};
CarouselItem.prototype.render = function render() {
var _props = this.props,
direction = _props.direction,
active = _props.active,
animateIn = _props.animateIn,
animateOut = _props.animateOut,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['direction', 'active', 'animateIn', 'animateOut', 'className']);
delete props.onAnimateOutEnd;
delete props.index;
var classes = {
item: true,
active: active && !animateIn || animateOut
};
if (direction && active && animateIn) {
classes[direction] = true;
}
if (this.state.direction && (animateIn || animateOut)) {
classes[this.state.direction] = true;
}
return _react2.default.createElement('div', (0, _extends3.default)({}, props, {
className: (0, _classnames2.default)(className, classes)
}));
};
return CarouselItem;
}(_react2.default.Component);
CarouselItem.propTypes = propTypes;
CarouselItem.defaultProps = defaultProps;
exports.default = CarouselItem;
module.exports = exports['default'];
},{"./utils/TransitionEvents":252,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321,"react-dom":273}],171:[function(require,module,exports){
(function (process){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
inline: _propTypes2.default.bool,
disabled: _propTypes2.default.bool,
title: _propTypes2.default.string,
/**
* Only valid if `inline` is not set.
*/
validationState: _propTypes2.default.oneOf(['success', 'warning', 'error', null]),
/**
* Attaches a ref to the `<input>` element. Only functions can be used here.
*
* ```js
* <Checkbox inputRef={ref => { this.input = ref; }} />
* ```
*/
inputRef: _propTypes2.default.func
}; /* eslint-disable jsx-a11y/label-has-for */
var defaultProps = {
inline: false,
disabled: false,
title: ''
};
var Checkbox = function (_React$Component) {
(0, _inherits3.default)(Checkbox, _React$Component);
function Checkbox() {
(0, _classCallCheck3.default)(this, Checkbox);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Checkbox.prototype.render = function render() {
var _props = this.props,
inline = _props.inline,
disabled = _props.disabled,
validationState = _props.validationState,
inputRef = _props.inputRef,
className = _props.className,
style = _props.style,
title = _props.title,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['inline', 'disabled', 'validationState', 'inputRef', 'className', 'style', 'title', 'children']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var input = _react2.default.createElement('input', (0, _extends3.default)({}, elementProps, {
ref: inputRef,
type: 'checkbox',
disabled: disabled
}));
if (inline) {
var _classes2;
var _classes = (_classes2 = {}, _classes2[(0, _bootstrapUtils.prefix)(bsProps, 'inline')] = true, _classes2.disabled = disabled, _classes2);
// Use a warning here instead of in propTypes to get better-looking
// generated documentation.
process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!validationState, '`validationState` is ignored on `<Checkbox inline>`. To display ' + 'validation state on an inline checkbox, set `validationState` on a ' + 'parent `<FormGroup>` or other element instead.') : void 0;
return _react2.default.createElement(
'label',
{ className: (0, _classnames2.default)(className, _classes), style: style, title: title },
input,
children
);
}
var classes = (0, _extends3.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), {
disabled: disabled
});
if (validationState) {
classes['has-' + validationState] = true;
}
return _react2.default.createElement(
'div',
{ className: (0, _classnames2.default)(className, classes), style: style },
_react2.default.createElement(
'label',
{ title: title },
input,
children
)
);
};
return Checkbox;
}(_react2.default.Component);
Checkbox.propTypes = propTypes;
Checkbox.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('checkbox', Checkbox);
module.exports = exports['default'];
}).call(this,require('_process'))
},{"./utils/bootstrapUtils":254,"_process":334,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321,"warning":330}],172:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _capitalize = require('./utils/capitalize');
var _capitalize2 = _interopRequireDefault(_capitalize);
var _StyleConfig = require('./utils/StyleConfig');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
componentClass: _elementType2.default,
/**
* Apply clearfix
*
* on Extra small devices Phones
*
* adds class `visible-xs-block`
*/
visibleXsBlock: _propTypes2.default.bool,
/**
* Apply clearfix
*
* on Small devices Tablets
*
* adds class `visible-sm-block`
*/
visibleSmBlock: _propTypes2.default.bool,
/**
* Apply clearfix
*
* on Medium devices Desktops
*
* adds class `visible-md-block`
*/
visibleMdBlock: _propTypes2.default.bool,
/**
* Apply clearfix
*
* on Large devices Desktops
*
* adds class `visible-lg-block`
*/
visibleLgBlock: _propTypes2.default.bool
};
var defaultProps = {
componentClass: 'div'
};
var Clearfix = function (_React$Component) {
(0, _inherits3.default)(Clearfix, _React$Component);
function Clearfix() {
(0, _classCallCheck3.default)(this, Clearfix);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Clearfix.prototype.render = function render() {
var _props = this.props,
Component = _props.componentClass,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['componentClass', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
_StyleConfig.DEVICE_SIZES.forEach(function (size) {
var propName = 'visible' + (0, _capitalize2.default)(size) + 'Block';
if (elementProps[propName]) {
classes['visible-' + size + '-block'] = true;
}
delete elementProps[propName];
});
return _react2.default.createElement(Component, (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return Clearfix;
}(_react2.default.Component);
Clearfix.propTypes = propTypes;
Clearfix.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('clearfix', Clearfix);
module.exports = exports['default'];
},{"./utils/StyleConfig":251,"./utils/bootstrapUtils":254,"./utils/capitalize":255,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/elementType":148,"react":321}],173:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
label: _propTypes2.default.string.isRequired,
onClick: _propTypes2.default.func
};
var defaultProps = {
label: 'Close'
};
var CloseButton = function (_React$Component) {
(0, _inherits3.default)(CloseButton, _React$Component);
function CloseButton() {
(0, _classCallCheck3.default)(this, CloseButton);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
CloseButton.prototype.render = function render() {
var _props = this.props,
label = _props.label,
onClick = _props.onClick;
return _react2.default.createElement(
'button',
{
type: 'button',
className: 'close',
onClick: onClick
},
_react2.default.createElement(
'span',
{ 'aria-hidden': 'true' },
'\xD7'
),
_react2.default.createElement(
'span',
{ className: 'sr-only' },
label
)
);
};
return CloseButton;
}(_react2.default.Component);
CloseButton.propTypes = propTypes;
CloseButton.defaultProps = defaultProps;
exports.default = CloseButton;
module.exports = exports['default'];
},{"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/possibleConstructorReturn":21,"prop-types":154,"react":321}],174:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _StyleConfig = require('./utils/StyleConfig');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
componentClass: _elementType2.default,
/**
* The number of columns you wish to span
*
* for Extra small devices Phones (<768px)
*
* class-prefix `col-xs-`
*/
xs: _propTypes2.default.number,
/**
* The number of columns you wish to span
*
* for Small devices Tablets (≥768px)
*
* class-prefix `col-sm-`
*/
sm: _propTypes2.default.number,
/**
* The number of columns you wish to span
*
* for Medium devices Desktops (≥992px)
*
* class-prefix `col-md-`
*/
md: _propTypes2.default.number,
/**
* The number of columns you wish to span
*
* for Large devices Desktops (≥1200px)
*
* class-prefix `col-lg-`
*/
lg: _propTypes2.default.number,
/**
* Hide column
*
* on Extra small devices Phones
*
* adds class `hidden-xs`
*/
xsHidden: _propTypes2.default.bool,
/**
* Hide column
*
* on Small devices Tablets
*
* adds class `hidden-sm`
*/
smHidden: _propTypes2.default.bool,
/**
* Hide column
*
* on Medium devices Desktops
*
* adds class `hidden-md`
*/
mdHidden: _propTypes2.default.bool,
/**
* Hide column
*
* on Large devices Desktops
*
* adds class `hidden-lg`
*/
lgHidden: _propTypes2.default.bool,
/**
* Move columns to the right
*
* for Extra small devices Phones
*
* class-prefix `col-xs-offset-`
*/
xsOffset: _propTypes2.default.number,
/**
* Move columns to the right
*
* for Small devices Tablets
*
* class-prefix `col-sm-offset-`
*/
smOffset: _propTypes2.default.number,
/**
* Move columns to the right
*
* for Medium devices Desktops
*
* class-prefix `col-md-offset-`
*/
mdOffset: _propTypes2.default.number,
/**
* Move columns to the right
*
* for Large devices Desktops
*
* class-prefix `col-lg-offset-`
*/
lgOffset: _propTypes2.default.number,
/**
* Change the order of grid columns to the right
*
* for Extra small devices Phones
*
* class-prefix `col-xs-push-`
*/
xsPush: _propTypes2.default.number,
/**
* Change the order of grid columns to the right
*
* for Small devices Tablets
*
* class-prefix `col-sm-push-`
*/
smPush: _propTypes2.default.number,
/**
* Change the order of grid columns to the right
*
* for Medium devices Desktops
*
* class-prefix `col-md-push-`
*/
mdPush: _propTypes2.default.number,
/**
* Change the order of grid columns to the right
*
* for Large devices Desktops
*
* class-prefix `col-lg-push-`
*/
lgPush: _propTypes2.default.number,
/**
* Change the order of grid columns to the left
*
* for Extra small devices Phones
*
* class-prefix `col-xs-pull-`
*/
xsPull: _propTypes2.default.number,
/**
* Change the order of grid columns to the left
*
* for Small devices Tablets
*
* class-prefix `col-sm-pull-`
*/
smPull: _propTypes2.default.number,
/**
* Change the order of grid columns to the left
*
* for Medium devices Desktops
*
* class-prefix `col-md-pull-`
*/
mdPull: _propTypes2.default.number,
/**
* Change the order of grid columns to the left
*
* for Large devices Desktops
*
* class-prefix `col-lg-pull-`
*/
lgPull: _propTypes2.default.number
};
var defaultProps = {
componentClass: 'div'
};
var Col = function (_React$Component) {
(0, _inherits3.default)(Col, _React$Component);
function Col() {
(0, _classCallCheck3.default)(this, Col);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Col.prototype.render = function render() {
var _props = this.props,
Component = _props.componentClass,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['componentClass', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = [];
_StyleConfig.DEVICE_SIZES.forEach(function (size) {
function popProp(propSuffix, modifier) {
var propName = '' + size + propSuffix;
var propValue = elementProps[propName];
if (propValue != null) {
classes.push((0, _bootstrapUtils.prefix)(bsProps, '' + size + modifier + '-' + propValue));
}
delete elementProps[propName];
}
popProp('', '');
popProp('Offset', '-offset');
popProp('Push', '-push');
popProp('Pull', '-pull');
var hiddenPropName = size + 'Hidden';
if (elementProps[hiddenPropName]) {
classes.push('hidden-' + size);
}
delete elementProps[hiddenPropName];
});
return _react2.default.createElement(Component, (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return Col;
}(_react2.default.Component);
Col.propTypes = propTypes;
Col.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('col', Col);
module.exports = exports['default'];
},{"./utils/StyleConfig":251,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/elementType":148,"react":321}],175:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _style = require('dom-helpers/style');
var _style2 = _interopRequireDefault(_style);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _Transition = require('react-overlays/lib/Transition');
var _Transition2 = _interopRequireDefault(_Transition);
var _capitalize = require('./utils/capitalize');
var _capitalize2 = _interopRequireDefault(_capitalize);
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var MARGINS = {
height: ['marginTop', 'marginBottom'],
width: ['marginLeft', 'marginRight']
};
// reading a dimension prop will cause the browser to recalculate,
// which will let our animations work
function triggerBrowserReflow(node) {
node.offsetHeight; // eslint-disable-line no-unused-expressions
}
function getDimensionValue(dimension, elem) {
var value = elem['offset' + (0, _capitalize2.default)(dimension)];
var margins = MARGINS[dimension];
return value + parseInt((0, _style2.default)(elem, margins[0]), 10) + parseInt((0, _style2.default)(elem, margins[1]), 10);
}
var propTypes = {
/**
* Show the component; triggers the expand or collapse animation
*/
in: _propTypes2.default.bool,
/**
* Wait until the first "enter" transition to mount the component (add it to the DOM)
*/
mountOnEnter: _propTypes2.default.bool,
/**
* Unmount the component (remove it from the DOM) when it is collapsed
*/
unmountOnExit: _propTypes2.default.bool,
/**
* Run the expand animation when the component mounts, if it is initially
* shown
*/
transitionAppear: _propTypes2.default.bool,
/**
* Duration of the collapse animation in milliseconds, to ensure that
* finishing callbacks are fired even if the original browser transition end
* events are canceled
*/
timeout: _propTypes2.default.number,
/**
* Callback fired before the component expands
*/
onEnter: _propTypes2.default.func,
/**
* Callback fired after the component starts to expand
*/
onEntering: _propTypes2.default.func,
/**
* Callback fired after the component has expanded
*/
onEntered: _propTypes2.default.func,
/**
* Callback fired before the component collapses
*/
onExit: _propTypes2.default.func,
/**
* Callback fired after the component starts to collapse
*/
onExiting: _propTypes2.default.func,
/**
* Callback fired after the component has collapsed
*/
onExited: _propTypes2.default.func,
/**
* The dimension used when collapsing, or a function that returns the
* dimension
*
* _Note: Bootstrap only partially supports 'width'!
* You will need to supply your own CSS animation for the `.width` CSS class._
*/
dimension: _propTypes2.default.oneOfType([_propTypes2.default.oneOf(['height', 'width']), _propTypes2.default.func]),
/**
* Function that returns the height or width of the animating DOM node
*
* Allows for providing some custom logic for how much the Collapse component
* should animate in its specified dimension. Called with the current
* dimension prop value and the DOM node.
*/
getDimensionValue: _propTypes2.default.func,
/**
* ARIA role of collapsible element
*/
role: _propTypes2.default.string
};
var defaultProps = {
in: false,
timeout: 300,
mountOnEnter: false,
unmountOnExit: false,
transitionAppear: false,
dimension: 'height',
getDimensionValue: getDimensionValue
};
var Collapse = function (_React$Component) {
(0, _inherits3.default)(Collapse, _React$Component);
function Collapse(props, context) {
(0, _classCallCheck3.default)(this, Collapse);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
_this.handleEnter = _this.handleEnter.bind(_this);
_this.handleEntering = _this.handleEntering.bind(_this);
_this.handleEntered = _this.handleEntered.bind(_this);
_this.handleExit = _this.handleExit.bind(_this);
_this.handleExiting = _this.handleExiting.bind(_this);
return _this;
}
Collapse.prototype._dimension = function _dimension() {
return typeof this.props.dimension === 'function' ? this.props.dimension() : this.props.dimension;
};
// for testing
Collapse.prototype._getScrollDimensionValue = function _getScrollDimensionValue(elem, dimension) {
return elem['scroll' + (0, _capitalize2.default)(dimension)] + 'px';
};
/* -- Expanding -- */
Collapse.prototype.handleEnter = function handleEnter(elem) {
var dimension = this._dimension();
elem.style[dimension] = '0';
};
Collapse.prototype.handleEntered = function handleEntered(elem) {
var dimension = this._dimension();
elem.style[dimension] = null;
};
Collapse.prototype.handleEntering = function handleEntering(elem) {
var dimension = this._dimension();
elem.style[dimension] = this._getScrollDimensionValue(elem, dimension);
};
/* -- Collapsing -- */
Collapse.prototype.handleExit = function handleExit(elem) {
var dimension = this._dimension();
elem.style[dimension] = this.props.getDimensionValue(dimension, elem) + 'px';
triggerBrowserReflow(elem);
};
Collapse.prototype.handleExiting = function handleExiting(elem) {
var dimension = this._dimension();
elem.style[dimension] = '0';
};
Collapse.prototype.render = function render() {
var _props = this.props,
onEnter = _props.onEnter,
onEntering = _props.onEntering,
onEntered = _props.onEntered,
onExit = _props.onExit,
onExiting = _props.onExiting,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'className']);
delete props.dimension;
delete props.getDimensionValue;
var handleEnter = (0, _createChainedFunction2.default)(this.handleEnter, onEnter);
var handleEntering = (0, _createChainedFunction2.default)(this.handleEntering, onEntering);
var handleEntered = (0, _createChainedFunction2.default)(this.handleEntered, onEntered);
var handleExit = (0, _createChainedFunction2.default)(this.handleExit, onExit);
var handleExiting = (0, _createChainedFunction2.default)(this.handleExiting, onExiting);
var classes = {
width: this._dimension() === 'width'
};
return _react2.default.createElement(_Transition2.default, (0, _extends3.default)({}, props, {
'aria-expanded': props.role ? props.in : null,
className: (0, _classnames2.default)(className, classes),
exitedClassName: 'collapse',
exitingClassName: 'collapsing',
enteredClassName: 'collapse in',
enteringClassName: 'collapsing',
onEnter: handleEnter,
onEntering: handleEntering,
onEntered: handleEntered,
onExit: handleExit,
onExiting: handleExiting
}));
};
return Collapse;
}(_react2.default.Component);
Collapse.propTypes = propTypes;
Collapse.defaultProps = defaultProps;
exports.default = Collapse;
module.exports = exports['default'];
},{"./utils/capitalize":255,"./utils/createChainedFunction":256,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"dom-helpers/style":131,"prop-types":154,"react":321,"react-overlays/lib/Transition":311}],176:[function(require,module,exports){
(function (process){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* Uses `controlId` from `<FormGroup>` if not explicitly specified.
*/
htmlFor: _propTypes2.default.string,
srOnly: _propTypes2.default.bool
};
var defaultProps = {
srOnly: false
};
var contextTypes = {
$bs_formGroup: _propTypes2.default.object
};
var ControlLabel = function (_React$Component) {
(0, _inherits3.default)(ControlLabel, _React$Component);
function ControlLabel() {
(0, _classCallCheck3.default)(this, ControlLabel);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
ControlLabel.prototype.render = function render() {
var formGroup = this.context.$bs_formGroup;
var controlId = formGroup && formGroup.controlId;
var _props = this.props,
_props$htmlFor = _props.htmlFor,
htmlFor = _props$htmlFor === undefined ? controlId : _props$htmlFor,
srOnly = _props.srOnly,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['htmlFor', 'srOnly', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(controlId == null || htmlFor === controlId, '`controlId` is ignored on `<ControlLabel>` when `htmlFor` is specified.') : void 0;
var classes = (0, _extends3.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), {
'sr-only': srOnly
});
return _react2.default.createElement('label', (0, _extends3.default)({}, elementProps, {
htmlFor: htmlFor,
className: (0, _classnames2.default)(className, classes)
}));
};
return ControlLabel;
}(_react2.default.Component);
ControlLabel.propTypes = propTypes;
ControlLabel.defaultProps = defaultProps;
ControlLabel.contextTypes = contextTypes;
exports.default = (0, _bootstrapUtils.bsClass)('control-label', ControlLabel);
module.exports = exports['default'];
}).call(this,require('_process'))
},{"./utils/bootstrapUtils":254,"_process":334,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321,"warning":330}],177:[function(require,module,exports){
(function (process){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _activeElement = require('dom-helpers/activeElement');
var _activeElement2 = _interopRequireDefault(_activeElement);
var _contains = require('dom-helpers/query/contains');
var _contains2 = _interopRequireDefault(_contains);
var _keycode = require('keycode');
var _keycode2 = _interopRequireDefault(_keycode);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _all = require('prop-types-extra/lib/all');
var _all2 = _interopRequireDefault(_all);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _isRequiredForA11y = require('prop-types-extra/lib/isRequiredForA11y');
var _isRequiredForA11y2 = _interopRequireDefault(_isRequiredForA11y);
var _uncontrollable = require('uncontrollable');
var _uncontrollable2 = _interopRequireDefault(_uncontrollable);
var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
var _ButtonGroup = require('./ButtonGroup');
var _ButtonGroup2 = _interopRequireDefault(_ButtonGroup);
var _DropdownMenu = require('./DropdownMenu');
var _DropdownMenu2 = _interopRequireDefault(_DropdownMenu);
var _DropdownToggle = require('./DropdownToggle');
var _DropdownToggle2 = _interopRequireDefault(_DropdownToggle);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
var _PropTypes = require('./utils/PropTypes');
var _ValidComponentChildren = require('./utils/ValidComponentChildren');
var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var TOGGLE_ROLE = _DropdownToggle2.default.defaultProps.bsRole;
var MENU_ROLE = _DropdownMenu2.default.defaultProps.bsRole;
var propTypes = {
/**
* The menu will open above the dropdown button, instead of below it.
*/
dropup: _propTypes2.default.bool,
/**
* An html id attribute, necessary for assistive technologies, such as screen readers.
* @type {string|number}
* @required
*/
id: (0, _isRequiredForA11y2.default)(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number])),
componentClass: _elementType2.default,
/**
* The children of a Dropdown may be a `<Dropdown.Toggle>` or a `<Dropdown.Menu>`.
* @type {node}
*/
children: (0, _all2.default)((0, _PropTypes.requiredRoles)(TOGGLE_ROLE, MENU_ROLE), (0, _PropTypes.exclusiveRoles)(MENU_ROLE)),
/**
* Whether or not component is disabled.
*/
disabled: _propTypes2.default.bool,
/**
* Align the menu to the right side of the Dropdown toggle
*/
pullRight: _propTypes2.default.bool,
/**
* Whether or not the Dropdown is visible.
*
* @controllable onToggle
*/
open: _propTypes2.default.bool,
defaultOpen: _propTypes2.default.bool,
/**
* A callback fired when the Dropdown wishes to change visibility. Called with the requested
* `open` value, the DOM event, and the source that fired it: `'click'`,`'keydown'`,`'rootClose'`, or `'select'`.
*
* ```js
* function(Boolean isOpen, Object event, { String source }) {}
* ```
* @controllable open
*/
onToggle: _propTypes2.default.func,
/**
* A callback fired when a menu item is selected.
*
* ```js
* (eventKey: any, event: Object) => any
* ```
*/
onSelect: _propTypes2.default.func,
/**
* If `'menuitem'`, causes the dropdown to behave like a menu item rather than
* a menu button.
*/
role: _propTypes2.default.string,
/**
* Which event when fired outside the component will cause it to be closed
*/
rootCloseEvent: _propTypes2.default.oneOf(['click', 'mousedown']),
/**
* @private
*/
onMouseEnter: _propTypes2.default.func,
/**
* @private
*/
onMouseLeave: _propTypes2.default.func
};
var defaultProps = {
componentClass: _ButtonGroup2.default
};
var Dropdown = function (_React$Component) {
(0, _inherits3.default)(Dropdown, _React$Component);
function Dropdown(props, context) {
(0, _classCallCheck3.default)(this, Dropdown);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
_this.handleClick = _this.handleClick.bind(_this);
_this.handleKeyDown = _this.handleKeyDown.bind(_this);
_this.handleClose = _this.handleClose.bind(_this);
_this._focusInDropdown = false;
_this.lastOpenEventType = null;
return _this;
}
Dropdown.prototype.componentDidMount = function componentDidMount() {
this.focusNextOnOpen();
};
Dropdown.prototype.componentWillUpdate = function componentWillUpdate(nextProps) {
if (!nextProps.open && this.props.open) {
this._focusInDropdown = (0, _contains2.default)(_reactDom2.default.findDOMNode(this.menu), (0, _activeElement2.default)(document));
}
};
Dropdown.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
var open = this.props.open;
var prevOpen = prevProps.open;
if (open && !prevOpen) {
this.focusNextOnOpen();
}
if (!open && prevOpen) {
// if focus hasn't already moved from the menu let's return it
// to the toggle
if (this._focusInDropdown) {
this._focusInDropdown = false;
this.focus();
}
}
};
Dropdown.prototype.focus = function focus() {
var toggle = _reactDom2.default.findDOMNode(this.toggle);
if (toggle && toggle.focus) {
toggle.focus();
}
};
Dropdown.prototype.focusNextOnOpen = function focusNextOnOpen() {
var menu = this.menu;
if (!menu.focusNext) {
return;
}
if (this.lastOpenEventType === 'keydown' || this.props.role === 'menuitem') {
menu.focusNext();
}
};
Dropdown.prototype.handleClick = function handleClick(event) {
if (this.props.disabled) {
return;
}
this.toggleOpen(event, { source: 'click' });
};
Dropdown.prototype.handleClose = function handleClose(event, eventDetails) {
if (!this.props.open) {
return;
}
this.toggleOpen(event, eventDetails);
};
Dropdown.prototype.handleKeyDown = function handleKeyDown(event) {
if (this.props.disabled) {
return;
}
switch (event.keyCode) {
case _keycode2.default.codes.down:
if (!this.props.open) {
this.toggleOpen(event, { source: 'keydown' });
} else if (this.menu.focusNext) {
this.menu.focusNext();
}
event.preventDefault();
break;
case _keycode2.default.codes.esc:
case _keycode2.default.codes.tab:
this.handleClose(event, { source: 'keydown' });
break;
default:
}
};
Dropdown.prototype.toggleOpen = function toggleOpen(event, eventDetails) {
var open = !this.props.open;
if (open) {
this.lastOpenEventType = eventDetails.source;
}
if (this.props.onToggle) {
this.props.onToggle(open, event, eventDetails);
}
};
Dropdown.prototype.renderMenu = function renderMenu(child, _ref) {
var _this2 = this;
var id = _ref.id,
onSelect = _ref.onSelect,
rootCloseEvent = _ref.rootCloseEvent,
props = (0, _objectWithoutProperties3.default)(_ref, ['id', 'onSelect', 'rootCloseEvent']);
var ref = function ref(c) {
_this2.menu = c;
};
if (typeof child.ref === 'string') {
process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'String refs are not supported on `<Dropdown.Menu>` components. ' + 'To apply a ref to the component use the callback signature:\n\n ' + 'https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute') : void 0;
} else {
ref = (0, _createChainedFunction2.default)(child.ref, ref);
}
return (0, _react.cloneElement)(child, (0, _extends3.default)({}, props, {
ref: ref,
labelledBy: id,
bsClass: (0, _bootstrapUtils.prefix)(props, 'menu'),
onClose: (0, _createChainedFunction2.default)(child.props.onClose, this.handleClose),
onSelect: (0, _createChainedFunction2.default)(child.props.onSelect, onSelect, function (key, event) {
return _this2.handleClose(event, { source: 'select' });
}),
rootCloseEvent: rootCloseEvent
}));
};
Dropdown.prototype.renderToggle = function renderToggle(child, props) {
var _this3 = this;
var ref = function ref(c) {
_this3.toggle = c;
};
if (typeof child.ref === 'string') {
process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, 'String refs are not supported on `<Dropdown.Toggle>` components. ' + 'To apply a ref to the component use the callback signature:\n\n ' + 'https://facebook.github.io/react/docs/more-about-refs.html#the-ref-callback-attribute') : void 0;
} else {
ref = (0, _createChainedFunction2.default)(child.ref, ref);
}
return (0, _react.cloneElement)(child, (0, _extends3.default)({}, props, {
ref: ref,
bsClass: (0, _bootstrapUtils.prefix)(props, 'toggle'),
onClick: (0, _createChainedFunction2.default)(child.props.onClick, this.handleClick),
onKeyDown: (0, _createChainedFunction2.default)(child.props.onKeyDown, this.handleKeyDown)
}));
};
Dropdown.prototype.render = function render() {
var _classes,
_this4 = this;
var _props = this.props,
Component = _props.componentClass,
id = _props.id,
dropup = _props.dropup,
disabled = _props.disabled,
pullRight = _props.pullRight,
open = _props.open,
onSelect = _props.onSelect,
role = _props.role,
bsClass = _props.bsClass,
className = _props.className,
rootCloseEvent = _props.rootCloseEvent,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['componentClass', 'id', 'dropup', 'disabled', 'pullRight', 'open', 'onSelect', 'role', 'bsClass', 'className', 'rootCloseEvent', 'children']);
delete props.onToggle;
var classes = (_classes = {}, _classes[bsClass] = true, _classes.open = open, _classes.disabled = disabled, _classes);
if (dropup) {
classes[bsClass] = false;
classes.dropup = true;
}
// This intentionally forwards bsSize and bsStyle (if set) to the
// underlying component, to allow it to render size and style variants.
return _react2.default.createElement(
Component,
(0, _extends3.default)({}, props, {
className: (0, _classnames2.default)(className, classes)
}),
_ValidComponentChildren2.default.map(children, function (child) {
switch (child.props.bsRole) {
case TOGGLE_ROLE:
return _this4.renderToggle(child, {
id: id, disabled: disabled, open: open, role: role, bsClass: bsClass
});
case MENU_ROLE:
return _this4.renderMenu(child, {
id: id, open: open, pullRight: pullRight, bsClass: bsClass, onSelect: onSelect, rootCloseEvent: rootCloseEvent
});
default:
return child;
}
})
);
};
return Dropdown;
}(_react2.default.Component);
Dropdown.propTypes = propTypes;
Dropdown.defaultProps = defaultProps;
(0, _bootstrapUtils.bsClass)('dropdown', Dropdown);
var UncontrolledDropdown = (0, _uncontrollable2.default)(Dropdown, { open: 'onToggle' });
UncontrolledDropdown.Toggle = _DropdownToggle2.default;
UncontrolledDropdown.Menu = _DropdownMenu2.default;
exports.default = UncontrolledDropdown;
module.exports = exports['default'];
}).call(this,require('_process'))
},{"./ButtonGroup":166,"./DropdownMenu":179,"./DropdownToggle":180,"./utils/PropTypes":250,"./utils/ValidComponentChildren":253,"./utils/bootstrapUtils":254,"./utils/createChainedFunction":256,"_process":334,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"dom-helpers/activeElement":111,"dom-helpers/query/contains":122,"keycode":144,"prop-types":154,"prop-types-extra/lib/all":145,"prop-types-extra/lib/elementType":148,"prop-types-extra/lib/isRequiredForA11y":149,"react":321,"react-dom":273,"uncontrollable":328,"warning":330}],178:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _Dropdown = require('./Dropdown');
var _Dropdown2 = _interopRequireDefault(_Dropdown);
var _splitComponentProps2 = require('./utils/splitComponentProps');
var _splitComponentProps3 = _interopRequireDefault(_splitComponentProps2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = (0, _extends3.default)({}, _Dropdown2.default.propTypes, {
// Toggle props.
bsStyle: _propTypes2.default.string,
bsSize: _propTypes2.default.string,
title: _propTypes2.default.node.isRequired,
noCaret: _propTypes2.default.bool,
// Override generated docs from <Dropdown>.
/**
* @private
*/
children: _propTypes2.default.node
});
var DropdownButton = function (_React$Component) {
(0, _inherits3.default)(DropdownButton, _React$Component);
function DropdownButton() {
(0, _classCallCheck3.default)(this, DropdownButton);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
DropdownButton.prototype.render = function render() {
var _props = this.props,
bsSize = _props.bsSize,
bsStyle = _props.bsStyle,
title = _props.title,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['bsSize', 'bsStyle', 'title', 'children']);
var _splitComponentProps = (0, _splitComponentProps3.default)(props, _Dropdown2.default.ControlledComponent),
dropdownProps = _splitComponentProps[0],
toggleProps = _splitComponentProps[1];
return _react2.default.createElement(
_Dropdown2.default,
(0, _extends3.default)({}, dropdownProps, {
bsSize: bsSize,
bsStyle: bsStyle
}),
_react2.default.createElement(
_Dropdown2.default.Toggle,
(0, _extends3.default)({}, toggleProps, {
bsSize: bsSize,
bsStyle: bsStyle
}),
title
),
_react2.default.createElement(
_Dropdown2.default.Menu,
null,
children
)
);
};
return DropdownButton;
}(_react2.default.Component);
DropdownButton.propTypes = propTypes;
exports.default = DropdownButton;
module.exports = exports['default'];
},{"./Dropdown":177,"./utils/splitComponentProps":259,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"prop-types":154,"react":321}],179:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _from = require('babel-runtime/core-js/array/from');
var _from2 = _interopRequireDefault(_from);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _keycode = require('keycode');
var _keycode2 = _interopRequireDefault(_keycode);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _RootCloseWrapper = require('react-overlays/lib/RootCloseWrapper');
var _RootCloseWrapper2 = _interopRequireDefault(_RootCloseWrapper);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
var _ValidComponentChildren = require('./utils/ValidComponentChildren');
var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
open: _propTypes2.default.bool,
pullRight: _propTypes2.default.bool,
onClose: _propTypes2.default.func,
labelledBy: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
onSelect: _propTypes2.default.func,
rootCloseEvent: _propTypes2.default.oneOf(['click', 'mousedown'])
};
var defaultProps = {
bsRole: 'menu',
pullRight: false
};
var DropdownMenu = function (_React$Component) {
(0, _inherits3.default)(DropdownMenu, _React$Component);
function DropdownMenu(props) {
(0, _classCallCheck3.default)(this, DropdownMenu);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props));
_this.handleRootClose = _this.handleRootClose.bind(_this);
_this.handleKeyDown = _this.handleKeyDown.bind(_this);
return _this;
}
DropdownMenu.prototype.getFocusableMenuItems = function getFocusableMenuItems() {
var node = _reactDom2.default.findDOMNode(this);
if (!node) {
return [];
}
return (0, _from2.default)(node.querySelectorAll('[tabIndex="-1"]'));
};
DropdownMenu.prototype.getItemsAndActiveIndex = function getItemsAndActiveIndex() {
var items = this.getFocusableMenuItems();
var activeIndex = items.indexOf(document.activeElement);
return { items: items, activeIndex: activeIndex };
};
DropdownMenu.prototype.focusNext = function focusNext() {
var _getItemsAndActiveInd = this.getItemsAndActiveIndex(),
items = _getItemsAndActiveInd.items,
activeIndex = _getItemsAndActiveInd.activeIndex;
if (items.length === 0) {
return;
}
var nextIndex = activeIndex === items.length - 1 ? 0 : activeIndex + 1;
items[nextIndex].focus();
};
DropdownMenu.prototype.focusPrevious = function focusPrevious() {
var _getItemsAndActiveInd2 = this.getItemsAndActiveIndex(),
items = _getItemsAndActiveInd2.items,
activeIndex = _getItemsAndActiveInd2.activeIndex;
if (items.length === 0) {
return;
}
var prevIndex = activeIndex === 0 ? items.length - 1 : activeIndex - 1;
items[prevIndex].focus();
};
DropdownMenu.prototype.handleKeyDown = function handleKeyDown(event) {
switch (event.keyCode) {
case _keycode2.default.codes.down:
this.focusNext();
event.preventDefault();
break;
case _keycode2.default.codes.up:
this.focusPrevious();
event.preventDefault();
break;
case _keycode2.default.codes.esc:
case _keycode2.default.codes.tab:
this.props.onClose(event, { source: 'keydown' });
break;
default:
}
};
DropdownMenu.prototype.handleRootClose = function handleRootClose(event) {
this.props.onClose(event, { source: 'rootClose' });
};
DropdownMenu.prototype.render = function render() {
var _extends2,
_this2 = this;
var _props = this.props,
open = _props.open,
pullRight = _props.pullRight,
labelledBy = _props.labelledBy,
onSelect = _props.onSelect,
className = _props.className,
rootCloseEvent = _props.rootCloseEvent,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['open', 'pullRight', 'labelledBy', 'onSelect', 'className', 'rootCloseEvent', 'children']);
var _splitBsPropsAndOmit = (0, _bootstrapUtils.splitBsPropsAndOmit)(props, ['onClose']),
bsProps = _splitBsPropsAndOmit[0],
elementProps = _splitBsPropsAndOmit[1];
var classes = (0, _extends4.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), (_extends2 = {}, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'right')] = pullRight, _extends2));
return _react2.default.createElement(
_RootCloseWrapper2.default,
{
disabled: !open,
onRootClose: this.handleRootClose,
event: rootCloseEvent
},
_react2.default.createElement(
'ul',
(0, _extends4.default)({}, elementProps, {
role: 'menu',
className: (0, _classnames2.default)(className, classes),
'aria-labelledby': labelledBy
}),
_ValidComponentChildren2.default.map(children, function (child) {
return _react2.default.cloneElement(child, {
onKeyDown: (0, _createChainedFunction2.default)(child.props.onKeyDown, _this2.handleKeyDown),
onSelect: (0, _createChainedFunction2.default)(child.props.onSelect, onSelect)
});
})
)
);
};
return DropdownMenu;
}(_react2.default.Component);
DropdownMenu.propTypes = propTypes;
DropdownMenu.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('dropdown-menu', DropdownMenu);
module.exports = exports['default'];
},{"./utils/ValidComponentChildren":253,"./utils/bootstrapUtils":254,"./utils/createChainedFunction":256,"babel-runtime/core-js/array/from":9,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"keycode":144,"prop-types":154,"react":321,"react-dom":273,"react-overlays/lib/RootCloseWrapper":310}],180:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _Button = require('./Button');
var _Button2 = _interopRequireDefault(_Button);
var _SafeAnchor = require('./SafeAnchor');
var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
noCaret: _propTypes2.default.bool,
open: _propTypes2.default.bool,
title: _propTypes2.default.string,
useAnchor: _propTypes2.default.bool
};
var defaultProps = {
open: false,
useAnchor: false,
bsRole: 'toggle'
};
var DropdownToggle = function (_React$Component) {
(0, _inherits3.default)(DropdownToggle, _React$Component);
function DropdownToggle() {
(0, _classCallCheck3.default)(this, DropdownToggle);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
DropdownToggle.prototype.render = function render() {
var _props = this.props,
noCaret = _props.noCaret,
open = _props.open,
useAnchor = _props.useAnchor,
bsClass = _props.bsClass,
className = _props.className,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['noCaret', 'open', 'useAnchor', 'bsClass', 'className', 'children']);
delete props.bsRole;
var Component = useAnchor ? _SafeAnchor2.default : _Button2.default;
var useCaret = !noCaret;
// This intentionally forwards bsSize and bsStyle (if set) to the
// underlying component, to allow it to render size and style variants.
// FIXME: Should this really fall back to `title` as children?
return _react2.default.createElement(
Component,
(0, _extends3.default)({}, props, {
role: 'button',
className: (0, _classnames2.default)(className, bsClass),
'aria-haspopup': true,
'aria-expanded': open
}),
children || props.title,
useCaret && ' ',
useCaret && _react2.default.createElement('span', { className: 'caret' })
);
};
return DropdownToggle;
}(_react2.default.Component);
DropdownToggle.propTypes = propTypes;
DropdownToggle.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('dropdown-toggle', DropdownToggle);
module.exports = exports['default'];
},{"./Button":165,"./SafeAnchor":235,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],181:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _Transition = require('react-overlays/lib/Transition');
var _Transition2 = _interopRequireDefault(_Transition);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* Show the component; triggers the fade in or fade out animation
*/
in: _propTypes2.default.bool,
/**
* Wait until the first "enter" transition to mount the component (add it to the DOM)
*/
mountOnEnter: _propTypes2.default.bool,
/**
* Unmount the component (remove it from the DOM) when it is faded out
*/
unmountOnExit: _propTypes2.default.bool,
/**
* Run the fade in animation when the component mounts, if it is initially
* shown
*/
transitionAppear: _propTypes2.default.bool,
/**
* Duration of the fade animation in milliseconds, to ensure that finishing
* callbacks are fired even if the original browser transition end events are
* canceled
*/
timeout: _propTypes2.default.number,
/**
* Callback fired before the component fades in
*/
onEnter: _propTypes2.default.func,
/**
* Callback fired after the component starts to fade in
*/
onEntering: _propTypes2.default.func,
/**
* Callback fired after the has component faded in
*/
onEntered: _propTypes2.default.func,
/**
* Callback fired before the component fades out
*/
onExit: _propTypes2.default.func,
/**
* Callback fired after the component starts to fade out
*/
onExiting: _propTypes2.default.func,
/**
* Callback fired after the component has faded out
*/
onExited: _propTypes2.default.func
};
var defaultProps = {
in: false,
timeout: 300,
mountOnEnter: false,
unmountOnExit: false,
transitionAppear: false
};
var Fade = function (_React$Component) {
(0, _inherits3.default)(Fade, _React$Component);
function Fade() {
(0, _classCallCheck3.default)(this, Fade);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Fade.prototype.render = function render() {
return _react2.default.createElement(_Transition2.default, (0, _extends3.default)({}, this.props, {
className: (0, _classnames2.default)(this.props.className, 'fade'),
enteredClassName: 'in',
enteringClassName: 'in'
}));
};
return Fade;
}(_react2.default.Component);
Fade.propTypes = propTypes;
Fade.defaultProps = defaultProps;
exports.default = Fade;
module.exports = exports['default'];
},{"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321,"react-overlays/lib/Transition":311}],182:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
horizontal: _propTypes2.default.bool,
inline: _propTypes2.default.bool,
componentClass: _elementType2.default
};
var defaultProps = {
horizontal: false,
inline: false,
componentClass: 'form'
};
var Form = function (_React$Component) {
(0, _inherits3.default)(Form, _React$Component);
function Form() {
(0, _classCallCheck3.default)(this, Form);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Form.prototype.render = function render() {
var _props = this.props,
horizontal = _props.horizontal,
inline = _props.inline,
Component = _props.componentClass,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['horizontal', 'inline', 'componentClass', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = [];
if (horizontal) {
classes.push((0, _bootstrapUtils.prefix)(bsProps, 'horizontal'));
}
if (inline) {
classes.push((0, _bootstrapUtils.prefix)(bsProps, 'inline'));
}
return _react2.default.createElement(Component, (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return Form;
}(_react2.default.Component);
Form.propTypes = propTypes;
Form.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('form', Form);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/elementType":148,"react":321}],183:[function(require,module,exports){
(function (process){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
var _FormControlFeedback = require('./FormControlFeedback');
var _FormControlFeedback2 = _interopRequireDefault(_FormControlFeedback);
var _FormControlStatic = require('./FormControlStatic');
var _FormControlStatic2 = _interopRequireDefault(_FormControlStatic);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _StyleConfig = require('./utils/StyleConfig');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
componentClass: _elementType2.default,
/**
* Only relevant if `componentClass` is `'input'`.
*/
type: _propTypes2.default.string,
/**
* Uses `controlId` from `<FormGroup>` if not explicitly specified.
*/
id: _propTypes2.default.string,
/**
* Attaches a ref to the `<input>` element. Only functions can be used here.
*
* ```js
* <FormControl inputRef={ref => { this.input = ref; }} />
* ```
*/
inputRef: _propTypes2.default.func
};
var defaultProps = {
componentClass: 'input'
};
var contextTypes = {
$bs_formGroup: _propTypes2.default.object
};
var FormControl = function (_React$Component) {
(0, _inherits3.default)(FormControl, _React$Component);
function FormControl() {
(0, _classCallCheck3.default)(this, FormControl);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
FormControl.prototype.render = function render() {
var formGroup = this.context.$bs_formGroup;
var controlId = formGroup && formGroup.controlId;
var _props = this.props,
Component = _props.componentClass,
type = _props.type,
_props$id = _props.id,
id = _props$id === undefined ? controlId : _props$id,
inputRef = _props.inputRef,
className = _props.className,
bsSize = _props.bsSize,
props = (0, _objectWithoutProperties3.default)(_props, ['componentClass', 'type', 'id', 'inputRef', 'className', 'bsSize']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(controlId == null || id === controlId, '`controlId` is ignored on `<FormControl>` when `id` is specified.') : void 0;
// input[type="file"] should not have .form-control.
var classes = void 0;
if (type !== 'file') {
classes = (0, _bootstrapUtils.getClassSet)(bsProps);
}
// If user provides a size, make sure to append it to classes as input-
// e.g. if bsSize is small, it will append input-sm
if (bsSize) {
var size = _StyleConfig.SIZE_MAP[bsSize] || bsSize;
classes[(0, _bootstrapUtils.prefix)({ bsClass: 'input' }, size)] = true;
}
return _react2.default.createElement(Component, (0, _extends3.default)({}, elementProps, {
type: type,
id: id,
ref: inputRef,
className: (0, _classnames2.default)(className, classes)
}));
};
return FormControl;
}(_react2.default.Component);
FormControl.propTypes = propTypes;
FormControl.defaultProps = defaultProps;
FormControl.contextTypes = contextTypes;
FormControl.Feedback = _FormControlFeedback2.default;
FormControl.Static = _FormControlStatic2.default;
exports.default = (0, _bootstrapUtils.bsClass)('form-control', (0, _bootstrapUtils.bsSizes)([_StyleConfig.Size.SMALL, _StyleConfig.Size.LARGE], FormControl));
module.exports = exports['default'];
}).call(this,require('_process'))
},{"./FormControlFeedback":184,"./FormControlStatic":185,"./utils/StyleConfig":251,"./utils/bootstrapUtils":254,"_process":334,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/elementType":148,"react":321,"warning":330}],184:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _Glyphicon = require('./Glyphicon');
var _Glyphicon2 = _interopRequireDefault(_Glyphicon);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var defaultProps = {
bsRole: 'feedback'
};
var contextTypes = {
$bs_formGroup: _propTypes2.default.object
};
var FormControlFeedback = function (_React$Component) {
(0, _inherits3.default)(FormControlFeedback, _React$Component);
function FormControlFeedback() {
(0, _classCallCheck3.default)(this, FormControlFeedback);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
FormControlFeedback.prototype.getGlyph = function getGlyph(validationState) {
switch (validationState) {
case 'success':
return 'ok';
case 'warning':
return 'warning-sign';
case 'error':
return 'remove';
default:
return null;
}
};
FormControlFeedback.prototype.renderDefaultFeedback = function renderDefaultFeedback(formGroup, className, classes, elementProps) {
var glyph = this.getGlyph(formGroup && formGroup.validationState);
if (!glyph) {
return null;
}
return _react2.default.createElement(_Glyphicon2.default, (0, _extends3.default)({}, elementProps, {
glyph: glyph,
className: (0, _classnames2.default)(className, classes)
}));
};
FormControlFeedback.prototype.render = function render() {
var _props = this.props,
className = _props.className,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['className', 'children']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
if (!children) {
return this.renderDefaultFeedback(this.context.$bs_formGroup, className, classes, elementProps);
}
var child = _react2.default.Children.only(children);
return _react2.default.cloneElement(child, (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(child.props.className, className, classes)
}));
};
return FormControlFeedback;
}(_react2.default.Component);
FormControlFeedback.defaultProps = defaultProps;
FormControlFeedback.contextTypes = contextTypes;
exports.default = (0, _bootstrapUtils.bsClass)('form-control-feedback', FormControlFeedback);
module.exports = exports['default'];
},{"./Glyphicon":187,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],185:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
componentClass: _elementType2.default
};
var defaultProps = {
componentClass: 'p'
};
var FormControlStatic = function (_React$Component) {
(0, _inherits3.default)(FormControlStatic, _React$Component);
function FormControlStatic() {
(0, _classCallCheck3.default)(this, FormControlStatic);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
FormControlStatic.prototype.render = function render() {
var _props = this.props,
Component = _props.componentClass,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['componentClass', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement(Component, (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return FormControlStatic;
}(_react2.default.Component);
FormControlStatic.propTypes = propTypes;
FormControlStatic.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('form-control-static', FormControlStatic);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types-extra/lib/elementType":148,"react":321}],186:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _StyleConfig = require('./utils/StyleConfig');
var _ValidComponentChildren = require('./utils/ValidComponentChildren');
var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* Sets `id` on `<FormControl>` and `htmlFor` on `<FormGroup.Label>`.
*/
controlId: _propTypes2.default.string,
validationState: _propTypes2.default.oneOf(['success', 'warning', 'error', null])
};
var childContextTypes = {
$bs_formGroup: _propTypes2.default.object.isRequired
};
var FormGroup = function (_React$Component) {
(0, _inherits3.default)(FormGroup, _React$Component);
function FormGroup() {
(0, _classCallCheck3.default)(this, FormGroup);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
FormGroup.prototype.getChildContext = function getChildContext() {
var _props = this.props,
controlId = _props.controlId,
validationState = _props.validationState;
return {
$bs_formGroup: {
controlId: controlId,
validationState: validationState
}
};
};
FormGroup.prototype.hasFeedback = function hasFeedback(children) {
var _this2 = this;
return _ValidComponentChildren2.default.some(children, function (child) {
return child.props.bsRole === 'feedback' || child.props.children && _this2.hasFeedback(child.props.children);
});
};
FormGroup.prototype.render = function render() {
var _props2 = this.props,
validationState = _props2.validationState,
className = _props2.className,
children = _props2.children,
props = (0, _objectWithoutProperties3.default)(_props2, ['validationState', 'className', 'children']);
var _splitBsPropsAndOmit = (0, _bootstrapUtils.splitBsPropsAndOmit)(props, ['controlId']),
bsProps = _splitBsPropsAndOmit[0],
elementProps = _splitBsPropsAndOmit[1];
var classes = (0, _extends3.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), {
'has-feedback': this.hasFeedback(children)
});
if (validationState) {
classes['has-' + validationState] = true;
}
return _react2.default.createElement(
'div',
(0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}),
children
);
};
return FormGroup;
}(_react2.default.Component);
FormGroup.propTypes = propTypes;
FormGroup.childContextTypes = childContextTypes;
exports.default = (0, _bootstrapUtils.bsClass)('form-group', (0, _bootstrapUtils.bsSizes)([_StyleConfig.Size.LARGE, _StyleConfig.Size.SMALL], FormGroup));
module.exports = exports['default'];
},{"./utils/StyleConfig":251,"./utils/ValidComponentChildren":253,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],187:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* An icon name without "glyphicon-" prefix. See e.g. http://getbootstrap.com/components/#glyphicons
*/
glyph: _propTypes2.default.string.isRequired
};
var Glyphicon = function (_React$Component) {
(0, _inherits3.default)(Glyphicon, _React$Component);
function Glyphicon() {
(0, _classCallCheck3.default)(this, Glyphicon);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Glyphicon.prototype.render = function render() {
var _extends2;
var _props = this.props,
glyph = _props.glyph,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['glyph', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _extends4.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), (_extends2 = {}, _extends2[(0, _bootstrapUtils.prefix)(bsProps, glyph)] = true, _extends2));
return _react2.default.createElement('span', (0, _extends4.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return Glyphicon;
}(_react2.default.Component);
Glyphicon.propTypes = propTypes;
exports.default = (0, _bootstrapUtils.bsClass)('glyphicon', Glyphicon);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],188:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* Turn any fixed-width grid layout into a full-width layout by this property.
*
* Adds `container-fluid` class.
*/
fluid: _propTypes2.default.bool,
/**
* You can use a custom element for this component
*/
componentClass: _elementType2.default
};
var defaultProps = {
componentClass: 'div',
fluid: false
};
var Grid = function (_React$Component) {
(0, _inherits3.default)(Grid, _React$Component);
function Grid() {
(0, _classCallCheck3.default)(this, Grid);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Grid.prototype.render = function render() {
var _props = this.props,
fluid = _props.fluid,
Component = _props.componentClass,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['fluid', 'componentClass', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.prefix)(bsProps, fluid && 'fluid');
return _react2.default.createElement(Component, (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return Grid;
}(_react2.default.Component);
Grid.propTypes = propTypes;
Grid.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('container', Grid);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/elementType":148,"react":321}],189:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var HelpBlock = function (_React$Component) {
(0, _inherits3.default)(HelpBlock, _React$Component);
function HelpBlock() {
(0, _classCallCheck3.default)(this, HelpBlock);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
HelpBlock.prototype.render = function render() {
var _props = this.props,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement('span', (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return HelpBlock;
}(_react2.default.Component);
exports.default = (0, _bootstrapUtils.bsClass)('help-block', HelpBlock);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"react":321}],190:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* Sets image as responsive image
*/
responsive: _propTypes2.default.bool,
/**
* Sets image shape as rounded
*/
rounded: _propTypes2.default.bool,
/**
* Sets image shape as circle
*/
circle: _propTypes2.default.bool,
/**
* Sets image shape as thumbnail
*/
thumbnail: _propTypes2.default.bool
};
var defaultProps = {
responsive: false,
rounded: false,
circle: false,
thumbnail: false
};
var Image = function (_React$Component) {
(0, _inherits3.default)(Image, _React$Component);
function Image() {
(0, _classCallCheck3.default)(this, Image);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Image.prototype.render = function render() {
var _classes;
var _props = this.props,
responsive = _props.responsive,
rounded = _props.rounded,
circle = _props.circle,
thumbnail = _props.thumbnail,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['responsive', 'rounded', 'circle', 'thumbnail', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (_classes = {}, _classes[(0, _bootstrapUtils.prefix)(bsProps, 'responsive')] = responsive, _classes[(0, _bootstrapUtils.prefix)(bsProps, 'rounded')] = rounded, _classes[(0, _bootstrapUtils.prefix)(bsProps, 'circle')] = circle, _classes[(0, _bootstrapUtils.prefix)(bsProps, 'thumbnail')] = thumbnail, _classes);
return _react2.default.createElement('img', (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return Image;
}(_react2.default.Component);
Image.propTypes = propTypes;
Image.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('img', Image);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],191:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _InputGroupAddon = require('./InputGroupAddon');
var _InputGroupAddon2 = _interopRequireDefault(_InputGroupAddon);
var _InputGroupButton = require('./InputGroupButton');
var _InputGroupButton2 = _interopRequireDefault(_InputGroupButton);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _StyleConfig = require('./utils/StyleConfig');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var InputGroup = function (_React$Component) {
(0, _inherits3.default)(InputGroup, _React$Component);
function InputGroup() {
(0, _classCallCheck3.default)(this, InputGroup);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
InputGroup.prototype.render = function render() {
var _props = this.props,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement('span', (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return InputGroup;
}(_react2.default.Component);
InputGroup.Addon = _InputGroupAddon2.default;
InputGroup.Button = _InputGroupButton2.default;
exports.default = (0, _bootstrapUtils.bsClass)('input-group', (0, _bootstrapUtils.bsSizes)([_StyleConfig.Size.LARGE, _StyleConfig.Size.SMALL], InputGroup));
module.exports = exports['default'];
},{"./InputGroupAddon":192,"./InputGroupButton":193,"./utils/StyleConfig":251,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"react":321}],192:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var InputGroupAddon = function (_React$Component) {
(0, _inherits3.default)(InputGroupAddon, _React$Component);
function InputGroupAddon() {
(0, _classCallCheck3.default)(this, InputGroupAddon);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
InputGroupAddon.prototype.render = function render() {
var _props = this.props,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement('span', (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return InputGroupAddon;
}(_react2.default.Component);
exports.default = (0, _bootstrapUtils.bsClass)('input-group-addon', InputGroupAddon);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"react":321}],193:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var InputGroupButton = function (_React$Component) {
(0, _inherits3.default)(InputGroupButton, _React$Component);
function InputGroupButton() {
(0, _classCallCheck3.default)(this, InputGroupButton);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
InputGroupButton.prototype.render = function render() {
var _props = this.props,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement('span', (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return InputGroupButton;
}(_react2.default.Component);
exports.default = (0, _bootstrapUtils.bsClass)('input-group-btn', InputGroupButton);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"react":321}],194:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
componentClass: _elementType2.default
};
var defaultProps = {
componentClass: 'div'
};
var Jumbotron = function (_React$Component) {
(0, _inherits3.default)(Jumbotron, _React$Component);
function Jumbotron() {
(0, _classCallCheck3.default)(this, Jumbotron);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Jumbotron.prototype.render = function render() {
var _props = this.props,
Component = _props.componentClass,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['componentClass', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement(Component, (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return Jumbotron;
}(_react2.default.Component);
Jumbotron.propTypes = propTypes;
Jumbotron.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('jumbotron', Jumbotron);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types-extra/lib/elementType":148,"react":321}],195:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _values = require('babel-runtime/core-js/object/values');
var _values2 = _interopRequireDefault(_values);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _StyleConfig = require('./utils/StyleConfig');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Label = function (_React$Component) {
(0, _inherits3.default)(Label, _React$Component);
function Label() {
(0, _classCallCheck3.default)(this, Label);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Label.prototype.hasContent = function hasContent(children) {
var result = false;
_react2.default.Children.forEach(children, function (child) {
if (result) {
return;
}
if (child || child === 0) {
result = true;
}
});
return result;
};
Label.prototype.render = function render() {
var _props = this.props,
className = _props.className,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['className', 'children']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _extends3.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), {
// Hack for collapsing on IE8.
hidden: !this.hasContent(children)
});
return _react2.default.createElement(
'span',
(0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}),
children
);
};
return Label;
}(_react2.default.Component);
exports.default = (0, _bootstrapUtils.bsClass)('label', (0, _bootstrapUtils.bsStyles)([].concat((0, _values2.default)(_StyleConfig.State), [_StyleConfig.Style.DEFAULT, _StyleConfig.Style.PRIMARY]), _StyleConfig.Style.DEFAULT, Label));
module.exports = exports['default'];
},{"./utils/StyleConfig":251,"./utils/bootstrapUtils":254,"babel-runtime/core-js/object/values":14,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"react":321}],196:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _ListGroupItem = require('./ListGroupItem');
var _ListGroupItem2 = _interopRequireDefault(_ListGroupItem);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _ValidComponentChildren = require('./utils/ValidComponentChildren');
var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* You can use a custom element type for this component.
*
* If not specified, it will be treated as `'li'` if every child is a
* non-actionable `<ListGroupItem>`, and `'div'` otherwise.
*/
componentClass: _elementType2.default
};
function getDefaultComponent(children) {
if (!children) {
// FIXME: This is the old behavior. Is this right?
return 'div';
}
if (_ValidComponentChildren2.default.some(children, function (child) {
return child.type !== _ListGroupItem2.default || child.props.href || child.props.onClick;
})) {
return 'div';
}
return 'ul';
}
var ListGroup = function (_React$Component) {
(0, _inherits3.default)(ListGroup, _React$Component);
function ListGroup() {
(0, _classCallCheck3.default)(this, ListGroup);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
ListGroup.prototype.render = function render() {
var _props = this.props,
children = _props.children,
_props$componentClass = _props.componentClass,
Component = _props$componentClass === undefined ? getDefaultComponent(children) : _props$componentClass,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['children', 'componentClass', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
var useListItem = Component === 'ul' && _ValidComponentChildren2.default.every(children, function (child) {
return child.type === _ListGroupItem2.default;
});
return _react2.default.createElement(
Component,
(0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}),
useListItem ? _ValidComponentChildren2.default.map(children, function (child) {
return (0, _react.cloneElement)(child, { listItem: true });
}) : children
);
};
return ListGroup;
}(_react2.default.Component);
ListGroup.propTypes = propTypes;
exports.default = (0, _bootstrapUtils.bsClass)('list-group', ListGroup);
module.exports = exports['default'];
},{"./ListGroupItem":197,"./utils/ValidComponentChildren":253,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types-extra/lib/elementType":148,"react":321}],197:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _values = require('babel-runtime/core-js/object/values');
var _values2 = _interopRequireDefault(_values);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _StyleConfig = require('./utils/StyleConfig');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
active: _propTypes2.default.any,
disabled: _propTypes2.default.any,
header: _propTypes2.default.node,
listItem: _propTypes2.default.bool,
onClick: _propTypes2.default.func,
href: _propTypes2.default.string,
type: _propTypes2.default.string
};
var defaultProps = {
listItem: false
};
var ListGroupItem = function (_React$Component) {
(0, _inherits3.default)(ListGroupItem, _React$Component);
function ListGroupItem() {
(0, _classCallCheck3.default)(this, ListGroupItem);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
ListGroupItem.prototype.renderHeader = function renderHeader(header, headingClassName) {
if (_react2.default.isValidElement(header)) {
return (0, _react.cloneElement)(header, {
className: (0, _classnames2.default)(header.props.className, headingClassName)
});
}
return _react2.default.createElement(
'h4',
{ className: headingClassName },
header
);
};
ListGroupItem.prototype.render = function render() {
var _props = this.props,
active = _props.active,
disabled = _props.disabled,
className = _props.className,
header = _props.header,
listItem = _props.listItem,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['active', 'disabled', 'className', 'header', 'listItem', 'children']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _extends3.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), {
active: active,
disabled: disabled
});
var Component = void 0;
if (elementProps.href) {
Component = 'a';
} else if (elementProps.onClick) {
Component = 'button';
elementProps.type = elementProps.type || 'button';
} else if (listItem) {
Component = 'li';
} else {
Component = 'span';
}
elementProps.className = (0, _classnames2.default)(className, classes);
// TODO: Deprecate `header` prop.
if (header) {
return _react2.default.createElement(
Component,
elementProps,
this.renderHeader(header, (0, _bootstrapUtils.prefix)(bsProps, 'heading')),
_react2.default.createElement(
'p',
{ className: (0, _bootstrapUtils.prefix)(bsProps, 'text') },
children
)
);
}
return _react2.default.createElement(
Component,
elementProps,
children
);
};
return ListGroupItem;
}(_react2.default.Component);
ListGroupItem.propTypes = propTypes;
ListGroupItem.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('list-group-item', (0, _bootstrapUtils.bsStyles)((0, _values2.default)(_StyleConfig.State), ListGroupItem));
module.exports = exports['default'];
},{"./utils/StyleConfig":251,"./utils/bootstrapUtils":254,"babel-runtime/core-js/object/values":14,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],198:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _MediaBody = require('./MediaBody');
var _MediaBody2 = _interopRequireDefault(_MediaBody);
var _MediaHeading = require('./MediaHeading');
var _MediaHeading2 = _interopRequireDefault(_MediaHeading);
var _MediaLeft = require('./MediaLeft');
var _MediaLeft2 = _interopRequireDefault(_MediaLeft);
var _MediaList = require('./MediaList');
var _MediaList2 = _interopRequireDefault(_MediaList);
var _MediaListItem = require('./MediaListItem');
var _MediaListItem2 = _interopRequireDefault(_MediaListItem);
var _MediaRight = require('./MediaRight');
var _MediaRight2 = _interopRequireDefault(_MediaRight);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
componentClass: _elementType2.default
};
var defaultProps = {
componentClass: 'div'
};
var Media = function (_React$Component) {
(0, _inherits3.default)(Media, _React$Component);
function Media() {
(0, _classCallCheck3.default)(this, Media);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Media.prototype.render = function render() {
var _props = this.props,
Component = _props.componentClass,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['componentClass', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement(Component, (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return Media;
}(_react2.default.Component);
Media.propTypes = propTypes;
Media.defaultProps = defaultProps;
Media.Heading = _MediaHeading2.default;
Media.Body = _MediaBody2.default;
Media.Left = _MediaLeft2.default;
Media.Right = _MediaRight2.default;
Media.List = _MediaList2.default;
Media.ListItem = _MediaListItem2.default;
exports.default = (0, _bootstrapUtils.bsClass)('media', Media);
module.exports = exports['default'];
},{"./MediaBody":199,"./MediaHeading":200,"./MediaLeft":201,"./MediaList":202,"./MediaListItem":203,"./MediaRight":204,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types-extra/lib/elementType":148,"react":321}],199:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _Media = require('./Media');
var _Media2 = _interopRequireDefault(_Media);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* Align the media to the top, middle, or bottom of the media object.
*/
align: _propTypes2.default.oneOf(['top', 'middle', 'bottom']),
componentClass: _elementType2.default
};
var defaultProps = {
componentClass: 'div'
};
var MediaBody = function (_React$Component) {
(0, _inherits3.default)(MediaBody, _React$Component);
function MediaBody() {
(0, _classCallCheck3.default)(this, MediaBody);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
MediaBody.prototype.render = function render() {
var _props = this.props,
Component = _props.componentClass,
align = _props.align,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['componentClass', 'align', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
if (align) {
// The class is e.g. `media-top`, not `media-left-top`.
classes[(0, _bootstrapUtils.prefix)(_Media2.default.defaultProps, align)] = true;
}
return _react2.default.createElement(Component, (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return MediaBody;
}(_react2.default.Component);
MediaBody.propTypes = propTypes;
MediaBody.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('media-body', MediaBody);
module.exports = exports['default'];
},{"./Media":198,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/elementType":148,"react":321}],200:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
componentClass: _elementType2.default
};
var defaultProps = {
componentClass: 'h4'
};
var MediaHeading = function (_React$Component) {
(0, _inherits3.default)(MediaHeading, _React$Component);
function MediaHeading() {
(0, _classCallCheck3.default)(this, MediaHeading);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
MediaHeading.prototype.render = function render() {
var _props = this.props,
Component = _props.componentClass,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['componentClass', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement(Component, (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return MediaHeading;
}(_react2.default.Component);
MediaHeading.propTypes = propTypes;
MediaHeading.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('media-heading', MediaHeading);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types-extra/lib/elementType":148,"react":321}],201:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _Media = require('./Media');
var _Media2 = _interopRequireDefault(_Media);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* Align the media to the top, middle, or bottom of the media object.
*/
align: _propTypes2.default.oneOf(['top', 'middle', 'bottom'])
};
var MediaLeft = function (_React$Component) {
(0, _inherits3.default)(MediaLeft, _React$Component);
function MediaLeft() {
(0, _classCallCheck3.default)(this, MediaLeft);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
MediaLeft.prototype.render = function render() {
var _props = this.props,
align = _props.align,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['align', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
if (align) {
// The class is e.g. `media-top`, not `media-left-top`.
classes[(0, _bootstrapUtils.prefix)(_Media2.default.defaultProps, align)] = true;
}
return _react2.default.createElement('div', (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return MediaLeft;
}(_react2.default.Component);
MediaLeft.propTypes = propTypes;
exports.default = (0, _bootstrapUtils.bsClass)('media-left', MediaLeft);
module.exports = exports['default'];
},{"./Media":198,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],202:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var MediaList = function (_React$Component) {
(0, _inherits3.default)(MediaList, _React$Component);
function MediaList() {
(0, _classCallCheck3.default)(this, MediaList);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
MediaList.prototype.render = function render() {
var _props = this.props,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement('ul', (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return MediaList;
}(_react2.default.Component);
exports.default = (0, _bootstrapUtils.bsClass)('media-list', MediaList);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"react":321}],203:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var MediaListItem = function (_React$Component) {
(0, _inherits3.default)(MediaListItem, _React$Component);
function MediaListItem() {
(0, _classCallCheck3.default)(this, MediaListItem);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
MediaListItem.prototype.render = function render() {
var _props = this.props,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement('li', (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return MediaListItem;
}(_react2.default.Component);
exports.default = (0, _bootstrapUtils.bsClass)('media', MediaListItem);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"react":321}],204:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _Media = require('./Media');
var _Media2 = _interopRequireDefault(_Media);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* Align the media to the top, middle, or bottom of the media object.
*/
align: _propTypes2.default.oneOf(['top', 'middle', 'bottom'])
};
var MediaRight = function (_React$Component) {
(0, _inherits3.default)(MediaRight, _React$Component);
function MediaRight() {
(0, _classCallCheck3.default)(this, MediaRight);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
MediaRight.prototype.render = function render() {
var _props = this.props,
align = _props.align,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['align', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
if (align) {
// The class is e.g. `media-top`, not `media-right-top`.
classes[(0, _bootstrapUtils.prefix)(_Media2.default.defaultProps, align)] = true;
}
return _react2.default.createElement('div', (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return MediaRight;
}(_react2.default.Component);
MediaRight.propTypes = propTypes;
exports.default = (0, _bootstrapUtils.bsClass)('media-right', MediaRight);
module.exports = exports['default'];
},{"./Media":198,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],205:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _all = require('prop-types-extra/lib/all');
var _all2 = _interopRequireDefault(_all);
var _SafeAnchor = require('./SafeAnchor');
var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* Highlight the menu item as active.
*/
active: _propTypes2.default.bool,
/**
* Disable the menu item, making it unselectable.
*/
disabled: _propTypes2.default.bool,
/**
* Styles the menu item as a horizontal rule, providing visual separation between
* groups of menu items.
*/
divider: (0, _all2.default)(_propTypes2.default.bool, function (_ref) {
var divider = _ref.divider,
children = _ref.children;
return divider && children ? new Error('Children will not be rendered for dividers') : null;
}),
/**
* Value passed to the `onSelect` handler, useful for identifying the selected menu item.
*/
eventKey: _propTypes2.default.any,
/**
* Styles the menu item as a header label, useful for describing a group of menu items.
*/
header: _propTypes2.default.bool,
/**
* HTML `href` attribute corresponding to `a.href`.
*/
href: _propTypes2.default.string,
/**
* Callback fired when the menu item is clicked.
*/
onClick: _propTypes2.default.func,
/**
* Callback fired when the menu item is selected.
*
* ```js
* (eventKey: any, event: Object) => any
* ```
*/
onSelect: _propTypes2.default.func
};
var defaultProps = {
divider: false,
disabled: false,
header: false
};
var MenuItem = function (_React$Component) {
(0, _inherits3.default)(MenuItem, _React$Component);
function MenuItem(props, context) {
(0, _classCallCheck3.default)(this, MenuItem);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
_this.handleClick = _this.handleClick.bind(_this);
return _this;
}
MenuItem.prototype.handleClick = function handleClick(event) {
var _props = this.props,
href = _props.href,
disabled = _props.disabled,
onSelect = _props.onSelect,
eventKey = _props.eventKey;
if (!href || disabled) {
event.preventDefault();
}
if (disabled) {
return;
}
if (onSelect) {
onSelect(eventKey, event);
}
};
MenuItem.prototype.render = function render() {
var _props2 = this.props,
active = _props2.active,
disabled = _props2.disabled,
divider = _props2.divider,
header = _props2.header,
onClick = _props2.onClick,
className = _props2.className,
style = _props2.style,
props = (0, _objectWithoutProperties3.default)(_props2, ['active', 'disabled', 'divider', 'header', 'onClick', 'className', 'style']);
var _splitBsPropsAndOmit = (0, _bootstrapUtils.splitBsPropsAndOmit)(props, ['eventKey', 'onSelect']),
bsProps = _splitBsPropsAndOmit[0],
elementProps = _splitBsPropsAndOmit[1];
if (divider) {
// Forcibly blank out the children; separators shouldn't render any.
elementProps.children = undefined;
return _react2.default.createElement('li', (0, _extends3.default)({}, elementProps, {
role: 'separator',
className: (0, _classnames2.default)(className, 'divider'),
style: style
}));
}
if (header) {
return _react2.default.createElement('li', (0, _extends3.default)({}, elementProps, {
role: 'heading',
className: (0, _classnames2.default)(className, (0, _bootstrapUtils.prefix)(bsProps, 'header')),
style: style
}));
}
return _react2.default.createElement(
'li',
{
role: 'presentation',
className: (0, _classnames2.default)(className, { active: active, disabled: disabled }),
style: style
},
_react2.default.createElement(_SafeAnchor2.default, (0, _extends3.default)({}, elementProps, {
role: 'menuitem',
tabIndex: '-1',
onClick: (0, _createChainedFunction2.default)(onClick, this.handleClick)
}))
);
};
return MenuItem;
}(_react2.default.Component);
MenuItem.propTypes = propTypes;
MenuItem.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('dropdown', MenuItem);
module.exports = exports['default'];
},{"./SafeAnchor":235,"./utils/bootstrapUtils":254,"./utils/createChainedFunction":256,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/all":145,"react":321}],206:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _events = require('dom-helpers/events');
var _events2 = _interopRequireDefault(_events);
var _ownerDocument = require('dom-helpers/ownerDocument');
var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
var _inDOM = require('dom-helpers/util/inDOM');
var _inDOM2 = _interopRequireDefault(_inDOM);
var _scrollbarSize = require('dom-helpers/util/scrollbarSize');
var _scrollbarSize2 = _interopRequireDefault(_scrollbarSize);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _Modal = require('react-overlays/lib/Modal');
var _Modal2 = _interopRequireDefault(_Modal);
var _isOverflowing = require('react-overlays/lib/utils/isOverflowing');
var _isOverflowing2 = _interopRequireDefault(_isOverflowing);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _Fade = require('./Fade');
var _Fade2 = _interopRequireDefault(_Fade);
var _ModalBody = require('./ModalBody');
var _ModalBody2 = _interopRequireDefault(_ModalBody);
var _ModalDialog = require('./ModalDialog');
var _ModalDialog2 = _interopRequireDefault(_ModalDialog);
var _ModalFooter = require('./ModalFooter');
var _ModalFooter2 = _interopRequireDefault(_ModalFooter);
var _ModalHeader = require('./ModalHeader');
var _ModalHeader2 = _interopRequireDefault(_ModalHeader);
var _ModalTitle = require('./ModalTitle');
var _ModalTitle2 = _interopRequireDefault(_ModalTitle);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
var _splitComponentProps2 = require('./utils/splitComponentProps');
var _splitComponentProps3 = _interopRequireDefault(_splitComponentProps2);
var _StyleConfig = require('./utils/StyleConfig');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = (0, _extends3.default)({}, _Modal2.default.propTypes, _ModalDialog2.default.propTypes, {
/**
* Include a backdrop component. Specify 'static' for a backdrop that doesn't
* trigger an "onHide" when clicked.
*/
backdrop: _propTypes2.default.oneOf(['static', true, false]),
/**
* Add an optional extra class name to .modal-backdrop
* It could end up looking like class="modal-backdrop foo-modal-backdrop in".
*/
backdropClassName: _propTypes2.default.string,
/**
* Close the modal when escape key is pressed
*/
keyboard: _propTypes2.default.bool,
/**
* Open and close the Modal with a slide and fade animation.
*/
animation: _propTypes2.default.bool,
/**
* A Component type that provides the modal content Markup. This is a useful
* prop when you want to use your own styles and markup to create a custom
* modal component.
*/
dialogComponentClass: _elementType2.default,
/**
* When `true` The modal will automatically shift focus to itself when it
* opens, and replace it to the last focused element when it closes.
* Generally this should never be set to false as it makes the Modal less
* accessible to assistive technologies, like screen-readers.
*/
autoFocus: _propTypes2.default.bool,
/**
* When `true` The modal will prevent focus from leaving the Modal while
* open. Consider leaving the default value here, as it is necessary to make
* the Modal work well with assistive technologies, such as screen readers.
*/
enforceFocus: _propTypes2.default.bool,
/**
* When `true` The modal will restore focus to previously focused element once
* modal is hidden
*/
restoreFocus: _propTypes2.default.bool,
/**
* When `true` The modal will show itself.
*/
show: _propTypes2.default.bool,
/**
* A callback fired when the header closeButton or non-static backdrop is
* clicked. Required if either are specified.
*/
onHide: _propTypes2.default.func,
/**
* Callback fired before the Modal transitions in
*/
onEnter: _propTypes2.default.func,
/**
* Callback fired as the Modal begins to transition in
*/
onEntering: _propTypes2.default.func,
/**
* Callback fired after the Modal finishes transitioning in
*/
onEntered: _propTypes2.default.func,
/**
* Callback fired right before the Modal transitions out
*/
onExit: _propTypes2.default.func,
/**
* Callback fired as the Modal begins to transition out
*/
onExiting: _propTypes2.default.func,
/**
* Callback fired after the Modal finishes transitioning out
*/
onExited: _propTypes2.default.func,
/**
* @private
*/
container: _Modal2.default.propTypes.container
});
var defaultProps = (0, _extends3.default)({}, _Modal2.default.defaultProps, {
animation: true,
dialogComponentClass: _ModalDialog2.default
});
var childContextTypes = {
$bs_modal: _propTypes2.default.shape({
onHide: _propTypes2.default.func
})
};
var Modal = function (_React$Component) {
(0, _inherits3.default)(Modal, _React$Component);
function Modal(props, context) {
(0, _classCallCheck3.default)(this, Modal);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
_this.handleEntering = _this.handleEntering.bind(_this);
_this.handleExited = _this.handleExited.bind(_this);
_this.handleWindowResize = _this.handleWindowResize.bind(_this);
_this.handleDialogClick = _this.handleDialogClick.bind(_this);
_this.setModalRef = _this.setModalRef.bind(_this);
_this.state = {
style: {}
};
return _this;
}
Modal.prototype.getChildContext = function getChildContext() {
return {
$bs_modal: {
onHide: this.props.onHide
}
};
};
Modal.prototype.componentWillUnmount = function componentWillUnmount() {
// Clean up the listener if we need to.
this.handleExited();
};
Modal.prototype.setModalRef = function setModalRef(ref) {
this._modal = ref;
};
Modal.prototype.handleDialogClick = function handleDialogClick(e) {
if (e.target !== e.currentTarget) {
return;
}
this.props.onHide();
};
Modal.prototype.handleEntering = function handleEntering() {
// FIXME: This should work even when animation is disabled.
_events2.default.on(window, 'resize', this.handleWindowResize);
this.updateStyle();
};
Modal.prototype.handleExited = function handleExited() {
// FIXME: This should work even when animation is disabled.
_events2.default.off(window, 'resize', this.handleWindowResize);
};
Modal.prototype.handleWindowResize = function handleWindowResize() {
this.updateStyle();
};
Modal.prototype.updateStyle = function updateStyle() {
if (!_inDOM2.default) {
return;
}
var dialogNode = this._modal.getDialogElement();
var dialogHeight = dialogNode.scrollHeight;
var document = (0, _ownerDocument2.default)(dialogNode);
var bodyIsOverflowing = (0, _isOverflowing2.default)(_reactDom2.default.findDOMNode(this.props.container || document.body));
var modalIsOverflowing = dialogHeight > document.documentElement.clientHeight;
this.setState({
style: {
paddingRight: bodyIsOverflowing && !modalIsOverflowing ? (0, _scrollbarSize2.default)() : undefined,
paddingLeft: !bodyIsOverflowing && modalIsOverflowing ? (0, _scrollbarSize2.default)() : undefined
}
});
};
Modal.prototype.render = function render() {
var _props = this.props,
backdrop = _props.backdrop,
backdropClassName = _props.backdropClassName,
animation = _props.animation,
show = _props.show,
Dialog = _props.dialogComponentClass,
className = _props.className,
style = _props.style,
children = _props.children,
onEntering = _props.onEntering,
onExited = _props.onExited,
props = (0, _objectWithoutProperties3.default)(_props, ['backdrop', 'backdropClassName', 'animation', 'show', 'dialogComponentClass', 'className', 'style', 'children', 'onEntering', 'onExited']);
var _splitComponentProps = (0, _splitComponentProps3.default)(props, _Modal2.default),
baseModalProps = _splitComponentProps[0],
dialogProps = _splitComponentProps[1];
var inClassName = show && !animation && 'in';
return _react2.default.createElement(
_Modal2.default,
(0, _extends3.default)({}, baseModalProps, {
ref: this.setModalRef,
show: show,
onEntering: (0, _createChainedFunction2.default)(onEntering, this.handleEntering),
onExited: (0, _createChainedFunction2.default)(onExited, this.handleExited),
backdrop: backdrop,
backdropClassName: (0, _classnames2.default)((0, _bootstrapUtils.prefix)(props, 'backdrop'), backdropClassName, inClassName),
containerClassName: (0, _bootstrapUtils.prefix)(props, 'open'),
transition: animation ? _Fade2.default : undefined,
dialogTransitionTimeout: Modal.TRANSITION_DURATION,
backdropTransitionTimeout: Modal.BACKDROP_TRANSITION_DURATION
}),
_react2.default.createElement(
Dialog,
(0, _extends3.default)({}, dialogProps, {
style: (0, _extends3.default)({}, this.state.style, style),
className: (0, _classnames2.default)(className, inClassName),
onClick: backdrop === true ? this.handleDialogClick : null
}),
children
)
);
};
return Modal;
}(_react2.default.Component);
Modal.propTypes = propTypes;
Modal.defaultProps = defaultProps;
Modal.childContextTypes = childContextTypes;
Modal.Body = _ModalBody2.default;
Modal.Header = _ModalHeader2.default;
Modal.Title = _ModalTitle2.default;
Modal.Footer = _ModalFooter2.default;
Modal.Dialog = _ModalDialog2.default;
Modal.TRANSITION_DURATION = 300;
Modal.BACKDROP_TRANSITION_DURATION = 150;
exports.default = (0, _bootstrapUtils.bsClass)('modal', (0, _bootstrapUtils.bsSizes)([_StyleConfig.Size.LARGE, _StyleConfig.Size.SMALL], Modal));
module.exports = exports['default'];
},{"./Fade":181,"./ModalBody":207,"./ModalDialog":208,"./ModalFooter":209,"./ModalHeader":210,"./ModalTitle":211,"./utils/StyleConfig":251,"./utils/bootstrapUtils":254,"./utils/createChainedFunction":256,"./utils/splitComponentProps":259,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"dom-helpers/events":117,"dom-helpers/ownerDocument":121,"dom-helpers/util/inDOM":139,"dom-helpers/util/scrollbarSize":140,"prop-types":154,"prop-types-extra/lib/elementType":148,"react":321,"react-dom":273,"react-overlays/lib/Modal":304,"react-overlays/lib/utils/isOverflowing":316}],207:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
componentClass: _elementType2.default
};
var defaultProps = {
componentClass: 'div'
};
var ModalBody = function (_React$Component) {
(0, _inherits3.default)(ModalBody, _React$Component);
function ModalBody() {
(0, _classCallCheck3.default)(this, ModalBody);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
ModalBody.prototype.render = function render() {
var _props = this.props,
Component = _props.componentClass,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['componentClass', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement(Component, (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return ModalBody;
}(_react2.default.Component);
ModalBody.propTypes = propTypes;
ModalBody.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('modal-body', ModalBody);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types-extra/lib/elementType":148,"react":321}],208:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _StyleConfig = require('./utils/StyleConfig');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* A css class to apply to the Modal dialog DOM node.
*/
dialogClassName: _propTypes2.default.string
};
var ModalDialog = function (_React$Component) {
(0, _inherits3.default)(ModalDialog, _React$Component);
function ModalDialog() {
(0, _classCallCheck3.default)(this, ModalDialog);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
ModalDialog.prototype.render = function render() {
var _extends2;
var _props = this.props,
dialogClassName = _props.dialogClassName,
className = _props.className,
style = _props.style,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['dialogClassName', 'className', 'style', 'children']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var bsClassName = (0, _bootstrapUtils.prefix)(bsProps);
var modalStyle = (0, _extends4.default)({ display: 'block' }, style);
var dialogClasses = (0, _extends4.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), (_extends2 = {}, _extends2[bsClassName] = false, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'dialog')] = true, _extends2));
return _react2.default.createElement(
'div',
(0, _extends4.default)({}, elementProps, {
tabIndex: '-1',
role: 'dialog',
style: modalStyle,
className: (0, _classnames2.default)(className, bsClassName)
}),
_react2.default.createElement(
'div',
{ className: (0, _classnames2.default)(dialogClassName, dialogClasses) },
_react2.default.createElement(
'div',
{ className: (0, _bootstrapUtils.prefix)(bsProps, 'content'), role: 'document' },
children
)
)
);
};
return ModalDialog;
}(_react2.default.Component);
ModalDialog.propTypes = propTypes;
exports.default = (0, _bootstrapUtils.bsClass)('modal', (0, _bootstrapUtils.bsSizes)([_StyleConfig.Size.LARGE, _StyleConfig.Size.SMALL], ModalDialog));
module.exports = exports['default'];
},{"./utils/StyleConfig":251,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],209:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
componentClass: _elementType2.default
};
var defaultProps = {
componentClass: 'div'
};
var ModalFooter = function (_React$Component) {
(0, _inherits3.default)(ModalFooter, _React$Component);
function ModalFooter() {
(0, _classCallCheck3.default)(this, ModalFooter);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
ModalFooter.prototype.render = function render() {
var _props = this.props,
Component = _props.componentClass,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['componentClass', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement(Component, (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return ModalFooter;
}(_react2.default.Component);
ModalFooter.propTypes = propTypes;
ModalFooter.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('modal-footer', ModalFooter);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types-extra/lib/elementType":148,"react":321}],210:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
var _CloseButton = require('./CloseButton');
var _CloseButton2 = _interopRequireDefault(_CloseButton);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// TODO: `aria-label` should be `closeLabel`.
var propTypes = {
/**
* Provides an accessible label for the close
* button. It is used for Assistive Technology when the label text is not
* readable.
*/
closeLabel: _propTypes2.default.string,
/**
* Specify whether the Component should contain a close button
*/
closeButton: _propTypes2.default.bool,
/**
* A Callback fired when the close button is clicked. If used directly inside
* a Modal component, the onHide will automatically be propagated up to the
* parent Modal `onHide`.
*/
onHide: _propTypes2.default.func
};
var defaultProps = {
closeLabel: 'Close',
closeButton: false
};
var contextTypes = {
$bs_modal: _propTypes2.default.shape({
onHide: _propTypes2.default.func
})
};
var ModalHeader = function (_React$Component) {
(0, _inherits3.default)(ModalHeader, _React$Component);
function ModalHeader() {
(0, _classCallCheck3.default)(this, ModalHeader);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
ModalHeader.prototype.render = function render() {
var _props = this.props,
closeLabel = _props.closeLabel,
closeButton = _props.closeButton,
onHide = _props.onHide,
className = _props.className,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['closeLabel', 'closeButton', 'onHide', 'className', 'children']);
var modal = this.context.$bs_modal;
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement(
'div',
(0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}),
closeButton && _react2.default.createElement(_CloseButton2.default, {
label: closeLabel,
onClick: (0, _createChainedFunction2.default)(modal && modal.onHide, onHide)
}),
children
);
};
return ModalHeader;
}(_react2.default.Component);
ModalHeader.propTypes = propTypes;
ModalHeader.defaultProps = defaultProps;
ModalHeader.contextTypes = contextTypes;
exports.default = (0, _bootstrapUtils.bsClass)('modal-header', ModalHeader);
module.exports = exports['default'];
},{"./CloseButton":173,"./utils/bootstrapUtils":254,"./utils/createChainedFunction":256,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],211:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
componentClass: _elementType2.default
};
var defaultProps = {
componentClass: 'h4'
};
var ModalTitle = function (_React$Component) {
(0, _inherits3.default)(ModalTitle, _React$Component);
function ModalTitle() {
(0, _classCallCheck3.default)(this, ModalTitle);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
ModalTitle.prototype.render = function render() {
var _props = this.props,
Component = _props.componentClass,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['componentClass', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement(Component, (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return ModalTitle;
}(_react2.default.Component);
ModalTitle.propTypes = propTypes;
ModalTitle.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('modal-title', ModalTitle);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types-extra/lib/elementType":148,"react":321}],212:[function(require,module,exports){
(function (process){
'use strict';
exports.__esModule = true;
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _keycode = require('keycode');
var _keycode2 = _interopRequireDefault(_keycode);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _all = require('prop-types-extra/lib/all');
var _all2 = _interopRequireDefault(_all);
var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
var _ValidComponentChildren = require('./utils/ValidComponentChildren');
var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// TODO: Should we expose `<NavItem>` as `<Nav.Item>`?
// TODO: This `bsStyle` is very unlike the others. Should we rename it?
// TODO: `pullRight` and `pullLeft` don't render right outside of `navbar`.
// Consider renaming or replacing them.
var propTypes = {
/**
* Marks the NavItem with a matching `eventKey` as active. Has a
* higher precedence over `activeHref`.
*/
activeKey: _propTypes2.default.any,
/**
* Marks the child NavItem with a matching `href` prop as active.
*/
activeHref: _propTypes2.default.string,
/**
* NavItems are be positioned vertically.
*/
stacked: _propTypes2.default.bool,
justified: (0, _all2.default)(_propTypes2.default.bool, function (_ref) {
var justified = _ref.justified,
navbar = _ref.navbar;
return justified && navbar ? Error('justified navbar `Nav`s are not supported') : null;
}),
/**
* A callback fired when a NavItem is selected.
*
* ```js
* function (
* Any eventKey,
* SyntheticEvent event?
* )
* ```
*/
onSelect: _propTypes2.default.func,
/**
* ARIA role for the Nav, in the context of a TabContainer, the default will
* be set to "tablist", but can be overridden by the Nav when set explicitly.
*
* When the role is set to "tablist" NavItem focus is managed according to
* the ARIA authoring practices for tabs:
* https://www.w3.org/TR/2013/WD-wai-aria-practices-20130307/#tabpanel
*/
role: _propTypes2.default.string,
/**
* Apply styling an alignment for use in a Navbar. This prop will be set
* automatically when the Nav is used inside a Navbar.
*/
navbar: _propTypes2.default.bool,
/**
* Float the Nav to the right. When `navbar` is `true` the appropriate
* contextual classes are added as well.
*/
pullRight: _propTypes2.default.bool,
/**
* Float the Nav to the left. When `navbar` is `true` the appropriate
* contextual classes are added as well.
*/
pullLeft: _propTypes2.default.bool
};
var defaultProps = {
justified: false,
pullRight: false,
pullLeft: false,
stacked: false
};
var contextTypes = {
$bs_navbar: _propTypes2.default.shape({
bsClass: _propTypes2.default.string,
onSelect: _propTypes2.default.func
}),
$bs_tabContainer: _propTypes2.default.shape({
activeKey: _propTypes2.default.any,
onSelect: _propTypes2.default.func.isRequired,
getTabId: _propTypes2.default.func.isRequired,
getPaneId: _propTypes2.default.func.isRequired
})
};
var Nav = function (_React$Component) {
(0, _inherits3.default)(Nav, _React$Component);
function Nav() {
(0, _classCallCheck3.default)(this, Nav);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Nav.prototype.componentDidUpdate = function componentDidUpdate() {
var _this2 = this;
if (!this._needsRefocus) {
return;
}
this._needsRefocus = false;
var children = this.props.children;
var _getActiveProps = this.getActiveProps(),
activeKey = _getActiveProps.activeKey,
activeHref = _getActiveProps.activeHref;
var activeChild = _ValidComponentChildren2.default.find(children, function (child) {
return _this2.isActive(child, activeKey, activeHref);
});
var childrenArray = _ValidComponentChildren2.default.toArray(children);
var activeChildIndex = childrenArray.indexOf(activeChild);
var childNodes = _reactDom2.default.findDOMNode(this).children;
var activeNode = childNodes && childNodes[activeChildIndex];
if (!activeNode || !activeNode.firstChild) {
return;
}
activeNode.firstChild.focus();
};
Nav.prototype.getActiveProps = function getActiveProps() {
var tabContainer = this.context.$bs_tabContainer;
if (tabContainer) {
process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(this.props.activeKey == null && !this.props.activeHref, 'Specifying a `<Nav>` `activeKey` or `activeHref` in the context of ' + 'a `<TabContainer>` is not supported. Instead use `<TabContainer ' + ('activeKey={' + this.props.activeKey + '} />`.')) : void 0;
return tabContainer;
}
return this.props;
};
Nav.prototype.getNextActiveChild = function getNextActiveChild(offset) {
var _this3 = this;
var children = this.props.children;
var validChildren = children.filter(function (child) {
return child.props.eventKey != null && !child.props.disabled;
});
var _getActiveProps2 = this.getActiveProps(),
activeKey = _getActiveProps2.activeKey,
activeHref = _getActiveProps2.activeHref;
var activeChild = _ValidComponentChildren2.default.find(children, function (child) {
return _this3.isActive(child, activeKey, activeHref);
});
// This assumes the active child is not disabled.
var activeChildIndex = validChildren.indexOf(activeChild);
if (activeChildIndex === -1) {
// Something has gone wrong. Select the first valid child we can find.
return validChildren[0];
}
var nextIndex = activeChildIndex + offset;
var numValidChildren = validChildren.length;
if (nextIndex >= numValidChildren) {
nextIndex = 0;
} else if (nextIndex < 0) {
nextIndex = numValidChildren - 1;
}
return validChildren[nextIndex];
};
Nav.prototype.getTabProps = function getTabProps(child, tabContainer, navRole, active, onSelect) {
var _this4 = this;
if (!tabContainer && navRole !== 'tablist') {
// No tab props here.
return null;
}
var _child$props = child.props,
id = _child$props.id,
controls = _child$props['aria-controls'],
eventKey = _child$props.eventKey,
role = _child$props.role,
onKeyDown = _child$props.onKeyDown,
tabIndex = _child$props.tabIndex;
if (tabContainer) {
process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!id && !controls, 'In the context of a `<TabContainer>`, `<NavItem>`s are given ' + 'generated `id` and `aria-controls` attributes for the sake of ' + 'proper component accessibility. Any provided ones will be ignored. ' + 'To control these attributes directly, provide a `generateChildId` ' + 'prop to the parent `<TabContainer>`.') : void 0;
id = tabContainer.getTabId(eventKey);
controls = tabContainer.getPaneId(eventKey);
}
if (navRole === 'tablist') {
role = role || 'tab';
onKeyDown = (0, _createChainedFunction2.default)(function (event) {
return _this4.handleTabKeyDown(onSelect, event);
}, onKeyDown);
tabIndex = active ? tabIndex : -1;
}
return {
id: id,
role: role,
onKeyDown: onKeyDown,
'aria-controls': controls,
tabIndex: tabIndex
};
};
Nav.prototype.handleTabKeyDown = function handleTabKeyDown(onSelect, event) {
var nextActiveChild = void 0;
switch (event.keyCode) {
case _keycode2.default.codes.left:
case _keycode2.default.codes.up:
nextActiveChild = this.getNextActiveChild(-1);
break;
case _keycode2.default.codes.right:
case _keycode2.default.codes.down:
nextActiveChild = this.getNextActiveChild(1);
break;
default:
// It was a different key; don't handle this keypress.
return;
}
event.preventDefault();
if (onSelect && nextActiveChild && nextActiveChild.props.eventKey != null) {
onSelect(nextActiveChild.props.eventKey);
}
this._needsRefocus = true;
};
Nav.prototype.isActive = function isActive(_ref2, activeKey, activeHref) {
var props = _ref2.props;
if (props.active || activeKey != null && props.eventKey === activeKey || activeHref && props.href === activeHref) {
return true;
}
return props.active;
};
Nav.prototype.render = function render() {
var _extends2,
_this5 = this;
var _props = this.props,
stacked = _props.stacked,
justified = _props.justified,
onSelect = _props.onSelect,
propsRole = _props.role,
propsNavbar = _props.navbar,
pullRight = _props.pullRight,
pullLeft = _props.pullLeft,
className = _props.className,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['stacked', 'justified', 'onSelect', 'role', 'navbar', 'pullRight', 'pullLeft', 'className', 'children']);
var tabContainer = this.context.$bs_tabContainer;
var role = propsRole || (tabContainer ? 'tablist' : null);
var _getActiveProps3 = this.getActiveProps(),
activeKey = _getActiveProps3.activeKey,
activeHref = _getActiveProps3.activeHref;
delete props.activeKey; // Accessed via this.getActiveProps().
delete props.activeHref; // Accessed via this.getActiveProps().
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _extends4.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), (_extends2 = {}, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'stacked')] = stacked, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'justified')] = justified, _extends2));
var navbar = propsNavbar != null ? propsNavbar : this.context.$bs_navbar;
var pullLeftClassName = void 0;
var pullRightClassName = void 0;
if (navbar) {
var navbarProps = this.context.$bs_navbar || { bsClass: 'navbar' };
classes[(0, _bootstrapUtils.prefix)(navbarProps, 'nav')] = true;
pullRightClassName = (0, _bootstrapUtils.prefix)(navbarProps, 'right');
pullLeftClassName = (0, _bootstrapUtils.prefix)(navbarProps, 'left');
} else {
pullRightClassName = 'pull-right';
pullLeftClassName = 'pull-left';
}
classes[pullRightClassName] = pullRight;
classes[pullLeftClassName] = pullLeft;
return _react2.default.createElement(
'ul',
(0, _extends4.default)({}, elementProps, {
role: role,
className: (0, _classnames2.default)(className, classes)
}),
_ValidComponentChildren2.default.map(children, function (child) {
var active = _this5.isActive(child, activeKey, activeHref);
var childOnSelect = (0, _createChainedFunction2.default)(child.props.onSelect, onSelect, navbar && navbar.onSelect, tabContainer && tabContainer.onSelect);
return (0, _react.cloneElement)(child, (0, _extends4.default)({}, _this5.getTabProps(child, tabContainer, role, active, childOnSelect), {
active: active,
activeKey: activeKey,
activeHref: activeHref,
onSelect: childOnSelect
}));
})
);
};
return Nav;
}(_react2.default.Component);
Nav.propTypes = propTypes;
Nav.defaultProps = defaultProps;
Nav.contextTypes = contextTypes;
exports.default = (0, _bootstrapUtils.bsClass)('nav', (0, _bootstrapUtils.bsStyles)(['tabs', 'pills'], Nav));
module.exports = exports['default'];
}).call(this,require('_process'))
},{"./utils/ValidComponentChildren":253,"./utils/bootstrapUtils":254,"./utils/createChainedFunction":256,"_process":334,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"keycode":144,"prop-types":154,"prop-types-extra/lib/all":145,"react":321,"react-dom":273,"warning":330}],213:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _Dropdown = require('./Dropdown');
var _Dropdown2 = _interopRequireDefault(_Dropdown);
var _splitComponentProps2 = require('./utils/splitComponentProps');
var _splitComponentProps3 = _interopRequireDefault(_splitComponentProps2);
var _ValidComponentChildren = require('./utils/ValidComponentChildren');
var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = (0, _extends3.default)({}, _Dropdown2.default.propTypes, {
// Toggle props.
title: _propTypes2.default.node.isRequired,
noCaret: _propTypes2.default.bool,
active: _propTypes2.default.bool,
// Override generated docs from <Dropdown>.
/**
* @private
*/
children: _propTypes2.default.node
});
var NavDropdown = function (_React$Component) {
(0, _inherits3.default)(NavDropdown, _React$Component);
function NavDropdown() {
(0, _classCallCheck3.default)(this, NavDropdown);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
NavDropdown.prototype.isActive = function isActive(_ref, activeKey, activeHref) {
var props = _ref.props;
var _this2 = this;
if (props.active || activeKey != null && props.eventKey === activeKey || activeHref && props.href === activeHref) {
return true;
}
if (_ValidComponentChildren2.default.some(props.children, function (child) {
return _this2.isActive(child, activeKey, activeHref);
})) {
return true;
}
return props.active;
};
NavDropdown.prototype.render = function render() {
var _this3 = this;
var _props = this.props,
title = _props.title,
activeKey = _props.activeKey,
activeHref = _props.activeHref,
className = _props.className,
style = _props.style,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['title', 'activeKey', 'activeHref', 'className', 'style', 'children']);
var active = this.isActive(this, activeKey, activeHref);
delete props.active; // Accessed via this.isActive().
delete props.eventKey; // Accessed via this.isActive().
var _splitComponentProps = (0, _splitComponentProps3.default)(props, _Dropdown2.default.ControlledComponent),
dropdownProps = _splitComponentProps[0],
toggleProps = _splitComponentProps[1];
// Unlike for the other dropdowns, styling needs to go to the `<Dropdown>`
// rather than the `<Dropdown.Toggle>`.
return _react2.default.createElement(
_Dropdown2.default,
(0, _extends3.default)({}, dropdownProps, {
componentClass: 'li',
className: (0, _classnames2.default)(className, { active: active }),
style: style
}),
_react2.default.createElement(
_Dropdown2.default.Toggle,
(0, _extends3.default)({}, toggleProps, { useAnchor: true }),
title
),
_react2.default.createElement(
_Dropdown2.default.Menu,
null,
_ValidComponentChildren2.default.map(children, function (child) {
return _react2.default.cloneElement(child, {
active: _this3.isActive(child, activeKey, activeHref)
});
})
)
);
};
return NavDropdown;
}(_react2.default.Component);
NavDropdown.propTypes = propTypes;
exports.default = NavDropdown;
module.exports = exports['default'];
},{"./Dropdown":177,"./utils/ValidComponentChildren":253,"./utils/splitComponentProps":259,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],214:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _SafeAnchor = require('./SafeAnchor');
var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
active: _propTypes2.default.bool,
disabled: _propTypes2.default.bool,
role: _propTypes2.default.string,
href: _propTypes2.default.string,
onClick: _propTypes2.default.func,
onSelect: _propTypes2.default.func,
eventKey: _propTypes2.default.any
};
var defaultProps = {
active: false,
disabled: false
};
var NavItem = function (_React$Component) {
(0, _inherits3.default)(NavItem, _React$Component);
function NavItem(props, context) {
(0, _classCallCheck3.default)(this, NavItem);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
_this.handleClick = _this.handleClick.bind(_this);
return _this;
}
NavItem.prototype.handleClick = function handleClick(e) {
if (this.props.onSelect) {
e.preventDefault();
if (!this.props.disabled) {
this.props.onSelect(this.props.eventKey, e);
}
}
};
NavItem.prototype.render = function render() {
var _props = this.props,
active = _props.active,
disabled = _props.disabled,
onClick = _props.onClick,
className = _props.className,
style = _props.style,
props = (0, _objectWithoutProperties3.default)(_props, ['active', 'disabled', 'onClick', 'className', 'style']);
delete props.onSelect;
delete props.eventKey;
// These are injected down by `<Nav>` for building `<SubNav>`s.
delete props.activeKey;
delete props.activeHref;
if (!props.role) {
if (props.href === '#') {
props.role = 'button';
}
} else if (props.role === 'tab') {
props['aria-selected'] = active;
}
return _react2.default.createElement(
'li',
{
role: 'presentation',
className: (0, _classnames2.default)(className, { active: active, disabled: disabled }),
style: style
},
_react2.default.createElement(_SafeAnchor2.default, (0, _extends3.default)({}, props, {
disabled: disabled,
onClick: (0, _createChainedFunction2.default)(onClick, this.handleClick)
}))
);
};
return NavItem;
}(_react2.default.Component);
NavItem.propTypes = propTypes;
NavItem.defaultProps = defaultProps;
exports.default = NavItem;
module.exports = exports['default'];
},{"./SafeAnchor":235,"./utils/createChainedFunction":256,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],215:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _uncontrollable = require('uncontrollable');
var _uncontrollable2 = _interopRequireDefault(_uncontrollable);
var _Grid = require('./Grid');
var _Grid2 = _interopRequireDefault(_Grid);
var _NavbarBrand = require('./NavbarBrand');
var _NavbarBrand2 = _interopRequireDefault(_NavbarBrand);
var _NavbarCollapse = require('./NavbarCollapse');
var _NavbarCollapse2 = _interopRequireDefault(_NavbarCollapse);
var _NavbarHeader = require('./NavbarHeader');
var _NavbarHeader2 = _interopRequireDefault(_NavbarHeader);
var _NavbarToggle = require('./NavbarToggle');
var _NavbarToggle2 = _interopRequireDefault(_NavbarToggle);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _StyleConfig = require('./utils/StyleConfig');
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* Create a fixed navbar along the top of the screen, that scrolls with the
* page
*/
fixedTop: _propTypes2.default.bool,
/**
* Create a fixed navbar along the bottom of the screen, that scrolls with
* the page
*/
fixedBottom: _propTypes2.default.bool,
/**
* Create a full-width navbar that scrolls away with the page
*/
staticTop: _propTypes2.default.bool,
/**
* An alternative dark visual style for the Navbar
*/
inverse: _propTypes2.default.bool,
/**
* Allow the Navbar to fluidly adjust to the page or container width, instead
* of at the predefined screen breakpoints
*/
fluid: _propTypes2.default.bool,
/**
* Set a custom element for this component.
*/
componentClass: _elementType2.default,
/**
* A callback fired when the `<Navbar>` body collapses or expands. Fired when
* a `<Navbar.Toggle>` is clicked and called with the new `expanded`
* boolean value.
*
* @controllable expanded
*/
onToggle: _propTypes2.default.func,
/**
* A callback fired when a descendant of a child `<Nav>` is selected. Should
* be used to execute complex closing or other miscellaneous actions desired
* after selecting a descendant of `<Nav>`. Does nothing if no `<Nav>` or `<Nav>`
* descendants exist. The callback is called with an eventKey, which is a
* prop from the selected `<Nav>` descendant, and an event.
*
* ```js
* function (
* Any eventKey,
* SyntheticEvent event?
* )
* ```
*
* For basic closing behavior after all `<Nav>` descendant onSelect events in
* mobile viewports, try using collapseOnSelect.
*
* Note: If you are manually closing the navbar using this `OnSelect` prop,
* ensure that you are setting `expanded` to false and not *toggling* between
* true and false.
*/
onSelect: _propTypes2.default.func,
/**
* Sets `expanded` to `false` after the onSelect event of a descendant of a
* child `<Nav>`. Does nothing if no `<Nav>` or `<Nav>` descendants exist.
*
* The onSelect callback should be used instead for more complex operations
* that need to be executed after the `select` event of `<Nav>` descendants.
*/
collapseOnSelect: _propTypes2.default.bool,
/**
* Explicitly set the visiblity of the navbar body
*
* @controllable onToggle
*/
expanded: _propTypes2.default.bool,
role: _propTypes2.default.string
}; // TODO: Remove this pragma once we upgrade eslint-config-airbnb.
/* eslint-disable react/no-multi-comp */
var defaultProps = {
componentClass: 'nav',
fixedTop: false,
fixedBottom: false,
staticTop: false,
inverse: false,
fluid: false,
collapseOnSelect: false
};
var childContextTypes = {
$bs_navbar: _propTypes2.default.shape({
bsClass: _propTypes2.default.string,
expanded: _propTypes2.default.bool,
onToggle: _propTypes2.default.func.isRequired,
onSelect: _propTypes2.default.func
})
};
var Navbar = function (_React$Component) {
(0, _inherits3.default)(Navbar, _React$Component);
function Navbar(props, context) {
(0, _classCallCheck3.default)(this, Navbar);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
_this.handleToggle = _this.handleToggle.bind(_this);
_this.handleCollapse = _this.handleCollapse.bind(_this);
return _this;
}
Navbar.prototype.getChildContext = function getChildContext() {
var _props = this.props,
bsClass = _props.bsClass,
expanded = _props.expanded,
onSelect = _props.onSelect,
collapseOnSelect = _props.collapseOnSelect;
return {
$bs_navbar: {
bsClass: bsClass,
expanded: expanded,
onToggle: this.handleToggle,
onSelect: (0, _createChainedFunction2.default)(onSelect, collapseOnSelect ? this.handleCollapse : null)
}
};
};
Navbar.prototype.handleCollapse = function handleCollapse() {
var _props2 = this.props,
onToggle = _props2.onToggle,
expanded = _props2.expanded;
if (expanded) {
onToggle(false);
}
};
Navbar.prototype.handleToggle = function handleToggle() {
var _props3 = this.props,
onToggle = _props3.onToggle,
expanded = _props3.expanded;
onToggle(!expanded);
};
Navbar.prototype.render = function render() {
var _extends2;
var _props4 = this.props,
Component = _props4.componentClass,
fixedTop = _props4.fixedTop,
fixedBottom = _props4.fixedBottom,
staticTop = _props4.staticTop,
inverse = _props4.inverse,
fluid = _props4.fluid,
className = _props4.className,
children = _props4.children,
props = (0, _objectWithoutProperties3.default)(_props4, ['componentClass', 'fixedTop', 'fixedBottom', 'staticTop', 'inverse', 'fluid', 'className', 'children']);
var _splitBsPropsAndOmit = (0, _bootstrapUtils.splitBsPropsAndOmit)(props, ['expanded', 'onToggle', 'onSelect', 'collapseOnSelect']),
bsProps = _splitBsPropsAndOmit[0],
elementProps = _splitBsPropsAndOmit[1];
// will result in some false positives but that seems better
// than false negatives. strict `undefined` check allows explicit
// "nulling" of the role if the user really doesn't want one
if (elementProps.role === undefined && Component !== 'nav') {
elementProps.role = 'navigation';
}
if (inverse) {
bsProps.bsStyle = _StyleConfig.Style.INVERSE;
}
var classes = (0, _extends4.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), (_extends2 = {}, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'fixed-top')] = fixedTop, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'fixed-bottom')] = fixedBottom, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'static-top')] = staticTop, _extends2));
return _react2.default.createElement(
Component,
(0, _extends4.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}),
_react2.default.createElement(
_Grid2.default,
{ fluid: fluid },
children
)
);
};
return Navbar;
}(_react2.default.Component);
Navbar.propTypes = propTypes;
Navbar.defaultProps = defaultProps;
Navbar.childContextTypes = childContextTypes;
(0, _bootstrapUtils.bsClass)('navbar', Navbar);
var UncontrollableNavbar = (0, _uncontrollable2.default)(Navbar, { expanded: 'onToggle' });
function createSimpleWrapper(tag, suffix, displayName) {
var Wrapper = function Wrapper(_ref, _ref2) {
var _ref2$$bs_navbar = _ref2.$bs_navbar,
navbarProps = _ref2$$bs_navbar === undefined ? { bsClass: 'navbar' } : _ref2$$bs_navbar;
var Component = _ref.componentClass,
className = _ref.className,
pullRight = _ref.pullRight,
pullLeft = _ref.pullLeft,
props = (0, _objectWithoutProperties3.default)(_ref, ['componentClass', 'className', 'pullRight', 'pullLeft']);
return _react2.default.createElement(Component, (0, _extends4.default)({}, props, {
className: (0, _classnames2.default)(className, (0, _bootstrapUtils.prefix)(navbarProps, suffix), pullRight && (0, _bootstrapUtils.prefix)(navbarProps, 'right'), pullLeft && (0, _bootstrapUtils.prefix)(navbarProps, 'left'))
}));
};
Wrapper.displayName = displayName;
Wrapper.propTypes = {
componentClass: _elementType2.default,
pullRight: _propTypes2.default.bool,
pullLeft: _propTypes2.default.bool
};
Wrapper.defaultProps = {
componentClass: tag,
pullRight: false,
pullLeft: false
};
Wrapper.contextTypes = {
$bs_navbar: _propTypes2.default.shape({
bsClass: _propTypes2.default.string
})
};
return Wrapper;
}
UncontrollableNavbar.Brand = _NavbarBrand2.default;
UncontrollableNavbar.Header = _NavbarHeader2.default;
UncontrollableNavbar.Toggle = _NavbarToggle2.default;
UncontrollableNavbar.Collapse = _NavbarCollapse2.default;
UncontrollableNavbar.Form = createSimpleWrapper('div', 'form', 'NavbarForm');
UncontrollableNavbar.Text = createSimpleWrapper('p', 'text', 'NavbarText');
UncontrollableNavbar.Link = createSimpleWrapper('a', 'link', 'NavbarLink');
// Set bsStyles here so they can be overridden.
exports.default = (0, _bootstrapUtils.bsStyles)([_StyleConfig.Style.DEFAULT, _StyleConfig.Style.INVERSE], _StyleConfig.Style.DEFAULT, UncontrollableNavbar);
module.exports = exports['default'];
},{"./Grid":188,"./NavbarBrand":216,"./NavbarCollapse":217,"./NavbarHeader":218,"./NavbarToggle":219,"./utils/StyleConfig":251,"./utils/bootstrapUtils":254,"./utils/createChainedFunction":256,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/elementType":148,"react":321,"uncontrollable":328}],216:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var contextTypes = {
$bs_navbar: _propTypes2.default.shape({
bsClass: _propTypes2.default.string
})
};
var NavbarBrand = function (_React$Component) {
(0, _inherits3.default)(NavbarBrand, _React$Component);
function NavbarBrand() {
(0, _classCallCheck3.default)(this, NavbarBrand);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
NavbarBrand.prototype.render = function render() {
var _props = this.props,
className = _props.className,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['className', 'children']);
var navbarProps = this.context.$bs_navbar || { bsClass: 'navbar' };
var bsClassName = (0, _bootstrapUtils.prefix)(navbarProps, 'brand');
if (_react2.default.isValidElement(children)) {
return _react2.default.cloneElement(children, {
className: (0, _classnames2.default)(children.props.className, className, bsClassName)
});
}
return _react2.default.createElement(
'span',
(0, _extends3.default)({}, props, { className: (0, _classnames2.default)(className, bsClassName) }),
children
);
};
return NavbarBrand;
}(_react2.default.Component);
NavbarBrand.contextTypes = contextTypes;
exports.default = NavbarBrand;
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],217:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _Collapse = require('./Collapse');
var _Collapse2 = _interopRequireDefault(_Collapse);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var contextTypes = {
$bs_navbar: _propTypes2.default.shape({
bsClass: _propTypes2.default.string,
expanded: _propTypes2.default.bool
})
};
var NavbarCollapse = function (_React$Component) {
(0, _inherits3.default)(NavbarCollapse, _React$Component);
function NavbarCollapse() {
(0, _classCallCheck3.default)(this, NavbarCollapse);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
NavbarCollapse.prototype.render = function render() {
var _props = this.props,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['children']);
var navbarProps = this.context.$bs_navbar || { bsClass: 'navbar' };
var bsClassName = (0, _bootstrapUtils.prefix)(navbarProps, 'collapse');
return _react2.default.createElement(
_Collapse2.default,
(0, _extends3.default)({ 'in': navbarProps.expanded }, props),
_react2.default.createElement(
'div',
{ className: bsClassName },
children
)
);
};
return NavbarCollapse;
}(_react2.default.Component);
NavbarCollapse.contextTypes = contextTypes;
exports.default = NavbarCollapse;
module.exports = exports['default'];
},{"./Collapse":175,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"prop-types":154,"react":321}],218:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var contextTypes = {
$bs_navbar: _propTypes2.default.shape({
bsClass: _propTypes2.default.string
})
};
var NavbarHeader = function (_React$Component) {
(0, _inherits3.default)(NavbarHeader, _React$Component);
function NavbarHeader() {
(0, _classCallCheck3.default)(this, NavbarHeader);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
NavbarHeader.prototype.render = function render() {
var _props = this.props,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['className']);
var navbarProps = this.context.$bs_navbar || { bsClass: 'navbar' };
var bsClassName = (0, _bootstrapUtils.prefix)(navbarProps, 'header');
return _react2.default.createElement('div', (0, _extends3.default)({}, props, { className: (0, _classnames2.default)(className, bsClassName) }));
};
return NavbarHeader;
}(_react2.default.Component);
NavbarHeader.contextTypes = contextTypes;
exports.default = NavbarHeader;
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],219:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
onClick: _propTypes2.default.func,
/**
* The toggle content, if left empty it will render the default toggle (seen above).
*/
children: _propTypes2.default.node
};
var contextTypes = {
$bs_navbar: _propTypes2.default.shape({
bsClass: _propTypes2.default.string,
expanded: _propTypes2.default.bool,
onToggle: _propTypes2.default.func.isRequired
})
};
var NavbarToggle = function (_React$Component) {
(0, _inherits3.default)(NavbarToggle, _React$Component);
function NavbarToggle() {
(0, _classCallCheck3.default)(this, NavbarToggle);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
NavbarToggle.prototype.render = function render() {
var _props = this.props,
onClick = _props.onClick,
className = _props.className,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['onClick', 'className', 'children']);
var navbarProps = this.context.$bs_navbar || { bsClass: 'navbar' };
var buttonProps = (0, _extends3.default)({
type: 'button'
}, props, {
onClick: (0, _createChainedFunction2.default)(onClick, navbarProps.onToggle),
className: (0, _classnames2.default)(className, (0, _bootstrapUtils.prefix)(navbarProps, 'toggle'), !navbarProps.expanded && 'collapsed')
});
if (children) {
return _react2.default.createElement(
'button',
buttonProps,
children
);
}
return _react2.default.createElement(
'button',
buttonProps,
_react2.default.createElement(
'span',
{ className: 'sr-only' },
'Toggle navigation'
),
_react2.default.createElement('span', { className: 'icon-bar' }),
_react2.default.createElement('span', { className: 'icon-bar' }),
_react2.default.createElement('span', { className: 'icon-bar' })
);
};
return NavbarToggle;
}(_react2.default.Component);
NavbarToggle.propTypes = propTypes;
NavbarToggle.contextTypes = contextTypes;
exports.default = NavbarToggle;
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"./utils/createChainedFunction":256,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],220:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _Overlay = require('react-overlays/lib/Overlay');
var _Overlay2 = _interopRequireDefault(_Overlay);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _Fade = require('./Fade');
var _Fade2 = _interopRequireDefault(_Fade);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = (0, _extends3.default)({}, _Overlay2.default.propTypes, {
/**
* Set the visibility of the Overlay
*/
show: _propTypes2.default.bool,
/**
* Specify whether the overlay should trigger onHide when the user clicks outside the overlay
*/
rootClose: _propTypes2.default.bool,
/**
* A callback invoked by the overlay when it wishes to be hidden. Required if
* `rootClose` is specified.
*/
onHide: _propTypes2.default.func,
/**
* Use animation
*/
animation: _propTypes2.default.oneOfType([_propTypes2.default.bool, _elementType2.default]),
/**
* Callback fired before the Overlay transitions in
*/
onEnter: _propTypes2.default.func,
/**
* Callback fired as the Overlay begins to transition in
*/
onEntering: _propTypes2.default.func,
/**
* Callback fired after the Overlay finishes transitioning in
*/
onEntered: _propTypes2.default.func,
/**
* Callback fired right before the Overlay transitions out
*/
onExit: _propTypes2.default.func,
/**
* Callback fired as the Overlay begins to transition out
*/
onExiting: _propTypes2.default.func,
/**
* Callback fired after the Overlay finishes transitioning out
*/
onExited: _propTypes2.default.func,
/**
* Sets the direction of the Overlay.
*/
placement: _propTypes2.default.oneOf(['top', 'right', 'bottom', 'left'])
});
var defaultProps = {
animation: _Fade2.default,
rootClose: false,
show: false,
placement: 'right'
};
var Overlay = function (_React$Component) {
(0, _inherits3.default)(Overlay, _React$Component);
function Overlay() {
(0, _classCallCheck3.default)(this, Overlay);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Overlay.prototype.render = function render() {
var _props = this.props,
animation = _props.animation,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['animation', 'children']);
var transition = animation === true ? _Fade2.default : animation || null;
var child = void 0;
if (!transition) {
child = (0, _react.cloneElement)(children, {
className: (0, _classnames2.default)(children.props.className, 'in')
});
} else {
child = children;
}
return _react2.default.createElement(
_Overlay2.default,
(0, _extends3.default)({}, props, {
transition: transition
}),
child
);
};
return Overlay;
}(_react2.default.Component);
Overlay.propTypes = propTypes;
Overlay.defaultProps = defaultProps;
exports.default = Overlay;
module.exports = exports['default'];
},{"./Fade":181,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/elementType":148,"react":321,"react-overlays/lib/Overlay":306}],221:[function(require,module,exports){
(function (process){
'use strict';
exports.__esModule = true;
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _contains = require('dom-helpers/query/contains');
var _contains2 = _interopRequireDefault(_contains);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _reactDom = require('react-dom');
var _reactDom2 = _interopRequireDefault(_reactDom);
var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
var _Overlay = require('./Overlay');
var _Overlay2 = _interopRequireDefault(_Overlay);
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* 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 triggerType = _propTypes2.default.oneOf(['click', 'hover', 'focus']);
var propTypes = (0, _extends3.default)({}, _Overlay2.default.propTypes, {
/**
* Specify which action or actions trigger Overlay visibility
*/
trigger: _propTypes2.default.oneOfType([triggerType, _propTypes2.default.arrayOf(triggerType)]),
/**
* A millisecond delay amount to show and hide the Overlay once triggered
*/
delay: _propTypes2.default.number,
/**
* A millisecond delay amount before showing the Overlay once triggered.
*/
delayShow: _propTypes2.default.number,
/**
* A millisecond delay amount before hiding the Overlay once triggered.
*/
delayHide: _propTypes2.default.number,
// FIXME: This should be `defaultShow`.
/**
* The initial visibility state of the Overlay. For more nuanced visibility
* control, consider using the Overlay component directly.
*/
defaultOverlayShown: _propTypes2.default.bool,
/**
* An element or text to overlay next to the target.
*/
overlay: _propTypes2.default.node.isRequired,
/**
* @private
*/
onBlur: _propTypes2.default.func,
/**
* @private
*/
onClick: _propTypes2.default.func,
/**
* @private
*/
onFocus: _propTypes2.default.func,
/**
* @private
*/
onMouseOut: _propTypes2.default.func,
/**
* @private
*/
onMouseOver: _propTypes2.default.func,
// Overridden props from `<Overlay>`.
/**
* @private
*/
target: _propTypes2.default.oneOf([null]),
/**
* @private
*/
onHide: _propTypes2.default.oneOf([null]),
/**
* @private
*/
show: _propTypes2.default.oneOf([null])
});
var defaultProps = {
defaultOverlayShown: false,
trigger: ['hover', 'focus']
};
var OverlayTrigger = function (_React$Component) {
(0, _inherits3.default)(OverlayTrigger, _React$Component);
function OverlayTrigger(props, context) {
(0, _classCallCheck3.default)(this, OverlayTrigger);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
_this.handleToggle = _this.handleToggle.bind(_this);
_this.handleDelayedShow = _this.handleDelayedShow.bind(_this);
_this.handleDelayedHide = _this.handleDelayedHide.bind(_this);
_this.handleHide = _this.handleHide.bind(_this);
_this.handleMouseOver = function (e) {
return _this.handleMouseOverOut(_this.handleDelayedShow, e);
};
_this.handleMouseOut = function (e) {
return _this.handleMouseOverOut(_this.handleDelayedHide, e);
};
_this._mountNode = null;
_this.state = {
show: props.defaultOverlayShown
};
return _this;
}
OverlayTrigger.prototype.componentDidMount = function componentDidMount() {
this._mountNode = document.createElement('div');
this.renderOverlay();
};
OverlayTrigger.prototype.componentDidUpdate = function componentDidUpdate() {
this.renderOverlay();
};
OverlayTrigger.prototype.componentWillUnmount = function componentWillUnmount() {
_reactDom2.default.unmountComponentAtNode(this._mountNode);
this._mountNode = null;
clearTimeout(this._hoverShowDelay);
clearTimeout(this._hoverHideDelay);
};
OverlayTrigger.prototype.handleDelayedHide = function handleDelayedHide() {
var _this2 = this;
if (this._hoverShowDelay != null) {
clearTimeout(this._hoverShowDelay);
this._hoverShowDelay = null;
return;
}
if (!this.state.show || this._hoverHideDelay != null) {
return;
}
var delay = this.props.delayHide != null ? this.props.delayHide : this.props.delay;
if (!delay) {
this.hide();
return;
}
this._hoverHideDelay = setTimeout(function () {
_this2._hoverHideDelay = null;
_this2.hide();
}, delay);
};
OverlayTrigger.prototype.handleDelayedShow = function handleDelayedShow() {
var _this3 = this;
if (this._hoverHideDelay != null) {
clearTimeout(this._hoverHideDelay);
this._hoverHideDelay = null;
return;
}
if (this.state.show || this._hoverShowDelay != null) {
return;
}
var delay = this.props.delayShow != null ? this.props.delayShow : this.props.delay;
if (!delay) {
this.show();
return;
}
this._hoverShowDelay = setTimeout(function () {
_this3._hoverShowDelay = null;
_this3.show();
}, delay);
};
OverlayTrigger.prototype.handleHide = function handleHide() {
this.hide();
};
// Simple implementation of mouseEnter and mouseLeave.
// React's built version is broken: https://github.com/facebook/react/issues/4251
// for cases when the trigger is disabled and mouseOut/Over can cause flicker
// moving from one child element to another.
OverlayTrigger.prototype.handleMouseOverOut = function handleMouseOverOut(handler, e) {
var target = e.currentTarget;
var related = e.relatedTarget || e.nativeEvent.toElement;
if ((!related || related !== target) && !(0, _contains2.default)(target, related)) {
handler(e);
}
};
OverlayTrigger.prototype.handleToggle = function handleToggle() {
if (this.state.show) {
this.hide();
} else {
this.show();
}
};
OverlayTrigger.prototype.hide = function hide() {
this.setState({ show: false });
};
OverlayTrigger.prototype.makeOverlay = function makeOverlay(overlay, props) {
return _react2.default.createElement(
_Overlay2.default,
(0, _extends3.default)({}, props, {
show: this.state.show,
onHide: this.handleHide,
target: this
}),
overlay
);
};
OverlayTrigger.prototype.show = function show() {
this.setState({ show: true });
};
OverlayTrigger.prototype.renderOverlay = function renderOverlay() {
_reactDom2.default.unstable_renderSubtreeIntoContainer(this, this._overlay, this._mountNode);
};
OverlayTrigger.prototype.render = function render() {
var _props = this.props,
trigger = _props.trigger,
overlay = _props.overlay,
children = _props.children,
onBlur = _props.onBlur,
onClick = _props.onClick,
onFocus = _props.onFocus,
onMouseOut = _props.onMouseOut,
onMouseOver = _props.onMouseOver,
props = (0, _objectWithoutProperties3.default)(_props, ['trigger', 'overlay', 'children', 'onBlur', 'onClick', 'onFocus', 'onMouseOut', 'onMouseOver']);
delete props.delay;
delete props.delayShow;
delete props.delayHide;
delete props.defaultOverlayShown;
var child = _react2.default.Children.only(children);
var childProps = child.props;
var triggerProps = {};
if (this.state.show) {
triggerProps['aria-describedby'] = overlay.props.id;
}
// FIXME: The logic here for passing through handlers on this component is
// inconsistent. We shouldn't be passing any of these props through.
triggerProps.onClick = (0, _createChainedFunction2.default)(childProps.onClick, onClick);
if (isOneOf('click', trigger)) {
triggerProps.onClick = (0, _createChainedFunction2.default)(triggerProps.onClick, this.handleToggle);
}
if (isOneOf('hover', trigger)) {
process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!(trigger === 'hover'), '[react-bootstrap] Specifying only the `"hover"` trigger limits the ' + 'visibility of the overlay to just mouse users. Consider also ' + 'including the `"focus"` trigger so that touch and keyboard only ' + 'users can see the overlay as well.') : void 0;
triggerProps.onMouseOver = (0, _createChainedFunction2.default)(childProps.onMouseOver, onMouseOver, this.handleMouseOver);
triggerProps.onMouseOut = (0, _createChainedFunction2.default)(childProps.onMouseOut, onMouseOut, this.handleMouseOut);
}
if (isOneOf('focus', trigger)) {
triggerProps.onFocus = (0, _createChainedFunction2.default)(childProps.onFocus, onFocus, this.handleDelayedShow);
triggerProps.onBlur = (0, _createChainedFunction2.default)(childProps.onBlur, onBlur, this.handleDelayedHide);
}
this._overlay = this.makeOverlay(overlay, props);
return (0, _react.cloneElement)(child, triggerProps);
};
return OverlayTrigger;
}(_react2.default.Component);
OverlayTrigger.propTypes = propTypes;
OverlayTrigger.defaultProps = defaultProps;
exports.default = OverlayTrigger;
module.exports = exports['default'];
}).call(this,require('_process'))
},{"./Overlay":220,"./utils/createChainedFunction":256,"_process":334,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"dom-helpers/query/contains":122,"prop-types":154,"react":321,"react-dom":273,"warning":330}],222:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var PageHeader = function (_React$Component) {
(0, _inherits3.default)(PageHeader, _React$Component);
function PageHeader() {
(0, _classCallCheck3.default)(this, PageHeader);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
PageHeader.prototype.render = function render() {
var _props = this.props,
className = _props.className,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['className', 'children']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement(
'div',
(0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}),
_react2.default.createElement(
'h1',
null,
children
)
);
};
return PageHeader;
}(_react2.default.Component);
exports.default = (0, _bootstrapUtils.bsClass)('page-header', PageHeader);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"react":321}],223:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _PagerItem = require('./PagerItem');
var _PagerItem2 = _interopRequireDefault(_PagerItem);
var _deprecationWarning = require('./utils/deprecationWarning');
var _deprecationWarning2 = _interopRequireDefault(_deprecationWarning);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = _deprecationWarning2.default.wrapper(_PagerItem2.default, '`<PageItem>`', '`<Pager.Item>`');
module.exports = exports['default'];
},{"./PagerItem":225,"./utils/deprecationWarning":257}],224:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _PagerItem = require('./PagerItem');
var _PagerItem2 = _interopRequireDefault(_PagerItem);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
var _ValidComponentChildren = require('./utils/ValidComponentChildren');
var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
onSelect: _propTypes2.default.func
};
var Pager = function (_React$Component) {
(0, _inherits3.default)(Pager, _React$Component);
function Pager() {
(0, _classCallCheck3.default)(this, Pager);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Pager.prototype.render = function render() {
var _props = this.props,
onSelect = _props.onSelect,
className = _props.className,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['onSelect', 'className', 'children']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement(
'ul',
(0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}),
_ValidComponentChildren2.default.map(children, function (child) {
return (0, _react.cloneElement)(child, {
onSelect: (0, _createChainedFunction2.default)(child.props.onSelect, onSelect)
});
})
);
};
return Pager;
}(_react2.default.Component);
Pager.propTypes = propTypes;
Pager.Item = _PagerItem2.default;
exports.default = (0, _bootstrapUtils.bsClass)('pager', Pager);
module.exports = exports['default'];
},{"./PagerItem":225,"./utils/ValidComponentChildren":253,"./utils/bootstrapUtils":254,"./utils/createChainedFunction":256,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],225:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _SafeAnchor = require('./SafeAnchor');
var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
disabled: _propTypes2.default.bool,
previous: _propTypes2.default.bool,
next: _propTypes2.default.bool,
onClick: _propTypes2.default.func,
onSelect: _propTypes2.default.func,
eventKey: _propTypes2.default.any
};
var defaultProps = {
disabled: false,
previous: false,
next: false
};
var PagerItem = function (_React$Component) {
(0, _inherits3.default)(PagerItem, _React$Component);
function PagerItem(props, context) {
(0, _classCallCheck3.default)(this, PagerItem);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
_this.handleSelect = _this.handleSelect.bind(_this);
return _this;
}
PagerItem.prototype.handleSelect = function handleSelect(e) {
var _props = this.props,
disabled = _props.disabled,
onSelect = _props.onSelect,
eventKey = _props.eventKey;
if (onSelect || disabled) {
e.preventDefault();
}
if (disabled) {
return;
}
if (onSelect) {
onSelect(eventKey, e);
}
};
PagerItem.prototype.render = function render() {
var _props2 = this.props,
disabled = _props2.disabled,
previous = _props2.previous,
next = _props2.next,
onClick = _props2.onClick,
className = _props2.className,
style = _props2.style,
props = (0, _objectWithoutProperties3.default)(_props2, ['disabled', 'previous', 'next', 'onClick', 'className', 'style']);
delete props.onSelect;
delete props.eventKey;
return _react2.default.createElement(
'li',
{
className: (0, _classnames2.default)(className, { disabled: disabled, previous: previous, next: next }),
style: style
},
_react2.default.createElement(_SafeAnchor2.default, (0, _extends3.default)({}, props, {
disabled: disabled,
onClick: (0, _createChainedFunction2.default)(onClick, this.handleSelect)
}))
);
};
return PagerItem;
}(_react2.default.Component);
PagerItem.propTypes = propTypes;
PagerItem.defaultProps = defaultProps;
exports.default = PagerItem;
module.exports = exports['default'];
},{"./SafeAnchor":235,"./utils/createChainedFunction":256,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],226:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _PaginationButton = require('./PaginationButton');
var _PaginationButton2 = _interopRequireDefault(_PaginationButton);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
activePage: _propTypes2.default.number,
items: _propTypes2.default.number,
maxButtons: _propTypes2.default.number,
/**
* When `true`, will display the first and the last button page when
* displaying ellipsis.
*/
boundaryLinks: _propTypes2.default.bool,
/**
* When `true`, will display the default node value ('&hellip;').
* Otherwise, will display provided node (when specified).
*/
ellipsis: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.node]),
/**
* When `true`, will display the default node value ('&laquo;').
* Otherwise, will display provided node (when specified).
*/
first: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.node]),
/**
* When `true`, will display the default node value ('&raquo;').
* Otherwise, will display provided node (when specified).
*/
last: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.node]),
/**
* When `true`, will display the default node value ('&lsaquo;').
* Otherwise, will display provided node (when specified).
*/
prev: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.node]),
/**
* When `true`, will display the default node value ('&rsaquo;').
* Otherwise, will display provided node (when specified).
*/
next: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.node]),
onSelect: _propTypes2.default.func,
/**
* You can use a custom element for the buttons
*/
buttonComponentClass: _elementType2.default
};
var defaultProps = {
activePage: 1,
items: 1,
maxButtons: 0,
first: false,
last: false,
prev: false,
next: false,
ellipsis: true,
boundaryLinks: false
};
var Pagination = function (_React$Component) {
(0, _inherits3.default)(Pagination, _React$Component);
function Pagination() {
(0, _classCallCheck3.default)(this, Pagination);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Pagination.prototype.renderPageButtons = function renderPageButtons(activePage, items, maxButtons, boundaryLinks, ellipsis, buttonProps) {
var pageButtons = [];
var startPage = void 0;
var endPage = void 0;
if (maxButtons && maxButtons < items) {
startPage = Math.max(Math.min(activePage - Math.floor(maxButtons / 2, 10), items - maxButtons + 1), 1);
endPage = startPage + maxButtons - 1;
} else {
startPage = 1;
endPage = items;
}
for (var page = startPage; page <= endPage; ++page) {
pageButtons.push(_react2.default.createElement(
_PaginationButton2.default,
(0, _extends3.default)({}, buttonProps, {
key: page,
eventKey: page,
active: page === activePage
}),
page
));
}
if (ellipsis && boundaryLinks && startPage > 1) {
if (startPage > 2) {
pageButtons.unshift(_react2.default.createElement(
_PaginationButton2.default,
{
key: 'ellipsisFirst',
disabled: true,
componentClass: buttonProps.componentClass
},
_react2.default.createElement(
'span',
{ 'aria-label': 'More' },
ellipsis === true ? '\u2026' : ellipsis
)
));
}
pageButtons.unshift(_react2.default.createElement(
_PaginationButton2.default,
(0, _extends3.default)({}, buttonProps, {
key: 1,
eventKey: 1,
active: false
}),
'1'
));
}
if (ellipsis && endPage < items) {
if (!boundaryLinks || endPage < items - 1) {
pageButtons.push(_react2.default.createElement(
_PaginationButton2.default,
{
key: 'ellipsis',
disabled: true,
componentClass: buttonProps.componentClass
},
_react2.default.createElement(
'span',
{ 'aria-label': 'More' },
ellipsis === true ? '\u2026' : ellipsis
)
));
}
if (boundaryLinks) {
pageButtons.push(_react2.default.createElement(
_PaginationButton2.default,
(0, _extends3.default)({}, buttonProps, {
key: items,
eventKey: items,
active: false
}),
items
));
}
}
return pageButtons;
};
Pagination.prototype.render = function render() {
var _props = this.props,
activePage = _props.activePage,
items = _props.items,
maxButtons = _props.maxButtons,
boundaryLinks = _props.boundaryLinks,
ellipsis = _props.ellipsis,
first = _props.first,
last = _props.last,
prev = _props.prev,
next = _props.next,
onSelect = _props.onSelect,
buttonComponentClass = _props.buttonComponentClass,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['activePage', 'items', 'maxButtons', 'boundaryLinks', 'ellipsis', 'first', 'last', 'prev', 'next', 'onSelect', 'buttonComponentClass', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
var buttonProps = {
onSelect: onSelect,
componentClass: buttonComponentClass
};
return _react2.default.createElement(
'ul',
(0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}),
first && _react2.default.createElement(
_PaginationButton2.default,
(0, _extends3.default)({}, buttonProps, {
eventKey: 1,
disabled: activePage === 1
}),
_react2.default.createElement(
'span',
{ 'aria-label': 'First' },
first === true ? '\xAB' : first
)
),
prev && _react2.default.createElement(
_PaginationButton2.default,
(0, _extends3.default)({}, buttonProps, {
eventKey: activePage - 1,
disabled: activePage === 1
}),
_react2.default.createElement(
'span',
{ 'aria-label': 'Previous' },
prev === true ? '\u2039' : prev
)
),
this.renderPageButtons(activePage, items, maxButtons, boundaryLinks, ellipsis, buttonProps),
next && _react2.default.createElement(
_PaginationButton2.default,
(0, _extends3.default)({}, buttonProps, {
eventKey: activePage + 1,
disabled: activePage >= items
}),
_react2.default.createElement(
'span',
{ 'aria-label': 'Next' },
next === true ? '\u203A' : next
)
),
last && _react2.default.createElement(
_PaginationButton2.default,
(0, _extends3.default)({}, buttonProps, {
eventKey: items,
disabled: activePage >= items
}),
_react2.default.createElement(
'span',
{ 'aria-label': 'Last' },
last === true ? '\xBB' : last
)
)
);
};
return Pagination;
}(_react2.default.Component);
Pagination.propTypes = propTypes;
Pagination.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('pagination', Pagination);
module.exports = exports['default'];
},{"./PaginationButton":227,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/elementType":148,"react":321}],227:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _SafeAnchor = require('./SafeAnchor');
var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// TODO: This should be `<Pagination.Item>`.
// TODO: This should use `componentClass` like other components.
var propTypes = {
componentClass: _elementType2.default,
className: _propTypes2.default.string,
eventKey: _propTypes2.default.any,
onSelect: _propTypes2.default.func,
disabled: _propTypes2.default.bool,
active: _propTypes2.default.bool,
onClick: _propTypes2.default.func
};
var defaultProps = {
componentClass: _SafeAnchor2.default,
active: false,
disabled: false
};
var PaginationButton = function (_React$Component) {
(0, _inherits3.default)(PaginationButton, _React$Component);
function PaginationButton(props, context) {
(0, _classCallCheck3.default)(this, PaginationButton);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
_this.handleClick = _this.handleClick.bind(_this);
return _this;
}
PaginationButton.prototype.handleClick = function handleClick(event) {
var _props = this.props,
disabled = _props.disabled,
onSelect = _props.onSelect,
eventKey = _props.eventKey;
if (disabled) {
return;
}
if (onSelect) {
onSelect(eventKey, event);
}
};
PaginationButton.prototype.render = function render() {
var _props2 = this.props,
Component = _props2.componentClass,
active = _props2.active,
disabled = _props2.disabled,
onClick = _props2.onClick,
className = _props2.className,
style = _props2.style,
props = (0, _objectWithoutProperties3.default)(_props2, ['componentClass', 'active', 'disabled', 'onClick', 'className', 'style']);
if (Component === _SafeAnchor2.default) {
// Assume that custom components want `eventKey`.
delete props.eventKey;
}
delete props.onSelect;
return _react2.default.createElement(
'li',
{
className: (0, _classnames2.default)(className, { active: active, disabled: disabled }),
style: style
},
_react2.default.createElement(Component, (0, _extends3.default)({}, props, {
disabled: disabled,
onClick: (0, _createChainedFunction2.default)(onClick, this.handleClick)
}))
);
};
return PaginationButton;
}(_react2.default.Component);
PaginationButton.propTypes = propTypes;
PaginationButton.defaultProps = defaultProps;
exports.default = PaginationButton;
module.exports = exports['default'];
},{"./SafeAnchor":235,"./utils/createChainedFunction":256,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/elementType":148,"react":321}],228:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _values = require('babel-runtime/core-js/object/values');
var _values2 = _interopRequireDefault(_values);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _Collapse = require('./Collapse');
var _Collapse2 = _interopRequireDefault(_Collapse);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _StyleConfig = require('./utils/StyleConfig');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// TODO: Use uncontrollable.
var propTypes = {
collapsible: _propTypes2.default.bool,
onSelect: _propTypes2.default.func,
header: _propTypes2.default.node,
id: _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]),
footer: _propTypes2.default.node,
defaultExpanded: _propTypes2.default.bool,
expanded: _propTypes2.default.bool,
eventKey: _propTypes2.default.any,
headerRole: _propTypes2.default.string,
panelRole: _propTypes2.default.string,
// From Collapse.
onEnter: _propTypes2.default.func,
onEntering: _propTypes2.default.func,
onEntered: _propTypes2.default.func,
onExit: _propTypes2.default.func,
onExiting: _propTypes2.default.func,
onExited: _propTypes2.default.func
};
var defaultProps = {
defaultExpanded: false
};
var Panel = function (_React$Component) {
(0, _inherits3.default)(Panel, _React$Component);
function Panel(props, context) {
(0, _classCallCheck3.default)(this, Panel);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
_this.handleClickTitle = _this.handleClickTitle.bind(_this);
_this.state = {
expanded: _this.props.defaultExpanded
};
return _this;
}
Panel.prototype.handleClickTitle = function handleClickTitle(e) {
// FIXME: What the heck? This API is horrible. This needs to go away!
e.persist();
e.selected = true;
if (this.props.onSelect) {
this.props.onSelect(this.props.eventKey, e);
} else {
e.preventDefault();
}
if (e.selected) {
this.setState({ expanded: !this.state.expanded });
}
};
Panel.prototype.renderAnchor = function renderAnchor(header, id, role, expanded) {
return _react2.default.createElement(
'a',
{
role: role,
href: id && '#' + id,
onClick: this.handleClickTitle,
'aria-controls': id,
'aria-expanded': expanded,
'aria-selected': expanded,
className: expanded ? null : 'collapsed'
},
header
);
};
Panel.prototype.renderBody = function renderBody(rawChildren, bsProps) {
var children = [];
var bodyChildren = [];
var bodyClassName = (0, _bootstrapUtils.prefix)(bsProps, 'body');
function maybeAddBody() {
if (!bodyChildren.length) {
return;
}
// Derive the key from the index here, since we need to make one up.
children.push(_react2.default.createElement(
'div',
{ key: children.length, className: bodyClassName },
bodyChildren
));
bodyChildren = [];
}
// Convert to array so we can re-use keys.
_react2.default.Children.toArray(rawChildren).forEach(function (child) {
if (_react2.default.isValidElement(child) && child.props.fill) {
maybeAddBody();
// Remove the child's unknown `fill` prop.
children.push((0, _react.cloneElement)(child, { fill: undefined }));
return;
}
bodyChildren.push(child);
});
maybeAddBody();
return children;
};
Panel.prototype.renderCollapsibleBody = function renderCollapsibleBody(id, expanded, role, children, bsProps, animationHooks) {
return _react2.default.createElement(
_Collapse2.default,
(0, _extends3.default)({ 'in': expanded }, animationHooks),
_react2.default.createElement(
'div',
{
id: id,
role: role,
className: (0, _bootstrapUtils.prefix)(bsProps, 'collapse'),
'aria-hidden': !expanded
},
this.renderBody(children, bsProps)
)
);
};
Panel.prototype.renderHeader = function renderHeader(collapsible, header, id, role, expanded, bsProps) {
var titleClassName = (0, _bootstrapUtils.prefix)(bsProps, 'title');
if (!collapsible) {
if (!_react2.default.isValidElement(header)) {
return header;
}
return (0, _react.cloneElement)(header, {
className: (0, _classnames2.default)(header.props.className, titleClassName)
});
}
if (!_react2.default.isValidElement(header)) {
return _react2.default.createElement(
'h4',
{ role: 'presentation', className: titleClassName },
this.renderAnchor(header, id, role, expanded)
);
}
return (0, _react.cloneElement)(header, {
className: (0, _classnames2.default)(header.props.className, titleClassName),
children: this.renderAnchor(header.props.children, id, role, expanded)
});
};
Panel.prototype.render = function render() {
var _props = this.props,
collapsible = _props.collapsible,
header = _props.header,
id = _props.id,
footer = _props.footer,
propsExpanded = _props.expanded,
headerRole = _props.headerRole,
panelRole = _props.panelRole,
className = _props.className,
children = _props.children,
onEnter = _props.onEnter,
onEntering = _props.onEntering,
onEntered = _props.onEntered,
onExit = _props.onExit,
onExiting = _props.onExiting,
onExited = _props.onExited,
props = (0, _objectWithoutProperties3.default)(_props, ['collapsible', 'header', 'id', 'footer', 'expanded', 'headerRole', 'panelRole', 'className', 'children', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited']);
var _splitBsPropsAndOmit = (0, _bootstrapUtils.splitBsPropsAndOmit)(props, ['defaultExpanded', 'eventKey', 'onSelect']),
bsProps = _splitBsPropsAndOmit[0],
elementProps = _splitBsPropsAndOmit[1];
var expanded = propsExpanded != null ? propsExpanded : this.state.expanded;
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement(
'div',
(0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes),
id: collapsible ? null : id
}),
header && _react2.default.createElement(
'div',
{ className: (0, _bootstrapUtils.prefix)(bsProps, 'heading') },
this.renderHeader(collapsible, header, id, headerRole, expanded, bsProps)
),
collapsible ? this.renderCollapsibleBody(id, expanded, panelRole, children, bsProps, { onEnter: onEnter, onEntering: onEntering, onEntered: onEntered, onExit: onExit, onExiting: onExiting, onExited: onExited }) : this.renderBody(children, bsProps),
footer && _react2.default.createElement(
'div',
{ className: (0, _bootstrapUtils.prefix)(bsProps, 'footer') },
footer
)
);
};
return Panel;
}(_react2.default.Component);
Panel.propTypes = propTypes;
Panel.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('panel', (0, _bootstrapUtils.bsStyles)([].concat((0, _values2.default)(_StyleConfig.State), [_StyleConfig.Style.DEFAULT, _StyleConfig.Style.PRIMARY]), _StyleConfig.Style.DEFAULT, Panel));
module.exports = exports['default'];
},{"./Collapse":175,"./utils/StyleConfig":251,"./utils/bootstrapUtils":254,"babel-runtime/core-js/object/values":14,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],229:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _assign = require('babel-runtime/core-js/object/assign');
var _assign2 = _interopRequireDefault(_assign);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
var _ValidComponentChildren = require('./utils/ValidComponentChildren');
var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
accordion: _propTypes2.default.bool,
activeKey: _propTypes2.default.any,
defaultActiveKey: _propTypes2.default.any,
onSelect: _propTypes2.default.func,
role: _propTypes2.default.string
};
var defaultProps = {
accordion: false
};
// TODO: Use uncontrollable.
var PanelGroup = function (_React$Component) {
(0, _inherits3.default)(PanelGroup, _React$Component);
function PanelGroup(props, context) {
(0, _classCallCheck3.default)(this, PanelGroup);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
_this.handleSelect = _this.handleSelect.bind(_this);
_this.state = {
activeKey: props.defaultActiveKey
};
return _this;
}
PanelGroup.prototype.handleSelect = function handleSelect(key, e) {
e.preventDefault();
if (this.props.onSelect) {
this.props.onSelect(key, e);
}
if (this.state.activeKey === key) {
key = null;
}
this.setState({ activeKey: key });
};
PanelGroup.prototype.render = function render() {
var _this2 = this;
var _props = this.props,
accordion = _props.accordion,
propsActiveKey = _props.activeKey,
className = _props.className,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['accordion', 'activeKey', 'className', 'children']);
var _splitBsPropsAndOmit = (0, _bootstrapUtils.splitBsPropsAndOmit)(props, ['defaultActiveKey', 'onSelect']),
bsProps = _splitBsPropsAndOmit[0],
elementProps = _splitBsPropsAndOmit[1];
var activeKey = void 0;
if (accordion) {
activeKey = propsActiveKey != null ? propsActiveKey : this.state.activeKey;
elementProps.role = elementProps.role || 'tablist';
}
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement(
'div',
(0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}),
_ValidComponentChildren2.default.map(children, function (child) {
var childProps = {
bsStyle: child.props.bsStyle || bsProps.bsStyle
};
if (accordion) {
(0, _assign2.default)(childProps, {
headerRole: 'tab',
panelRole: 'tabpanel',
collapsible: true,
expanded: child.props.eventKey === activeKey,
onSelect: (0, _createChainedFunction2.default)(_this2.handleSelect, child.props.onSelect)
});
}
return (0, _react.cloneElement)(child, childProps);
})
);
};
return PanelGroup;
}(_react2.default.Component);
PanelGroup.propTypes = propTypes;
PanelGroup.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('panel-group', PanelGroup);
module.exports = exports['default'];
},{"./utils/ValidComponentChildren":253,"./utils/bootstrapUtils":254,"./utils/createChainedFunction":256,"babel-runtime/core-js/object/assign":10,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],230:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _isRequiredForA11y = require('prop-types-extra/lib/isRequiredForA11y');
var _isRequiredForA11y2 = _interopRequireDefault(_isRequiredForA11y);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* An html id attribute, necessary for accessibility
* @type {string}
* @required
*/
id: (0, _isRequiredForA11y2.default)(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number])),
/**
* Sets the direction the Popover is positioned towards.
*/
placement: _propTypes2.default.oneOf(['top', 'right', 'bottom', 'left']),
/**
* The "top" position value for the Popover.
*/
positionTop: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
/**
* The "left" position value for the Popover.
*/
positionLeft: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
/**
* The "top" position value for the Popover arrow.
*/
arrowOffsetTop: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
/**
* The "left" position value for the Popover arrow.
*/
arrowOffsetLeft: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
/**
* Title content
*/
title: _propTypes2.default.node
};
var defaultProps = {
placement: 'right'
};
var Popover = function (_React$Component) {
(0, _inherits3.default)(Popover, _React$Component);
function Popover() {
(0, _classCallCheck3.default)(this, Popover);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Popover.prototype.render = function render() {
var _extends2;
var _props = this.props,
placement = _props.placement,
positionTop = _props.positionTop,
positionLeft = _props.positionLeft,
arrowOffsetTop = _props.arrowOffsetTop,
arrowOffsetLeft = _props.arrowOffsetLeft,
title = _props.title,
className = _props.className,
style = _props.style,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['placement', 'positionTop', 'positionLeft', 'arrowOffsetTop', 'arrowOffsetLeft', 'title', 'className', 'style', 'children']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _extends4.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), (_extends2 = {}, _extends2[placement] = true, _extends2));
var outerStyle = (0, _extends4.default)({
display: 'block',
top: positionTop,
left: positionLeft
}, style);
var arrowStyle = {
top: arrowOffsetTop,
left: arrowOffsetLeft
};
return _react2.default.createElement(
'div',
(0, _extends4.default)({}, elementProps, {
role: 'tooltip',
className: (0, _classnames2.default)(className, classes),
style: outerStyle
}),
_react2.default.createElement('div', { className: 'arrow', style: arrowStyle }),
title && _react2.default.createElement(
'h3',
{ className: (0, _bootstrapUtils.prefix)(bsProps, 'title') },
title
),
_react2.default.createElement(
'div',
{ className: (0, _bootstrapUtils.prefix)(bsProps, 'content') },
children
)
);
};
return Popover;
}(_react2.default.Component);
Popover.propTypes = propTypes;
Popover.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('popover', Popover);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/isRequiredForA11y":149,"react":321}],231:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _values = require('babel-runtime/core-js/object/values');
var _values2 = _interopRequireDefault(_values);
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _StyleConfig = require('./utils/StyleConfig');
var _ValidComponentChildren = require('./utils/ValidComponentChildren');
var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var ROUND_PRECISION = 1000;
/**
* Validate that children, if any, are instances of `<ProgressBar>`.
*/
function onlyProgressBar(props, propName, componentName) {
var children = props[propName];
if (!children) {
return null;
}
var error = null;
_react2.default.Children.forEach(children, function (child) {
if (error) {
return;
}
if (child.type === ProgressBar) {
// eslint-disable-line no-use-before-define
return;
}
var childIdentifier = _react2.default.isValidElement(child) ? child.type.displayName || child.type.name || child.type : child;
error = new Error('Children of ' + componentName + ' can contain only ProgressBar ' + ('components. Found ' + childIdentifier + '.'));
});
return error;
}
var propTypes = {
min: _propTypes2.default.number,
now: _propTypes2.default.number,
max: _propTypes2.default.number,
label: _propTypes2.default.node,
srOnly: _propTypes2.default.bool,
striped: _propTypes2.default.bool,
active: _propTypes2.default.bool,
children: onlyProgressBar,
/**
* @private
*/
isChild: _propTypes2.default.bool
};
var defaultProps = {
min: 0,
max: 100,
active: false,
isChild: false,
srOnly: false,
striped: false
};
function getPercentage(now, min, max) {
var percentage = (now - min) / (max - min) * 100;
return Math.round(percentage * ROUND_PRECISION) / ROUND_PRECISION;
}
var ProgressBar = function (_React$Component) {
(0, _inherits3.default)(ProgressBar, _React$Component);
function ProgressBar() {
(0, _classCallCheck3.default)(this, ProgressBar);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
ProgressBar.prototype.renderProgressBar = function renderProgressBar(_ref) {
var _extends2;
var min = _ref.min,
now = _ref.now,
max = _ref.max,
label = _ref.label,
srOnly = _ref.srOnly,
striped = _ref.striped,
active = _ref.active,
className = _ref.className,
style = _ref.style,
props = (0, _objectWithoutProperties3.default)(_ref, ['min', 'now', 'max', 'label', 'srOnly', 'striped', 'active', 'className', 'style']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _extends4.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), (_extends2 = {
active: active
}, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'striped')] = active || striped, _extends2));
return _react2.default.createElement(
'div',
(0, _extends4.default)({}, elementProps, {
role: 'progressbar',
className: (0, _classnames2.default)(className, classes),
style: (0, _extends4.default)({ width: getPercentage(now, min, max) + '%' }, style),
'aria-valuenow': now,
'aria-valuemin': min,
'aria-valuemax': max
}),
srOnly ? _react2.default.createElement(
'span',
{ className: 'sr-only' },
label
) : label
);
};
ProgressBar.prototype.render = function render() {
var _props = this.props,
isChild = _props.isChild,
props = (0, _objectWithoutProperties3.default)(_props, ['isChild']);
if (isChild) {
return this.renderProgressBar(props);
}
var min = props.min,
now = props.now,
max = props.max,
label = props.label,
srOnly = props.srOnly,
striped = props.striped,
active = props.active,
bsClass = props.bsClass,
bsStyle = props.bsStyle,
className = props.className,
children = props.children,
wrapperProps = (0, _objectWithoutProperties3.default)(props, ['min', 'now', 'max', 'label', 'srOnly', 'striped', 'active', 'bsClass', 'bsStyle', 'className', 'children']);
return _react2.default.createElement(
'div',
(0, _extends4.default)({}, wrapperProps, {
className: (0, _classnames2.default)(className, 'progress')
}),
children ? _ValidComponentChildren2.default.map(children, function (child) {
return (0, _react.cloneElement)(child, { isChild: true });
}) : this.renderProgressBar({
min: min, now: now, max: max, label: label, srOnly: srOnly, striped: striped, active: active, bsClass: bsClass, bsStyle: bsStyle
})
);
};
return ProgressBar;
}(_react2.default.Component);
ProgressBar.propTypes = propTypes;
ProgressBar.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('progress-bar', (0, _bootstrapUtils.bsStyles)((0, _values2.default)(_StyleConfig.State), ProgressBar));
module.exports = exports['default'];
},{"./utils/StyleConfig":251,"./utils/ValidComponentChildren":253,"./utils/bootstrapUtils":254,"babel-runtime/core-js/object/values":14,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],232:[function(require,module,exports){
(function (process){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
inline: _propTypes2.default.bool,
disabled: _propTypes2.default.bool,
title: _propTypes2.default.string,
/**
* Only valid if `inline` is not set.
*/
validationState: _propTypes2.default.oneOf(['success', 'warning', 'error', null]),
/**
* Attaches a ref to the `<input>` element. Only functions can be used here.
*
* ```js
* <Radio inputRef={ref => { this.input = ref; }} />
* ```
*/
inputRef: _propTypes2.default.func
}; /* eslint-disable jsx-a11y/label-has-for */
var defaultProps = {
inline: false,
disabled: false,
title: ''
};
var Radio = function (_React$Component) {
(0, _inherits3.default)(Radio, _React$Component);
function Radio() {
(0, _classCallCheck3.default)(this, Radio);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Radio.prototype.render = function render() {
var _props = this.props,
inline = _props.inline,
disabled = _props.disabled,
validationState = _props.validationState,
inputRef = _props.inputRef,
className = _props.className,
style = _props.style,
title = _props.title,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['inline', 'disabled', 'validationState', 'inputRef', 'className', 'style', 'title', 'children']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var input = _react2.default.createElement('input', (0, _extends3.default)({}, elementProps, {
ref: inputRef,
type: 'radio',
disabled: disabled
}));
if (inline) {
var _classes2;
var _classes = (_classes2 = {}, _classes2[(0, _bootstrapUtils.prefix)(bsProps, 'inline')] = true, _classes2.disabled = disabled, _classes2);
// Use a warning here instead of in propTypes to get better-looking
// generated documentation.
process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!validationState, '`validationState` is ignored on `<Radio inline>`. To display ' + 'validation state on an inline radio, set `validationState` on a ' + 'parent `<FormGroup>` or other element instead.') : void 0;
return _react2.default.createElement(
'label',
{ className: (0, _classnames2.default)(className, _classes), style: style, title: title },
input,
children
);
}
var classes = (0, _extends3.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), {
disabled: disabled
});
if (validationState) {
classes['has-' + validationState] = true;
}
return _react2.default.createElement(
'div',
{ className: (0, _classnames2.default)(className, classes), style: style },
_react2.default.createElement(
'label',
{ title: title },
input,
children
)
);
};
return Radio;
}(_react2.default.Component);
Radio.propTypes = propTypes;
Radio.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('radio', Radio);
module.exports = exports['default'];
}).call(this,require('_process'))
},{"./utils/bootstrapUtils":254,"_process":334,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321,"warning":330}],233:[function(require,module,exports){
(function (process){
'use strict';
exports.__esModule = true;
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
// TODO: This should probably take a single `aspectRatio` prop.
var propTypes = {
/**
* This component requires a single child element
*/
children: _propTypes2.default.element.isRequired,
/**
* 16by9 aspect ratio
*/
a16by9: _propTypes2.default.bool,
/**
* 4by3 aspect ratio
*/
a4by3: _propTypes2.default.bool
};
var defaultProps = {
a16by9: false,
a4by3: false
};
var ResponsiveEmbed = function (_React$Component) {
(0, _inherits3.default)(ResponsiveEmbed, _React$Component);
function ResponsiveEmbed() {
(0, _classCallCheck3.default)(this, ResponsiveEmbed);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
ResponsiveEmbed.prototype.render = function render() {
var _extends2;
var _props = this.props,
a16by9 = _props.a16by9,
a4by3 = _props.a4by3,
className = _props.className,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['a16by9', 'a4by3', 'className', 'children']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(a16by9 || a4by3, 'Either `a16by9` or `a4by3` must be set.') : void 0;
process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!(a16by9 && a4by3), 'Only one of `a16by9` or `a4by3` can be set.') : void 0;
var classes = (0, _extends4.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), (_extends2 = {}, _extends2[(0, _bootstrapUtils.prefix)(bsProps, '16by9')] = a16by9, _extends2[(0, _bootstrapUtils.prefix)(bsProps, '4by3')] = a4by3, _extends2));
return _react2.default.createElement(
'div',
{ className: (0, _classnames2.default)(classes) },
(0, _react.cloneElement)(children, (0, _extends4.default)({}, elementProps, {
className: (0, _classnames2.default)(className, (0, _bootstrapUtils.prefix)(bsProps, 'item'))
}))
);
};
return ResponsiveEmbed;
}(_react2.default.Component);
ResponsiveEmbed.propTypes = propTypes;
ResponsiveEmbed.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('embed-responsive', ResponsiveEmbed);
module.exports = exports['default'];
}).call(this,require('_process'))
},{"./utils/bootstrapUtils":254,"_process":334,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321,"warning":330}],234:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
componentClass: _elementType2.default
};
var defaultProps = {
componentClass: 'div'
};
var Row = function (_React$Component) {
(0, _inherits3.default)(Row, _React$Component);
function Row() {
(0, _classCallCheck3.default)(this, Row);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Row.prototype.render = function render() {
var _props = this.props,
Component = _props.componentClass,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['componentClass', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement(Component, (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return Row;
}(_react2.default.Component);
Row.propTypes = propTypes;
Row.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('row', Row);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types-extra/lib/elementType":148,"react":321}],235:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
href: _propTypes2.default.string,
onClick: _propTypes2.default.func,
onKeyDown: _propTypes2.default.func,
disabled: _propTypes2.default.bool,
role: _propTypes2.default.string,
tabIndex: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
/**
* this is sort of silly but needed for Button
*/
componentClass: _elementType2.default
};
var defaultProps = {
componentClass: 'a'
};
function isTrivialHref(href) {
return !href || href.trim() === '#';
}
/**
* There are situations due to browser quirks or Bootstrap CSS where
* an anchor tag is needed, when semantically a button tag is the
* better choice. SafeAnchor ensures that when an anchor is used like a
* button its accessible. It also emulates input `disabled` behavior for
* links, which is usually desirable for Buttons, NavItems, MenuItems, etc.
*/
var SafeAnchor = function (_React$Component) {
(0, _inherits3.default)(SafeAnchor, _React$Component);
function SafeAnchor(props, context) {
(0, _classCallCheck3.default)(this, SafeAnchor);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
_this.handleClick = _this.handleClick.bind(_this);
_this.handleKeyDown = _this.handleKeyDown.bind(_this);
return _this;
}
SafeAnchor.prototype.handleClick = function handleClick(event) {
var _props = this.props,
disabled = _props.disabled,
href = _props.href,
onClick = _props.onClick;
if (disabled || isTrivialHref(href)) {
event.preventDefault();
}
if (disabled) {
event.stopPropagation();
return;
}
if (onClick) {
onClick(event);
}
};
SafeAnchor.prototype.handleKeyDown = function handleKeyDown(event) {
if (event.key === ' ') {
event.preventDefault();
this.handleClick(event);
}
};
SafeAnchor.prototype.render = function render() {
var _props2 = this.props,
Component = _props2.componentClass,
disabled = _props2.disabled,
onKeyDown = _props2.onKeyDown,
props = (0, _objectWithoutProperties3.default)(_props2, ['componentClass', 'disabled', 'onKeyDown']);
if (isTrivialHref(props.href)) {
props.role = props.role || 'button';
// we want to make sure there is a href attribute on the node
// otherwise, the cursor incorrectly styled (except with role='button')
props.href = props.href || '#';
}
if (disabled) {
props.tabIndex = -1;
props.style = (0, _extends3.default)({ pointerEvents: 'none' }, props.style);
}
return _react2.default.createElement(Component, (0, _extends3.default)({}, props, {
onClick: this.handleClick,
onKeyDown: (0, _createChainedFunction2.default)(this.handleKeyDown, onKeyDown)
}));
};
return SafeAnchor;
}(_react2.default.Component);
SafeAnchor.propTypes = propTypes;
SafeAnchor.defaultProps = defaultProps;
exports.default = SafeAnchor;
module.exports = exports['default'];
},{"./utils/createChainedFunction":256,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"prop-types":154,"prop-types-extra/lib/elementType":148,"react":321}],236:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _Button = require('./Button');
var _Button2 = _interopRequireDefault(_Button);
var _Dropdown = require('./Dropdown');
var _Dropdown2 = _interopRequireDefault(_Dropdown);
var _SplitToggle = require('./SplitToggle');
var _SplitToggle2 = _interopRequireDefault(_SplitToggle);
var _splitComponentProps2 = require('./utils/splitComponentProps');
var _splitComponentProps3 = _interopRequireDefault(_splitComponentProps2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = (0, _extends3.default)({}, _Dropdown2.default.propTypes, {
// Toggle props.
bsStyle: _propTypes2.default.string,
bsSize: _propTypes2.default.string,
href: _propTypes2.default.string,
onClick: _propTypes2.default.func,
/**
* The content of the split button.
*/
title: _propTypes2.default.node.isRequired,
/**
* Accessible label for the toggle; the value of `title` if not specified.
*/
toggleLabel: _propTypes2.default.string,
// Override generated docs from <Dropdown>.
/**
* @private
*/
children: _propTypes2.default.node
});
var SplitButton = function (_React$Component) {
(0, _inherits3.default)(SplitButton, _React$Component);
function SplitButton() {
(0, _classCallCheck3.default)(this, SplitButton);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
SplitButton.prototype.render = function render() {
var _props = this.props,
bsSize = _props.bsSize,
bsStyle = _props.bsStyle,
title = _props.title,
toggleLabel = _props.toggleLabel,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['bsSize', 'bsStyle', 'title', 'toggleLabel', 'children']);
var _splitComponentProps = (0, _splitComponentProps3.default)(props, _Dropdown2.default.ControlledComponent),
dropdownProps = _splitComponentProps[0],
buttonProps = _splitComponentProps[1];
return _react2.default.createElement(
_Dropdown2.default,
(0, _extends3.default)({}, dropdownProps, {
bsSize: bsSize,
bsStyle: bsStyle
}),
_react2.default.createElement(
_Button2.default,
(0, _extends3.default)({}, buttonProps, {
disabled: props.disabled,
bsSize: bsSize,
bsStyle: bsStyle
}),
title
),
_react2.default.createElement(_SplitToggle2.default, {
'aria-label': toggleLabel || title,
bsSize: bsSize,
bsStyle: bsStyle
}),
_react2.default.createElement(
_Dropdown2.default.Menu,
null,
children
)
);
};
return SplitButton;
}(_react2.default.Component);
SplitButton.propTypes = propTypes;
SplitButton.Toggle = _SplitToggle2.default;
exports.default = SplitButton;
module.exports = exports['default'];
},{"./Button":165,"./Dropdown":177,"./SplitToggle":237,"./utils/splitComponentProps":259,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"prop-types":154,"react":321}],237:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _DropdownToggle = require('./DropdownToggle');
var _DropdownToggle2 = _interopRequireDefault(_DropdownToggle);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var SplitToggle = function (_React$Component) {
(0, _inherits3.default)(SplitToggle, _React$Component);
function SplitToggle() {
(0, _classCallCheck3.default)(this, SplitToggle);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
SplitToggle.prototype.render = function render() {
return _react2.default.createElement(_DropdownToggle2.default, (0, _extends3.default)({}, this.props, {
useAnchor: false,
noCaret: false
}));
};
return SplitToggle;
}(_react2.default.Component);
SplitToggle.defaultProps = _DropdownToggle2.default.defaultProps;
exports.default = SplitToggle;
module.exports = exports['default'];
},{"./DropdownToggle":180,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/possibleConstructorReturn":21,"react":321}],238:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _TabContainer = require('./TabContainer');
var _TabContainer2 = _interopRequireDefault(_TabContainer);
var _TabContent = require('./TabContent');
var _TabContent2 = _interopRequireDefault(_TabContent);
var _TabPane = require('./TabPane');
var _TabPane2 = _interopRequireDefault(_TabPane);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = (0, _extends3.default)({}, _TabPane2.default.propTypes, {
disabled: _propTypes2.default.bool,
title: _propTypes2.default.node,
/**
* tabClassName is used as className for the associated NavItem
*/
tabClassName: _propTypes2.default.string
});
var Tab = function (_React$Component) {
(0, _inherits3.default)(Tab, _React$Component);
function Tab() {
(0, _classCallCheck3.default)(this, Tab);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Tab.prototype.render = function render() {
var props = (0, _extends3.default)({}, this.props);
// These props are for the parent `<Tabs>` rather than the `<TabPane>`.
delete props.title;
delete props.disabled;
delete props.tabClassName;
return _react2.default.createElement(_TabPane2.default, props);
};
return Tab;
}(_react2.default.Component);
Tab.propTypes = propTypes;
Tab.Container = _TabContainer2.default;
Tab.Content = _TabContent2.default;
Tab.Pane = _TabPane2.default;
exports.default = Tab;
module.exports = exports['default'];
},{"./TabContainer":239,"./TabContent":240,"./TabPane":241,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/possibleConstructorReturn":21,"prop-types":154,"react":321}],239:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _uncontrollable = require('uncontrollable');
var _uncontrollable2 = _interopRequireDefault(_uncontrollable);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var TAB = 'tab';
var PANE = 'pane';
var idPropType = _propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number]);
var propTypes = {
/**
* HTML id attribute, required if no `generateChildId` prop
* is specified.
*/
id: function id(props) {
var error = null;
if (!props.generateChildId) {
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
error = idPropType.apply(undefined, [props].concat(args));
if (!error && !props.id) {
error = new Error('In order to properly initialize Tabs in a way that is accessible ' + 'to assistive technologies (such as screen readers) an `id` or a ' + '`generateChildId` prop to TabContainer is required');
}
}
return error;
},
/**
* A function that takes an `eventKey` and `type` and returns a unique id for
* child tab `<NavItem>`s and `<TabPane>`s. The function _must_ be a pure
* function, meaning it should always return the _same_ id for the same set
* of inputs. The default value requires that an `id` to be set for the
* `<TabContainer>`.
*
* The `type` argument will either be `"tab"` or `"pane"`.
*
* @defaultValue (eventKey, type) => `${this.props.id}-${type}-${key}`
*/
generateChildId: _propTypes2.default.func,
/**
* A callback fired when a tab is selected.
*
* @controllable activeKey
*/
onSelect: _propTypes2.default.func,
/**
* The `eventKey` of the currently active tab.
*
* @controllable onSelect
*/
activeKey: _propTypes2.default.any
};
var childContextTypes = {
$bs_tabContainer: _propTypes2.default.shape({
activeKey: _propTypes2.default.any,
onSelect: _propTypes2.default.func.isRequired,
getTabId: _propTypes2.default.func.isRequired,
getPaneId: _propTypes2.default.func.isRequired
})
};
var TabContainer = function (_React$Component) {
(0, _inherits3.default)(TabContainer, _React$Component);
function TabContainer() {
(0, _classCallCheck3.default)(this, TabContainer);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
TabContainer.prototype.getChildContext = function getChildContext() {
var _props = this.props,
activeKey = _props.activeKey,
onSelect = _props.onSelect,
generateChildId = _props.generateChildId,
id = _props.id;
var getId = generateChildId || function (key, type) {
return id ? id + '-' + type + '-' + key : null;
};
return {
$bs_tabContainer: {
activeKey: activeKey,
onSelect: onSelect,
getTabId: function getTabId(key) {
return getId(key, TAB);
},
getPaneId: function getPaneId(key) {
return getId(key, PANE);
}
}
};
};
TabContainer.prototype.render = function render() {
var _props2 = this.props,
children = _props2.children,
props = (0, _objectWithoutProperties3.default)(_props2, ['children']);
delete props.generateChildId;
delete props.onSelect;
delete props.activeKey;
return _react2.default.cloneElement(_react2.default.Children.only(children), props);
};
return TabContainer;
}(_react2.default.Component);
TabContainer.propTypes = propTypes;
TabContainer.childContextTypes = childContextTypes;
exports.default = (0, _uncontrollable2.default)(TabContainer, { activeKey: 'onSelect' });
module.exports = exports['default'];
},{"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"prop-types":154,"react":321,"uncontrollable":328}],240:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
componentClass: _elementType2.default,
/**
* Sets a default animation strategy for all children `<TabPane>`s. Use
* `false` to disable, `true` to enable the default `<Fade>` animation or any
* `<Transition>` component.
*/
animation: _propTypes2.default.oneOfType([_propTypes2.default.bool, _elementType2.default]),
/**
* Wait until the first "enter" transition to mount tabs (add them to the DOM)
*/
mountOnEnter: _propTypes2.default.bool,
/**
* Unmount tabs (remove it from the DOM) when they are no longer visible
*/
unmountOnExit: _propTypes2.default.bool
};
var defaultProps = {
componentClass: 'div',
animation: true,
mountOnEnter: false,
unmountOnExit: false
};
var contextTypes = {
$bs_tabContainer: _propTypes2.default.shape({
activeKey: _propTypes2.default.any
})
};
var childContextTypes = {
$bs_tabContent: _propTypes2.default.shape({
bsClass: _propTypes2.default.string,
animation: _propTypes2.default.oneOfType([_propTypes2.default.bool, _elementType2.default]),
activeKey: _propTypes2.default.any,
mountOnEnter: _propTypes2.default.bool,
unmountOnExit: _propTypes2.default.bool,
onPaneEnter: _propTypes2.default.func.isRequired,
onPaneExited: _propTypes2.default.func.isRequired,
exiting: _propTypes2.default.bool.isRequired
})
};
var TabContent = function (_React$Component) {
(0, _inherits3.default)(TabContent, _React$Component);
function TabContent(props, context) {
(0, _classCallCheck3.default)(this, TabContent);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
_this.handlePaneEnter = _this.handlePaneEnter.bind(_this);
_this.handlePaneExited = _this.handlePaneExited.bind(_this);
// Active entries in state will be `null` unless `animation` is set. Need
// to track active child in case keys swap and the active child changes
// but the active key does not.
_this.state = {
activeKey: null,
activeChild: null
};
return _this;
}
TabContent.prototype.getChildContext = function getChildContext() {
var _props = this.props,
bsClass = _props.bsClass,
animation = _props.animation,
mountOnEnter = _props.mountOnEnter,
unmountOnExit = _props.unmountOnExit;
var stateActiveKey = this.state.activeKey;
var containerActiveKey = this.getContainerActiveKey();
var activeKey = stateActiveKey != null ? stateActiveKey : containerActiveKey;
var exiting = stateActiveKey != null && stateActiveKey !== containerActiveKey;
return {
$bs_tabContent: {
bsClass: bsClass,
animation: animation,
activeKey: activeKey,
mountOnEnter: mountOnEnter,
unmountOnExit: unmountOnExit,
onPaneEnter: this.handlePaneEnter,
onPaneExited: this.handlePaneExited,
exiting: exiting
}
};
};
TabContent.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
if (!nextProps.animation && this.state.activeChild) {
this.setState({ activeKey: null, activeChild: null });
}
};
TabContent.prototype.componentWillUnmount = function componentWillUnmount() {
this.isUnmounted = true;
};
TabContent.prototype.getContainerActiveKey = function getContainerActiveKey() {
var tabContainer = this.context.$bs_tabContainer;
return tabContainer && tabContainer.activeKey;
};
TabContent.prototype.handlePaneEnter = function handlePaneEnter(child, childKey) {
if (!this.props.animation) {
return false;
}
// It's possible that this child should be transitioning out.
if (childKey !== this.getContainerActiveKey()) {
return false;
}
this.setState({
activeKey: childKey,
activeChild: child
});
return true;
};
TabContent.prototype.handlePaneExited = function handlePaneExited(child) {
// This might happen as everything is unmounting.
if (this.isUnmounted) {
return;
}
this.setState(function (_ref) {
var activeChild = _ref.activeChild;
if (activeChild !== child) {
return null;
}
return {
activeKey: null,
activeChild: null
};
});
};
TabContent.prototype.render = function render() {
var _props2 = this.props,
Component = _props2.componentClass,
className = _props2.className,
props = (0, _objectWithoutProperties3.default)(_props2, ['componentClass', 'className']);
var _splitBsPropsAndOmit = (0, _bootstrapUtils.splitBsPropsAndOmit)(props, ['animation', 'mountOnEnter', 'unmountOnExit']),
bsProps = _splitBsPropsAndOmit[0],
elementProps = _splitBsPropsAndOmit[1];
return _react2.default.createElement(Component, (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, (0, _bootstrapUtils.prefix)(bsProps, 'content'))
}));
};
return TabContent;
}(_react2.default.Component);
TabContent.propTypes = propTypes;
TabContent.defaultProps = defaultProps;
TabContent.contextTypes = contextTypes;
TabContent.childContextTypes = childContextTypes;
exports.default = (0, _bootstrapUtils.bsClass)('tab', TabContent);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/elementType":148,"react":321}],241:[function(require,module,exports){
(function (process){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _elementType = require('prop-types-extra/lib/elementType');
var _elementType2 = _interopRequireDefault(_elementType);
var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
var _Fade = require('./Fade');
var _Fade2 = _interopRequireDefault(_Fade);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* Uniquely identify the `<TabPane>` among its siblings.
*/
eventKey: _propTypes2.default.any,
/**
* Use animation when showing or hiding `<TabPane>`s. Use `false` to disable,
* `true` to enable the default `<Fade>` animation or any `<Transition>`
* component.
*/
animation: _propTypes2.default.oneOfType([_propTypes2.default.bool, _elementType2.default]),
/** @private * */
id: _propTypes2.default.string,
/** @private * */
'aria-labelledby': _propTypes2.default.string,
/**
* If not explicitly specified and rendered in the context of a
* `<TabContent>`, the `bsClass` of the `<TabContent>` suffixed by `-pane`.
* If otherwise not explicitly specified, `tab-pane`.
*/
bsClass: _propTypes2.default.string,
/**
* Transition onEnter callback when animation is not `false`
*/
onEnter: _propTypes2.default.func,
/**
* Transition onEntering callback when animation is not `false`
*/
onEntering: _propTypes2.default.func,
/**
* Transition onEntered callback when animation is not `false`
*/
onEntered: _propTypes2.default.func,
/**
* Transition onExit callback when animation is not `false`
*/
onExit: _propTypes2.default.func,
/**
* Transition onExiting callback when animation is not `false`
*/
onExiting: _propTypes2.default.func,
/**
* Transition onExited callback when animation is not `false`
*/
onExited: _propTypes2.default.func,
/**
* Wait until the first "enter" transition to mount the tab (add it to the DOM)
*/
mountOnEnter: _propTypes2.default.bool,
/**
* Unmount the tab (remove it from the DOM) when it is no longer visible
*/
unmountOnExit: _propTypes2.default.bool
};
var contextTypes = {
$bs_tabContainer: _propTypes2.default.shape({
getTabId: _propTypes2.default.func,
getPaneId: _propTypes2.default.func
}),
$bs_tabContent: _propTypes2.default.shape({
bsClass: _propTypes2.default.string,
animation: _propTypes2.default.oneOfType([_propTypes2.default.bool, _elementType2.default]),
activeKey: _propTypes2.default.any,
mountOnEnter: _propTypes2.default.bool,
unmountOnExit: _propTypes2.default.bool,
onPaneEnter: _propTypes2.default.func.isRequired,
onPaneExited: _propTypes2.default.func.isRequired,
exiting: _propTypes2.default.bool.isRequired
})
};
/**
* We override the `<TabContainer>` context so `<Nav>`s in `<TabPane>`s don't
* conflict with the top level one.
*/
var childContextTypes = {
$bs_tabContainer: _propTypes2.default.oneOf([null])
};
var TabPane = function (_React$Component) {
(0, _inherits3.default)(TabPane, _React$Component);
function TabPane(props, context) {
(0, _classCallCheck3.default)(this, TabPane);
var _this = (0, _possibleConstructorReturn3.default)(this, _React$Component.call(this, props, context));
_this.handleEnter = _this.handleEnter.bind(_this);
_this.handleExited = _this.handleExited.bind(_this);
_this.in = false;
return _this;
}
TabPane.prototype.getChildContext = function getChildContext() {
return {
$bs_tabContainer: null
};
};
TabPane.prototype.componentDidMount = function componentDidMount() {
if (this.shouldBeIn()) {
// In lieu of the action event firing.
this.handleEnter();
}
};
TabPane.prototype.componentDidUpdate = function componentDidUpdate() {
if (this.in) {
if (!this.shouldBeIn()) {
// We shouldn't be active any more. Notify the parent.
this.handleExited();
}
} else if (this.shouldBeIn()) {
// We are the active child. Notify the parent.
this.handleEnter();
}
};
TabPane.prototype.componentWillUnmount = function componentWillUnmount() {
if (this.in) {
// In lieu of the action event firing.
this.handleExited();
}
};
TabPane.prototype.getAnimation = function getAnimation() {
if (this.props.animation != null) {
return this.props.animation;
}
var tabContent = this.context.$bs_tabContent;
return tabContent && tabContent.animation;
};
TabPane.prototype.handleEnter = function handleEnter() {
var tabContent = this.context.$bs_tabContent;
if (!tabContent) {
return;
}
this.in = tabContent.onPaneEnter(this, this.props.eventKey);
};
TabPane.prototype.handleExited = function handleExited() {
var tabContent = this.context.$bs_tabContent;
if (!tabContent) {
return;
}
tabContent.onPaneExited(this);
this.in = false;
};
TabPane.prototype.isActive = function isActive() {
var tabContent = this.context.$bs_tabContent;
var activeKey = tabContent && tabContent.activeKey;
return this.props.eventKey === activeKey;
};
TabPane.prototype.shouldBeIn = function shouldBeIn() {
return this.getAnimation() && this.isActive();
};
TabPane.prototype.render = function render() {
var _props = this.props,
eventKey = _props.eventKey,
className = _props.className,
onEnter = _props.onEnter,
onEntering = _props.onEntering,
onEntered = _props.onEntered,
onExit = _props.onExit,
onExiting = _props.onExiting,
onExited = _props.onExited,
propsMountOnEnter = _props.mountOnEnter,
propsUnmountOnExit = _props.unmountOnExit,
props = (0, _objectWithoutProperties3.default)(_props, ['eventKey', 'className', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited', 'mountOnEnter', 'unmountOnExit']);
var _context = this.context,
tabContent = _context.$bs_tabContent,
tabContainer = _context.$bs_tabContainer;
var _splitBsPropsAndOmit = (0, _bootstrapUtils.splitBsPropsAndOmit)(props, ['animation']),
bsProps = _splitBsPropsAndOmit[0],
elementProps = _splitBsPropsAndOmit[1];
var active = this.isActive();
var animation = this.getAnimation();
var mountOnEnter = propsMountOnEnter != null ? propsMountOnEnter : tabContent && tabContent.mountOnEnter;
var unmountOnExit = propsUnmountOnExit != null ? propsUnmountOnExit : tabContent && tabContent.unmountOnExit;
if (!active && !animation && unmountOnExit) {
return null;
}
var Transition = animation === true ? _Fade2.default : animation || null;
if (tabContent) {
bsProps.bsClass = (0, _bootstrapUtils.prefix)(tabContent, 'pane');
}
var classes = (0, _extends3.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), {
active: active
});
if (tabContainer) {
process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(!elementProps.id && !elementProps['aria-labelledby'], 'In the context of a `<TabContainer>`, `<TabPanes>` are given ' + 'generated `id` and `aria-labelledby` attributes for the sake of ' + 'proper component accessibility. Any provided ones will be ignored. ' + 'To control these attributes directly provide a `generateChildId` ' + 'prop to the parent `<TabContainer>`.') : void 0;
elementProps.id = tabContainer.getPaneId(eventKey);
elementProps['aria-labelledby'] = tabContainer.getTabId(eventKey);
}
var pane = _react2.default.createElement('div', (0, _extends3.default)({}, elementProps, {
role: 'tabpanel',
'aria-hidden': !active,
className: (0, _classnames2.default)(className, classes)
}));
if (Transition) {
var exiting = tabContent && tabContent.exiting;
return _react2.default.createElement(
Transition,
{
'in': active && !exiting,
onEnter: (0, _createChainedFunction2.default)(this.handleEnter, onEnter),
onEntering: onEntering,
onEntered: onEntered,
onExit: onExit,
onExiting: onExiting,
onExited: (0, _createChainedFunction2.default)(this.handleExited, onExited),
mountOnEnter: mountOnEnter,
unmountOnExit: unmountOnExit
},
pane
);
}
return pane;
};
return TabPane;
}(_react2.default.Component);
TabPane.propTypes = propTypes;
TabPane.contextTypes = contextTypes;
TabPane.childContextTypes = childContextTypes;
exports.default = (0, _bootstrapUtils.bsClass)('tab-pane', TabPane);
module.exports = exports['default'];
}).call(this,require('_process'))
},{"./Fade":181,"./utils/bootstrapUtils":254,"./utils/createChainedFunction":256,"_process":334,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/elementType":148,"react":321,"warning":330}],242:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
striped: _propTypes2.default.bool,
bordered: _propTypes2.default.bool,
condensed: _propTypes2.default.bool,
hover: _propTypes2.default.bool,
responsive: _propTypes2.default.bool
};
var defaultProps = {
bordered: false,
condensed: false,
hover: false,
responsive: false,
striped: false
};
var Table = function (_React$Component) {
(0, _inherits3.default)(Table, _React$Component);
function Table() {
(0, _classCallCheck3.default)(this, Table);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Table.prototype.render = function render() {
var _extends2;
var _props = this.props,
striped = _props.striped,
bordered = _props.bordered,
condensed = _props.condensed,
hover = _props.hover,
responsive = _props.responsive,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['striped', 'bordered', 'condensed', 'hover', 'responsive', 'className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _extends4.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), (_extends2 = {}, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'striped')] = striped, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'bordered')] = bordered, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'condensed')] = condensed, _extends2[(0, _bootstrapUtils.prefix)(bsProps, 'hover')] = hover, _extends2));
var table = _react2.default.createElement('table', (0, _extends4.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
if (responsive) {
return _react2.default.createElement(
'div',
{ className: (0, _bootstrapUtils.prefix)(bsProps, 'responsive') },
table
);
}
return table;
};
return Table;
}(_react2.default.Component);
Table.propTypes = propTypes;
Table.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('table', Table);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],243:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _isRequiredForA11y = require('prop-types-extra/lib/isRequiredForA11y');
var _isRequiredForA11y2 = _interopRequireDefault(_isRequiredForA11y);
var _uncontrollable = require('uncontrollable');
var _uncontrollable2 = _interopRequireDefault(_uncontrollable);
var _Nav = require('./Nav');
var _Nav2 = _interopRequireDefault(_Nav);
var _NavItem = require('./NavItem');
var _NavItem2 = _interopRequireDefault(_NavItem);
var _TabContainer = require('./TabContainer');
var _TabContainer2 = _interopRequireDefault(_TabContainer);
var _TabContent = require('./TabContent');
var _TabContent2 = _interopRequireDefault(_TabContent);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _ValidComponentChildren = require('./utils/ValidComponentChildren');
var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var TabContainer = _TabContainer2.default.ControlledComponent;
var propTypes = {
/**
* Mark the Tab with a matching `eventKey` as active.
*
* @controllable onSelect
*/
activeKey: _propTypes2.default.any,
/**
* Navigation style
*/
bsStyle: _propTypes2.default.oneOf(['tabs', 'pills']),
animation: _propTypes2.default.bool,
id: (0, _isRequiredForA11y2.default)(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number])),
/**
* Callback fired when a Tab is selected.
*
* ```js
* function (
* Any eventKey,
* SyntheticEvent event?
* )
* ```
*
* @controllable activeKey
*/
onSelect: _propTypes2.default.func,
/**
* Wait until the first "enter" transition to mount tabs (add them to the DOM)
*/
mountOnEnter: _propTypes2.default.bool,
/**
* Unmount tabs (remove it from the DOM) when it is no longer visible
*/
unmountOnExit: _propTypes2.default.bool
};
var defaultProps = {
bsStyle: 'tabs',
animation: true,
mountOnEnter: false,
unmountOnExit: false
};
function getDefaultActiveKey(children) {
var defaultActiveKey = void 0;
_ValidComponentChildren2.default.forEach(children, function (child) {
if (defaultActiveKey == null) {
defaultActiveKey = child.props.eventKey;
}
});
return defaultActiveKey;
}
var Tabs = function (_React$Component) {
(0, _inherits3.default)(Tabs, _React$Component);
function Tabs() {
(0, _classCallCheck3.default)(this, Tabs);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Tabs.prototype.renderTab = function renderTab(child) {
var _child$props = child.props,
title = _child$props.title,
eventKey = _child$props.eventKey,
disabled = _child$props.disabled,
tabClassName = _child$props.tabClassName;
if (title == null) {
return null;
}
return _react2.default.createElement(
_NavItem2.default,
{
eventKey: eventKey,
disabled: disabled,
className: tabClassName
},
title
);
};
Tabs.prototype.render = function render() {
var _props = this.props,
id = _props.id,
onSelect = _props.onSelect,
animation = _props.animation,
mountOnEnter = _props.mountOnEnter,
unmountOnExit = _props.unmountOnExit,
bsClass = _props.bsClass,
className = _props.className,
style = _props.style,
children = _props.children,
_props$activeKey = _props.activeKey,
activeKey = _props$activeKey === undefined ? getDefaultActiveKey(children) : _props$activeKey,
props = (0, _objectWithoutProperties3.default)(_props, ['id', 'onSelect', 'animation', 'mountOnEnter', 'unmountOnExit', 'bsClass', 'className', 'style', 'children', 'activeKey']);
return _react2.default.createElement(
TabContainer,
{
id: id,
activeKey: activeKey,
onSelect: onSelect,
className: className,
style: style
},
_react2.default.createElement(
'div',
null,
_react2.default.createElement(
_Nav2.default,
(0, _extends3.default)({}, props, {
role: 'tablist'
}),
_ValidComponentChildren2.default.map(children, this.renderTab)
),
_react2.default.createElement(
_TabContent2.default,
{
bsClass: bsClass,
animation: animation,
mountOnEnter: mountOnEnter,
unmountOnExit: unmountOnExit
},
children
)
)
);
};
return Tabs;
}(_react2.default.Component);
Tabs.propTypes = propTypes;
Tabs.defaultProps = defaultProps;
(0, _bootstrapUtils.bsClass)('tab', Tabs);
exports.default = (0, _uncontrollable2.default)(Tabs, { activeKey: 'onSelect' });
module.exports = exports['default'];
},{"./Nav":212,"./NavItem":214,"./TabContainer":239,"./TabContent":240,"./utils/ValidComponentChildren":253,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"prop-types":154,"prop-types-extra/lib/isRequiredForA11y":149,"react":321,"uncontrollable":328}],244:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _SafeAnchor = require('./SafeAnchor');
var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* src property that is passed down to the image inside this component
*/
src: _propTypes2.default.string,
/**
* alt property that is passed down to the image inside this component
*/
alt: _propTypes2.default.string,
/**
* href property that is passed down to the image inside this component
*/
href: _propTypes2.default.string,
/**
* onError callback that is passed down to the image inside this component
*/
onError: _propTypes2.default.func,
/**
* onLoad callback that is passed down to the image inside this component
*/
onLoad: _propTypes2.default.func
}; /* eslint-disable jsx-a11y/alt-text */
var Thumbnail = function (_React$Component) {
(0, _inherits3.default)(Thumbnail, _React$Component);
function Thumbnail() {
(0, _classCallCheck3.default)(this, Thumbnail);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Thumbnail.prototype.render = function render() {
var _props = this.props,
src = _props.src,
alt = _props.alt,
onError = _props.onError,
onLoad = _props.onLoad,
className = _props.className,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['src', 'alt', 'onError', 'onLoad', 'className', 'children']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var Component = elementProps.href ? _SafeAnchor2.default : 'div';
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement(
Component,
(0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}),
_react2.default.createElement('img', { src: src, alt: alt, onError: onError, onLoad: onLoad }),
children && _react2.default.createElement(
'div',
{ className: 'caption' },
children
)
);
};
return Thumbnail;
}(_react2.default.Component);
Thumbnail.propTypes = propTypes;
exports.default = (0, _bootstrapUtils.bsClass)('thumbnail', Thumbnail);
module.exports = exports['default'];
},{"./SafeAnchor":235,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"react":321}],245:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _Button = require('./Button');
var _Button2 = _interopRequireDefault(_Button);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* The `<input>` `type`
* @type {[type]}
*/
type: _propTypes2.default.oneOf(['checkbox', 'radio']),
/**
* The HTML input name, used to group like checkboxes or radio buttons together
* semantically
*/
name: _propTypes2.default.string,
/**
* The checked state of the input, managed by `<ToggleButtonGroup>`` automatically
*/
checked: _propTypes2.default.bool,
/**
* The disabled state of both the label and input
*/
disabled: _propTypes2.default.bool,
/**
* [onChange description]
*/
onChange: _propTypes2.default.func,
/**
* The value of the input, and unique identifier in the ToggleButtonGroup
*/
value: _propTypes2.default.any.isRequired
};
var ToggleButton = function (_React$Component) {
(0, _inherits3.default)(ToggleButton, _React$Component);
function ToggleButton() {
(0, _classCallCheck3.default)(this, ToggleButton);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
ToggleButton.prototype.render = function render() {
var _props = this.props,
children = _props.children,
name = _props.name,
checked = _props.checked,
type = _props.type,
onChange = _props.onChange,
value = _props.value,
props = (0, _objectWithoutProperties3.default)(_props, ['children', 'name', 'checked', 'type', 'onChange', 'value']);
var disabled = props.disabled;
return _react2.default.createElement(
_Button2.default,
(0, _extends3.default)({}, props, {
active: !!checked,
componentClass: 'label'
}),
_react2.default.createElement('input', {
name: name,
type: type,
autoComplete: 'off',
value: value,
checked: !!checked,
disabled: !!disabled,
onChange: onChange
}),
children
);
};
return ToggleButton;
}(_react2.default.Component);
ToggleButton.propTypes = propTypes;
exports.default = ToggleButton;
module.exports = exports['default'];
},{"./Button":165,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"prop-types":154,"react":321}],246:[function(require,module,exports){
(function (process){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _invariant = require('invariant');
var _invariant2 = _interopRequireDefault(_invariant);
var _uncontrollable = require('uncontrollable');
var _uncontrollable2 = _interopRequireDefault(_uncontrollable);
var _createChainedFunction = require('./utils/createChainedFunction');
var _createChainedFunction2 = _interopRequireDefault(_createChainedFunction);
var _ValidComponentChildren = require('./utils/ValidComponentChildren');
var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren);
var _ButtonGroup = require('./ButtonGroup');
var _ButtonGroup2 = _interopRequireDefault(_ButtonGroup);
var _ToggleButton = require('./ToggleButton');
var _ToggleButton2 = _interopRequireDefault(_ToggleButton);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* An HTML `<input>` name for each child button.
*
* __Required if `type` is set to `'radio'`__
*/
name: _propTypes2.default.string,
/**
* The value, or array of values, of the active (pressed) buttons
*
* @controllable onChange
*/
value: _propTypes2.default.any,
/**
* Callback fired when a button is pressed, depending on whether the `type`
* is `'radio'` or `'checkbox'`, `onChange` will be called with the value or
* array of active values
*
* @controllable values
*/
onChange: _propTypes2.default.func,
/**
* The input `type` of the rendered buttons, determines the toggle behavior
* of the buttons
*/
type: _propTypes2.default.oneOf(['checkbox', 'radio']).isRequired
};
var defaultProps = {
type: 'radio'
};
var ToggleButtonGroup = function (_React$Component) {
(0, _inherits3.default)(ToggleButtonGroup, _React$Component);
function ToggleButtonGroup() {
(0, _classCallCheck3.default)(this, ToggleButtonGroup);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
ToggleButtonGroup.prototype.getValues = function getValues() {
var value = this.props.value;
return value == null ? [] : [].concat(value);
};
ToggleButtonGroup.prototype.handleToggle = function handleToggle(value) {
var _props = this.props,
type = _props.type,
onChange = _props.onChange;
var values = this.getValues();
var isActive = values.indexOf(value) !== -1;
if (type === 'radio') {
if (!isActive) {
onChange(value);
}
return;
}
if (isActive) {
onChange(values.filter(function (n) {
return n !== value;
}));
} else {
onChange([].concat(values, [value]));
}
};
ToggleButtonGroup.prototype.render = function render() {
var _this2 = this;
var _props2 = this.props,
children = _props2.children,
type = _props2.type,
name = _props2.name,
props = (0, _objectWithoutProperties3.default)(_props2, ['children', 'type', 'name']);
var values = this.getValues();
!(type !== 'radio' || !!name) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'A `name` is required to group the toggle buttons when the `type` ' + 'is set to "radio"') : (0, _invariant2.default)(false) : void 0;
delete props.onChange;
delete props.value;
// the data attribute is required b/c twbs css uses it in the selector
return _react2.default.createElement(
_ButtonGroup2.default,
(0, _extends3.default)({}, props, { 'data-toggle': 'buttons' }),
_ValidComponentChildren2.default.map(children, function (child) {
var _child$props = child.props,
value = _child$props.value,
onChange = _child$props.onChange;
var handler = function handler() {
return _this2.handleToggle(value);
};
return _react2.default.cloneElement(child, {
type: type,
name: child.name || name,
checked: values.indexOf(value) !== -1,
onChange: (0, _createChainedFunction2.default)(onChange, handler)
});
})
);
};
return ToggleButtonGroup;
}(_react2.default.Component);
ToggleButtonGroup.propTypes = propTypes;
ToggleButtonGroup.defaultProps = defaultProps;
var UncontrolledToggleButtonGroup = (0, _uncontrollable2.default)(ToggleButtonGroup, {
value: 'onChange'
});
UncontrolledToggleButtonGroup.Button = _ToggleButton2.default;
exports.default = UncontrolledToggleButtonGroup;
module.exports = exports['default'];
}).call(this,require('_process'))
},{"./ButtonGroup":166,"./ToggleButton":245,"./utils/ValidComponentChildren":253,"./utils/createChainedFunction":256,"_process":334,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"invariant":143,"prop-types":154,"react":321,"uncontrollable":328}],247:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends3 = require('babel-runtime/helpers/extends');
var _extends4 = _interopRequireDefault(_extends3);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _isRequiredForA11y = require('prop-types-extra/lib/isRequiredForA11y');
var _isRequiredForA11y2 = _interopRequireDefault(_isRequiredForA11y);
var _bootstrapUtils = require('./utils/bootstrapUtils');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var propTypes = {
/**
* An html id attribute, necessary for accessibility
* @type {string|number}
* @required
*/
id: (0, _isRequiredForA11y2.default)(_propTypes2.default.oneOfType([_propTypes2.default.string, _propTypes2.default.number])),
/**
* Sets the direction the Tooltip is positioned towards.
*/
placement: _propTypes2.default.oneOf(['top', 'right', 'bottom', 'left']),
/**
* The "top" position value for the Tooltip.
*/
positionTop: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
/**
* The "left" position value for the Tooltip.
*/
positionLeft: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
/**
* The "top" position value for the Tooltip arrow.
*/
arrowOffsetTop: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string]),
/**
* The "left" position value for the Tooltip arrow.
*/
arrowOffsetLeft: _propTypes2.default.oneOfType([_propTypes2.default.number, _propTypes2.default.string])
};
var defaultProps = {
placement: 'right'
};
var Tooltip = function (_React$Component) {
(0, _inherits3.default)(Tooltip, _React$Component);
function Tooltip() {
(0, _classCallCheck3.default)(this, Tooltip);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Tooltip.prototype.render = function render() {
var _extends2;
var _props = this.props,
placement = _props.placement,
positionTop = _props.positionTop,
positionLeft = _props.positionLeft,
arrowOffsetTop = _props.arrowOffsetTop,
arrowOffsetLeft = _props.arrowOffsetLeft,
className = _props.className,
style = _props.style,
children = _props.children,
props = (0, _objectWithoutProperties3.default)(_props, ['placement', 'positionTop', 'positionLeft', 'arrowOffsetTop', 'arrowOffsetLeft', 'className', 'style', 'children']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _extends4.default)({}, (0, _bootstrapUtils.getClassSet)(bsProps), (_extends2 = {}, _extends2[placement] = true, _extends2));
var outerStyle = (0, _extends4.default)({
top: positionTop,
left: positionLeft
}, style);
var arrowStyle = {
top: arrowOffsetTop,
left: arrowOffsetLeft
};
return _react2.default.createElement(
'div',
(0, _extends4.default)({}, elementProps, {
role: 'tooltip',
className: (0, _classnames2.default)(className, classes),
style: outerStyle
}),
_react2.default.createElement('div', { className: (0, _bootstrapUtils.prefix)(bsProps, 'arrow'), style: arrowStyle }),
_react2.default.createElement(
'div',
{ className: (0, _bootstrapUtils.prefix)(bsProps, 'inner') },
children
)
);
};
return Tooltip;
}(_react2.default.Component);
Tooltip.propTypes = propTypes;
Tooltip.defaultProps = defaultProps;
exports.default = (0, _bootstrapUtils.bsClass)('tooltip', Tooltip);
module.exports = exports['default'];
},{"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"prop-types":154,"prop-types-extra/lib/isRequiredForA11y":149,"react":321}],248:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
var _objectWithoutProperties2 = require('babel-runtime/helpers/objectWithoutProperties');
var _objectWithoutProperties3 = _interopRequireDefault(_objectWithoutProperties2);
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _bootstrapUtils = require('./utils/bootstrapUtils');
var _StyleConfig = require('./utils/StyleConfig');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Well = function (_React$Component) {
(0, _inherits3.default)(Well, _React$Component);
function Well() {
(0, _classCallCheck3.default)(this, Well);
return (0, _possibleConstructorReturn3.default)(this, _React$Component.apply(this, arguments));
}
Well.prototype.render = function render() {
var _props = this.props,
className = _props.className,
props = (0, _objectWithoutProperties3.default)(_props, ['className']);
var _splitBsProps = (0, _bootstrapUtils.splitBsProps)(props),
bsProps = _splitBsProps[0],
elementProps = _splitBsProps[1];
var classes = (0, _bootstrapUtils.getClassSet)(bsProps);
return _react2.default.createElement('div', (0, _extends3.default)({}, elementProps, {
className: (0, _classnames2.default)(className, classes)
}));
};
return Well;
}(_react2.default.Component);
exports.default = (0, _bootstrapUtils.bsClass)('well', (0, _bootstrapUtils.bsSizes)([_StyleConfig.Size.LARGE, _StyleConfig.Size.SMALL], Well));
module.exports = exports['default'];
},{"./utils/StyleConfig":251,"./utils/bootstrapUtils":254,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/extends":18,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/objectWithoutProperties":20,"babel-runtime/helpers/possibleConstructorReturn":21,"classnames":110,"react":321}],249:[function(require,module,exports){
'use strict';
exports.__esModule = true;
exports.utils = exports.Well = exports.Tooltip = exports.ToggleButtonGroup = exports.ToggleButton = exports.Thumbnail = exports.Tabs = exports.TabPane = exports.Table = exports.TabContent = exports.TabContainer = exports.Tab = exports.SplitButton = exports.SafeAnchor = exports.Row = exports.ResponsiveEmbed = exports.Radio = exports.ProgressBar = exports.Popover = exports.PanelGroup = exports.Panel = exports.PaginationButton = exports.Pagination = exports.Pager = exports.PageItem = exports.PageHeader = exports.OverlayTrigger = exports.Overlay = exports.NavItem = exports.NavDropdown = exports.NavbarBrand = exports.Navbar = exports.Nav = exports.ModalTitle = exports.ModalHeader = exports.ModalFooter = exports.ModalBody = exports.Modal = exports.MenuItem = exports.Media = exports.ListGroupItem = exports.ListGroup = exports.Label = exports.Jumbotron = exports.InputGroup = exports.Image = exports.HelpBlock = exports.Grid = exports.Glyphicon = exports.FormGroup = exports.FormControl = exports.Form = exports.Fade = exports.DropdownButton = exports.Dropdown = exports.Collapse = exports.Col = exports.ControlLabel = exports.CloseButton = exports.Clearfix = exports.Checkbox = exports.CarouselItem = exports.Carousel = exports.ButtonToolbar = exports.ButtonGroup = exports.Button = exports.BreadcrumbItem = exports.Breadcrumb = exports.Badge = exports.Alert = exports.Accordion = undefined;
var _Accordion2 = require('./Accordion');
var _Accordion3 = _interopRequireDefault(_Accordion2);
var _Alert2 = require('./Alert');
var _Alert3 = _interopRequireDefault(_Alert2);
var _Badge2 = require('./Badge');
var _Badge3 = _interopRequireDefault(_Badge2);
var _Breadcrumb2 = require('./Breadcrumb');
var _Breadcrumb3 = _interopRequireDefault(_Breadcrumb2);
var _BreadcrumbItem2 = require('./BreadcrumbItem');
var _BreadcrumbItem3 = _interopRequireDefault(_BreadcrumbItem2);
var _Button2 = require('./Button');
var _Button3 = _interopRequireDefault(_Button2);
var _ButtonGroup2 = require('./ButtonGroup');
var _ButtonGroup3 = _interopRequireDefault(_ButtonGroup2);
var _ButtonToolbar2 = require('./ButtonToolbar');
var _ButtonToolbar3 = _interopRequireDefault(_ButtonToolbar2);
var _Carousel2 = require('./Carousel');
var _Carousel3 = _interopRequireDefault(_Carousel2);
var _CarouselItem2 = require('./CarouselItem');
var _CarouselItem3 = _interopRequireDefault(_CarouselItem2);
var _Checkbox2 = require('./Checkbox');
var _Checkbox3 = _interopRequireDefault(_Checkbox2);
var _Clearfix2 = require('./Clearfix');
var _Clearfix3 = _interopRequireDefault(_Clearfix2);
var _CloseButton2 = require('./CloseButton');
var _CloseButton3 = _interopRequireDefault(_CloseButton2);
var _ControlLabel2 = require('./ControlLabel');
var _ControlLabel3 = _interopRequireDefault(_ControlLabel2);
var _Col2 = require('./Col');
var _Col3 = _interopRequireDefault(_Col2);
var _Collapse2 = require('./Collapse');
var _Collapse3 = _interopRequireDefault(_Collapse2);
var _Dropdown2 = require('./Dropdown');
var _Dropdown3 = _interopRequireDefault(_Dropdown2);
var _DropdownButton2 = require('./DropdownButton');
var _DropdownButton3 = _interopRequireDefault(_DropdownButton2);
var _Fade2 = require('./Fade');
var _Fade3 = _interopRequireDefault(_Fade2);
var _Form2 = require('./Form');
var _Form3 = _interopRequireDefault(_Form2);
var _FormControl2 = require('./FormControl');
var _FormControl3 = _interopRequireDefault(_FormControl2);
var _FormGroup2 = require('./FormGroup');
var _FormGroup3 = _interopRequireDefault(_FormGroup2);
var _Glyphicon2 = require('./Glyphicon');
var _Glyphicon3 = _interopRequireDefault(_Glyphicon2);
var _Grid2 = require('./Grid');
var _Grid3 = _interopRequireDefault(_Grid2);
var _HelpBlock2 = require('./HelpBlock');
var _HelpBlock3 = _interopRequireDefault(_HelpBlock2);
var _Image2 = require('./Image');
var _Image3 = _interopRequireDefault(_Image2);
var _InputGroup2 = require('./InputGroup');
var _InputGroup3 = _interopRequireDefault(_InputGroup2);
var _Jumbotron2 = require('./Jumbotron');
var _Jumbotron3 = _interopRequireDefault(_Jumbotron2);
var _Label2 = require('./Label');
var _Label3 = _interopRequireDefault(_Label2);
var _ListGroup2 = require('./ListGroup');
var _ListGroup3 = _interopRequireDefault(_ListGroup2);
var _ListGroupItem2 = require('./ListGroupItem');
var _ListGroupItem3 = _interopRequireDefault(_ListGroupItem2);
var _Media2 = require('./Media');
var _Media3 = _interopRequireDefault(_Media2);
var _MenuItem2 = require('./MenuItem');
var _MenuItem3 = _interopRequireDefault(_MenuItem2);
var _Modal2 = require('./Modal');
var _Modal3 = _interopRequireDefault(_Modal2);
var _ModalBody2 = require('./ModalBody');
var _ModalBody3 = _interopRequireDefault(_ModalBody2);
var _ModalFooter2 = require('./ModalFooter');
var _ModalFooter3 = _interopRequireDefault(_ModalFooter2);
var _ModalHeader2 = require('./ModalHeader');
var _ModalHeader3 = _interopRequireDefault(_ModalHeader2);
var _ModalTitle2 = require('./ModalTitle');
var _ModalTitle3 = _interopRequireDefault(_ModalTitle2);
var _Nav2 = require('./Nav');
var _Nav3 = _interopRequireDefault(_Nav2);
var _Navbar2 = require('./Navbar');
var _Navbar3 = _interopRequireDefault(_Navbar2);
var _NavbarBrand2 = require('./NavbarBrand');
var _NavbarBrand3 = _interopRequireDefault(_NavbarBrand2);
var _NavDropdown2 = require('./NavDropdown');
var _NavDropdown3 = _interopRequireDefault(_NavDropdown2);
var _NavItem2 = require('./NavItem');
var _NavItem3 = _interopRequireDefault(_NavItem2);
var _Overlay2 = require('./Overlay');
var _Overlay3 = _interopRequireDefault(_Overlay2);
var _OverlayTrigger2 = require('./OverlayTrigger');
var _OverlayTrigger3 = _interopRequireDefault(_OverlayTrigger2);
var _PageHeader2 = require('./PageHeader');
var _PageHeader3 = _interopRequireDefault(_PageHeader2);
var _PageItem2 = require('./PageItem');
var _PageItem3 = _interopRequireDefault(_PageItem2);
var _Pager2 = require('./Pager');
var _Pager3 = _interopRequireDefault(_Pager2);
var _Pagination2 = require('./Pagination');
var _Pagination3 = _interopRequireDefault(_Pagination2);
var _PaginationButton2 = require('./PaginationButton');
var _PaginationButton3 = _interopRequireDefault(_PaginationButton2);
var _Panel2 = require('./Panel');
var _Panel3 = _interopRequireDefault(_Panel2);
var _PanelGroup2 = require('./PanelGroup');
var _PanelGroup3 = _interopRequireDefault(_PanelGroup2);
var _Popover2 = require('./Popover');
var _Popover3 = _interopRequireDefault(_Popover2);
var _ProgressBar2 = require('./ProgressBar');
var _ProgressBar3 = _interopRequireDefault(_ProgressBar2);
var _Radio2 = require('./Radio');
var _Radio3 = _interopRequireDefault(_Radio2);
var _ResponsiveEmbed2 = require('./ResponsiveEmbed');
var _ResponsiveEmbed3 = _interopRequireDefault(_ResponsiveEmbed2);
var _Row2 = require('./Row');
var _Row3 = _interopRequireDefault(_Row2);
var _SafeAnchor2 = require('./SafeAnchor');
var _SafeAnchor3 = _interopRequireDefault(_SafeAnchor2);
var _SplitButton2 = require('./SplitButton');
var _SplitButton3 = _interopRequireDefault(_SplitButton2);
var _Tab2 = require('./Tab');
var _Tab3 = _interopRequireDefault(_Tab2);
var _TabContainer2 = require('./TabContainer');
var _TabContainer3 = _interopRequireDefault(_TabContainer2);
var _TabContent2 = require('./TabContent');
var _TabContent3 = _interopRequireDefault(_TabContent2);
var _Table2 = require('./Table');
var _Table3 = _interopRequireDefault(_Table2);
var _TabPane2 = require('./TabPane');
var _TabPane3 = _interopRequireDefault(_TabPane2);
var _Tabs2 = require('./Tabs');
var _Tabs3 = _interopRequireDefault(_Tabs2);
var _Thumbnail2 = require('./Thumbnail');
var _Thumbnail3 = _interopRequireDefault(_Thumbnail2);
var _ToggleButton2 = require('./ToggleButton');
var _ToggleButton3 = _interopRequireDefault(_ToggleButton2);
var _ToggleButtonGroup2 = require('./ToggleButtonGroup');
var _ToggleButtonGroup3 = _interopRequireDefault(_ToggleButtonGroup2);
var _Tooltip2 = require('./Tooltip');
var _Tooltip3 = _interopRequireDefault(_Tooltip2);
var _Well2 = require('./Well');
var _Well3 = _interopRequireDefault(_Well2);
var _utils2 = require('./utils');
var _utils = _interopRequireWildcard(_utils2);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.Accordion = _Accordion3.default;
exports.Alert = _Alert3.default;
exports.Badge = _Badge3.default;
exports.Breadcrumb = _Breadcrumb3.default;
exports.BreadcrumbItem = _BreadcrumbItem3.default;
exports.Button = _Button3.default;
exports.ButtonGroup = _ButtonGroup3.default;
exports.ButtonToolbar = _ButtonToolbar3.default;
exports.Carousel = _Carousel3.default;
exports.CarouselItem = _CarouselItem3.default;
exports.Checkbox = _Checkbox3.default;
exports.Clearfix = _Clearfix3.default;
exports.CloseButton = _CloseButton3.default;
exports.ControlLabel = _ControlLabel3.default;
exports.Col = _Col3.default;
exports.Collapse = _Collapse3.default;
exports.Dropdown = _Dropdown3.default;
exports.DropdownButton = _DropdownButton3.default;
exports.Fade = _Fade3.default;
exports.Form = _Form3.default;
exports.FormControl = _FormControl3.default;
exports.FormGroup = _FormGroup3.default;
exports.Glyphicon = _Glyphicon3.default;
exports.Grid = _Grid3.default;
exports.HelpBlock = _HelpBlock3.default;
exports.Image = _Image3.default;
exports.InputGroup = _InputGroup3.default;
exports.Jumbotron = _Jumbotron3.default;
exports.Label = _Label3.default;
exports.ListGroup = _ListGroup3.default;
exports.ListGroupItem = _ListGroupItem3.default;
exports.Media = _Media3.default;
exports.MenuItem = _MenuItem3.default;
exports.Modal = _Modal3.default;
exports.ModalBody = _ModalBody3.default;
exports.ModalFooter = _ModalFooter3.default;
exports.ModalHeader = _ModalHeader3.default;
exports.ModalTitle = _ModalTitle3.default;
exports.Nav = _Nav3.default;
exports.Navbar = _Navbar3.default;
exports.NavbarBrand = _NavbarBrand3.default;
exports.NavDropdown = _NavDropdown3.default;
exports.NavItem = _NavItem3.default;
exports.Overlay = _Overlay3.default;
exports.OverlayTrigger = _OverlayTrigger3.default;
exports.PageHeader = _PageHeader3.default;
exports.PageItem = _PageItem3.default;
exports.Pager = _Pager3.default;
exports.Pagination = _Pagination3.default;
exports.PaginationButton = _PaginationButton3.default;
exports.Panel = _Panel3.default;
exports.PanelGroup = _PanelGroup3.default;
exports.Popover = _Popover3.default;
exports.ProgressBar = _ProgressBar3.default;
exports.Radio = _Radio3.default;
exports.ResponsiveEmbed = _ResponsiveEmbed3.default;
exports.Row = _Row3.default;
exports.SafeAnchor = _SafeAnchor3.default;
exports.SplitButton = _SplitButton3.default;
exports.Tab = _Tab3.default;
exports.TabContainer = _TabContainer3.default;
exports.TabContent = _TabContent3.default;
exports.Table = _Table3.default;
exports.TabPane = _TabPane3.default;
exports.Tabs = _Tabs3.default;
exports.Thumbnail = _Thumbnail3.default;
exports.ToggleButton = _ToggleButton3.default;
exports.ToggleButtonGroup = _ToggleButtonGroup3.default;
exports.Tooltip = _Tooltip3.default;
exports.Well = _Well3.default;
exports.utils = _utils;
},{"./Accordion":160,"./Alert":161,"./Badge":162,"./Breadcrumb":163,"./BreadcrumbItem":164,"./Button":165,"./ButtonGroup":166,"./ButtonToolbar":167,"./Carousel":168,"./CarouselItem":170,"./Checkbox":171,"./Clearfix":172,"./CloseButton":173,"./Col":174,"./Collapse":175,"./ControlLabel":176,"./Dropdown":177,"./DropdownButton":178,"./Fade":181,"./Form":182,"./FormControl":183,"./FormGroup":186,"./Glyphicon":187,"./Grid":188,"./HelpBlock":189,"./Image":190,"./InputGroup":191,"./Jumbotron":194,"./Label":195,"./ListGroup":196,"./ListGroupItem":197,"./Media":198,"./MenuItem":205,"./Modal":206,"./ModalBody":207,"./ModalFooter":209,"./ModalHeader":210,"./ModalTitle":211,"./Nav":212,"./NavDropdown":213,"./NavItem":214,"./Navbar":215,"./NavbarBrand":216,"./Overlay":220,"./OverlayTrigger":221,"./PageHeader":222,"./PageItem":223,"./Pager":224,"./Pagination":226,"./PaginationButton":227,"./Panel":228,"./PanelGroup":229,"./Popover":230,"./ProgressBar":231,"./Radio":232,"./ResponsiveEmbed":233,"./Row":234,"./SafeAnchor":235,"./SplitButton":236,"./Tab":238,"./TabContainer":239,"./TabContent":240,"./TabPane":241,"./Table":242,"./Tabs":243,"./Thumbnail":244,"./ToggleButton":245,"./ToggleButtonGroup":246,"./Tooltip":247,"./Well":248,"./utils":258}],250:[function(require,module,exports){
'use strict';
exports.__esModule = true;
exports.requiredRoles = requiredRoles;
exports.exclusiveRoles = exclusiveRoles;
var _createChainableTypeChecker = require('prop-types-extra/lib/utils/createChainableTypeChecker');
var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker);
var _ValidComponentChildren = require('./ValidComponentChildren');
var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function requiredRoles() {
for (var _len = arguments.length, roles = Array(_len), _key = 0; _key < _len; _key++) {
roles[_key] = arguments[_key];
}
return (0, _createChainableTypeChecker2.default)(function (props, propName, component) {
var missing = void 0;
roles.every(function (role) {
if (!_ValidComponentChildren2.default.some(props.children, function (child) {
return child.props.bsRole === role;
})) {
missing = role;
return false;
}
return true;
});
if (missing) {
return new Error('(children) ' + component + ' - Missing a required child with bsRole: ' + (missing + '. ' + component + ' must have at least one child of each of ') + ('the following bsRoles: ' + roles.join(', ')));
}
return null;
});
}
function exclusiveRoles() {
for (var _len2 = arguments.length, roles = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
roles[_key2] = arguments[_key2];
}
return (0, _createChainableTypeChecker2.default)(function (props, propName, component) {
var duplicate = void 0;
roles.every(function (role) {
var childrenWithRole = _ValidComponentChildren2.default.filter(props.children, function (child) {
return child.props.bsRole === role;
});
if (childrenWithRole.length > 1) {
duplicate = role;
return false;
}
return true;
});
if (duplicate) {
return new Error('(children) ' + component + ' - Duplicate children detected of bsRole: ' + (duplicate + '. Only one child each allowed with the following ') + ('bsRoles: ' + roles.join(', ')));
}
return null;
});
}
},{"./ValidComponentChildren":253,"prop-types-extra/lib/utils/createChainableTypeChecker":150}],251:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var Size = exports.Size = {
LARGE: 'large',
SMALL: 'small',
XSMALL: 'xsmall'
};
var SIZE_MAP = exports.SIZE_MAP = {
large: 'lg',
medium: 'md',
small: 'sm',
xsmall: 'xs',
lg: 'lg',
md: 'md',
sm: 'sm',
xs: 'xs'
};
var DEVICE_SIZES = exports.DEVICE_SIZES = ['lg', 'md', 'sm', 'xs'];
var State = exports.State = {
SUCCESS: 'success',
WARNING: 'warning',
DANGER: 'danger',
INFO: 'info'
};
var Style = exports.Style = {
DEFAULT: 'default',
PRIMARY: 'primary',
LINK: 'link',
INVERSE: 'inverse'
};
},{}],252:[function(require,module,exports){
'use strict';
exports.__esModule = true;
/**
* 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
*/
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) {
// eslint-disable-line guard-for-in
var baseEvents = EVENT_NAME_MAP[baseEventName];
for (var styleName in baseEvents) {
// eslint-disable-line guard-for-in
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);
});
}
};
exports.default = ReactTransitionEvents;
module.exports = exports['default'];
},{}],253:[function(require,module,exports){
'use strict';
exports.__esModule = true;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
/**
* Iterates through children that are typically specified as `props.children`,
* but only maps 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)} func.
* @param {*} context Context for func.
* @return {object} Object containing the ordered map of results.
*/
function map(children, func, context) {
var index = 0;
return _react2.default.Children.map(children, function (child) {
if (!_react2.default.isValidElement(child)) {
return child;
}
return func.call(context, child, index++);
});
}
/**
* Iterates through 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)} func.
* @param {*} context Context for context.
*/
// TODO: This module should be ElementChildren, and should use named exports.
function forEach(children, func, context) {
var index = 0;
_react2.default.Children.forEach(children, function (child) {
if (!_react2.default.isValidElement(child)) {
return;
}
func.call(context, child, index++);
});
}
/**
* Count the number of "valid components" in the Children container.
*
* @param {?*} children Children tree container.
* @returns {number}
*/
function count(children) {
var result = 0;
_react2.default.Children.forEach(children, function (child) {
if (!_react2.default.isValidElement(child)) {
return;
}
++result;
});
return result;
}
/**
* Finds 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)} func.
* @param {*} context Context for func.
* @returns {array} of children that meet the func return statement
*/
function filter(children, func, context) {
var index = 0;
var result = [];
_react2.default.Children.forEach(children, function (child) {
if (!_react2.default.isValidElement(child)) {
return;
}
if (func.call(context, child, index++)) {
result.push(child);
}
});
return result;
}
function find(children, func, context) {
var index = 0;
var result = void 0;
_react2.default.Children.forEach(children, function (child) {
if (result) {
return;
}
if (!_react2.default.isValidElement(child)) {
return;
}
if (func.call(context, child, index++)) {
result = child;
}
});
return result;
}
function every(children, func, context) {
var index = 0;
var result = true;
_react2.default.Children.forEach(children, function (child) {
if (!result) {
return;
}
if (!_react2.default.isValidElement(child)) {
return;
}
if (!func.call(context, child, index++)) {
result = false;
}
});
return result;
}
function some(children, func, context) {
var index = 0;
var result = false;
_react2.default.Children.forEach(children, function (child) {
if (result) {
return;
}
if (!_react2.default.isValidElement(child)) {
return;
}
if (func.call(context, child, index++)) {
result = true;
}
});
return result;
}
function toArray(children) {
var result = [];
_react2.default.Children.forEach(children, function (child) {
if (!_react2.default.isValidElement(child)) {
return;
}
result.push(child);
});
return result;
}
exports.default = {
map: map,
forEach: forEach,
count: count,
find: find,
filter: filter,
every: every,
some: some,
toArray: toArray
};
module.exports = exports['default'];
},{"react":321}],254:[function(require,module,exports){
(function (process){
'use strict';
exports.__esModule = true;
exports._curry = exports.bsSizes = exports.bsStyles = exports.bsClass = undefined;
var _entries = require('babel-runtime/core-js/object/entries');
var _entries2 = _interopRequireDefault(_entries);
var _extends2 = require('babel-runtime/helpers/extends');
var _extends3 = _interopRequireDefault(_extends2);
exports.prefix = prefix;
exports.getClassSet = getClassSet;
exports.splitBsProps = splitBsProps;
exports.splitBsPropsAndOmit = splitBsPropsAndOmit;
exports.addStyle = addStyle;
var _invariant = require('invariant');
var _invariant2 = _interopRequireDefault(_invariant);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _StyleConfig = require('./StyleConfig');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function curry(fn) {
return function () {
for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
var last = args[args.length - 1];
if (typeof last === 'function') {
return fn.apply(undefined, args);
}
return function (Component) {
return fn.apply(undefined, args.concat([Component]));
};
};
} // TODO: The publicly exposed parts of this should be in lib/BootstrapUtils.
function prefix(props, variant) {
!(props.bsClass != null) ? process.env.NODE_ENV !== 'production' ? (0, _invariant2.default)(false, 'A `bsClass` prop is required for this component') : (0, _invariant2.default)(false) : void 0;
return props.bsClass + (variant ? '-' + variant : '');
}
var bsClass = exports.bsClass = curry(function (defaultClass, Component) {
var propTypes = Component.propTypes || (Component.propTypes = {});
var defaultProps = Component.defaultProps || (Component.defaultProps = {});
propTypes.bsClass = _propTypes2.default.string;
defaultProps.bsClass = defaultClass;
return Component;
});
var bsStyles = exports.bsStyles = curry(function (styles, defaultStyle, Component) {
if (typeof defaultStyle !== 'string') {
Component = defaultStyle;
defaultStyle = undefined;
}
var existing = Component.STYLES || [];
var propTypes = Component.propTypes || {};
styles.forEach(function (style) {
if (existing.indexOf(style) === -1) {
existing.push(style);
}
});
var propType = _propTypes2.default.oneOf(existing);
// expose the values on the propType function for documentation
Component.STYLES = existing;
propType._values = existing;
Component.propTypes = (0, _extends3.default)({}, propTypes, {
bsStyle: propType
});
if (defaultStyle !== undefined) {
var defaultProps = Component.defaultProps || (Component.defaultProps = {});
defaultProps.bsStyle = defaultStyle;
}
return Component;
});
var bsSizes = exports.bsSizes = curry(function (sizes, defaultSize, Component) {
if (typeof defaultSize !== 'string') {
Component = defaultSize;
defaultSize = undefined;
}
var existing = Component.SIZES || [];
var propTypes = Component.propTypes || {};
sizes.forEach(function (size) {
if (existing.indexOf(size) === -1) {
existing.push(size);
}
});
var values = [];
existing.forEach(function (size) {
var mappedSize = _StyleConfig.SIZE_MAP[size];
if (mappedSize && mappedSize !== size) {
values.push(mappedSize);
}
values.push(size);
});
var propType = _propTypes2.default.oneOf(values);
propType._values = values;
// expose the values on the propType function for documentation
Component.SIZES = existing;
Component.propTypes = (0, _extends3.default)({}, propTypes, {
bsSize: propType
});
if (defaultSize !== undefined) {
if (!Component.defaultProps) {
Component.defaultProps = {};
}
Component.defaultProps.bsSize = defaultSize;
}
return Component;
});
function getClassSet(props) {
var _classes;
var classes = (_classes = {}, _classes[prefix(props)] = true, _classes);
if (props.bsSize) {
var bsSize = _StyleConfig.SIZE_MAP[props.bsSize] || props.bsSize;
classes[prefix(props, bsSize)] = true;
}
if (props.bsStyle) {
classes[prefix(props, props.bsStyle)] = true;
}
return classes;
}
function getBsProps(props) {
return {
bsClass: props.bsClass,
bsSize: props.bsSize,
bsStyle: props.bsStyle,
bsRole: props.bsRole
};
}
function isBsProp(propName) {
return propName === 'bsClass' || propName === 'bsSize' || propName === 'bsStyle' || propName === 'bsRole';
}
function splitBsProps(props) {
var elementProps = {};
(0, _entries2.default)(props).forEach(function (_ref) {
var propName = _ref[0],
propValue = _ref[1];
if (!isBsProp(propName)) {
elementProps[propName] = propValue;
}
});
return [getBsProps(props), elementProps];
}
function splitBsPropsAndOmit(props, omittedPropNames) {
var isOmittedProp = {};
omittedPropNames.forEach(function (propName) {
isOmittedProp[propName] = true;
});
var elementProps = {};
(0, _entries2.default)(props).forEach(function (_ref2) {
var propName = _ref2[0],
propValue = _ref2[1];
if (!isBsProp(propName) && !isOmittedProp[propName]) {
elementProps[propName] = propValue;
}
});
return [getBsProps(props), elementProps];
}
/**
* Add a style variant to a Component. Mutates the propTypes of the component
* in order to validate the new variant.
*/
function addStyle(Component) {
for (var _len2 = arguments.length, styleVariant = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
styleVariant[_key2 - 1] = arguments[_key2];
}
bsStyles(styleVariant, Component);
}
var _curry = exports._curry = curry;
}).call(this,require('_process'))
},{"./StyleConfig":251,"_process":334,"babel-runtime/core-js/object/entries":12,"babel-runtime/helpers/extends":18,"invariant":143,"prop-types":154}],255:[function(require,module,exports){
"use strict";
exports.__esModule = true;
exports.default = capitalize;
function capitalize(string) {
return "" + string.charAt(0).toUpperCase() + string.slice(1);
}
module.exports = exports["default"];
},{}],256:[function(require,module,exports){
'use strict';
exports.__esModule = true;
/**
* Safe chained function
*
* Will only create a new function if needed,
* otherwise will pass back existing functions or null.
*
* @param {function} functions to chain
* @returns {function|null}
*/
function createChainedFunction() {
for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {
funcs[_key] = arguments[_key];
}
return funcs.filter(function (f) {
return f != null;
}).reduce(function (acc, f) {
if (typeof f !== 'function') {
throw new Error('Invalid Argument Type, must only provide functions, undefined, or null.');
}
if (acc === null) {
return f;
}
return function chainedFunction() {
for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
acc.apply(this, args);
f.apply(this, args);
};
}, null);
}
exports.default = createChainedFunction;
module.exports = exports['default'];
},{}],257:[function(require,module,exports){
(function (process){
'use strict';
exports.__esModule = true;
var _classCallCheck2 = require('babel-runtime/helpers/classCallCheck');
var _classCallCheck3 = _interopRequireDefault(_classCallCheck2);
var _possibleConstructorReturn2 = require('babel-runtime/helpers/possibleConstructorReturn');
var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2);
var _inherits2 = require('babel-runtime/helpers/inherits');
var _inherits3 = _interopRequireDefault(_inherits2);
var _typeof2 = require('babel-runtime/helpers/typeof');
var _typeof3 = _interopRequireDefault(_typeof2);
exports._resetWarned = _resetWarned;
var _warning = require('warning');
var _warning2 = _interopRequireDefault(_warning);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var warned = {};
function deprecationWarning(oldname, newname, link) {
var message = void 0;
if ((typeof oldname === 'undefined' ? 'undefined' : (0, _typeof3.default)(oldname)) === 'object') {
message = oldname.message;
} else {
message = oldname + ' is deprecated. Use ' + newname + ' instead.';
if (link) {
message += '\nYou can read more about it at ' + link;
}
}
if (warned[message]) {
return;
}
process.env.NODE_ENV !== 'production' ? (0, _warning2.default)(false, message) : void 0;
warned[message] = true;
}
deprecationWarning.wrapper = function (Component) {
for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
args[_key - 1] = arguments[_key];
}
return function (_Component) {
(0, _inherits3.default)(DeprecatedComponent, _Component);
function DeprecatedComponent() {
(0, _classCallCheck3.default)(this, DeprecatedComponent);
return (0, _possibleConstructorReturn3.default)(this, _Component.apply(this, arguments));
}
DeprecatedComponent.prototype.componentWillMount = function componentWillMount() {
deprecationWarning.apply(undefined, args);
if (_Component.prototype.componentWillMount) {
var _Component$prototype$;
for (var _len2 = arguments.length, methodArgs = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
methodArgs[_key2] = arguments[_key2];
}
(_Component$prototype$ = _Component.prototype.componentWillMount).call.apply(_Component$prototype$, [this].concat(methodArgs));
}
};
return DeprecatedComponent;
}(Component);
};
exports.default = deprecationWarning;
function _resetWarned() {
warned = {};
}
}).call(this,require('_process'))
},{"_process":334,"babel-runtime/helpers/classCallCheck":17,"babel-runtime/helpers/inherits":19,"babel-runtime/helpers/possibleConstructorReturn":21,"babel-runtime/helpers/typeof":22,"warning":330}],258:[function(require,module,exports){
'use strict';
exports.__esModule = true;
exports.ValidComponentChildren = exports.createChainedFunction = exports.bootstrapUtils = undefined;
var _bootstrapUtils2 = require('./bootstrapUtils');
var _bootstrapUtils = _interopRequireWildcard(_bootstrapUtils2);
var _createChainedFunction2 = require('./createChainedFunction');
var _createChainedFunction3 = _interopRequireDefault(_createChainedFunction2);
var _ValidComponentChildren2 = require('./ValidComponentChildren');
var _ValidComponentChildren3 = _interopRequireDefault(_ValidComponentChildren2);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
exports.bootstrapUtils = _bootstrapUtils;
exports.createChainedFunction = _createChainedFunction3.default;
exports.ValidComponentChildren = _ValidComponentChildren3.default;
},{"./ValidComponentChildren":253,"./bootstrapUtils":254,"./createChainedFunction":256}],259:[function(require,module,exports){
"use strict";
exports.__esModule = true;
var _entries = require("babel-runtime/core-js/object/entries");
var _entries2 = _interopRequireDefault(_entries);
exports.default = splitComponentProps;
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function splitComponentProps(props, Component) {
var componentPropTypes = Component.propTypes;
var parentProps = {};
var childProps = {};
(0, _entries2.default)(props).forEach(function (_ref) {
var propName = _ref[0],
propValue = _ref[1];
if (componentPropTypes[propName]) {
parentProps[propName] = propValue;
} else {
childProps[propName] = propValue;
}
});
return [parentProps, childProps];
}
module.exports = exports["default"];
},{"babel-runtime/core-js/object/entries":12}],260:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _class; /*
* The Column component
* divides Rows into fractions
*/
/*
* A patch:
* shouldComponentUpdate() can block context updates
* so we need to add a fallback method for
* updating interested components.
* When React offers a better way, this should be removed
*/
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _validators = require('./util/validators');
var _constants = require('./util/constants');
var _context = require('./util/context');
var _context2 = _interopRequireDefault(_context);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _cellblock = require('cellblock');
var _cellblock2 = _interopRequireDefault(_cellblock);
var _handleStaleContext = require('./util/handleStaleContext');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(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) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
// apply patch
var Column = (0, _handleStaleContext.forceContext)(_class = function (_Component) {
_inherits(Column, _Component);
function Column() {
_classCallCheck(this, Column);
return _possibleConstructorReturn(this, (Column.__proto__ || Object.getPrototypeOf(Column)).apply(this, arguments));
}
_createClass(Column, [{
key: 'getChildContext',
value: function getChildContext() {
return {
cellblockColumn: this.grid,
cellblockBreak: this.props.breakCount || this.context.cellblockBreak
};
}
}, {
key: 'componentWillMount',
value: function componentWillMount() {
var cellblockColumn = this.context.cellblockColumn;
if (cellblockColumn) {
this.grid = (0, _cellblock2.default)(cellblockColumn, this.props.width);
} else {
this.grid = (0, _cellblock2.default)();
}
}
}, {
key: 'componentWillUpdate',
value: function componentWillUpdate(_ref) {
var width = _ref.width;
this.grid.setWidth(width);
}
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {
this.grid.detach();
}
}, {
key: 'render',
value: function render() {
if (this.props.isRoot) {
return _react2.default.createElement(
'div',
{ className: (0, _classnames2.default)(_constants.GRID, this.props.className) },
this.props.children
);
}
var className = (0, _classnames2.default)(_constants.COL, this.props.className);
var width = this.grid.getFraction();
var offset = this.props.offset;
var style = {};
if (offset) style.marginLeft = fractionToPercent(offset);
style.width = decimalToPercent(width[0] / width[1]);
return _react2.default.createElement(
'div',
{ className: className, style: style },
this.props.children
);
}
}]);
return Column;
}(_react.Component)) || _class;
function fractionToPercent(v) {
var f = v.split('/');
return decimalToPercent(parseInt(f[0]) / parseInt(f[1]));
}
function decimalToPercent(v) {
return parseFloat((v * 100).toFixed(4)) + '%';
}
Column.childContextTypes = _context2.default;
Column.contextTypes = _context2.default;
Column.propTypes = {
breakCount: _propTypes2.default.number,
children: _propTypes2.default.any,
className: _propTypes2.default.string,
isRoot: _propTypes2.default.bool,
offset: _validators.gridFraction,
viewport: _propTypes2.default.array,
width: _validators.gridFraction
};
exports.default = Column;
},{"./util/constants":266,"./util/context":267,"./util/handleStaleContext":269,"./util/validators":270,"cellblock":109,"classnames":110,"prop-types":154,"react":321}],261:[function(require,module,exports){
(function (global){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _Column = require('./Column');
var _Column2 = _interopRequireDefault(_Column);
var _Style = require('./util/Style');
var _Style2 = _interopRequireDefault(_Style);
var _eventlistener = require('eventlistener');
var _eventlistener2 = _interopRequireDefault(_eventlistener);
var _context = require('./util/context');
var _context2 = _interopRequireDefault(_context);
var _getThreshold = require('./util/getThreshold');
var _getThreshold2 = _interopRequireDefault(_getThreshold);
var _validators = require('./util/validators');
var _handleStaleContext = require('./util/handleStaleContext');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(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) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /*
* The top level Grid component
* Only used once per page
*/
/*
* A patch:
* shouldComponentUpdate() can block context updates
* so we need to add a fallback method for
* updating interested components.
* When React offers a better way, this should be removed
*/
var breakCount = 0; // everytime grid changes, increment so we can check for staleness
var gridId = 0; // every grid gets it's own id
var Grid = function (_Component) {
_inherits(Grid, _Component);
function Grid(props) {
_classCallCheck(this, Grid);
var _this = _possibleConstructorReturn(this, (Grid.__proto__ || Object.getPrototypeOf(Grid)).call(this, props));
_this.syncGrid = _this.syncGrid.bind(_this);
_this.updateGrid = _this.updateGrid.bind(_this);
_this.gridId = gridId++;
_this._eventListener = Grid._eventListener || _eventlistener2.default;
_this.state = {
breakpoint: _this.props.initialBreakpoint
};
return _this;
}
_createClass(Grid, [{
key: 'getChildContext',
value: function getChildContext() {
var props = this.props;
var getViewport = function () {
return [this.state.breakpoint, this.getMaxBreatPoint(this.state.breakpoint)];
}.bind(this);
return {
cellblockGet: function cellblockGet(key) {
switch (key) {
case 'gutterWidth':
return props.gutterWidth;
case 'columnWidth':
return props.columnWidth;
case 'viewport':
return getViewport();
}
}
};
}
}, {
key: 'componentWillMount',
value: function componentWillMount() {
var _props = this.props,
breakpoints = _props.breakpoints,
columnWidth = _props.columnWidth,
gutterWidth = _props.gutterWidth;
var thresholds = breakpoints.map(function (p) {
return p * columnWidth + p * gutterWidth;
});
var breakpoint = this.state.breakpoint || this.props.breakpoints[(0, _getThreshold2.default)(thresholds)];
this.setState({
breakpoint: breakpoint,
thresholds: thresholds,
breakCount: 0 });
}
}, {
key: 'componentDidMount',
value: function componentDidMount() {
this.syncGrid(true);
this._eventListener.add(global.window, 'resize', this.syncGrid);
}
}, {
key: 'componentWillUnmount',
value: function componentWillUnmount() {
this._eventListener.remove(global.window, 'resize', this.syncGrid);
}
}, {
key: 'getMaxBreatPoint',
value: function getMaxBreatPoint(minBreakpoint) {
var _props2 = this.props,
breakpoints = _props2.breakpoints,
flexible = _props2.flexible;
if (!flexible || Array.isArray(flexible) && flexible.indexOf(minBreakpoint) === -1) {
return minBreakpoint;
} else {
var nextPoint = breakpoints[breakpoints.indexOf(minBreakpoint) + 1];
return nextPoint || breakpoints[breakpoints.length - 1];
}
}
}, {
key: 'syncGrid',
value: function syncGrid(triggerChange) {
var b = this.props.breakpoints[(0, _getThreshold2.default)(this.state.thresholds)];
var isChange = b !== this.state.breakpoint;
if (isChange) this.updateGrid(b);
if (isChange || triggerChange === true) this.props.onChange(b);
}
}, {
key: 'updateGrid',
value: function updateGrid(b) {
breakCount = breakCount += 1; // This is for the patch
this.setState({
breakpoint: b,
breakCount: breakCount // This is for the patch
});
(0, _handleStaleContext.updateObservers)(breakCount); // This is for the patch
}
}, {
key: 'render',
value: function render() {
var _state = this.state,
breakpoint = _state.breakpoint,
breakCount = _state.breakCount;
var _props3 = this.props,
_props3$className = _props3.className,
className = _props3$className === undefined ? '' : _props3$className,
gutterWidth = _props3.gutterWidth,
children = _props3.children;
var gridClass = 'cbg-' + this.gridId;
var uniqueClass = className + ' ' + gridClass;
var breakPointRange = [breakpoint, this.getMaxBreatPoint(breakpoint)];
return _react2.default.createElement(
_Column2.default,
{ isRoot: true, viewport: breakPointRange, breakCount: breakCount, className: uniqueClass },
_react2.default.createElement(_Style2.default, { ctx: gridClass, gutter: gutterWidth }),
children
);
}
}]);
return Grid;
}(_react.Component);
Grid.childContextTypes = _context2.default;
Grid.propTypes = {
breakpoints: _validators.validBreakpoints,
children: _propTypes2.default.any,
className: _propTypes2.default.string,
columnWidth: _propTypes2.default.number,
flexible: _propTypes2.default.oneOfType([_propTypes2.default.bool, _propTypes2.default.array]),
gutterWidth: _propTypes2.default.number,
initialBreakpoint: _validators.validBreakpoint,
onChange: _propTypes2.default.func
};
Grid.defaultProps = {
onChange: function onChange() {},
columnWidth: 60,
gutterWidth: 20,
breakpoints: [4, 8, 12, 16],
flexible: [4]
};
exports.default = Grid;
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{"./Column":260,"./util/Style":265,"./util/context":267,"./util/getThreshold":268,"./util/handleStaleContext":269,"./util/validators":270,"eventlistener":141,"prop-types":154,"react":321}],262:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
var _class; /*
* The Row component
* Used inside Grid or Inside Column
* Creates a place to nest Columns
*/
/*
* A patch:
* shouldComponentUpdate() can block context updates
* so we need to add a fallback method for
* updating interested components.
* When React offers a better way, this should be removed
*/
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _context2 = require('./util/context');
var _context3 = _interopRequireDefault(_context2);
var _classnames = require('classnames');
var _classnames2 = _interopRequireDefault(_classnames);
var _constants = require('./util/constants');
var _handleStaleContext = require('./util/handleStaleContext');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(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) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
// apply patch
var Row = (0, _handleStaleContext.forceContext)(_class = function (_Component) {
_inherits(Row, _Component);
function Row() {
_classCallCheck(this, Row);
return _possibleConstructorReturn(this, (Row.__proto__ || Object.getPrototypeOf(Row)).apply(this, arguments));
}
_createClass(Row, [{
key: 'getChildContext',
value: function getChildContext() {
return {
cellblock: true
};
}
}, {
key: 'render',
value: function render() {
var _context = this.context,
cellblock = _context.cellblock,
cellblockGet = _context.cellblockGet,
cellblockViewport = _context.cellblockViewport;
var v = cellblockGet('viewport')[1];
var c = cellblockGet('columnWidth');
var g = cellblockGet('gutterWidth');
var style = cellblock ? null : {
maxWidth: v * c + v * g
};
return _react2.default.createElement(
'div',
{ className: (0, _classnames2.default)(_constants.ROW, this.props.className), style: style },
this.props.children
);
}
}]);
return Row;
}(_react.Component)) || _class;
Row.childContextTypes = _context3.default;
Row.contextTypes = _context3.default;
Row.propTypes = {
children: _propTypes2.default.any,
className: _propTypes2.default.string
};
exports.default = Row;
},{"./util/constants":266,"./util/context":267,"./util/handleStaleContext":269,"classnames":110,"prop-types":154,"react":321}],263:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _Grid = require('./Grid');
Object.defineProperty(exports, 'Grid', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_Grid).default;
}
});
var _Row = require('./Row');
Object.defineProperty(exports, 'Row', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_Row).default;
}
});
var _Column = require('./Column');
Object.defineProperty(exports, 'Column', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_Column).default;
}
});
var _observeGrid = require('./observeGrid');
Object.defineProperty(exports, 'observeGrid', {
enumerable: true,
get: function get() {
return _interopRequireDefault(_observeGrid).default;
}
});
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
},{"./Column":260,"./Grid":261,"./Row":262,"./observeGrid":264}],264:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: 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 _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
exports.default = observeGrid;
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _context2 = require('./util/context');
var _context3 = _interopRequireDefault(_context2);
var _handleStaleContext = require('./util/handleStaleContext');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; }
function _inherits(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) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } /*
* Higher order component
* allows you to build your responsive components
*/
/*
* A patch:
* shouldComponentUpdate() can block context updates
* so we need to add a fallback method for
* updating interested components.
* When React offers a better way, this should be removed
*/
// apply patch
function observeGrid(DumbComponent) {
var _class;
var Wrapped = (0, _handleStaleContext.forceContext)(_class = function (_Component) {
_inherits(Wrapped, _Component);
function Wrapped() {
_classCallCheck(this, Wrapped);
return _possibleConstructorReturn(this, (Wrapped.__proto__ || Object.getPrototypeOf(Wrapped)).apply(this, arguments));
}
_createClass(Wrapped, [{
key: 'render',
value: function render() {
var _context = this.context,
cellblockColumn = _context.cellblockColumn,
cellblockGet = _context.cellblockGet;
var v = cellblockGet('viewport');
var c = cellblockGet('columnWidth');
var g = cellblockGet('gutterWidth');
return _react2.default.createElement(DumbComponent, _extends({
breakpoint: v[0],
colWidth: cellblockColumn.getWidth(v[0], 0),
colMinPixelWidth: cellblockColumn.getWidth(v[0] * c + v[0] * g - g, g),
colMaxPixelWidth: cellblockColumn.getWidth(v[1] * c + v[1] * g - g, g)
}, this.props));
}
}]);
return Wrapped;
}(_react.Component)) || _class;
Wrapped.displayName = 'observeGrid(' + (DumbComponent.displayName || DumbComponent.name) + ')';
Wrapped.contextTypes = _context3.default;
return Wrapped;
}
},{"./util/context":267,"./util/handleStaleContext":269,"react":321}],265:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _react = require('react');
var _react2 = _interopRequireDefault(_react);
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
var _constants = require('./constants');
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var Style = function Style(props) {
var ctx = props.ctx;
var gutter = props.gutter / 2;
var style = '\n .' + ctx + ' .' + _constants.ROW + ':after, .' + ctx + ' .' + _constants.COL + ':after{content:\'\';display:block;height:0;visibility:hidden;clear:both;}\n .' + ctx + ' .' + _constants.ROW + '{margin-left:auto;margin-right:auto;width:100%;}\n .' + ctx + ' .' + _constants.COL + '{box-sizing:border-box;width:100%;max-width:100%;float:left;min-height:1px;}\n .' + ctx + ' .' + _constants.COL + '{padding-left:' + gutter + 'px;padding-right:' + gutter + 'px;}\n .' + ctx + ' .' + _constants.COL + ' .' + _constants.ROW + '{margin-left:-' + gutter + 'px;margin-right:-' + gutter + 'px;width:auto;}\n ';
return _react2.default.createElement('style', { dangerouslySetInnerHTML: { __html: style } });
};
Style.propTypes = {
ctx: _propTypes2.default.string,
gutter: _propTypes2.default.number
};
exports.default = Style;
},{"./constants":266,"prop-types":154,"react":321}],266:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var ROW = exports.ROW = 'cb-row';
var COL = exports.COL = 'cb-col';
var GRID = exports.GRID = 'cb-grid';
},{}],267:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
exports.default = {
cellblock: _propTypes2.default.bool,
cellblockGet: _propTypes2.default.func,
cellblockColumn: _propTypes2.default.object,
cellblockBreak: _propTypes2.default.number // purely to identify staleness
};
},{"prop-types":154}],268:[function(require,module,exports){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = getThreshold;
function getThreshold(thresholds) {
/* eslint-disable no-empty */
var width = getWindowWidth();
var b = thresholds.length;
while (--b && width < thresholds[b]) {}
return b;
}
// using documentElement because
// clientWidth doesnt subtract the scroll bar
function getWindowWidth() {
if (typeof window === 'undefined') return Infinity;
return document.documentElement.clientWidth || document.getElementsByTagName('body')[0].clientWidth;
}
},{}],269:[function(require,module,exports){
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.forceContext = forceContext;
exports.updateObservers = updateObservers;
/*
* This is a temporary fix for when shouldComponentUpdate()
* makes the context stale.
* For reference check out react issue https://github.com/facebook/react/issues/2517
*/
var observerId = 0;
var observers = {};
function forceContext(Component) {
var componentWillUnmount = Component.prototype.componentWillUnmount;
Component.prototype.componentDidMount = function () {
var _this = this;
// if (componentDidMount) componentDidMount.apply(this, arguments); // nothing uses this at the moment
if (this.props.isRoot) return;
this.observerId = observerId++;
observers[this.observerId] = function (newBreak) {
/*
* If the context appears stale
* force an update
*/
if (_this.context.cellblockBreak !== newBreak) {
_this.forceUpdate();
}
};
};
Component.prototype.componentWillUnmount = function () {
if (componentWillUnmount) componentWillUnmount.apply(this, arguments);
delete observers[this.observerId];
};
return Component;
}
function updateObservers(newBreakpoint) {
for (var o in observers) {
observers[o](newBreakpoint);
}
}
},{}],270:[function(require,module,exports){
(function (global){
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.gridFraction = gridFraction;
exports.validBreakpoint = validBreakpoint;
exports.validBreakpoints = validBreakpoints;
var _propTypes = require('prop-types');
var _propTypes2 = _interopRequireDefault(_propTypes);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var FRACTION_RE = /^\d+\/\d+$/;
function gridFraction(props, propName, componentName) {
var value = props[propName];
if (props[propName] && !isFraction(value)) {
return createError(props, propName, componentName, 'expected a fraction string `a/b` (ie: 2/3)');
}
}
function validBreakpoint(props, propName) {
if (typeof global.window === 'undefined' && !props[propName]) {
return new Error('Isomorphic grids require an initialBreakpoint');
} else if (typeof props[propName] === 'undefined') {
// don't require a breakpoint
return null;
}
return props.breakpoints && props.breakpoints.includes(props[propName]) ? null : new Error('expected a valid breakpoint');
}
function validBreakpoints(props, propName, componentName) {
switch (true) {
case !Array.isArray(props[propName]) || !isAllIntegers(props[propName]):
return createError(props, propName, componentName, 'expected an array of integers');
case !isSorted(props[propName]):
return createError(props, propName, componentName, 'expected ascending order');
}
}
function createError(props, propName, componentName, message) {
var str = 'Invalid prop ' + propName + ' of value ' + props[propName] + ' supplied to ' + componentName;
return new Error(str + ', ' + message);
}
function isString(v) {
return typeof v === 'string';
}
function isNumber(v) {
return typeof v === 'number';
}
function isFraction(v) {
return isString(v) && FRACTION_RE.test(v);
}
function isInteger(v) {
return isNumber(v) && v % 1 === 0;
}
function isSorted(arr) {
for (var i = 0; i < arr.length - 1; i += 1) {
if (arr[i] > arr[i + 1]) return false;
}
return true;
}
function isAllIntegers(arr) {
for (var i = 0; i < arr.length; i += 1) {
if (!isInteger(arr[i])) return false;
}
return true;
}
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
},{"prop-types":154}],271:[function(require,module,exports){
(function (process){
/** @license React v16.0.0
* react-dom.development.js
*
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
'use strict';
if (process.env.NODE_ENV !== "production") {
(function() {
'use strict';
var react = require('react');
var invariant = require('fbjs/lib/invariant');
var ExecutionEnvironment = require('fbjs/lib/ExecutionEnvironment');
var _assign = require('object-assign');
var EventListener = require('fbjs/lib/EventListener');
var require$$0 = require('fbjs/lib/warning');
var hyphenateStyleName = require('fbjs/lib/hyphenateStyleName');
var emptyFunction = require('fbjs/lib/emptyFunction');
var camelizeStyleName = require('fbjs/lib/camelizeStyleName');
var performanceNow = require('fbjs/lib/performanceNow');
var propTypes = require('prop-types');
var emptyObject = require('fbjs/lib/emptyObject');
var checkPropTypes = require('prop-types/checkPropTypes');
var shallowEqual = require('fbjs/lib/shallowEqual');
var containsNode = require('fbjs/lib/containsNode');
var focusNode = require('fbjs/lib/focusNode');
var getActiveElement = require('fbjs/lib/getActiveElement');
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule reactProdInvariant
*
*/
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule checkReact
*
*/
!react ? invariant(false, 'ReactDOM was loaded before React. Make sure you load the React package before loading ReactDOM.') : void 0;
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule DOMNamespaces
*/
var HTML_NAMESPACE = 'http://www.w3.org/1999/xhtml';
var MATH_NAMESPACE = 'http://www.w3.org/1998/Math/MathML';
var SVG_NAMESPACE = 'http://www.w3.org/2000/svg';
var Namespaces = {
html: HTML_NAMESPACE,
mathml: MATH_NAMESPACE,
svg: SVG_NAMESPACE
};
// Assumes there is no parent namespace.
function getIntrinsicNamespace(type) {
switch (type) {
case 'svg':
return SVG_NAMESPACE;
case 'math':
return MATH_NAMESPACE;
default:
return HTML_NAMESPACE;
}
}
function getChildNamespace$1(parentNamespace, type) {
if (parentNamespace == null || parentNamespace === HTML_NAMESPACE) {
// No (or default) parent namespace: potential entry point.
return getIntrinsicNamespace(type);
}
if (parentNamespace === SVG_NAMESPACE && type === 'foreignObject') {
// We're leaving SVG.
return HTML_NAMESPACE;
}
// By default, pass namespace below.
return parentNamespace;
}
var Namespaces_1 = Namespaces;
var getIntrinsicNamespace_1 = getIntrinsicNamespace;
var getChildNamespace_1 = getChildNamespace$1;
var DOMNamespaces = {
Namespaces: Namespaces_1,
getIntrinsicNamespace: getIntrinsicNamespace_1,
getChildNamespace: getChildNamespace_1
};
/**
* Injectable ordering of event plugins.
*/
var eventPluginOrder = null;
/**
* Injectable mapping from names to event plugin modules.
*/
var namesToPlugins = {};
/**
* Recomputes the plugin list using the injected plugins and plugin ordering.
*
* @private
*/
function recomputePluginOrdering() {
if (!eventPluginOrder) {
// Wait until an `eventPluginOrder` is injected.
return;
}
for (var pluginName in namesToPlugins) {
var pluginModule = namesToPlugins[pluginName];
var pluginIndex = eventPluginOrder.indexOf(pluginName);
!(pluginIndex > -1) ? invariant(false, 'EventPluginRegistry: Cannot inject event plugins that do not exist in the plugin ordering, `%s`.', pluginName) : void 0;
if (EventPluginRegistry.plugins[pluginIndex]) {
continue;
}
!pluginModule.extractEvents ? invariant(false, 'EventPluginRegistry: Event plugins must implement an `extractEvents` method, but `%s` does not.', pluginName) : void 0;
EventPluginRegistry.plugins[pluginIndex] = pluginModule;
var publishedEvents = pluginModule.eventTypes;
for (var eventName in publishedEvents) {
!publishEventForPlugin(publishedEvents[eventName], pluginModule, eventName) ? invariant(false, 'EventPluginRegistry: Failed to publish event `%s` for plugin `%s`.', eventName, pluginName) : void 0;
}
}
}
/**
* Publishes an event so that it can be dispatched by the supplied plugin.
*
* @param {object} dispatchConfig Dispatch configuration for the event.
* @param {object} PluginModule Plugin publishing the event.
* @return {boolean} True if the event was successfully published.
* @private
*/
function publishEventForPlugin(dispatchConfig, pluginModule, eventName) {
!!EventPluginRegistry.eventNameDispatchConfigs.hasOwnProperty(eventName) ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same event name, `%s`.', eventName) : void 0;
EventPluginRegistry.eventNameDispatchConfigs[eventName] = dispatchConfig;
var phasedRegistrationNames = dispatchConfig.phasedRegistrationNames;
if (phasedRegistrationNames) {
for (var phaseName in phasedRegistrationNames) {
if (phasedRegistrationNames.hasOwnProperty(phaseName)) {
var phasedRegistrationName = phasedRegistrationNames[phaseName];
publishRegistrationName(phasedRegistrationName, pluginModule, eventName);
}
}
return true;
} else if (dispatchConfig.registrationName) {
publishRegistrationName(dispatchConfig.registrationName, pluginModule, eventName);
return true;
}
return false;
}
/**
* Publishes a registration name that is used to identify dispatched events.
*
* @param {string} registrationName Registration name to add.
* @param {object} PluginModule Plugin publishing the event.
* @private
*/
function publishRegistrationName(registrationName, pluginModule, eventName) {
!!EventPluginRegistry.registrationNameModules[registrationName] ? invariant(false, 'EventPluginHub: More than one plugin attempted to publish the same registration name, `%s`.', registrationName) : void 0;
EventPluginRegistry.registrationNameModules[registrationName] = pluginModule;
EventPluginRegistry.registrationNameDependencies[registrationName] = pluginModule.eventTypes[eventName].dependencies;
{
var lowerCasedName = registrationName.toLowerCase();
EventPluginRegistry.possibleRegistrationNames[lowerCasedName] = registrationName;
if (registrationName === 'onDoubleClick') {
EventPluginRegistry.possibleRegistrationNames.ondblclick = registrationName;
}
}
}
/**
* Registers plugins so that they can extract and dispatch events.
*
* @see {EventPluginHub}
*/
var EventPluginRegistry = {
/**
* Ordered list of injected plugins.
*/
plugins: [],
/**
* Mapping from event name to dispatch config
*/
eventNameDispatchConfigs: {},
/**
* Mapping from registration name to plugin module
*/
registrationNameModules: {},
/**
* Mapping from registration name to event name
*/
registrationNameDependencies: {},
/**
* Mapping from lowercase registration names to the properly cased version,
* used to warn in the case of missing event handlers. Available
* only in true.
* @type {Object}
*/
possibleRegistrationNames: {},
// Trust the developer to only use possibleRegistrationNames in true
/**
* Injects an ordering of plugins (by plugin name). This allows the ordering
* to be decoupled from injection of the actual plugins so that ordering is
* always deterministic regardless of packaging, on-the-fly injection, etc.
*
* @param {array} InjectedEventPluginOrder
* @internal
* @see {EventPluginHub.injection.injectEventPluginOrder}
*/
injectEventPluginOrder: function (injectedEventPluginOrder) {
!!eventPluginOrder ? invariant(false, 'EventPluginRegistry: Cannot inject event plugin ordering more than once. You are likely trying to load more than one copy of React.') : void 0;
// Clone the ordering so it cannot be dynamically mutated.
eventPluginOrder = Array.prototype.slice.call(injectedEventPluginOrder);
recomputePluginOrdering();
},
/**
* Injects plugins to be used by `EventPluginHub`. The plugin names must be
* in the ordering injected by `injectEventPluginOrder`.
*
* Plugins can be injected as part of page initialization or on-the-fly.
*
* @param {object} injectedNamesToPlugins Map from names to plugin modules.
* @internal
* @see {EventPluginHub.injection.injectEventPluginsByName}
*/
injectEventPluginsByName: function (injectedNamesToPlugins) {
var isOrderingDirty = false;
for (var pluginName in injectedNamesToPlugins) {
if (!injectedNamesToPlugins.hasOwnProperty(pluginName)) {
continue;
}
var pluginModule = injectedNamesToPlugins[pluginName];
if (!namesToPlugins.hasOwnProperty(pluginName) || namesToPlugins[pluginName] !== pluginModule) {
!!namesToPlugins[pluginName] ? invariant(false, 'EventPluginRegistry: Cannot inject two different event plugins using the same name, `%s`.', pluginName) : void 0;
namesToPlugins[pluginName] = pluginModule;
isOrderingDirty = true;
}
}
if (isOrderingDirty) {
recomputePluginOrdering();
}
}
};
var EventPluginRegistry_1 = EventPluginRegistry;
// These attributes should be all lowercase to allow for
// case insensitive checks
var RESERVED_PROPS = {
children: true,
dangerouslySetInnerHTML: true,
autoFocus: true,
defaultValue: true,
defaultChecked: true,
innerHTML: true,
suppressContentEditableWarning: true,
style: true
};
function checkMask(value, bitmask) {
return (value & bitmask) === bitmask;
}
var DOMPropertyInjection = {
/**
* Mapping from normalized, camelcased property names to a configuration that
* specifies how the associated DOM property should be accessed or rendered.
*/
MUST_USE_PROPERTY: 0x1,
HAS_BOOLEAN_VALUE: 0x4,
HAS_NUMERIC_VALUE: 0x8,
HAS_POSITIVE_NUMERIC_VALUE: 0x10 | 0x8,
HAS_OVERLOADED_BOOLEAN_VALUE: 0x20,
HAS_STRING_BOOLEAN_VALUE: 0x40,
/**
* Inject some specialized knowledge about the DOM. This takes a config object
* with the following properties:
*
* Properties: object mapping DOM property name to one of the
* DOMPropertyInjection constants or null. If your attribute isn't in here,
* it won't get written to the DOM.
*
* DOMAttributeNames: object mapping React attribute name to the DOM
* attribute name. Attribute names not specified use the **lowercase**
* normalized name.
*
* DOMAttributeNamespaces: object mapping React attribute name to the DOM
* attribute namespace URL. (Attribute names not specified use no namespace.)
*
* DOMPropertyNames: similar to DOMAttributeNames but for DOM properties.
* Property names not specified use the normalized name.
*
* DOMMutationMethods: Properties that require special mutation methods. If
* `value` is undefined, the mutation method should unset the property.
*
* @param {object} domPropertyConfig the config as described above.
*/
injectDOMPropertyConfig: function (domPropertyConfig) {
var Injection = DOMPropertyInjection;
var Properties = domPropertyConfig.Properties || {};
var DOMAttributeNamespaces = domPropertyConfig.DOMAttributeNamespaces || {};
var DOMAttributeNames = domPropertyConfig.DOMAttributeNames || {};
var DOMMutationMethods = domPropertyConfig.DOMMutationMethods || {};
for (var propName in Properties) {
!!DOMProperty.properties.hasOwnProperty(propName) ? invariant(false, 'injectDOMPropertyConfig(...): You\'re trying to inject DOM property \'%s\' which has already been injected. You may be accidentally injecting the same DOM property config twice, or you may be injecting two configs that have conflicting property names.', propName) : void 0;
var lowerCased = propName.toLowerCase();
var propConfig = Properties[propName];
var propertyInfo = {
attributeName: lowerCased,
attributeNamespace: null,
propertyName: propName,
mutationMethod: null,
mustUseProperty: checkMask(propConfig, Injection.MUST_USE_PROPERTY),
hasBooleanValue: checkMask(propConfig, Injection.HAS_BOOLEAN_VALUE),
hasNumericValue: checkMask(propConfig, Injection.HAS_NUMERIC_VALUE),
hasPositiveNumericValue: checkMask(propConfig, Injection.HAS_POSITIVE_NUMERIC_VALUE),
hasOverloadedBooleanValue: checkMask(propConfig, Injection.HAS_OVERLOADED_BOOLEAN_VALUE),
hasStringBooleanValue: checkMask(propConfig, Injection.HAS_STRING_BOOLEAN_VALUE)
};
!(propertyInfo.hasBooleanValue + propertyInfo.hasNumericValue + propertyInfo.hasOverloadedBooleanValue <= 1) ? invariant(false, 'DOMProperty: Value can be one of boolean, overloaded boolean, or numeric value, but not a combination: %s', propName) : void 0;
if (DOMAttributeNames.hasOwnProperty(propName)) {
var attributeName = DOMAttributeNames[propName];
propertyInfo.attributeName = attributeName;
}
if (DOMAttributeNamespaces.hasOwnProperty(propName)) {
propertyInfo.attributeNamespace = DOMAttributeNamespaces[propName];
}
if (DOMMutationMethods.hasOwnProperty(propName)) {
propertyInfo.mutationMethod = DOMMutationMethods[propName];
}
// Downcase references to whitelist properties to check for membership
// without case-sensitivity. This allows the whitelist to pick up
// `allowfullscreen`, which should be written using the property configuration
// for `allowFullscreen`
DOMProperty.properties[propName] = propertyInfo;
}
}
};
/* eslint-disable max-len */
var ATTRIBUTE_NAME_START_CHAR = ':A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD';
/* eslint-enable max-len */
/**
* DOMProperty exports lookup objects that can be used like functions:
*
* > DOMProperty.isValid['id']
* true
* > DOMProperty.isValid['foobar']
* undefined
*
* Although this may be confusing, it performs better in general.
*
* @see http://jsperf.com/key-exists
* @see http://jsperf.com/key-missing
*/
var DOMProperty = {
ID_ATTRIBUTE_NAME: 'data-reactid',
ROOT_ATTRIBUTE_NAME: 'data-reactroot',
ATTRIBUTE_NAME_START_CHAR: ATTRIBUTE_NAME_START_CHAR,
ATTRIBUTE_NAME_CHAR: ATTRIBUTE_NAME_START_CHAR + '\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040',
/**
* Map from property "standard name" to an object with info about how to set
* the property in the DOM. Each object contains:
*
* attributeName:
* Used when rendering markup or with `*Attribute()`.
* attributeNamespace
* propertyName:
* Used on DOM node instances. (This includes properties that mutate due to
* external factors.)
* mutationMethod:
* If non-null, used instead of the property or `setAttribute()` after
* initial render.
* mustUseProperty:
* Whether the property must be accessed and mutated as an object property.
* hasBooleanValue:
* Whether the property should be removed when set to a falsey value.
* hasNumericValue:
* Whether the property must be numeric or parse as a numeric and should be
* removed when set to a falsey value.
* hasPositiveNumericValue:
* Whether the property must be positive numeric or parse as a positive
* numeric and should be removed when set to a falsey value.
* hasOverloadedBooleanValue:
* Whether the property can be used as a flag as well as with a value.
* Removed when strictly equal to false; present without a value when
* strictly equal to true; present with a value otherwise.
*/
properties: {},
/**
* Checks whether a property name is a writeable attribute.
* @method
*/
shouldSetAttribute: function (name, value) {
if (DOMProperty.isReservedProp(name)) {
return false;
}
if ((name[0] === 'o' || name[0] === 'O') && (name[1] === 'n' || name[1] === 'N')) {
return false;
}
if (value === null) {
return true;
}
switch (typeof value) {
case 'boolean':
return DOMProperty.shouldAttributeAcceptBooleanValue(name);
case 'undefined':
case 'number':
case 'string':
case 'object':
return true;
default:
// function, symbol
return false;
}
},
getPropertyInfo: function (name) {
return DOMProperty.properties.hasOwnProperty(name) ? DOMProperty.properties[name] : null;
},
shouldAttributeAcceptBooleanValue: function (name) {
if (DOMProperty.isReservedProp(name)) {
return true;
}
var propertyInfo = DOMProperty.getPropertyInfo(name);
if (propertyInfo) {
return propertyInfo.hasBooleanValue || propertyInfo.hasStringBooleanValue || propertyInfo.hasOverloadedBooleanValue;
}
var prefix = name.toLowerCase().slice(0, 5);
return prefix === 'data-' || prefix === 'aria-';
},
/**
* Checks to see if a property name is within the list of properties
* reserved for internal React operations. These properties should
* not be set on an HTML element.
*
* @private
* @param {string} name
* @return {boolean} If the name is within reserved props
*/
isReservedProp: function (name) {
return RESERVED_PROPS.hasOwnProperty(name);
},
injection: DOMPropertyInjection
};
var DOMProperty_1 = DOMProperty;
/**
* Copyright (c) 2015-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule ReactDOMComponentFlags
*/
var ReactDOMComponentFlags = {
hasCachedChildNodes: 1 << 0
};
var ReactDOMComponentFlags_1 = ReactDOMComponentFlags;
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule ReactTypeOfWork
*
*/
var ReactTypeOfWork = {
IndeterminateComponent: 0, // Before we know whether it is functional or class
FunctionalComponent: 1,
ClassComponent: 2,
HostRoot: 3, // Root of a host tree. Could be nested inside another node.
HostPortal: 4, // A subtree. Could be an entry point to a different renderer.
HostComponent: 5,
HostText: 6,
CoroutineComponent: 7,
CoroutineHandlerPhase: 8,
YieldComponent: 9,
Fragment: 10
};
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule HTMLNodeType
*/
/**
* HTML nodeType values that represent the type of the node
*/
var HTMLNodeType = {
ELEMENT_NODE: 1,
TEXT_NODE: 3,
COMMENT_NODE: 8,
DOCUMENT_NODE: 9,
DOCUMENT_FRAGMENT_NODE: 11
};
var HTMLNodeType_1 = HTMLNodeType;
var HostComponent = ReactTypeOfWork.HostComponent;
var HostText = ReactTypeOfWork.HostText;
var ELEMENT_NODE$1 = HTMLNodeType_1.ELEMENT_NODE;
var COMMENT_NODE$1 = HTMLNodeType_1.COMMENT_NODE;
var ATTR_NAME = DOMProperty_1.ID_ATTRIBUTE_NAME;
var Flags = ReactDOMComponentFlags_1;
var randomKey = Math.random().toString(36).slice(2);
var internalInstanceKey = '__reactInternalInstance$' + randomKey;
var internalEventHandlersKey = '__reactEventHandlers$' + randomKey;
/**
* Check if a given node should be cached.
*/
function shouldPrecacheNode(node, nodeID) {
return node.nodeType === ELEMENT_NODE$1 && node.getAttribute(ATTR_NAME) === '' + nodeID || node.nodeType === COMMENT_NODE$1 && node.nodeValue === ' react-text: ' + nodeID + ' ' || node.nodeType === COMMENT_NODE$1 && node.nodeValue === ' react-empty: ' + nodeID + ' ';
}
/**
* Drill down (through composites and empty components) until we get a host or
* host text component.
*
* This is pretty polymorphic but unavoidable with the current structure we have
* for `_renderedChildren`.
*/
function getRenderedHostOrTextFromComponent(component) {
var rendered;
while (rendered = component._renderedComponent) {
component = rendered;
}
return component;
}
/**
* Populate `_hostNode` on the rendered host/text component with the given
* DOM node. The passed `inst` can be a composite.
*/
function precacheNode(inst, node) {
var hostInst = getRenderedHostOrTextFromComponent(inst);
hostInst._hostNode = node;
node[internalInstanceKey] = hostInst;
}
function precacheFiberNode$1(hostInst, node) {
node[internalInstanceKey] = hostInst;
}
function uncacheNode(inst) {
var node = inst._hostNode;
if (node) {
delete node[internalInstanceKey];
inst._hostNode = null;
}
}
/**
* Populate `_hostNode` on each child of `inst`, assuming that the children
* match up with the DOM (element) children of `node`.
*
* We cache entire levels at once to avoid an n^2 problem where we access the
* children of a node sequentially and have to walk from the start to our target
* node every time.
*
* Since we update `_renderedChildren` and the actual DOM at (slightly)
* different times, we could race here and see a newer `_renderedChildren` than
* the DOM nodes we see. To avoid this, ReactMultiChild calls
* `prepareToManageChildren` before we change `_renderedChildren`, at which
* time the container's child nodes are always cached (until it unmounts).
*/
function precacheChildNodes(inst, node) {
if (inst._flags & Flags.hasCachedChildNodes) {
return;
}
var children = inst._renderedChildren;
var childNode = node.firstChild;
outer: for (var name in children) {
if (!children.hasOwnProperty(name)) {
continue;
}
var childInst = children[name];
var childID = getRenderedHostOrTextFromComponent(childInst)._domID;
if (childID === 0) {
// We're currently unmounting this child in ReactMultiChild; skip it.
continue;
}
// We assume the child nodes are in the same order as the child instances.
for (; childNode !== null; childNode = childNode.nextSibling) {
if (shouldPrecacheNode(childNode, childID)) {
precacheNode(childInst, childNode);
continue outer;
}
}
// We reached the end of the DOM children without finding an ID match.
invariant(false, 'Unable to find element with ID %s.', childID);
}
inst._flags |= Flags.hasCachedChildNodes;
}
/**
* Given a DOM node, return the closest ReactDOMComponent or
* ReactDOMTextComponent instance ancestor.
*/
function getClosestInstanceFromNode(node) {
if (node[internalInstanceKey]) {
return node[internalInstanceKey];
}
// Walk up the tree until we find an ancestor whose instance we have cached.
var parents = [];
while (!node[internalInstanceKey]) {
parents.push(node);
if (node.parentNode) {
node = node.parentNode;
} else {
// Top of the tree. This node must not be part of a React tree (or is
// unmounted, potentially).
return null;
}
}
var closest;
var inst = node[internalInstanceKey];
if (inst.tag === HostComponent || inst.tag === HostText) {
// In Fiber, this will always be the deepest root.
return inst;
}
for (; node && (inst = node[internalInstanceKey]); node = parents.pop()) {
closest = inst;
if (parents.length) {
precacheChildNodes(inst, node);
}
}
return closest;
}
/**
* Given a DOM node, return the ReactDOMComponent or ReactDOMTextComponent
* instance, or null if the node was not rendered by this React.
*/
function getInstanceFromNode(node) {
var inst = node[internalInstanceKey];
if (inst) {
if (inst.tag === HostComponent || inst.tag === HostText) {
return inst;
} else if (inst._hostNode === node) {
return inst;
} else {
return null;
}
}
inst = getClosestInstanceFromNode(node);
if (inst != null && inst._hostNode === node) {
return inst;
} else {
return null;
}
}
/**
* Given a ReactDOMComponent or ReactDOMTextComponent, return the corresponding
* DOM node.
*/
function getNodeFromInstance(inst) {
if (inst.tag === HostComponent || inst.tag === HostText) {
// In Fiber this, is just the state node right now. We assume it will be
// a host component or host text.
return inst.stateNode;
}
// Without this first invariant, passing a non-DOM-component triggers the next
// invariant for a missing parent, which is super confusing.
!(inst._hostNode !== undefined) ? invariant(false, 'getNodeFromInstance: Invalid argument.') : void 0;
if (inst._hostNode) {
return inst._hostNode;
}
// Walk up the tree until we find an ancestor whose DOM node we have cached.
var parents = [];
while (!inst._hostNode) {
parents.push(inst);
!inst._hostParent ? invariant(false, 'React DOM tree root should always have a node reference.') : void 0;
inst = inst._hostParent;
}
// Now parents contains each ancestor that does *not* have a cached native
// node, and `inst` is the deepest ancestor that does.
for (; parents.length; inst = parents.pop()) {
precacheChildNodes(inst, inst._hostNode);
}
return inst._hostNode;
}
function getFiberCurrentPropsFromNode(node) {
return node[internalEventHandlersKey] || null;
}
function updateFiberProps$1(node, props) {
node[internalEventHandlersKey] = props;
}
var ReactDOMComponentTree = {
getClosestInstanceFromNode: getClosestInstanceFromNode,
getInstanceFromNode: getInstanceFromNode,
getNodeFromInstance: getNodeFromInstance,
precacheChildNodes: precacheChildNodes,
precacheNode: precacheNode,
uncacheNode: uncacheNode,
precacheFiberNode: precacheFiberNode$1,
getFiberCurrentPropsFromNode: getFiberCurrentPropsFromNode,
updateFiberProps: updateFiberProps$1
};
var ReactDOMComponentTree_1 = ReactDOMComponentTree;
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule ReactInstanceMap
*/
/**
* `ReactInstanceMap` maintains a mapping from a public facing stateful
* instance (key) and the internal representation (value). This allows public
* methods to accept the user facing instance as an argument and map them back
* to internal methods.
*/
// TODO: Replace this with ES6: var ReactInstanceMap = new Map();
var ReactInstanceMap = {
/**
* This API should be called `delete` but we'd have to make sure to always
* transform these to strings for IE support. When this transform is fully
* supported we can rename it.
*/
remove: function (key) {
key._reactInternalFiber = undefined;
},
get: function (key) {
return key._reactInternalFiber;
},
has: function (key) {
return key._reactInternalFiber !== undefined;
},
set: function (key, value) {
key._reactInternalFiber = value;
}
};
var ReactInstanceMap_1 = ReactInstanceMap;
var ReactInternals = react.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;
var ReactGlobalSharedState = {
ReactCurrentOwner: ReactInternals.ReactCurrentOwner
};
{
_assign(ReactGlobalSharedState, {
ReactComponentTreeHook: ReactInternals.ReactComponentTreeHook,
ReactDebugCurrentFrame: ReactInternals.ReactDebugCurrentFrame
});
}
var ReactGlobalSharedState_1 = ReactGlobalSharedState;
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule getComponentName
*
*/
function getComponentName(instanceOrFiber) {
if (typeof instanceOrFiber.getName === 'function') {
// Stack reconciler
var instance = instanceOrFiber;
return instance.getName();
}
if (typeof instanceOrFiber.tag === 'number') {
// Fiber reconciler
var fiber = instanceOrFiber;
var type = fiber.type;
if (typeof type === 'string') {
return type;
}
if (typeof type === 'function') {
return type.displayName || type.name;
}
}
return null;
}
var getComponentName_1 = getComponentName;
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule ReactTypeOfSideEffect
*
*/
var ReactTypeOfSideEffect = {
// Don't change these two values:
NoEffect: 0, // 0b00000000
PerformedWork: 1, // 0b00000001
// You can change the rest (and add more).
Placement: 2, // 0b00000010
Update: 4, // 0b00000100
PlacementAndUpdate: 6, // 0b00000110
Deletion: 8, // 0b00001000
ContentReset: 16, // 0b00010000
Callback: 32, // 0b00100000
Err: 64, // 0b01000000
Ref: 128 };
var ReactCurrentOwner = ReactGlobalSharedState_1.ReactCurrentOwner;
{
var warning$1 = require$$0;
}
var ClassComponent = ReactTypeOfWork.ClassComponent;
var HostComponent$1 = ReactTypeOfWork.HostComponent;
var HostRoot$1 = ReactTypeOfWork.HostRoot;
var HostPortal = ReactTypeOfWork.HostPortal;
var HostText$1 = ReactTypeOfWork.HostText;
var NoEffect = ReactTypeOfSideEffect.NoEffect;
var Placement = ReactTypeOfSideEffect.Placement;
var MOUNTING = 1;
var MOUNTED = 2;
var UNMOUNTED = 3;
function isFiberMountedImpl(fiber) {
var node = fiber;
if (!fiber.alternate) {
// If there is no alternate, this might be a new tree that isn't inserted
// yet. If it is, then it will have a pending insertion effect on it.
if ((node.effectTag & Placement) !== NoEffect) {
return MOUNTING;
}
while (node['return']) {
node = node['return'];
if ((node.effectTag & Placement) !== NoEffect) {
return MOUNTING;
}
}
} else {
while (node['return']) {
node = node['return'];
}
}
if (node.tag === HostRoot$1) {
// TODO: Check if this was a nested HostRoot when used with
// renderContainerIntoSubtree.
return MOUNTED;
}
// If we didn't hit the root, that means that we're in an disconnected tree
// that has been unmounted.
return UNMOUNTED;
}
var isFiberMounted = function (fiber) {
return isFiberMountedImpl(fiber) === MOUNTED;
};
var isMounted = function (component) {
{
var owner = ReactCurrentOwner.current;
if (owner !== null && owner.tag === ClassComponent) {
var ownerFiber = owner;
var instance = ownerFiber.stateNode;
warning$1(instance._warnedAboutRefsInRender, '%s is accessing isMounted inside its render() function. ' + 'render() should be a pure function of props and state. It should ' + 'never access something that requires stale data from the previous ' + 'render, such as refs. Move this logic to componentDidMount and ' + 'componentDidUpdate instead.', getComponentName_1(ownerFiber) || 'A component');
instance._warnedAboutRefsInRender = true;
}
}
var fiber = ReactInstanceMap_1.get(component);
if (!fiber) {
return false;
}
return isFiberMountedImpl(fiber) === MOUNTED;
};
function assertIsMounted(fiber) {
!(isFiberMountedImpl(fiber) === MOUNTED) ? invariant(false, 'Unable to find node on an unmounted component.') : void 0;
}
function findCurrentFiberUsingSlowPath(fiber) {
var alternate = fiber.alternate;
if (!alternate) {
// If there is no alternate, then we only need to check if it is mounted.
var state = isFiberMountedImpl(fiber);
!(state !== UNMOUNTED) ? invariant(false, 'Unable to find node on an unmounted component.') : void 0;
if (state === MOUNTING) {
return null;
}
return fiber;
}
// If we have two possible branches, we'll walk backwards up to the root
// to see what path the root points to. On the way we may hit one of the
// special cases and we'll deal with them.
var a = fiber;
var b = alternate;
while (true) {
var parentA = a['return'];
var parentB = parentA ? parentA.alternate : null;
if (!parentA || !parentB) {
// We're at the root.
break;
}
// If both copies of the parent fiber point to the same child, we can
// assume that the child is current. This happens when we bailout on low
// priority: the bailed out fiber's child reuses the current child.
if (parentA.child === parentB.child) {
var child = parentA.child;
while (child) {
if (child === a) {
// We've determined that A is the current branch.
assertIsMounted(parentA);
return fiber;
}
if (child === b) {
// We've determined that B is the current branch.
assertIsMounted(parentA);
return alternate;
}
child = child.sibling;
}
// We should never have an alternate for any mounting node. So the only
// way this could possibly happen is if this was unmounted, if at all.
invariant(false, 'Unable to find node on an unmounted component.');
}
if (a['return'] !== b['return']) {
// The return pointer of A and the return pointer of B point to different
// fibers. We assume that return pointers never criss-cross, so A must
// belong to the child set of A.return, and B must belong to the child
// set of B.return.
a = parentA;
b = parentB;
} else {
// The return pointers point to the same fiber. We'll have to use the
// default, slow path: scan the child sets of each parent alternate to see
// which child belongs to which set.
//
// Search parent A's child set
var didFindChild = false;
var _child = parentA.child;
while (_child) {
if (_child === a) {
didFindChild = true;
a = parentA;
b = parentB;
break;
}
if (_child === b) {
didFindChild = true;
b = parentA;
a = parentB;
break;
}
_child = _child.sibling;
}
if (!didFindChild) {
// Search parent B's child set
_child = parentB.child;
while (_child) {
if (_child === a) {
didFindChild = true;
a = parentB;
b = parentA;
break;
}
if (_child === b) {
didFindChild = true;
b = parentB;
a = parentA;
break;
}
_child = _child.sibling;
}
!didFindChild ? invariant(false, 'Child was not found in either parent set. This indicates a bug in React related to the return pointer. Please file an issue.') : void 0;
}
}
!(a.alternate === b) ? invariant(false, 'Return fibers should always be each others\' alternates. This error is likely caused by a bug in React. Please file an issue.') : void 0;
}
// If the root is not a host container, we're in a disconnected tree. I.e.
// unmounted.
!(a.tag === HostRoot$1) ? invariant(false, 'Unable to find node on an unmounted component.') : void 0;
if (a.stateNode.current === a) {
// We've determined that A is the current branch.
return fiber;
}
// Otherwise B has to be current branch.
return alternate;
}
var findCurrentFiberUsingSlowPath_1 = findCurrentFiberUsingSlowPath;
var findCurrentHostFiber = function (parent) {
var currentParent = findCurrentFiberUsingSlowPath(parent);
if (!currentParent) {
return null;
}
// Next we'll drill down this component to find the first HostComponent/Text.
var node = currentParent;
while (true) {
if (node.tag === HostComponent$1 || node.tag === HostText$1) {
return node;
} else if (node.child) {
node.child['return'] = node;
node = node.child;
continue;
}
if (node === currentParent) {
return null;
}
while (!node.sibling) {
if (!node['return'] || node['return'] === currentParent) {
return null;
}
node = node['return'];
}
node.sibling['return'] = node['return'];
node = node.sibling;
}
// Flow needs the return null here, but ESLint complains about it.
// eslint-disable-next-line no-unreachable
return null;
};
var findCurrentHostFiberWithNoPortals = function (parent) {
var currentParent = findCurrentFiberUsingSlowPath(parent);
if (!currentParent) {
return null;
}
// Next we'll drill down this component to find the first HostComponent/Text.
var node = currentParent;
while (true) {
if (node.tag === HostComponent$1 || node.tag === HostText$1) {
return node;
} else if (node.child && node.tag !== HostPortal) {
node.child['return'] = node;
node = node.child;
continue;
}
if (node === currentParent) {
return null;
}
while (!node.sibling) {
if (!node['return'] || node['return'] === currentParent) {
return null;
}
node = node['return'];
}
node.sibling['return'] = node['return'];
node = node.sibling;
}
// Flow needs the return null here, but ESLint complains about it.
// eslint-disable-next-line no-unreachable
return null;
};
var ReactFiberTreeReflection = {
isFiberMounted: isFiberMounted,
isMounted: isMounted,
findCurrentFiberUsingSlowPath: findCurrentFiberUsingSlowPath_1,
findCurrentHostFiber: findCurrentHostFiber,
findCurrentHostFiberWithNoPortals: findCurrentHostFiberWithNoPortals
};
var ReactErrorUtils = {
// Used by Fiber to simulate a try-catch.
_caughtError: null,
_hasCaughtError: false,
// Used by event system to capture/rethrow the first error.
_rethrowError: null,
_hasRethrowError: false,
injection: {
injectErrorUtils: function (injectedErrorUtils) {
!(typeof injectedErrorUtils.invokeGuardedCallback === 'function') ? invariant(false, 'Injected invokeGuardedCallback() must be a function.') : void 0;
invokeGuardedCallback = injectedErrorUtils.invokeGuardedCallback;
}
},
/**
* Call a function while guarding against errors that happens within it.
* Returns an error if it throws, otherwise null.
*
* In production, this is implemented using a try-catch. The reason we don't
* use a try-catch directly is so that we can swap out a different
* implementation in DEV mode.
*
* @param {String} name of the guard to use for logging or debugging
* @param {Function} func The function to invoke
* @param {*} context The context to use when calling the function
* @param {...*} args Arguments for function
*/
invokeGuardedCallback: function (name, func, context, a, b, c, d, e, f) {
invokeGuardedCallback.apply(ReactErrorUtils, arguments);
},
/**
* Same as invokeGuardedCallback, but instead of returning an error, it stores
* it in a global so it can be rethrown by `rethrowCaughtError` later.
* TODO: See if _caughtError and _rethrowError can be unified.
*
* @param {String} name of the guard to use for logging or debugging
* @param {Function} func The function to invoke
* @param {*} context The context to use when calling the function
* @param {...*} args Arguments for function
*/
invokeGuardedCallbackAndCatchFirstError: function (name, func, context, a, b, c, d, e, f) {
ReactErrorUtils.invokeGuardedCallback.apply(this, arguments);
if (ReactErrorUtils.hasCaughtError()) {
var error = ReactErrorUtils.clearCaughtError();
if (!ReactErrorUtils._hasRethrowError) {
ReactErrorUtils._hasRethrowError = true;
ReactErrorUtils._rethrowError = error;
}
}
},
/**
* During execution of guarded functions we will capture the first error which
* we will rethrow to be handled by the top level error handler.
*/
rethrowCaughtError: function () {
return rethrowCaughtError.apply(ReactErrorUtils, arguments);
},
hasCaughtError: function () {
return ReactErrorUtils._hasCaughtError;
},
clearCaughtError: function () {
if (ReactErrorUtils._hasCaughtError) {
var error = ReactErrorUtils._caughtError;
ReactErrorUtils._caughtError = null;
ReactErrorUtils._hasCaughtError = false;
return error;
} else {
invariant(false, 'clearCaughtError was called but no error was captured. This error is likely caused by a bug in React. Please file an issue.');
}
}
};
var invokeGuardedCallback = function (name, func, context, a, b, c, d, e, f) {
ReactErrorUtils._hasCaughtError = false;
ReactErrorUtils._caughtError = null;
var funcArgs = Array.prototype.slice.call(arguments, 3);
try {
func.apply(context, funcArgs);
} catch (error) {
ReactErrorUtils._caughtError = error;
ReactErrorUtils._hasCaughtError = true;
}
};
{
// In DEV mode, we swap out invokeGuardedCallback for a special version
// that plays more nicely with the browser's DevTools. The idea is to preserve
// "Pause on exceptions" behavior. Because React wraps all user-provided
// functions in invokeGuardedCallback, and the production version of
// invokeGuardedCallback uses a try-catch, all user exceptions are treated
// like caught exceptions, and the DevTools won't pause unless the developer
// takes the extra step of enabling pause on caught exceptions. This is
// untintuitive, though, because even though React has caught the error, from
// the developer's perspective, the error is uncaught.
//
// To preserve the expected "Pause on exceptions" behavior, we don't use a
// try-catch in DEV. Instead, we synchronously dispatch a fake event to a fake
// DOM node, and call the user-provided callback from inside an event handler
// for that fake event. If the callback throws, the error is "captured" using
// a global event handler. But because the error happens in a different
// event loop context, it does not interrupt the normal program flow.
// Effectively, this gives us try-catch behavior without actually using
// try-catch. Neat!
// Check that the browser supports the APIs we need to implement our special
// DEV version of invokeGuardedCallback
if (typeof window !== 'undefined' && typeof window.dispatchEvent === 'function' && typeof document !== 'undefined' && typeof document.createEvent === 'function') {
var fakeNode = document.createElement('react');
var invokeGuardedCallbackDev = function (name, func, context, a, b, c, d, e, f) {
// Keeps track of whether the user-provided callback threw an error. We
// set this to true at the beginning, then set it to false right after
// calling the function. If the function errors, `didError` will never be
// set to false. This strategy works even if the browser is flaky and
// fails to call our global error handler, because it doesn't rely on
// the error event at all.
var didError = true;
// Create an event handler for our fake event. We will synchronously
// dispatch our fake event using `dispatchEvent`. Inside the handler, we
// call the user-provided callback.
var funcArgs = Array.prototype.slice.call(arguments, 3);
function callCallback() {
// We immediately remove the callback from event listeners so that
// nested `invokeGuardedCallback` calls do not clash. Otherwise, a
// nested call would trigger the fake event handlers of any call higher
// in the stack.
fakeNode.removeEventListener(evtType, callCallback, false);
func.apply(context, funcArgs);
didError = false;
}
// Create a global error event handler. We use this to capture the value
// that was thrown. It's possible that this error handler will fire more
// than once; for example, if non-React code also calls `dispatchEvent`
// and a handler for that event throws. We should be resilient to most of
// those cases. Even if our error event handler fires more than once, the
// last error event is always used. If the callback actually does error,
// we know that the last error event is the correct one, because it's not
// possible for anything else to have happened in between our callback
// erroring and the code that follows the `dispatchEvent` call below. If
// the callback doesn't error, but the error event was fired, we know to
// ignore it because `didError` will be false, as described above.
var error = void 0;
// Use this to track whether the error event is ever called.
var didSetError = false;
var isCrossOriginError = false;
function onError(event) {
error = event.error;
didSetError = true;
if (error === null && event.colno === 0 && event.lineno === 0) {
isCrossOriginError = true;
}
}
// Create a fake event type.
var evtType = 'react-' + (name ? name : 'invokeguardedcallback');
// Attach our event handlers
window.addEventListener('error', onError);
fakeNode.addEventListener(evtType, callCallback, false);
// Synchronously dispatch our fake event. If the user-provided function
// errors, it will trigger our global error handler.
var evt = document.createEvent('Event');
evt.initEvent(evtType, false, false);
fakeNode.dispatchEvent(evt);
if (didError) {
if (!didSetError) {
// The callback errored, but the error event never fired.
error = new Error('An error was thrown inside one of your components, but React ' + "doesn't know what it was. This is likely due to browser " + 'flakiness. React does its best to preserve the "Pause on ' + 'exceptions" behavior of the DevTools, which requires some ' + "DEV-mode only tricks. It's possible that these don't work in " + 'your browser. Try triggering the error in production mode, ' + 'or switching to a modern browser. If you suspect that this is ' + 'actually an issue with React, please file an issue.');
} else if (isCrossOriginError) {
error = new Error("A cross-origin error was thrown. React doesn't have access to " + 'the actual error object in development. ' + 'See https://fb.me/react-crossorigin-error for more information.');
}
ReactErrorUtils._hasCaughtError = true;
ReactErrorUtils._caughtError = error;
} else {
ReactErrorUtils._hasCaughtError = false;
ReactErrorUtils._caughtError = null;
}
// Remove our event listeners
window.removeEventListener('error', onError);
};
invokeGuardedCallback = invokeGuardedCallbackDev;
}
}
var rethrowCaughtError = function () {
if (ReactErrorUtils._hasRethrowError) {
var error = ReactErrorUtils._rethrowError;
ReactErrorUtils._rethrowError = null;
ReactErrorUtils._hasRethrowError = false;
throw error;
}
};
var ReactErrorUtils_1 = ReactErrorUtils;
{
var warning$2 = require$$0;
}
/**
* Injected dependencies:
*/
/**
* - `ComponentTree`: [required] Module that can convert between React instances
* and actual node references.
*/
var ComponentTree;
var injection = {
injectComponentTree: function (Injected) {
ComponentTree = Injected;
{
warning$2(Injected && Injected.getNodeFromInstance && Injected.getInstanceFromNode, 'EventPluginUtils.injection.injectComponentTree(...): Injected ' + 'module is missing getNodeFromInstance or getInstanceFromNode.');
}
}
};
function isEndish(topLevelType) {
return topLevelType === 'topMouseUp' || topLevelType === 'topTouchEnd' || topLevelType === 'topTouchCancel';
}
function isMoveish(topLevelType) {
return topLevelType === 'topMouseMove' || topLevelType === 'topTouchMove';
}
function isStartish(topLevelType) {
return topLevelType === 'topMouseDown' || topLevelType === 'topTouchStart';
}
var validateEventDispatches;
{
validateEventDispatches = function (event) {
var dispatchListeners = event._dispatchListeners;
var dispatchInstances = event._dispatchInstances;
var listenersIsArr = Array.isArray(dispatchListeners);
var listenersLen = listenersIsArr ? dispatchListeners.length : dispatchListeners ? 1 : 0;
var instancesIsArr = Array.isArray(dispatchInstances);
var instancesLen = instancesIsArr ? dispatchInstances.length : dispatchInstances ? 1 : 0;
warning$2(instancesIsArr === listenersIsArr && instancesLen === listenersLen, 'EventPluginUtils: Invalid `event`.');
};
}
/**
* Dispatch the event to the listener.
* @param {SyntheticEvent} event SyntheticEvent to handle
* @param {boolean} simulated If the event is simulated (changes exn behavior)
* @param {function} listener Application-level callback
* @param {*} inst Internal component instance
*/
function executeDispatch(event, simulated, listener, inst) {
var type = event.type || 'unknown-event';
event.currentTarget = EventPluginUtils.getNodeFromInstance(inst);
ReactErrorUtils_1.invokeGuardedCallbackAndCatchFirstError(type, listener, undefined, event);
event.currentTarget = null;
}
/**
* Standard/simple iteration through an event's collected dispatches.
*/
function executeDispatchesInOrder(event, simulated) {
var dispatchListeners = event._dispatchListeners;
var dispatchInstances = event._dispatchInstances;
{
validateEventDispatches(event);
}
if (Array.isArray(dispatchListeners)) {
for (var i = 0; i < dispatchListeners.length; i++) {
if (event.isPropagationStopped()) {
break;
}
// Listeners and Instances are two parallel arrays that are always in sync.
executeDispatch(event, simulated, dispatchListeners[i], dispatchInstances[i]);
}
} else if (dispatchListeners) {
executeDispatch(event, simulated, dispatchListeners, dispatchInstances);
}
event._dispatchListeners = null;
event._dispatchInstances = null;
}
/**
* Standard/simple iteration through an event's collected dispatches, but stops
* at the first dispatch execution returning true, and returns that id.
*
* @return {?string} id of the first dispatch execution who's listener returns
* true, or null if no listener returned true.
*/
function executeDispatchesInOrderStopAtTrueImpl(event) {
var dispatchListeners = event._dispatchListeners;
var dispatchInstances = event._dispatchInstances;
{
validateEventDispatches(event);
}
if (Array.isArray(dispatchListeners)) {
for (var i = 0; i < dispatchListeners.length; i++) {
if (event.isPropagationStopped()) {
break;
}
// Listeners and Instances are two parallel arrays that are always in sync.
if (dispatchListeners[i](event, dispatchInstances[i])) {
return dispatchInstances[i];
}
}
} else if (dispatchListeners) {
if (dispatchListeners(event, dispatchInstances)) {
return dispatchInstances;
}
}
return null;
}
/**
* @see executeDispatchesInOrderStopAtTrueImpl
*/
function executeDispatchesInOrderStopAtTrue(event) {
var ret = executeDispatchesInOrderStopAtTrueImpl(event);
event._dispatchInstances = null;
event._dispatchListeners = null;
return ret;
}
/**
* Execution of a "direct" dispatch - there must be at most one dispatch
* accumulated on the event or it is considered an error. It doesn't really make
* sense for an event with multiple dispatches (bubbled) to keep track of the
* return values at each dispatch execution, but it does tend to make sense when
* dealing with "direct" dispatches.
*
* @return {*} The return value of executing the single dispatch.
*/
function executeDirectDispatch(event) {
{
validateEventDispatches(event);
}
var dispatchListener = event._dispatchListeners;
var dispatchInstance = event._dispatchInstances;
!!Array.isArray(dispatchListener) ? invariant(false, 'executeDirectDispatch(...): Invalid `event`.') : void 0;
event.currentTarget = dispatchListener ? EventPluginUtils.getNodeFromInstance(dispatchInstance) : null;
var res = dispatchListener ? dispatchListener(event) : null;
event.currentTarget = null;
event._dispatchListeners = null;
event._dispatchInstances = null;
return res;
}
/**
* @param {SyntheticEvent} event
* @return {boolean} True iff number of dispatches accumulated is greater than 0.
*/
function hasDispatches(event) {
return !!event._dispatchListeners;
}
/**
* General utilities that are useful in creating custom Event Plugins.
*/
var EventPluginUtils = {
isEndish: isEndish,
isMoveish: isMoveish,
isStartish: isStartish,
executeDirectDispatch: executeDirectDispatch,
executeDispatchesInOrder: executeDispatchesInOrder,
executeDispatchesInOrderStopAtTrue: executeDispatchesInOrderStopAtTrue,
hasDispatches: hasDispatches,
getFiberCurrentPropsFromNode: function (node) {
return ComponentTree.getFiberCurrentPropsFromNode(node);
},
getInstanceFromNode: function (node) {
return ComponentTree.getInstanceFromNode(node);
},
getNodeFromInstance: function (node) {
return ComponentTree.getNodeFromInstance(node);
},
injection: injection
};
var EventPluginUtils_1 = EventPluginUtils;
// Use to restore controlled state after a change event has fired.
var fiberHostComponent = null;
var ReactControlledComponentInjection = {
injectFiberControlledHostComponent: function (hostComponentImpl) {
// The fiber implementation doesn't use dynamic dispatch so we need to
// inject the implementation.
fiberHostComponent = hostComponentImpl;
}
};
var restoreTarget = null;
var restoreQueue = null;
function restoreStateOfTarget(target) {
// We perform this translation at the end of the event loop so that we
// always receive the correct fiber here
var internalInstance = EventPluginUtils_1.getInstanceFromNode(target);
if (!internalInstance) {
// Unmounted
return;
}
if (typeof internalInstance.tag === 'number') {
!(fiberHostComponent && typeof fiberHostComponent.restoreControlledState === 'function') ? invariant(false, 'Fiber needs to be injected to handle a fiber target for controlled events. This error is likely caused by a bug in React. Please file an issue.') : void 0;
var props = EventPluginUtils_1.getFiberCurrentPropsFromNode(internalInstance.stateNode);
fiberHostComponent.restoreControlledState(internalInstance.stateNode, internalInstance.type, props);
return;
}
!(typeof internalInstance.restoreControlledState === 'function') ? invariant(false, 'The internal instance must be a React host component. This error is likely caused by a bug in React. Please file an issue.') : void 0;
// If it is not a Fiber, we can just use dynamic dispatch.
internalInstance.restoreControlledState();
}
var ReactControlledComponent = {
injection: ReactControlledComponentInjection,
enqueueStateRestore: function (target) {
if (restoreTarget) {
if (restoreQueue) {
restoreQueue.push(target);
} else {
restoreQueue = [target];
}
} else {
restoreTarget = target;
}
},
restoreStateIfNeeded: function () {
if (!restoreTarget) {
return;
}
var target = restoreTarget;
var queuedTargets = restoreQueue;
restoreTarget = null;
restoreQueue = null;
restoreStateOfTarget(target);
if (queuedTargets) {
for (var i = 0; i < queuedTargets.length; i++) {
restoreStateOfTarget(queuedTargets[i]);
}
}
}
};
var ReactControlledComponent_1 = ReactControlledComponent;
// Used as a way to call batchedUpdates when we don't know if we're in a Fiber
// or Stack context. Such as when we're dispatching events or if third party
// libraries need to call batchedUpdates. Eventually, this API will go away when
// everything is batched by default. We'll then have a similar API to opt-out of
// scheduled work and instead do synchronous work.
// Defaults
var stackBatchedUpdates = function (fn, a, b, c, d, e) {
return fn(a, b, c, d, e);
};
var fiberBatchedUpdates = function (fn, bookkeeping) {
return fn(bookkeeping);
};
function performFiberBatchedUpdates(fn, bookkeeping) {
// If we have Fiber loaded, we need to wrap this in a batching call so that
// Fiber can apply its default priority for this call.
return fiberBatchedUpdates(fn, bookkeeping);
}
function batchedUpdates(fn, bookkeeping) {
// We first perform work with the stack batching strategy, by passing our
// indirection to it.
return stackBatchedUpdates(performFiberBatchedUpdates, fn, bookkeeping);
}
var isNestingBatched = false;
function batchedUpdatesWithControlledComponents(fn, bookkeeping) {
if (isNestingBatched) {
// If we are currently inside another batch, we need to wait until it
// fully completes before restoring state. Therefore, we add the target to
// a queue of work.
return batchedUpdates(fn, bookkeeping);
}
isNestingBatched = true;
try {
return batchedUpdates(fn, bookkeeping);
} finally {
// Here we wait until all updates have propagated, which is important
// when using controlled components within layers:
// https://github.com/facebook/react/issues/1698
// Then we restore state of any controlled component.
isNestingBatched = false;
ReactControlledComponent_1.restoreStateIfNeeded();
}
}
var ReactGenericBatchingInjection = {
injectStackBatchedUpdates: function (_batchedUpdates) {
stackBatchedUpdates = _batchedUpdates;
},
injectFiberBatchedUpdates: function (_batchedUpdates) {
fiberBatchedUpdates = _batchedUpdates;
}
};
var ReactGenericBatching = {
batchedUpdates: batchedUpdatesWithControlledComponents,
injection: ReactGenericBatchingInjection
};
var ReactGenericBatching_1 = ReactGenericBatching;
var TEXT_NODE$1 = HTMLNodeType_1.TEXT_NODE;
/**
* Gets the target node from a native browser event by accounting for
* inconsistencies in browser DOM APIs.
*
* @param {object} nativeEvent Native browser event.
* @return {DOMEventTarget} Target node.
*/
function getEventTarget(nativeEvent) {
var target = nativeEvent.target || nativeEvent.srcElement || window;
// Normalize SVG <use> element events #4963
if (target.correspondingUseElement) {
target = target.correspondingUseElement;
}
// Safari may fire events on text nodes (Node.TEXT_NODE is 3).
// @see http://www.quirksmode.org/js/events_properties.html
return target.nodeType === TEXT_NODE$1 ? target.parentNode : target;
}
var getEventTarget_1 = getEventTarget;
var HostRoot = ReactTypeOfWork.HostRoot;
var CALLBACK_BOOKKEEPING_POOL_SIZE = 10;
var callbackBookkeepingPool = [];
/**
* Find the deepest React component completely containing the root of the
* passed-in instance (for use when entire React trees are nested within each
* other). If React trees are not nested, returns null.
*/
function findRootContainerNode(inst) {
// TODO: It may be a good idea to cache this to prevent unnecessary DOM
// traversal, but caching is difficult to do correctly without using a
// mutation observer to listen for all DOM changes.
if (typeof inst.tag === 'number') {
while (inst['return']) {
inst = inst['return'];
}
if (inst.tag !== HostRoot) {
// This can happen if we're in a detached tree.
return null;
}
return inst.stateNode.containerInfo;
} else {
while (inst._hostParent) {
inst = inst._hostParent;
}
var rootNode = ReactDOMComponentTree_1.getNodeFromInstance(inst);
return rootNode.parentNode;
}
}
// Used to store ancestor hierarchy in top level callback
function getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targetInst) {
if (callbackBookkeepingPool.length) {
var instance = callbackBookkeepingPool.pop();
instance.topLevelType = topLevelType;
instance.nativeEvent = nativeEvent;
instance.targetInst = targetInst;
return instance;
}
return {
topLevelType: topLevelType,
nativeEvent: nativeEvent,
targetInst: targetInst,
ancestors: []
};
}
function releaseTopLevelCallbackBookKeeping(instance) {
instance.topLevelType = null;
instance.nativeEvent = null;
instance.targetInst = null;
instance.ancestors.length = 0;
if (callbackBookkeepingPool.length < CALLBACK_BOOKKEEPING_POOL_SIZE) {
callbackBookkeepingPool.push(instance);
}
}
function handleTopLevelImpl(bookKeeping) {
var targetInst = bookKeeping.targetInst;
// Loop through the hierarchy, in case there's any nested components.
// It's important that we build the array of ancestors before calling any
// event handlers, because event handlers can modify the DOM, leading to
// inconsistencies with ReactMount's node cache. See #1105.
var ancestor = targetInst;
do {
if (!ancestor) {
bookKeeping.ancestors.push(ancestor);
break;
}
var root = findRootContainerNode(ancestor);
if (!root) {
break;
}
bookKeeping.ancestors.push(ancestor);
ancestor = ReactDOMComponentTree_1.getClosestInstanceFromNode(root);
} while (ancestor);
for (var i = 0; i < bookKeeping.ancestors.length; i++) {
targetInst = bookKeeping.ancestors[i];
ReactDOMEventListener._handleTopLevel(bookKeeping.topLevelType, targetInst, bookKeeping.nativeEvent, getEventTarget_1(bookKeeping.nativeEvent));
}
}
var ReactDOMEventListener = {
_enabled: true,
_handleTopLevel: null,
setHandleTopLevel: function (handleTopLevel) {
ReactDOMEventListener._handleTopLevel = handleTopLevel;
},
setEnabled: function (enabled) {
ReactDOMEventListener._enabled = !!enabled;
},
isEnabled: function () {
return ReactDOMEventListener._enabled;
},
/**
* Traps top-level events by using event bubbling.
*
* @param {string} topLevelType Record from `BrowserEventConstants`.
* @param {string} handlerBaseName Event name (e.g. "click").
* @param {object} element Element on which to attach listener.
* @return {?object} An object with a remove function which will forcefully
* remove the listener.
* @internal
*/
trapBubbledEvent: function (topLevelType, handlerBaseName, element) {
if (!element) {
return null;
}
return EventListener.listen(element, handlerBaseName, ReactDOMEventListener.dispatchEvent.bind(null, topLevelType));
},
/**
* Traps a top-level event by using event capturing.
*
* @param {string} topLevelType Record from `BrowserEventConstants`.
* @param {string} handlerBaseName Event name (e.g. "click").
* @param {object} element Element on which to attach listener.
* @return {?object} An object with a remove function which will forcefully
* remove the listener.
* @internal
*/
trapCapturedEvent: function (topLevelType, handlerBaseName, element) {
if (!element) {
return null;
}
return EventListener.capture(element, handlerBaseName, ReactDOMEventListener.dispatchEvent.bind(null, topLevelType));
},
dispatchEvent: function (topLevelType, nativeEvent) {
if (!ReactDOMEventListener._enabled) {
return;
}
var nativeEventTarget = getEventTarget_1(nativeEvent);
var targetInst = ReactDOMComponentTree_1.getClosestInstanceFromNode(nativeEventTarget);
if (targetInst !== null && typeof targetInst.tag === 'number' && !ReactFiberTreeReflection.isFiberMounted(targetInst)) {
// If we get an event (ex: img onload) before committing that
// component's mount, ignore it for now (that is, treat it as if it was an
// event on a non-React tree). We might also consider queueing events and
// dispatching them after the mount.
targetInst = null;
}
var bookKeeping = getTopLevelCallbackBookKeeping(topLevelType, nativeEvent, targetInst);
try {
// Event queue being processed in the same cycle allows
// `preventDefault`.
ReactGenericBatching_1.batchedUpdates(handleTopLevelImpl, bookKeeping);
} finally {
releaseTopLevelCallbackBookKeeping(bookKeeping);
}
}
};
var ReactDOMEventListener_1 = ReactDOMEventListener;
/**
* Accumulates items that must not be null or undefined into the first one. This
* is used to conserve memory by avoiding array allocations, and thus sacrifices
* API cleanness. Since `current` can be null before being passed in and not
* null after this function, make sure to assign it back to `current`:
*
* `a = accumulateInto(a, b);`
*
* This API should be sparingly used. Try `accumulate` for something cleaner.
*
* @return {*|array<*>} An accumulation of items.
*/
function accumulateInto(current, next) {
!(next != null) ? invariant(false, 'accumulateInto(...): Accumulated items must not be null or undefined.') : void 0;
if (current == null) {
return next;
}
// Both are not empty. Warning: Never call x.concat(y) when you are not
// certain that x is an Array (x could be a string with concat method).
if (Array.isArray(current)) {
if (Array.isArray(next)) {
current.push.apply(current, next);
return current;
}
current.push(next);
return current;
}
if (Array.isArray(next)) {
// A bit too dangerous to mutate `next`.
return [current].concat(next);
}
return [current, next];
}
var accumulateInto_1 = accumulateInto;
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule forEachAccumulated
*
*/
/**
* @param {array} arr an "accumulation" of items which is either an Array or
* a single item. Useful when paired with the `accumulate` module. This is a
* simple utility that allows us to reason about a collection of items, but
* handling the case when there is exactly one item (and we do not need to
* allocate an array).
* @param {function} cb Callback invoked with each element or a collection.
* @param {?} [scope] Scope used as `this` in a callback.
*/
function forEachAccumulated(arr, cb, scope) {
if (Array.isArray(arr)) {
arr.forEach(cb, scope);
} else if (arr) {
cb.call(scope, arr);
}
}
var forEachAccumulated_1 = forEachAccumulated;
/**
* Internal queue of events that have accumulated their dispatches and are
* waiting to have their dispatches executed.
*/
var eventQueue = null;
/**
* Dispatches an event and releases it back into the pool, unless persistent.
*
* @param {?object} event Synthetic event to be dispatched.
* @param {boolean} simulated If the event is simulated (changes exn behavior)
* @private
*/
var executeDispatchesAndRelease = function (event, simulated) {
if (event) {
EventPluginUtils_1.executeDispatchesInOrder(event, simulated);
if (!event.isPersistent()) {
event.constructor.release(event);
}
}
};
var executeDispatchesAndReleaseSimulated = function (e) {
return executeDispatchesAndRelease(e, true);
};
var executeDispatchesAndReleaseTopLevel = function (e) {
return executeDispatchesAndRelease(e, false);
};
function isInteractive(tag) {
return tag === 'button' || tag === 'input' || tag === 'select' || tag === 'textarea';
}
function shouldPreventMouseEvent(name, type, props) {
switch (name) {
case 'onClick':
case 'onClickCapture':
case 'onDoubleClick':
case 'onDoubleClickCapture':
case 'onMouseDown':
case 'onMouseDownCapture':
case 'onMouseMove':
case 'onMouseMoveCapture':
case 'onMouseUp':
case 'onMouseUpCapture':
return !!(props.disabled && isInteractive(type));
default:
return false;
}
}
/**
* This is a unified interface for event plugins to be installed and configured.
*
* Event plugins can implement the following properties:
*
* `extractEvents` {function(string, DOMEventTarget, string, object): *}
* Required. When a top-level event is fired, this method is expected to
* extract synthetic events that will in turn be queued and dispatched.
*
* `eventTypes` {object}
* Optional, plugins that fire events must publish a mapping of registration
* names that are used to register listeners. Values of this mapping must
* be objects that contain `registrationName` or `phasedRegistrationNames`.
*
* `executeDispatch` {function(object, function, string)}
* Optional, allows plugins to override how an event gets dispatched. By
* default, the listener is simply invoked.
*
* Each plugin that is injected into `EventsPluginHub` is immediately operable.
*
* @public
*/
var EventPluginHub = {
/**
* Methods for injecting dependencies.
*/
injection: {
/**
* @param {array} InjectedEventPluginOrder
* @public
*/
injectEventPluginOrder: EventPluginRegistry_1.injectEventPluginOrder,
/**
* @param {object} injectedNamesToPlugins Map from names to plugin modules.
*/
injectEventPluginsByName: EventPluginRegistry_1.injectEventPluginsByName
},
/**
* @param {object} inst The instance, which is the source of events.
* @param {string} registrationName Name of listener (e.g. `onClick`).
* @return {?function} The stored callback.
*/
getListener: function (inst, registrationName) {
var listener;
// TODO: shouldPreventMouseEvent is DOM-specific and definitely should not
// live here; needs to be moved to a better place soon
if (typeof inst.tag === 'number') {
var stateNode = inst.stateNode;
if (!stateNode) {
// Work in progress (ex: onload events in incremental mode).
return null;
}
var props = EventPluginUtils_1.getFiberCurrentPropsFromNode(stateNode);
if (!props) {
// Work in progress.
return null;
}
listener = props[registrationName];
if (shouldPreventMouseEvent(registrationName, inst.type, props)) {
return null;
}
} else {
var currentElement = inst._currentElement;
if (typeof currentElement === 'string' || typeof currentElement === 'number') {
// Text node, let it bubble through.
return null;
}
if (!inst._rootNodeID) {
// If the instance is already unmounted, we have no listeners.
return null;
}
var _props = currentElement.props;
listener = _props[registrationName];
if (shouldPreventMouseEvent(registrationName, currentElement.type, _props)) {
return null;
}
}
!(!listener || typeof listener === 'function') ? invariant(false, 'Expected `%s` listener to be a function, instead got a value of `%s` type.', registrationName, typeof listener) : void 0;
return listener;
},
/**
* Allows registered plugins an opportunity to extract events from top-level
* native browser events.
*
* @return {*} An accumulation of synthetic events.
* @internal
*/
extractEvents: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
var events;
var plugins = EventPluginRegistry_1.plugins;
for (var i = 0; i < plugins.length; i++) {
// Not every plugin in the ordering may be loaded at runtime.
var possiblePlugin = plugins[i];
if (possiblePlugin) {
var extractedEvents = possiblePlugin.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);
if (extractedEvents) {
events = accumulateInto_1(events, extractedEvents);
}
}
}
return events;
},
/**
* Enqueues a synthetic event that should be dispatched when
* `processEventQueue` is invoked.
*
* @param {*} events An accumulation of synthetic events.
* @internal
*/
enqueueEvents: function (events) {
if (events) {
eventQueue = accumulateInto_1(eventQueue, events);
}
},
/**
* Dispatches all synthetic events on the event queue.
*
* @internal
*/
processEventQueue: function (simulated) {
// Set `eventQueue` to null before processing it so that we can tell if more
// events get enqueued while processing.
var processingEventQueue = eventQueue;
eventQueue = null;
if (simulated) {
forEachAccumulated_1(processingEventQueue, executeDispatchesAndReleaseSimulated);
} else {
forEachAccumulated_1(processingEventQueue, executeDispatchesAndReleaseTopLevel);
}
!!eventQueue ? invariant(false, 'processEventQueue(): Additional events were enqueued while processing an event queue. Support for this has not yet been implemented.') : void 0;
// This would be a good time to rethrow if any of the event handlers threw.
ReactErrorUtils_1.rethrowCaughtError();
}
};
var EventPluginHub_1 = EventPluginHub;
function runEventQueueInBatch(events) {
EventPluginHub_1.enqueueEvents(events);
EventPluginHub_1.processEventQueue(false);
}
var ReactEventEmitterMixin = {
/**
* Streams a fired top-level event to `EventPluginHub` where plugins have the
* opportunity to create `ReactEvent`s to be dispatched.
*/
handleTopLevel: function (topLevelType, targetInst, nativeEvent, nativeEventTarget) {
var events = EventPluginHub_1.extractEvents(topLevelType, targetInst, nativeEvent, nativeEventTarget);
runEventQueueInBatch(events);
}
};
var ReactEventEmitterMixin_1 = ReactEventEmitterMixin;
var useHasFeature;
if (ExecutionEnvironment.canUseDOM) {
useHasFeature = document.implementation && document.implementation.hasFeature &&
// always returns true in newer browsers as per the standard.
// @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature
document.implementation.hasFeature('', '') !== true;
}
/**
* Checks if an event is supported in the current execution environment.
*
* NOTE: This will not work correctly for non-generic events such as `change`,
* `reset`, `load`, `error`, and `select`.
*
* Borrows from Modernizr.
*
* @param {string} eventNameSuffix Event name, e.g. "click".
* @param {?boolean} capture Check if the capture phase is supported.
* @return {boolean} True if the event is supported.
* @internal
* @license Modernizr 3.0.0pre (Custom Build) | MIT
*/
function isEventSupported(eventNameSuffix, capture) {
if (!ExecutionEnvironment.canUseDOM || capture && !('addEventListener' in document)) {
return false;
}
var eventName = 'on' + eventNameSuffix;
var isSupported = eventName in document;
if (!isSupported) {
var element = document.createElement('div');
element.setAttribute(eventName, 'return;');
isSupported = typeof element[eventName] === 'function';
}
if (!isSupported && useHasFeature && eventNameSuffix === 'wheel') {
// This is the only way to test support for the `wheel` event in IE9+.
isSupported = document.implementation.hasFeature('Events.wheel', '3.0');
}
return isSupported;
}
var isEventSupported_1 = isEventSupported;
/**
* Generate a mapping of standard vendor prefixes using the defined style property and event name.
*
* @param {string} styleProp
* @param {string} eventName
* @returns {object}
*/
function makePrefixMap(styleProp, eventName) {
var prefixes = {};
prefixes[styleProp.toLowerCase()] = eventName.toLowerCase();
prefixes['Webkit' + styleProp] = 'webkit' + eventName;
prefixes['Moz' + styleProp] = 'moz' + eventName;
prefixes['ms' + styleProp] = 'MS' + eventName;
prefixes['O' + styleProp] = 'o' + eventName.toLowerCase();
return prefixes;
}
/**
* A list of event names to a configurable list of vendor prefixes.
*/
var vendorPrefixes = {
animationend: makePrefixMap('Animation', 'AnimationEnd'),
animationiteration: makePrefixMap('Animation', 'AnimationIteration'),
animationstart: makePrefixMap('Animation', 'AnimationStart'),
transitionend: makePrefixMap('Transition', 'TransitionEnd')
};
/**
* Event names that have already been detected and prefixed (if applicable).
*/
var prefixedEventNames = {};
/**
* Element to check for prefixes on.
*/
var style = {};
/**
* Bootstrap if a DOM exists.
*/
if (ExecutionEnvironment.canUseDOM) {
style = document.createElement('div').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 usable, and if not remove them from the map.
if (!('AnimationEvent' in window)) {
delete vendorPrefixes.animationend.animation;
delete vendorPrefixes.animationiteration.animation;
delete vendorPrefixes.animationstart.animation;
}
// Same as above
if (!('TransitionEvent' in window)) {
delete vendorPrefixes.transitionend.transition;
}
}
/**
* Attempts to determine the correct vendor prefixed event name.
*
* @param {string} eventName
* @returns {string}
*/
function getVendorPrefixedEventName(eventName) {
if (prefixedEventNames[eventName]) {
return prefixedEventNames[eventName];
} else if (!vendorPrefixes[eventName]) {
return eventName;
}
var prefixMap = vendorPrefixes[eventName];
for (var styleProp in prefixMap) {
if (prefixMap.hasOwnProperty(styleProp) && styleProp in style) {
return prefixedEventNames[eventName] = prefixMap[styleProp];
}
}
return '';
}
var getVendorPrefixedEventName_1 = getVendorPrefixedEventName;
/**
* Types of raw signals from the browser caught at the top level.
*
* For events like 'submit' which don't consistently bubble (which we
* trap at a lower node than `document`), binding at `document` would
* cause duplicate events so we don't include them here.
*/
var topLevelTypes$1 = {
topAbort: 'abort',
topAnimationEnd: getVendorPrefixedEventName_1('animationend') || 'animationend',
topAnimationIteration: getVendorPrefixedEventName_1('animationiteration') || 'animationiteration',
topAnimationStart: getVendorPrefixedEventName_1('animationstart') || 'animationstart',
topBlur: 'blur',
topCancel: 'cancel',
topCanPlay: 'canplay',
topCanPlayThrough: 'canplaythrough',
topChange: 'change',
topClick: 'click',
topClose: 'close',
topCompositionEnd: 'compositionend',
topCompositionStart: 'compositionstart',
topCompositionUpdate: 'compositionupdate',
topContextMenu: 'contextmenu',
topCopy: 'copy',
topCut: 'cut',
topDoubleClick: 'dblclick',
topDrag: 'drag',
topDragEnd: 'dragend',
topDragEnter: 'dragenter',
topDragExit: 'dragexit',
topDragLeave: 'dragleave',
topDragOver: 'dragover',
topDragStart: 'dragstart',
topDrop: 'drop',
topDurationChange: 'durationchange',
topEmptied: 'emptied',
topEncrypted: 'encrypted',
topEnded: 'ended',
topError: 'error',
topFocus: 'focus',
topInput: 'input',
topKeyDown: 'keydown',
topKeyPress: 'keypress',
topKeyUp: 'keyup',
topLoadedData: 'loadeddata',
topLoad: 'load',
topLoadedMetadata: 'loadedmetadata',
topLoadStart: 'loadstart',
topMouseDown: 'mousedown',
topMouseMove: 'mousemove',
topMouseOut: 'mouseout',
topMouseOver: 'mouseover',
topMouseUp: 'mouseup',
topPaste: 'paste',
topPause: 'pause',
topPlay: 'play',
topPlaying: 'playing',
topProgress: 'progress',
topRateChange: 'ratechange',
topScroll: 'scroll',
topSeeked: 'seeked',
topSeeking: 'seeking',
topSelectionChange: 'selectionchange',
topStalled: 'stalled',
topSuspend: 'suspend',
topTextInput: 'textInput',
topTimeUpdate: 'timeupdate',
topToggle: 'toggle',
topTouchCancel: 'touchcancel',
topTouchEnd: 'touchend',
topTouchMove: 'touchmove',
topTouchStart: 'touchstart',
topTransitionEnd: getVendorPrefixedEventName_1('transitionend') || 'transitionend',
topVolumeChange: 'volumechange',
topWaiting: 'waiting',
topWheel: 'wheel'
};
var BrowserEventConstants = {
topLevelTypes: topLevelTypes$1
};
var BrowserEventConstants_1 = BrowserEventConstants;
var topLevelTypes = BrowserEventConstants_1.topLevelTypes;
/**
* Summary of `ReactBrowserEventEmitter` event handling:
*
* - Top-level delegation is used to trap most native browser events. This
* may only occur in the main thread and is the responsibility of
* ReactDOMEventListener, which is injected and can therefore support
* pluggable event sources. This is the only work that occurs in the main
* thread.
*
* - We normalize and de-duplicate events to account for browser quirks. This
* may be done in the worker thread.
*
* - Forward these native events (with the associated top-level type used to
* trap it) to `EventPluginHub`, which in turn will ask plugins if they want
* to extract any synthetic events.
*
* - The `EventPluginHub` will then process each event by annotating them with
* "dispatches", a sequence of listeners and IDs that care about that event.
*
* - The `EventPluginHub` then dispatches the events.
*
* Overview of React and the event system:
*
* +------------+ .
* | DOM | .
* +------------+ .
* | .
* v .
* +------------+ .
* | ReactEvent | .
* | Listener | .
* +------------+ . +-----------+
* | . +--------+|SimpleEvent|
* | . | |Plugin |
* +-----|------+ . v +-----------+
* | | | . +--------------+ +------------+
* | +-----------.--->|EventPluginHub| | Event |
* | | . | | +-----------+ | Propagators|
* | ReactEvent | . | | |TapEvent | |------------|
* | Emitter | . | |<---+|Plugin | |other plugin|
* | | . | | +-----------+ | utilities |
* | +-----------.--->| | +------------+
* | | | . +--------------+
* +-----|------+ . ^ +-----------+
* | . | |Enter/Leave|
* + . +-------+|Plugin |
* +-------------+ . +-----------+
* | application | .
* |-------------| .
* | | .
* | | .
* +-------------+ .
* .
* React Core . General Purpose Event Plugin System
*/
var alreadyListeningTo = {};
var reactTopListenersCounter = 0;
/**
* To ensure no conflicts with other potential React instances on the page
*/
var topListenersIDKey = '_reactListenersID' + ('' + Math.random()).slice(2);
function getListeningForDocument(mountAt) {
// In IE8, `mountAt` is a host object and doesn't have `hasOwnProperty`
// directly.
if (!Object.prototype.hasOwnProperty.call(mountAt, topListenersIDKey)) {
mountAt[topListenersIDKey] = reactTopListenersCounter++;
alreadyListeningTo[mountAt[topListenersIDKey]] = {};
}
return alreadyListeningTo[mountAt[topListenersIDKey]];
}
var ReactBrowserEventEmitter = _assign({}, ReactEventEmitterMixin_1, {
/**
* Sets whether or not any created callbacks should be enabled.
*
* @param {boolean} enabled True if callbacks should be enabled.
*/
setEnabled: function (enabled) {
if (ReactDOMEventListener_1) {
ReactDOMEventListener_1.setEnabled(enabled);
}
},
/**
* @return {boolean} True if callbacks are enabled.
*/
isEnabled: function () {
return !!(ReactDOMEventListener_1 && ReactDOMEventListener_1.isEnabled());
},
/**
* We listen for bubbled touch events on the document object.
*
* Firefox v8.01 (and possibly others) exhibited strange behavior when
* mounting `onmousemove` events at some node that was not the document
* element. The symptoms were that if your mouse is not moving over something
* contained within that mount point (for example on the background) the
* top-level listeners for `onmousemove` won't be called. However, if you
* register the `mousemove` on the document object, then it will of course
* catch all `mousemove`s. This along with iOS quirks, justifies restricting
* top-level listeners to the document object only, at least for these
* movement types of events and possibly all events.
*
* @see http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html
*
* Also, `keyup`/`keypress`/`keydown` do not bubble to the window on IE, but
* they bubble to document.
*
* @param {string} registrationName Name of listener (e.g. `onClick`).
* @param {object} contentDocumentHandle Document which owns the container
*/
listenTo: function (registrationName, contentDocumentHandle) {
var mountAt = contentDocumentHandle;
var isListening = getListeningForDocument(mountAt);
var dependencies = EventPluginRegistry_1.registrationNameDependencies[registrationName];
for (var i = 0; i < dependencies.length; i++) {
var dependency = dependencies[i];
if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {
if (dependency === 'topWheel') {
if (isEventSupported_1('wheel')) {
ReactDOMEventListener_1.trapBubbledEvent('topWheel', 'wheel', mountAt);
} else if (isEventSupported_1('mousewheel')) {
ReactDOMEventListener_1.trapBubbledEvent('topWheel', 'mousewheel', mountAt);
} else {
// Firefox needs to capture a different mouse scroll event.
// @see http://www.quirksmode.org/dom/events/tests/scroll.html
ReactDOMEventListener_1.trapBubbledEvent('topWheel', 'DOMMouseScroll', mountAt);
}
} else if (dependency === 'topScroll') {
ReactDOMEventListener_1.trapCapturedEvent('topScroll', 'scroll', mountAt);
} else if (dependency === 'topFocus' || dependency === 'topBlur') {
ReactDOMEventListener_1.trapCapturedEvent('topFocus', 'focus', mountAt);
ReactDOMEventListener_1.trapCapturedEvent('topBlur', 'blur', mountAt);
// to make sure blur and focus event listeners are only attached once
isListening.topBlur = true;
isListening.topFocus = true;
} else if (dependency === 'topCancel') {
if (isEventSupported_1('cancel', true)) {
ReactDOMEventListener_1.trapCapturedEvent('topCancel', 'cancel', mountAt);
}
isListening.topCancel = true;
} else if (dependency === 'topClose') {
if (isEventSupported_1('close', true)) {
ReactDOMEventListener_1.trapCapturedEvent('topClose', 'close', mountAt);
}
isListening.topClose = true;
} else if (topLevelTypes.hasOwnProperty(dependency)) {
ReactDOMEventListener_1.trapBubbledEvent(dependency, topLevelTypes[dependency], mountAt);
}
isListening[dependency] = true;
}
}
},
isListeningToAllDependencies: function (registrationName, mountAt) {
var isListening = getListeningForDocument(mountAt);
var dependencies = EventPluginRegistry_1.registrationNameDependencies[registrationName];
for (var i = 0; i < dependencies.length; i++) {
var dependency = dependencies[i];
if (!(isListening.hasOwnProperty(dependency) && isListening[dependency])) {
return false;
}
}
return true;
},
trapBubbledEvent: function (topLevelType, handlerBaseName, handle) {
return ReactDOMEventListener_1.trapBubbledEvent(topLevelType, handlerBaseName, handle);
},
trapCapturedEvent: function (topLevelType, handlerBaseName, handle) {
return ReactDOMEventListener_1.trapCapturedEvent(topLevelType, handlerBaseName, handle);
}
});
var ReactBrowserEventEmitter_1 = ReactBrowserEventEmitter;
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule ReactDOMFeatureFlags
*/
var ReactDOMFeatureFlags = {
fiberAsyncScheduling: false,
useFiber: true
};
var ReactDOMFeatureFlags_1 = ReactDOMFeatureFlags;
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule CSSProperty
*/
/**
* CSS properties which accept numbers but are not in units of "px".
*/
var isUnitlessNumber = {
animationIterationCount: true,
borderImageOutset: true,
borderImageSlice: true,
borderImageWidth: true,
boxFlex: true,
boxFlexGroup: true,
boxOrdinalGroup: true,
columnCount: true,
columns: true,
flex: true,
flexGrow: true,
flexPositive: true,
flexShrink: true,
flexNegative: true,
flexOrder: true,
gridRow: true,
gridRowEnd: true,
gridRowSpan: true,
gridRowStart: true,
gridColumn: true,
gridColumnEnd: true,
gridColumnSpan: true,
gridColumnStart: true,
fontWeight: true,
lineClamp: true,
lineHeight: true,
opacity: true,
order: true,
orphans: true,
tabSize: true,
widows: true,
zIndex: true,
zoom: true,
// SVG-related properties
fillOpacity: true,
floodOpacity: true,
stopOpacity: true,
strokeDasharray: true,
strokeDashoffset: true,
strokeMiterlimit: true,
strokeOpacity: true,
strokeWidth: true
};
/**
* @param {string} prefix vendor-specific prefix, eg: Webkit
* @param {string} key style name, eg: transitionDuration
* @return {string} style name prefixed with `prefix`, properly camelCased, eg:
* WebkitTransitionDuration
*/
function prefixKey(prefix, key) {
return prefix + key.charAt(0).toUpperCase() + key.substring(1);
}
/**
* Support style names that may come passed in prefixed by adding permutations
* of vendor prefixes.
*/
var prefixes = ['Webkit', 'ms', 'Moz', 'O'];
// Using Object.keys here, or else the vanilla for-in loop makes IE8 go into an
// infinite loop, because it iterates over the newly added props too.
Object.keys(isUnitlessNumber).forEach(function (prop) {
prefixes.forEach(function (prefix) {
isUnitlessNumber[prefixKey(prefix, prop)] = isUnitlessNumber[prop];
});
});
/**
* Most style properties can be unset by doing .style[prop] = '' but IE8
* doesn't like doing that with shorthand properties so for the properties that
* IE8 breaks on, which are listed here, we instead unset each of the
* individual properties. See http://bugs.jquery.com/ticket/12385.
* The 4-value 'clock' properties like margin, padding, border-width seem to
* behave without any problems. Curiously, list-style works too without any
* special prodding.
*/
var shorthandPropertyExpansions = {
background: {
backgroundAttachment: true,
backgroundColor: true,
backgroundImage: true,
backgroundPositionX: true,
backgroundPositionY: true,
backgroundRepeat: true
},
backgroundPosition: {
backgroundPositionX: true,
backgroundPositionY: true
},
border: {
borderWidth: true,
borderStyle: true,
borderColor: true
},
borderBottom: {
borderBottomWidth: true,
borderBottomStyle: true,
borderBottomColor: true
},
borderLeft: {
borderLeftWidth: true,
borderLeftStyle: true,
borderLeftColor: true
},
borderRight: {
borderRightWidth: true,
borderRightStyle: true,
borderRightColor: true
},
borderTop: {
borderTopWidth: true,
borderTopStyle: true,
borderTopColor: true
},
font: {
fontStyle: true,
fontVariant: true,
fontWeight: true,
fontSize: true,
lineHeight: true,
fontFamily: true
},
outline: {
outlineWidth: true,
outlineStyle: true,
outlineColor: true
}
};
var CSSProperty = {
isUnitlessNumber: isUnitlessNumber,
shorthandPropertyExpansions: shorthandPropertyExpansions
};
var CSSProperty_1 = CSSProperty;
var isUnitlessNumber$1 = CSSProperty_1.isUnitlessNumber;
/**
* Convert a value into the proper css writable value. The style name `name`
* should be logical (no hyphens), as specified
* in `CSSProperty.isUnitlessNumber`.
*
* @param {string} name CSS property name such as `topMargin`.
* @param {*} value CSS property value such as `10px`.
* @return {string} Normalized style value with dimensions applied.
*/
function dangerousStyleValue(name, value, isCustomProperty) {
// Note that we've removed escapeTextForBrowser() calls here since the
// whole string will be escaped when the attribute is injected into
// the markup. If you provide unsafe user data here they can inject
// arbitrary CSS which may be problematic (I couldn't repro this):
// https://www.owasp.org/index.php/XSS_Filter_Evasion_Cheat_Sheet
// http://www.thespanner.co.uk/2007/11/26/ultimate-xss-css-injection/
// This is not an XSS hole but instead a potential CSS injection issue
// which has lead to a greater discussion about how we're going to
// trust URLs moving forward. See #2115901
var isEmpty = value == null || typeof value === 'boolean' || value === '';
if (isEmpty) {
return '';
}
if (!isCustomProperty && typeof value === 'number' && value !== 0 && !(isUnitlessNumber$1.hasOwnProperty(name) && isUnitlessNumber$1[name])) {
return value + 'px'; // Presumes implicit 'px' suffix for unitless numbers
}
return ('' + value).trim();
}
var dangerousStyleValue_1 = dangerousStyleValue;
/**
* Copyright (c) 2016-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
*
* @providesModule describeComponentFrame
*/
var describeComponentFrame = function (name, source, ownerName) {
return '\n in ' + (name || 'Unknown') + (source ? ' (at ' + source.fileName.replace(/^.*[\\\/]/, '') + ':' + source.lineNumber + ')' : ownerName ? ' (created by ' + ownerName + ')' : '');
};
var IndeterminateComponent = ReactTypeOfWork.IndeterminateComponent;
var FunctionalComponent = ReactTypeOfWork.FunctionalComponent;
var ClassComponent$1 = ReactTypeOfWork.ClassComponent;
var HostComponent$2 = ReactTypeOfWork.HostComponent;
function describeFiber(fiber) {
switch (fiber.tag) {
case IndeterminateComponent:
case FunctionalComponent:
case ClassComponent$1:
case HostComponent$2:
var owner = fiber._debugOwner;
var source = fiber._debugSource;
var name = getComponentName_1(fiber);
var ownerName = null;
if (owner) {
ownerName = getComponentName_1(owner);
}
return describeComponentFrame(name, source, ownerName);
default:
return '';
}
}
// This function can only be called with a work-in-progress fiber and
// only during begin or complete phase. Do not call it under any other
// circumstances.
function getStackAddendumByWorkInProgressFiber$1(workInProgress) {
var info = '';
var node = workInProgress;
do {
info += describeFiber(node);
// Otherwise this return pointer might point to the wrong tree:
node = node['return'];
} while (node);
return info;
}
var ReactFiberComponentTreeHook = {
getStackAddendumByWorkInProgressFiber: getStackAddendumByWorkInProgressFiber$1
};
var ReactDebugCurrentFrame = ReactGlobalSharedState_1.ReactDebugCurrentFrame;
{
var getComponentName$3 = getComponentName_1;
var _require2$2 = ReactFiberComponentTreeHook,
getStackAddendumByWorkInProgressFiber = _require2$2.getStackAddendumByWorkInProgressFiber;
}
function getCurrentFiberOwnerName$2() {
{
var fiber = ReactDebugCurrentFiber.current;
if (fiber === null) {
return null;
}
if (fiber._debugOwner != null) {
return getComponentName$3(fiber._debugOwner);
}
}
return null;
}
function getCurrentFiberStackAddendum$1() {
{
var fiber = ReactDebugCurrentFiber.current;
if (fiber === null) {
return null;
}
// Safe because if current fiber exists, we are reconciling,
// and it is guaranteed to be the work-in-progress version.
return getStackAddendumByWorkInProgressFiber(fiber);
}
return null;
}
function resetCurrentFiber() {
ReactDebugCurrentFrame.getCurrentStack = null;
ReactDebugCurrentFiber.current = null;
ReactDebugCurrentFiber.phase = null;
}
function setCurrentFiber(fiber, phase) {
ReactDebugCurrentFrame.getCurrentStack = getCurrentFiberStackAddendum$1;
ReactDebugCurrentFiber.current = fiber;
ReactDebugCurrentFiber.phase = phase;
}
var ReactDebugCurrentFiber = {
current: null,
phase: null,
resetCurrentFiber: resetCurrentFiber,
setCurrentFiber: setCurrentFiber,
getCurrentFiberOwnerName: getCurrentFiberOwnerName$2,
getCurrentFiberStackAddendum: getCurrentFiberStackAddendum$1
};
var ReactDebugCurrentFiber_1 = ReactDebugCurrentFiber;
var warnValidStyle$1 = emptyFunction;
{
var camelizeStyleName$1 = camelizeStyleName;
var getComponentName$2 = getComponentName_1;
var warning$4 = require$$0;
var _require$3 = ReactDebugCurrentFiber_1,
getCurrentFiberOwnerName$1 = _require$3.getCurrentFiberOwnerName;
// 'msTransform' is correct, but the other prefixes should be capitalized
var badVendoredStyleNamePattern = /^(?:webkit|moz|o)[A-Z]/;
// style values shouldn't contain a semicolon
var badStyleValueWithSemicolonPattern = /;\s*$/;
var warnedStyleNames = {};
var warnedStyleValues = {};
var warnedForNaNValue = false;
var warnedForInfinityValue = false;
var warnHyphenatedStyleName = function (name, owner) {
if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {
return;
}
warnedStyleNames[name] = true;
warning$4(false, 'Unsupported style property %s. Did you mean %s?%s', name, camelizeStyleName$1(name), checkRenderMessage(owner));
};
var warnBadVendoredStyleName = function (name, owner) {
if (warnedStyleNames.hasOwnProperty(name) && warnedStyleNames[name]) {
return;
}
warnedStyleNames[name] = true;
warning$4(false, 'Unsupported vendor-prefixed style property %s. Did you mean %s?%s', name, name.charAt(0).toUpperCase() + name.slice(1), checkRenderMessage(owner));
};
var warnStyleValueWithSemicolon = function (name, value, owner) {
if (warnedStyleValues.hasOwnProperty(value) && warnedStyleValues[value]) {
return;
}
warnedStyleValues[value] = true;
warning$4(false, "Style property values shouldn't contain a semicolon.%s " + 'Try "%s: %s" instead.', checkRenderMessage(owner), name, value.replace(badStyleValueWithSemicolonPattern, ''));
};
var warnStyleValueIsNaN = function (name, value, owner) {
if (warnedForNaNValue) {
return;
}
warnedForNaNValue = true;
warning$4(false, '`NaN` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner));
};
var warnStyleValueIsInfinity = function (name, value, owner) {
if (warnedForInfinityValue) {
return;
}
warnedForInfinityValue = true;
warning$4(false, '`Infinity` is an invalid value for the `%s` css style property.%s', name, checkRenderMessage(owner));
};
var checkRenderMessage = function (owner) {
var ownerName;
if (owner != null) {
// Stack passes the owner manually all the way to CSSPropertyOperations.
ownerName = getComponentName$2(owner);
} else {
// Fiber doesn't pass it but uses ReactDebugCurrentFiber to track it.
// It is only enabled in development and tracks host components too.
ownerName = getCurrentFiberOwnerName$1();
// TODO: also report the stack.
}
if (ownerName) {
return '\n\nCheck the render method of `' + ownerName + '`.';
}
return '';
};
warnValidStyle$1 = function (name, value, component) {
var owner;
if (component) {
// TODO: this only works with Stack. Seems like we need to add unit tests?
owner = component._currentElement._owner;
}
if (name.indexOf('-') > -1) {
warnHyphenatedStyleName(name, owner);
} else if (badVendoredStyleNamePattern.test(name)) {
warnBadVendoredStyleName(name, owner);
} else if (badStyleValueWithSemicolonPattern.test(value)) {
warnStyleValueWithSemicolon(name, value, owner);
}
if (typeof value === 'number') {
if (isNaN(value)) {
warnStyleValueIsNaN(name, value, owner);
} else if (!isFinite(value)) {
warnStyleValueIsInfinity(name, value, owner);
}
}
};
}
var warnValidStyle_1 = warnValidStyle$1;
{
var hyphenateStyleName$1 = hyphenateStyleName;
var warnValidStyle = warnValidStyle_1;
}
var hasShorthandPropertyBug = false;
if (ExecutionEnvironment.canUseDOM) {
var tempStyle = document.createElement('div').style;
try {
// IE8 throws "Invalid argument." if resetting shorthand style properties.
tempStyle.font = '';
} catch (e) {
hasShorthandPropertyBug = true;
}
}
/**
* Operations for dealing with CSS properties.
*/
var CSSPropertyOperations = {
/**
* This creates a string that is expected to be equivalent to the style
* attribute generated by server-side rendering. It by-passes warnings and
* security checks so it's not safe to use this value for anything other than
* comparison. It is only used in DEV for SSR validation.
*/
createDangerousStringForStyles: function (styles) {
{
var serialized = '';
var delimiter = '';
for (var styleName in styles) {
if (!styles.hasOwnProperty(styleName)) {
continue;
}
var styleValue = styles[styleName];
if (styleValue != null) {
var isCustomProperty = styleName.indexOf('--') === 0;
serialized += delimiter + hyphenateStyleName$1(styleName) + ':';
serialized += dangerousStyleValue_1(styleName, styleValue, isCustomProperty);
delimiter = ';';
}
}
return serialized || null;
}
},
/**
* Sets the value for multiple styles on a node. If a value is specified as
* '' (empty string), the corresponding style property will be unset.
*
* @param {DOMElement} node
* @param {object} styles
* @param {ReactDOMComponent} component
*/
setValueForStyles: function (node, styles, component) {
var style = node.style;
for (var styleName in styles) {
if (!styles.hasOwnProperty(styleName)) {
continue;
}
var isCustomProperty = styleName.indexOf('--') === 0;
{
if (!isCustomProperty) {
warnValidStyle(styleName, styles[styleName], component);
}
}
var styleValue = dangerousStyleValue_1(styleName, styles[styleName], isCustomProperty);
if (styleName === 'float') {
styleName = 'cssFloat';
}
if (isCustomProperty) {
style.setProperty(styleName, styleValue);
} else if (styleValue) {
style[styleName] = styleValue;
} else {
var expansion = hasShorthandPropertyBug && CSSProperty_1.shorthandPropertyExpansions[styleName];
if (expansion) {
// Shorthand property that IE8 won't like unsetting, so unset each
// component to placate it
for (var individualStyleName in expansion) {
style[individualStyleName] = '';
}
} else {
style[styleName] = '';
}
}
}
}
};
var CSSPropertyOperations_1 = CSSPropertyOperations;
var ReactInvalidSetStateWarningHook = {};
{
var warning$7 = require$$0;
var processingChildContext = false;
var warnInvalidSetState = function () {
warning$7(!processingChildContext, 'setState(...): Cannot call setState() inside getChildContext()');
};
ReactInvalidSetStateWarningHook = {
onBeginProcessingChildContext: function () {
processingChildContext = true;
},
onEndProcessingChildContext: function () {
processingChildContext = false;
},
onSetState: function () {
warnInvalidSetState();
}
};
}
var ReactInvalidSetStateWarningHook_1 = ReactInvalidSetStateWarningHook;
/**
* Copyright (c) 2016-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule ReactHostOperationHistoryHook
*
*/
// Trust the developer to only use this with a true check
var ReactHostOperationHistoryHook = null;
{
var history = [];
ReactHostOperationHistoryHook = {
onHostOperation: function (operation) {
history.push(operation);
},
clearHistory: function () {
if (ReactHostOperationHistoryHook._preventClearing) {
// Should only be used for tests.
return;
}
history = [];
},
getHistory: function () {
return history;
}
};
}
var ReactHostOperationHistoryHook_1 = ReactHostOperationHistoryHook;
var ReactComponentTreeHook = ReactGlobalSharedState_1.ReactComponentTreeHook;
{
var warning$6 = require$$0;
}
// Trust the developer to only use this with a true check
var ReactDebugTool$1 = null;
{
var hooks = [];
var didHookThrowForEvent = {};
var callHook = function (event, fn, context, arg1, arg2, arg3, arg4, arg5) {
try {
fn.call(context, arg1, arg2, arg3, arg4, arg5);
} catch (e) {
warning$6(didHookThrowForEvent[event], 'Exception thrown by hook while handling %s: %s', event, e + '\n' + e.stack);
didHookThrowForEvent[event] = true;
}
};
var emitEvent = function (event, arg1, arg2, arg3, arg4, arg5) {
for (var i = 0; i < hooks.length; i++) {
var hook = hooks[i];
var fn = hook[event];
if (fn) {
callHook(event, fn, hook, arg1, arg2, arg3, arg4, arg5);
}
}
};
var isProfiling = false;
var flushHistory = [];
var lifeCycleTimerStack = [];
var currentFlushNesting = 0;
var currentFlushMeasurements = [];
var currentFlushStartTime = 0;
var currentTimerDebugID = null;
var currentTimerStartTime = 0;
var currentTimerNestedFlushDuration = 0;
var currentTimerType = null;
var lifeCycleTimerHasWarned = false;
var clearHistory = function () {
ReactComponentTreeHook.purgeUnmountedComponents();
ReactHostOperationHistoryHook_1.clearHistory();
};
var getTreeSnapshot = function (registeredIDs) {
return registeredIDs.reduce(function (tree, id) {
var ownerID = ReactComponentTreeHook.getOwnerID(id);
var parentID = ReactComponentTreeHook.getParentID(id);
tree[id] = {
displayName: ReactComponentTreeHook.getDisplayName(id),
text: ReactComponentTreeHook.getText(id),
updateCount: ReactComponentTreeHook.getUpdateCount(id),
childIDs: ReactComponentTreeHook.getChildIDs(id),
// Text nodes don't have owners but this is close enough.
ownerID: ownerID || parentID && ReactComponentTreeHook.getOwnerID(parentID) || 0,
parentID: parentID
};
return tree;
}, {});
};
var resetMeasurements = function () {
var previousStartTime = currentFlushStartTime;
var previousMeasurements = currentFlushMeasurements;
var previousOperations = ReactHostOperationHistoryHook_1.getHistory();
if (currentFlushNesting === 0) {
currentFlushStartTime = 0;
currentFlushMeasurements = [];
clearHistory();
return;
}
if (previousMeasurements.length || previousOperations.length) {
var registeredIDs = ReactComponentTreeHook.getRegisteredIDs();
flushHistory.push({
duration: performanceNow() - previousStartTime,
measurements: previousMeasurements || [],
operations: previousOperations || [],
treeSnapshot: getTreeSnapshot(registeredIDs)
});
}
clearHistory();
currentFlushStartTime = performanceNow();
currentFlushMeasurements = [];
};
var checkDebugID = function (debugID) {
var allowRoot = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
if (allowRoot && debugID === 0) {
return;
}
if (!debugID) {
warning$6(false, 'ReactDebugTool: debugID may not be empty.');
}
};
var beginLifeCycleTimer = function (debugID, timerType) {
if (currentFlushNesting === 0) {
return;
}
if (currentTimerType && !lifeCycleTimerHasWarned) {
warning$6(false, 'There is an internal error in the React performance measurement code.' + '\n\nDid not expect %s timer to start while %s timer is still in ' + 'progress for %s instance.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');
lifeCycleTimerHasWarned = true;
}
currentTimerStartTime = performanceNow();
currentTimerNestedFlushDuration = 0;
currentTimerDebugID = debugID;
currentTimerType = timerType;
};
var endLifeCycleTimer = function (debugID, timerType) {
if (currentFlushNesting === 0) {
return;
}
if (currentTimerType !== timerType && !lifeCycleTimerHasWarned) {
warning$6(false, 'There is an internal error in the React performance measurement code. ' + 'We did not expect %s timer to stop while %s timer is still in ' + 'progress for %s instance. Please report this as a bug in React.', timerType, currentTimerType || 'no', debugID === currentTimerDebugID ? 'the same' : 'another');
lifeCycleTimerHasWarned = true;
}
if (isProfiling) {
currentFlushMeasurements.push({
timerType: timerType,
instanceID: debugID,
duration: performanceNow() - currentTimerStartTime - currentTimerNestedFlushDuration
});
}
currentTimerStartTime = 0;
currentTimerNestedFlushDuration = 0;
currentTimerDebugID = null;
currentTimerType = null;
};
var pauseCurrentLifeCycleTimer = function () {
var currentTimer = {
startTime: currentTimerStartTime,
nestedFlushStartTime: performanceNow(),
debugID: currentTimerDebugID,
timerType: currentTimerType
};
lifeCycleTimerStack.push(currentTimer);
currentTimerStartTime = 0;
currentTimerNestedFlushDuration = 0;
currentTimerDebugID = null;
currentTimerType = null;
};
var resumeCurrentLifeCycleTimer = function () {
var _lifeCycleTimerStack$ = lifeCycleTimerStack.pop(),
startTime = _lifeCycleTimerStack$.startTime,
nestedFlushStartTime = _lifeCycleTimerStack$.nestedFlushStartTime,
debugID = _lifeCycleTimerStack$.debugID,
timerType = _lifeCycleTimerStack$.timerType;
var nestedFlushDuration = performanceNow() - nestedFlushStartTime;
currentTimerStartTime = startTime;
currentTimerNestedFlushDuration += nestedFlushDuration;
currentTimerDebugID = debugID;
currentTimerType = timerType;
};
var lastMarkTimeStamp = 0;
var canUsePerformanceMeasure = typeof performance !== 'undefined' && typeof performance.mark === 'function' && typeof performance.clearMarks === 'function' && typeof performance.measure === 'function' && typeof performance.clearMeasures === 'function';
var shouldMark = function (debugID) {
if (!isProfiling || !canUsePerformanceMeasure) {
return false;
}
var element = ReactComponentTreeHook.getElement(debugID);
if (element == null || typeof element !== 'object') {
return false;
}
var isHostElement = typeof element.type === 'string';
if (isHostElement) {
return false;
}
return true;
};
var markBegin = function (debugID, markType) {
if (!shouldMark(debugID)) {
return;
}
var markName = debugID + '::' + markType;
lastMarkTimeStamp = performanceNow();
performance.mark(markName);
};
var markEnd = function (debugID, markType) {
if (!shouldMark(debugID)) {
return;
}
var markName = debugID + '::' + markType;
var displayName = ReactComponentTreeHook.getDisplayName(debugID) || 'Unknown';
// Chrome has an issue of dropping markers recorded too fast:
// https://bugs.chromium.org/p/chromium/issues/detail?id=640652
// To work around this, we will not report very small measurements.
// I determined the magic number by tweaking it back and forth.
// 0.05ms was enough to prevent the issue, but I set it to 0.1ms to be safe.
// When the bug is fixed, we can `measure()` unconditionally if we want to.
var timeStamp = performanceNow();
if (timeStamp - lastMarkTimeStamp > 0.1) {
var measurementName = displayName + ' [' + markType + ']';
performance.measure(measurementName, markName);
}
performance.clearMarks(markName);
if (measurementName) {
performance.clearMeasures(measurementName);
}
};
ReactDebugTool$1 = {
addHook: function (hook) {
hooks.push(hook);
},
removeHook: function (hook) {
for (var i = 0; i < hooks.length; i++) {
if (hooks[i] === hook) {
hooks.splice(i, 1);
i--;
}
}
},
isProfiling: function () {
return isProfiling;
},
beginProfiling: function () {
if (isProfiling) {
return;
}
isProfiling = true;
flushHistory.length = 0;
resetMeasurements();
ReactDebugTool$1.addHook(ReactHostOperationHistoryHook_1);
},
endProfiling: function () {
if (!isProfiling) {
return;
}
isProfiling = false;
resetMeasurements();
ReactDebugTool$1.removeHook(ReactHostOperationHistoryHook_1);
},
getFlushHistory: function () {
return flushHistory;
},
onBeginFlush: function () {
currentFlushNesting++;
resetMeasurements();
pauseCurrentLifeCycleTimer();
emitEvent('onBeginFlush');
},
onEndFlush: function () {
resetMeasurements();
currentFlushNesting--;
resumeCurrentLifeCycleTimer();
emitEvent('onEndFlush');
},
onBeginLifeCycleTimer: function (debugID, timerType) {
checkDebugID(debugID);
emitEvent('onBeginLifeCycleTimer', debugID, timerType);
markBegin(debugID, timerType);
beginLifeCycleTimer(debugID, timerType);
},
onEndLifeCycleTimer: function (debugID, timerType) {
checkDebugID(debugID);
endLifeCycleTimer(debugID, timerType);
markEnd(debugID, timerType);
emitEvent('onEndLifeCycleTimer', debugID, timerType);
},
onBeginProcessingChildContext: function () {
emitEvent('onBeginProcessingChildContext');
},
onEndProcessingChildContext: function () {
emitEvent('onEndProcessingChildContext');
},
onHostOperation: function (operation) {
checkDebugID(operation.instanceID);
emitEvent('onHostOperation', operation);
},
onSetState: function () {
emitEvent('onSetState');
},
onSetChildren: function (debugID, childDebugIDs) {
checkDebugID(debugID);
childDebugIDs.forEach(checkDebugID);
emitEvent('onSetChildren', debugID, childDebugIDs);
},
onBeforeMountComponent: function (debugID, element, parentDebugID) {
checkDebugID(debugID);
checkDebugID(parentDebugID, true);
emitEvent('onBeforeMountComponent', debugID, element, parentDebugID);
markBegin(debugID, 'mount');
},
onMountComponent: function (debugID) {
checkDebugID(debugID);
markEnd(debugID, 'mount');
emitEvent('onMountComponent', debugID);
},
onBeforeUpdateComponent: function (debugID, element) {
checkDebugID(debugID);
emitEvent('onBeforeUpdateComponent', debugID, element);
markBegin(debugID, 'update');
},
onUpdateComponent: function (debugID) {
checkDebugID(debugID);
markEnd(debugID, 'update');
emitEvent('onUpdateComponent', debugID);
},
onBeforeUnmountComponent: function (debugID) {
checkDebugID(debugID);
emitEvent('onBeforeUnmountComponent', debugID);
markBegin(debugID, 'unmount');
},
onUnmountComponent: function (debugID) {
checkDebugID(debugID);
markEnd(debugID, 'unmount');
emitEvent('onUnmountComponent', debugID);
},
onTestEvent: function () {
emitEvent('onTestEvent');
}
};
ReactDebugTool$1.addHook(ReactInvalidSetStateWarningHook_1);
ReactDebugTool$1.addHook(ReactComponentTreeHook);
var url = ExecutionEnvironment.canUseDOM && window.location.href || '';
if (/[?&]react_perf\b/.test(url)) {
ReactDebugTool$1.beginProfiling();
}
}
var ReactDebugTool_1 = ReactDebugTool$1;
// Trust the developer to only use ReactInstrumentation with a true check
var debugTool = null;
{
var ReactDebugTool = ReactDebugTool_1;
debugTool = ReactDebugTool;
}
var ReactInstrumentation = { debugTool: debugTool };
{
var warning$5 = require$$0;
}
// isAttributeNameSafe() is currently duplicated in DOMMarkupOperations.
// TODO: Find a better place for this.
var VALID_ATTRIBUTE_NAME_REGEX = new RegExp('^[' + DOMProperty_1.ATTRIBUTE_NAME_START_CHAR + '][' + DOMProperty_1.ATTRIBUTE_NAME_CHAR + ']*$');
var illegalAttributeNameCache = {};
var validatedAttributeNameCache = {};
function isAttributeNameSafe(attributeName) {
if (validatedAttributeNameCache.hasOwnProperty(attributeName)) {
return true;
}
if (illegalAttributeNameCache.hasOwnProperty(attributeName)) {
return false;
}
if (VALID_ATTRIBUTE_NAME_REGEX.test(attributeName)) {
validatedAttributeNameCache[attributeName] = true;
return true;
}
illegalAttributeNameCache[attributeName] = true;
{
warning$5(false, 'Invalid attribute name: `%s`', attributeName);
}
return false;
}
// shouldIgnoreValue() is currently duplicated in DOMMarkupOperations.
// TODO: Find a better place for this.
function shouldIgnoreValue(propertyInfo, value) {
return value == null || propertyInfo.hasBooleanValue && !value || propertyInfo.hasNumericValue && isNaN(value) || propertyInfo.hasPositiveNumericValue && value < 1 || propertyInfo.hasOverloadedBooleanValue && value === false;
}
/**
* Operations for dealing with DOM properties.
*/
var DOMPropertyOperations = {
setAttributeForID: function (node, id) {
node.setAttribute(DOMProperty_1.ID_ATTRIBUTE_NAME, id);
},
setAttributeForRoot: function (node) {
node.setAttribute(DOMProperty_1.ROOT_ATTRIBUTE_NAME, '');
},
/**
* Get the value for a property on a node. Only used in DEV for SSR validation.
* The "expected" argument is used as a hint of what the expected value is.
* Some properties have multiple equivalent values.
*/
getValueForProperty: function (node, name, expected) {
{
var propertyInfo = DOMProperty_1.getPropertyInfo(name);
if (propertyInfo) {
var mutationMethod = propertyInfo.mutationMethod;
if (mutationMethod || propertyInfo.mustUseProperty) {
return node[propertyInfo.propertyName];
} else {
var attributeName = propertyInfo.attributeName;
var stringValue = null;
if (propertyInfo.hasOverloadedBooleanValue) {
if (node.hasAttribute(attributeName)) {
var value = node.getAttribute(attributeName);
if (value === '') {
return true;
}
if (shouldIgnoreValue(propertyInfo, expected)) {
return value;
}
if (value === '' + expected) {
return expected;
}
return value;
}
} else if (node.hasAttribute(attributeName)) {
if (shouldIgnoreValue(propertyInfo, expected)) {
// We had an attribute but shouldn't have had one, so read it
// for the error message.
return node.getAttribute(attributeName);
}
if (propertyInfo.hasBooleanValue) {
// If this was a boolean, it doesn't matter what the value is
// the fact that we have it is the same as the expected.
return expected;
}
// Even if this property uses a namespace we use getAttribute
// because we assume its namespaced name is the same as our config.
// To use getAttributeNS we need the local name which we don't have
// in our config atm.
stringValue = node.getAttribute(attributeName);
}
if (shouldIgnoreValue(propertyInfo, expected)) {
return stringValue === null ? expected : stringValue;
} else if (stringValue === '' + expected) {
return expected;
} else {
return stringValue;
}
}
}
}
},
/**
* Get the value for a attribute on a node. Only used in DEV for SSR validation.
* The third argument is used as a hint of what the expected value is. Some
* attributes have multiple equivalent values.
*/
getValueForAttribute: function (node, name, expected) {
{
if (!isAttributeNameSafe(name)) {
return;
}
if (!node.hasAttribute(name)) {
return expected === undefined ? undefined : null;
}
var value = node.getAttribute(name);
if (value === '' + expected) {
return expected;
}
return value;
}
},
/**
* Sets the value for a property on a node.
*
* @param {DOMElement} node
* @param {string} name
* @param {*} value
*/
setValueForProperty: function (node, name, value) {
var propertyInfo = DOMProperty_1.getPropertyInfo(name);
if (propertyInfo && DOMProperty_1.shouldSetAttribute(name, value)) {
var mutationMethod = propertyInfo.mutationMethod;
if (mutationMethod) {
mutationMethod(node, value);
} else if (shouldIgnoreValue(propertyInfo, value)) {
DOMPropertyOperations.deleteValueForProperty(node, name);
return;
} else if (propertyInfo.mustUseProperty) {
// Contrary to `setAttribute`, object properties are properly
// `toString`ed by IE8/9.
node[propertyInfo.propertyName] = value;
} else {
var attributeName = propertyInfo.attributeName;
var namespace = propertyInfo.attributeNamespace;
// `setAttribute` with objects becomes only `[object]` in IE8/9,
// ('' + value) makes it output the correct toString()-value.
if (namespace) {
node.setAttributeNS(namespace, attributeName, '' + value);
} else if (propertyInfo.hasBooleanValue || propertyInfo.hasOverloadedBooleanValue && value === true) {
node.setAttribute(attributeName, '');
} else {
node.setAttribute(attributeName, '' + value);
}
}
} else {
DOMPropertyOperations.setValueForAttribute(node, name, DOMProperty_1.shouldSetAttribute(name, value) ? value : null);
return;
}
{
var payload = {};
payload[name] = value;
ReactInstrumentation.debugTool.onHostOperation({
instanceID: ReactDOMComponentTree_1.getInstanceFromNode(node)._debugID,
type: 'update attribute',
payload: payload
});
}
},
setValueForAttribute: function (node, name, value) {
if (!isAttributeNameSafe(name)) {
return;
}
if (value == null) {
node.removeAttribute(name);
} else {
node.setAttribute(name, '' + value);
}
{
var payload = {};
payload[name] = value;
ReactInstrumentation.debugTool.onHostOperation({
instanceID: ReactDOMComponentTree_1.getInstanceFromNode(node)._debugID,
type: 'update attribute',
payload: payload
});
}
},
/**
* Deletes an attributes from a node.
*
* @param {DOMElement} node
* @param {string} name
*/
deleteValueForAttribute: function (node, name) {
node.removeAttribute(name);
{
ReactInstrumentation.debugTool.onHostOperation({
instanceID: ReactDOMComponentTree_1.getInstanceFromNode(node)._debugID,
type: 'remove attribute',
payload: name
});
}
},
/**
* Deletes the value for a property on a node.
*
* @param {DOMElement} node
* @param {string} name
*/
deleteValueForProperty: function (node, name) {
var propertyInfo = DOMProperty_1.getPropertyInfo(name);
if (propertyInfo) {
var mutationMethod = propertyInfo.mutationMethod;
if (mutationMethod) {
mutationMethod(node, undefined);
} else if (propertyInfo.mustUseProperty) {
var propName = propertyInfo.propertyName;
if (propertyInfo.hasBooleanValue) {
node[propName] = false;
} else {
node[propName] = '';
}
} else {
node.removeAttribute(propertyInfo.attributeName);
}
} else {
node.removeAttribute(name);
}
{
ReactInstrumentation.debugTool.onHostOperation({
instanceID: ReactDOMComponentTree_1.getInstanceFromNode(node)._debugID,
type: 'remove attribute',
payload: name
});
}
}
};
var DOMPropertyOperations_1 = DOMPropertyOperations;
var ReactControlledValuePropTypes = {
checkPropTypes: null
};
{
var warning$9 = require$$0;
var emptyFunction$2 = emptyFunction;
var PropTypes = propTypes;
var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';
ReactControlledValuePropTypes.checkPropTypes = emptyFunction$2;
var hasReadOnlyValue = {
button: true,
checkbox: true,
image: true,
hidden: true,
radio: true,
reset: true,
submit: true
};
var propTypes$1 = {
value: function (props, propName, componentName) {
if (!props[propName] || hasReadOnlyValue[props.type] || props.onChange || props.readOnly || props.disabled) {
return null;
}
return new Error('You provided a `value` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultValue`. Otherwise, ' + 'set either `onChange` or `readOnly`.');
},
checked: function (props, propName, componentName) {
if (!props[propName] || props.onChange || props.readOnly || props.disabled) {
return null;
}
return new Error('You provided a `checked` prop to a form field without an ' + '`onChange` handler. This will render a read-only field. If ' + 'the field should be mutable use `defaultChecked`. Otherwise, ' + 'set either `onChange` or `readOnly`.');
},
onChange: PropTypes.func
};
var loggedTypeFailures = {};
/**
* Provide a linked `value` attribute for controlled forms. You should not use
* this outside of the ReactDOM controlled form components.
*/
ReactControlledValuePropTypes.checkPropTypes = function (tagName, props, getStack) {
for (var propName in propTypes$1) {
if (propTypes$1.hasOwnProperty(propName)) {
var error = propTypes$1[propName](props, propName, tagName, 'prop', null, ReactPropTypesSecret);
}
if (error instanceof Error && !(error.message in loggedTypeFailures)) {
// Only monitor this failure once because there tends to be a lot of the
// same error.
loggedTypeFailures[error.message] = true;
warning$9(false, 'Failed form propType: %s%s', error.message, getStack());
}
}
};
}
var ReactControlledValuePropTypes_1 = ReactControlledValuePropTypes;
var getCurrentFiberOwnerName$3 = ReactDebugCurrentFiber_1.getCurrentFiberOwnerName;
{
var _require2$3 = ReactDebugCurrentFiber_1,
getCurrentFiberStackAddendum$2 = _require2$3.getCurrentFiberStackAddendum;
var warning$8 = require$$0;
}
var didWarnValueDefaultValue = false;
var didWarnCheckedDefaultChecked = false;
var didWarnControlledToUncontrolled = false;
var didWarnUncontrolledToControlled = false;
function isControlled(props) {
var usesChecked = props.type === 'checkbox' || props.type === 'radio';
return usesChecked ? props.checked != null : props.value != null;
}
/**
* Implements an <input> host component that allows setting these optional
* props: `checked`, `value`, `defaultChecked`, and `defaultValue`.
*
* If `checked` or `value` are not supplied (or null/undefined), user actions
* that affect the checked state or value will trigger updates to the element.
*
* If they are supplied (and not null/undefined), the rendered element will not
* trigger updates to the element. Instead, the props must change in order for
* the rendered element to be updated.
*
* The rendered element will be initialized as unchecked (or `defaultChecked`)
* with an empty value (or `defaultValue`).
*
* See http://www.w3.org/TR/2012/WD-html5-20121025/the-input-element.html
*/
var ReactDOMInput = {
getHostProps: function (element, props) {
var node = element;
var value = props.value;
var checked = props.checked;
var hostProps = _assign({
// Make sure we set .type before any other properties (setting .value
// before .type means .value is lost in IE11 and below)
type: undefined,
// Make sure we set .step before .value (setting .value before .step
// means .value is rounded on mount, based upon step precision)
step: undefined,
// Make sure we set .min & .max before .value (to ensure proper order
// in corner cases such as min or max deriving from value, e.g. Issue #7170)
min: undefined,
max: undefined
}, props, {
defaultChecked: undefined,
defaultValue: undefined,
value: value != null ? value : node._wrapperState.initialValue,
checked: checked != null ? checked : node._wrapperState.initialChecked
});
return hostProps;
},
initWrapperState: function (element, props) {
{
ReactControlledValuePropTypes_1.checkPropTypes('input', props, getCurrentFiberStackAddendum$2);
if (props.checked !== undefined && props.defaultChecked !== undefined && !didWarnCheckedDefaultChecked) {
warning$8(false, '%s contains an input of type %s with both checked and defaultChecked props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the checked prop, or the defaultChecked prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerName$3() || 'A component', props.type);
didWarnCheckedDefaultChecked = true;
}
if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue) {
warning$8(false, '%s contains an input of type %s with both value and defaultValue props. ' + 'Input elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled input ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components', getCurrentFiberOwnerName$3() || 'A component', props.type);
didWarnValueDefaultValue = true;
}
}
var defaultValue = props.defaultValue;
var node = element;
node._wrapperState = {
initialChecked: props.checked != null ? props.checked : props.defaultChecked,
initialValue: props.value != null ? props.value : defaultValue,
controlled: isControlled(props)
};
},
updateWrapper: function (element, props) {
var node = element;
{
var controlled = isControlled(props);
if (!node._wrapperState.controlled && controlled && !didWarnUncontrolledToControlled) {
warning$8(false, 'A component is changing an uncontrolled input of type %s to be controlled. ' + 'Input elements should not switch from uncontrolled to controlled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components%s', props.type, getCurrentFiberStackAddendum$2());
didWarnUncontrolledToControlled = true;
}
if (node._wrapperState.controlled && !controlled && !didWarnControlledToUncontrolled) {
warning$8(false, 'A component is changing a controlled input of type %s to be uncontrolled. ' + 'Input elements should not switch from controlled to uncontrolled (or vice versa). ' + 'Decide between using a controlled or uncontrolled input ' + 'element for the lifetime of the component. More info: https://fb.me/react-controlled-components%s', props.type, getCurrentFiberStackAddendum$2());
didWarnControlledToUncontrolled = true;
}
}
var checked = props.checked;
if (checked != null) {
DOMPropertyOperations_1.setValueForProperty(node, 'checked', checked || false);
}
var value = props.value;
if (value != null) {
if (value === 0 && node.value === '') {
node.value = '0';
// Note: IE9 reports a number inputs as 'text', so check props instead.
} else if (props.type === 'number') {
// Simulate `input.valueAsNumber`. IE9 does not support it
var valueAsNumber = parseFloat(node.value) || 0;
if (
// eslint-disable-next-line
value != valueAsNumber ||
// eslint-disable-next-line
value == valueAsNumber && node.value != value) {
// Cast `value` to a string to ensure the value is set correctly. While
// browsers typically do this as necessary, jsdom doesn't.
node.value = '' + value;
}
} else if (node.value !== '' + value) {
// Cast `value` to a string to ensure the value is set correctly. While
// browsers typically do this as necessary, jsdom doesn't.
node.value = '' + value;
}
} else {
if (props.value == null && props.defaultValue != null) {
// In Chrome, assigning defaultValue to certain input types triggers input validation.
// For number inputs, the display value loses trailing decimal points. For email inputs,
// Chrome raises "The specified value <x> is not a valid email address".
//
// Here we check to see if the defaultValue has actually changed, avoiding these problems
// when the user is inputting text
//
// https://github.com/facebook/react/issues/7253
if (node.defaultValue !== '' + props.defaultValue) {
node.defaultValue = '' + props.defaultValue;
}
}
if (props.checked == null && props.defaultChecked != null) {
node.defaultChecked = !!props.defaultChecked;
}
}
},
postMountWrapper: function (element, props) {
var node = element;
// Detach value from defaultValue. We won't do anything if we're working on
// submit or reset inputs as those values & defaultValues are linked. They
// are not resetable nodes so this operation doesn't matter and actually
// removes browser-default values (eg "Submit Query") when no value is
// provided.
switch (props.type) {
case 'submit':
case 'reset':
break;
case 'color':
case 'date':
case 'datetime':
case 'datetime-local':
case 'month':
case 'time':
case 'week':
// This fixes the no-show issue on iOS Safari and Android Chrome:
// https://github.com/facebook/react/issues/7233
node.value = '';
node.value = node.defaultValue;
break;
default:
node.value = node.value;
break;
}
// Normally, we'd just do `node.checked = node.checked` upon initial mount, less this bug
// this is needed to work around a chrome bug where setting defaultChecked
// will sometimes influence the value of checked (even after detachment).
// Reference: https://bugs.chromium.org/p/chromium/issues/detail?id=608416
// We need to temporarily unset name to avoid disrupting radio button groups.
var name = node.name;
if (name !== '') {
node.name = '';
}
node.defaultChecked = !node.defaultChecked;
node.defaultChecked = !node.defaultChecked;
if (name !== '') {
node.name = name;
}
},
restoreControlledState: function (element, props) {
var node = element;
ReactDOMInput.updateWrapper(node, props);
updateNamedCousins(node, props);
}
};
function updateNamedCousins(rootNode, props) {
var name = props.name;
if (props.type === 'radio' && name != null) {
var queryRoot = rootNode;
while (queryRoot.parentNode) {
queryRoot = queryRoot.parentNode;
}
// If `rootNode.form` was non-null, then we could try `form.elements`,
// but that sometimes behaves strangely in IE8. We could also try using
// `form.getElementsByName`, but that will only return direct children
// and won't include inputs that use the HTML5 `form=` attribute. Since
// the input might not even be in a form. It might not even be in the
// document. Let's just use the local `querySelectorAll` to ensure we don't
// miss anything.
var group = queryRoot.querySelectorAll('input[name=' + JSON.stringify('' + name) + '][type="radio"]');
for (var i = 0; i < group.length; i++) {
var otherNode = group[i];
if (otherNode === rootNode || otherNode.form !== rootNode.form) {
continue;
}
// This will throw if radio buttons rendered by different copies of React
// and the same name are rendered into the same form (same as #1939).
// That's probably okay; we don't support it just as we don't support
// mixing React radio buttons with non-React ones.
var otherProps = ReactDOMComponentTree_1.getFiberCurrentPropsFromNode(otherNode);
!otherProps ? invariant(false, 'ReactDOMInput: Mixing React and non-React radio inputs with the same `name` is not supported.') : void 0;
// If this is a controlled radio button group, forcing the input that
// was previously checked to update will cause it to be come re-checked
// as appropriate.
ReactDOMInput.updateWrapper(otherNode, otherProps);
}
}
}
var ReactDOMFiberInput = ReactDOMInput;
{
var warning$10 = require$$0;
}
function flattenChildren(children) {
var content = '';
// Flatten children and warn if they aren't strings or numbers;
// invalid types are ignored.
// We can silently skip them because invalid DOM nesting warning
// catches these cases in Fiber.
react.Children.forEach(children, function (child) {
if (child == null) {
return;
}
if (typeof child === 'string' || typeof child === 'number') {
content += child;
}
});
return content;
}
/**
* Implements an <option> host component that warns when `selected` is set.
*/
var ReactDOMOption = {
validateProps: function (element, props) {
// TODO (yungsters): Remove support for `selected` in <option>.
{
warning$10(props.selected == null, 'Use the `defaultValue` or `value` props on <select> instead of ' + 'setting `selected` on <option>.');
}
},
postMountWrapper: function (element, props) {
// value="" should make a value attribute (#6219)
if (props.value != null) {
element.setAttribute('value', props.value);
}
},
getHostProps: function (element, props) {
var hostProps = _assign({ children: undefined }, props);
var content = flattenChildren(props.children);
if (content) {
hostProps.children = content;
}
return hostProps;
}
};
var ReactDOMFiberOption = ReactDOMOption;
var getCurrentFiberOwnerName$4 = ReactDebugCurrentFiber_1.getCurrentFiberOwnerName;
{
var didWarnValueDefaultValue$1 = false;
var warning$11 = require$$0;
var _require2$4 = ReactDebugCurrentFiber_1,
getCurrentFiberStackAddendum$3 = _require2$4.getCurrentFiberStackAddendum;
}
function getDeclarationErrorAddendum() {
var ownerName = getCurrentFiberOwnerName$4();
if (ownerName) {
return '\n\nCheck the render method of `' + ownerName + '`.';
}
return '';
}
var valuePropNames = ['value', 'defaultValue'];
/**
* Validation function for `value` and `defaultValue`.
*/
function checkSelectPropTypes(props) {
ReactControlledValuePropTypes_1.checkPropTypes('select', props, getCurrentFiberStackAddendum$3);
for (var i = 0; i < valuePropNames.length; i++) {
var propName = valuePropNames[i];
if (props[propName] == null) {
continue;
}
var isArray = Array.isArray(props[propName]);
if (props.multiple && !isArray) {
warning$11(false, 'The `%s` prop supplied to <select> must be an array if ' + '`multiple` is true.%s', propName, getDeclarationErrorAddendum());
} else if (!props.multiple && isArray) {
warning$11(false, 'The `%s` prop supplied to <select> must be a scalar ' + 'value if `multiple` is false.%s', propName, getDeclarationErrorAddendum());
}
}
}
function updateOptions(node, multiple, propValue) {
var options = node.options;
if (multiple) {
var selectedValues = propValue;
var selectedValue = {};
for (var i = 0; i < selectedValues.length; i++) {
// Prefix to avoid chaos with special keys.
selectedValue['$' + selectedValues[i]] = true;
}
for (var _i = 0; _i < options.length; _i++) {
var selected = selectedValue.hasOwnProperty('$' + options[_i].value);
if (options[_i].selected !== selected) {
options[_i].selected = selected;
}
}
} else {
// Do not set `select.value` as exact behavior isn't consistent across all
// browsers for all cases.
var _selectedValue = '' + propValue;
var defaultSelected = null;
for (var _i2 = 0; _i2 < options.length; _i2++) {
if (options[_i2].value === _selectedValue) {
options[_i2].selected = true;
return;
}
if (defaultSelected === null && !options[_i2].disabled) {
defaultSelected = options[_i2];
}
}
if (defaultSelected !== null) {
defaultSelected.selected = true;
}
}
}
/**
* Implements a <select> host component that allows optionally setting the
* props `value` and `defaultValue`. If `multiple` is false, the prop must be a
* stringable. If `multiple` is true, the prop must be an array of stringables.
*
* If `value` is not supplied (or null/undefined), user actions that change the
* selected option will trigger updates to the rendered options.
*
* If it is supplied (and not null/undefined), the rendered options will not
* update in response to user actions. Instead, the `value` prop must change in
* order for the rendered options to update.
*
* If `defaultValue` is provided, any options with the supplied values will be
* selected.
*/
var ReactDOMSelect = {
getHostProps: function (element, props) {
return _assign({}, props, {
value: undefined
});
},
initWrapperState: function (element, props) {
var node = element;
{
checkSelectPropTypes(props);
}
var value = props.value;
node._wrapperState = {
initialValue: value != null ? value : props.defaultValue,
wasMultiple: !!props.multiple
};
{
if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValueDefaultValue$1) {
warning$11(false, 'Select elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled select ' + 'element and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components');
didWarnValueDefaultValue$1 = true;
}
}
},
postMountWrapper: function (element, props) {
var node = element;
node.multiple = !!props.multiple;
var value = props.value;
if (value != null) {
updateOptions(node, !!props.multiple, value);
} else if (props.defaultValue != null) {
updateOptions(node, !!props.multiple, props.defaultValue);
}
},
postUpdateWrapper: function (element, props) {
var node = element;
// After the initial mount, we control selected-ness manually so don't pass
// this value down
node._wrapperState.initialValue = undefined;
var wasMultiple = node._wrapperState.wasMultiple;
node._wrapperState.wasMultiple = !!props.multiple;
var value = props.value;
if (value != null) {
updateOptions(node, !!props.multiple, value);
} else if (wasMultiple !== !!props.multiple) {
// For simplicity, reapply `defaultValue` if `multiple` is toggled.
if (props.defaultValue != null) {
updateOptions(node, !!props.multiple, props.defaultValue);
} else {
// Revert the select back to its default unselected state.
updateOptions(node, !!props.multiple, props.multiple ? [] : '');
}
}
},
restoreControlledState: function (element, props) {
var node = element;
var value = props.value;
if (value != null) {
updateOptions(node, !!props.multiple, value);
}
}
};
var ReactDOMFiberSelect = ReactDOMSelect;
{
var warning$12 = require$$0;
var _require$4 = ReactDebugCurrentFiber_1,
getCurrentFiberStackAddendum$4 = _require$4.getCurrentFiberStackAddendum;
}
var didWarnValDefaultVal = false;
/**
* Implements a <textarea> host component that allows setting `value`, and
* `defaultValue`. This differs from the traditional DOM API because value is
* usually set as PCDATA children.
*
* If `value` is not supplied (or null/undefined), user actions that affect the
* value will trigger updates to the element.
*
* If `value` is supplied (and not null/undefined), the rendered element will
* not trigger updates to the element. Instead, the `value` prop must change in
* order for the rendered element to be updated.
*
* The rendered element will be initialized with an empty value, the prop
* `defaultValue` if specified, or the children content (deprecated).
*/
var ReactDOMTextarea = {
getHostProps: function (element, props) {
var node = element;
!(props.dangerouslySetInnerHTML == null) ? invariant(false, '`dangerouslySetInnerHTML` does not make sense on <textarea>.') : void 0;
// Always set children to the same thing. In IE9, the selection range will
// get reset if `textContent` is mutated. We could add a check in setTextContent
// to only set the value if/when the value differs from the node value (which would
// completely solve this IE9 bug), but Sebastian+Sophie seemed to like this
// solution. The value can be a boolean or object so that's why it's forced
// to be a string.
var hostProps = _assign({}, props, {
value: undefined,
defaultValue: undefined,
children: '' + node._wrapperState.initialValue
});
return hostProps;
},
initWrapperState: function (element, props) {
var node = element;
{
ReactControlledValuePropTypes_1.checkPropTypes('textarea', props, getCurrentFiberStackAddendum$4);
if (props.value !== undefined && props.defaultValue !== undefined && !didWarnValDefaultVal) {
warning$12(false, 'Textarea elements must be either controlled or uncontrolled ' + '(specify either the value prop, or the defaultValue prop, but not ' + 'both). Decide between using a controlled or uncontrolled textarea ' + 'and remove one of these props. More info: ' + 'https://fb.me/react-controlled-components');
didWarnValDefaultVal = true;
}
}
var value = props.value;
var initialValue = value;
// Only bother fetching default value if we're going to use it
if (value == null) {
var defaultValue = props.defaultValue;
// TODO (yungsters): Remove support for children content in <textarea>.
var children = props.children;
if (children != null) {
{
warning$12(false, 'Use the `defaultValue` or `value` props instead of setting ' + 'children on <textarea>.');
}
!(defaultValue == null) ? invariant(false, 'If you supply `defaultValue` on a <textarea>, do not pass children.') : void 0;
if (Array.isArray(children)) {
!(children.length <= 1) ? invariant(false, '<textarea> can only have at most one child.') : void 0;
children = children[0];
}
defaultValue = '' + children;
}
if (defaultValue == null) {
defaultValue = '';
}
initialValue = defaultValue;
}
node._wrapperState = {
initialValue: '' + initialValue
};
},
updateWrapper: function (element, props) {
var node = element;
var value = props.value;
if (value != null) {
// Cast `value` to a string to ensure the value is set correctly. While
// browsers typically do this as necessary, jsdom doesn't.
var newValue = '' + value;
// To avoid side effects (such as losing text selection), only set value if changed
if (newValue !== node.value) {
node.value = newValue;
}
if (props.defaultValue == null) {
node.defaultValue = newValue;
}
}
if (props.defaultValue != null) {
node.defaultValue = props.defaultValue;
}
},
postMountWrapper: function (element, props) {
var node = element;
// This is in postMount because we need access to the DOM node, which is not
// available until after the component has mounted.
var textContent = node.textContent;
// Only set node.value if textContent is equal to the expected
// initial value. In IE10/IE11 there is a bug where the placeholder attribute
// will populate textContent as well.
// https://developer.microsoft.com/microsoft-edge/platform/issues/101525/
if (textContent === node._wrapperState.initialValue) {
node.value = textContent;
}
},
restoreControlledState: function (element, props) {
// DOM component is still mounted; update
ReactDOMTextarea.updateWrapper(element, props);
}
};
var ReactDOMFiberTextarea = ReactDOMTextarea;
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule omittedCloseTags
*/
// For HTML, certain tags should omit their close tag. We keep a whitelist for
// those special-case tags.
var omittedCloseTags = {
area: true,
base: true,
br: true,
col: true,
embed: true,
hr: true,
img: true,
input: true,
keygen: true,
link: true,
meta: true,
param: true,
source: true,
track: true,
wbr: true
};
var omittedCloseTags_1 = omittedCloseTags;
// For HTML, certain tags cannot have children. This has the same purpose as
// `omittedCloseTags` except that `menuitem` should still have its closing tag.
var voidElementTags = _assign({
menuitem: true
}, omittedCloseTags_1);
var voidElementTags_1 = voidElementTags;
{
var warning$13 = require$$0;
}
var HTML$1 = '__html';
function getDeclarationErrorAddendum$1(getCurrentOwnerName) {
{
var ownerName = getCurrentOwnerName();
if (ownerName) {
// TODO: also report the stack.
return '\n\nThis DOM node was rendered by `' + ownerName + '`.';
}
}
return '';
}
function assertValidProps(tag, props, getCurrentOwnerName) {
if (!props) {
return;
}
// Note the use of `==` which checks for null or undefined.
if (voidElementTags_1[tag]) {
!(props.children == null && props.dangerouslySetInnerHTML == null) ? invariant(false, '%s is a void element tag and must neither have `children` nor use `dangerouslySetInnerHTML`.%s', tag, getDeclarationErrorAddendum$1(getCurrentOwnerName)) : void 0;
}
if (props.dangerouslySetInnerHTML != null) {
!(props.children == null) ? invariant(false, 'Can only set one of `children` or `props.dangerouslySetInnerHTML`.') : void 0;
!(typeof props.dangerouslySetInnerHTML === 'object' && HTML$1 in props.dangerouslySetInnerHTML) ? invariant(false, '`props.dangerouslySetInnerHTML` must be in the form `{__html: ...}`. Please visit https://fb.me/react-invariant-dangerously-set-inner-html for more information.') : void 0;
}
{
warning$13(props.suppressContentEditableWarning || !props.contentEditable || props.children == null, 'A component is `contentEditable` and contains `children` managed by ' + 'React. It is now your responsibility to guarantee that none of ' + 'those nodes are unexpectedly modified or duplicated. This is ' + 'probably not intentional.');
}
!(props.style == null || typeof props.style === 'object') ? invariant(false, 'The `style` prop expects a mapping from style properties to values, not a string. For example, style={{marginRight: spacing + \'em\'}} when using JSX.%s', getDeclarationErrorAddendum$1(getCurrentOwnerName)) : void 0;
}
var assertValidProps_1 = assertValidProps;
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule inputValueTracking
*
*/
function isCheckable(elem) {
var type = elem.type;
var nodeName = elem.nodeName;
return nodeName && nodeName.toLowerCase() === 'input' && (type === 'checkbox' || type === 'radio');
}
function getTracker(node) {
return node._valueTracker;
}
function detachTracker(node) {
node._valueTracker = null;
}
function getValueFromNode(node) {
var value = '';
if (!node) {
return value;
}
if (isCheckable(node)) {
value = node.checked ? 'true' : 'false';
} else {
value = node.value;
}
return value;
}
function trackValueOnNode(node) {
var valueField = isCheckable(node) ? 'checked' : 'value';
var descriptor = Object.getOwnPropertyDescriptor(node.constructor.prototype, valueField);
var currentValue = '' + node[valueField];
// if someone has already defined a value or Safari, then bail
// and don't track value will cause over reporting of changes,
// but it's better then a hard failure
// (needed for certain tests that spyOn input values and Safari)
if (node.hasOwnProperty(valueField) || typeof descriptor.get !== 'function' || typeof descriptor.set !== 'function') {
return;
}
Object.defineProperty(node, valueField, {
enumerable: descriptor.enumerable,
configurable: true,
get: function () {
return descriptor.get.call(this);
},
set: function (value) {
currentValue = '' + value;
descriptor.set.call(this, value);
}
});
var tracker = {
getValue: function () {
return currentValue;
},
setValue: function (value) {
currentValue = '' + value;
},
stopTracking: function () {
detachTracker(node);
delete node[valueField];
}
};
return tracker;
}
var inputValueTracking = {
// exposed for testing
_getTrackerFromNode: getTracker,
track: function (node) {
if (getTracker(node)) {
return;
}
// TODO: Once it's just Fiber we can move this to node._wrapperState
node._valueTracker = trackValueOnNode(node);
},
updateValueIfChanged: function (node) {
if (!node) {
return false;
}
var tracker = getTracker(node);
// if there is no tracker at this point it's unlikely
// that trying again will succeed
if (!tracker) {
return true;
}
var lastValue = tracker.getValue();
var nextValue = getValueFromNode(node);
if (nextValue !== lastValue) {
tracker.setValue(nextValue);
return true;
}
return false;
},
stopTracking: function (node) {
var tracker = getTracker(node);
if (tracker) {
tracker.stopTracking();
}
}
};
var inputValueTracking_1 = inputValueTracking;
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule isCustomComponent
*
*/
function isCustomComponent(tagName, props) {
if (tagName.indexOf('-') === -1) {
return typeof props.is === 'string';
}
switch (tagName) {
// These are reserved SVG and MathML elements.
// We don't mind this whitelist too much because we expect it to never grow.
// The alternative is to track the namespace in a few places which is convoluted.
// https://w3c.github.io/webcomponents/spec/custom/#custom-elements-core-concepts
case 'annotation-xml':
case 'color-profile':
case 'font-face':
case 'font-face-src':
case 'font-face-uri':
case 'font-face-format':
case 'font-face-name':
case 'missing-glyph':
return false;
default:
return true;
}
}
var isCustomComponent_1 = isCustomComponent;
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule createMicrosoftUnsafeLocalFunction
*/
/* globals MSApp */
/**
* Create a function which has 'unsafe' privileges (required by windows8 apps)
*/
var createMicrosoftUnsafeLocalFunction = function (func) {
if (typeof MSApp !== 'undefined' && MSApp.execUnsafeLocalFunction) {
return function (arg0, arg1, arg2, arg3) {
MSApp.execUnsafeLocalFunction(function () {
return func(arg0, arg1, arg2, arg3);
});
};
} else {
return func;
}
};
var createMicrosoftUnsafeLocalFunction_1 = createMicrosoftUnsafeLocalFunction;
var Namespaces$1 = DOMNamespaces.Namespaces;
// SVG temp container for IE lacking innerHTML
var reusableSVGContainer;
/**
* Set the innerHTML property of a node
*
* @param {DOMElement} node
* @param {string} html
* @internal
*/
var setInnerHTML = createMicrosoftUnsafeLocalFunction_1(function (node, html) {
// IE does not have innerHTML for SVG nodes, so instead we inject the
// new markup in a temp node and then move the child nodes across into
// the target node
if (node.namespaceURI === Namespaces$1.svg && !('innerHTML' in node)) {
reusableSVGContainer = reusableSVGContainer || document.createElement('div');
reusableSVGContainer.innerHTML = '<svg>' + html + '</svg>';
var svgNode = reusableSVGContainer.firstChild;
while (svgNode.firstChild) {
node.appendChild(svgNode.firstChild);
}
} else {
node.innerHTML = html;
}
});
var setInnerHTML_1 = setInnerHTML;
/**
* Copyright (c) 2016-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* Based on the escape-html library, which is used under the MIT License below:
*
* Copyright (c) 2012-2013 TJ Holowaychuk
* Copyright (c) 2015 Andreas Lubbe
* Copyright (c) 2015 Tiancheng "Timothy" Gu
*
* Permission is hereby granted, free of charge, to any person obtaining
* a copy of this software and associated documentation files (the
* 'Software'), to deal in the Software without restriction, including
* without limitation the rights to use, copy, modify, merge, publish,
* distribute, sublicense, and/or sell copies of the Software, and to
* permit persons to whom the Software is furnished to do so, subject to
* the following conditions:
*
* The above copyright notice and this permission notice shall be
* included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
*
* @providesModule escapeTextContentForBrowser
*/
// code copied and modified from escape-html
/**
* Module variables.
* @private
*/
var matchHtmlRegExp = /["'&<>]/;
/**
* Escape special characters in the given string of html.
*
* @param {string} string The string to escape for inserting into HTML
* @return {string}
* @public
*/
function escapeHtml(string) {
var str = '' + string;
var match = matchHtmlRegExp.exec(str);
if (!match) {
return str;
}
var escape;
var html = '';
var index = 0;
var lastIndex = 0;
for (index = match.index; index < str.length; index++) {
switch (str.charCodeAt(index)) {
case 34:
// "
escape = '&quot;';
break;
case 38:
// &
escape = '&amp;';
break;
case 39:
// '
escape = '&#x27;'; // modified from escape-html; used to be '&#39'
break;
case 60:
// <
escape = '&lt;';
break;
case 62:
// >
escape = '&gt;';
break;
default:
continue;
}
if (lastIndex !== index) {
html += str.substring(lastIndex, index);
}
lastIndex = index + 1;
html += escape;
}
return lastIndex !== index ? html + str.substring(lastIndex, index) : html;
}
// end code copied and modified from escape-html
/**
* Escapes text to prevent scripting attacks.
*
* @param {*} text Text value to escape.
* @return {string} An escaped string.
*/
function escapeTextContentForBrowser(text) {
if (typeof text === 'boolean' || typeof text === 'number') {
// this shortcircuit helps perf for types that we know will never have
// special characters, especially given that this function is used often
// for numeric dom ids.
return '' + text;
}
return escapeHtml(text);
}
var escapeTextContentForBrowser_1 = escapeTextContentForBrowser;
var TEXT_NODE$2 = HTMLNodeType_1.TEXT_NODE;
/**
* Set the textContent property of a node, ensuring that whitespace is preserved
* even in IE8. innerText is a poor substitute for textContent and, among many
* issues, inserts <br> instead of the literal newline chars. innerHTML behaves
* as it should.
*
* @param {DOMElement} node
* @param {string} text
* @internal
*/
var setTextContent = function (node, text) {
if (text) {
var firstChild = node.firstChild;
if (firstChild && firstChild === node.lastChild && firstChild.nodeType === TEXT_NODE$2) {
firstChild.nodeValue = text;
return;
}
}
node.textContent = text;
};
if (ExecutionEnvironment.canUseDOM) {
if (!('textContent' in document.documentElement)) {
setTextContent = function (node, text) {
if (node.nodeType === TEXT_NODE$2) {
node.nodeValue = text;
return;
}
setInnerHTML_1(node, escapeTextContentForBrowser_1(text));
};
}
}
var setTextContent_1 = setTextContent;
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule validAriaProperties
*/
var ariaProperties = {
'aria-current': 0, // state
'aria-details': 0,
'aria-disabled': 0, // state
'aria-hidden': 0, // state
'aria-invalid': 0, // state
'aria-keyshortcuts': 0,
'aria-label': 0,
'aria-roledescription': 0,
// Widget Attributes
'aria-autocomplete': 0,
'aria-checked': 0,
'aria-expanded': 0,
'aria-haspopup': 0,
'aria-level': 0,
'aria-modal': 0,
'aria-multiline': 0,
'aria-multiselectable': 0,
'aria-orientation': 0,
'aria-placeholder': 0,
'aria-pressed': 0,
'aria-readonly': 0,
'aria-required': 0,
'aria-selected': 0,
'aria-sort': 0,
'aria-valuemax': 0,
'aria-valuemin': 0,
'aria-valuenow': 0,
'aria-valuetext': 0,
// Live Region Attributes
'aria-atomic': 0,
'aria-busy': 0,
'aria-live': 0,
'aria-relevant': 0,
// Drag-and-Drop Attributes
'aria-dropeffect': 0,
'aria-grabbed': 0,
// Relationship Attributes
'aria-activedescendant': 0,
'aria-colcount': 0,
'aria-colindex': 0,
'aria-colspan': 0,
'aria-controls': 0,
'aria-describedby': 0,
'aria-errormessage': 0,
'aria-flowto': 0,
'aria-labelledby': 0,
'aria-owns': 0,
'aria-posinset': 0,
'aria-rowcount': 0,
'aria-rowindex': 0,
'aria-rowspan': 0,
'aria-setsize': 0
};
var validAriaProperties$1 = ariaProperties;
var warnedProperties = {};
var rARIA = new RegExp('^(aria)-[' + DOMProperty_1.ATTRIBUTE_NAME_CHAR + ']*$');
var rARIACamel = new RegExp('^(aria)[A-Z][' + DOMProperty_1.ATTRIBUTE_NAME_CHAR + ']*$');
var hasOwnProperty = Object.prototype.hasOwnProperty;
{
var warning$14 = require$$0;
var _require$5 = ReactGlobalSharedState_1,
ReactComponentTreeHook$1 = _require$5.ReactComponentTreeHook,
ReactDebugCurrentFrame$1 = _require$5.ReactDebugCurrentFrame;
var getStackAddendumByID = ReactComponentTreeHook$1.getStackAddendumByID;
var validAriaProperties = validAriaProperties$1;
}
function getStackAddendum(debugID) {
if (debugID != null) {
// This can only happen on Stack
return getStackAddendumByID(debugID);
} else {
// This can only happen on Fiber / Server
var stack = ReactDebugCurrentFrame$1.getStackAddendum();
return stack != null ? stack : '';
}
}
function validateProperty(tagName, name, debugID) {
if (hasOwnProperty.call(warnedProperties, name) && warnedProperties[name]) {
return true;
}
if (rARIACamel.test(name)) {
var ariaName = 'aria-' + name.slice(4).toLowerCase();
var correctName = validAriaProperties.hasOwnProperty(ariaName) ? ariaName : null;
// If this is an aria-* attribute, but is not listed in the known DOM
// DOM properties, then it is an invalid aria-* attribute.
if (correctName == null) {
warning$14(false, 'Invalid ARIA attribute `%s`. ARIA attributes follow the pattern aria-* and must be lowercase.%s', name, getStackAddendum(debugID));
warnedProperties[name] = true;
return true;
}
// aria-* attributes should be lowercase; suggest the lowercase version.
if (name !== correctName) {
warning$14(false, 'Invalid ARIA attribute `%s`. Did you mean `%s`?%s', name, correctName, getStackAddendum(debugID));
warnedProperties[name] = true;
return true;
}
}
if (rARIA.test(name)) {
var lowerCasedName = name.toLowerCase();
var standardName = validAriaProperties.hasOwnProperty(lowerCasedName) ? lowerCasedName : null;
// If this is an aria-* attribute, but is not listed in the known DOM
// DOM properties, then it is an invalid aria-* attribute.
if (standardName == null) {
warnedProperties[name] = true;
return false;
}
// aria-* attributes should be lowercase; suggest the lowercase version.
if (name !== standardName) {
warning$14(false, 'Unknown ARIA attribute `%s`. Did you mean `%s`?%s', name, standardName, getStackAddendum(debugID));
warnedProperties[name] = true;
return true;
}
}
return true;
}
function warnInvalidARIAProps(type, props, debugID) {
var invalidProps = [];
for (var key in props) {
var isValid = validateProperty(type, key, debugID);
if (!isValid) {
invalidProps.push(key);
}
}
var unknownPropString = invalidProps.map(function (prop) {
return '`' + prop + '`';
}).join(', ');
if (invalidProps.length === 1) {
warning$14(false, 'Invalid aria prop %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop%s', unknownPropString, type, getStackAddendum(debugID));
} else if (invalidProps.length > 1) {
warning$14(false, 'Invalid aria props %s on <%s> tag. ' + 'For details, see https://fb.me/invalid-aria-prop%s', unknownPropString, type, getStackAddendum(debugID));
}
}
function validateProperties(type, props, debugID /* Stack only */) {
if (isCustomComponent_1(type, props)) {
return;
}
warnInvalidARIAProps(type, props, debugID);
}
var ReactDOMInvalidARIAHook$1 = {
// Fiber
validateProperties: validateProperties,
// Stack
onBeforeMountComponent: function (debugID, element) {
if (true && element != null && typeof element.type === 'string') {
validateProperties(element.type, element.props, debugID);
}
},
onBeforeUpdateComponent: function (debugID, element) {
if (true && element != null && typeof element.type === 'string') {
validateProperties(element.type, element.props, debugID);
}
}
};
var ReactDOMInvalidARIAHook_1 = ReactDOMInvalidARIAHook$1;
{
var warning$15 = require$$0;
var _require$6 = ReactGlobalSharedState_1,
ReactComponentTreeHook$2 = _require$6.ReactComponentTreeHook,
ReactDebugCurrentFrame$2 = _require$6.ReactDebugCurrentFrame;
var getStackAddendumByID$1 = ReactComponentTreeHook$2.getStackAddendumByID;
}
var didWarnValueNull = false;
function getStackAddendum$1(debugID) {
if (debugID != null) {
// This can only happen on Stack
return getStackAddendumByID$1(debugID);
} else {
// This can only happen on Fiber / Server
var stack = ReactDebugCurrentFrame$2.getStackAddendum();
return stack != null ? stack : '';
}
}
function validateProperties$1(type, props, debugID /* Stack only */) {
if (type !== 'input' && type !== 'textarea' && type !== 'select') {
return;
}
if (props != null && props.value === null && !didWarnValueNull) {
warning$15(false, '`value` prop on `%s` should not be null. ' + 'Consider using the empty string to clear the component or `undefined` ' + 'for uncontrolled components.%s', type, getStackAddendum$1(debugID));
didWarnValueNull = true;
}
}
var ReactDOMNullInputValuePropHook$1 = {
// Fiber
validateProperties: validateProperties$1,
// Stack
onBeforeMountComponent: function (debugID, element) {
if (true && element != null && typeof element.type === 'string') {
validateProperties$1(element.type, element.props, debugID);
}
},
onBeforeUpdateComponent: function (debugID, element) {
if (true && element != null && typeof element.type === 'string') {
validateProperties$1(element.type, element.props, debugID);
}
}
};
var ReactDOMNullInputValuePropHook_1 = ReactDOMNullInputValuePropHook$1;
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule possibleStandardNames
*/
// When adding attributes to the HTML or SVG whitelist, be sure to
// also add them to this module to ensure casing and incorrect name
// warnings.
var possibleStandardNames$1 = {
// HTML
accept: 'accept',
acceptcharset: 'acceptCharset',
'accept-charset': 'acceptCharset',
accesskey: 'accessKey',
action: 'action',
allowfullscreen: 'allowFullScreen',
allowtransparency: 'allowTransparency',
alt: 'alt',
as: 'as',
async: 'async',
autocapitalize: 'autoCapitalize',
autocomplete: 'autoComplete',
autocorrect: 'autoCorrect',
autofocus: 'autoFocus',
autoplay: 'autoPlay',
autosave: 'autoSave',
capture: 'capture',
cellpadding: 'cellPadding',
cellspacing: 'cellSpacing',
challenge: 'challenge',
charset: 'charSet',
checked: 'checked',
children: 'children',
cite: 'cite',
'class': 'className',
classid: 'classID',
classname: 'className',
cols: 'cols',
colspan: 'colSpan',
content: 'content',
contenteditable: 'contentEditable',
contextmenu: 'contextMenu',
controls: 'controls',
controlslist: 'controlsList',
coords: 'coords',
crossorigin: 'crossOrigin',
dangerouslysetinnerhtml: 'dangerouslySetInnerHTML',
data: 'data',
datetime: 'dateTime',
'default': 'default',
defaultchecked: 'defaultChecked',
defaultvalue: 'defaultValue',
defer: 'defer',
dir: 'dir',
disabled: 'disabled',
download: 'download',
draggable: 'draggable',
enctype: 'encType',
'for': 'htmlFor',
form: 'form',
formmethod: 'formMethod',
formaction: 'formAction',
formenctype: 'formEncType',
formnovalidate: 'formNoValidate',
formtarget: 'formTarget',
frameborder: 'frameBorder',
headers: 'headers',
height: 'height',
hidden: 'hidden',
high: 'high',
href: 'href',
hreflang: 'hrefLang',
htmlfor: 'htmlFor',
httpequiv: 'httpEquiv',
'http-equiv': 'httpEquiv',
icon: 'icon',
id: 'id',
innerhtml: 'innerHTML',
inputmode: 'inputMode',
integrity: 'integrity',
is: 'is',
itemid: 'itemID',
itemprop: 'itemProp',
itemref: 'itemRef',
itemscope: 'itemScope',
itemtype: 'itemType',
keyparams: 'keyParams',
keytype: 'keyType',
kind: 'kind',
label: 'label',
lang: 'lang',
list: 'list',
loop: 'loop',
low: 'low',
manifest: 'manifest',
marginwidth: 'marginWidth',
marginheight: 'marginHeight',
max: 'max',
maxlength: 'maxLength',
media: 'media',
mediagroup: 'mediaGroup',
method: 'method',
min: 'min',
minlength: 'minLength',
multiple: 'multiple',
muted: 'muted',
name: 'name',
nonce: 'nonce',
novalidate: 'noValidate',
open: 'open',
optimum: 'optimum',
pattern: 'pattern',
placeholder: 'placeholder',
playsinline: 'playsInline',
poster: 'poster',
preload: 'preload',
profile: 'profile',
radiogroup: 'radioGroup',
readonly: 'readOnly',
referrerpolicy: 'referrerPolicy',
rel: 'rel',
required: 'required',
reversed: 'reversed',
role: 'role',
rows: 'rows',
rowspan: 'rowSpan',
sandbox: 'sandbox',
scope: 'scope',
scoped: 'scoped',
scrolling: 'scrolling',
seamless: 'seamless',
selected: 'selected',
shape: 'shape',
size: 'size',
sizes: 'sizes',
span: 'span',
spellcheck: 'spellCheck',
src: 'src',
srcdoc: 'srcDoc',
srclang: 'srcLang',
srcset: 'srcSet',
start: 'start',
step: 'step',
style: 'style',
summary: 'summary',
tabindex: 'tabIndex',
target: 'target',
title: 'title',
type: 'type',
usemap: 'useMap',
value: 'value',
width: 'width',
wmode: 'wmode',
wrap: 'wrap',
// SVG
about: 'about',
accentheight: 'accentHeight',
'accent-height': 'accentHeight',
accumulate: 'accumulate',
additive: 'additive',
alignmentbaseline: 'alignmentBaseline',
'alignment-baseline': 'alignmentBaseline',
allowreorder: 'allowReorder',
alphabetic: 'alphabetic',
amplitude: 'amplitude',
arabicform: 'arabicForm',
'arabic-form': 'arabicForm',
ascent: 'ascent',
attributename: 'attributeName',
attributetype: 'attributeType',
autoreverse: 'autoReverse',
azimuth: 'azimuth',
basefrequency: 'baseFrequency',
baselineshift: 'baselineShift',
'baseline-shift': 'baselineShift',
baseprofile: 'baseProfile',
bbox: 'bbox',
begin: 'begin',
bias: 'bias',
by: 'by',
calcmode: 'calcMode',
capheight: 'capHeight',
'cap-height': 'capHeight',
clip: 'clip',
clippath: 'clipPath',
'clip-path': 'clipPath',
clippathunits: 'clipPathUnits',
cliprule: 'clipRule',
'clip-rule': 'clipRule',
color: 'color',
colorinterpolation: 'colorInterpolation',
'color-interpolation': 'colorInterpolation',
colorinterpolationfilters: 'colorInterpolationFilters',
'color-interpolation-filters': 'colorInterpolationFilters',
colorprofile: 'colorProfile',
'color-profile': 'colorProfile',
colorrendering: 'colorRendering',
'color-rendering': 'colorRendering',
contentscripttype: 'contentScriptType',
contentstyletype: 'contentStyleType',
cursor: 'cursor',
cx: 'cx',
cy: 'cy',
d: 'd',
datatype: 'datatype',
decelerate: 'decelerate',
descent: 'descent',
diffuseconstant: 'diffuseConstant',
direction: 'direction',
display: 'display',
divisor: 'divisor',
dominantbaseline: 'dominantBaseline',
'dominant-baseline': 'dominantBaseline',
dur: 'dur',
dx: 'dx',
dy: 'dy',
edgemode: 'edgeMode',
elevation: 'elevation',
enablebackground: 'enableBackground',
'enable-background': 'enableBackground',
end: 'end',
exponent: 'exponent',
externalresourcesrequired: 'externalResourcesRequired',
fill: 'fill',
fillopacity: 'fillOpacity',
'fill-opacity': 'fillOpacity',
fillrule: 'fillRule',
'fill-rule': 'fillRule',
filter: 'filter',
filterres: 'filterRes',
filterunits: 'filterUnits',
floodopacity: 'floodOpacity',
'flood-opacity': 'floodOpacity',
floodcolor: 'floodColor',
'flood-color': 'floodColor',
focusable: 'focusable',
fontfamily: 'fontFamily',
'font-family': 'fontFamily',
fontsize: 'fontSize',
'font-size': 'fontSize',
fontsizeadjust: 'fontSizeAdjust',
'font-size-adjust': 'fontSizeAdjust',
fontstretch: 'fontStretch',
'font-stretch': 'fontStretch',
fontstyle: 'fontStyle',
'font-style': 'fontStyle',
fontvariant: 'fontVariant',
'font-variant': 'fontVariant',
fontweight: 'fontWeight',
'font-weight': 'fontWeight',
format: 'format',
from: 'from',
fx: 'fx',
fy: 'fy',
g1: 'g1',
g2: 'g2',
glyphname: 'glyphName',
'glyph-name': 'glyphName',
glyphorientationhorizontal: 'glyphOrientationHorizontal',
'glyph-orientation-horizontal': 'glyphOrientationHorizontal',
glyphorientationvertical: 'glyphOrientationVertical',
'glyph-orientation-vertical': 'glyphOrientationVertical',
glyphref: 'glyphRef',
gradienttransform: 'gradientTransform',
gradientunits: 'gradientUnits',
hanging: 'hanging',
horizadvx: 'horizAdvX',
'horiz-adv-x': 'horizAdvX',
horizoriginx: 'horizOriginX',
'horiz-origin-x': 'horizOriginX',
ideographic: 'ideographic',
imagerendering: 'imageRendering',
'image-rendering': 'imageRendering',
in2: 'in2',
'in': 'in',
inlist: 'inlist',
intercept: 'intercept',
k1: 'k1',
k2: 'k2',
k3: 'k3',
k4: 'k4',
k: 'k',
kernelmatrix: 'kernelMatrix',
kernelunitlength: 'kernelUnitLength',
kerning: 'kerning',
keypoints: 'keyPoints',
keysplines: 'keySplines',
keytimes: 'keyTimes',
lengthadjust: 'lengthAdjust',
letterspacing: 'letterSpacing',
'letter-spacing': 'letterSpacing',
lightingcolor: 'lightingColor',
'lighting-color': 'lightingColor',
limitingconeangle: 'limitingConeAngle',
local: 'local',
markerend: 'markerEnd',
'marker-end': 'markerEnd',
markerheight: 'markerHeight',
markermid: 'markerMid',
'marker-mid': 'markerMid',
markerstart: 'markerStart',
'marker-start': 'markerStart',
markerunits: 'markerUnits',
markerwidth: 'markerWidth',
mask: 'mask',
maskcontentunits: 'maskContentUnits',
maskunits: 'maskUnits',
mathematical: 'mathematical',
mode: 'mode',
numoctaves: 'numOctaves',
offset: 'offset',
opacity: 'opacity',
operator: 'operator',
order: 'order',
orient: 'orient',
orientation: 'orientation',
origin: 'origin',
overflow: 'overflow',
overlineposition: 'overlinePosition',
'overline-position': 'overlinePosition',
overlinethickness: 'overlineThickness',
'overline-thickness': 'overlineThickness',
paintorder: 'paintOrder',
'paint-order': 'paintOrder',
panose1: 'panose1',
'panose-1': 'panose1',
pathlength: 'pathLength',
patterncontentunits: 'patternContentUnits',
patterntransform: 'patternTransform',
patternunits: 'patternUnits',
pointerevents: 'pointerEvents',
'pointer-events': 'pointerEvents',
points: 'points',
pointsatx: 'pointsAtX',
pointsaty: 'pointsAtY',
pointsatz: 'pointsAtZ',
prefix: 'prefix',
preservealpha: 'preserveAlpha',
preserveaspectratio: 'preserveAspectRatio',
primitiveunits: 'primitiveUnits',
property: 'property',
r: 'r',
radius: 'radius',
refx: 'refX',
refy: 'refY',
renderingintent: 'renderingIntent',
'rendering-intent': 'renderingIntent',
repeatcount: 'repeatCount',
repeatdur: 'repeatDur',
requiredextensions: 'requiredExtensions',
requiredfeatures: 'requiredFeatures',
resource: 'resource',
restart: 'restart',
result: 'result',
results: 'results',
rotate: 'rotate',
rx: 'rx',
ry: 'ry',
scale: 'scale',
security: 'security',
seed: 'seed',
shaperendering: 'shapeRendering',
'shape-rendering': 'shapeRendering',
slope: 'slope',
spacing: 'spacing',
specularconstant: 'specularConstant',
specularexponent: 'specularExponent',
speed: 'speed',
spreadmethod: 'spreadMethod',
startoffset: 'startOffset',
stddeviation: 'stdDeviation',
stemh: 'stemh',
stemv: 'stemv',
stitchtiles: 'stitchTiles',
stopcolor: 'stopColor',
'stop-color': 'stopColor',
stopopacity: 'stopOpacity',
'stop-opacity': 'stopOpacity',
strikethroughposition: 'strikethroughPosition',
'strikethrough-position': 'strikethroughPosition',
strikethroughthickness: 'strikethroughThickness',
'strikethrough-thickness': 'strikethroughThickness',
string: 'string',
stroke: 'stroke',
strokedasharray: 'strokeDasharray',
'stroke-dasharray': 'strokeDasharray',
strokedashoffset: 'strokeDashoffset',
'stroke-dashoffset': 'strokeDashoffset',
strokelinecap: 'strokeLinecap',
'stroke-linecap': 'strokeLinecap',
strokelinejoin: 'strokeLinejoin',
'stroke-linejoin': 'strokeLinejoin',
strokemiterlimit: 'strokeMiterlimit',
'stroke-miterlimit': 'strokeMiterlimit',
strokewidth: 'strokeWidth',
'stroke-width': 'strokeWidth',
strokeopacity: 'strokeOpacity',
'stroke-opacity': 'strokeOpacity',
suppresscontenteditablewarning: 'suppressContentEditableWarning',
surfacescale: 'surfaceScale',
systemlanguage: 'systemLanguage',
tablevalues: 'tableValues',
targetx: 'targetX',
targety: 'targetY',
textanchor: 'textAnchor',
'text-anchor': 'textAnchor',
textdecoration: 'textDecoration',
'text-decoration': 'textDecoration',
textlength: 'textLength',
textrendering: 'textRendering',
'text-rendering': 'textRendering',
to: 'to',
transform: 'transform',
'typeof': 'typeof',
u1: 'u1',
u2: 'u2',
underlineposition: 'underlinePosition',
'underline-position': 'underlinePosition',
underlinethickness: 'underlineThickness',
'underline-thickness': 'underlineThickness',
unicode: 'unicode',
unicodebidi: 'unicodeBidi',
'unicode-bidi': 'unicodeBidi',
unicoderange: 'unicodeRange',
'unicode-range': 'unicodeRange',
unitsperem: 'unitsPerEm',
'units-per-em': 'unitsPerEm',
unselectable: 'unselectable',
valphabetic: 'vAlphabetic',
'v-alphabetic': 'vAlphabetic',
values: 'values',
vectoreffect: 'vectorEffect',
'vector-effect': 'vectorEffect',
version: 'version',
vertadvy: 'vertAdvY',
'vert-adv-y': 'vertAdvY',
vertoriginx: 'vertOriginX',
'vert-origin-x': 'vertOriginX',
vertoriginy: 'vertOriginY',
'vert-origin-y': 'vertOriginY',
vhanging: 'vHanging',
'v-hanging': 'vHanging',
videographic: 'vIdeographic',
'v-ideographic': 'vIdeographic',
viewbox: 'viewBox',
viewtarget: 'viewTarget',
visibility: 'visibility',
vmathematical: 'vMathematical',
'v-mathematical': 'vMathematical',
vocab: 'vocab',
widths: 'widths',
wordspacing: 'wordSpacing',
'word-spacing': 'wordSpacing',
writingmode: 'writingMode',
'writing-mode': 'writingMode',
x1: 'x1',
x2: 'x2',
x: 'x',
xchannelselector: 'xChannelSelector',
xheight: 'xHeight',
'x-height': 'xHeight',
xlinkactuate: 'xlinkActuate',
'xlink:actuate': 'xlinkActuate',
xlinkarcrole: 'xlinkArcrole',
'xlink:arcrole': 'xlinkArcrole',
xlinkhref: 'xlinkHref',
'xlink:href': 'xlinkHref',
xlinkrole: 'xlinkRole',
'xlink:role': 'xlinkRole',
xlinkshow: 'xlinkShow',
'xlink:show': 'xlinkShow',
xlinktitle: 'xlinkTitle',
'xlink:title': 'xlinkTitle',
xlinktype: 'xlinkType',
'xlink:type': 'xlinkType',
xmlbase: 'xmlBase',
'xml:base': 'xmlBase',
xmllang: 'xmlLang',
'xml:lang': 'xmlLang',
xmlns: 'xmlns',
'xml:space': 'xmlSpace',
xmlnsxlink: 'xmlnsXlink',
'xmlns:xlink': 'xmlnsXlink',
xmlspace: 'xmlSpace',
y1: 'y1',
y2: 'y2',
y: 'y',
ychannelselector: 'yChannelSelector',
z: 'z',
zoomandpan: 'zoomAndPan'
};
var possibleStandardNames_1 = possibleStandardNames$1;
{
var warning$16 = require$$0;
var _require$7 = ReactGlobalSharedState_1,
ReactComponentTreeHook$3 = _require$7.ReactComponentTreeHook,
ReactDebugCurrentFrame$3 = _require$7.ReactDebugCurrentFrame;
var getStackAddendumByID$2 = ReactComponentTreeHook$3.getStackAddendumByID;
}
function getStackAddendum$2(debugID) {
if (debugID != null) {
// This can only happen on Stack
return getStackAddendumByID$2(debugID);
} else {
// This can only happen on Fiber / Server
var stack = ReactDebugCurrentFrame$3.getStackAddendum();
return stack != null ? stack : '';
}
}
{
var warnedProperties$1 = {};
var hasOwnProperty$1 = Object.prototype.hasOwnProperty;
var EVENT_NAME_REGEX = /^on[A-Z]/;
var rARIA$1 = new RegExp('^(aria)-[' + DOMProperty_1.ATTRIBUTE_NAME_CHAR + ']*$');
var rARIACamel$1 = new RegExp('^(aria)[A-Z][' + DOMProperty_1.ATTRIBUTE_NAME_CHAR + ']*$');
var possibleStandardNames = possibleStandardNames_1;
var validateProperty$1 = function (tagName, name, value, debugID) {
if (hasOwnProperty$1.call(warnedProperties$1, name) && warnedProperties$1[name]) {
return true;
}
if (EventPluginRegistry_1.registrationNameModules.hasOwnProperty(name)) {
return true;
}
if (EventPluginRegistry_1.plugins.length === 0 && EVENT_NAME_REGEX.test(name)) {
// If no event plugins have been injected, we might be in a server environment.
// Don't check events in this case.
return true;
}
var lowerCasedName = name.toLowerCase();
var registrationName = EventPluginRegistry_1.possibleRegistrationNames.hasOwnProperty(lowerCasedName) ? EventPluginRegistry_1.possibleRegistrationNames[lowerCasedName] : null;
if (registrationName != null) {
warning$16(false, 'Invalid event handler property `%s`. Did you mean `%s`?%s', name, registrationName, getStackAddendum$2(debugID));
warnedProperties$1[name] = true;
return true;
}
if (lowerCasedName.indexOf('on') === 0) {
warning$16(false, 'Unknown event handler property `%s`. It will be ignored.%s', name, getStackAddendum$2(debugID));
warnedProperties$1[name] = true;
return true;
}
// Let the ARIA attribute hook validate ARIA attributes
if (rARIA$1.test(name) || rARIACamel$1.test(name)) {
return true;
}
if (lowerCasedName === 'onfocusin' || lowerCasedName === 'onfocusout') {
warning$16(false, 'React uses onFocus and onBlur instead of onFocusIn and onFocusOut. ' + 'All React events are normalized to bubble, so onFocusIn and onFocusOut ' + 'are not needed/supported by React.');
warnedProperties$1[name] = true;
return true;
}
if (lowerCasedName === 'innerhtml') {
warning$16(false, 'Directly setting property `innerHTML` is not permitted. ' + 'For more information, lookup documentation on `dangerouslySetInnerHTML`.');
warnedProperties$1[name] = true;
return true;
}
if (lowerCasedName === 'aria') {
warning$16(false, 'The `aria` attribute is reserved for future use in React. ' + 'Pass individual `aria-` attributes instead.');
warnedProperties$1[name] = true;
return true;
}
if (lowerCasedName === 'is' && value !== null && value !== undefined && typeof value !== 'string') {
warning$16(false, 'Received a `%s` for string attribute `is`. If this is expected, cast ' + 'the value to a string.%s', typeof value, getStackAddendum$2(debugID));
warnedProperties$1[name] = true;
return true;
}
if (typeof value === 'number' && isNaN(value)) {
warning$16(false, 'Received NaN for numeric attribute `%s`. If this is expected, cast ' + 'the value to a string.%s', name, getStackAddendum$2(debugID));
warnedProperties$1[name] = true;
return true;
}
var isReserved = DOMProperty_1.isReservedProp(name);
// Known attributes should match the casing specified in the property config.
if (possibleStandardNames.hasOwnProperty(lowerCasedName)) {
var standardName = possibleStandardNames[lowerCasedName];
if (standardName !== name) {
warning$16(false, 'Invalid DOM property `%s`. Did you mean `%s`?%s', name, standardName, getStackAddendum$2(debugID));
warnedProperties$1[name] = true;
return true;
}
} else if (!isReserved && name !== lowerCasedName) {
// Unknown attributes should have lowercase casing since that's how they
// will be cased anyway with server rendering.
warning$16(false, 'React does not recognize the `%s` prop on a DOM element. If you ' + 'intentionally want it to appear in the DOM as a custom ' + 'attribute, spell it as lowercase `%s` instead. ' + 'If you accidentally passed it from a parent component, remove ' + 'it from the DOM element.%s', name, lowerCasedName, getStackAddendum$2(debugID));
warnedProperties$1[name] = true;
return true;
}
if (typeof value === 'boolean') {
warning$16(DOMProperty_1.shouldAttributeAcceptBooleanValue(name), 'Received `%s` for non-boolean attribute `%s`. If this is expected, cast ' + 'the value to a string.%s', value, name, getStackAddendum$2(debugID));
warnedProperties$1[name] = true;
return true;
}
// Now that we've validated casing, do not validate
// data types for reserved props
if (isReserved) {
return true;
}
// Warn when a known attribute is a bad type
if (!DOMProperty_1.shouldSetAttribute(name, value)) {
warnedProperties$1[name] = true;
return false;
}
return true;
};
}
var warnUnknownProperties = function (type, props, debugID) {
var unknownProps = [];
for (var key in props) {
var isValid = validateProperty$1(type, key, props[key], debugID);
if (!isValid) {
unknownProps.push(key);
}
}
var unknownPropString = unknownProps.map(function (prop) {
return '`' + prop + '`';
}).join(', ');
if (unknownProps.length === 1) {
warning$16(false, 'Invalid value for prop %s on <%s> tag. Either remove it from the element, ' + 'or pass a string or number value to keep it in the DOM. ' + 'For details, see https://fb.me/react-attribute-behavior%s', unknownPropString, type, getStackAddendum$2(debugID));
} else if (unknownProps.length > 1) {
warning$16(false, 'Invalid values for props %s on <%s> tag. Either remove them from the element, ' + 'or pass a string or number value to keep them in the DOM. ' + 'For details, see https://fb.me/react-attribute-behavior%s', unknownPropString, type, getStackAddendum$2(debugID));
}
};
function validateProperties$2(type, props, debugID /* Stack only */) {
if (isCustomComponent_1(type, props)) {
return;
}
warnUnknownProperties(type, props, debugID);
}
var ReactDOMUnknownPropertyHook$1 = {
// Fiber
validateProperties: validateProperties$2,
// Stack
onBeforeMountComponent: function (debugID, element) {
if (true && element != null && typeof element.type === 'string') {
validateProperties$2(element.type, element.props, debugID);
}
},
onBeforeUpdateComponent: function (debugID, element) {
if (true && element != null && typeof element.type === 'string') {
validateProperties$2(element.type, element.props, debugID);
}
}
};
var ReactDOMUnknownPropertyHook_1 = ReactDOMUnknownPropertyHook$1;
var getCurrentFiberOwnerName = ReactDebugCurrentFiber_1.getCurrentFiberOwnerName;
var DOCUMENT_NODE$1 = HTMLNodeType_1.DOCUMENT_NODE;
var DOCUMENT_FRAGMENT_NODE$1 = HTMLNodeType_1.DOCUMENT_FRAGMENT_NODE;
{
var warning$3 = require$$0;
var _require3$1 = ReactDebugCurrentFiber_1,
getCurrentFiberStackAddendum = _require3$1.getCurrentFiberStackAddendum;
var ReactDOMInvalidARIAHook = ReactDOMInvalidARIAHook_1;
var ReactDOMNullInputValuePropHook = ReactDOMNullInputValuePropHook_1;
var ReactDOMUnknownPropertyHook = ReactDOMUnknownPropertyHook_1;
var validateARIAProperties = ReactDOMInvalidARIAHook.validateProperties;
var validateInputProperties = ReactDOMNullInputValuePropHook.validateProperties;
var validateUnknownProperties = ReactDOMUnknownPropertyHook.validateProperties;
}
var didWarnInvalidHydration = false;
var didWarnShadyDOM = false;
var listenTo = ReactBrowserEventEmitter_1.listenTo;
var registrationNameModules = EventPluginRegistry_1.registrationNameModules;
var DANGEROUSLY_SET_INNER_HTML = 'dangerouslySetInnerHTML';
var SUPPRESS_CONTENT_EDITABLE_WARNING = 'suppressContentEditableWarning';
var CHILDREN = 'children';
var STYLE = 'style';
var HTML = '__html';
var HTML_NAMESPACE$1 = DOMNamespaces.Namespaces.html;
var getIntrinsicNamespace$1 = DOMNamespaces.getIntrinsicNamespace;
{
var warnedUnknownTags = {
// Chrome is the only major browser not shipping <time>. But as of July
// 2017 it intends to ship it due to widespread usage. We intentionally
// *don't* warn for <time> even if it's unrecognized by Chrome because
// it soon will be, and many apps have been using it anyway.
time: true
};
var validatePropertiesInDevelopment = function (type, props) {
validateARIAProperties(type, props);
validateInputProperties(type, props);
validateUnknownProperties(type, props);
};
var warnForTextDifference = function (serverText, clientText) {
if (didWarnInvalidHydration) {
return;
}
didWarnInvalidHydration = true;
warning$3(false, 'Text content did not match. Server: "%s" Client: "%s"', serverText, clientText);
};
var warnForPropDifference = function (propName, serverValue, clientValue) {
if (didWarnInvalidHydration) {
return;
}
didWarnInvalidHydration = true;
warning$3(false, 'Prop `%s` did not match. Server: %s Client: %s', propName, JSON.stringify(serverValue), JSON.stringify(clientValue));
};
var warnForExtraAttributes = function (attributeNames) {
if (didWarnInvalidHydration) {
return;
}
didWarnInvalidHydration = true;
var names = [];
attributeNames.forEach(function (name) {
names.push(name);
});
warning$3(false, 'Extra attributes from the server: %s', names);
};
var warnForInvalidEventListener = function (registrationName, listener) {
warning$3(false, 'Expected `%s` listener to be a function, instead got a value of `%s` type.%s', registrationName, typeof listener, getCurrentFiberStackAddendum());
};
var testDocument;
// Parse the HTML and read it back to normalize the HTML string so that it
// can be used for comparison.
var normalizeHTML = function (parent, html) {
if (!testDocument) {
testDocument = document.implementation.createHTMLDocument();
}
var testElement = parent.namespaceURI === HTML_NAMESPACE$1 ? testDocument.createElement(parent.tagName) : testDocument.createElementNS(parent.namespaceURI, parent.tagName);
testElement.innerHTML = html;
return testElement.innerHTML;
};
}
function ensureListeningTo(rootContainerElement, registrationName) {
var isDocumentOrFragment = rootContainerElement.nodeType === DOCUMENT_NODE$1 || rootContainerElement.nodeType === DOCUMENT_FRAGMENT_NODE$1;
var doc = isDocumentOrFragment ? rootContainerElement : rootContainerElement.ownerDocument;
listenTo(registrationName, doc);
}
function getOwnerDocumentFromRootContainer(rootContainerElement) {
return rootContainerElement.nodeType === DOCUMENT_NODE$1 ? rootContainerElement : rootContainerElement.ownerDocument;
}
// There are so many media events, it makes sense to just
// maintain a list rather than create a `trapBubbledEvent` for each
var mediaEvents = {
topAbort: 'abort',
topCanPlay: 'canplay',
topCanPlayThrough: 'canplaythrough',
topDurationChange: 'durationchange',
topEmptied: 'emptied',
topEncrypted: 'encrypted',
topEnded: 'ended',
topError: 'error',
topLoadedData: 'loadeddata',
topLoadedMetadata: 'loadedmetadata',
topLoadStart: 'loadstart',
topPause: 'pause',
topPlay: 'play',
topPlaying: 'playing',
topProgress: 'progress',
topRateChange: 'ratechange',
topSeeked: 'seeked',
topSeeking: 'seeking',
topStalled: 'stalled',
topSuspend: 'suspend',
topTimeUpdate: 'timeupdate',
topVolumeChange: 'volumechange',
topWaiting: 'waiting'
};
function trapClickOnNonInteractiveElement(node) {
// Mobile Safari does not fire properly bubble click events on
// non-interactive elements, which means delegated click listeners do not
// fire. The workaround for this bug involves attaching an empty click
// listener on the target node.
// http://www.quirksmode.org/blog/archives/2010/09/click_event_del.html
// Just set it using the onclick property so that we don't have to manage any
// bookkeeping for it. Not sure if we need to clear it when the listener is
// removed.
// TODO: Only do this for the relevant Safaris maybe?
node.onclick = emptyFunction;
}
function setInitialDOMProperties(domElement, rootContainerElement, nextProps, isCustomComponentTag) {
for (var propKey in nextProps) {
if (!nextProps.hasOwnProperty(propKey)) {
continue;
}
var nextProp = nextProps[propKey];
if (propKey === STYLE) {
{
if (nextProp) {
// Freeze the next style object so that we can assume it won't be
// mutated. We have already warned for this in the past.
Object.freeze(nextProp);
}
}
// Relies on `updateStylesByID` not mutating `styleUpdates`.
CSSPropertyOperations_1.setValueForStyles(domElement, nextProp);
} else if (propKey === DANGEROUSLY_SET_INNER_HTML) {
var nextHtml = nextProp ? nextProp[HTML] : undefined;
if (nextHtml != null) {
setInnerHTML_1(domElement, nextHtml);
}
} else if (propKey === CHILDREN) {
if (typeof nextProp === 'string') {
setTextContent_1(domElement, nextProp);
} else if (typeof nextProp === 'number') {
setTextContent_1(domElement, '' + nextProp);
}
} else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING) {
// Noop
} else if (registrationNameModules.hasOwnProperty(propKey)) {
if (nextProp != null) {
if (true && typeof nextProp !== 'function') {
warnForInvalidEventListener(propKey, nextProp);
}
ensureListeningTo(rootContainerElement, propKey);
}
} else if (isCustomComponentTag) {
DOMPropertyOperations_1.setValueForAttribute(domElement, propKey, nextProp);
} else if (nextProp != null) {
// If we're updating to null or undefined, we should remove the property
// from the DOM node instead of inadvertently setting to a string. This
// brings us in line with the same behavior we have on initial render.
DOMPropertyOperations_1.setValueForProperty(domElement, propKey, nextProp);
}
}
}
function updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag) {
// TODO: Handle wasCustomComponentTag
for (var i = 0; i < updatePayload.length; i += 2) {
var propKey = updatePayload[i];
var propValue = updatePayload[i + 1];
if (propKey === STYLE) {
CSSPropertyOperations_1.setValueForStyles(domElement, propValue);
} else if (propKey === DANGEROUSLY_SET_INNER_HTML) {
setInnerHTML_1(domElement, propValue);
} else if (propKey === CHILDREN) {
setTextContent_1(domElement, propValue);
} else if (isCustomComponentTag) {
if (propValue != null) {
DOMPropertyOperations_1.setValueForAttribute(domElement, propKey, propValue);
} else {
DOMPropertyOperations_1.deleteValueForAttribute(domElement, propKey);
}
} else if (propValue != null) {
DOMPropertyOperations_1.setValueForProperty(domElement, propKey, propValue);
} else {
// If we're updating to null or undefined, we should remove the property
// from the DOM node instead of inadvertently setting to a string. This
// brings us in line with the same behavior we have on initial render.
DOMPropertyOperations_1.deleteValueForProperty(domElement, propKey);
}
}
}
var ReactDOMFiberComponent = {
createElement: function (type, props, rootContainerElement, parentNamespace) {
// We create tags in the namespace of their parent container, except HTML
var ownerDocument = getOwnerDocumentFromRootContainer(rootContainerElement);
var domElement;
var namespaceURI = parentNamespace;
if (namespaceURI === HTML_NAMESPACE$1) {
namespaceURI = getIntrinsicNamespace$1(type);
}
if (namespaceURI === HTML_NAMESPACE$1) {
{
var isCustomComponentTag = isCustomComponent_1(type, props);
// Should this check be gated by parent namespace? Not sure we want to
// allow <SVG> or <mATH>.
warning$3(isCustomComponentTag || type === type.toLowerCase(), '<%s /> is using uppercase HTML. Always use lowercase HTML tags ' + 'in React.', type);
}
if (type === 'script') {
// Create the script via .innerHTML so its "parser-inserted" flag is
// set to true and it does not execute
var div = ownerDocument.createElement('div');
div.innerHTML = '<script><' + '/script>'; // eslint-disable-line
// This is guaranteed to yield a script element.
var firstChild = div.firstChild;
domElement = div.removeChild(firstChild);
} else if (typeof props.is === 'string') {
// $FlowIssue `createElement` should be updated for Web Components
domElement = ownerDocument.createElement(type, { is: props.is });
} else {
// Separate else branch instead of using `props.is || undefined` above because of a Firefox bug.
// See discussion in https://github.com/facebook/react/pull/6896
// and discussion in https://bugzilla.mozilla.org/show_bug.cgi?id=1276240
domElement = ownerDocument.createElement(type);
}
} else {
domElement = ownerDocument.createElementNS(namespaceURI, type);
}
{
if (namespaceURI === HTML_NAMESPACE$1) {
if (!isCustomComponentTag && Object.prototype.toString.call(domElement) === '[object HTMLUnknownElement]' && !Object.prototype.hasOwnProperty.call(warnedUnknownTags, type)) {
warnedUnknownTags[type] = true;
warning$3(false, 'The tag <%s> is unrecognized in this browser. ' + 'If you meant to render a React component, start its name with ' + 'an uppercase letter.', type);
}
}
}
return domElement;
},
createTextNode: function (text, rootContainerElement) {
return getOwnerDocumentFromRootContainer(rootContainerElement).createTextNode(text);
},
setInitialProperties: function (domElement, tag, rawProps, rootContainerElement) {
var isCustomComponentTag = isCustomComponent_1(tag, rawProps);
{
validatePropertiesInDevelopment(tag, rawProps);
if (isCustomComponentTag && !didWarnShadyDOM && domElement.shadyRoot) {
warning$3(false, '%s is using shady DOM. Using shady DOM with React can ' + 'cause things to break subtly.', getCurrentFiberOwnerName() || 'A component');
didWarnShadyDOM = true;
}
}
// TODO: Make sure that we check isMounted before firing any of these events.
var props;
switch (tag) {
case 'iframe':
case 'object':
ReactBrowserEventEmitter_1.trapBubbledEvent('topLoad', 'load', domElement);
props = rawProps;
break;
case 'video':
case 'audio':
// Create listener for each media event
for (var event in mediaEvents) {
if (mediaEvents.hasOwnProperty(event)) {
ReactBrowserEventEmitter_1.trapBubbledEvent(event, mediaEvents[event], domElement);
}
}
props = rawProps;
break;
case 'source':
ReactBrowserEventEmitter_1.trapBubbledEvent('topError', 'error', domElement);
props = rawProps;
break;
case 'img':
case 'image':
ReactBrowserEventEmitter_1.trapBubbledEvent('topError', 'error', domElement);
ReactBrowserEventEmitter_1.trapBubbledEvent('topLoad', 'load', domElement);
props = rawProps;
break;
case 'form':
ReactBrowserEventEmitter_1.trapBubbledEvent('topReset', 'reset', domElement);
ReactBrowserEventEmitter_1.trapBubbledEvent('topSubmit', 'submit', domElement);
props = rawProps;
break;
case 'details':
ReactBrowserEventEmitter_1.trapBubbledEvent('topToggle', 'toggle', domElement);
props = rawProps;
break;
case 'input':
ReactDOMFiberInput.initWrapperState(domElement, rawProps);
props = ReactDOMFiberInput.getHostProps(domElement, rawProps);
ReactBrowserEventEmitter_1.trapBubbledEvent('topInvalid', 'invalid', domElement);
// For controlled components we always need to ensure we're listening
// to onChange. Even if there is no listener.
ensureListeningTo(rootContainerElement, 'onChange');
break;
case 'option':
ReactDOMFiberOption.validateProps(domElement, rawProps);
props = ReactDOMFiberOption.getHostProps(domElement, rawProps);
break;
case 'select':
ReactDOMFiberSelect.initWrapperState(domElement, rawProps);
props = ReactDOMFiberSelect.getHostProps(domElement, rawProps);
ReactBrowserEventEmitter_1.trapBubbledEvent('topInvalid', 'invalid', domElement);
// For controlled components we always need to ensure we're listening
// to onChange. Even if there is no listener.
ensureListeningTo(rootContainerElement, 'onChange');
break;
case 'textarea':
ReactDOMFiberTextarea.initWrapperState(domElement, rawProps);
props = ReactDOMFiberTextarea.getHostProps(domElement, rawProps);
ReactBrowserEventEmitter_1.trapBubbledEvent('topInvalid', 'invalid', domElement);
// For controlled components we always need to ensure we're listening
// to onChange. Even if there is no listener.
ensureListeningTo(rootContainerElement, 'onChange');
break;
default:
props = rawProps;
}
assertValidProps_1(tag, props, getCurrentFiberOwnerName);
setInitialDOMProperties(domElement, rootContainerElement, props, isCustomComponentTag);
switch (tag) {
case 'input':
// TODO: Make sure we check if this is still unmounted or do any clean
// up necessary since we never stop tracking anymore.
inputValueTracking_1.track(domElement);
ReactDOMFiberInput.postMountWrapper(domElement, rawProps);
break;
case 'textarea':
// TODO: Make sure we check if this is still unmounted or do any clean
// up necessary since we never stop tracking anymore.
inputValueTracking_1.track(domElement);
ReactDOMFiberTextarea.postMountWrapper(domElement, rawProps);
break;
case 'option':
ReactDOMFiberOption.postMountWrapper(domElement, rawProps);
break;
case 'select':
ReactDOMFiberSelect.postMountWrapper(domElement, rawProps);
break;
default:
if (typeof props.onClick === 'function') {
// TODO: This cast may not be sound for SVG, MathML or custom elements.
trapClickOnNonInteractiveElement(domElement);
}
break;
}
},
// Calculate the diff between the two objects.
diffProperties: function (domElement, tag, lastRawProps, nextRawProps, rootContainerElement) {
{
validatePropertiesInDevelopment(tag, nextRawProps);
}
var updatePayload = null;
var lastProps;
var nextProps;
switch (tag) {
case 'input':
lastProps = ReactDOMFiberInput.getHostProps(domElement, lastRawProps);
nextProps = ReactDOMFiberInput.getHostProps(domElement, nextRawProps);
updatePayload = [];
break;
case 'option':
lastProps = ReactDOMFiberOption.getHostProps(domElement, lastRawProps);
nextProps = ReactDOMFiberOption.getHostProps(domElement, nextRawProps);
updatePayload = [];
break;
case 'select':
lastProps = ReactDOMFiberSelect.getHostProps(domElement, lastRawProps);
nextProps = ReactDOMFiberSelect.getHostProps(domElement, nextRawProps);
updatePayload = [];
break;
case 'textarea':
lastProps = ReactDOMFiberTextarea.getHostProps(domElement, lastRawProps);
nextProps = ReactDOMFiberTextarea.getHostProps(domElement, nextRawProps);
updatePayload = [];
break;
default:
lastProps = lastRawProps;
nextProps = nextRawProps;
if (typeof lastProps.onClick !== 'function' && typeof nextProps.onClick === 'function') {
// TODO: This cast may not be sound for SVG, MathML or custom elements.
trapClickOnNonInteractiveElement(domElement);
}
break;
}
assertValidProps_1(tag, nextProps, getCurrentFiberOwnerName);
var propKey;
var styleName;
var styleUpdates = null;
for (propKey in lastProps) {
if (nextProps.hasOwnProperty(propKey) || !lastProps.hasOwnProperty(propKey) || lastProps[propKey] == null) {
continue;
}
if (propKey === STYLE) {
var lastStyle = lastProps[propKey];
for (styleName in lastStyle) {
if (lastStyle.hasOwnProperty(styleName)) {
if (!styleUpdates) {
styleUpdates = {};
}
styleUpdates[styleName] = '';
}
}
} else if (propKey === DANGEROUSLY_SET_INNER_HTML || propKey === CHILDREN) {
// Noop. This is handled by the clear text mechanism.
} else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING) {
// Noop
} else if (registrationNameModules.hasOwnProperty(propKey)) {
// This is a special case. If any listener updates we need to ensure
// that the "current" fiber pointer gets updated so we need a commit
// to update this element.
if (!updatePayload) {
updatePayload = [];
}
} else {
// For all other deleted properties we add it to the queue. We use
// the whitelist in the commit phase instead.
(updatePayload = updatePayload || []).push(propKey, null);
}
}
for (propKey in nextProps) {
var nextProp = nextProps[propKey];
var lastProp = lastProps != null ? lastProps[propKey] : undefined;
if (!nextProps.hasOwnProperty(propKey) || nextProp === lastProp || nextProp == null && lastProp == null) {
continue;
}
if (propKey === STYLE) {
{
if (nextProp) {
// Freeze the next style object so that we can assume it won't be
// mutated. We have already warned for this in the past.
Object.freeze(nextProp);
}
}
if (lastProp) {
// Unset styles on `lastProp` but not on `nextProp`.
for (styleName in lastProp) {
if (lastProp.hasOwnProperty(styleName) && (!nextProp || !nextProp.hasOwnProperty(styleName))) {
if (!styleUpdates) {
styleUpdates = {};
}
styleUpdates[styleName] = '';
}
}
// Update styles that changed since `lastProp`.
for (styleName in nextProp) {
if (nextProp.hasOwnProperty(styleName) && lastProp[styleName] !== nextProp[styleName]) {
if (!styleUpdates) {
styleUpdates = {};
}
styleUpdates[styleName] = nextProp[styleName];
}
}
} else {
// Relies on `updateStylesByID` not mutating `styleUpdates`.
if (!styleUpdates) {
if (!updatePayload) {
updatePayload = [];
}
updatePayload.push(propKey, styleUpdates);
}
styleUpdates = nextProp;
}
} else if (propKey === DANGEROUSLY_SET_INNER_HTML) {
var nextHtml = nextProp ? nextProp[HTML] : undefined;
var lastHtml = lastProp ? lastProp[HTML] : undefined;
if (nextHtml != null) {
if (lastHtml !== nextHtml) {
(updatePayload = updatePayload || []).push(propKey, '' + nextHtml);
}
} else {
// TODO: It might be too late to clear this if we have children
// inserted already.
}
} else if (propKey === CHILDREN) {
if (lastProp !== nextProp && (typeof nextProp === 'string' || typeof nextProp === 'number')) {
(updatePayload = updatePayload || []).push(propKey, '' + nextProp);
}
} else if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING) {
// Noop
} else if (registrationNameModules.hasOwnProperty(propKey)) {
if (nextProp != null) {
// We eagerly listen to this even though we haven't committed yet.
if (true && typeof nextProp !== 'function') {
warnForInvalidEventListener(propKey, nextProp);
}
ensureListeningTo(rootContainerElement, propKey);
}
if (!updatePayload && lastProp !== nextProp) {
// This is a special case. If any listener updates we need to ensure
// that the "current" props pointer gets updated so we need a commit
// to update this element.
updatePayload = [];
}
} else {
// For any other property we always add it to the queue and then we
// filter it out using the whitelist during the commit.
(updatePayload = updatePayload || []).push(propKey, nextProp);
}
}
if (styleUpdates) {
(updatePayload = updatePayload || []).push(STYLE, styleUpdates);
}
return updatePayload;
},
// Apply the diff.
updateProperties: function (domElement, updatePayload, tag, lastRawProps, nextRawProps) {
var wasCustomComponentTag = isCustomComponent_1(tag, lastRawProps);
var isCustomComponentTag = isCustomComponent_1(tag, nextRawProps);
// Apply the diff.
updateDOMProperties(domElement, updatePayload, wasCustomComponentTag, isCustomComponentTag);
// TODO: Ensure that an update gets scheduled if any of the special props
// changed.
switch (tag) {
case 'input':
// Update the wrapper around inputs *after* updating props. This has to
// happen after `updateDOMProperties`. Otherwise HTML5 input validations
// raise warnings and prevent the new value from being assigned.
ReactDOMFiberInput.updateWrapper(domElement, nextRawProps);
// We also check that we haven't missed a value update, such as a
// Radio group shifting the checked value to another named radio input.
inputValueTracking_1.updateValueIfChanged(domElement);
break;
case 'textarea':
ReactDOMFiberTextarea.updateWrapper(domElement, nextRawProps);
break;
case 'select':
// <select> value update needs to occur after <option> children
// reconciliation
ReactDOMFiberSelect.postUpdateWrapper(domElement, nextRawProps);
break;
}
},
diffHydratedProperties: function (domElement, tag, rawProps, parentNamespace, rootContainerElement) {
{
var isCustomComponentTag = isCustomComponent_1(tag, rawProps);
validatePropertiesInDevelopment(tag, rawProps);
if (isCustomComponentTag && !didWarnShadyDOM && domElement.shadyRoot) {
warning$3(false, '%s is using shady DOM. Using shady DOM with React can ' + 'cause things to break subtly.', getCurrentFiberOwnerName() || 'A component');
didWarnShadyDOM = true;
}
}
// TODO: Make sure that we check isMounted before firing any of these events.
switch (tag) {
case 'iframe':
case 'object':
ReactBrowserEventEmitter_1.trapBubbledEvent('topLoad', 'load', domElement);
break;
case 'video':
case 'audio':
// Create listener for each media event
for (var event in mediaEvents) {
if (mediaEvents.hasOwnProperty(event)) {
ReactBrowserEventEmitter_1.trapBubbledEvent(event, mediaEvents[event], domElement);
}
}
break;
case 'source':
ReactBrowserEventEmitter_1.trapBubbledEvent('topError', 'error', domElement);
break;
case 'img':
case 'image':
ReactBrowserEventEmitter_1.trapBubbledEvent('topError', 'error', domElement);
ReactBrowserEventEmitter_1.trapBubbledEvent('topLoad', 'load', domElement);
break;
case 'form':
ReactBrowserEventEmitter_1.trapBubbledEvent('topReset', 'reset', domElement);
ReactBrowserEventEmitter_1.trapBubbledEvent('topSubmit', 'submit', domElement);
break;
case 'details':
ReactBrowserEventEmitter_1.trapBubbledEvent('topToggle', 'toggle', domElement);
break;
case 'input':
ReactDOMFiberInput.initWrapperState(domElement, rawProps);
ReactBrowserEventEmitter_1.trapBubbledEvent('topInvalid', 'invalid', domElement);
// For controlled components we always need to ensure we're listening
// to onChange. Even if there is no listener.
ensureListeningTo(rootContainerElement, 'onChange');
break;
case 'option':
ReactDOMFiberOption.validateProps(domElement, rawProps);
break;
case 'select':
ReactDOMFiberSelect.initWrapperState(domElement, rawProps);
ReactBrowserEventEmitter_1.trapBubbledEvent('topInvalid', 'invalid', domElement);
// For controlled components we always need to ensure we're listening
// to onChange. Even if there is no listener.
ensureListeningTo(rootContainerElement, 'onChange');
break;
case 'textarea':
ReactDOMFiberTextarea.initWrapperState(domElement, rawProps);
ReactBrowserEventEmitter_1.trapBubbledEvent('topInvalid', 'invalid', domElement);
// For controlled components we always need to ensure we're listening
// to onChange. Even if there is no listener.
ensureListeningTo(rootContainerElement, 'onChange');
break;
}
assertValidProps_1(tag, rawProps, getCurrentFiberOwnerName);
{
var extraAttributeNames = new Set();
var attributes = domElement.attributes;
for (var i = 0; i < attributes.length; i++) {
var name = attributes[i].name.toLowerCase();
switch (name) {
// Built-in SSR attribute is whitelisted
case 'data-reactroot':
break;
// Controlled attributes are not validated
// TODO: Only ignore them on controlled tags.
case 'value':
break;
case 'checked':
break;
case 'selected':
break;
default:
// Intentionally use the original name.
// See discussion in https://github.com/facebook/react/pull/10676.
extraAttributeNames.add(attributes[i].name);
}
}
}
var updatePayload = null;
for (var propKey in rawProps) {
if (!rawProps.hasOwnProperty(propKey)) {
continue;
}
var nextProp = rawProps[propKey];
if (propKey === CHILDREN) {
// For text content children we compare against textContent. This
// might match additional HTML that is hidden when we read it using
// textContent. E.g. "foo" will match "f<span>oo</span>" but that still
// satisfies our requirement. Our requirement is not to produce perfect
// HTML and attributes. Ideally we should preserve structure but it's
// ok not to if the visible content is still enough to indicate what
// even listeners these nodes might be wired up to.
// TODO: Warn if there is more than a single textNode as a child.
// TODO: Should we use domElement.firstChild.nodeValue to compare?
if (typeof nextProp === 'string') {
if (domElement.textContent !== nextProp) {
{
warnForTextDifference(domElement.textContent, nextProp);
}
updatePayload = [CHILDREN, nextProp];
}
} else if (typeof nextProp === 'number') {
if (domElement.textContent !== '' + nextProp) {
{
warnForTextDifference(domElement.textContent, nextProp);
}
updatePayload = [CHILDREN, '' + nextProp];
}
}
} else if (registrationNameModules.hasOwnProperty(propKey)) {
if (nextProp != null) {
if (true && typeof nextProp !== 'function') {
warnForInvalidEventListener(propKey, nextProp);
}
ensureListeningTo(rootContainerElement, propKey);
}
} else {
// Validate that the properties correspond to their expected values.
var serverValue;
var propertyInfo;
if (propKey === SUPPRESS_CONTENT_EDITABLE_WARNING ||
// Controlled attributes are not validated
// TODO: Only ignore them on controlled tags.
propKey === 'value' || propKey === 'checked' || propKey === 'selected') {
// Noop
} else if (propKey === DANGEROUSLY_SET_INNER_HTML) {
var rawHtml = nextProp ? nextProp[HTML] || '' : '';
var serverHTML = domElement.innerHTML;
var expectedHTML = normalizeHTML(domElement, rawHtml);
if (expectedHTML !== serverHTML) {
warnForPropDifference(propKey, serverHTML, expectedHTML);
}
} else if (propKey === STYLE) {
// $FlowFixMe - Should be inferred as not undefined.
extraAttributeNames['delete'](propKey);
var expectedStyle = CSSPropertyOperations_1.createDangerousStringForStyles(nextProp);
serverValue = domElement.getAttribute('style');
if (expectedStyle !== serverValue) {
warnForPropDifference(propKey, serverValue, expectedStyle);
}
} else if (isCustomComponentTag) {
// $FlowFixMe - Should be inferred as not undefined.
extraAttributeNames['delete'](propKey.toLowerCase());
serverValue = DOMPropertyOperations_1.getValueForAttribute(domElement, propKey, nextProp);
if (nextProp !== serverValue) {
warnForPropDifference(propKey, serverValue, nextProp);
}
} else if (DOMProperty_1.shouldSetAttribute(propKey, nextProp)) {
if (propertyInfo = DOMProperty_1.getPropertyInfo(propKey)) {
// $FlowFixMe - Should be inferred as not undefined.
extraAttributeNames['delete'](propertyInfo.attributeName);
serverValue = DOMPropertyOperations_1.getValueForProperty(domElement, propKey, nextProp);
} else {
var ownNamespace = parentNamespace;
if (ownNamespace === HTML_NAMESPACE$1) {
ownNamespace = getIntrinsicNamespace$1(tag);
}
if (ownNamespace === HTML_NAMESPACE$1) {
// $FlowFixMe - Should be inferred as not undefined.
extraAttributeNames['delete'](propKey.toLowerCase());
} else {
// $FlowFixMe - Should be inferred as not undefined.
extraAttributeNames['delete'](propKey);
}
serverValue = DOMPropertyOperations_1.getValueForAttribute(domElement, propKey, nextProp);
}
if (nextProp !== serverValue) {
warnForPropDifference(propKey, serverValue, nextProp);
}
}
}
}
{
// $FlowFixMe - Should be inferred as not undefined.
if (extraAttributeNames.size > 0) {
// $FlowFixMe - Should be inferred as not undefined.
warnForExtraAttributes(extraAttributeNames);
}
}
switch (tag) {
case 'input':
// TODO: Make sure we check if this is still unmounted or do any clean
// up necessary since we never stop tracking anymore.
inputValueTracking_1.track(domElement);
ReactDOMFiberInput.postMountWrapper(domElement, rawProps);
break;
case 'textarea':
// TODO: Make sure we check if this is still unmounted or do any clean
// up necessary since we never stop tracking anymore.
inputValueTracking_1.track(domElement);
ReactDOMFiberTextarea.postMountWrapper(domElement, rawProps);
break;
case 'select':
case 'option':
// For input and textarea we current always set the value property at
// post mount to force it to diverge from attributes. However, for
// option and select we don't quite do the same thing and select
// is not resilient to the DOM state changing so we don't do that here.
// TODO: Consider not doing this for input and textarea.
break;
default:
if (typeof rawProps.onClick === 'function') {
// TODO: This cast may not be sound for SVG, MathML or custom elements.
trapClickOnNonInteractiveElement(domElement);
}
break;
}
return updatePayload;
},
diffHydratedText: function (textNode, text) {
var isDifferent = textNode.nodeValue !== text;
{
if (isDifferent) {
warnForTextDifference(textNode.nodeValue, text);
}
}
return isDifferent;
},
warnForDeletedHydratableElement: function (parentNode, child) {
{
if (didWarnInvalidHydration) {
return;
}
didWarnInvalidHydration = true;
warning$3(false, 'Did not expect server HTML to contain a <%s> in <%s>.', child.nodeName.toLowerCase(), parentNode.nodeName.toLowerCase());
}
},
warnForDeletedHydratableText: function (parentNode, child) {
{
if (didWarnInvalidHydration) {
return;
}
didWarnInvalidHydration = true;
warning$3(false, 'Did not expect server HTML to contain the text node "%s" in <%s>.', child.nodeValue, parentNode.nodeName.toLowerCase());
}
},
warnForInsertedHydratedElement: function (parentNode, tag, props) {
{
if (didWarnInvalidHydration) {
return;
}
didWarnInvalidHydration = true;
warning$3(false, 'Expected server HTML to contain a matching <%s> in <%s>.', tag, parentNode.nodeName.toLowerCase());
}
},
warnForInsertedHydratedText: function (parentNode, text) {
{
if (text === '') {
// We expect to insert empty text nodes since they're not represented in
// the HTML.
// TODO: Remove this special case if we can just avoid inserting empty
// text nodes.
return;
}
if (didWarnInvalidHydration) {
return;
}
didWarnInvalidHydration = true;
warning$3(false, 'Expected server HTML to contain a matching text node for "%s" in <%s>.', text, parentNode.nodeName.toLowerCase());
}
},
restoreControlledState: function (domElement, tag, props) {
switch (tag) {
case 'input':
ReactDOMFiberInput.restoreControlledState(domElement, props);
return;
case 'textarea':
ReactDOMFiberTextarea.restoreControlledState(domElement, props);
return;
case 'select':
ReactDOMFiberSelect.restoreControlledState(domElement, props);
return;
}
}
};
var ReactDOMFiberComponent_1 = ReactDOMFiberComponent;
// This is a built-in polyfill for requestIdleCallback. It works by scheduling
// a requestAnimationFrame, storing the time for the start of the frame, then
// scheduling a postMessage which gets scheduled after paint. Within the
// postMessage handler do as much work as possible until time + frame rate.
// By separating the idle call into a separate event tick we ensure that
// layout, paint and other browser work is counted against the available time.
// The frame rate is dynamically adjusted.
{
var warning$17 = require$$0;
if (ExecutionEnvironment.canUseDOM && typeof requestAnimationFrame !== 'function') {
warning$17(false, 'React depends on requestAnimationFrame. Make sure that you load a ' + 'polyfill in older browsers. http://fb.me/react-polyfills');
}
}
// TODO: There's no way to cancel, because Fiber doesn't atm.
var rIC = void 0;
if (!ExecutionEnvironment.canUseDOM) {
rIC = function (frameCallback) {
setTimeout(function () {
frameCallback({
timeRemaining: function () {
return Infinity;
}
});
});
return 0;
};
} else if (typeof requestIdleCallback !== 'function') {
// Polyfill requestIdleCallback.
var scheduledRAFCallback = null;
var scheduledRICCallback = null;
var isIdleScheduled = false;
var isAnimationFrameScheduled = false;
var frameDeadline = 0;
// We start out assuming that we run at 30fps but then the heuristic tracking
// will adjust this value to a faster fps if we get more frequent animation
// frames.
var previousFrameTime = 33;
var activeFrameTime = 33;
var frameDeadlineObject = {
timeRemaining: typeof performance === 'object' && typeof performance.now === 'function' ? function () {
// We assume that if we have a performance timer that the rAF callback
// gets a performance timer value. Not sure if this is always true.
return frameDeadline - performance.now();
} : function () {
// As a fallback we use Date.now.
return frameDeadline - Date.now();
}
};
// We use the postMessage trick to defer idle work until after the repaint.
var messageKey = '__reactIdleCallback$' + Math.random().toString(36).slice(2);
var idleTick = function (event) {
if (event.source !== window || event.data !== messageKey) {
return;
}
isIdleScheduled = false;
var callback = scheduledRICCallback;
scheduledRICCallback = null;
if (callback !== null) {
callback(frameDeadlineObject);
}
};
// Assumes that we have addEventListener in this environment. Might need
// something better for old IE.
window.addEventListener('message', idleTick, false);
var animationTick = function (rafTime) {
isAnimationFrameScheduled = false;
var nextFrameTime = rafTime - frameDeadline + activeFrameTime;
if (nextFrameTime < activeFrameTime && previousFrameTime < activeFrameTime) {
if (nextFrameTime < 8) {
// Defensive coding. We don't support higher frame rates than 120hz.
// If we get lower than that, it is probably a bug.
nextFrameTime = 8;
}
// If one frame goes long, then the next one can be short to catch up.
// If two frames are short in a row, then that's an indication that we
// actually have a higher frame rate than what we're currently optimizing.
// We adjust our heuristic dynamically accordingly. For example, if we're
// running on 120hz display or 90hz VR display.
// Take the max of the two in case one of them was an anomaly due to
// missed frame deadlines.
activeFrameTime = nextFrameTime < previousFrameTime ? previousFrameTime : nextFrameTime;
} else {
previousFrameTime = nextFrameTime;
}
frameDeadline = rafTime + activeFrameTime;
if (!isIdleScheduled) {
isIdleScheduled = true;
window.postMessage(messageKey, '*');
}
var callback = scheduledRAFCallback;
scheduledRAFCallback = null;
if (callback !== null) {
callback(rafTime);
}
};
rIC = function (callback) {
// This assumes that we only schedule one callback at a time because that's
// how Fiber uses it.
scheduledRICCallback = callback;
if (!isAnimationFrameScheduled) {
// If rAF didn't already schedule one, we need to schedule a frame.
// TODO: If this rAF doesn't materialize because the browser throttles, we
// might want to still have setTimeout trigger rIC as a backup to ensure
// that we keep performing work.
isAnimationFrameScheduled = true;
requestAnimationFrame(animationTick);
}
return 0;
};
} else {
rIC = requestIdleCallback;
}
var rIC_1 = rIC;
var ReactDOMFrameScheduling = {
rIC: rIC_1
};
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule ReactFeatureFlags
*
*/
var ReactFeatureFlags = {
enableAsyncSubtreeAPI: true
};
var ReactFeatureFlags_1 = ReactFeatureFlags;
/**
* Copyright (c) 2013-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*
* @providesModule ReactPriorityLevel
*
*/
var ReactPriorityLevel = {
NoWork: 0, // No work is pending.
SynchronousPriority: 1, // For controlled text inputs. Synchronous side-effects.
TaskPriority: 2, // Completes at the end of the current tick.
HighPriority: 3, // Interaction that needs to complete pretty soon to feel responsive.
LowPriority: 4, // Data fetching, or result from updating stores.
OffscreenPriority: 5 };
var CallbackEffect = ReactTypeOfSideEffect.Callback;
var NoWork = ReactPriorityLevel.NoWork;
var SynchronousPriority = ReactPriorityLevel.SynchronousPriority;
var TaskPriority = ReactPriorityLevel.TaskPriority;
var ClassComponent$2 = ReactTypeOfWork.ClassComponent;
var HostRoot$2 = ReactTypeOfWork.HostRoot;
{
var warning$19 = require$$0;
}
// Callbacks are not validated until invocation
// Singly linked-list of updates. When an update is scheduled, it is added to
// the queue of the current fiber and the work-in-progress fiber. The two queues
// are separate but they share a persistent structure.
//
// During reconciliation, updates are removed from the work-in-progress fiber,
// but they remain on the current fiber. That ensures that if a work-in-progress
// is aborted, the aborted updates are recovered by cloning from current.
//
// The work-in-progress queue is always a subset of the current queue.
//
// When the tree is committed, the work-in-progress becomes the current.
var _queue1 = void 0;
var _queue2 = void 0;
function comparePriority(a, b) {
// When comparing update priorities, treat sync and Task work as equal.
// TODO: Could we avoid the need for this by always coercing sync priority
// to Task when scheduling an update?
if ((a === TaskPriority || a === SynchronousPriority) && (b === TaskPriority || b === SynchronousPriority)) {
return 0;
}
if (a === NoWork && b !== NoWork) {
return -255;
}
if (a !== NoWork && b === NoWork) {
return 255;
}
return a - b;
}
function createUpdateQueue() {
var queue = {
first: null,
last: null,
hasForceUpdate: false,
callbackList: null
};
{
queue.isProcessing = false;
}
return queue;
}
function cloneUpdate(update) {
return {
priorityLevel: update.priorityLevel,
partialState: update.partialState,
callback: update.callback,
isReplace: update.isReplace,
isForced: update.isForced,
isTopLevelUnmount: update.isTopLevelUnmount,
next: null
};
}
function insertUpdateIntoQueue(queue, update, insertAfter, insertBefore) {
if (insertAfter !== null) {
insertAfter.next = update;
} else {
// This is the first item in the queue.
update.next = queue.first;
queue.first = update;
}
if (insertBefore !== null) {
update.next = insertBefore;
} else {
// This is the last item in the queue.
queue.last = update;
}
}
// Returns the update after which the incoming update should be inserted into
// the queue, or null if it should be inserted at beginning.
function findInsertionPosition(queue, update) {
var priorityLevel = update.priorityLevel;
var insertAfter = null;
var insertBefore = null;
if (queue.last !== null && comparePriority(queue.last.priorityLevel, priorityLevel) <= 0) {
// Fast path for the common case where the update should be inserted at
// the end of the queue.
insertAfter = queue.last;
} else {
insertBefore = queue.first;
while (insertBefore !== null && comparePriority(insertBefore.priorityLevel, priorityLevel) <= 0) {
insertAfter = insertBefore;
insertBefore = insertBefore.next;
}
}
return insertAfter;
}
function ensureUpdateQueues(fiber) {
var alternateFiber = fiber.alternate;
var queue1 = fiber.updateQueue;
if (queue1 === null) {
queue1 = fiber.updateQueue = createUpdateQueue();
}
var queue2 = void 0;
if (alternateFiber !== null) {
queue2 = alternateFiber.updateQueue;
if (queue2 === null) {
queue2 = alternateFiber.updateQueue = createUpdateQueue();
}
} else {
queue2 = null;
}
_queue1 = queue1;
// Return null if there is no alternate queue, or if its queue is the same.
_queue2 = queue2 !== queue1 ? queue2 : null;
}
// The work-in-progress queue is a subset of the current queue (if it exists).
// We need to insert the incoming update into both lists. However, it's possible
// that the correct position in one list will be different from the position in
// the other. Consider the following case:
//
// Current: 3-5-6
// Work-in-progress: 6
//
// Then we receive an update with priority 4 and insert it into each list:
//
// Current: 3-4-5-6
// Work-in-progress: 4-6
//
// In the current queue, the new update's `next` pointer points to the update
// with priority 5. But in the work-in-progress queue, the pointer points to the
// update with priority 6. Because these two queues share the same persistent
// data structure, this won't do. (This can only happen when the incoming update
// has higher priority than all the updates in the work-in-progress queue.)
//
// To solve this, in the case where the incoming update needs to be inserted
// into two different positions, we'll make a clone of the update and insert
// each copy into a separate queue. This forks the list while maintaining a
// persistent structure, because the update that is added to the work-in-progress
// is always added to the front of the list.
//
// However, if incoming update is inserted into the same position of both lists,
// we shouldn't make a copy.
//
// If the update is cloned, it returns the cloned update.
function insertUpdate(fiber, update) {
// We'll have at least one and at most two distinct update queues.
ensureUpdateQueues(fiber);
var queue1 = _queue1;
var queue2 = _queue2;
// Warn if an update is scheduled from inside an updater function.
{
if (queue1.isProcessing || queue2 !== null && queue2.isProcessing) {
warning$19(false, 'An update (setState, replaceState, or forceUpdate) was scheduled ' + 'from inside an update function. Update functions should be pure, ' + 'with zero side-effects. Consider using componentDidUpdate or a ' + 'callback.');
}
}
// Find the insertion position in the first queue.
var insertAfter1 = findInsertionPosition(queue1, update);
var insertBefore1 = insertAfter1 !== null ? insertAfter1.next : queue1.first;
if (queue2 === null) {
// If there's no alternate queue, there's nothing else to do but insert.
insertUpdateIntoQueue(queue1, update, insertAfter1, insertBefore1);
return null;
}
// If there is an alternate queue, find the insertion position.
var insertAfter2 = findInsertionPosition(queue2, update);
var insertBefore2 = insertAfter2 !== null ? insertAfter2.next : queue2.first;
// Now we can insert into the first queue. This must come after finding both
// insertion positions because it mutates the list.
insertUpdateIntoQueue(queue1, update, insertAfter1, insertBefore1);
// See if the insertion positions are equal. Be careful to only compare
// non-null values.
if (insertBefore1 === insertBefore2 && insertBefore1 !== null || insertAfter1 === insertAfter2 && insertAfter1 !== null) {
// The insertion positions are the same, so when we inserted into the first
// queue, it also inserted into the alternate. All we need to do is update
// the alternat
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment