diff --git a/Makefile b/Makefile
index 305926e5bc..ea9fc21d43 100644
--- a/Makefile
+++ b/Makefile
@@ -78,9 +78,10 @@ travis:
mv $(DIST_PATH)/web/static/js/bundle.min.js $(DIST_PATH)/web/static/js/bundle-$(BUILD_NUMBER).min.js
- @sed -i'.bak' 's|react-with-addons-0.13.1.js|react-with-addons-0.13.1.min.js|g' $(DIST_PATH)/web/templates/head.html
+ @sed -i'.bak' 's|react-with-addons-0.13.3.js|react-with-addons-0.13.3.min.js|g' $(DIST_PATH)/web/templates/head.html
@sed -i'.bak' 's|jquery-1.11.1.js|jquery-1.11.1.min.js|g' $(DIST_PATH)/web/templates/head.html
- @sed -i'.bak' 's|bootstrap-3.3.1.js|bootstrap-3.3.1.min.js|g' $(DIST_PATH)/web/templates/head.html
+ @sed -i'.bak' 's|bootstrap-3.3.5.js|bootstrap-3.3.5.min.js|g' $(DIST_PATH)/web/templates/head.html
+ @sed -i'.bak' 's|react-bootstrap-0.25.1.js|react-bootstrap-0.25.1.min.js|g' $(DIST_PATH)/web/templates/head.html
@sed -i'.bak' 's|perfect-scrollbar.js|perfect-scrollbar.min.js|g' $(DIST_PATH)/web/templates/head.html
@sed -i'.bak' 's|bundle.js|bundle-$(BUILD_NUMBER).min.js|g' $(DIST_PATH)/web/templates/head.html
rm $(DIST_PATH)/web/templates/*.bak
@@ -231,9 +232,10 @@ dist: install
mv $(DIST_PATH)/web/static/js/bundle.min.js $(DIST_PATH)/web/static/js/bundle-$(BUILD_NUMBER).min.js
- @sed -i'.bak' 's|react-with-addons-0.13.1.js|react-with-addons-0.13.1.min.js|g' $(DIST_PATH)/web/templates/head.html
+ @sed -i'.bak' 's|react-with-addons-0.13.3.js|react-with-addons-0.13.3.min.js|g' $(DIST_PATH)/web/templates/head.html
@sed -i'.bak' 's|jquery-1.11.1.js|jquery-1.11.1.min.js|g' $(DIST_PATH)/web/templates/head.html
- @sed -i'.bak' 's|bootstrap-3.3.1.js|bootstrap-3.3.1.min.js|g' $(DIST_PATH)/web/templates/head.html
+ @sed -i'.bak' 's|bootstrap-3.3.5.js|bootstrap-3.3.5.min.js|g' $(DIST_PATH)/web/templates/head.html
+ @sed -i'.bak' 's|react-bootstrap-0.25.1.js|react-bootstrap-0.25.1.min.js|g' $(DIST_PATH)/web/templates/head.html
@sed -i'.bak' 's|perfect-scrollbar.js|perfect-scrollbar.min.js|g' $(DIST_PATH)/web/templates/head.html
@sed -i'.bak' 's|bundle.js|bundle-$(BUILD_NUMBER).min.js|g' $(DIST_PATH)/web/templates/head.html
rm $(DIST_PATH)/web/templates/*.bak
diff --git a/web/react/.eslintrc b/web/react/.eslintrc
index 53cc759139..c0d0bb2006 100644
--- a/web/react/.eslintrc
+++ b/web/react/.eslintrc
@@ -18,7 +18,8 @@
"es6": true
},
"globals": {
- "React": false
+ "React": false,
+ "ReactBootstrap": false
},
"rules": {
"comma-dangle": [2, "never"],
diff --git a/web/react/components/change_url_modal.jsx b/web/react/components/change_url_modal.jsx
new file mode 100644
index 0000000000..28fa70c1f4
--- /dev/null
+++ b/web/react/components/change_url_modal.jsx
@@ -0,0 +1,177 @@
+// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+var Modal = ReactBootstrap.Modal;
+var Utils = require('../utils/utils.jsx');
+
+export default class ChangeUrlModal extends React.Component {
+ constructor(props) {
+ super(props);
+
+ this.onURLChanged = this.onURLChanged.bind(this);
+ this.doSubmit = this.doSubmit.bind(this);
+ this.doCancel = this.doCancel.bind(this);
+
+ this.state = {
+ currentURL: props.currentURL,
+ urlError: '',
+ userEdit: false
+ };
+ }
+ componentWillReceiveProps(nextProps) {
+ // This check prevents the url being deleted when we re-render
+ // because of user status check
+ if (!this.state.userEdit) {
+ this.setState({
+ currentURL: nextProps.currentURL
+ });
+ }
+ }
+ componentDidUpdate(prevProps) {
+ if (this.props.show === true && prevProps.show === false) {
+ React.findDOMNode(this.refs.urlinput).select();
+ }
+ }
+ onURLChanged(e) {
+ const url = e.target.value.trim();
+ this.setState({currentURL: url.replace(/[^A-Za-z0-9-_]/g, '').toLowerCase(), userEdit: true});
+ }
+ getURLError(url) {
+ let error = []; //eslint-disable-line prefer-const
+ if (url.length < 2) {
+ error.push({'Must be longer than two characters'}
);
+ }
+ if (url.charAt(0) === '-' || url.charAt(0) === '_') {
+ error.push({'Must start with a letter or number'}
);
+ }
+ if (url.length > 1 && (url.charAt(url.length - 1) === '-' || url.charAt(url.length - 1) === '_')) {
+ error.push({'Must end with a letter or number'}
);
+ }
+ if (url.indexOf('__') > -1) {
+ error.push({'Can not contain two underscores in a row.'}
);
+ }
+
+ // In case of error we don't detect
+ if (error.length === 0) {
+ error.push({'Invalid URL'}
);
+ }
+ return error;
+ }
+ doSubmit(e) {
+ e.preventDefault();
+
+ const url = React.findDOMNode(this.refs.urlinput).value;
+ const cleanedURL = Utils.cleanUpUrlable(url);
+ if (cleanedURL !== url || url.length < 2 || url.indexOf('__') > -1) {
+ this.setState({urlError: this.getURLError(url)});
+ return;
+ }
+ this.setState({urlError: '', userEdit: false});
+ this.props.onModalSubmit(url);
+ }
+ doCancel() {
+ this.setState({urlError: '', userEdit: false});
+ this.props.onModalDismissed();
+ }
+ render() {
+ let urlClass = 'input-group input-group--limit';
+ let urlError = null;
+ let serverError = null;
+
+ if (this.state.urlError) {
+ urlClass += ' has-error';
+ urlError = (
{this.state.urlError}
);
+ }
+
+ if (this.props.serverError) {
+ serverError = ;
+ }
+
+ const fullTeamUrl = Utils.getTeamURLFromAddressBar();
+ const teamURL = Utils.getShortenedTeamURL();
+
+ return (
+
+
+ {this.props.title}
+
+
+
+ );
+ }
+}
+
+ChangeUrlModal.defaultProps = {
+ show: false,
+ title: 'Change URL',
+ desciption: '',
+ urlLabel: 'URL',
+ submitButtonText: 'Submit',
+ currentURL: '',
+ serverError: ''
+};
+
+ChangeUrlModal.propTypes = {
+ show: React.PropTypes.bool.isRequired,
+ title: React.PropTypes.string,
+ description: React.PropTypes.string,
+ urlLabel: React.PropTypes.string,
+ submitButtonText: React.PropTypes.string,
+ currentURL: React.PropTypes.string,
+ serverError: React.PropTypes.string,
+ onModalSubmit: React.PropTypes.func.isRequired,
+ onModalDismissed: React.PropTypes.func.isRequired
+};
diff --git a/web/react/components/file_upload.jsx b/web/react/components/file_upload.jsx
index 534f0136ee..d7b6f08b0a 100644
--- a/web/react/components/file_upload.jsx
+++ b/web/react/components/file_upload.jsx
@@ -53,7 +53,7 @@ export default class FileUpload extends React.Component {
}
// generate a unique id that can be used by other components to refer back to this upload
- var clientId = utils.generateId();
+ let clientId = utils.generateId();
// prepare data to be uploaded
var formData = new FormData();
diff --git a/web/react/components/new_channel.jsx b/web/react/components/new_channel.jsx
deleted file mode 100644
index 1a11fc652c..0000000000
--- a/web/react/components/new_channel.jsx
+++ /dev/null
@@ -1,211 +0,0 @@
-// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
-// See License.txt for license information.
-
-var utils = require('../utils/utils.jsx');
-var client = require('../utils/client.jsx');
-var asyncClient = require('../utils/async_client.jsx');
-var UserStore = require('../stores/user_store.jsx');
-
-export default class NewChannelModal extends React.Component {
- constructor() {
- super();
-
- this.handleSubmit = this.handleSubmit.bind(this);
- this.displayNameKeyUp = this.displayNameKeyUp.bind(this);
- this.handleClose = this.handleClose.bind(this);
-
- this.state = {channelType: ''};
- }
- handleSubmit(e) {
- e.preventDefault();
-
- var channel = {};
- var state = {serverError: ''};
-
- channel.display_name = React.findDOMNode(this.refs.display_name).value.trim();
- if (!channel.display_name) {
- state.displayNameError = 'This field is required';
- state.inValid = true;
- } else if (channel.display_name.length > 22) {
- state.displayNameError = 'This field must be less than 22 characters';
- state.inValid = true;
- } else {
- state.displayNameError = '';
- }
-
- channel.name = React.findDOMNode(this.refs.channel_name).value.trim();
- if (!channel.name) {
- state.nameError = 'This field is required';
- state.inValid = true;
- } else if (channel.name.length > 22) {
- state.nameError = 'This field must be less than 22 characters';
- state.inValid = true;
- } else {
- var cleanedName = utils.cleanUpUrlable(channel.name);
- if (cleanedName !== channel.name) {
- state.nameError = "Must be lowercase alphanumeric characters, allowing '-' but not starting or ending with '-'";
- state.inValid = true;
- } else {
- state.nameError = '';
- }
- }
-
- this.setState(state);
-
- if (state.inValid) {
- return;
- }
-
- var cu = UserStore.getCurrentUser();
- channel.team_id = cu.team_id;
-
- channel.description = React.findDOMNode(this.refs.channel_desc).value.trim();
- channel.type = this.state.channelType;
-
- client.createChannel(channel,
- function success(data) {
- $(React.findDOMNode(this.refs.modal)).modal('hide');
-
- asyncClient.getChannel(data.id);
- utils.switchChannel(data);
-
- React.findDOMNode(this.refs.display_name).value = '';
- React.findDOMNode(this.refs.channel_name).value = '';
- React.findDOMNode(this.refs.channel_desc).value = '';
- }.bind(this),
- function error(err) {
- state.serverError = err.message;
- state.inValid = true;
- this.setState(state);
- }.bind(this)
- );
- }
- displayNameKeyUp() {
- var displayName = React.findDOMNode(this.refs.display_name).value.trim();
- var channelName = utils.cleanUpUrlable(displayName);
- React.findDOMNode(this.refs.channel_name).value = channelName;
- }
- componentDidMount() {
- var self = this;
- $(React.findDOMNode(this.refs.modal)).on('show.bs.modal', function onModalShow(e) {
- var button = e.relatedTarget;
- self.setState({channelType: $(button).attr('data-channeltype')});
- });
- $(React.findDOMNode(this.refs.modal)).on('hidden.bs.modal', this.handleClose);
- }
- componentWillUnmount() {
- $(React.findDOMNode(this.refs.modal)).off('hidden.bs.modal', this.handleClose);
- }
- handleClose() {
- $(React.findDOMNode(this)).find('.form-control').each(function clearForms() {
- this.value = '';
- });
-
- this.setState({channelType: '', displayNameError: '', nameError: '', serverError: '', inValid: false});
- }
- render() {
- var displayNameError = null;
- var nameError = null;
- var serverError = null;
- var displayNameClass = 'form-group';
- var nameClass = 'form-group';
-
- if (this.state.displayNameError) {
- displayNameError = ;
- displayNameClass += ' has-error';
- }
- if (this.state.nameError) {
- nameError = ;
- nameClass += ' has-error';
- }
- if (this.state.serverError) {
- serverError = ;
- }
-
- var channelTerm = 'Channel';
- if (this.state.channelType === 'P') {
- channelTerm = 'Group';
- }
-
- return (
-
-
-
-
-
-
New {channelTerm}
-
-
-
-
-
- );
- }
-}
diff --git a/web/react/components/new_channel_flow.jsx b/web/react/components/new_channel_flow.jsx
new file mode 100644
index 0000000000..df6a119d53
--- /dev/null
+++ b/web/react/components/new_channel_flow.jsx
@@ -0,0 +1,206 @@
+// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+var Utils = require('../utils/utils.jsx');
+var AsyncClient = require('../utils/async_client.jsx');
+var Client = require('../utils/client.jsx');
+var UserStore = require('../stores/user_store.jsx');
+
+var NewChannelModal = require('./new_channel_modal.jsx');
+var ChangeURLModal = require('./change_url_modal.jsx');
+
+const SHOW_NEW_CHANNEL = 1;
+const SHOW_EDIT_URL = 2;
+const SHOW_EDIT_URL_THEN_COMPLETE = 3;
+
+export default class NewChannelFlow extends React.Component {
+ constructor(props) {
+ super(props);
+
+ this.doSubmit = this.doSubmit.bind(this);
+ this.typeSwitched = this.typeSwitched.bind(this);
+ this.urlChangeRequested = this.urlChangeRequested.bind(this);
+ this.urlChangeSubmitted = this.urlChangeSubmitted.bind(this);
+ this.urlChangeDismissed = this.urlChangeDismissed.bind(this);
+ this.channelDataChanged = this.channelDataChanged.bind(this);
+
+ this.state = {
+ serverError: '',
+ channelType: 'O',
+ flowState: SHOW_NEW_CHANNEL,
+ channelDisplayName: '',
+ channelName: '',
+ channelDescription: '',
+ nameModified: false
+ };
+ }
+ componentWillReceiveProps(nextProps) {
+ // If we are being shown, grab channel type from props and clear
+ if (nextProps.show === true && this.props.show === false) {
+ this.setState({
+ serverError: '',
+ channelType: nextProps.channelType,
+ flowState: SHOW_NEW_CHANNEL,
+ channelDisplayName: '',
+ channelName: '',
+ channelDescription: '',
+ nameModified: false
+ });
+ }
+ }
+ doSubmit() {
+ var channel = {};
+
+ channel.display_name = this.state.channelDisplayName;
+ if (!channel.display_name) {
+ this.setState({serverError: 'Invalid Channel Name'});
+ return;
+ }
+
+ channel.name = this.state.channelName;
+ if (channel.name.length < 2) {
+ this.setState({flowState: SHOW_EDIT_URL_THEN_COMPLETE});
+ return;
+ }
+
+ const cu = UserStore.getCurrentUser();
+ channel.team_id = cu.team_id;
+ channel.description = this.state.channelDescription;
+ channel.type = this.state.channelType;
+
+ Client.createChannel(channel,
+ (data) => {
+ this.props.onModalDismissed();
+ AsyncClient.getChannel(data.id);
+ Utils.switchChannel(data);
+ },
+ (err) => {
+ if (err.message === 'Name must be 2 or more lowercase alphanumeric characters') {
+ this.setState({flowState: SHOW_EDIT_URL_THEN_COMPLETE});
+ }
+ if (err.message === 'A channel with that handle already exists') {
+ this.setState({serverError: 'A channel with that URL already exists'});
+ return;
+ }
+ this.setState({serverError: err.message});
+ }
+ );
+ }
+ typeSwitched() {
+ if (this.state.channelType === 'P') {
+ this.setState({channelType: 'O'});
+ } else {
+ this.setState({channelType: 'P'});
+ }
+ }
+ urlChangeRequested() {
+ this.setState({flowState: SHOW_EDIT_URL});
+ }
+ urlChangeSubmitted(newURL) {
+ if (this.state.flowState === SHOW_EDIT_URL_THEN_COMPLETE) {
+ this.setState({channelName: newURL, nameModified: true}, this.doSubmit);
+ } else {
+ this.setState({flowState: SHOW_NEW_CHANNEL, serverError: '', channelName: newURL, nameModified: true});
+ }
+ }
+ urlChangeDismissed() {
+ this.setState({flowState: SHOW_NEW_CHANNEL});
+ }
+ channelDataChanged(data) {
+ this.setState({
+ channelDisplayName: data.displayName,
+ channelDescription: data.description
+ });
+ if (!this.state.nameModified) {
+ this.setState({channelName: Utils.cleanUpUrlable(data.displayName.trim())});
+ }
+ }
+ render() {
+ const channelData = {
+ name: this.state.channelName,
+ displayName: this.state.channelDisplayName,
+ description: this.state.channelDescription
+ };
+
+ let showChannelModal = false;
+ let showGroupModal = false;
+ let showChangeURLModal = false;
+
+ let changeURLTitle = '';
+ let changeURLSubmitButtonText = '';
+ let channelTerm = '';
+
+ // Only listen to flow state if we are being shown
+ if (this.props.show) {
+ switch (this.state.flowState) {
+ case SHOW_NEW_CHANNEL:
+ if (this.state.channelType === 'O') {
+ showChannelModal = true;
+ channelTerm = 'Channel';
+ } else {
+ showGroupModal = true;
+ channelTerm = 'Group';
+ }
+ break;
+ case SHOW_EDIT_URL:
+ showChangeURLModal = true;
+ changeURLTitle = 'Change ' + channelTerm + ' URL';
+ changeURLSubmitButtonText = 'Change ' + channelTerm + ' URL';
+ break;
+ case SHOW_EDIT_URL_THEN_COMPLETE:
+ showChangeURLModal = true;
+ changeURLTitle = 'Set ' + channelTerm + ' URL';
+ changeURLSubmitButtonText = 'Create ' + channelTerm;
+ break;
+ }
+ }
+ return (
+
+
+
+
+
+ );
+ }
+}
+
+NewChannelFlow.defaultProps = {
+ show: false,
+ channelType: 'O'
+};
+
+NewChannelFlow.propTypes = {
+ show: React.PropTypes.bool.isRequired,
+ channelType: React.PropTypes.string.isRequired,
+ onModalDismissed: React.PropTypes.func.isRequired
+};
diff --git a/web/react/components/new_channel_modal.jsx b/web/react/components/new_channel_modal.jsx
new file mode 100644
index 0000000000..2bf645dc5d
--- /dev/null
+++ b/web/react/components/new_channel_modal.jsx
@@ -0,0 +1,198 @@
+// Copyright (c) 2015 Spinpunch, Inc. All Rights Reserved.
+// See License.txt for license information.
+
+const Utils = require('../utils/utils.jsx');
+var Modal = ReactBootstrap.Modal;
+
+export default class NewChannelModal extends React.Component {
+ constructor(props) {
+ super(props);
+
+ this.handleSubmit = this.handleSubmit.bind(this);
+ this.handleChange = this.handleChange.bind(this);
+
+ this.state = {
+ displayNameError: ''
+ };
+ }
+ componentWillReceiveProps(nextProps) {
+ if (nextProps.show === true && this.props.show === false) {
+ this.setState({
+ displayNameError: ''
+ });
+ }
+ }
+ handleSubmit(e) {
+ e.preventDefault();
+
+ const displayName = React.findDOMNode(this.refs.display_name).value.trim();
+ if (displayName.length < 1) {
+ this.setState({displayNameError: 'This field is required'});
+ return;
+ }
+
+ this.props.onSubmitChannel();
+ }
+ handleChange() {
+ const newData = {
+ displayName: React.findDOMNode(this.refs.display_name).value,
+ description: React.findDOMNode(this.refs.channel_desc).value
+ };
+ this.props.onDataChanged(newData);
+ }
+ render() {
+ var displayNameError = null;
+ var serverError = null;
+ var displayNameClass = 'form-group';
+
+ if (this.state.displayNameError) {
+ displayNameError = {this.state.displayNameError}
;
+ displayNameClass += ' has-error';
+ }
+
+ if (this.props.serverError) {
+ serverError = ;
+ }
+
+ var channelTerm = '';
+ var channelSwitchText = '';
+ switch (this.props.channelType) {
+ case 'P':
+ channelTerm = 'Group';
+ channelSwitchText = (
+
+ );
+ break;
+ case 'O':
+ channelTerm = 'Channel';
+ channelSwitchText = (
+
+ );
+ break;
+ }
+
+ const prettyTeamURL = Utils.getShortenedTeamURL();
+
+ return (
+
+
+
+ {'New ' + channelTerm}
+
+
+
+
+ );
+ }
+}
+
+NewChannelModal.defaultProps = {
+ show: false,
+ channelType: 'O',
+ serverError: ''
+};
+NewChannelModal.propTypes = {
+ show: React.PropTypes.bool.isRequired,
+ channelType: React.PropTypes.string.isRequired,
+ channelData: React.PropTypes.object.isRequired,
+ serverError: React.PropTypes.string,
+ onSubmitChannel: React.PropTypes.func.isRequired,
+ onModalDismissed: React.PropTypes.func.isRequired,
+ onTypeSwitched: React.PropTypes.func.isRequired,
+ onChangeURLPressed: React.PropTypes.func.isRequired,
+ onDataChanged: React.PropTypes.func.isRequired
+};
diff --git a/web/react/components/sidebar.jsx b/web/react/components/sidebar.jsx
index ad934d2718..977fecb5c9 100644
--- a/web/react/components/sidebar.jsx
+++ b/web/react/components/sidebar.jsx
@@ -12,6 +12,7 @@ var Utils = require('../utils/utils.jsx');
var SidebarHeader = require('./sidebar_header.jsx');
var SearchBox = require('./search_bar.jsx');
var Constants = require('../utils/constants.jsx');
+var NewChannelFlow = require('./new_channel_flow.jsx');
export default class Sidebar extends React.Component {
constructor(props) {
@@ -28,6 +29,7 @@ export default class Sidebar extends React.Component {
this.createChannelElement = this.createChannelElement.bind(this);
this.state = this.getStateFromStores();
+ this.state.modal = '';
this.state.loadingDMChannel = -1;
}
getStateFromStores() {
@@ -473,8 +475,18 @@ export default class Sidebar extends React.Component {
);
}
+ let showChannelModal = false;
+ if (this.state.modal !== '') {
+ showChannelModal = true;
+ }
+
return (
+
this.setState({modal: ''})}
+ />
this.setState({modal: 'O'})}
>
- +
+ {'+'}
@@ -537,11 +547,9 @@ export default class Sidebar extends React.Component {
this.setState({modal: 'P'})}
>
- +
+ {'+'}
diff --git a/web/react/package.json b/web/react/package.json
index e557221524..11d60376dc 100644
--- a/web/react/package.json
+++ b/web/react/package.json
@@ -7,7 +7,6 @@
"flux": "2.1.1",
"keymirror": "0.1.1",
"object-assign": "3.0.0",
- "react": "0.13.3",
"react-zeroclipboard-mixin": "0.1.0",
"twemoji": "1.4.1"
},
diff --git a/web/react/pages/channel.jsx b/web/react/pages/channel.jsx
index 182721bef3..e70b51865b 100644
--- a/web/react/pages/channel.jsx
+++ b/web/react/pages/channel.jsx
@@ -17,7 +17,6 @@ var RenameChannelModal = require('../components/rename_channel_modal.jsx');
var EditPostModal = require('../components/edit_post_modal.jsx');
var DeletePostModal = require('../components/delete_post_modal.jsx');
var MoreChannelsModal = require('../components/more_channels.jsx');
-var NewChannelModal = require('../components/new_channel.jsx');
var PostDeletedModal = require('../components/post_deleted_modal.jsx');
var ChannelNotificationsModal = require('../components/channel_notifications.jsx');
var UserSettingsModal = require('../components/user_settings_modal.jsx');
@@ -153,11 +152,6 @@ function setupChannelPage(teamName, teamType, teamId, channelName, channelId) {
document.getElementById('direct_channel_modal')
);
- React.render(
- ,
- document.getElementById('new_channel_modal')
- );
-
React.render(
,
document.getElementById('post-list')
diff --git a/web/react/utils/utils.jsx b/web/react/utils/utils.jsx
index 71cd1d3441..2fd6152c3e 100644
--- a/web/react/utils/utils.jsx
+++ b/web/react/utils/utils.jsx
@@ -1127,3 +1127,14 @@ export function importSlack(file, success, error) {
client.importSlack(formData, success, error);
}
+
+export function getTeamURLFromAddressBar() {
+ return window.location.href.split('/channels')[0];
+}
+
+export function getShortenedTeamURL() {
+ const teamURL = getTeamURLFromAddressBar();
+ if (teamURL.length > 24) {
+ return teamURL.substring(0, 10) + '...' + teamURL.substring(teamURL.length - 12, teamURL.length - 1) + '/';
+ }
+}
diff --git a/web/sass-files/sass/partials/_forms.scss b/web/sass-files/sass/partials/_forms.scss
new file mode 100644
index 0000000000..268576a988
--- /dev/null
+++ b/web/sass-files/sass/partials/_forms.scss
@@ -0,0 +1,33 @@
+.form-horizontal {
+ .modal-intro {
+ margin: -10px 0 30px;
+ }
+ .form__label {
+ text-align: left;
+ padding-right: 3px;
+ font-weight: bold;
+ font-size: 1.1em;
+ &.light {
+ color: #999;
+ font-size: 1.05em;
+ font-style: italic;
+ padding-top: 2px;
+ }
+ }
+ .input__help {
+ color: #777;
+ margin: 10px 0 0 10px;
+ &.error {
+ color: #a94442;
+ }
+ }
+ .form-control {
+ font-weight: normal;
+ }
+ .form-group {
+ margin-bottom: 25px;
+ &.less {
+ margin-bottom: 10px;
+ }
+ }
+}
diff --git a/web/sass-files/sass/styles.scss b/web/sass-files/sass/styles.scss
index eb5152a2c1..3a9be69f3d 100644
--- a/web/sass-files/sass/styles.scss
+++ b/web/sass-files/sass/styles.scss
@@ -28,6 +28,7 @@
@import "partials/videos";
@import "partials/settings";
@import "partials/modal";
+@import "partials/forms";
@import "partials/mentions";
@import "partials/command-box";
@import "partials/error";
diff --git a/web/static/css/bootstrap-3.3.1.min.css b/web/static/css/bootstrap-3.3.1.min.css
deleted file mode 100644
index b6fe4e0fbc..0000000000
--- a/web/static/css/bootstrap-3.3.1.min.css
+++ /dev/null
@@ -1,5 +0,0 @@
-/*!
- * Bootstrap v3.3.1 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- *//*! normalize.css v3.0.2 | MIT License | git.io/normalize */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:before,:after{color:#000!important;text-shadow:none!important;background:transparent!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100%!important}p,h2,h3{orphans:3;widows:3}h2,h3{page-break-after:avoid}select{background:#fff!important}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered th,.table-bordered td{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-euro:before,.glyphicon-eur:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:before,:after{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}input,button,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:hover,a:focus{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.img-responsive,.thumbnail>img,.thumbnail a>img,.carousel-inner>.item>img,.carousel-inner>.item>a>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}h1,h2,h3,h4,h5,h6,.h1,.h2,.h3,.h4,.h5,.h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}h1 small,h2 small,h3 small,h4 small,h5 small,h6 small,.h1 small,.h2 small,.h3 small,.h4 small,.h5 small,.h6 small,h1 .small,h2 .small,h3 .small,h4 .small,h5 .small,h6 .small,.h1 .small,.h2 .small,.h3 .small,.h4 .small,.h5 .small,.h6 .small{font-weight:400;line-height:1;color:#777}h1,.h1,h2,.h2,h3,.h3{margin-top:20px;margin-bottom:10px}h1 small,.h1 small,h2 small,.h2 small,h3 small,.h3 small,h1 .small,.h1 .small,h2 .small,.h2 .small,h3 .small,.h3 .small{font-size:65%}h4,.h4,h5,.h5,h6,.h6{margin-top:10px;margin-bottom:10px}h4 small,.h4 small,h5 small,.h5 small,h6 small,.h6 small,h4 .small,.h4 .small,h5 .small,.h5 .small,h6 .small,.h6 .small{font-size:75%}h1,.h1{font-size:36px}h2,.h2{font-size:30px}h3,.h3{font-size:24px}h4,.h4{font-size:18px}h5,.h5{font-size:14px}h6,.h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}small,.small{font-size:85%}mark,.mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ul,ol{margin-top:0;margin-bottom:10px}ul ul,ol ul,ul ol,ol ol{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dt,dd{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[title],abbr[data-original-title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote p:last-child,blockquote ul:last-child,blockquote ol:last-child{margin-bottom:0}blockquote footer,blockquote small,blockquote .small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote footer:before,blockquote small:before,blockquote .small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse footer:before,blockquote.pull-right footer:before,.blockquote-reverse small:before,blockquote.pull-right small:before,.blockquote-reverse .small:before,blockquote.pull-right .small:before{content:''}.blockquote-reverse footer:after,blockquote.pull-right footer:after,.blockquote-reverse small:after,blockquote.pull-right small:after,.blockquote-reverse .small:after,blockquote.pull-right .small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-xs-1,.col-sm-1,.col-md-1,.col-lg-1,.col-xs-2,.col-sm-2,.col-md-2,.col-lg-2,.col-xs-3,.col-sm-3,.col-md-3,.col-lg-3,.col-xs-4,.col-sm-4,.col-md-4,.col-lg-4,.col-xs-5,.col-sm-5,.col-md-5,.col-lg-5,.col-xs-6,.col-sm-6,.col-md-6,.col-lg-6,.col-xs-7,.col-sm-7,.col-md-7,.col-lg-7,.col-xs-8,.col-sm-8,.col-md-8,.col-lg-8,.col-xs-9,.col-sm-9,.col-md-9,.col-lg-9,.col-xs-10,.col-sm-10,.col-md-10,.col-lg-10,.col-xs-11,.col-sm-11,.col-md-11,.col-lg-11,.col-xs-12,.col-sm-12,.col-md-12,.col-lg-12{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9,.col-xs-10,.col-xs-11,.col-xs-12{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-sm-10,.col-sm-11,.col-sm-12{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-md-10,.col-md-11,.col-md-12{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-lg-10,.col-lg-11,.col-lg-12{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>thead>tr>th,.table>tbody>tr>th,.table>tfoot>tr>th,.table>thead>tr>td,.table>tbody>tr>td,.table>tfoot>tr>td{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>th,.table>caption+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>td,.table>thead:first-child>tr:first-child>td{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>thead>tr>th,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>tbody>tr>td,.table-condensed>tfoot>tr>td{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>tbody>tr>td,.table-bordered>tfoot>tr>td{border:1px solid #ddd}.table-bordered>thead>tr>th,.table-bordered>thead>tr>td{border-bottom-width:2px}.table-striped>tbody>tr:nth-child(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>thead>tr>td.active,.table>tbody>tr>td.active,.table>tfoot>tr>td.active,.table>thead>tr>th.active,.table>tbody>tr>th.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>tbody>tr.active>td,.table>tfoot>tr.active>td,.table>thead>tr.active>th,.table>tbody>tr.active>th,.table>tfoot>tr.active>th{background-color:#f5f5f5}.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover,.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr.active:hover>th{background-color:#e8e8e8}.table>thead>tr>td.success,.table>tbody>tr>td.success,.table>tfoot>tr>td.success,.table>thead>tr>th.success,.table>tbody>tr>th.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>tbody>tr.success>td,.table>tfoot>tr.success>td,.table>thead>tr.success>th,.table>tbody>tr.success>th,.table>tfoot>tr.success>th{background-color:#dff0d8}.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover,.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr.success:hover>th{background-color:#d0e9c6}.table>thead>tr>td.info,.table>tbody>tr>td.info,.table>tfoot>tr>td.info,.table>thead>tr>th.info,.table>tbody>tr>th.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>tbody>tr.info>td,.table>tfoot>tr.info>td,.table>thead>tr.info>th,.table>tbody>tr.info>th,.table>tfoot>tr.info>th{background-color:#d9edf7}.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover,.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr.info:hover>th{background-color:#c4e3f3}.table>thead>tr>td.warning,.table>tbody>tr>td.warning,.table>tfoot>tr>td.warning,.table>thead>tr>th.warning,.table>tbody>tr>th.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>tbody>tr.warning>td,.table>tfoot>tr.warning>td,.table>thead>tr.warning>th,.table>tbody>tr.warning>th,.table>tfoot>tr.warning>th{background-color:#fcf8e3}.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover,.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr.warning:hover>th{background-color:#faf2cc}.table>thead>tr>td.danger,.table>tbody>tr>td.danger,.table>tfoot>tr>td.danger,.table>thead>tr>th.danger,.table>tbody>tr>th.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>tbody>tr.danger>td,.table>tfoot>tr.danger>td,.table>thead>tr.danger>th,.table>tbody>tr.danger>th,.table>tfoot>tr.danger>th{background-color:#f2dede}.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover,.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr.danger:hover>th{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>thead>tr>th,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tfoot>tr>td{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>thead>tr>th:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.table-responsive>.table-bordered>thead>tr>th:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>th,.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>td{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=radio],input[type=checkbox]{margin:4px 0 0;margin-top:1px \9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=radio]:focus,input[type=checkbox]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{cursor:not-allowed;background-color:#eee;opacity:1}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date],input[type=time],input[type=datetime-local],input[type=month]{line-height:34px}input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.radio,.checkbox{position:relative;display:block;margin-top:10px;margin-bottom:10px}.radio label,.checkbox label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.radio input[type=radio],.radio-inline input[type=radio],.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox]{position:absolute;margin-top:4px \9;margin-left:-20px}.radio+.radio,.checkbox+.checkbox{margin-top:-5px}.radio-inline,.checkbox-inline{display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.radio-inline+.radio-inline,.checkbox-inline+.checkbox-inline{margin-top:0;margin-left:10px}input[type=radio][disabled],input[type=checkbox][disabled],input[type=radio].disabled,input[type=checkbox].disabled,fieldset[disabled] input[type=radio],fieldset[disabled] input[type=checkbox]{cursor:not-allowed}.radio-inline.disabled,.checkbox-inline.disabled,fieldset[disabled] .radio-inline,fieldset[disabled] .checkbox-inline{cursor:not-allowed}.radio.disabled label,.checkbox.disabled label,fieldset[disabled] .radio label,fieldset[disabled] .checkbox label{cursor:not-allowed}.form-control-static{padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm,.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm,select.form-group-sm .form-control{height:30px;line-height:30px}textarea.input-sm,textarea.form-group-sm .form-control,select[multiple].input-sm,select[multiple].form-group-sm .form-control{height:auto}.input-lg,.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-lg,select.form-group-lg .form-control{height:46px;line-height:46px}textarea.input-lg,textarea.form-group-lg .form-control,select[multiple].input-lg,select[multiple].form-group-lg .form-control{height:auto}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .help-block,.has-success .control-label,.has-success .radio,.has-success .checkbox,.has-success .radio-inline,.has-success .checkbox-inline,.has-success.radio label,.has-success.checkbox label,.has-success.radio-inline label,.has-success.checkbox-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .help-block,.has-warning .control-label,.has-warning .radio,.has-warning .checkbox,.has-warning .radio-inline,.has-warning .checkbox-inline,.has-warning.radio label,.has-warning.checkbox label,.has-warning.radio-inline label,.has-warning.checkbox-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .help-block,.has-error .control-label,.has-error .radio,.has-error .checkbox,.has-error .radio-inline,.has-error .checkbox-inline,.has-error.radio label,.has-error.checkbox label,.has-error.radio-inline label,.has-error.checkbox-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn,.form-inline .input-group .form-control{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .radio,.form-inline .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .radio label,.form-inline .checkbox label{padding-left:0}.form-inline .radio input[type=radio],.form-inline .checkbox input[type=checkbox]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .radio,.form-horizontal .checkbox,.form-horizontal .radio-inline,.form-horizontal .checkbox-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .radio,.form-horizontal .checkbox{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.3px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn:focus,.btn:active:focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn.active.focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn:hover,.btn:focus,.btn.focus{color:#333;text-decoration:none}.btn:active,.btn.active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{pointer-events:none;cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default:hover,.btn-default:focus,.btn-default.focus,.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default:active,.btn-default.active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default[disabled],fieldset[disabled] .btn-default,.btn-default.disabled:hover,.btn-default[disabled]:hover,fieldset[disabled] .btn-default:hover,.btn-default.disabled:focus,.btn-default[disabled]:focus,fieldset[disabled] .btn-default:focus,.btn-default.disabled.focus,.btn-default[disabled].focus,fieldset[disabled] .btn-default.focus,.btn-default.disabled:active,.btn-default[disabled]:active,fieldset[disabled] .btn-default:active,.btn-default.disabled.active,.btn-default[disabled].active,fieldset[disabled] .btn-default.active{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary:hover,.btn-primary:focus,.btn-primary.focus,.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary:active,.btn-primary.active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary[disabled],fieldset[disabled] .btn-primary,.btn-primary.disabled:hover,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary:hover,.btn-primary.disabled:focus,.btn-primary[disabled]:focus,fieldset[disabled] .btn-primary:focus,.btn-primary.disabled.focus,.btn-primary[disabled].focus,fieldset[disabled] .btn-primary.focus,.btn-primary.disabled:active,.btn-primary[disabled]:active,fieldset[disabled] .btn-primary:active,.btn-primary.disabled.active,.btn-primary[disabled].active,fieldset[disabled] .btn-primary.active{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success:hover,.btn-success:focus,.btn-success.focus,.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success:active,.btn-success.active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success[disabled],fieldset[disabled] .btn-success,.btn-success.disabled:hover,.btn-success[disabled]:hover,fieldset[disabled] .btn-success:hover,.btn-success.disabled:focus,.btn-success[disabled]:focus,fieldset[disabled] .btn-success:focus,.btn-success.disabled.focus,.btn-success[disabled].focus,fieldset[disabled] .btn-success.focus,.btn-success.disabled:active,.btn-success[disabled]:active,fieldset[disabled] .btn-success:active,.btn-success.disabled.active,.btn-success[disabled].active,fieldset[disabled] .btn-success.active{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info:hover,.btn-info:focus,.btn-info.focus,.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info:active,.btn-info.active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info[disabled],fieldset[disabled] .btn-info,.btn-info.disabled:hover,.btn-info[disabled]:hover,fieldset[disabled] .btn-info:hover,.btn-info.disabled:focus,.btn-info[disabled]:focus,fieldset[disabled] .btn-info:focus,.btn-info.disabled.focus,.btn-info[disabled].focus,fieldset[disabled] .btn-info.focus,.btn-info.disabled:active,.btn-info[disabled]:active,fieldset[disabled] .btn-info:active,.btn-info.disabled.active,.btn-info[disabled].active,fieldset[disabled] .btn-info.active{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning:hover,.btn-warning:focus,.btn-warning.focus,.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning:active,.btn-warning.active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning[disabled],fieldset[disabled] .btn-warning,.btn-warning.disabled:hover,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning:hover,.btn-warning.disabled:focus,.btn-warning[disabled]:focus,fieldset[disabled] .btn-warning:focus,.btn-warning.disabled.focus,.btn-warning[disabled].focus,fieldset[disabled] .btn-warning.focus,.btn-warning.disabled:active,.btn-warning[disabled]:active,fieldset[disabled] .btn-warning:active,.btn-warning.disabled.active,.btn-warning[disabled].active,fieldset[disabled] .btn-warning.active{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger:hover,.btn-danger:focus,.btn-danger.focus,.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger:active,.btn-danger.active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger[disabled],fieldset[disabled] .btn-danger,.btn-danger.disabled:hover,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger:hover,.btn-danger.disabled:focus,.btn-danger[disabled]:focus,fieldset[disabled] .btn-danger:focus,.btn-danger.disabled.focus,.btn-danger[disabled].focus,fieldset[disabled] .btn-danger.focus,.btn-danger.disabled:active,.btn-danger[disabled]:active,fieldset[disabled] .btn-danger:active,.btn-danger.disabled.active,.btn-danger[disabled].active,fieldset[disabled] .btn-danger.active{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link:active,.btn-link.active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:hover,.btn-link:focus,.btn-link:active{border-color:transparent}.btn-link:hover,.btn-link:focus{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:hover,fieldset[disabled] .btn-link:hover,.btn-link[disabled]:focus,fieldset[disabled] .btn-link:focus{color:#777;text-decoration:none}.btn-lg,.btn-group-lg>.btn{padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}.btn-sm,.btn-group-sm>.btn{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-xs,.btn-group-xs>.btn{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=submit].btn-block,input[type=reset].btn-block,input[type=button].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none;visibility:hidden}.collapse.in{display:block;visibility:visible}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px solid;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:hover,.dropdown-menu>li>a:focus{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:hover,.dropdown-menu>.active>a:focus{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{color:#777}.dropdown-menu>.disabled>a:hover,.dropdown-menu>.disabled>a:focus{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px solid}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:1px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group>.btn,.btn-group-vertical>.btn{position:relative;float:left}.btn-group>.btn:hover,.btn-group-vertical>.btn:hover,.btn-group>.btn:focus,.btn-group-vertical>.btn:focus,.btn-group>.btn:active,.btn-group-vertical>.btn:active,.btn-group>.btn.active,.btn-group-vertical>.btn.active{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child>.btn:last-child,.btn-group>.btn-group:first-child>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=radio],[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.33;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn,select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn,select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn{height:auto}.input-group-addon,.input-group-btn,.input-group .form-control{display:table-cell}.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child),.input-group .form-control:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=radio],.input-group-addon input[type=checkbox]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle),.input-group-btn:last-child>.btn-group:not(:last-child)>.btn{border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:first-child>.btn-group:not(:first-child)>.btn{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:hover,.input-group-btn>.btn:focus,.input-group-btn>.btn:active{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:hover,.nav>li>a:focus{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:hover,.nav>li.disabled>a:focus{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:hover,.nav .open>a:focus{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:hover,.nav-tabs>li.active>a:focus{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:hover,.nav-tabs.nav-justified>.active>a:focus{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:hover,.nav-pills>li.active>a:focus{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:hover,.nav-tabs-justified>.active>a:focus{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none;visibility:hidden}.tab-content>.active{display:block;visibility:visible}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important;visibility:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-top .navbar-collapse,.navbar-fixed-bottom .navbar-collapse{max-height:200px}}.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container>.navbar-header,.container-fluid>.navbar-header,.container>.navbar-collapse,.container-fluid>.navbar-collapse{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-top,.navbar-fixed-bottom{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-top,.navbar-fixed-bottom{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:hover,.navbar-brand:focus{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu>li>a,.navbar-nav .open .dropdown-menu .dropdown-header{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:hover,.navbar-nav .open .dropdown-menu>li>a:focus{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn,.navbar-form .input-group .form-control{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .radio,.navbar-form .checkbox{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .radio label,.navbar-form .checkbox label{padding-left:0}.navbar-form .radio input[type=radio],.navbar-form .checkbox input[type=checkbox]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:hover,.navbar-default .navbar-brand:focus{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:hover,.navbar-default .navbar-nav>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:hover,.navbar-default .navbar-nav>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:hover,.navbar-default .navbar-nav>.disabled>a:focus{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:hover,.navbar-default .navbar-toggle:focus{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:hover,.navbar-default .navbar-nav>.open>a:focus{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:hover,.navbar-default .btn-link:focus{color:#333}.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:hover,.navbar-default .btn-link[disabled]:focus,fieldset[disabled] .navbar-default .btn-link:focus{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:hover,.navbar-inverse .navbar-brand:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:hover,.navbar-inverse .navbar-nav>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:hover,.navbar-inverse .navbar-nav>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:hover,.navbar-inverse .navbar-nav>.disabled>a:focus{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:hover,.navbar-inverse .navbar-toggle:focus{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:hover,.navbar-inverse .navbar-nav>.open>a:focus{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:hover,.navbar-inverse .btn-link:focus{color:#fff}.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:hover,.navbar-inverse .btn-link[disabled]:focus,fieldset[disabled] .navbar-inverse .btn-link:focus{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:hover,.pagination>li>span:hover,.pagination>li>a:focus,.pagination>li>span:focus{color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>span,.pagination>.active>a:hover,.pagination>.active>span:hover,.pagination>.active>a:focus,.pagination>.active>span:focus{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>span,.pagination>.disabled>span:hover,.pagination>.disabled>span:focus,.pagination>.disabled>a,.pagination>.disabled>a:hover,.pagination>.disabled>a:focus{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:hover,.pager li>a:focus{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:hover,.pager .disabled>a:focus,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:hover,a.label:focus{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:hover,.label-default[href]:focus{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:hover,.label-primary[href]:focus{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:hover,.label-success[href]:focus{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:hover,.label-info[href]:focus{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:hover,.label-warning[href]:focus{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:hover,.label-danger[href]:focus{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-xs .badge{top:0;padding:1px 5px}a.badge:hover,a.badge:focus{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding:30px 15px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron h1,.jumbotron .h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding:48px 0}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron h1,.jumbotron .h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail>img,.thumbnail a>img{margin-right:auto;margin-left:auto}a.thumbnail:hover,a.thumbnail:focus,a.thumbnail.active{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-striped .progress-bar,.progress-bar-striped{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress.active .progress-bar,.progress-bar.active{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-left,.media-right,.media-body{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item{color:#555}a.list-group-item .list-group-item-heading{color:#333}a.list-group-item:hover,a.list-group-item:focus{color:#555;text-decoration:none;background-color:#f5f5f5}.list-group-item.disabled,.list-group-item.disabled:hover,.list-group-item.disabled:focus{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:hover,.list-group-item.active:focus{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>.small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:hover .list-group-item-text,.list-group-item.active:focus .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:hover,a.list-group-item-success:focus{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:hover,a.list-group-item-success.active:focus{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:hover,a.list-group-item-info:focus{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:hover,a.list-group-item-info.active:focus{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:hover,a.list-group-item-warning:focus{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:hover,a.list-group-item-warning.active:focus{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:hover,a.list-group-item-danger:focus{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:hover,a.list-group-item-danger.active:focus{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.table,.panel>.table-responsive>.table,.panel>.panel-collapse>.table{margin-bottom:0}.panel>.table caption,.panel>.table-responsive>.table caption,.panel>.panel-collapse>.table caption{padding-right:15px;padding-left:15px}.panel>.table:first-child,.panel>.table-responsive:first-child>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table:last-child,.panel>.table-responsive:last-child>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child th,.panel>.table>tbody:first-child>tr:first-child td{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child{border-left:0}.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child{border-right:0}.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.panel-body,.panel-group .panel-heading+.panel-collapse>.list-group{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive iframe,.embed-responsive embed,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:hover,.close:focus{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:absolute;top:0;right:0;left:0;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-weight:400;line-height:1.4;visibility:visible;filter:alpha(opacity=0);opacity:0}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;text-decoration:none;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-weight:400;line-height:1.42857143;text-align:left;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2)}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>img,.carousel-inner>.item>a>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000;perspective:1000}.carousel-inner>.item.next,.carousel-inner>.item.active.right{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.prev,.carousel-inner>.item.active.left{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right,.carousel-inner>.item.active{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:hover,.carousel-control:focus{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .icon-prev,.carousel-control .icon-next,.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right{position:absolute;top:50%;z-index:5;display:inline-block}.carousel-control .icon-prev,.carousel-control .glyphicon-chevron-left{left:50%;margin-left:-10px}.carousel-control .icon-next,.carousel-control .glyphicon-chevron-right{right:50%;margin-right:-10px}.carousel-control .icon-prev,.carousel-control .icon-next{width:20px;height:20px;margin-top:-10px;font-family:serif}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000 \9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-prev,.carousel-control .icon-next{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.clearfix:before,.clearfix:after,.dl-horizontal dd:before,.dl-horizontal dd:after,.container:before,.container:after,.container-fluid:before,.container-fluid:after,.row:before,.row:after,.form-horizontal .form-group:before,.form-horizontal .form-group:after,.btn-toolbar:before,.btn-toolbar:after,.btn-group-vertical>.btn-group:before,.btn-group-vertical>.btn-group:after,.nav:before,.nav:after,.navbar:before,.navbar:after,.navbar-header:before,.navbar-header:after,.navbar-collapse:before,.navbar-collapse:after,.pager:before,.pager:after,.panel-body:before,.panel-body:after,.modal-footer:before,.modal-footer:after{display:table;content:" "}.clearfix:after,.dl-horizontal dd:after,.container:after,.container-fluid:after,.row:after,.form-horizontal .form-group:after,.btn-toolbar:after,.btn-group-vertical>.btn-group:after,.nav:after,.navbar:after,.navbar-header:after,.navbar-collapse:after,.pager:after,.panel-body:after,.modal-footer:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important;visibility:hidden!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-xs,.visible-sm,.visible-md,.visible-lg{display:none!important}.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table}tr.visible-xs{display:table-row!important}th.visible-xs,td.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table}tr.visible-sm{display:table-row!important}th.visible-sm,td.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table}tr.visible-md{display:table-row!important}th.visible-md,td.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table}tr.visible-lg{display:table-row!important}th.visible-lg,td.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table}tr.visible-print{display:table-row!important}th.visible-print,td.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
\ No newline at end of file
diff --git a/web/static/css/bootstrap-3.3.1.css b/web/static/css/bootstrap-3.3.5.css
similarity index 90%
rename from web/static/css/bootstrap-3.3.1.css
rename to web/static/css/bootstrap-3.3.5.css
index c6f3d21068..680e768786 100644
--- a/web/static/css/bootstrap-3.3.1.css
+++ b/web/static/css/bootstrap-3.3.5.css
@@ -1,10 +1,9 @@
/*!
- * Bootstrap v3.3.1 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
-
-/*! normalize.css v3.0.2 | MIT License | git.io/normalize */
+/*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */
html {
font-family: sans-serif;
-webkit-text-size-adjust: 100%;
@@ -239,9 +238,6 @@ th {
h3 {
page-break-after: avoid;
}
- select {
- background: #fff !important;
- }
.navbar {
display: none;
}
@@ -268,7 +264,7 @@ th {
font-family: 'Glyphicons Halflings';
src: url('../fonts/glyphicons-halflings-regular.eot');
- src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
+ src: url('../fonts/glyphicons-halflings-regular.eot?#iefix') format('embedded-opentype'), url('../fonts/glyphicons-halflings-regular.woff2') format('woff2'), url('../fonts/glyphicons-halflings-regular.woff') format('woff'), url('../fonts/glyphicons-halflings-regular.ttf') format('truetype'), url('../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular') format('svg');
}
.glyphicon {
position: relative;
@@ -883,6 +879,192 @@ th {
.glyphicon-tree-deciduous:before {
content: "\e200";
}
+.glyphicon-cd:before {
+ content: "\e201";
+}
+.glyphicon-save-file:before {
+ content: "\e202";
+}
+.glyphicon-open-file:before {
+ content: "\e203";
+}
+.glyphicon-level-up:before {
+ content: "\e204";
+}
+.glyphicon-copy:before {
+ content: "\e205";
+}
+.glyphicon-paste:before {
+ content: "\e206";
+}
+.glyphicon-alert:before {
+ content: "\e209";
+}
+.glyphicon-equalizer:before {
+ content: "\e210";
+}
+.glyphicon-king:before {
+ content: "\e211";
+}
+.glyphicon-queen:before {
+ content: "\e212";
+}
+.glyphicon-pawn:before {
+ content: "\e213";
+}
+.glyphicon-bishop:before {
+ content: "\e214";
+}
+.glyphicon-knight:before {
+ content: "\e215";
+}
+.glyphicon-baby-formula:before {
+ content: "\e216";
+}
+.glyphicon-tent:before {
+ content: "\26fa";
+}
+.glyphicon-blackboard:before {
+ content: "\e218";
+}
+.glyphicon-bed:before {
+ content: "\e219";
+}
+.glyphicon-apple:before {
+ content: "\f8ff";
+}
+.glyphicon-erase:before {
+ content: "\e221";
+}
+.glyphicon-hourglass:before {
+ content: "\231b";
+}
+.glyphicon-lamp:before {
+ content: "\e223";
+}
+.glyphicon-duplicate:before {
+ content: "\e224";
+}
+.glyphicon-piggy-bank:before {
+ content: "\e225";
+}
+.glyphicon-scissors:before {
+ content: "\e226";
+}
+.glyphicon-bitcoin:before {
+ content: "\e227";
+}
+.glyphicon-btc:before {
+ content: "\e227";
+}
+.glyphicon-xbt:before {
+ content: "\e227";
+}
+.glyphicon-yen:before {
+ content: "\00a5";
+}
+.glyphicon-jpy:before {
+ content: "\00a5";
+}
+.glyphicon-ruble:before {
+ content: "\20bd";
+}
+.glyphicon-rub:before {
+ content: "\20bd";
+}
+.glyphicon-scale:before {
+ content: "\e230";
+}
+.glyphicon-ice-lolly:before {
+ content: "\e231";
+}
+.glyphicon-ice-lolly-tasted:before {
+ content: "\e232";
+}
+.glyphicon-education:before {
+ content: "\e233";
+}
+.glyphicon-option-horizontal:before {
+ content: "\e234";
+}
+.glyphicon-option-vertical:before {
+ content: "\e235";
+}
+.glyphicon-menu-hamburger:before {
+ content: "\e236";
+}
+.glyphicon-modal-window:before {
+ content: "\e237";
+}
+.glyphicon-oil:before {
+ content: "\e238";
+}
+.glyphicon-grain:before {
+ content: "\e239";
+}
+.glyphicon-sunglasses:before {
+ content: "\e240";
+}
+.glyphicon-text-size:before {
+ content: "\e241";
+}
+.glyphicon-text-color:before {
+ content: "\e242";
+}
+.glyphicon-text-background:before {
+ content: "\e243";
+}
+.glyphicon-object-align-top:before {
+ content: "\e244";
+}
+.glyphicon-object-align-bottom:before {
+ content: "\e245";
+}
+.glyphicon-object-align-horizontal:before {
+ content: "\e246";
+}
+.glyphicon-object-align-left:before {
+ content: "\e247";
+}
+.glyphicon-object-align-vertical:before {
+ content: "\e248";
+}
+.glyphicon-object-align-right:before {
+ content: "\e249";
+}
+.glyphicon-triangle-right:before {
+ content: "\e250";
+}
+.glyphicon-triangle-left:before {
+ content: "\e251";
+}
+.glyphicon-triangle-bottom:before {
+ content: "\e252";
+}
+.glyphicon-triangle-top:before {
+ content: "\e253";
+}
+.glyphicon-console:before {
+ content: "\e254";
+}
+.glyphicon-superscript:before {
+ content: "\e255";
+}
+.glyphicon-subscript:before {
+ content: "\e256";
+}
+.glyphicon-menu-left:before {
+ content: "\e257";
+}
+.glyphicon-menu-right:before {
+ content: "\e258";
+}
+.glyphicon-menu-down:before {
+ content: "\e259";
+}
+.glyphicon-menu-up:before {
+ content: "\e260";
+}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
@@ -987,6 +1169,9 @@ hr {
overflow: visible;
clip: auto;
}
+[role="button"] {
+ cursor: pointer;
+}
h1,
h2,
h3,
@@ -1155,62 +1340,72 @@ mark,
.text-primary {
color: #337ab7;
}
-a.text-primary:hover {
+a.text-primary:hover,
+a.text-primary:focus {
color: #286090;
}
.text-success {
color: #3c763d;
}
-a.text-success:hover {
+a.text-success:hover,
+a.text-success:focus {
color: #2b542c;
}
.text-info {
color: #31708f;
}
-a.text-info:hover {
+a.text-info:hover,
+a.text-info:focus {
color: #245269;
}
.text-warning {
color: #8a6d3b;
}
-a.text-warning:hover {
+a.text-warning:hover,
+a.text-warning:focus {
color: #66512c;
}
.text-danger {
color: #a94442;
}
-a.text-danger:hover {
+a.text-danger:hover,
+a.text-danger:focus {
color: #843534;
}
.bg-primary {
color: #fff;
background-color: #337ab7;
}
-a.bg-primary:hover {
+a.bg-primary:hover,
+a.bg-primary:focus {
background-color: #286090;
}
.bg-success {
background-color: #dff0d8;
}
-a.bg-success:hover {
+a.bg-success:hover,
+a.bg-success:focus {
background-color: #c1e2b3;
}
.bg-info {
background-color: #d9edf7;
}
-a.bg-info:hover {
+a.bg-info:hover,
+a.bg-info:focus {
background-color: #afd9ee;
}
.bg-warning {
background-color: #fcf8e3;
}
-a.bg-warning:hover {
+a.bg-warning:hover,
+a.bg-warning:focus {
background-color: #f7ecb5;
}
.bg-danger {
background-color: #f2dede;
}
-a.bg-danger:hover {
+a.bg-danger:hover,
+a.bg-danger:focus {
background-color: #e4b9b9;
}
.page-header {
@@ -2123,7 +2318,7 @@ th {
.table-bordered > thead > tr > td {
border-bottom-width: 2px;
}
-.table-striped > tbody > tr:nth-child(odd) {
+.table-striped > tbody > tr:nth-of-type(odd) {
background-color: #f9f9f9;
}
.table-hover > tbody > tr:hover {
@@ -2390,10 +2585,13 @@ output {
.form-control[disabled],
.form-control[readonly],
fieldset[disabled] .form-control {
- cursor: not-allowed;
background-color: #eee;
opacity: 1;
}
+.form-control[disabled],
+fieldset[disabled] .form-control {
+ cursor: not-allowed;
+}
textarea.form-control {
height: auto;
}
@@ -2401,22 +2599,30 @@ input[type="search"] {
-webkit-appearance: none;
}
@media screen and (-webkit-min-device-pixel-ratio: 0) {
- input[type="date"],
- input[type="time"],
- input[type="datetime-local"],
- input[type="month"] {
+ input[type="date"].form-control,
+ input[type="time"].form-control,
+ input[type="datetime-local"].form-control,
+ input[type="month"].form-control {
line-height: 34px;
}
input[type="date"].input-sm,
input[type="time"].input-sm,
input[type="datetime-local"].input-sm,
- input[type="month"].input-sm {
+ input[type="month"].input-sm,
+ .input-group-sm input[type="date"],
+ .input-group-sm input[type="time"],
+ .input-group-sm input[type="datetime-local"],
+ .input-group-sm input[type="month"] {
line-height: 30px;
}
input[type="date"].input-lg,
input[type="time"].input-lg,
input[type="datetime-local"].input-lg,
- input[type="month"].input-lg {
+ input[type="month"].input-lg,
+ .input-group-lg input[type="date"],
+ .input-group-lg input[type="time"],
+ .input-group-lg input[type="datetime-local"],
+ .input-group-lg input[type="month"] {
line-height: 46px;
}
}
@@ -2452,6 +2658,7 @@ input[type="search"] {
}
.radio-inline,
.checkbox-inline {
+ position: relative;
display: inline-block;
padding-left: 20px;
margin-bottom: 0;
@@ -2485,6 +2692,7 @@ fieldset[disabled] .checkbox label {
cursor: not-allowed;
}
.form-control-static {
+ min-height: 34px;
padding-top: 7px;
padding-bottom: 7px;
margin-bottom: 0;
@@ -2494,7 +2702,21 @@ fieldset[disabled] .checkbox label {
padding-right: 0;
padding-left: 0;
}
-.input-sm,
+.input-sm {
+ height: 30px;
+ padding: 5px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+ border-radius: 3px;
+}
+select.input-sm {
+ height: 30px;
+ line-height: 30px;
+}
+textarea.input-sm,
+select[multiple].input-sm {
+ height: auto;
+}
.form-group-sm .form-control {
height: 30px;
padding: 5px 10px;
@@ -2502,36 +2724,58 @@ fieldset[disabled] .checkbox label {
line-height: 1.5;
border-radius: 3px;
}
-select.input-sm,
-select.form-group-sm .form-control {
+.form-group-sm select.form-control {
height: 30px;
line-height: 30px;
}
-textarea.input-sm,
-textarea.form-group-sm .form-control,
-select[multiple].input-sm,
-select[multiple].form-group-sm .form-control {
+.form-group-sm textarea.form-control,
+.form-group-sm select[multiple].form-control {
height: auto;
}
-.input-lg,
-.form-group-lg .form-control {
+.form-group-sm .form-control-static {
+ height: 30px;
+ min-height: 32px;
+ padding: 6px 10px;
+ font-size: 12px;
+ line-height: 1.5;
+}
+.input-lg {
height: 46px;
padding: 10px 16px;
font-size: 18px;
- line-height: 1.33;
+ line-height: 1.3333333;
border-radius: 6px;
}
-select.input-lg,
-select.form-group-lg .form-control {
+select.input-lg {
height: 46px;
line-height: 46px;
}
textarea.input-lg,
-textarea.form-group-lg .form-control,
-select[multiple].input-lg,
-select[multiple].form-group-lg .form-control {
+select[multiple].input-lg {
height: auto;
}
+.form-group-lg .form-control {
+ height: 46px;
+ padding: 10px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+ border-radius: 6px;
+}
+.form-group-lg select.form-control {
+ height: 46px;
+ line-height: 46px;
+}
+.form-group-lg textarea.form-control,
+.form-group-lg select[multiple].form-control {
+ height: auto;
+}
+.form-group-lg .form-control-static {
+ height: 46px;
+ min-height: 38px;
+ padding: 11px 16px;
+ font-size: 18px;
+ line-height: 1.3333333;
+}
.has-feedback {
position: relative;
}
@@ -2550,12 +2794,16 @@ select[multiple].form-group-lg .form-control {
text-align: center;
pointer-events: none;
}
-.input-lg + .form-control-feedback {
+.input-lg + .form-control-feedback,
+.input-group-lg + .form-control-feedback,
+.form-group-lg .form-control + .form-control-feedback {
width: 46px;
height: 46px;
line-height: 46px;
}
-.input-sm + .form-control-feedback {
+.input-sm + .form-control-feedback,
+.input-group-sm + .form-control-feedback,
+.form-group-sm .form-control + .form-control-feedback {
width: 30px;
height: 30px;
line-height: 30px;
@@ -2740,12 +2988,14 @@ select[multiple].form-group-lg .form-control {
}
@media (min-width: 768px) {
.form-horizontal .form-group-lg .control-label {
- padding-top: 14.3px;
+ padding-top: 14.333333px;
+ font-size: 18px;
}
}
@media (min-width: 768px) {
.form-horizontal .form-group-sm .control-label {
padding-top: 6px;
+ font-size: 12px;
}
}
.btn {
@@ -2795,21 +3045,32 @@ select[multiple].form-group-lg .form-control {
.btn.disabled,
.btn[disabled],
fieldset[disabled] .btn {
- pointer-events: none;
cursor: not-allowed;
filter: alpha(opacity=65);
-webkit-box-shadow: none;
box-shadow: none;
opacity: .65;
}
+a.btn.disabled,
+fieldset[disabled] a.btn {
+ pointer-events: none;
+}
.btn-default {
color: #333;
background-color: #fff;
border-color: #ccc;
}
-.btn-default:hover,
.btn-default:focus,
-.btn-default.focus,
+.btn-default.focus {
+ color: #333;
+ background-color: #e6e6e6;
+ border-color: #8c8c8c;
+}
+.btn-default:hover {
+ color: #333;
+ background-color: #e6e6e6;
+ border-color: #adadad;
+}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
@@ -2817,6 +3078,19 @@ fieldset[disabled] .btn {
background-color: #e6e6e6;
border-color: #adadad;
}
+.btn-default:active:hover,
+.btn-default.active:hover,
+.open > .dropdown-toggle.btn-default:hover,
+.btn-default:active:focus,
+.btn-default.active:focus,
+.open > .dropdown-toggle.btn-default:focus,
+.btn-default:active.focus,
+.btn-default.active.focus,
+.open > .dropdown-toggle.btn-default.focus {
+ color: #333;
+ background-color: #d4d4d4;
+ border-color: #8c8c8c;
+}
.btn-default:active,
.btn-default.active,
.open > .dropdown-toggle.btn-default {
@@ -2852,9 +3126,17 @@ fieldset[disabled] .btn-default.active {
background-color: #337ab7;
border-color: #2e6da4;
}
-.btn-primary:hover,
.btn-primary:focus,
-.btn-primary.focus,
+.btn-primary.focus {
+ color: #fff;
+ background-color: #286090;
+ border-color: #122b40;
+}
+.btn-primary:hover {
+ color: #fff;
+ background-color: #286090;
+ border-color: #204d74;
+}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
@@ -2862,6 +3144,19 @@ fieldset[disabled] .btn-default.active {
background-color: #286090;
border-color: #204d74;
}
+.btn-primary:active:hover,
+.btn-primary.active:hover,
+.open > .dropdown-toggle.btn-primary:hover,
+.btn-primary:active:focus,
+.btn-primary.active:focus,
+.open > .dropdown-toggle.btn-primary:focus,
+.btn-primary:active.focus,
+.btn-primary.active.focus,
+.open > .dropdown-toggle.btn-primary.focus {
+ color: #fff;
+ background-color: #204d74;
+ border-color: #122b40;
+}
.btn-primary:active,
.btn-primary.active,
.open > .dropdown-toggle.btn-primary {
@@ -2897,9 +3192,17 @@ fieldset[disabled] .btn-primary.active {
background-color: #5cb85c;
border-color: #4cae4c;
}
-.btn-success:hover,
.btn-success:focus,
-.btn-success.focus,
+.btn-success.focus {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #255625;
+}
+.btn-success:hover {
+ color: #fff;
+ background-color: #449d44;
+ border-color: #398439;
+}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
@@ -2907,6 +3210,19 @@ fieldset[disabled] .btn-primary.active {
background-color: #449d44;
border-color: #398439;
}
+.btn-success:active:hover,
+.btn-success.active:hover,
+.open > .dropdown-toggle.btn-success:hover,
+.btn-success:active:focus,
+.btn-success.active:focus,
+.open > .dropdown-toggle.btn-success:focus,
+.btn-success:active.focus,
+.btn-success.active.focus,
+.open > .dropdown-toggle.btn-success.focus {
+ color: #fff;
+ background-color: #398439;
+ border-color: #255625;
+}
.btn-success:active,
.btn-success.active,
.open > .dropdown-toggle.btn-success {
@@ -2942,9 +3258,17 @@ fieldset[disabled] .btn-success.active {
background-color: #5bc0de;
border-color: #46b8da;
}
-.btn-info:hover,
.btn-info:focus,
-.btn-info.focus,
+.btn-info.focus {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #1b6d85;
+}
+.btn-info:hover {
+ color: #fff;
+ background-color: #31b0d5;
+ border-color: #269abc;
+}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
@@ -2952,6 +3276,19 @@ fieldset[disabled] .btn-success.active {
background-color: #31b0d5;
border-color: #269abc;
}
+.btn-info:active:hover,
+.btn-info.active:hover,
+.open > .dropdown-toggle.btn-info:hover,
+.btn-info:active:focus,
+.btn-info.active:focus,
+.open > .dropdown-toggle.btn-info:focus,
+.btn-info:active.focus,
+.btn-info.active.focus,
+.open > .dropdown-toggle.btn-info.focus {
+ color: #fff;
+ background-color: #269abc;
+ border-color: #1b6d85;
+}
.btn-info:active,
.btn-info.active,
.open > .dropdown-toggle.btn-info {
@@ -2987,9 +3324,17 @@ fieldset[disabled] .btn-info.active {
background-color: #f0ad4e;
border-color: #eea236;
}
-.btn-warning:hover,
.btn-warning:focus,
-.btn-warning.focus,
+.btn-warning.focus {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #985f0d;
+}
+.btn-warning:hover {
+ color: #fff;
+ background-color: #ec971f;
+ border-color: #d58512;
+}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
@@ -2997,6 +3342,19 @@ fieldset[disabled] .btn-info.active {
background-color: #ec971f;
border-color: #d58512;
}
+.btn-warning:active:hover,
+.btn-warning.active:hover,
+.open > .dropdown-toggle.btn-warning:hover,
+.btn-warning:active:focus,
+.btn-warning.active:focus,
+.open > .dropdown-toggle.btn-warning:focus,
+.btn-warning:active.focus,
+.btn-warning.active.focus,
+.open > .dropdown-toggle.btn-warning.focus {
+ color: #fff;
+ background-color: #d58512;
+ border-color: #985f0d;
+}
.btn-warning:active,
.btn-warning.active,
.open > .dropdown-toggle.btn-warning {
@@ -3032,9 +3390,17 @@ fieldset[disabled] .btn-warning.active {
background-color: #d9534f;
border-color: #d43f3a;
}
-.btn-danger:hover,
.btn-danger:focus,
-.btn-danger.focus,
+.btn-danger.focus {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #761c19;
+}
+.btn-danger:hover {
+ color: #fff;
+ background-color: #c9302c;
+ border-color: #ac2925;
+}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
@@ -3042,6 +3408,19 @@ fieldset[disabled] .btn-warning.active {
background-color: #c9302c;
border-color: #ac2925;
}
+.btn-danger:active:hover,
+.btn-danger.active:hover,
+.open > .dropdown-toggle.btn-danger:hover,
+.btn-danger:active:focus,
+.btn-danger.active:focus,
+.open > .dropdown-toggle.btn-danger:focus,
+.btn-danger:active.focus,
+.btn-danger.active.focus,
+.open > .dropdown-toggle.btn-danger.focus {
+ color: #fff;
+ background-color: #ac2925;
+ border-color: #761c19;
+}
.btn-danger:active,
.btn-danger.active,
.open > .dropdown-toggle.btn-danger {
@@ -3109,7 +3488,7 @@ fieldset[disabled] .btn-link:focus {
.btn-group-lg > .btn {
padding: 10px 16px;
font-size: 18px;
- line-height: 1.33;
+ line-height: 1.3333333;
border-radius: 6px;
}
.btn-sm,
@@ -3149,11 +3528,9 @@ input[type="button"].btn-block {
}
.collapse {
display: none;
- visibility: hidden;
}
.collapse.in {
display: block;
- visibility: visible;
}
tr.collapse.in {
display: table-row;
@@ -3181,10 +3558,12 @@ tbody.collapse.in {
height: 0;
margin-left: 2px;
vertical-align: middle;
- border-top: 4px solid;
+ border-top: 4px dashed;
+ border-top: 4px solid \9;
border-right: 4px solid transparent;
border-left: 4px solid transparent;
}
+.dropup,
.dropdown {
position: relative;
}
@@ -3297,13 +3676,14 @@ tbody.collapse.in {
.navbar-fixed-bottom .dropdown .caret {
content: "";
border-top: 0;
- border-bottom: 4px solid;
+ border-bottom: 4px dashed;
+ border-bottom: 4px solid \9;
}
.dropup .dropdown-menu,
.navbar-fixed-bottom .dropdown .dropdown-menu {
top: auto;
bottom: 100%;
- margin-bottom: 1px;
+ margin-bottom: 2px;
}
@media (min-width: 768px) {
.navbar-right .dropdown-menu {
@@ -3345,6 +3725,7 @@ tbody.collapse.in {
.btn-toolbar {
margin-left: -5px;
}
+.btn-toolbar .btn,
.btn-toolbar .btn-group,
.btn-toolbar .input-group {
float: left;
@@ -3375,12 +3756,12 @@ tbody.collapse.in {
.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn {
border-radius: 0;
}
-.btn-group > .btn-group:first-child > .btn:last-child,
-.btn-group > .btn-group:first-child > .dropdown-toggle {
+.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child,
+.btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle {
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
-.btn-group > .btn-group:last-child > .btn:first-child {
+.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child {
border-top-left-radius: 0;
border-bottom-left-radius: 0;
}
@@ -3506,7 +3887,7 @@ tbody.collapse.in {
height: 46px;
padding: 10px 16px;
font-size: 18px;
- line-height: 1.33;
+ line-height: 1.3333333;
border-radius: 6px;
}
select.input-group-lg > .form-control,
@@ -3635,6 +4016,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
.input-group-btn:last-child > .btn,
.input-group-btn:last-child > .btn-group {
+ z-index: 2;
margin-left: -1px;
}
.nav {
@@ -3820,11 +4202,9 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
}
.tab-content > .tab-pane {
display: none;
- visibility: hidden;
}
.tab-content > .active {
display: block;
- visibility: visible;
}
.nav-tabs .dropdown-menu {
margin-top: -1px;
@@ -3871,7 +4251,6 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
height: auto !important;
padding-bottom: 0;
overflow: visible !important;
- visibility: visible !important;
}
.navbar-collapse.in {
overflow-y: visible;
@@ -4120,6 +4499,7 @@ select[multiple].input-group-sm > .input-group-btn > .btn {
border-top-right-radius: 0;
}
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
+ margin-bottom: 0;
border-top-left-radius: 4px;
border-top-right-radius: 4px;
border-bottom-right-radius: 0;
@@ -4412,6 +4792,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus {
.pagination > li > span:hover,
.pagination > li > a:focus,
.pagination > li > span:focus {
+ z-index: 3;
color: #23527c;
background-color: #eee;
border-color: #ddd;
@@ -4443,6 +4824,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus {
.pagination-lg > li > span {
padding: 10px 16px;
font-size: 18px;
+ line-height: 1.3333333;
}
.pagination-lg > li:first-child > a,
.pagination-lg > li:first-child > span {
@@ -4458,6 +4840,7 @@ fieldset[disabled] .navbar-inverse .btn-link:focus {
.pagination-sm > li > span {
padding: 5px 10px;
font-size: 12px;
+ line-height: 1.5;
}
.pagination-sm > li:first-child > a,
.pagination-sm > li:first-child > span {
@@ -4584,7 +4967,7 @@ a.label:focus {
color: #fff;
text-align: center;
white-space: nowrap;
- vertical-align: baseline;
+ vertical-align: middle;
background-color: #777;
border-radius: 10px;
}
@@ -4595,7 +4978,8 @@ a.label:focus {
position: relative;
top: -1px;
}
-.btn-xs .badge {
+.btn-xs .badge,
+.btn-group-xs > .btn .badge {
top: 0;
padding: 1px 5px;
}
@@ -4620,7 +5004,8 @@ a.badge:focus {
margin-left: 3px;
}
.jumbotron {
- padding: 30px 15px;
+ padding-top: 30px;
+ padding-bottom: 30px;
margin-bottom: 30px;
color: inherit;
background-color: #eee;
@@ -4646,7 +5031,8 @@ a.badge:focus {
}
@media screen and (min-width: 768px) {
.jumbotron {
- padding: 48px 0;
+ padding-top: 48px;
+ padding-bottom: 48px;
}
.container .jumbotron,
.container-fluid .jumbotron {
@@ -4859,6 +5245,20 @@ a.thumbnail.active {
.media:first-child {
margin-top: 0;
}
+.media,
+.media-body {
+ overflow: hidden;
+ zoom: 1;
+}
+.media-body {
+ width: 10000px;
+}
+.media-object {
+ display: block;
+}
+.media-object.img-thumbnail {
+ max-width: none;
+}
.media-right,
.media > .pull-right {
padding-left: 10px;
@@ -4908,18 +5308,26 @@ a.thumbnail.active {
border-bottom-right-radius: 4px;
border-bottom-left-radius: 4px;
}
-a.list-group-item {
+a.list-group-item,
+button.list-group-item {
color: #555;
}
-a.list-group-item .list-group-item-heading {
+a.list-group-item .list-group-item-heading,
+button.list-group-item .list-group-item-heading {
color: #333;
}
a.list-group-item:hover,
-a.list-group-item:focus {
+button.list-group-item:hover,
+a.list-group-item:focus,
+button.list-group-item:focus {
color: #555;
text-decoration: none;
background-color: #f5f5f5;
}
+button.list-group-item {
+ width: 100%;
+ text-align: left;
+}
.list-group-item.disabled,
.list-group-item.disabled:hover,
.list-group-item.disabled:focus {
@@ -4965,20 +5373,27 @@ a.list-group-item:focus {
color: #3c763d;
background-color: #dff0d8;
}
-a.list-group-item-success {
+a.list-group-item-success,
+button.list-group-item-success {
color: #3c763d;
}
-a.list-group-item-success .list-group-item-heading {
+a.list-group-item-success .list-group-item-heading,
+button.list-group-item-success .list-group-item-heading {
color: inherit;
}
a.list-group-item-success:hover,
-a.list-group-item-success:focus {
+button.list-group-item-success:hover,
+a.list-group-item-success:focus,
+button.list-group-item-success:focus {
color: #3c763d;
background-color: #d0e9c6;
}
a.list-group-item-success.active,
+button.list-group-item-success.active,
a.list-group-item-success.active:hover,
-a.list-group-item-success.active:focus {
+button.list-group-item-success.active:hover,
+a.list-group-item-success.active:focus,
+button.list-group-item-success.active:focus {
color: #fff;
background-color: #3c763d;
border-color: #3c763d;
@@ -4987,20 +5402,27 @@ a.list-group-item-success.active:focus {
color: #31708f;
background-color: #d9edf7;
}
-a.list-group-item-info {
+a.list-group-item-info,
+button.list-group-item-info {
color: #31708f;
}
-a.list-group-item-info .list-group-item-heading {
+a.list-group-item-info .list-group-item-heading,
+button.list-group-item-info .list-group-item-heading {
color: inherit;
}
a.list-group-item-info:hover,
-a.list-group-item-info:focus {
+button.list-group-item-info:hover,
+a.list-group-item-info:focus,
+button.list-group-item-info:focus {
color: #31708f;
background-color: #c4e3f3;
}
a.list-group-item-info.active,
+button.list-group-item-info.active,
a.list-group-item-info.active:hover,
-a.list-group-item-info.active:focus {
+button.list-group-item-info.active:hover,
+a.list-group-item-info.active:focus,
+button.list-group-item-info.active:focus {
color: #fff;
background-color: #31708f;
border-color: #31708f;
@@ -5009,20 +5431,27 @@ a.list-group-item-info.active:focus {
color: #8a6d3b;
background-color: #fcf8e3;
}
-a.list-group-item-warning {
+a.list-group-item-warning,
+button.list-group-item-warning {
color: #8a6d3b;
}
-a.list-group-item-warning .list-group-item-heading {
+a.list-group-item-warning .list-group-item-heading,
+button.list-group-item-warning .list-group-item-heading {
color: inherit;
}
a.list-group-item-warning:hover,
-a.list-group-item-warning:focus {
+button.list-group-item-warning:hover,
+a.list-group-item-warning:focus,
+button.list-group-item-warning:focus {
color: #8a6d3b;
background-color: #faf2cc;
}
a.list-group-item-warning.active,
+button.list-group-item-warning.active,
a.list-group-item-warning.active:hover,
-a.list-group-item-warning.active:focus {
+button.list-group-item-warning.active:hover,
+a.list-group-item-warning.active:focus,
+button.list-group-item-warning.active:focus {
color: #fff;
background-color: #8a6d3b;
border-color: #8a6d3b;
@@ -5031,20 +5460,27 @@ a.list-group-item-warning.active:focus {
color: #a94442;
background-color: #f2dede;
}
-a.list-group-item-danger {
+a.list-group-item-danger,
+button.list-group-item-danger {
color: #a94442;
}
-a.list-group-item-danger .list-group-item-heading {
+a.list-group-item-danger .list-group-item-heading,
+button.list-group-item-danger .list-group-item-heading {
color: inherit;
}
a.list-group-item-danger:hover,
-a.list-group-item-danger:focus {
+button.list-group-item-danger:hover,
+a.list-group-item-danger:focus,
+button.list-group-item-danger:focus {
color: #a94442;
background-color: #ebcccc;
}
a.list-group-item-danger.active,
+button.list-group-item-danger.active,
a.list-group-item-danger.active:hover,
-a.list-group-item-danger.active:focus {
+button.list-group-item-danger.active:hover,
+a.list-group-item-danger.active:focus,
+button.list-group-item-danger.active:focus {
color: #fff;
background-color: #a94442;
border-color: #a94442;
@@ -5083,7 +5519,11 @@ a.list-group-item-danger.active:focus {
font-size: 16px;
color: inherit;
}
-.panel-title > a {
+.panel-title > a,
+.panel-title > small,
+.panel-title > .small,
+.panel-title > small > a,
+.panel-title > .small > a {
color: inherit;
}
.panel-footer {
@@ -5114,6 +5554,10 @@ a.list-group-item-danger.active:focus {
border-bottom-right-radius: 3px;
border-bottom-left-radius: 3px;
}
+.panel > .panel-heading + .panel-collapse > .list-group .list-group-item:first-child {
+ border-top-left-radius: 0;
+ border-top-right-radius: 0;
+}
.panel-heading + .list-group .list-group-item:first-child {
border-top-width: 0;
}
@@ -5412,10 +5856,10 @@ a.list-group-item-danger.active:focus {
height: 100%;
border: 0;
}
-.embed-responsive.embed-responsive-16by9 {
+.embed-responsive-16by9 {
padding-bottom: 56.25%;
}
-.embed-responsive.embed-responsive-4by3 {
+.embed-responsive-4by3 {
padding-bottom: 75%;
}
.well {
@@ -5474,7 +5918,7 @@ button.close {
right: 0;
bottom: 0;
left: 0;
- z-index: 1040;
+ z-index: 1050;
display: none;
overflow: hidden;
-webkit-overflow-scrolling: touch;
@@ -5517,10 +5961,12 @@ button.close {
box-shadow: 0 3px 9px rgba(0, 0, 0, .5);
}
.modal-backdrop {
- position: absolute;
+ position: fixed;
top: 0;
right: 0;
+ bottom: 0;
left: 0;
+ z-index: 1040;
background-color: #000;
}
.modal-backdrop.fade {
@@ -5593,11 +6039,23 @@ button.close {
display: block;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 12px;
+ font-style: normal;
font-weight: normal;
- line-height: 1.4;
- visibility: visible;
+ line-height: 1.42857143;
+ text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ word-wrap: normal;
+ white-space: normal;
filter: alpha(opacity=0);
opacity: 0;
+
+ line-break: auto;
}
.tooltip.in {
filter: alpha(opacity=90);
@@ -5624,7 +6082,6 @@ button.close {
padding: 3px 8px;
color: #fff;
text-align: center;
- text-decoration: none;
background-color: #000;
border-radius: 4px;
}
@@ -5701,9 +6158,18 @@ button.close {
padding: 1px;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
+ font-style: normal;
font-weight: normal;
line-height: 1.42857143;
text-align: left;
+ text-align: start;
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ word-wrap: normal;
white-space: normal;
background-color: #fff;
-webkit-background-clip: padding-box;
@@ -5713,6 +6179,8 @@ button.close {
border-radius: 6px;
-webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
box-shadow: 0 5px 10px rgba(0, 0, 0, .2);
+
+ line-break: auto;
}
.popover.top {
margin-top: -10px;
@@ -5840,8 +6308,8 @@ button.close {
-webkit-backface-visibility: hidden;
backface-visibility: hidden;
- -webkit-perspective: 1000;
- perspective: 1000;
+ -webkit-perspective: 1000px;
+ perspective: 1000px;
}
.carousel-inner > .item.next,
.carousel-inner > .item.active.right {
@@ -5940,6 +6408,7 @@ button.close {
top: 50%;
z-index: 5;
display: inline-block;
+ margin-top: -10px;
}
.carousel-control .icon-prev,
.carousel-control .glyphicon-chevron-left {
@@ -5955,8 +6424,8 @@ button.close {
.carousel-control .icon-next {
width: 20px;
height: 20px;
- margin-top: -10px;
font-family: serif;
+ line-height: 1;
}
.carousel-control .icon-prev:before {
content: '\2039';
@@ -6114,7 +6583,6 @@ button.close {
}
.hidden {
display: none !important;
- visibility: hidden !important;
}
.affix {
position: fixed;
@@ -6147,7 +6615,7 @@ button.close {
display: block !important;
}
table.visible-xs {
- display: table;
+ display: table !important;
}
tr.visible-xs {
display: table-row !important;
@@ -6177,7 +6645,7 @@ button.close {
display: block !important;
}
table.visible-sm {
- display: table;
+ display: table !important;
}
tr.visible-sm {
display: table-row !important;
@@ -6207,7 +6675,7 @@ button.close {
display: block !important;
}
table.visible-md {
- display: table;
+ display: table !important;
}
tr.visible-md {
display: table-row !important;
@@ -6237,7 +6705,7 @@ button.close {
display: block !important;
}
table.visible-lg {
- display: table;
+ display: table !important;
}
tr.visible-lg {
display: table-row !important;
@@ -6290,7 +6758,7 @@ button.close {
display: block !important;
}
table.visible-print {
- display: table;
+ display: table !important;
}
tr.visible-print {
display: table-row !important;
diff --git a/web/static/css/bootstrap-3.3.5.min.css b/web/static/css/bootstrap-3.3.5.min.css
new file mode 100644
index 0000000000..d65c66b1ba
--- /dev/null
+++ b/web/static/css/bootstrap-3.3.5.min.css
@@ -0,0 +1,5 @@
+/*!
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ *//*! normalize.css v3.0.3 | MIT License | github.com/necolas/normalize.css */html{font-family:sans-serif;-webkit-text-size-adjust:100%;-ms-text-size-adjust:100%}body{margin:0}article,aside,details,figcaption,figure,footer,header,hgroup,main,menu,nav,section,summary{display:block}audio,canvas,progress,video{display:inline-block;vertical-align:baseline}audio:not([controls]){display:none;height:0}[hidden],template{display:none}a{background-color:transparent}a:active,a:hover{outline:0}abbr[title]{border-bottom:1px dotted}b,strong{font-weight:700}dfn{font-style:italic}h1{margin:.67em 0;font-size:2em}mark{color:#000;background:#ff0}small{font-size:80%}sub,sup{position:relative;font-size:75%;line-height:0;vertical-align:baseline}sup{top:-.5em}sub{bottom:-.25em}img{border:0}svg:not(:root){overflow:hidden}figure{margin:1em 40px}hr{height:0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}pre{overflow:auto}code,kbd,pre,samp{font-family:monospace,monospace;font-size:1em}button,input,optgroup,select,textarea{margin:0;font:inherit;color:inherit}button{overflow:visible}button,select{text-transform:none}button,html input[type=button],input[type=reset],input[type=submit]{-webkit-appearance:button;cursor:pointer}button[disabled],html input[disabled]{cursor:default}button::-moz-focus-inner,input::-moz-focus-inner{padding:0;border:0}input{line-height:normal}input[type=checkbox],input[type=radio]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{height:auto}input[type=search]{-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box;-webkit-appearance:textfield}input[type=search]::-webkit-search-cancel-button,input[type=search]::-webkit-search-decoration{-webkit-appearance:none}fieldset{padding:.35em .625em .75em;margin:0 2px;border:1px solid silver}legend{padding:0;border:0}textarea{overflow:auto}optgroup{font-weight:700}table{border-spacing:0;border-collapse:collapse}td,th{padding:0}/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */@media print{*,:after,:before{color:#000!important;text-shadow:none!important;background:0 0!important;-webkit-box-shadow:none!important;box-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="javascript:"]:after,a[href^="#"]:after{content:""}blockquote,pre{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}img,tr{page-break-inside:avoid}img{max-width:100%!important}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}.navbar{display:none}.btn>.caret,.dropup>.btn>.caret{border-top-color:#000!important}.label{border:1px solid #000}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}.table-bordered td,.table-bordered th{border:1px solid #ddd!important}}@font-face{font-family:'Glyphicons Halflings';src:url(../fonts/glyphicons-halflings-regular.eot);src:url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'),url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'),url(../fonts/glyphicons-halflings-regular.woff) format('woff'),url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'),url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg')}.glyphicon{position:relative;top:1px;display:inline-block;font-family:'Glyphicons Halflings';font-style:normal;font-weight:400;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.glyphicon-asterisk:before{content:"\2a"}.glyphicon-plus:before{content:"\2b"}.glyphicon-eur:before,.glyphicon-euro:before{content:"\20ac"}.glyphicon-minus:before{content:"\2212"}.glyphicon-cloud:before{content:"\2601"}.glyphicon-envelope:before{content:"\2709"}.glyphicon-pencil:before{content:"\270f"}.glyphicon-glass:before{content:"\e001"}.glyphicon-music:before{content:"\e002"}.glyphicon-search:before{content:"\e003"}.glyphicon-heart:before{content:"\e005"}.glyphicon-star:before{content:"\e006"}.glyphicon-star-empty:before{content:"\e007"}.glyphicon-user:before{content:"\e008"}.glyphicon-film:before{content:"\e009"}.glyphicon-th-large:before{content:"\e010"}.glyphicon-th:before{content:"\e011"}.glyphicon-th-list:before{content:"\e012"}.glyphicon-ok:before{content:"\e013"}.glyphicon-remove:before{content:"\e014"}.glyphicon-zoom-in:before{content:"\e015"}.glyphicon-zoom-out:before{content:"\e016"}.glyphicon-off:before{content:"\e017"}.glyphicon-signal:before{content:"\e018"}.glyphicon-cog:before{content:"\e019"}.glyphicon-trash:before{content:"\e020"}.glyphicon-home:before{content:"\e021"}.glyphicon-file:before{content:"\e022"}.glyphicon-time:before{content:"\e023"}.glyphicon-road:before{content:"\e024"}.glyphicon-download-alt:before{content:"\e025"}.glyphicon-download:before{content:"\e026"}.glyphicon-upload:before{content:"\e027"}.glyphicon-inbox:before{content:"\e028"}.glyphicon-play-circle:before{content:"\e029"}.glyphicon-repeat:before{content:"\e030"}.glyphicon-refresh:before{content:"\e031"}.glyphicon-list-alt:before{content:"\e032"}.glyphicon-lock:before{content:"\e033"}.glyphicon-flag:before{content:"\e034"}.glyphicon-headphones:before{content:"\e035"}.glyphicon-volume-off:before{content:"\e036"}.glyphicon-volume-down:before{content:"\e037"}.glyphicon-volume-up:before{content:"\e038"}.glyphicon-qrcode:before{content:"\e039"}.glyphicon-barcode:before{content:"\e040"}.glyphicon-tag:before{content:"\e041"}.glyphicon-tags:before{content:"\e042"}.glyphicon-book:before{content:"\e043"}.glyphicon-bookmark:before{content:"\e044"}.glyphicon-print:before{content:"\e045"}.glyphicon-camera:before{content:"\e046"}.glyphicon-font:before{content:"\e047"}.glyphicon-bold:before{content:"\e048"}.glyphicon-italic:before{content:"\e049"}.glyphicon-text-height:before{content:"\e050"}.glyphicon-text-width:before{content:"\e051"}.glyphicon-align-left:before{content:"\e052"}.glyphicon-align-center:before{content:"\e053"}.glyphicon-align-right:before{content:"\e054"}.glyphicon-align-justify:before{content:"\e055"}.glyphicon-list:before{content:"\e056"}.glyphicon-indent-left:before{content:"\e057"}.glyphicon-indent-right:before{content:"\e058"}.glyphicon-facetime-video:before{content:"\e059"}.glyphicon-picture:before{content:"\e060"}.glyphicon-map-marker:before{content:"\e062"}.glyphicon-adjust:before{content:"\e063"}.glyphicon-tint:before{content:"\e064"}.glyphicon-edit:before{content:"\e065"}.glyphicon-share:before{content:"\e066"}.glyphicon-check:before{content:"\e067"}.glyphicon-move:before{content:"\e068"}.glyphicon-step-backward:before{content:"\e069"}.glyphicon-fast-backward:before{content:"\e070"}.glyphicon-backward:before{content:"\e071"}.glyphicon-play:before{content:"\e072"}.glyphicon-pause:before{content:"\e073"}.glyphicon-stop:before{content:"\e074"}.glyphicon-forward:before{content:"\e075"}.glyphicon-fast-forward:before{content:"\e076"}.glyphicon-step-forward:before{content:"\e077"}.glyphicon-eject:before{content:"\e078"}.glyphicon-chevron-left:before{content:"\e079"}.glyphicon-chevron-right:before{content:"\e080"}.glyphicon-plus-sign:before{content:"\e081"}.glyphicon-minus-sign:before{content:"\e082"}.glyphicon-remove-sign:before{content:"\e083"}.glyphicon-ok-sign:before{content:"\e084"}.glyphicon-question-sign:before{content:"\e085"}.glyphicon-info-sign:before{content:"\e086"}.glyphicon-screenshot:before{content:"\e087"}.glyphicon-remove-circle:before{content:"\e088"}.glyphicon-ok-circle:before{content:"\e089"}.glyphicon-ban-circle:before{content:"\e090"}.glyphicon-arrow-left:before{content:"\e091"}.glyphicon-arrow-right:before{content:"\e092"}.glyphicon-arrow-up:before{content:"\e093"}.glyphicon-arrow-down:before{content:"\e094"}.glyphicon-share-alt:before{content:"\e095"}.glyphicon-resize-full:before{content:"\e096"}.glyphicon-resize-small:before{content:"\e097"}.glyphicon-exclamation-sign:before{content:"\e101"}.glyphicon-gift:before{content:"\e102"}.glyphicon-leaf:before{content:"\e103"}.glyphicon-fire:before{content:"\e104"}.glyphicon-eye-open:before{content:"\e105"}.glyphicon-eye-close:before{content:"\e106"}.glyphicon-warning-sign:before{content:"\e107"}.glyphicon-plane:before{content:"\e108"}.glyphicon-calendar:before{content:"\e109"}.glyphicon-random:before{content:"\e110"}.glyphicon-comment:before{content:"\e111"}.glyphicon-magnet:before{content:"\e112"}.glyphicon-chevron-up:before{content:"\e113"}.glyphicon-chevron-down:before{content:"\e114"}.glyphicon-retweet:before{content:"\e115"}.glyphicon-shopping-cart:before{content:"\e116"}.glyphicon-folder-close:before{content:"\e117"}.glyphicon-folder-open:before{content:"\e118"}.glyphicon-resize-vertical:before{content:"\e119"}.glyphicon-resize-horizontal:before{content:"\e120"}.glyphicon-hdd:before{content:"\e121"}.glyphicon-bullhorn:before{content:"\e122"}.glyphicon-bell:before{content:"\e123"}.glyphicon-certificate:before{content:"\e124"}.glyphicon-thumbs-up:before{content:"\e125"}.glyphicon-thumbs-down:before{content:"\e126"}.glyphicon-hand-right:before{content:"\e127"}.glyphicon-hand-left:before{content:"\e128"}.glyphicon-hand-up:before{content:"\e129"}.glyphicon-hand-down:before{content:"\e130"}.glyphicon-circle-arrow-right:before{content:"\e131"}.glyphicon-circle-arrow-left:before{content:"\e132"}.glyphicon-circle-arrow-up:before{content:"\e133"}.glyphicon-circle-arrow-down:before{content:"\e134"}.glyphicon-globe:before{content:"\e135"}.glyphicon-wrench:before{content:"\e136"}.glyphicon-tasks:before{content:"\e137"}.glyphicon-filter:before{content:"\e138"}.glyphicon-briefcase:before{content:"\e139"}.glyphicon-fullscreen:before{content:"\e140"}.glyphicon-dashboard:before{content:"\e141"}.glyphicon-paperclip:before{content:"\e142"}.glyphicon-heart-empty:before{content:"\e143"}.glyphicon-link:before{content:"\e144"}.glyphicon-phone:before{content:"\e145"}.glyphicon-pushpin:before{content:"\e146"}.glyphicon-usd:before{content:"\e148"}.glyphicon-gbp:before{content:"\e149"}.glyphicon-sort:before{content:"\e150"}.glyphicon-sort-by-alphabet:before{content:"\e151"}.glyphicon-sort-by-alphabet-alt:before{content:"\e152"}.glyphicon-sort-by-order:before{content:"\e153"}.glyphicon-sort-by-order-alt:before{content:"\e154"}.glyphicon-sort-by-attributes:before{content:"\e155"}.glyphicon-sort-by-attributes-alt:before{content:"\e156"}.glyphicon-unchecked:before{content:"\e157"}.glyphicon-expand:before{content:"\e158"}.glyphicon-collapse-down:before{content:"\e159"}.glyphicon-collapse-up:before{content:"\e160"}.glyphicon-log-in:before{content:"\e161"}.glyphicon-flash:before{content:"\e162"}.glyphicon-log-out:before{content:"\e163"}.glyphicon-new-window:before{content:"\e164"}.glyphicon-record:before{content:"\e165"}.glyphicon-save:before{content:"\e166"}.glyphicon-open:before{content:"\e167"}.glyphicon-saved:before{content:"\e168"}.glyphicon-import:before{content:"\e169"}.glyphicon-export:before{content:"\e170"}.glyphicon-send:before{content:"\e171"}.glyphicon-floppy-disk:before{content:"\e172"}.glyphicon-floppy-saved:before{content:"\e173"}.glyphicon-floppy-remove:before{content:"\e174"}.glyphicon-floppy-save:before{content:"\e175"}.glyphicon-floppy-open:before{content:"\e176"}.glyphicon-credit-card:before{content:"\e177"}.glyphicon-transfer:before{content:"\e178"}.glyphicon-cutlery:before{content:"\e179"}.glyphicon-header:before{content:"\e180"}.glyphicon-compressed:before{content:"\e181"}.glyphicon-earphone:before{content:"\e182"}.glyphicon-phone-alt:before{content:"\e183"}.glyphicon-tower:before{content:"\e184"}.glyphicon-stats:before{content:"\e185"}.glyphicon-sd-video:before{content:"\e186"}.glyphicon-hd-video:before{content:"\e187"}.glyphicon-subtitles:before{content:"\e188"}.glyphicon-sound-stereo:before{content:"\e189"}.glyphicon-sound-dolby:before{content:"\e190"}.glyphicon-sound-5-1:before{content:"\e191"}.glyphicon-sound-6-1:before{content:"\e192"}.glyphicon-sound-7-1:before{content:"\e193"}.glyphicon-copyright-mark:before{content:"\e194"}.glyphicon-registration-mark:before{content:"\e195"}.glyphicon-cloud-download:before{content:"\e197"}.glyphicon-cloud-upload:before{content:"\e198"}.glyphicon-tree-conifer:before{content:"\e199"}.glyphicon-tree-deciduous:before{content:"\e200"}.glyphicon-cd:before{content:"\e201"}.glyphicon-save-file:before{content:"\e202"}.glyphicon-open-file:before{content:"\e203"}.glyphicon-level-up:before{content:"\e204"}.glyphicon-copy:before{content:"\e205"}.glyphicon-paste:before{content:"\e206"}.glyphicon-alert:before{content:"\e209"}.glyphicon-equalizer:before{content:"\e210"}.glyphicon-king:before{content:"\e211"}.glyphicon-queen:before{content:"\e212"}.glyphicon-pawn:before{content:"\e213"}.glyphicon-bishop:before{content:"\e214"}.glyphicon-knight:before{content:"\e215"}.glyphicon-baby-formula:before{content:"\e216"}.glyphicon-tent:before{content:"\26fa"}.glyphicon-blackboard:before{content:"\e218"}.glyphicon-bed:before{content:"\e219"}.glyphicon-apple:before{content:"\f8ff"}.glyphicon-erase:before{content:"\e221"}.glyphicon-hourglass:before{content:"\231b"}.glyphicon-lamp:before{content:"\e223"}.glyphicon-duplicate:before{content:"\e224"}.glyphicon-piggy-bank:before{content:"\e225"}.glyphicon-scissors:before{content:"\e226"}.glyphicon-bitcoin:before{content:"\e227"}.glyphicon-btc:before{content:"\e227"}.glyphicon-xbt:before{content:"\e227"}.glyphicon-yen:before{content:"\00a5"}.glyphicon-jpy:before{content:"\00a5"}.glyphicon-ruble:before{content:"\20bd"}.glyphicon-rub:before{content:"\20bd"}.glyphicon-scale:before{content:"\e230"}.glyphicon-ice-lolly:before{content:"\e231"}.glyphicon-ice-lolly-tasted:before{content:"\e232"}.glyphicon-education:before{content:"\e233"}.glyphicon-option-horizontal:before{content:"\e234"}.glyphicon-option-vertical:before{content:"\e235"}.glyphicon-menu-hamburger:before{content:"\e236"}.glyphicon-modal-window:before{content:"\e237"}.glyphicon-oil:before{content:"\e238"}.glyphicon-grain:before{content:"\e239"}.glyphicon-sunglasses:before{content:"\e240"}.glyphicon-text-size:before{content:"\e241"}.glyphicon-text-color:before{content:"\e242"}.glyphicon-text-background:before{content:"\e243"}.glyphicon-object-align-top:before{content:"\e244"}.glyphicon-object-align-bottom:before{content:"\e245"}.glyphicon-object-align-horizontal:before{content:"\e246"}.glyphicon-object-align-left:before{content:"\e247"}.glyphicon-object-align-vertical:before{content:"\e248"}.glyphicon-object-align-right:before{content:"\e249"}.glyphicon-triangle-right:before{content:"\e250"}.glyphicon-triangle-left:before{content:"\e251"}.glyphicon-triangle-bottom:before{content:"\e252"}.glyphicon-triangle-top:before{content:"\e253"}.glyphicon-console:before{content:"\e254"}.glyphicon-superscript:before{content:"\e255"}.glyphicon-subscript:before{content:"\e256"}.glyphicon-menu-left:before{content:"\e257"}.glyphicon-menu-right:before{content:"\e258"}.glyphicon-menu-down:before{content:"\e259"}.glyphicon-menu-up:before{content:"\e260"}*{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}:after,:before{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}html{font-size:10px;-webkit-tap-highlight-color:rgba(0,0,0,0)}body{font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;line-height:1.42857143;color:#333;background-color:#fff}button,input,select,textarea{font-family:inherit;font-size:inherit;line-height:inherit}a{color:#337ab7;text-decoration:none}a:focus,a:hover{color:#23527c;text-decoration:underline}a:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}figure{margin:0}img{vertical-align:middle}.carousel-inner>.item>a>img,.carousel-inner>.item>img,.img-responsive,.thumbnail a>img,.thumbnail>img{display:block;max-width:100%;height:auto}.img-rounded{border-radius:6px}.img-thumbnail{display:inline-block;max-width:100%;height:auto;padding:4px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:all .2s ease-in-out;-o-transition:all .2s ease-in-out;transition:all .2s ease-in-out}.img-circle{border-radius:50%}hr{margin-top:20px;margin-bottom:20px;border:0;border-top:1px solid #eee}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);border:0}.sr-only-focusable:active,.sr-only-focusable:focus{position:static;width:auto;height:auto;margin:0;overflow:visible;clip:auto}[role=button]{cursor:pointer}.h1,.h2,.h3,.h4,.h5,.h6,h1,h2,h3,h4,h5,h6{font-family:inherit;font-weight:500;line-height:1.1;color:inherit}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-weight:400;line-height:1;color:#777}.h1,.h2,.h3,h1,h2,h3{margin-top:20px;margin-bottom:10px}.h1 .small,.h1 small,.h2 .small,.h2 small,.h3 .small,.h3 small,h1 .small,h1 small,h2 .small,h2 small,h3 .small,h3 small{font-size:65%}.h4,.h5,.h6,h4,h5,h6{margin-top:10px;margin-bottom:10px}.h4 .small,.h4 small,.h5 .small,.h5 small,.h6 .small,.h6 small,h4 .small,h4 small,h5 .small,h5 small,h6 .small,h6 small{font-size:75%}.h1,h1{font-size:36px}.h2,h2{font-size:30px}.h3,h3{font-size:24px}.h4,h4{font-size:18px}.h5,h5{font-size:14px}.h6,h6{font-size:12px}p{margin:0 0 10px}.lead{margin-bottom:20px;font-size:16px;font-weight:300;line-height:1.4}@media (min-width:768px){.lead{font-size:21px}}.small,small{font-size:85%}.mark,mark{padding:.2em;background-color:#fcf8e3}.text-left{text-align:left}.text-right{text-align:right}.text-center{text-align:center}.text-justify{text-align:justify}.text-nowrap{white-space:nowrap}.text-lowercase{text-transform:lowercase}.text-uppercase{text-transform:uppercase}.text-capitalize{text-transform:capitalize}.text-muted{color:#777}.text-primary{color:#337ab7}a.text-primary:focus,a.text-primary:hover{color:#286090}.text-success{color:#3c763d}a.text-success:focus,a.text-success:hover{color:#2b542c}.text-info{color:#31708f}a.text-info:focus,a.text-info:hover{color:#245269}.text-warning{color:#8a6d3b}a.text-warning:focus,a.text-warning:hover{color:#66512c}.text-danger{color:#a94442}a.text-danger:focus,a.text-danger:hover{color:#843534}.bg-primary{color:#fff;background-color:#337ab7}a.bg-primary:focus,a.bg-primary:hover{background-color:#286090}.bg-success{background-color:#dff0d8}a.bg-success:focus,a.bg-success:hover{background-color:#c1e2b3}.bg-info{background-color:#d9edf7}a.bg-info:focus,a.bg-info:hover{background-color:#afd9ee}.bg-warning{background-color:#fcf8e3}a.bg-warning:focus,a.bg-warning:hover{background-color:#f7ecb5}.bg-danger{background-color:#f2dede}a.bg-danger:focus,a.bg-danger:hover{background-color:#e4b9b9}.page-header{padding-bottom:9px;margin:40px 0 20px;border-bottom:1px solid #eee}ol,ul{margin-top:0;margin-bottom:10px}ol ol,ol ul,ul ol,ul ul{margin-bottom:0}.list-unstyled{padding-left:0;list-style:none}.list-inline{padding-left:0;margin-left:-5px;list-style:none}.list-inline>li{display:inline-block;padding-right:5px;padding-left:5px}dl{margin-top:0;margin-bottom:20px}dd,dt{line-height:1.42857143}dt{font-weight:700}dd{margin-left:0}@media (min-width:768px){.dl-horizontal dt{float:left;width:160px;overflow:hidden;clear:left;text-align:right;text-overflow:ellipsis;white-space:nowrap}.dl-horizontal dd{margin-left:180px}}abbr[data-original-title],abbr[title]{cursor:help;border-bottom:1px dotted #777}.initialism{font-size:90%;text-transform:uppercase}blockquote{padding:10px 20px;margin:0 0 20px;font-size:17.5px;border-left:5px solid #eee}blockquote ol:last-child,blockquote p:last-child,blockquote ul:last-child{margin-bottom:0}blockquote .small,blockquote footer,blockquote small{display:block;font-size:80%;line-height:1.42857143;color:#777}blockquote .small:before,blockquote footer:before,blockquote small:before{content:'\2014 \00A0'}.blockquote-reverse,blockquote.pull-right{padding-right:15px;padding-left:0;text-align:right;border-right:5px solid #eee;border-left:0}.blockquote-reverse .small:before,.blockquote-reverse footer:before,.blockquote-reverse small:before,blockquote.pull-right .small:before,blockquote.pull-right footer:before,blockquote.pull-right small:before{content:''}.blockquote-reverse .small:after,.blockquote-reverse footer:after,.blockquote-reverse small:after,blockquote.pull-right .small:after,blockquote.pull-right footer:after,blockquote.pull-right small:after{content:'\00A0 \2014'}address{margin-bottom:20px;font-style:normal;line-height:1.42857143}code,kbd,pre,samp{font-family:Menlo,Monaco,Consolas,"Courier New",monospace}code{padding:2px 4px;font-size:90%;color:#c7254e;background-color:#f9f2f4;border-radius:4px}kbd{padding:2px 4px;font-size:90%;color:#fff;background-color:#333;border-radius:3px;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.25);box-shadow:inset 0 -1px 0 rgba(0,0,0,.25)}kbd kbd{padding:0;font-size:100%;font-weight:700;-webkit-box-shadow:none;box-shadow:none}pre{display:block;padding:9.5px;margin:0 0 10px;font-size:13px;line-height:1.42857143;color:#333;word-break:break-all;word-wrap:break-word;background-color:#f5f5f5;border:1px solid #ccc;border-radius:4px}pre code{padding:0;font-size:inherit;color:inherit;white-space:pre-wrap;background-color:transparent;border-radius:0}.pre-scrollable{max-height:340px;overflow-y:scroll}.container{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:768px){.container{width:750px}}@media (min-width:992px){.container{width:970px}}@media (min-width:1200px){.container{width:1170px}}.container-fluid{padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}.row{margin-right:-15px;margin-left:-15px}.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9,.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9,.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9,.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{position:relative;min-height:1px;padding-right:15px;padding-left:15px}.col-xs-1,.col-xs-10,.col-xs-11,.col-xs-12,.col-xs-2,.col-xs-3,.col-xs-4,.col-xs-5,.col-xs-6,.col-xs-7,.col-xs-8,.col-xs-9{float:left}.col-xs-12{width:100%}.col-xs-11{width:91.66666667%}.col-xs-10{width:83.33333333%}.col-xs-9{width:75%}.col-xs-8{width:66.66666667%}.col-xs-7{width:58.33333333%}.col-xs-6{width:50%}.col-xs-5{width:41.66666667%}.col-xs-4{width:33.33333333%}.col-xs-3{width:25%}.col-xs-2{width:16.66666667%}.col-xs-1{width:8.33333333%}.col-xs-pull-12{right:100%}.col-xs-pull-11{right:91.66666667%}.col-xs-pull-10{right:83.33333333%}.col-xs-pull-9{right:75%}.col-xs-pull-8{right:66.66666667%}.col-xs-pull-7{right:58.33333333%}.col-xs-pull-6{right:50%}.col-xs-pull-5{right:41.66666667%}.col-xs-pull-4{right:33.33333333%}.col-xs-pull-3{right:25%}.col-xs-pull-2{right:16.66666667%}.col-xs-pull-1{right:8.33333333%}.col-xs-pull-0{right:auto}.col-xs-push-12{left:100%}.col-xs-push-11{left:91.66666667%}.col-xs-push-10{left:83.33333333%}.col-xs-push-9{left:75%}.col-xs-push-8{left:66.66666667%}.col-xs-push-7{left:58.33333333%}.col-xs-push-6{left:50%}.col-xs-push-5{left:41.66666667%}.col-xs-push-4{left:33.33333333%}.col-xs-push-3{left:25%}.col-xs-push-2{left:16.66666667%}.col-xs-push-1{left:8.33333333%}.col-xs-push-0{left:auto}.col-xs-offset-12{margin-left:100%}.col-xs-offset-11{margin-left:91.66666667%}.col-xs-offset-10{margin-left:83.33333333%}.col-xs-offset-9{margin-left:75%}.col-xs-offset-8{margin-left:66.66666667%}.col-xs-offset-7{margin-left:58.33333333%}.col-xs-offset-6{margin-left:50%}.col-xs-offset-5{margin-left:41.66666667%}.col-xs-offset-4{margin-left:33.33333333%}.col-xs-offset-3{margin-left:25%}.col-xs-offset-2{margin-left:16.66666667%}.col-xs-offset-1{margin-left:8.33333333%}.col-xs-offset-0{margin-left:0}@media (min-width:768px){.col-sm-1,.col-sm-10,.col-sm-11,.col-sm-12,.col-sm-2,.col-sm-3,.col-sm-4,.col-sm-5,.col-sm-6,.col-sm-7,.col-sm-8,.col-sm-9{float:left}.col-sm-12{width:100%}.col-sm-11{width:91.66666667%}.col-sm-10{width:83.33333333%}.col-sm-9{width:75%}.col-sm-8{width:66.66666667%}.col-sm-7{width:58.33333333%}.col-sm-6{width:50%}.col-sm-5{width:41.66666667%}.col-sm-4{width:33.33333333%}.col-sm-3{width:25%}.col-sm-2{width:16.66666667%}.col-sm-1{width:8.33333333%}.col-sm-pull-12{right:100%}.col-sm-pull-11{right:91.66666667%}.col-sm-pull-10{right:83.33333333%}.col-sm-pull-9{right:75%}.col-sm-pull-8{right:66.66666667%}.col-sm-pull-7{right:58.33333333%}.col-sm-pull-6{right:50%}.col-sm-pull-5{right:41.66666667%}.col-sm-pull-4{right:33.33333333%}.col-sm-pull-3{right:25%}.col-sm-pull-2{right:16.66666667%}.col-sm-pull-1{right:8.33333333%}.col-sm-pull-0{right:auto}.col-sm-push-12{left:100%}.col-sm-push-11{left:91.66666667%}.col-sm-push-10{left:83.33333333%}.col-sm-push-9{left:75%}.col-sm-push-8{left:66.66666667%}.col-sm-push-7{left:58.33333333%}.col-sm-push-6{left:50%}.col-sm-push-5{left:41.66666667%}.col-sm-push-4{left:33.33333333%}.col-sm-push-3{left:25%}.col-sm-push-2{left:16.66666667%}.col-sm-push-1{left:8.33333333%}.col-sm-push-0{left:auto}.col-sm-offset-12{margin-left:100%}.col-sm-offset-11{margin-left:91.66666667%}.col-sm-offset-10{margin-left:83.33333333%}.col-sm-offset-9{margin-left:75%}.col-sm-offset-8{margin-left:66.66666667%}.col-sm-offset-7{margin-left:58.33333333%}.col-sm-offset-6{margin-left:50%}.col-sm-offset-5{margin-left:41.66666667%}.col-sm-offset-4{margin-left:33.33333333%}.col-sm-offset-3{margin-left:25%}.col-sm-offset-2{margin-left:16.66666667%}.col-sm-offset-1{margin-left:8.33333333%}.col-sm-offset-0{margin-left:0}}@media (min-width:992px){.col-md-1,.col-md-10,.col-md-11,.col-md-12,.col-md-2,.col-md-3,.col-md-4,.col-md-5,.col-md-6,.col-md-7,.col-md-8,.col-md-9{float:left}.col-md-12{width:100%}.col-md-11{width:91.66666667%}.col-md-10{width:83.33333333%}.col-md-9{width:75%}.col-md-8{width:66.66666667%}.col-md-7{width:58.33333333%}.col-md-6{width:50%}.col-md-5{width:41.66666667%}.col-md-4{width:33.33333333%}.col-md-3{width:25%}.col-md-2{width:16.66666667%}.col-md-1{width:8.33333333%}.col-md-pull-12{right:100%}.col-md-pull-11{right:91.66666667%}.col-md-pull-10{right:83.33333333%}.col-md-pull-9{right:75%}.col-md-pull-8{right:66.66666667%}.col-md-pull-7{right:58.33333333%}.col-md-pull-6{right:50%}.col-md-pull-5{right:41.66666667%}.col-md-pull-4{right:33.33333333%}.col-md-pull-3{right:25%}.col-md-pull-2{right:16.66666667%}.col-md-pull-1{right:8.33333333%}.col-md-pull-0{right:auto}.col-md-push-12{left:100%}.col-md-push-11{left:91.66666667%}.col-md-push-10{left:83.33333333%}.col-md-push-9{left:75%}.col-md-push-8{left:66.66666667%}.col-md-push-7{left:58.33333333%}.col-md-push-6{left:50%}.col-md-push-5{left:41.66666667%}.col-md-push-4{left:33.33333333%}.col-md-push-3{left:25%}.col-md-push-2{left:16.66666667%}.col-md-push-1{left:8.33333333%}.col-md-push-0{left:auto}.col-md-offset-12{margin-left:100%}.col-md-offset-11{margin-left:91.66666667%}.col-md-offset-10{margin-left:83.33333333%}.col-md-offset-9{margin-left:75%}.col-md-offset-8{margin-left:66.66666667%}.col-md-offset-7{margin-left:58.33333333%}.col-md-offset-6{margin-left:50%}.col-md-offset-5{margin-left:41.66666667%}.col-md-offset-4{margin-left:33.33333333%}.col-md-offset-3{margin-left:25%}.col-md-offset-2{margin-left:16.66666667%}.col-md-offset-1{margin-left:8.33333333%}.col-md-offset-0{margin-left:0}}@media (min-width:1200px){.col-lg-1,.col-lg-10,.col-lg-11,.col-lg-12,.col-lg-2,.col-lg-3,.col-lg-4,.col-lg-5,.col-lg-6,.col-lg-7,.col-lg-8,.col-lg-9{float:left}.col-lg-12{width:100%}.col-lg-11{width:91.66666667%}.col-lg-10{width:83.33333333%}.col-lg-9{width:75%}.col-lg-8{width:66.66666667%}.col-lg-7{width:58.33333333%}.col-lg-6{width:50%}.col-lg-5{width:41.66666667%}.col-lg-4{width:33.33333333%}.col-lg-3{width:25%}.col-lg-2{width:16.66666667%}.col-lg-1{width:8.33333333%}.col-lg-pull-12{right:100%}.col-lg-pull-11{right:91.66666667%}.col-lg-pull-10{right:83.33333333%}.col-lg-pull-9{right:75%}.col-lg-pull-8{right:66.66666667%}.col-lg-pull-7{right:58.33333333%}.col-lg-pull-6{right:50%}.col-lg-pull-5{right:41.66666667%}.col-lg-pull-4{right:33.33333333%}.col-lg-pull-3{right:25%}.col-lg-pull-2{right:16.66666667%}.col-lg-pull-1{right:8.33333333%}.col-lg-pull-0{right:auto}.col-lg-push-12{left:100%}.col-lg-push-11{left:91.66666667%}.col-lg-push-10{left:83.33333333%}.col-lg-push-9{left:75%}.col-lg-push-8{left:66.66666667%}.col-lg-push-7{left:58.33333333%}.col-lg-push-6{left:50%}.col-lg-push-5{left:41.66666667%}.col-lg-push-4{left:33.33333333%}.col-lg-push-3{left:25%}.col-lg-push-2{left:16.66666667%}.col-lg-push-1{left:8.33333333%}.col-lg-push-0{left:auto}.col-lg-offset-12{margin-left:100%}.col-lg-offset-11{margin-left:91.66666667%}.col-lg-offset-10{margin-left:83.33333333%}.col-lg-offset-9{margin-left:75%}.col-lg-offset-8{margin-left:66.66666667%}.col-lg-offset-7{margin-left:58.33333333%}.col-lg-offset-6{margin-left:50%}.col-lg-offset-5{margin-left:41.66666667%}.col-lg-offset-4{margin-left:33.33333333%}.col-lg-offset-3{margin-left:25%}.col-lg-offset-2{margin-left:16.66666667%}.col-lg-offset-1{margin-left:8.33333333%}.col-lg-offset-0{margin-left:0}}table{background-color:transparent}caption{padding-top:8px;padding-bottom:8px;color:#777;text-align:left}th{text-align:left}.table{width:100%;max-width:100%;margin-bottom:20px}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd}.table>caption+thead>tr:first-child>td,.table>caption+thead>tr:first-child>th,.table>colgroup+thead>tr:first-child>td,.table>colgroup+thead>tr:first-child>th,.table>thead:first-child>tr:first-child>td,.table>thead:first-child>tr:first-child>th{border-top:0}.table>tbody+tbody{border-top:2px solid #ddd}.table .table{background-color:#fff}.table-condensed>tbody>tr>td,.table-condensed>tbody>tr>th,.table-condensed>tfoot>tr>td,.table-condensed>tfoot>tr>th,.table-condensed>thead>tr>td,.table-condensed>thead>tr>th{padding:5px}.table-bordered{border:1px solid #ddd}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border-bottom-width:2px}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}.table-hover>tbody>tr:hover{background-color:#f5f5f5}table col[class*=col-]{position:static;display:table-column;float:none}table td[class*=col-],table th[class*=col-]{position:static;display:table-cell;float:none}.table>tbody>tr.active>td,.table>tbody>tr.active>th,.table>tbody>tr>td.active,.table>tbody>tr>th.active,.table>tfoot>tr.active>td,.table>tfoot>tr.active>th,.table>tfoot>tr>td.active,.table>tfoot>tr>th.active,.table>thead>tr.active>td,.table>thead>tr.active>th,.table>thead>tr>td.active,.table>thead>tr>th.active{background-color:#f5f5f5}.table-hover>tbody>tr.active:hover>td,.table-hover>tbody>tr.active:hover>th,.table-hover>tbody>tr:hover>.active,.table-hover>tbody>tr>td.active:hover,.table-hover>tbody>tr>th.active:hover{background-color:#e8e8e8}.table>tbody>tr.success>td,.table>tbody>tr.success>th,.table>tbody>tr>td.success,.table>tbody>tr>th.success,.table>tfoot>tr.success>td,.table>tfoot>tr.success>th,.table>tfoot>tr>td.success,.table>tfoot>tr>th.success,.table>thead>tr.success>td,.table>thead>tr.success>th,.table>thead>tr>td.success,.table>thead>tr>th.success{background-color:#dff0d8}.table-hover>tbody>tr.success:hover>td,.table-hover>tbody>tr.success:hover>th,.table-hover>tbody>tr:hover>.success,.table-hover>tbody>tr>td.success:hover,.table-hover>tbody>tr>th.success:hover{background-color:#d0e9c6}.table>tbody>tr.info>td,.table>tbody>tr.info>th,.table>tbody>tr>td.info,.table>tbody>tr>th.info,.table>tfoot>tr.info>td,.table>tfoot>tr.info>th,.table>tfoot>tr>td.info,.table>tfoot>tr>th.info,.table>thead>tr.info>td,.table>thead>tr.info>th,.table>thead>tr>td.info,.table>thead>tr>th.info{background-color:#d9edf7}.table-hover>tbody>tr.info:hover>td,.table-hover>tbody>tr.info:hover>th,.table-hover>tbody>tr:hover>.info,.table-hover>tbody>tr>td.info:hover,.table-hover>tbody>tr>th.info:hover{background-color:#c4e3f3}.table>tbody>tr.warning>td,.table>tbody>tr.warning>th,.table>tbody>tr>td.warning,.table>tbody>tr>th.warning,.table>tfoot>tr.warning>td,.table>tfoot>tr.warning>th,.table>tfoot>tr>td.warning,.table>tfoot>tr>th.warning,.table>thead>tr.warning>td,.table>thead>tr.warning>th,.table>thead>tr>td.warning,.table>thead>tr>th.warning{background-color:#fcf8e3}.table-hover>tbody>tr.warning:hover>td,.table-hover>tbody>tr.warning:hover>th,.table-hover>tbody>tr:hover>.warning,.table-hover>tbody>tr>td.warning:hover,.table-hover>tbody>tr>th.warning:hover{background-color:#faf2cc}.table>tbody>tr.danger>td,.table>tbody>tr.danger>th,.table>tbody>tr>td.danger,.table>tbody>tr>th.danger,.table>tfoot>tr.danger>td,.table>tfoot>tr.danger>th,.table>tfoot>tr>td.danger,.table>tfoot>tr>th.danger,.table>thead>tr.danger>td,.table>thead>tr.danger>th,.table>thead>tr>td.danger,.table>thead>tr>th.danger{background-color:#f2dede}.table-hover>tbody>tr.danger:hover>td,.table-hover>tbody>tr.danger:hover>th,.table-hover>tbody>tr:hover>.danger,.table-hover>tbody>tr>td.danger:hover,.table-hover>tbody>tr>th.danger:hover{background-color:#ebcccc}.table-responsive{min-height:.01%;overflow-x:auto}@media screen and (max-width:767px){.table-responsive{width:100%;margin-bottom:15px;overflow-y:hidden;-ms-overflow-style:-ms-autohiding-scrollbar;border:1px solid #ddd}.table-responsive>.table{margin-bottom:0}.table-responsive>.table>tbody>tr>td,.table-responsive>.table>tbody>tr>th,.table-responsive>.table>tfoot>tr>td,.table-responsive>.table>tfoot>tr>th,.table-responsive>.table>thead>tr>td,.table-responsive>.table>thead>tr>th{white-space:nowrap}.table-responsive>.table-bordered{border:0}.table-responsive>.table-bordered>tbody>tr>td:first-child,.table-responsive>.table-bordered>tbody>tr>th:first-child,.table-responsive>.table-bordered>tfoot>tr>td:first-child,.table-responsive>.table-bordered>tfoot>tr>th:first-child,.table-responsive>.table-bordered>thead>tr>td:first-child,.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.table-responsive>.table-bordered>tbody>tr>td:last-child,.table-responsive>.table-bordered>tbody>tr>th:last-child,.table-responsive>.table-bordered>tfoot>tr>td:last-child,.table-responsive>.table-bordered>tfoot>tr>th:last-child,.table-responsive>.table-bordered>thead>tr>td:last-child,.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.table-responsive>.table-bordered>tbody>tr:last-child>td,.table-responsive>.table-bordered>tbody>tr:last-child>th,.table-responsive>.table-bordered>tfoot>tr:last-child>td,.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}}fieldset{min-width:0;padding:0;margin:0;border:0}legend{display:block;width:100%;padding:0;margin-bottom:20px;font-size:21px;line-height:inherit;color:#333;border:0;border-bottom:1px solid #e5e5e5}label{display:inline-block;max-width:100%;margin-bottom:5px;font-weight:700}input[type=search]{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}input[type=checkbox],input[type=radio]{margin:4px 0 0;margin-top:1px\9;line-height:normal}input[type=file]{display:block}input[type=range]{display:block;width:100%}select[multiple],select[size]{height:auto}input[type=file]:focus,input[type=checkbox]:focus,input[type=radio]:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}output{display:block;padding-top:7px;font-size:14px;line-height:1.42857143;color:#555}.form-control{display:block;width:100%;height:34px;padding:6px 12px;font-size:14px;line-height:1.42857143;color:#555;background-color:#fff;background-image:none;border:1px solid #ccc;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075);-webkit-transition:border-color ease-in-out .15s,-webkit-box-shadow ease-in-out .15s;-o-transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s;transition:border-color ease-in-out .15s,box-shadow ease-in-out .15s}.form-control:focus{border-color:#66afe9;outline:0;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6);box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 8px rgba(102,175,233,.6)}.form-control::-moz-placeholder{color:#999;opacity:1}.form-control:-ms-input-placeholder{color:#999}.form-control::-webkit-input-placeholder{color:#999}.form-control[disabled],.form-control[readonly],fieldset[disabled] .form-control{background-color:#eee;opacity:1}.form-control[disabled],fieldset[disabled] .form-control{cursor:not-allowed}textarea.form-control{height:auto}input[type=search]{-webkit-appearance:none}@media screen and (-webkit-min-device-pixel-ratio:0){input[type=date].form-control,input[type=time].form-control,input[type=datetime-local].form-control,input[type=month].form-control{line-height:34px}.input-group-sm input[type=date],.input-group-sm input[type=time],.input-group-sm input[type=datetime-local],.input-group-sm input[type=month],input[type=date].input-sm,input[type=time].input-sm,input[type=datetime-local].input-sm,input[type=month].input-sm{line-height:30px}.input-group-lg input[type=date],.input-group-lg input[type=time],.input-group-lg input[type=datetime-local],.input-group-lg input[type=month],input[type=date].input-lg,input[type=time].input-lg,input[type=datetime-local].input-lg,input[type=month].input-lg{line-height:46px}}.form-group{margin-bottom:15px}.checkbox,.radio{position:relative;display:block;margin-top:10px;margin-bottom:10px}.checkbox label,.radio label{min-height:20px;padding-left:20px;margin-bottom:0;font-weight:400;cursor:pointer}.checkbox input[type=checkbox],.checkbox-inline input[type=checkbox],.radio input[type=radio],.radio-inline input[type=radio]{position:absolute;margin-top:4px\9;margin-left:-20px}.checkbox+.checkbox,.radio+.radio{margin-top:-5px}.checkbox-inline,.radio-inline{position:relative;display:inline-block;padding-left:20px;margin-bottom:0;font-weight:400;vertical-align:middle;cursor:pointer}.checkbox-inline+.checkbox-inline,.radio-inline+.radio-inline{margin-top:0;margin-left:10px}fieldset[disabled] input[type=checkbox],fieldset[disabled] input[type=radio],input[type=checkbox].disabled,input[type=checkbox][disabled],input[type=radio].disabled,input[type=radio][disabled]{cursor:not-allowed}.checkbox-inline.disabled,.radio-inline.disabled,fieldset[disabled] .checkbox-inline,fieldset[disabled] .radio-inline{cursor:not-allowed}.checkbox.disabled label,.radio.disabled label,fieldset[disabled] .checkbox label,fieldset[disabled] .radio label{cursor:not-allowed}.form-control-static{min-height:34px;padding-top:7px;padding-bottom:7px;margin-bottom:0}.form-control-static.input-lg,.form-control-static.input-sm{padding-right:0;padding-left:0}.input-sm{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-sm{height:30px;line-height:30px}select[multiple].input-sm,textarea.input-sm{height:auto}.form-group-sm .form-control{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.form-group-sm select.form-control{height:30px;line-height:30px}.form-group-sm select[multiple].form-control,.form-group-sm textarea.form-control{height:auto}.form-group-sm .form-control-static{height:30px;min-height:32px;padding:6px 10px;font-size:12px;line-height:1.5}.input-lg{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-lg{height:46px;line-height:46px}select[multiple].input-lg,textarea.input-lg{height:auto}.form-group-lg .form-control{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.form-group-lg select.form-control{height:46px;line-height:46px}.form-group-lg select[multiple].form-control,.form-group-lg textarea.form-control{height:auto}.form-group-lg .form-control-static{height:46px;min-height:38px;padding:11px 16px;font-size:18px;line-height:1.3333333}.has-feedback{position:relative}.has-feedback .form-control{padding-right:42.5px}.form-control-feedback{position:absolute;top:0;right:0;z-index:2;display:block;width:34px;height:34px;line-height:34px;text-align:center;pointer-events:none}.form-group-lg .form-control+.form-control-feedback,.input-group-lg+.form-control-feedback,.input-lg+.form-control-feedback{width:46px;height:46px;line-height:46px}.form-group-sm .form-control+.form-control-feedback,.input-group-sm+.form-control-feedback,.input-sm+.form-control-feedback{width:30px;height:30px;line-height:30px}.has-success .checkbox,.has-success .checkbox-inline,.has-success .control-label,.has-success .help-block,.has-success .radio,.has-success .radio-inline,.has-success.checkbox label,.has-success.checkbox-inline label,.has-success.radio label,.has-success.radio-inline label{color:#3c763d}.has-success .form-control{border-color:#3c763d;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-success .form-control:focus{border-color:#2b542c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #67b168}.has-success .input-group-addon{color:#3c763d;background-color:#dff0d8;border-color:#3c763d}.has-success .form-control-feedback{color:#3c763d}.has-warning .checkbox,.has-warning .checkbox-inline,.has-warning .control-label,.has-warning .help-block,.has-warning .radio,.has-warning .radio-inline,.has-warning.checkbox label,.has-warning.checkbox-inline label,.has-warning.radio label,.has-warning.radio-inline label{color:#8a6d3b}.has-warning .form-control{border-color:#8a6d3b;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-warning .form-control:focus{border-color:#66512c;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #c0a16b}.has-warning .input-group-addon{color:#8a6d3b;background-color:#fcf8e3;border-color:#8a6d3b}.has-warning .form-control-feedback{color:#8a6d3b}.has-error .checkbox,.has-error .checkbox-inline,.has-error .control-label,.has-error .help-block,.has-error .radio,.has-error .radio-inline,.has-error.checkbox label,.has-error.checkbox-inline label,.has-error.radio label,.has-error.radio-inline label{color:#a94442}.has-error .form-control{border-color:#a94442;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075);box-shadow:inset 0 1px 1px rgba(0,0,0,.075)}.has-error .form-control:focus{border-color:#843534;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483;box-shadow:inset 0 1px 1px rgba(0,0,0,.075),0 0 6px #ce8483}.has-error .input-group-addon{color:#a94442;background-color:#f2dede;border-color:#a94442}.has-error .form-control-feedback{color:#a94442}.has-feedback label~.form-control-feedback{top:25px}.has-feedback label.sr-only~.form-control-feedback{top:0}.help-block{display:block;margin-top:5px;margin-bottom:10px;color:#737373}@media (min-width:768px){.form-inline .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-control-static{display:inline-block}.form-inline .input-group{display:inline-table;vertical-align:middle}.form-inline .input-group .form-control,.form-inline .input-group .input-group-addon,.form-inline .input-group .input-group-btn{width:auto}.form-inline .input-group>.form-control{width:100%}.form-inline .control-label{margin-bottom:0;vertical-align:middle}.form-inline .checkbox,.form-inline .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.form-inline .checkbox label,.form-inline .radio label{padding-left:0}.form-inline .checkbox input[type=checkbox],.form-inline .radio input[type=radio]{position:relative;margin-left:0}.form-inline .has-feedback .form-control-feedback{top:0}}.form-horizontal .checkbox,.form-horizontal .checkbox-inline,.form-horizontal .radio,.form-horizontal .radio-inline{padding-top:7px;margin-top:0;margin-bottom:0}.form-horizontal .checkbox,.form-horizontal .radio{min-height:27px}.form-horizontal .form-group{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.form-horizontal .control-label{padding-top:7px;margin-bottom:0;text-align:right}}.form-horizontal .has-feedback .form-control-feedback{right:15px}@media (min-width:768px){.form-horizontal .form-group-lg .control-label{padding-top:14.33px;font-size:18px}}@media (min-width:768px){.form-horizontal .form-group-sm .control-label{padding-top:6px;font-size:12px}}.btn{display:inline-block;padding:6px 12px;margin-bottom:0;font-size:14px;font-weight:400;line-height:1.42857143;text-align:center;white-space:nowrap;vertical-align:middle;-ms-touch-action:manipulation;touch-action:manipulation;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-image:none;border:1px solid transparent;border-radius:4px}.btn.active.focus,.btn.active:focus,.btn.focus,.btn:active.focus,.btn:active:focus,.btn:focus{outline:thin dotted;outline:5px auto -webkit-focus-ring-color;outline-offset:-2px}.btn.focus,.btn:focus,.btn:hover{color:#333;text-decoration:none}.btn.active,.btn:active{background-image:none;outline:0;-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn.disabled,.btn[disabled],fieldset[disabled] .btn{cursor:not-allowed;filter:alpha(opacity=65);-webkit-box-shadow:none;box-shadow:none;opacity:.65}a.btn.disabled,fieldset[disabled] a.btn{pointer-events:none}.btn-default{color:#333;background-color:#fff;border-color:#ccc}.btn-default.focus,.btn-default:focus{color:#333;background-color:#e6e6e6;border-color:#8c8c8c}.btn-default:hover{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{color:#333;background-color:#e6e6e6;border-color:#adadad}.btn-default.active.focus,.btn-default.active:focus,.btn-default.active:hover,.btn-default:active.focus,.btn-default:active:focus,.btn-default:active:hover,.open>.dropdown-toggle.btn-default.focus,.open>.dropdown-toggle.btn-default:focus,.open>.dropdown-toggle.btn-default:hover{color:#333;background-color:#d4d4d4;border-color:#8c8c8c}.btn-default.active,.btn-default:active,.open>.dropdown-toggle.btn-default{background-image:none}.btn-default.disabled,.btn-default.disabled.active,.btn-default.disabled.focus,.btn-default.disabled:active,.btn-default.disabled:focus,.btn-default.disabled:hover,.btn-default[disabled],.btn-default[disabled].active,.btn-default[disabled].focus,.btn-default[disabled]:active,.btn-default[disabled]:focus,.btn-default[disabled]:hover,fieldset[disabled] .btn-default,fieldset[disabled] .btn-default.active,fieldset[disabled] .btn-default.focus,fieldset[disabled] .btn-default:active,fieldset[disabled] .btn-default:focus,fieldset[disabled] .btn-default:hover{background-color:#fff;border-color:#ccc}.btn-default .badge{color:#fff;background-color:#333}.btn-primary{color:#fff;background-color:#337ab7;border-color:#2e6da4}.btn-primary.focus,.btn-primary:focus{color:#fff;background-color:#286090;border-color:#122b40}.btn-primary:hover{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{color:#fff;background-color:#286090;border-color:#204d74}.btn-primary.active.focus,.btn-primary.active:focus,.btn-primary.active:hover,.btn-primary:active.focus,.btn-primary:active:focus,.btn-primary:active:hover,.open>.dropdown-toggle.btn-primary.focus,.open>.dropdown-toggle.btn-primary:focus,.open>.dropdown-toggle.btn-primary:hover{color:#fff;background-color:#204d74;border-color:#122b40}.btn-primary.active,.btn-primary:active,.open>.dropdown-toggle.btn-primary{background-image:none}.btn-primary.disabled,.btn-primary.disabled.active,.btn-primary.disabled.focus,.btn-primary.disabled:active,.btn-primary.disabled:focus,.btn-primary.disabled:hover,.btn-primary[disabled],.btn-primary[disabled].active,.btn-primary[disabled].focus,.btn-primary[disabled]:active,.btn-primary[disabled]:focus,.btn-primary[disabled]:hover,fieldset[disabled] .btn-primary,fieldset[disabled] .btn-primary.active,fieldset[disabled] .btn-primary.focus,fieldset[disabled] .btn-primary:active,fieldset[disabled] .btn-primary:focus,fieldset[disabled] .btn-primary:hover{background-color:#337ab7;border-color:#2e6da4}.btn-primary .badge{color:#337ab7;background-color:#fff}.btn-success{color:#fff;background-color:#5cb85c;border-color:#4cae4c}.btn-success.focus,.btn-success:focus{color:#fff;background-color:#449d44;border-color:#255625}.btn-success:hover{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{color:#fff;background-color:#449d44;border-color:#398439}.btn-success.active.focus,.btn-success.active:focus,.btn-success.active:hover,.btn-success:active.focus,.btn-success:active:focus,.btn-success:active:hover,.open>.dropdown-toggle.btn-success.focus,.open>.dropdown-toggle.btn-success:focus,.open>.dropdown-toggle.btn-success:hover{color:#fff;background-color:#398439;border-color:#255625}.btn-success.active,.btn-success:active,.open>.dropdown-toggle.btn-success{background-image:none}.btn-success.disabled,.btn-success.disabled.active,.btn-success.disabled.focus,.btn-success.disabled:active,.btn-success.disabled:focus,.btn-success.disabled:hover,.btn-success[disabled],.btn-success[disabled].active,.btn-success[disabled].focus,.btn-success[disabled]:active,.btn-success[disabled]:focus,.btn-success[disabled]:hover,fieldset[disabled] .btn-success,fieldset[disabled] .btn-success.active,fieldset[disabled] .btn-success.focus,fieldset[disabled] .btn-success:active,fieldset[disabled] .btn-success:focus,fieldset[disabled] .btn-success:hover{background-color:#5cb85c;border-color:#4cae4c}.btn-success .badge{color:#5cb85c;background-color:#fff}.btn-info{color:#fff;background-color:#5bc0de;border-color:#46b8da}.btn-info.focus,.btn-info:focus{color:#fff;background-color:#31b0d5;border-color:#1b6d85}.btn-info:hover{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{color:#fff;background-color:#31b0d5;border-color:#269abc}.btn-info.active.focus,.btn-info.active:focus,.btn-info.active:hover,.btn-info:active.focus,.btn-info:active:focus,.btn-info:active:hover,.open>.dropdown-toggle.btn-info.focus,.open>.dropdown-toggle.btn-info:focus,.open>.dropdown-toggle.btn-info:hover{color:#fff;background-color:#269abc;border-color:#1b6d85}.btn-info.active,.btn-info:active,.open>.dropdown-toggle.btn-info{background-image:none}.btn-info.disabled,.btn-info.disabled.active,.btn-info.disabled.focus,.btn-info.disabled:active,.btn-info.disabled:focus,.btn-info.disabled:hover,.btn-info[disabled],.btn-info[disabled].active,.btn-info[disabled].focus,.btn-info[disabled]:active,.btn-info[disabled]:focus,.btn-info[disabled]:hover,fieldset[disabled] .btn-info,fieldset[disabled] .btn-info.active,fieldset[disabled] .btn-info.focus,fieldset[disabled] .btn-info:active,fieldset[disabled] .btn-info:focus,fieldset[disabled] .btn-info:hover{background-color:#5bc0de;border-color:#46b8da}.btn-info .badge{color:#5bc0de;background-color:#fff}.btn-warning{color:#fff;background-color:#f0ad4e;border-color:#eea236}.btn-warning.focus,.btn-warning:focus{color:#fff;background-color:#ec971f;border-color:#985f0d}.btn-warning:hover{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{color:#fff;background-color:#ec971f;border-color:#d58512}.btn-warning.active.focus,.btn-warning.active:focus,.btn-warning.active:hover,.btn-warning:active.focus,.btn-warning:active:focus,.btn-warning:active:hover,.open>.dropdown-toggle.btn-warning.focus,.open>.dropdown-toggle.btn-warning:focus,.open>.dropdown-toggle.btn-warning:hover{color:#fff;background-color:#d58512;border-color:#985f0d}.btn-warning.active,.btn-warning:active,.open>.dropdown-toggle.btn-warning{background-image:none}.btn-warning.disabled,.btn-warning.disabled.active,.btn-warning.disabled.focus,.btn-warning.disabled:active,.btn-warning.disabled:focus,.btn-warning.disabled:hover,.btn-warning[disabled],.btn-warning[disabled].active,.btn-warning[disabled].focus,.btn-warning[disabled]:active,.btn-warning[disabled]:focus,.btn-warning[disabled]:hover,fieldset[disabled] .btn-warning,fieldset[disabled] .btn-warning.active,fieldset[disabled] .btn-warning.focus,fieldset[disabled] .btn-warning:active,fieldset[disabled] .btn-warning:focus,fieldset[disabled] .btn-warning:hover{background-color:#f0ad4e;border-color:#eea236}.btn-warning .badge{color:#f0ad4e;background-color:#fff}.btn-danger{color:#fff;background-color:#d9534f;border-color:#d43f3a}.btn-danger.focus,.btn-danger:focus{color:#fff;background-color:#c9302c;border-color:#761c19}.btn-danger:hover{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{color:#fff;background-color:#c9302c;border-color:#ac2925}.btn-danger.active.focus,.btn-danger.active:focus,.btn-danger.active:hover,.btn-danger:active.focus,.btn-danger:active:focus,.btn-danger:active:hover,.open>.dropdown-toggle.btn-danger.focus,.open>.dropdown-toggle.btn-danger:focus,.open>.dropdown-toggle.btn-danger:hover{color:#fff;background-color:#ac2925;border-color:#761c19}.btn-danger.active,.btn-danger:active,.open>.dropdown-toggle.btn-danger{background-image:none}.btn-danger.disabled,.btn-danger.disabled.active,.btn-danger.disabled.focus,.btn-danger.disabled:active,.btn-danger.disabled:focus,.btn-danger.disabled:hover,.btn-danger[disabled],.btn-danger[disabled].active,.btn-danger[disabled].focus,.btn-danger[disabled]:active,.btn-danger[disabled]:focus,.btn-danger[disabled]:hover,fieldset[disabled] .btn-danger,fieldset[disabled] .btn-danger.active,fieldset[disabled] .btn-danger.focus,fieldset[disabled] .btn-danger:active,fieldset[disabled] .btn-danger:focus,fieldset[disabled] .btn-danger:hover{background-color:#d9534f;border-color:#d43f3a}.btn-danger .badge{color:#d9534f;background-color:#fff}.btn-link{font-weight:400;color:#337ab7;border-radius:0}.btn-link,.btn-link.active,.btn-link:active,.btn-link[disabled],fieldset[disabled] .btn-link{background-color:transparent;-webkit-box-shadow:none;box-shadow:none}.btn-link,.btn-link:active,.btn-link:focus,.btn-link:hover{border-color:transparent}.btn-link:focus,.btn-link:hover{color:#23527c;text-decoration:underline;background-color:transparent}.btn-link[disabled]:focus,.btn-link[disabled]:hover,fieldset[disabled] .btn-link:focus,fieldset[disabled] .btn-link:hover{color:#777;text-decoration:none}.btn-group-lg>.btn,.btn-lg{padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}.btn-group-sm>.btn,.btn-sm{padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}.btn-group-xs>.btn,.btn-xs{padding:1px 5px;font-size:12px;line-height:1.5;border-radius:3px}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:5px}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.fade{opacity:0;-webkit-transition:opacity .15s linear;-o-transition:opacity .15s linear;transition:opacity .15s linear}.fade.in{opacity:1}.collapse{display:none}.collapse.in{display:block}tr.collapse.in{display:table-row}tbody.collapse.in{display:table-row-group}.collapsing{position:relative;height:0;overflow:hidden;-webkit-transition-timing-function:ease;-o-transition-timing-function:ease;transition-timing-function:ease;-webkit-transition-duration:.35s;-o-transition-duration:.35s;transition-duration:.35s;-webkit-transition-property:height,visibility;-o-transition-property:height,visibility;transition-property:height,visibility}.caret{display:inline-block;width:0;height:0;margin-left:2px;vertical-align:middle;border-top:4px dashed;border-top:4px solid\9;border-right:4px solid transparent;border-left:4px solid transparent}.dropdown,.dropup{position:relative}.dropdown-toggle:focus{outline:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:160px;padding:5px 0;margin:2px 0 0;font-size:14px;text-align:left;list-style:none;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.15);border-radius:4px;-webkit-box-shadow:0 6px 12px rgba(0,0,0,.175);box-shadow:0 6px 12px rgba(0,0,0,.175)}.dropdown-menu.pull-right{right:0;left:auto}.dropdown-menu .divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.dropdown-menu>li>a{display:block;padding:3px 20px;clear:both;font-weight:400;line-height:1.42857143;color:#333;white-space:nowrap}.dropdown-menu>li>a:focus,.dropdown-menu>li>a:hover{color:#262626;text-decoration:none;background-color:#f5f5f5}.dropdown-menu>.active>a,.dropdown-menu>.active>a:focus,.dropdown-menu>.active>a:hover{color:#fff;text-decoration:none;background-color:#337ab7;outline:0}.dropdown-menu>.disabled>a,.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{color:#777}.dropdown-menu>.disabled>a:focus,.dropdown-menu>.disabled>a:hover{text-decoration:none;cursor:not-allowed;background-color:transparent;background-image:none;filter:progid:DXImageTransform.Microsoft.gradient(enabled=false)}.open>.dropdown-menu{display:block}.open>a{outline:0}.dropdown-menu-right{right:0;left:auto}.dropdown-menu-left{right:auto;left:0}.dropdown-header{display:block;padding:3px 20px;font-size:12px;line-height:1.42857143;color:#777;white-space:nowrap}.dropdown-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:990}.pull-right>.dropdown-menu{right:0;left:auto}.dropup .caret,.navbar-fixed-bottom .dropdown .caret{content:"";border-top:0;border-bottom:4px dashed;border-bottom:4px solid\9}.dropup .dropdown-menu,.navbar-fixed-bottom .dropdown .dropdown-menu{top:auto;bottom:100%;margin-bottom:2px}@media (min-width:768px){.navbar-right .dropdown-menu{right:0;left:auto}.navbar-right .dropdown-menu-left{right:auto;left:0}}.btn-group,.btn-group-vertical{position:relative;display:inline-block;vertical-align:middle}.btn-group-vertical>.btn,.btn-group>.btn{position:relative;float:left}.btn-group-vertical>.btn.active,.btn-group-vertical>.btn:active,.btn-group-vertical>.btn:focus,.btn-group-vertical>.btn:hover,.btn-group>.btn.active,.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:2}.btn-group .btn+.btn,.btn-group .btn+.btn-group,.btn-group .btn-group+.btn,.btn-group .btn-group+.btn-group{margin-left:-1px}.btn-toolbar{margin-left:-5px}.btn-toolbar .btn,.btn-toolbar .btn-group,.btn-toolbar .input-group{float:left}.btn-toolbar>.btn,.btn-toolbar>.btn-group,.btn-toolbar>.input-group{margin-left:5px}.btn-group>.btn:not(:first-child):not(:last-child):not(.dropdown-toggle){border-radius:0}.btn-group>.btn:first-child{margin-left:0}.btn-group>.btn:first-child:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn:last-child:not(:first-child),.btn-group>.dropdown-toggle:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group>.btn-group{float:left}.btn-group>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-bottom-left-radius:0}.btn-group .dropdown-toggle:active,.btn-group.open .dropdown-toggle{outline:0}.btn-group>.btn+.dropdown-toggle{padding-right:8px;padding-left:8px}.btn-group>.btn-lg+.dropdown-toggle{padding-right:12px;padding-left:12px}.btn-group.open .dropdown-toggle{-webkit-box-shadow:inset 0 3px 5px rgba(0,0,0,.125);box-shadow:inset 0 3px 5px rgba(0,0,0,.125)}.btn-group.open .dropdown-toggle.btn-link{-webkit-box-shadow:none;box-shadow:none}.btn .caret{margin-left:0}.btn-lg .caret{border-width:5px 5px 0;border-bottom-width:0}.dropup .btn-lg .caret{border-width:0 5px 5px}.btn-group-vertical>.btn,.btn-group-vertical>.btn-group,.btn-group-vertical>.btn-group>.btn{display:block;float:none;width:100%;max-width:100%}.btn-group-vertical>.btn-group>.btn{float:none}.btn-group-vertical>.btn+.btn,.btn-group-vertical>.btn+.btn-group,.btn-group-vertical>.btn-group+.btn,.btn-group-vertical>.btn-group+.btn-group{margin-top:-1px;margin-left:0}.btn-group-vertical>.btn:not(:first-child):not(:last-child){border-radius:0}.btn-group-vertical>.btn:first-child:not(:last-child){border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn:last-child:not(:first-child){border-top-left-radius:0;border-top-right-radius:0;border-bottom-left-radius:4px}.btn-group-vertical>.btn-group:not(:first-child):not(:last-child)>.btn{border-radius:0}.btn-group-vertical>.btn-group:first-child:not(:last-child)>.btn:last-child,.btn-group-vertical>.btn-group:first-child:not(:last-child)>.dropdown-toggle{border-bottom-right-radius:0;border-bottom-left-radius:0}.btn-group-vertical>.btn-group:last-child:not(:first-child)>.btn:first-child{border-top-left-radius:0;border-top-right-radius:0}.btn-group-justified{display:table;width:100%;table-layout:fixed;border-collapse:separate}.btn-group-justified>.btn,.btn-group-justified>.btn-group{display:table-cell;float:none;width:1%}.btn-group-justified>.btn-group .btn{width:100%}.btn-group-justified>.btn-group .dropdown-menu{left:auto}[data-toggle=buttons]>.btn input[type=checkbox],[data-toggle=buttons]>.btn input[type=radio],[data-toggle=buttons]>.btn-group>.btn input[type=checkbox],[data-toggle=buttons]>.btn-group>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}.input-group{position:relative;display:table;border-collapse:separate}.input-group[class*=col-]{float:none;padding-right:0;padding-left:0}.input-group .form-control{position:relative;z-index:2;float:left;width:100%;margin-bottom:0}.input-group-lg>.form-control,.input-group-lg>.input-group-addon,.input-group-lg>.input-group-btn>.btn{height:46px;padding:10px 16px;font-size:18px;line-height:1.3333333;border-radius:6px}select.input-group-lg>.form-control,select.input-group-lg>.input-group-addon,select.input-group-lg>.input-group-btn>.btn{height:46px;line-height:46px}select[multiple].input-group-lg>.form-control,select[multiple].input-group-lg>.input-group-addon,select[multiple].input-group-lg>.input-group-btn>.btn,textarea.input-group-lg>.form-control,textarea.input-group-lg>.input-group-addon,textarea.input-group-lg>.input-group-btn>.btn{height:auto}.input-group-sm>.form-control,.input-group-sm>.input-group-addon,.input-group-sm>.input-group-btn>.btn{height:30px;padding:5px 10px;font-size:12px;line-height:1.5;border-radius:3px}select.input-group-sm>.form-control,select.input-group-sm>.input-group-addon,select.input-group-sm>.input-group-btn>.btn{height:30px;line-height:30px}select[multiple].input-group-sm>.form-control,select[multiple].input-group-sm>.input-group-addon,select[multiple].input-group-sm>.input-group-btn>.btn,textarea.input-group-sm>.form-control,textarea.input-group-sm>.input-group-addon,textarea.input-group-sm>.input-group-btn>.btn{height:auto}.input-group .form-control,.input-group-addon,.input-group-btn{display:table-cell}.input-group .form-control:not(:first-child):not(:last-child),.input-group-addon:not(:first-child):not(:last-child),.input-group-btn:not(:first-child):not(:last-child){border-radius:0}.input-group-addon,.input-group-btn{width:1%;white-space:nowrap;vertical-align:middle}.input-group-addon{padding:6px 12px;font-size:14px;font-weight:400;line-height:1;color:#555;text-align:center;background-color:#eee;border:1px solid #ccc;border-radius:4px}.input-group-addon.input-sm{padding:5px 10px;font-size:12px;border-radius:3px}.input-group-addon.input-lg{padding:10px 16px;font-size:18px;border-radius:6px}.input-group-addon input[type=checkbox],.input-group-addon input[type=radio]{margin-top:0}.input-group .form-control:first-child,.input-group-addon:first-child,.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group>.btn,.input-group-btn:first-child>.dropdown-toggle,.input-group-btn:last-child>.btn-group:not(:last-child)>.btn,.input-group-btn:last-child>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.input-group-addon:first-child{border-right:0}.input-group .form-control:last-child,.input-group-addon:last-child,.input-group-btn:first-child>.btn-group:not(:first-child)>.btn,.input-group-btn:first-child>.btn:not(:first-child),.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group>.btn,.input-group-btn:last-child>.dropdown-toggle{border-top-left-radius:0;border-bottom-left-radius:0}.input-group-addon:last-child{border-left:0}.input-group-btn{position:relative;font-size:0;white-space:nowrap}.input-group-btn>.btn{position:relative}.input-group-btn>.btn+.btn{margin-left:-1px}.input-group-btn>.btn:active,.input-group-btn>.btn:focus,.input-group-btn>.btn:hover{z-index:2}.input-group-btn:first-child>.btn,.input-group-btn:first-child>.btn-group{margin-right:-1px}.input-group-btn:last-child>.btn,.input-group-btn:last-child>.btn-group{z-index:2;margin-left:-1px}.nav{padding-left:0;margin-bottom:0;list-style:none}.nav>li{position:relative;display:block}.nav>li>a{position:relative;display:block;padding:10px 15px}.nav>li>a:focus,.nav>li>a:hover{text-decoration:none;background-color:#eee}.nav>li.disabled>a{color:#777}.nav>li.disabled>a:focus,.nav>li.disabled>a:hover{color:#777;text-decoration:none;cursor:not-allowed;background-color:transparent}.nav .open>a,.nav .open>a:focus,.nav .open>a:hover{background-color:#eee;border-color:#337ab7}.nav .nav-divider{height:1px;margin:9px 0;overflow:hidden;background-color:#e5e5e5}.nav>li>a>img{max-width:none}.nav-tabs{border-bottom:1px solid #ddd}.nav-tabs>li{float:left;margin-bottom:-1px}.nav-tabs>li>a{margin-right:2px;line-height:1.42857143;border:1px solid transparent;border-radius:4px 4px 0 0}.nav-tabs>li>a:hover{border-color:#eee #eee #ddd}.nav-tabs>li.active>a,.nav-tabs>li.active>a:focus,.nav-tabs>li.active>a:hover{color:#555;cursor:default;background-color:#fff;border:1px solid #ddd;border-bottom-color:transparent}.nav-tabs.nav-justified{width:100%;border-bottom:0}.nav-tabs.nav-justified>li{float:none}.nav-tabs.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-tabs.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-tabs.nav-justified>li{display:table-cell;width:1%}.nav-tabs.nav-justified>li>a{margin-bottom:0}}.nav-tabs.nav-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs.nav-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs.nav-justified>.active>a,.nav-tabs.nav-justified>.active>a:focus,.nav-tabs.nav-justified>.active>a:hover{border-bottom-color:#fff}}.nav-pills>li{float:left}.nav-pills>li>a{border-radius:4px}.nav-pills>li+li{margin-left:2px}.nav-pills>li.active>a,.nav-pills>li.active>a:focus,.nav-pills>li.active>a:hover{color:#fff;background-color:#337ab7}.nav-stacked>li{float:none}.nav-stacked>li+li{margin-top:2px;margin-left:0}.nav-justified{width:100%}.nav-justified>li{float:none}.nav-justified>li>a{margin-bottom:5px;text-align:center}.nav-justified>.dropdown .dropdown-menu{top:auto;left:auto}@media (min-width:768px){.nav-justified>li{display:table-cell;width:1%}.nav-justified>li>a{margin-bottom:0}}.nav-tabs-justified{border-bottom:0}.nav-tabs-justified>li>a{margin-right:0;border-radius:4px}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border:1px solid #ddd}@media (min-width:768px){.nav-tabs-justified>li>a{border-bottom:1px solid #ddd;border-radius:4px 4px 0 0}.nav-tabs-justified>.active>a,.nav-tabs-justified>.active>a:focus,.nav-tabs-justified>.active>a:hover{border-bottom-color:#fff}}.tab-content>.tab-pane{display:none}.tab-content>.active{display:block}.nav-tabs .dropdown-menu{margin-top:-1px;border-top-left-radius:0;border-top-right-radius:0}.navbar{position:relative;min-height:50px;margin-bottom:20px;border:1px solid transparent}@media (min-width:768px){.navbar{border-radius:4px}}@media (min-width:768px){.navbar-header{float:left}}.navbar-collapse{padding-right:15px;padding-left:15px;overflow-x:visible;-webkit-overflow-scrolling:touch;border-top:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1)}.navbar-collapse.in{overflow-y:auto}@media (min-width:768px){.navbar-collapse{width:auto;border-top:0;-webkit-box-shadow:none;box-shadow:none}.navbar-collapse.collapse{display:block!important;height:auto!important;padding-bottom:0;overflow:visible!important}.navbar-collapse.in{overflow-y:visible}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse,.navbar-static-top .navbar-collapse{padding-right:0;padding-left:0}}.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:340px}@media (max-device-width:480px) and (orientation:landscape){.navbar-fixed-bottom .navbar-collapse,.navbar-fixed-top .navbar-collapse{max-height:200px}}.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:-15px;margin-left:-15px}@media (min-width:768px){.container-fluid>.navbar-collapse,.container-fluid>.navbar-header,.container>.navbar-collapse,.container>.navbar-header{margin-right:0;margin-left:0}}.navbar-static-top{z-index:1000;border-width:0 0 1px}@media (min-width:768px){.navbar-static-top{border-radius:0}}.navbar-fixed-bottom,.navbar-fixed-top{position:fixed;right:0;left:0;z-index:1030}@media (min-width:768px){.navbar-fixed-bottom,.navbar-fixed-top{border-radius:0}}.navbar-fixed-top{top:0;border-width:0 0 1px}.navbar-fixed-bottom{bottom:0;margin-bottom:0;border-width:1px 0 0}.navbar-brand{float:left;height:50px;padding:15px 15px;font-size:18px;line-height:20px}.navbar-brand:focus,.navbar-brand:hover{text-decoration:none}.navbar-brand>img{display:block}@media (min-width:768px){.navbar>.container .navbar-brand,.navbar>.container-fluid .navbar-brand{margin-left:-15px}}.navbar-toggle{position:relative;float:right;padding:9px 10px;margin-top:8px;margin-right:15px;margin-bottom:8px;background-color:transparent;background-image:none;border:1px solid transparent;border-radius:4px}.navbar-toggle:focus{outline:0}.navbar-toggle .icon-bar{display:block;width:22px;height:2px;border-radius:1px}.navbar-toggle .icon-bar+.icon-bar{margin-top:4px}@media (min-width:768px){.navbar-toggle{display:none}}.navbar-nav{margin:7.5px -15px}.navbar-nav>li>a{padding-top:10px;padding-bottom:10px;line-height:20px}@media (max-width:767px){.navbar-nav .open .dropdown-menu{position:static;float:none;width:auto;margin-top:0;background-color:transparent;border:0;-webkit-box-shadow:none;box-shadow:none}.navbar-nav .open .dropdown-menu .dropdown-header,.navbar-nav .open .dropdown-menu>li>a{padding:5px 15px 5px 25px}.navbar-nav .open .dropdown-menu>li>a{line-height:20px}.navbar-nav .open .dropdown-menu>li>a:focus,.navbar-nav .open .dropdown-menu>li>a:hover{background-image:none}}@media (min-width:768px){.navbar-nav{float:left;margin:0}.navbar-nav>li{float:left}.navbar-nav>li>a{padding-top:15px;padding-bottom:15px}}.navbar-form{padding:10px 15px;margin-top:8px;margin-right:-15px;margin-bottom:8px;margin-left:-15px;border-top:1px solid transparent;border-bottom:1px solid transparent;-webkit-box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1);box-shadow:inset 0 1px 0 rgba(255,255,255,.1),0 1px 0 rgba(255,255,255,.1)}@media (min-width:768px){.navbar-form .form-group{display:inline-block;margin-bottom:0;vertical-align:middle}.navbar-form .form-control{display:inline-block;width:auto;vertical-align:middle}.navbar-form .form-control-static{display:inline-block}.navbar-form .input-group{display:inline-table;vertical-align:middle}.navbar-form .input-group .form-control,.navbar-form .input-group .input-group-addon,.navbar-form .input-group .input-group-btn{width:auto}.navbar-form .input-group>.form-control{width:100%}.navbar-form .control-label{margin-bottom:0;vertical-align:middle}.navbar-form .checkbox,.navbar-form .radio{display:inline-block;margin-top:0;margin-bottom:0;vertical-align:middle}.navbar-form .checkbox label,.navbar-form .radio label{padding-left:0}.navbar-form .checkbox input[type=checkbox],.navbar-form .radio input[type=radio]{position:relative;margin-left:0}.navbar-form .has-feedback .form-control-feedback{top:0}}@media (max-width:767px){.navbar-form .form-group{margin-bottom:5px}.navbar-form .form-group:last-child{margin-bottom:0}}@media (min-width:768px){.navbar-form{width:auto;padding-top:0;padding-bottom:0;margin-right:0;margin-left:0;border:0;-webkit-box-shadow:none;box-shadow:none}}.navbar-nav>li>.dropdown-menu{margin-top:0;border-top-left-radius:0;border-top-right-radius:0}.navbar-fixed-bottom .navbar-nav>li>.dropdown-menu{margin-bottom:0;border-top-left-radius:4px;border-top-right-radius:4px;border-bottom-right-radius:0;border-bottom-left-radius:0}.navbar-btn{margin-top:8px;margin-bottom:8px}.navbar-btn.btn-sm{margin-top:10px;margin-bottom:10px}.navbar-btn.btn-xs{margin-top:14px;margin-bottom:14px}.navbar-text{margin-top:15px;margin-bottom:15px}@media (min-width:768px){.navbar-text{float:left;margin-right:15px;margin-left:15px}}@media (min-width:768px){.navbar-left{float:left!important}.navbar-right{float:right!important;margin-right:-15px}.navbar-right~.navbar-right{margin-right:0}}.navbar-default{background-color:#f8f8f8;border-color:#e7e7e7}.navbar-default .navbar-brand{color:#777}.navbar-default .navbar-brand:focus,.navbar-default .navbar-brand:hover{color:#5e5e5e;background-color:transparent}.navbar-default .navbar-text{color:#777}.navbar-default .navbar-nav>li>a{color:#777}.navbar-default .navbar-nav>li>a:focus,.navbar-default .navbar-nav>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav>.active>a,.navbar-default .navbar-nav>.active>a:focus,.navbar-default .navbar-nav>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav>.disabled>a,.navbar-default .navbar-nav>.disabled>a:focus,.navbar-default .navbar-nav>.disabled>a:hover{color:#ccc;background-color:transparent}.navbar-default .navbar-toggle{border-color:#ddd}.navbar-default .navbar-toggle:focus,.navbar-default .navbar-toggle:hover{background-color:#ddd}.navbar-default .navbar-toggle .icon-bar{background-color:#888}.navbar-default .navbar-collapse,.navbar-default .navbar-form{border-color:#e7e7e7}.navbar-default .navbar-nav>.open>a,.navbar-default .navbar-nav>.open>a:focus,.navbar-default .navbar-nav>.open>a:hover{color:#555;background-color:#e7e7e7}@media (max-width:767px){.navbar-default .navbar-nav .open .dropdown-menu>li>a{color:#777}.navbar-default .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>li>a:hover{color:#333;background-color:transparent}.navbar-default .navbar-nav .open .dropdown-menu>.active>a,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.active>a:hover{color:#555;background-color:#e7e7e7}.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-default .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#ccc;background-color:transparent}}.navbar-default .navbar-link{color:#777}.navbar-default .navbar-link:hover{color:#333}.navbar-default .btn-link{color:#777}.navbar-default .btn-link:focus,.navbar-default .btn-link:hover{color:#333}.navbar-default .btn-link[disabled]:focus,.navbar-default .btn-link[disabled]:hover,fieldset[disabled] .navbar-default .btn-link:focus,fieldset[disabled] .navbar-default .btn-link:hover{color:#ccc}.navbar-inverse{background-color:#222;border-color:#080808}.navbar-inverse .navbar-brand{color:#9d9d9d}.navbar-inverse .navbar-brand:focus,.navbar-inverse .navbar-brand:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-text{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav>li>a:focus,.navbar-inverse .navbar-nav>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav>.active>a,.navbar-inverse .navbar-nav>.active>a:focus,.navbar-inverse .navbar-nav>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav>.disabled>a,.navbar-inverse .navbar-nav>.disabled>a:focus,.navbar-inverse .navbar-nav>.disabled>a:hover{color:#444;background-color:transparent}.navbar-inverse .navbar-toggle{border-color:#333}.navbar-inverse .navbar-toggle:focus,.navbar-inverse .navbar-toggle:hover{background-color:#333}.navbar-inverse .navbar-toggle .icon-bar{background-color:#fff}.navbar-inverse .navbar-collapse,.navbar-inverse .navbar-form{border-color:#101010}.navbar-inverse .navbar-nav>.open>a,.navbar-inverse .navbar-nav>.open>a:focus,.navbar-inverse .navbar-nav>.open>a:hover{color:#fff;background-color:#080808}@media (max-width:767px){.navbar-inverse .navbar-nav .open .dropdown-menu>.dropdown-header{border-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu .divider{background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a{color:#9d9d9d}.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>li>a:hover{color:#fff;background-color:transparent}.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.active>a:hover{color:#fff;background-color:#080808}.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:focus,.navbar-inverse .navbar-nav .open .dropdown-menu>.disabled>a:hover{color:#444;background-color:transparent}}.navbar-inverse .navbar-link{color:#9d9d9d}.navbar-inverse .navbar-link:hover{color:#fff}.navbar-inverse .btn-link{color:#9d9d9d}.navbar-inverse .btn-link:focus,.navbar-inverse .btn-link:hover{color:#fff}.navbar-inverse .btn-link[disabled]:focus,.navbar-inverse .btn-link[disabled]:hover,fieldset[disabled] .navbar-inverse .btn-link:focus,fieldset[disabled] .navbar-inverse .btn-link:hover{color:#444}.breadcrumb{padding:8px 15px;margin-bottom:20px;list-style:none;background-color:#f5f5f5;border-radius:4px}.breadcrumb>li{display:inline-block}.breadcrumb>li+li:before{padding:0 5px;color:#ccc;content:"/\00a0"}.breadcrumb>.active{color:#777}.pagination{display:inline-block;padding-left:0;margin:20px 0;border-radius:4px}.pagination>li{display:inline}.pagination>li>a,.pagination>li>span{position:relative;float:left;padding:6px 12px;margin-left:-1px;line-height:1.42857143;color:#337ab7;text-decoration:none;background-color:#fff;border:1px solid #ddd}.pagination>li:first-child>a,.pagination>li:first-child>span{margin-left:0;border-top-left-radius:4px;border-bottom-left-radius:4px}.pagination>li:last-child>a,.pagination>li:last-child>span{border-top-right-radius:4px;border-bottom-right-radius:4px}.pagination>li>a:focus,.pagination>li>a:hover,.pagination>li>span:focus,.pagination>li>span:hover{z-index:3;color:#23527c;background-color:#eee;border-color:#ddd}.pagination>.active>a,.pagination>.active>a:focus,.pagination>.active>a:hover,.pagination>.active>span,.pagination>.active>span:focus,.pagination>.active>span:hover{z-index:2;color:#fff;cursor:default;background-color:#337ab7;border-color:#337ab7}.pagination>.disabled>a,.pagination>.disabled>a:focus,.pagination>.disabled>a:hover,.pagination>.disabled>span,.pagination>.disabled>span:focus,.pagination>.disabled>span:hover{color:#777;cursor:not-allowed;background-color:#fff;border-color:#ddd}.pagination-lg>li>a,.pagination-lg>li>span{padding:10px 16px;font-size:18px;line-height:1.3333333}.pagination-lg>li:first-child>a,.pagination-lg>li:first-child>span{border-top-left-radius:6px;border-bottom-left-radius:6px}.pagination-lg>li:last-child>a,.pagination-lg>li:last-child>span{border-top-right-radius:6px;border-bottom-right-radius:6px}.pagination-sm>li>a,.pagination-sm>li>span{padding:5px 10px;font-size:12px;line-height:1.5}.pagination-sm>li:first-child>a,.pagination-sm>li:first-child>span{border-top-left-radius:3px;border-bottom-left-radius:3px}.pagination-sm>li:last-child>a,.pagination-sm>li:last-child>span{border-top-right-radius:3px;border-bottom-right-radius:3px}.pager{padding-left:0;margin:20px 0;text-align:center;list-style:none}.pager li{display:inline}.pager li>a,.pager li>span{display:inline-block;padding:5px 14px;background-color:#fff;border:1px solid #ddd;border-radius:15px}.pager li>a:focus,.pager li>a:hover{text-decoration:none;background-color:#eee}.pager .next>a,.pager .next>span{float:right}.pager .previous>a,.pager .previous>span{float:left}.pager .disabled>a,.pager .disabled>a:focus,.pager .disabled>a:hover,.pager .disabled>span{color:#777;cursor:not-allowed;background-color:#fff}.label{display:inline;padding:.2em .6em .3em;font-size:75%;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25em}a.label:focus,a.label:hover{color:#fff;text-decoration:none;cursor:pointer}.label:empty{display:none}.btn .label{position:relative;top:-1px}.label-default{background-color:#777}.label-default[href]:focus,.label-default[href]:hover{background-color:#5e5e5e}.label-primary{background-color:#337ab7}.label-primary[href]:focus,.label-primary[href]:hover{background-color:#286090}.label-success{background-color:#5cb85c}.label-success[href]:focus,.label-success[href]:hover{background-color:#449d44}.label-info{background-color:#5bc0de}.label-info[href]:focus,.label-info[href]:hover{background-color:#31b0d5}.label-warning{background-color:#f0ad4e}.label-warning[href]:focus,.label-warning[href]:hover{background-color:#ec971f}.label-danger{background-color:#d9534f}.label-danger[href]:focus,.label-danger[href]:hover{background-color:#c9302c}.badge{display:inline-block;min-width:10px;padding:3px 7px;font-size:12px;font-weight:700;line-height:1;color:#fff;text-align:center;white-space:nowrap;vertical-align:middle;background-color:#777;border-radius:10px}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.btn-group-xs>.btn .badge,.btn-xs .badge{top:0;padding:1px 5px}a.badge:focus,a.badge:hover{color:#fff;text-decoration:none;cursor:pointer}.list-group-item.active>.badge,.nav-pills>.active>a>.badge{color:#337ab7;background-color:#fff}.list-group-item>.badge{float:right}.list-group-item>.badge+.badge{margin-right:5px}.nav-pills>li>a>.badge{margin-left:3px}.jumbotron{padding-top:30px;padding-bottom:30px;margin-bottom:30px;color:inherit;background-color:#eee}.jumbotron .h1,.jumbotron h1{color:inherit}.jumbotron p{margin-bottom:15px;font-size:21px;font-weight:200}.jumbotron>hr{border-top-color:#d5d5d5}.container .jumbotron,.container-fluid .jumbotron{border-radius:6px}.jumbotron .container{max-width:100%}@media screen and (min-width:768px){.jumbotron{padding-top:48px;padding-bottom:48px}.container .jumbotron,.container-fluid .jumbotron{padding-right:60px;padding-left:60px}.jumbotron .h1,.jumbotron h1{font-size:63px}}.thumbnail{display:block;padding:4px;margin-bottom:20px;line-height:1.42857143;background-color:#fff;border:1px solid #ddd;border-radius:4px;-webkit-transition:border .2s ease-in-out;-o-transition:border .2s ease-in-out;transition:border .2s ease-in-out}.thumbnail a>img,.thumbnail>img{margin-right:auto;margin-left:auto}a.thumbnail.active,a.thumbnail:focus,a.thumbnail:hover{border-color:#337ab7}.thumbnail .caption{padding:9px;color:#333}.alert{padding:15px;margin-bottom:20px;border:1px solid transparent;border-radius:4px}.alert h4{margin-top:0;color:inherit}.alert .alert-link{font-weight:700}.alert>p,.alert>ul{margin-bottom:0}.alert>p+p{margin-top:5px}.alert-dismissable,.alert-dismissible{padding-right:35px}.alert-dismissable .close,.alert-dismissible .close{position:relative;top:-2px;right:-21px;color:inherit}.alert-success{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.alert-success hr{border-top-color:#c9e2b3}.alert-success .alert-link{color:#2b542c}.alert-info{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.alert-info hr{border-top-color:#a6e1ec}.alert-info .alert-link{color:#245269}.alert-warning{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.alert-warning hr{border-top-color:#f7e1b5}.alert-warning .alert-link{color:#66512c}.alert-danger{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.alert-danger hr{border-top-color:#e4b9c0}.alert-danger .alert-link{color:#843534}@-webkit-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@-o-keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}@keyframes progress-bar-stripes{from{background-position:40px 0}to{background-position:0 0}}.progress{height:20px;margin-bottom:20px;overflow:hidden;background-color:#f5f5f5;border-radius:4px;-webkit-box-shadow:inset 0 1px 2px rgba(0,0,0,.1);box-shadow:inset 0 1px 2px rgba(0,0,0,.1)}.progress-bar{float:left;width:0;height:100%;font-size:12px;line-height:20px;color:#fff;text-align:center;background-color:#337ab7;-webkit-box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);box-shadow:inset 0 -1px 0 rgba(0,0,0,.15);-webkit-transition:width .6s ease;-o-transition:width .6s ease;transition:width .6s ease}.progress-bar-striped,.progress-striped .progress-bar{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);-webkit-background-size:40px 40px;background-size:40px 40px}.progress-bar.active,.progress.active .progress-bar{-webkit-animation:progress-bar-stripes 2s linear infinite;-o-animation:progress-bar-stripes 2s linear infinite;animation:progress-bar-stripes 2s linear infinite}.progress-bar-success{background-color:#5cb85c}.progress-striped .progress-bar-success{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-info{background-color:#5bc0de}.progress-striped .progress-bar-info{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-warning{background-color:#f0ad4e}.progress-striped .progress-bar-warning{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.progress-bar-danger{background-color:#d9534f}.progress-striped .progress-bar-danger{background-image:-webkit-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:-o-linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent);background-image:linear-gradient(45deg,rgba(255,255,255,.15) 25%,transparent 25%,transparent 50%,rgba(255,255,255,.15) 50%,rgba(255,255,255,.15) 75%,transparent 75%,transparent)}.media{margin-top:15px}.media:first-child{margin-top:0}.media,.media-body{overflow:hidden;zoom:1}.media-body{width:10000px}.media-object{display:block}.media-object.img-thumbnail{max-width:none}.media-right,.media>.pull-right{padding-left:10px}.media-left,.media>.pull-left{padding-right:10px}.media-body,.media-left,.media-right{display:table-cell;vertical-align:top}.media-middle{vertical-align:middle}.media-bottom{vertical-align:bottom}.media-heading{margin-top:0;margin-bottom:5px}.media-list{padding-left:0;list-style:none}.list-group{padding-left:0;margin-bottom:20px}.list-group-item{position:relative;display:block;padding:10px 15px;margin-bottom:-1px;background-color:#fff;border:1px solid #ddd}.list-group-item:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:4px;border-bottom-left-radius:4px}a.list-group-item,button.list-group-item{color:#555}a.list-group-item .list-group-item-heading,button.list-group-item .list-group-item-heading{color:#333}a.list-group-item:focus,a.list-group-item:hover,button.list-group-item:focus,button.list-group-item:hover{color:#555;text-decoration:none;background-color:#f5f5f5}button.list-group-item{width:100%;text-align:left}.list-group-item.disabled,.list-group-item.disabled:focus,.list-group-item.disabled:hover{color:#777;cursor:not-allowed;background-color:#eee}.list-group-item.disabled .list-group-item-heading,.list-group-item.disabled:focus .list-group-item-heading,.list-group-item.disabled:hover .list-group-item-heading{color:inherit}.list-group-item.disabled .list-group-item-text,.list-group-item.disabled:focus .list-group-item-text,.list-group-item.disabled:hover .list-group-item-text{color:#777}.list-group-item.active,.list-group-item.active:focus,.list-group-item.active:hover{z-index:2;color:#fff;background-color:#337ab7;border-color:#337ab7}.list-group-item.active .list-group-item-heading,.list-group-item.active .list-group-item-heading>.small,.list-group-item.active .list-group-item-heading>small,.list-group-item.active:focus .list-group-item-heading,.list-group-item.active:focus .list-group-item-heading>.small,.list-group-item.active:focus .list-group-item-heading>small,.list-group-item.active:hover .list-group-item-heading,.list-group-item.active:hover .list-group-item-heading>.small,.list-group-item.active:hover .list-group-item-heading>small{color:inherit}.list-group-item.active .list-group-item-text,.list-group-item.active:focus .list-group-item-text,.list-group-item.active:hover .list-group-item-text{color:#c7ddef}.list-group-item-success{color:#3c763d;background-color:#dff0d8}a.list-group-item-success,button.list-group-item-success{color:#3c763d}a.list-group-item-success .list-group-item-heading,button.list-group-item-success .list-group-item-heading{color:inherit}a.list-group-item-success:focus,a.list-group-item-success:hover,button.list-group-item-success:focus,button.list-group-item-success:hover{color:#3c763d;background-color:#d0e9c6}a.list-group-item-success.active,a.list-group-item-success.active:focus,a.list-group-item-success.active:hover,button.list-group-item-success.active,button.list-group-item-success.active:focus,button.list-group-item-success.active:hover{color:#fff;background-color:#3c763d;border-color:#3c763d}.list-group-item-info{color:#31708f;background-color:#d9edf7}a.list-group-item-info,button.list-group-item-info{color:#31708f}a.list-group-item-info .list-group-item-heading,button.list-group-item-info .list-group-item-heading{color:inherit}a.list-group-item-info:focus,a.list-group-item-info:hover,button.list-group-item-info:focus,button.list-group-item-info:hover{color:#31708f;background-color:#c4e3f3}a.list-group-item-info.active,a.list-group-item-info.active:focus,a.list-group-item-info.active:hover,button.list-group-item-info.active,button.list-group-item-info.active:focus,button.list-group-item-info.active:hover{color:#fff;background-color:#31708f;border-color:#31708f}.list-group-item-warning{color:#8a6d3b;background-color:#fcf8e3}a.list-group-item-warning,button.list-group-item-warning{color:#8a6d3b}a.list-group-item-warning .list-group-item-heading,button.list-group-item-warning .list-group-item-heading{color:inherit}a.list-group-item-warning:focus,a.list-group-item-warning:hover,button.list-group-item-warning:focus,button.list-group-item-warning:hover{color:#8a6d3b;background-color:#faf2cc}a.list-group-item-warning.active,a.list-group-item-warning.active:focus,a.list-group-item-warning.active:hover,button.list-group-item-warning.active,button.list-group-item-warning.active:focus,button.list-group-item-warning.active:hover{color:#fff;background-color:#8a6d3b;border-color:#8a6d3b}.list-group-item-danger{color:#a94442;background-color:#f2dede}a.list-group-item-danger,button.list-group-item-danger{color:#a94442}a.list-group-item-danger .list-group-item-heading,button.list-group-item-danger .list-group-item-heading{color:inherit}a.list-group-item-danger:focus,a.list-group-item-danger:hover,button.list-group-item-danger:focus,button.list-group-item-danger:hover{color:#a94442;background-color:#ebcccc}a.list-group-item-danger.active,a.list-group-item-danger.active:focus,a.list-group-item-danger.active:hover,button.list-group-item-danger.active,button.list-group-item-danger.active:focus,button.list-group-item-danger.active:hover{color:#fff;background-color:#a94442;border-color:#a94442}.list-group-item-heading{margin-top:0;margin-bottom:5px}.list-group-item-text{margin-bottom:0;line-height:1.3}.panel{margin-bottom:20px;background-color:#fff;border:1px solid transparent;border-radius:4px;-webkit-box-shadow:0 1px 1px rgba(0,0,0,.05);box-shadow:0 1px 1px rgba(0,0,0,.05)}.panel-body{padding:15px}.panel-heading{padding:10px 15px;border-bottom:1px solid transparent;border-top-left-radius:3px;border-top-right-radius:3px}.panel-heading>.dropdown .dropdown-toggle{color:inherit}.panel-title{margin-top:0;margin-bottom:0;font-size:16px;color:inherit}.panel-title>.small,.panel-title>.small>a,.panel-title>a,.panel-title>small,.panel-title>small>a{color:inherit}.panel-footer{padding:10px 15px;background-color:#f5f5f5;border-top:1px solid #ddd;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.list-group,.panel>.panel-collapse>.list-group{margin-bottom:0}.panel>.list-group .list-group-item,.panel>.panel-collapse>.list-group .list-group-item{border-width:1px 0;border-radius:0}.panel>.list-group:first-child .list-group-item:first-child,.panel>.panel-collapse>.list-group:first-child .list-group-item:first-child{border-top:0;border-top-left-radius:3px;border-top-right-radius:3px}.panel>.list-group:last-child .list-group-item:last-child,.panel>.panel-collapse>.list-group:last-child .list-group-item:last-child{border-bottom:0;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.panel-heading+.panel-collapse>.list-group .list-group-item:first-child{border-top-left-radius:0;border-top-right-radius:0}.panel-heading+.list-group .list-group-item:first-child{border-top-width:0}.list-group+.panel-footer{border-top-width:0}.panel>.panel-collapse>.table,.panel>.table,.panel>.table-responsive>.table{margin-bottom:0}.panel>.panel-collapse>.table caption,.panel>.table caption,.panel>.table-responsive>.table caption{padding-right:15px;padding-left:15px}.panel>.table-responsive:first-child>.table:first-child,.panel>.table:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child,.panel>.table:first-child>thead:first-child>tr:first-child{border-top-left-radius:3px;border-top-right-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:first-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:first-child,.panel>.table:first-child>thead:first-child>tr:first-child td:first-child,.panel>.table:first-child>thead:first-child>tr:first-child th:first-child{border-top-left-radius:3px}.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table-responsive:first-child>.table:first-child>thead:first-child>tr:first-child th:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child td:last-child,.panel>.table:first-child>tbody:first-child>tr:first-child th:last-child,.panel>.table:first-child>thead:first-child>tr:first-child td:last-child,.panel>.table:first-child>thead:first-child>tr:first-child th:last-child{border-top-right-radius:3px}.panel>.table-responsive:last-child>.table:last-child,.panel>.table:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:first-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:first-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:first-child{border-bottom-left-radius:3px}.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table-responsive:last-child>.table:last-child>tfoot:last-child>tr:last-child th:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child td:last-child,.panel>.table:last-child>tbody:last-child>tr:last-child th:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child td:last-child,.panel>.table:last-child>tfoot:last-child>tr:last-child th:last-child{border-bottom-right-radius:3px}.panel>.panel-body+.table,.panel>.panel-body+.table-responsive,.panel>.table+.panel-body,.panel>.table-responsive+.panel-body{border-top:1px solid #ddd}.panel>.table>tbody:first-child>tr:first-child td,.panel>.table>tbody:first-child>tr:first-child th{border-top:0}.panel>.table-bordered,.panel>.table-responsive>.table-bordered{border:0}.panel>.table-bordered>tbody>tr>td:first-child,.panel>.table-bordered>tbody>tr>th:first-child,.panel>.table-bordered>tfoot>tr>td:first-child,.panel>.table-bordered>tfoot>tr>th:first-child,.panel>.table-bordered>thead>tr>td:first-child,.panel>.table-bordered>thead>tr>th:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:first-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:first-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:first-child,.panel>.table-responsive>.table-bordered>thead>tr>td:first-child,.panel>.table-responsive>.table-bordered>thead>tr>th:first-child{border-left:0}.panel>.table-bordered>tbody>tr>td:last-child,.panel>.table-bordered>tbody>tr>th:last-child,.panel>.table-bordered>tfoot>tr>td:last-child,.panel>.table-bordered>tfoot>tr>th:last-child,.panel>.table-bordered>thead>tr>td:last-child,.panel>.table-bordered>thead>tr>th:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>td:last-child,.panel>.table-responsive>.table-bordered>tbody>tr>th:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>td:last-child,.panel>.table-responsive>.table-bordered>tfoot>tr>th:last-child,.panel>.table-responsive>.table-bordered>thead>tr>td:last-child,.panel>.table-responsive>.table-bordered>thead>tr>th:last-child{border-right:0}.panel>.table-bordered>tbody>tr:first-child>td,.panel>.table-bordered>tbody>tr:first-child>th,.panel>.table-bordered>thead>tr:first-child>td,.panel>.table-bordered>thead>tr:first-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:first-child>th,.panel>.table-responsive>.table-bordered>thead>tr:first-child>td,.panel>.table-responsive>.table-bordered>thead>tr:first-child>th{border-bottom:0}.panel>.table-bordered>tbody>tr:last-child>td,.panel>.table-bordered>tbody>tr:last-child>th,.panel>.table-bordered>tfoot>tr:last-child>td,.panel>.table-bordered>tfoot>tr:last-child>th,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>td,.panel>.table-responsive>.table-bordered>tbody>tr:last-child>th,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>td,.panel>.table-responsive>.table-bordered>tfoot>tr:last-child>th{border-bottom:0}.panel>.table-responsive{margin-bottom:0;border:0}.panel-group{margin-bottom:20px}.panel-group .panel{margin-bottom:0;border-radius:4px}.panel-group .panel+.panel{margin-top:5px}.panel-group .panel-heading{border-bottom:0}.panel-group .panel-heading+.panel-collapse>.list-group,.panel-group .panel-heading+.panel-collapse>.panel-body{border-top:1px solid #ddd}.panel-group .panel-footer{border-top:0}.panel-group .panel-footer+.panel-collapse .panel-body{border-bottom:1px solid #ddd}.panel-default{border-color:#ddd}.panel-default>.panel-heading{color:#333;background-color:#f5f5f5;border-color:#ddd}.panel-default>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ddd}.panel-default>.panel-heading .badge{color:#f5f5f5;background-color:#333}.panel-default>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ddd}.panel-primary{border-color:#337ab7}.panel-primary>.panel-heading{color:#fff;background-color:#337ab7;border-color:#337ab7}.panel-primary>.panel-heading+.panel-collapse>.panel-body{border-top-color:#337ab7}.panel-primary>.panel-heading .badge{color:#337ab7;background-color:#fff}.panel-primary>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#337ab7}.panel-success{border-color:#d6e9c6}.panel-success>.panel-heading{color:#3c763d;background-color:#dff0d8;border-color:#d6e9c6}.panel-success>.panel-heading+.panel-collapse>.panel-body{border-top-color:#d6e9c6}.panel-success>.panel-heading .badge{color:#dff0d8;background-color:#3c763d}.panel-success>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#d6e9c6}.panel-info{border-color:#bce8f1}.panel-info>.panel-heading{color:#31708f;background-color:#d9edf7;border-color:#bce8f1}.panel-info>.panel-heading+.panel-collapse>.panel-body{border-top-color:#bce8f1}.panel-info>.panel-heading .badge{color:#d9edf7;background-color:#31708f}.panel-info>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#bce8f1}.panel-warning{border-color:#faebcc}.panel-warning>.panel-heading{color:#8a6d3b;background-color:#fcf8e3;border-color:#faebcc}.panel-warning>.panel-heading+.panel-collapse>.panel-body{border-top-color:#faebcc}.panel-warning>.panel-heading .badge{color:#fcf8e3;background-color:#8a6d3b}.panel-warning>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#faebcc}.panel-danger{border-color:#ebccd1}.panel-danger>.panel-heading{color:#a94442;background-color:#f2dede;border-color:#ebccd1}.panel-danger>.panel-heading+.panel-collapse>.panel-body{border-top-color:#ebccd1}.panel-danger>.panel-heading .badge{color:#f2dede;background-color:#a94442}.panel-danger>.panel-footer+.panel-collapse>.panel-body{border-bottom-color:#ebccd1}.embed-responsive{position:relative;display:block;height:0;padding:0;overflow:hidden}.embed-responsive .embed-responsive-item,.embed-responsive embed,.embed-responsive iframe,.embed-responsive object,.embed-responsive video{position:absolute;top:0;bottom:0;left:0;width:100%;height:100%;border:0}.embed-responsive-16by9{padding-bottom:56.25%}.embed-responsive-4by3{padding-bottom:75%}.well{min-height:20px;padding:19px;margin-bottom:20px;background-color:#f5f5f5;border:1px solid #e3e3e3;border-radius:4px;-webkit-box-shadow:inset 0 1px 1px rgba(0,0,0,.05);box-shadow:inset 0 1px 1px rgba(0,0,0,.05)}.well blockquote{border-color:#ddd;border-color:rgba(0,0,0,.15)}.well-lg{padding:24px;border-radius:6px}.well-sm{padding:9px;border-radius:3px}.close{float:right;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;filter:alpha(opacity=20);opacity:.2}.close:focus,.close:hover{color:#000;text-decoration:none;cursor:pointer;filter:alpha(opacity=50);opacity:.5}button.close{-webkit-appearance:none;padding:0;cursor:pointer;background:0 0;border:0}.modal-open{overflow:hidden}.modal{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1050;display:none;overflow:hidden;-webkit-overflow-scrolling:touch;outline:0}.modal.fade .modal-dialog{-webkit-transition:-webkit-transform .3s ease-out;-o-transition:-o-transform .3s ease-out;transition:transform .3s ease-out;-webkit-transform:translate(0,-25%);-ms-transform:translate(0,-25%);-o-transform:translate(0,-25%);transform:translate(0,-25%)}.modal.in .modal-dialog{-webkit-transform:translate(0,0);-ms-transform:translate(0,0);-o-transform:translate(0,0);transform:translate(0,0)}.modal-open .modal{overflow-x:hidden;overflow-y:auto}.modal-dialog{position:relative;width:auto;margin:10px}.modal-content{position:relative;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #999;border:1px solid rgba(0,0,0,.2);border-radius:6px;outline:0;-webkit-box-shadow:0 3px 9px rgba(0,0,0,.5);box-shadow:0 3px 9px rgba(0,0,0,.5)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1040;background-color:#000}.modal-backdrop.fade{filter:alpha(opacity=0);opacity:0}.modal-backdrop.in{filter:alpha(opacity=50);opacity:.5}.modal-header{min-height:16.43px;padding:15px;border-bottom:1px solid #e5e5e5}.modal-header .close{margin-top:-2px}.modal-title{margin:0;line-height:1.42857143}.modal-body{position:relative;padding:15px}.modal-footer{padding:15px;text-align:right;border-top:1px solid #e5e5e5}.modal-footer .btn+.btn{margin-bottom:0;margin-left:5px}.modal-footer .btn-group .btn+.btn{margin-left:-1px}.modal-footer .btn-block+.btn-block{margin-left:0}.modal-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}@media (min-width:768px){.modal-dialog{width:600px;margin:30px auto}.modal-content{-webkit-box-shadow:0 5px 15px rgba(0,0,0,.5);box-shadow:0 5px 15px rgba(0,0,0,.5)}.modal-sm{width:300px}}@media (min-width:992px){.modal-lg{width:900px}}.tooltip{position:absolute;z-index:1070;display:block;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:12px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;filter:alpha(opacity=0);opacity:0;line-break:auto}.tooltip.in{filter:alpha(opacity=90);opacity:.9}.tooltip.top{padding:5px 0;margin-top:-3px}.tooltip.right{padding:0 5px;margin-left:3px}.tooltip.bottom{padding:5px 0;margin-top:3px}.tooltip.left{padding:0 5px;margin-left:-3px}.tooltip-inner{max-width:200px;padding:3px 8px;color:#fff;text-align:center;background-color:#000;border-radius:4px}.tooltip-arrow{position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.tooltip.top .tooltip-arrow{bottom:0;left:50%;margin-left:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-left .tooltip-arrow{right:5px;bottom:0;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.top-right .tooltip-arrow{bottom:0;left:5px;margin-bottom:-5px;border-width:5px 5px 0;border-top-color:#000}.tooltip.right .tooltip-arrow{top:50%;left:0;margin-top:-5px;border-width:5px 5px 5px 0;border-right-color:#000}.tooltip.left .tooltip-arrow{top:50%;right:0;margin-top:-5px;border-width:5px 0 5px 5px;border-left-color:#000}.tooltip.bottom .tooltip-arrow{top:0;left:50%;margin-left:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-left .tooltip-arrow{top:0;right:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.tooltip.bottom-right .tooltip-arrow{top:0;left:5px;margin-top:-5px;border-width:0 5px 5px;border-bottom-color:#000}.popover{position:absolute;top:0;left:0;z-index:1060;display:none;max-width:276px;padding:1px;font-family:"Helvetica Neue",Helvetica,Arial,sans-serif;font-size:14px;font-style:normal;font-weight:400;line-height:1.42857143;text-align:left;text-align:start;text-decoration:none;text-shadow:none;text-transform:none;letter-spacing:normal;word-break:normal;word-spacing:normal;word-wrap:normal;white-space:normal;background-color:#fff;-webkit-background-clip:padding-box;background-clip:padding-box;border:1px solid #ccc;border:1px solid rgba(0,0,0,.2);border-radius:6px;-webkit-box-shadow:0 5px 10px rgba(0,0,0,.2);box-shadow:0 5px 10px rgba(0,0,0,.2);line-break:auto}.popover.top{margin-top:-10px}.popover.right{margin-left:10px}.popover.bottom{margin-top:10px}.popover.left{margin-left:-10px}.popover-title{padding:8px 14px;margin:0;font-size:14px;background-color:#f7f7f7;border-bottom:1px solid #ebebeb;border-radius:5px 5px 0 0}.popover-content{padding:9px 14px}.popover>.arrow,.popover>.arrow:after{position:absolute;display:block;width:0;height:0;border-color:transparent;border-style:solid}.popover>.arrow{border-width:11px}.popover>.arrow:after{content:"";border-width:10px}.popover.top>.arrow{bottom:-11px;left:50%;margin-left:-11px;border-top-color:#999;border-top-color:rgba(0,0,0,.25);border-bottom-width:0}.popover.top>.arrow:after{bottom:1px;margin-left:-10px;content:" ";border-top-color:#fff;border-bottom-width:0}.popover.right>.arrow{top:50%;left:-11px;margin-top:-11px;border-right-color:#999;border-right-color:rgba(0,0,0,.25);border-left-width:0}.popover.right>.arrow:after{bottom:-10px;left:1px;content:" ";border-right-color:#fff;border-left-width:0}.popover.bottom>.arrow{top:-11px;left:50%;margin-left:-11px;border-top-width:0;border-bottom-color:#999;border-bottom-color:rgba(0,0,0,.25)}.popover.bottom>.arrow:after{top:1px;margin-left:-10px;content:" ";border-top-width:0;border-bottom-color:#fff}.popover.left>.arrow{top:50%;right:-11px;margin-top:-11px;border-right-width:0;border-left-color:#999;border-left-color:rgba(0,0,0,.25)}.popover.left>.arrow:after{right:1px;bottom:-10px;content:" ";border-right-width:0;border-left-color:#fff}.carousel{position:relative}.carousel-inner{position:relative;width:100%;overflow:hidden}.carousel-inner>.item{position:relative;display:none;-webkit-transition:.6s ease-in-out left;-o-transition:.6s ease-in-out left;transition:.6s ease-in-out left}.carousel-inner>.item>a>img,.carousel-inner>.item>img{line-height:1}@media all and (transform-3d),(-webkit-transform-3d){.carousel-inner>.item{-webkit-transition:-webkit-transform .6s ease-in-out;-o-transition:-o-transform .6s ease-in-out;transition:transform .6s ease-in-out;-webkit-backface-visibility:hidden;backface-visibility:hidden;-webkit-perspective:1000px;perspective:1000px}.carousel-inner>.item.active.right,.carousel-inner>.item.next{left:0;-webkit-transform:translate3d(100%,0,0);transform:translate3d(100%,0,0)}.carousel-inner>.item.active.left,.carousel-inner>.item.prev{left:0;-webkit-transform:translate3d(-100%,0,0);transform:translate3d(-100%,0,0)}.carousel-inner>.item.active,.carousel-inner>.item.next.left,.carousel-inner>.item.prev.right{left:0;-webkit-transform:translate3d(0,0,0);transform:translate3d(0,0,0)}}.carousel-inner>.active,.carousel-inner>.next,.carousel-inner>.prev{display:block}.carousel-inner>.active{left:0}.carousel-inner>.next,.carousel-inner>.prev{position:absolute;top:0;width:100%}.carousel-inner>.next{left:100%}.carousel-inner>.prev{left:-100%}.carousel-inner>.next.left,.carousel-inner>.prev.right{left:0}.carousel-inner>.active.left{left:-100%}.carousel-inner>.active.right{left:100%}.carousel-control{position:absolute;top:0;bottom:0;left:0;width:15%;font-size:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6);filter:alpha(opacity=50);opacity:.5}.carousel-control.left{background-image:-webkit-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.5)),to(rgba(0,0,0,.0001)));background-image:linear-gradient(to right,rgba(0,0,0,.5) 0,rgba(0,0,0,.0001) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1);background-repeat:repeat-x}.carousel-control.right{right:0;left:auto;background-image:-webkit-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-o-linear-gradient(left,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);background-image:-webkit-gradient(linear,left top,right top,from(rgba(0,0,0,.0001)),to(rgba(0,0,0,.5)));background-image:linear-gradient(to right,rgba(0,0,0,.0001) 0,rgba(0,0,0,.5) 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1);background-repeat:repeat-x}.carousel-control:focus,.carousel-control:hover{color:#fff;text-decoration:none;filter:alpha(opacity=90);outline:0;opacity:.9}.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{position:absolute;top:50%;z-index:5;display:inline-block;margin-top:-10px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{left:50%;margin-left:-10px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{right:50%;margin-right:-10px}.carousel-control .icon-next,.carousel-control .icon-prev{width:20px;height:20px;font-family:serif;line-height:1}.carousel-control .icon-prev:before{content:'\2039'}.carousel-control .icon-next:before{content:'\203a'}.carousel-indicators{position:absolute;bottom:10px;left:50%;z-index:15;width:60%;padding-left:0;margin-left:-30%;text-align:center;list-style:none}.carousel-indicators li{display:inline-block;width:10px;height:10px;margin:1px;text-indent:-999px;cursor:pointer;background-color:#000\9;background-color:rgba(0,0,0,0);border:1px solid #fff;border-radius:10px}.carousel-indicators .active{width:12px;height:12px;margin:0;background-color:#fff}.carousel-caption{position:absolute;right:15%;bottom:20px;left:15%;z-index:10;padding-top:20px;padding-bottom:20px;color:#fff;text-align:center;text-shadow:0 1px 2px rgba(0,0,0,.6)}.carousel-caption .btn{text-shadow:none}@media screen and (min-width:768px){.carousel-control .glyphicon-chevron-left,.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next,.carousel-control .icon-prev{width:30px;height:30px;margin-top:-15px;font-size:30px}.carousel-control .glyphicon-chevron-left,.carousel-control .icon-prev{margin-left:-15px}.carousel-control .glyphicon-chevron-right,.carousel-control .icon-next{margin-right:-15px}.carousel-caption{right:20%;left:20%;padding-bottom:30px}.carousel-indicators{bottom:20px}}.btn-group-vertical>.btn-group:after,.btn-group-vertical>.btn-group:before,.btn-toolbar:after,.btn-toolbar:before,.clearfix:after,.clearfix:before,.container-fluid:after,.container-fluid:before,.container:after,.container:before,.dl-horizontal dd:after,.dl-horizontal dd:before,.form-horizontal .form-group:after,.form-horizontal .form-group:before,.modal-footer:after,.modal-footer:before,.nav:after,.nav:before,.navbar-collapse:after,.navbar-collapse:before,.navbar-header:after,.navbar-header:before,.navbar:after,.navbar:before,.pager:after,.pager:before,.panel-body:after,.panel-body:before,.row:after,.row:before{display:table;content:" "}.btn-group-vertical>.btn-group:after,.btn-toolbar:after,.clearfix:after,.container-fluid:after,.container:after,.dl-horizontal dd:after,.form-horizontal .form-group:after,.modal-footer:after,.nav:after,.navbar-collapse:after,.navbar-header:after,.navbar:after,.pager:after,.panel-body:after,.row:after{clear:both}.center-block{display:block;margin-right:auto;margin-left:auto}.pull-right{float:right!important}.pull-left{float:left!important}.hide{display:none!important}.show{display:block!important}.invisible{visibility:hidden}.text-hide{font:0/0 a;color:transparent;text-shadow:none;background-color:transparent;border:0}.hidden{display:none!important}.affix{position:fixed}@-ms-viewport{width:device-width}.visible-lg,.visible-md,.visible-sm,.visible-xs{display:none!important}.visible-lg-block,.visible-lg-inline,.visible-lg-inline-block,.visible-md-block,.visible-md-inline,.visible-md-inline-block,.visible-sm-block,.visible-sm-inline,.visible-sm-inline-block,.visible-xs-block,.visible-xs-inline,.visible-xs-inline-block{display:none!important}@media (max-width:767px){.visible-xs{display:block!important}table.visible-xs{display:table!important}tr.visible-xs{display:table-row!important}td.visible-xs,th.visible-xs{display:table-cell!important}}@media (max-width:767px){.visible-xs-block{display:block!important}}@media (max-width:767px){.visible-xs-inline{display:inline!important}}@media (max-width:767px){.visible-xs-inline-block{display:inline-block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm{display:block!important}table.visible-sm{display:table!important}tr.visible-sm{display:table-row!important}td.visible-sm,th.visible-sm{display:table-cell!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-block{display:block!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline{display:inline!important}}@media (min-width:768px) and (max-width:991px){.visible-sm-inline-block{display:inline-block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md{display:block!important}table.visible-md{display:table!important}tr.visible-md{display:table-row!important}td.visible-md,th.visible-md{display:table-cell!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-block{display:block!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline{display:inline!important}}@media (min-width:992px) and (max-width:1199px){.visible-md-inline-block{display:inline-block!important}}@media (min-width:1200px){.visible-lg{display:block!important}table.visible-lg{display:table!important}tr.visible-lg{display:table-row!important}td.visible-lg,th.visible-lg{display:table-cell!important}}@media (min-width:1200px){.visible-lg-block{display:block!important}}@media (min-width:1200px){.visible-lg-inline{display:inline!important}}@media (min-width:1200px){.visible-lg-inline-block{display:inline-block!important}}@media (max-width:767px){.hidden-xs{display:none!important}}@media (min-width:768px) and (max-width:991px){.hidden-sm{display:none!important}}@media (min-width:992px) and (max-width:1199px){.hidden-md{display:none!important}}@media (min-width:1200px){.hidden-lg{display:none!important}}.visible-print{display:none!important}@media print{.visible-print{display:block!important}table.visible-print{display:table!important}tr.visible-print{display:table-row!important}td.visible-print,th.visible-print{display:table-cell!important}}.visible-print-block{display:none!important}@media print{.visible-print-block{display:block!important}}.visible-print-inline{display:none!important}@media print{.visible-print-inline{display:inline!important}}.visible-print-inline-block{display:none!important}@media print{.visible-print-inline-block{display:inline-block!important}}@media print{.hidden-print{display:none!important}}
\ No newline at end of file
diff --git a/web/static/js/bootstrap-3.3.1.min.js b/web/static/js/bootstrap-3.3.1.min.js
deleted file mode 100644
index d839865900..0000000000
--- a/web/static/js/bootstrap-3.3.1.min.js
+++ /dev/null
@@ -1,7 +0,0 @@
-/*!
- * Bootstrap v3.3.1 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
- */
-if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.1",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.1",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")&&(c.prop("checked")&&this.$element.hasClass("active")?a=!1:b.find(".active").removeClass("active")),a&&c.prop("checked",!this.$element.hasClass("active")).trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active"));a&&this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=this.sliding=this.interval=this.$active=this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.1",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c="prev"==a?-1:1,d=this.getItemIndex(b),e=(d+c)%this.$items.length;return this.$items.eq(e)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i="next"==b?"first":"last",j=this;if(!f.length){if(!this.options.wrap)return;f=this.$element.find(".item")[i]()}if(f.hasClass("active"))return this.sliding=!1;var k=f[0],l=a.Event("slide.bs.carousel",{relatedTarget:k,direction:h});if(this.$element.trigger(l),!l.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var m=a(this.$indicators.children()[this.getItemIndex(f)]);m&&m.addClass("active")}var n=a.Event("slid.bs.carousel",{relatedTarget:k,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),j.sliding=!1,setTimeout(function(){j.$element.trigger(n)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(n)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&"show"==b&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a(this.options.trigger).filter('[href="#'+b.id+'"], [data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.1",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0,trigger:'[data-toggle="collapse"]'},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.find("> .panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":a.extend({},e.data(),{trigger:this});c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){b&&3===b.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=c(d),f={relatedTarget:this};e.hasClass("open")&&(e.trigger(b=a.Event("hide.bs.dropdown",f)),b.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f)))}))}function c(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.1",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=c(e),g=f.hasClass("open");if(b(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a('').insertAfter(a(this)).on("click",b);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(b){if(/(38|40|27|32)/.test(b.which)&&!/input|textarea/i.test(b.target.tagName)){var d=a(this);if(b.preventDefault(),b.stopPropagation(),!d.is(".disabled, :disabled")){var e=c(d),g=e.hasClass("open");if(!g&&27!=b.which||g&&27==b.which)return 27==b.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.divider):visible a",i=e.find('[role="menu"]'+h+', [role="listbox"]'+h);if(i.length){var j=i.index(b.target);38==b.which&&j>0&&j--,40==b.which&&j').prependTo(this.$element).on("click.dismiss.bs.modal",a.proxy(function(a){a.target===a.currentTarget&&("static"==this.options.backdrop?this.$element[0].focus.call(this.$element[0]):this.hide.call(this))},this)),f&&this.$backdrop[0].offsetWidth,this.$backdrop.addClass("in"),!b)return;f?this.$backdrop.one("bsTransitionEnd",b).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):b()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var g=function(){d.removeBackdrop(),b&&b()};a.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",g).emulateTransitionEnd(c.BACKDROP_TRANSITION_DURATION):g()}else b&&b()},c.prototype.handleUpdate=function(){this.options.backdrop&&this.adjustBackdrop(),this.adjustDialog()},c.prototype.adjustBackdrop=function(){this.$backdrop.css("height",0).css("height",this.$element[0].scrollHeight)},c.prototype.adjustDialog=function(){var a=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){this.bodyIsOverflowing=document.body.scrollHeight>document.documentElement.clientHeight,this.scrollbarWidth=this.measureScrollbar()},c.prototype.setScrollbar=function(){var a=parseInt(this.$body.css("padding-right")||0,10);this.bodyIsOverflowing&&this.$body.css("padding-right",a+this.scrollbarWidth)},c.prototype.resetScrollbar=function(){this.$body.css("padding-right","")},c.prototype.measureScrollbar=function(){var a=document.createElement("div");a.className="modal-scrollbar-measure",this.$body.append(a);var b=a.offsetWidth-a.clientWidth;return this.$body[0].removeChild(a),b};var d=a.fn.modal;a.fn.modal=b,a.fn.modal.Constructor=c,a.fn.modal.noConflict=function(){return a.fn.modal=d,this},a(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(c){var d=a(this),e=d.attr("href"),f=a(d.attr("data-target")||e&&e.replace(/.*(?=#[^\s]+$)/,"")),g=f.data("bs.modal")?"toggle":a.extend({remote:!/#/.test(e)&&e},f.data(),d.data());d.is("a")&&c.preventDefault(),f.one("show.bs.modal",function(a){a.isDefaultPrevented()||f.one("hidden.bs.modal",function(){d.is(":visible")&&d.trigger("focus")})}),b.call(f,g,this)})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tooltip"),f="object"==typeof b&&b,g=f&&f.selector;(e||"destroy"!=b)&&(g?(e||d.data("bs.tooltip",e={}),e[g]||(e[g]=new c(this,f))):e||d.data("bs.tooltip",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.type=this.options=this.enabled=this.timeout=this.hoverState=this.$element=null,this.init("tooltip",a,b)};c.VERSION="3.3.1",c.TRANSITION_DURATION=150,c.DEFAULTS={animation:!0,placement:"top",selector:!1,template:'',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(this.options.viewport.selector||this.options.viewport);for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c&&c.$tip&&c.$tip.is(":visible")?void(c.hoverState="in"):(c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide()},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.options.container?a(this.options.container):this.$element.parent(),p=this.getPosition(o);h="bottom"==h&&k.bottom+m>p.bottom?"top":"top"==h&&k.top-mp.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.width&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){return this.$tip=this.$tip||a(this.options.template)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type)})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b,g=f&&f.selector;(e||"destroy"!=b)&&(g?(e||d.data("bs.popover",e={}),e[g]||(e[g]=new c(this,f))):e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.1",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")},c.prototype.tip=function(){return this.$tip||(this.$tip=a(this.options.template)),this.$tip};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){var e=a.proxy(this.process,this);this.$body=a("body"),this.$scrollElement=a(a(c).is("body")?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",e),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.1",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b="offset",c=0;a.isWindow(this.$scrollElement[0])||(b="position",c=this.$scrollElement.scrollTop()),this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight();var d=this;this.$body.find(this.selector).map(function(){var d=a(this),e=d.data("target")||d.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[b]().top+c,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){d.offsets.push(this[0]),d.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(!e[a+1]||b<=e[a+1])&&this.activate(f[a])},b.prototype.activate=function(b){this.activeTarget=b,this.clear();var c=this.selector+'[data-target="'+b+'"],'+this.selector+'[href="'+b+'"]',d=a(c).parents("li").addClass("active");d.parent(".dropdown-menu").length&&(d=d.closest("li.dropdown").addClass("active")),d.trigger("activate.bs.scrollspy")},b.prototype.clear=function(){a(this.selector).parentsUntil(this.options.target,".active").removeClass("active")};var d=a.fn.scrollspy;a.fn.scrollspy=c,a.fn.scrollspy.Constructor=b,a.fn.scrollspy.noConflict=function(){return a.fn.scrollspy=d,this},a(window).on("load.bs.scrollspy.data-api",function(){a('[data-spy="scroll"]').each(function(){var b=a(this);c.call(b,b.data())})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.tab");e||d.data("bs.tab",e=new c(this)),"string"==typeof b&&e[b]()})}var c=function(b){this.element=a(b)};c.VERSION="3.3.1",c.TRANSITION_DURATION=150,c.prototype.show=function(){var b=this.element,c=b.closest("ul:not(.dropdown-menu)"),d=b.data("target");if(d||(d=b.attr("href"),d=d&&d.replace(/.*(?=#[^\s]*$)/,"")),!b.parent("li").hasClass("active")){var e=c.find(".active:last a"),f=a.Event("hide.bs.tab",{relatedTarget:b[0]}),g=a.Event("show.bs.tab",{relatedTarget:e[0]});if(e.trigger(f),b.trigger(g),!g.isDefaultPrevented()&&!f.isDefaultPrevented()){var h=a(d);this.activate(b.closest("li"),c),this.activate(h,h.parent(),function(){e.trigger({type:"hidden.bs.tab",relatedTarget:b[0]}),b.trigger({type:"shown.bs.tab",relatedTarget:e[0]})
-})}}},c.prototype.activate=function(b,d,e){function f(){g.removeClass("active").find("> .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu")&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=this.unpin=this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.1",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=i?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=a("body").height();"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file
diff --git a/web/static/js/bootstrap-3.3.1.js b/web/static/js/bootstrap-3.3.5.js
similarity index 86%
rename from web/static/js/bootstrap-3.3.1.js
rename to web/static/js/bootstrap-3.3.5.js
index b6ac8d9903..5debfd7de9 100644
--- a/web/static/js/bootstrap-3.3.1.js
+++ b/web/static/js/bootstrap-3.3.5.js
@@ -1,7 +1,7 @@
/*!
- * Bootstrap v3.3.1 (http://getbootstrap.com)
- * Copyright 2011-2014 Twitter, Inc.
- * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under the MIT license
*/
if (typeof jQuery === 'undefined') {
@@ -9,6 +9,7 @@ if (typeof jQuery === 'undefined') {
}
+function ($) {
+ 'use strict';
var version = $.fn.jquery.split(' ')[0].split('.')
if ((version[0] < 2 && version[1] < 9) || (version[0] == 1 && version[1] == 9 && version[2] < 1)) {
throw new Error('Bootstrap\'s JavaScript requires jQuery version 1.9.1 or higher')
@@ -16,10 +17,10 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
- * Bootstrap: transition.js v3.3.1
+ * Bootstrap: transition.js v3.3.5
* http://getbootstrap.com/javascript/#transitions
* ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
+ * Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
@@ -76,10 +77,10 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
- * Bootstrap: alert.js v3.3.1
+ * Bootstrap: alert.js v3.3.5
* http://getbootstrap.com/javascript/#alerts
* ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
+ * Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
@@ -95,7 +96,7 @@ if (typeof jQuery === 'undefined') {
$(el).on('click', dismiss, this.close)
}
- Alert.VERSION = '3.3.1'
+ Alert.VERSION = '3.3.5'
Alert.TRANSITION_DURATION = 150
@@ -171,10 +172,10 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
- * Bootstrap: button.js v3.3.1
+ * Bootstrap: button.js v3.3.5
* http://getbootstrap.com/javascript/#buttons
* ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
+ * Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
@@ -191,7 +192,7 @@ if (typeof jQuery === 'undefined') {
this.isLoading = false
}
- Button.VERSION = '3.3.1'
+ Button.VERSION = '3.3.5'
Button.DEFAULTS = {
loadingText: 'loading...'
@@ -203,7 +204,7 @@ if (typeof jQuery === 'undefined') {
var val = $el.is('input') ? 'val' : 'html'
var data = $el.data()
- state = state + 'Text'
+ state += 'Text'
if (data.resetText == null) $el.data('resetText', $el[val]())
@@ -228,15 +229,19 @@ if (typeof jQuery === 'undefined') {
if ($parent.length) {
var $input = this.$element.find('input')
if ($input.prop('type') == 'radio') {
- if ($input.prop('checked') && this.$element.hasClass('active')) changed = false
- else $parent.find('.active').removeClass('active')
+ if ($input.prop('checked')) changed = false
+ $parent.find('.active').removeClass('active')
+ this.$element.addClass('active')
+ } else if ($input.prop('type') == 'checkbox') {
+ if (($input.prop('checked')) !== this.$element.hasClass('active')) changed = false
+ this.$element.toggleClass('active')
}
- if (changed) $input.prop('checked', !this.$element.hasClass('active')).trigger('change')
+ $input.prop('checked', this.$element.hasClass('active'))
+ if (changed) $input.trigger('change')
} else {
this.$element.attr('aria-pressed', !this.$element.hasClass('active'))
+ this.$element.toggleClass('active')
}
-
- if (changed) this.$element.toggleClass('active')
}
@@ -279,7 +284,7 @@ if (typeof jQuery === 'undefined') {
var $btn = $(e.target)
if (!$btn.hasClass('btn')) $btn = $btn.closest('.btn')
Plugin.call($btn, 'toggle')
- e.preventDefault()
+ if (!($(e.target).is('input[type="radio"]') || $(e.target).is('input[type="checkbox"]'))) e.preventDefault()
})
.on('focus.bs.button.data-api blur.bs.button.data-api', '[data-toggle^="button"]', function (e) {
$(e.target).closest('.btn').toggleClass('focus', /^focus(in)?$/.test(e.type))
@@ -288,10 +293,10 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
- * Bootstrap: carousel.js v3.3.1
+ * Bootstrap: carousel.js v3.3.5
* http://getbootstrap.com/javascript/#carousel
* ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
+ * Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
@@ -306,10 +311,10 @@ if (typeof jQuery === 'undefined') {
this.$element = $(element)
this.$indicators = this.$element.find('.carousel-indicators')
this.options = options
- this.paused =
- this.sliding =
- this.interval =
- this.$active =
+ this.paused = null
+ this.sliding = null
+ this.interval = null
+ this.$active = null
this.$items = null
this.options.keyboard && this.$element.on('keydown.bs.carousel', $.proxy(this.keydown, this))
@@ -319,7 +324,7 @@ if (typeof jQuery === 'undefined') {
.on('mouseleave.bs.carousel', $.proxy(this.cycle, this))
}
- Carousel.VERSION = '3.3.1'
+ Carousel.VERSION = '3.3.5'
Carousel.TRANSITION_DURATION = 600
@@ -359,8 +364,11 @@ if (typeof jQuery === 'undefined') {
}
Carousel.prototype.getItemForDirection = function (direction, active) {
- var delta = direction == 'prev' ? -1 : 1
var activeIndex = this.getItemIndex(active)
+ var willWrap = (direction == 'prev' && activeIndex === 0)
+ || (direction == 'next' && activeIndex == (this.$items.length - 1))
+ if (willWrap && !this.options.wrap) return active
+ var delta = direction == 'prev' ? -1 : 1
var itemIndex = (activeIndex + delta) % this.$items.length
return this.$items.eq(itemIndex)
}
@@ -405,14 +413,8 @@ if (typeof jQuery === 'undefined') {
var $next = next || this.getItemForDirection(type, $active)
var isCycling = this.interval
var direction = type == 'next' ? 'left' : 'right'
- var fallback = type == 'next' ? 'first' : 'last'
var that = this
- if (!$next.length) {
- if (!this.options.wrap) return
- $next = this.$element.find('.item')[fallback]()
- }
-
if ($next.hasClass('active')) return (this.sliding = false)
var relatedTarget = $next[0]
@@ -529,10 +531,10 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
- * Bootstrap: collapse.js v3.3.1
+ * Bootstrap: collapse.js v3.3.5
* http://getbootstrap.com/javascript/#collapse
* ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
+ * Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
@@ -546,7 +548,8 @@ if (typeof jQuery === 'undefined') {
var Collapse = function (element, options) {
this.$element = $(element)
this.options = $.extend({}, Collapse.DEFAULTS, options)
- this.$trigger = $(this.options.trigger).filter('[href="#' + element.id + '"], [data-target="#' + element.id + '"]')
+ this.$trigger = $('[data-toggle="collapse"][href="#' + element.id + '"],' +
+ '[data-toggle="collapse"][data-target="#' + element.id + '"]')
this.transitioning = null
if (this.options.parent) {
@@ -558,13 +561,12 @@ if (typeof jQuery === 'undefined') {
if (this.options.toggle) this.toggle()
}
- Collapse.VERSION = '3.3.1'
+ Collapse.VERSION = '3.3.5'
Collapse.TRANSITION_DURATION = 350
Collapse.DEFAULTS = {
- toggle: true,
- trigger: '[data-toggle="collapse"]'
+ toggle: true
}
Collapse.prototype.dimension = function () {
@@ -576,7 +578,7 @@ if (typeof jQuery === 'undefined') {
if (this.transitioning || this.$element.hasClass('in')) return
var activesData
- var actives = this.$parent && this.$parent.find('> .panel').children('.in, .collapsing')
+ var actives = this.$parent && this.$parent.children('.panel').children('.in, .collapsing')
if (actives && actives.length) {
activesData = actives.data('bs.collapse')
@@ -702,7 +704,7 @@ if (typeof jQuery === 'undefined') {
var data = $this.data('bs.collapse')
var options = $.extend({}, Collapse.DEFAULTS, $this.data(), typeof option == 'object' && option)
- if (!data && options.toggle && option == 'show') options.toggle = false
+ if (!data && options.toggle && /show|hide/.test(option)) options.toggle = false
if (!data) $this.data('bs.collapse', (data = new Collapse(this, options)))
if (typeof option == 'string') data[option]()
})
@@ -733,7 +735,7 @@ if (typeof jQuery === 'undefined') {
var $target = getTargetFromTrigger($this)
var data = $target.data('bs.collapse')
- var option = data ? 'toggle' : $.extend({}, $this.data(), { trigger: this })
+ var option = data ? 'toggle' : $this.data()
Plugin.call($target, option)
})
@@ -741,10 +743,10 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
- * Bootstrap: dropdown.js v3.3.1
+ * Bootstrap: dropdown.js v3.3.5
* http://getbootstrap.com/javascript/#dropdowns
* ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
+ * Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
@@ -761,7 +763,41 @@ if (typeof jQuery === 'undefined') {
$(element).on('click.bs.dropdown', this.toggle)
}
- Dropdown.VERSION = '3.3.1'
+ Dropdown.VERSION = '3.3.5'
+
+ function getParent($this) {
+ var selector = $this.attr('data-target')
+
+ if (!selector) {
+ selector = $this.attr('href')
+ selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
+ }
+
+ var $parent = selector && $(selector)
+
+ return $parent && $parent.length ? $parent : $this.parent()
+ }
+
+ function clearMenus(e) {
+ if (e && e.which === 3) return
+ $(backdrop).remove()
+ $(toggle).each(function () {
+ var $this = $(this)
+ var $parent = getParent($this)
+ var relatedTarget = { relatedTarget: this }
+
+ if (!$parent.hasClass('open')) return
+
+ if (e && e.type == 'click' && /input|textarea/i.test(e.target.tagName) && $.contains($parent[0], e.target)) return
+
+ $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
+
+ if (e.isDefaultPrevented()) return
+
+ $this.attr('aria-expanded', 'false')
+ $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
+ })
+ }
Dropdown.prototype.toggle = function (e) {
var $this = $(this)
@@ -776,7 +812,10 @@ if (typeof jQuery === 'undefined') {
if (!isActive) {
if ('ontouchstart' in document.documentElement && !$parent.closest('.navbar-nav').length) {
// if mobile we use a backdrop because click events don't delegate
- $('').insertAfter($(this)).on('click', clearMenus)
+ $(document.createElement('div'))
+ .addClass('dropdown-backdrop')
+ .insertAfter($(this))
+ .on('click', clearMenus)
}
var relatedTarget = { relatedTarget: this }
@@ -809,57 +848,25 @@ if (typeof jQuery === 'undefined') {
var $parent = getParent($this)
var isActive = $parent.hasClass('open')
- if ((!isActive && e.which != 27) || (isActive && e.which == 27)) {
+ if (!isActive && e.which != 27 || isActive && e.which == 27) {
if (e.which == 27) $parent.find(toggle).trigger('focus')
return $this.trigger('click')
}
- var desc = ' li:not(.divider):visible a'
- var $items = $parent.find('[role="menu"]' + desc + ', [role="listbox"]' + desc)
+ var desc = ' li:not(.disabled):visible a'
+ var $items = $parent.find('.dropdown-menu' + desc)
if (!$items.length) return
var index = $items.index(e.target)
- if (e.which == 38 && index > 0) index-- // up
- if (e.which == 40 && index < $items.length - 1) index++ // down
- if (!~index) index = 0
+ if (e.which == 38 && index > 0) index-- // up
+ if (e.which == 40 && index < $items.length - 1) index++ // down
+ if (!~index) index = 0
$items.eq(index).trigger('focus')
}
- function clearMenus(e) {
- if (e && e.which === 3) return
- $(backdrop).remove()
- $(toggle).each(function () {
- var $this = $(this)
- var $parent = getParent($this)
- var relatedTarget = { relatedTarget: this }
-
- if (!$parent.hasClass('open')) return
-
- $parent.trigger(e = $.Event('hide.bs.dropdown', relatedTarget))
-
- if (e.isDefaultPrevented()) return
-
- $this.attr('aria-expanded', 'false')
- $parent.removeClass('open').trigger('hidden.bs.dropdown', relatedTarget)
- })
- }
-
- function getParent($this) {
- var selector = $this.attr('data-target')
-
- if (!selector) {
- selector = $this.attr('href')
- selector = selector && /#[A-Za-z]/.test(selector) && selector.replace(/.*(?=#[^\s]*$)/, '') // strip for ie7
- }
-
- var $parent = selector && $(selector)
-
- return $parent && $parent.length ? $parent : $this.parent()
- }
-
// DROPDOWN PLUGIN DEFINITION
// ==========================
@@ -897,16 +904,15 @@ if (typeof jQuery === 'undefined') {
.on('click.bs.dropdown.data-api', '.dropdown form', function (e) { e.stopPropagation() })
.on('click.bs.dropdown.data-api', toggle, Dropdown.prototype.toggle)
.on('keydown.bs.dropdown.data-api', toggle, Dropdown.prototype.keydown)
- .on('keydown.bs.dropdown.data-api', '[role="menu"]', Dropdown.prototype.keydown)
- .on('keydown.bs.dropdown.data-api', '[role="listbox"]', Dropdown.prototype.keydown)
+ .on('keydown.bs.dropdown.data-api', '.dropdown-menu', Dropdown.prototype.keydown)
}(jQuery);
/* ========================================================================
- * Bootstrap: modal.js v3.3.1
+ * Bootstrap: modal.js v3.3.5
* http://getbootstrap.com/javascript/#modals
* ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
+ * Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
@@ -918,12 +924,15 @@ if (typeof jQuery === 'undefined') {
// ======================
var Modal = function (element, options) {
- this.options = options
- this.$body = $(document.body)
- this.$element = $(element)
- this.$backdrop =
- this.isShown = null
- this.scrollbarWidth = 0
+ this.options = options
+ this.$body = $(document.body)
+ this.$element = $(element)
+ this.$dialog = this.$element.find('.modal-dialog')
+ this.$backdrop = null
+ this.isShown = null
+ this.originalBodyPad = null
+ this.scrollbarWidth = 0
+ this.ignoreBackdropClick = false
if (this.options.remote) {
this.$element
@@ -934,7 +943,7 @@ if (typeof jQuery === 'undefined') {
}
}
- Modal.VERSION = '3.3.1'
+ Modal.VERSION = '3.3.5'
Modal.TRANSITION_DURATION = 300
Modal.BACKDROP_TRANSITION_DURATION = 150
@@ -968,6 +977,12 @@ if (typeof jQuery === 'undefined') {
this.$element.on('click.dismiss.bs.modal', '[data-dismiss="modal"]', $.proxy(this.hide, this))
+ this.$dialog.on('mousedown.dismiss.bs.modal', function () {
+ that.$element.one('mouseup.dismiss.bs.modal', function (e) {
+ if ($(e.target).is(that.$element)) that.ignoreBackdropClick = true
+ })
+ })
+
this.backdrop(function () {
var transition = $.support.transition && that.$element.hasClass('fade')
@@ -979,23 +994,20 @@ if (typeof jQuery === 'undefined') {
.show()
.scrollTop(0)
- if (that.options.backdrop) that.adjustBackdrop()
that.adjustDialog()
if (transition) {
that.$element[0].offsetWidth // force reflow
}
- that.$element
- .addClass('in')
- .attr('aria-hidden', false)
+ that.$element.addClass('in')
that.enforceFocus()
var e = $.Event('shown.bs.modal', { relatedTarget: _relatedTarget })
transition ?
- that.$element.find('.modal-dialog') // wait for modal to slide in
+ that.$dialog // wait for modal to slide in
.one('bsTransitionEnd', function () {
that.$element.trigger('focus').trigger(e)
})
@@ -1022,8 +1034,10 @@ if (typeof jQuery === 'undefined') {
this.$element
.removeClass('in')
- .attr('aria-hidden', true)
.off('click.dismiss.bs.modal')
+ .off('mouseup.dismiss.bs.modal')
+
+ this.$dialog.off('mousedown.dismiss.bs.modal')
$.support.transition && this.$element.hasClass('fade') ?
this.$element
@@ -1083,14 +1097,20 @@ if (typeof jQuery === 'undefined') {
if (this.isShown && this.options.backdrop) {
var doAnimate = $.support.transition && animate
- this.$backdrop = $('')
- .prependTo(this.$element)
- .on('click.dismiss.bs.modal', $.proxy(function (e) {
- if (e.target !== e.currentTarget) return
- this.options.backdrop == 'static'
- ? this.$element[0].focus.call(this.$element[0])
- : this.hide.call(this)
- }, this))
+ this.$backdrop = $(document.createElement('div'))
+ .addClass('modal-backdrop ' + animate)
+ .appendTo(this.$body)
+
+ this.$element.on('click.dismiss.bs.modal', $.proxy(function (e) {
+ if (this.ignoreBackdropClick) {
+ this.ignoreBackdropClick = false
+ return
+ }
+ if (e.target !== e.currentTarget) return
+ this.options.backdrop == 'static'
+ ? this.$element[0].focus()
+ : this.hide()
+ }, this))
if (doAnimate) this.$backdrop[0].offsetWidth // force reflow
@@ -1125,16 +1145,9 @@ if (typeof jQuery === 'undefined') {
// these following methods are used to handle overflowing modals
Modal.prototype.handleUpdate = function () {
- if (this.options.backdrop) this.adjustBackdrop()
this.adjustDialog()
}
- Modal.prototype.adjustBackdrop = function () {
- this.$backdrop
- .css('height', 0)
- .css('height', this.$element[0].scrollHeight)
- }
-
Modal.prototype.adjustDialog = function () {
var modalIsOverflowing = this.$element[0].scrollHeight > document.documentElement.clientHeight
@@ -1152,17 +1165,23 @@ if (typeof jQuery === 'undefined') {
}
Modal.prototype.checkScrollbar = function () {
- this.bodyIsOverflowing = document.body.scrollHeight > document.documentElement.clientHeight
+ var fullWindowWidth = window.innerWidth
+ if (!fullWindowWidth) { // workaround for missing window.innerWidth in IE8
+ var documentElementRect = document.documentElement.getBoundingClientRect()
+ fullWindowWidth = documentElementRect.right - Math.abs(documentElementRect.left)
+ }
+ this.bodyIsOverflowing = document.body.clientWidth < fullWindowWidth
this.scrollbarWidth = this.measureScrollbar()
}
Modal.prototype.setScrollbar = function () {
var bodyPad = parseInt((this.$body.css('padding-right') || 0), 10)
+ this.originalBodyPad = document.body.style.paddingRight || ''
if (this.bodyIsOverflowing) this.$body.css('padding-right', bodyPad + this.scrollbarWidth)
}
Modal.prototype.resetScrollbar = function () {
- this.$body.css('padding-right', '')
+ this.$body.css('padding-right', this.originalBodyPad)
}
Modal.prototype.measureScrollbar = function () { // thx walsh
@@ -1228,11 +1247,11 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
- * Bootstrap: tooltip.js v3.3.1
+ * Bootstrap: tooltip.js v3.3.5
* http://getbootstrap.com/javascript/#tooltip
* Inspired by the original jQuery.tipsy by Jason Frame
* ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
+ * Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
@@ -1244,17 +1263,18 @@ if (typeof jQuery === 'undefined') {
// ===============================
var Tooltip = function (element, options) {
- this.type =
- this.options =
- this.enabled =
- this.timeout =
- this.hoverState =
+ this.type = null
+ this.options = null
+ this.enabled = null
+ this.timeout = null
+ this.hoverState = null
this.$element = null
+ this.inState = null
this.init('tooltip', element, options)
}
- Tooltip.VERSION = '3.3.1'
+ Tooltip.VERSION = '3.3.5'
Tooltip.TRANSITION_DURATION = 150
@@ -1279,7 +1299,12 @@ if (typeof jQuery === 'undefined') {
this.type = type
this.$element = $(element)
this.options = this.getOptions(options)
- this.$viewport = this.options.viewport && $(this.options.viewport.selector || this.options.viewport)
+ this.$viewport = this.options.viewport && $($.isFunction(this.options.viewport) ? this.options.viewport.call(this, this.$element) : (this.options.viewport.selector || this.options.viewport))
+ this.inState = { click: false, hover: false, focus: false }
+
+ if (this.$element[0] instanceof document.constructor && !this.options.selector) {
+ throw new Error('`selector` option must be specified when initializing ' + this.type + ' on the window.document object!')
+ }
var triggers = this.options.trigger.split(' ')
@@ -1334,16 +1359,20 @@ if (typeof jQuery === 'undefined') {
var self = obj instanceof this.constructor ?
obj : $(obj.currentTarget).data('bs.' + this.type)
- if (self && self.$tip && self.$tip.is(':visible')) {
- self.hoverState = 'in'
- return
- }
-
if (!self) {
self = new this.constructor(obj.currentTarget, this.getDelegateOptions())
$(obj.currentTarget).data('bs.' + this.type, self)
}
+ if (obj instanceof $.Event) {
+ self.inState[obj.type == 'focusin' ? 'focus' : 'hover'] = true
+ }
+
+ if (self.tip().hasClass('in') || self.hoverState == 'in') {
+ self.hoverState = 'in'
+ return
+ }
+
clearTimeout(self.timeout)
self.hoverState = 'in'
@@ -1355,6 +1384,14 @@ if (typeof jQuery === 'undefined') {
}, self.options.delay.show)
}
+ Tooltip.prototype.isInStateTrue = function () {
+ for (var key in this.inState) {
+ if (this.inState[key]) return true
+ }
+
+ return false
+ }
+
Tooltip.prototype.leave = function (obj) {
var self = obj instanceof this.constructor ?
obj : $(obj.currentTarget).data('bs.' + this.type)
@@ -1364,6 +1401,12 @@ if (typeof jQuery === 'undefined') {
$(obj.currentTarget).data('bs.' + this.type, self)
}
+ if (obj instanceof $.Event) {
+ self.inState[obj.type == 'focusout' ? 'focus' : 'hover'] = false
+ }
+
+ if (self.isInStateTrue()) return
+
clearTimeout(self.timeout)
self.hoverState = 'out'
@@ -1410,6 +1453,7 @@ if (typeof jQuery === 'undefined') {
.data('bs.' + this.type, this)
this.options.container ? $tip.appendTo(this.options.container) : $tip.insertAfter(this.$element)
+ this.$element.trigger('inserted.bs.' + this.type)
var pos = this.getPosition()
var actualWidth = $tip[0].offsetWidth
@@ -1417,13 +1461,12 @@ if (typeof jQuery === 'undefined') {
if (autoPlace) {
var orgPlacement = placement
- var $container = this.options.container ? $(this.options.container) : this.$element.parent()
- var containerDim = this.getPosition($container)
+ var viewportDim = this.getPosition(this.$viewport)
- placement = placement == 'bottom' && pos.bottom + actualHeight > containerDim.bottom ? 'top' :
- placement == 'top' && pos.top - actualHeight < containerDim.top ? 'bottom' :
- placement == 'right' && pos.right + actualWidth > containerDim.width ? 'left' :
- placement == 'left' && pos.left - actualWidth < containerDim.left ? 'right' :
+ placement = placement == 'bottom' && pos.bottom + actualHeight > viewportDim.bottom ? 'top' :
+ placement == 'top' && pos.top - actualHeight < viewportDim.top ? 'bottom' :
+ placement == 'right' && pos.right + actualWidth > viewportDim.width ? 'left' :
+ placement == 'left' && pos.left - actualWidth < viewportDim.left ? 'right' :
placement
$tip
@@ -1464,8 +1507,8 @@ if (typeof jQuery === 'undefined') {
if (isNaN(marginTop)) marginTop = 0
if (isNaN(marginLeft)) marginLeft = 0
- offset.top = offset.top + marginTop
- offset.left = offset.left + marginLeft
+ offset.top += marginTop
+ offset.left += marginLeft
// $.fn.offset doesn't round pixel values
// so we use setOffset directly with our own function B-0
@@ -1501,10 +1544,10 @@ if (typeof jQuery === 'undefined') {
this.replaceArrow(arrowDelta, $tip[0][arrowOffsetPosition], isVertical)
}
- Tooltip.prototype.replaceArrow = function (delta, dimension, isHorizontal) {
+ Tooltip.prototype.replaceArrow = function (delta, dimension, isVertical) {
this.arrow()
- .css(isHorizontal ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
- .css(isHorizontal ? 'top' : 'left', '')
+ .css(isVertical ? 'left' : 'top', 50 * (1 - delta / dimension) + '%')
+ .css(isVertical ? 'top' : 'left', '')
}
Tooltip.prototype.setContent = function () {
@@ -1517,7 +1560,7 @@ if (typeof jQuery === 'undefined') {
Tooltip.prototype.hide = function (callback) {
var that = this
- var $tip = this.tip()
+ var $tip = $(this.$tip)
var e = $.Event('hide.bs.' + this.type)
function complete() {
@@ -1534,7 +1577,7 @@ if (typeof jQuery === 'undefined') {
$tip.removeClass('in')
- $.support.transition && this.$tip.hasClass('fade') ?
+ $.support.transition && $tip.hasClass('fade') ?
$tip
.one('bsTransitionEnd', complete)
.emulateTransitionEnd(Tooltip.TRANSITION_DURATION) :
@@ -1547,7 +1590,7 @@ if (typeof jQuery === 'undefined') {
Tooltip.prototype.fixTitle = function () {
var $e = this.$element
- if ($e.attr('title') || typeof ($e.attr('data-original-title')) != 'string') {
+ if ($e.attr('title') || typeof $e.attr('data-original-title') != 'string') {
$e.attr('data-original-title', $e.attr('title') || '').attr('title', '')
}
}
@@ -1575,10 +1618,10 @@ if (typeof jQuery === 'undefined') {
}
Tooltip.prototype.getCalculatedOffset = function (placement, pos, actualWidth, actualHeight) {
- return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
- placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
+ return placement == 'bottom' ? { top: pos.top + pos.height, left: pos.left + pos.width / 2 - actualWidth / 2 } :
+ placement == 'top' ? { top: pos.top - actualHeight, left: pos.left + pos.width / 2 - actualWidth / 2 } :
placement == 'left' ? { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left - actualWidth } :
- /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
+ /* placement == 'right' */ { top: pos.top + pos.height / 2 - actualHeight / 2, left: pos.left + pos.width }
}
@@ -1602,7 +1645,7 @@ if (typeof jQuery === 'undefined') {
var rightEdgeOffset = pos.left + viewportPadding + actualWidth
if (leftEdgeOffset < viewportDimensions.left) { // left overflow
delta.left = viewportDimensions.left - leftEdgeOffset
- } else if (rightEdgeOffset > viewportDimensions.width) { // right overflow
+ } else if (rightEdgeOffset > viewportDimensions.right) { // right overflow
delta.left = viewportDimensions.left + viewportDimensions.width - rightEdgeOffset
}
}
@@ -1628,7 +1671,13 @@ if (typeof jQuery === 'undefined') {
}
Tooltip.prototype.tip = function () {
- return (this.$tip = this.$tip || $(this.options.template))
+ if (!this.$tip) {
+ this.$tip = $(this.options.template)
+ if (this.$tip.length != 1) {
+ throw new Error(this.type + ' `template` option must consist of exactly 1 top-level element!')
+ }
+ }
+ return this.$tip
}
Tooltip.prototype.arrow = function () {
@@ -1657,7 +1706,13 @@ if (typeof jQuery === 'undefined') {
}
}
- self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
+ if (e) {
+ self.inState.click = !self.inState.click
+ if (self.isInStateTrue()) self.enter(self)
+ else self.leave(self)
+ } else {
+ self.tip().hasClass('in') ? self.leave(self) : self.enter(self)
+ }
}
Tooltip.prototype.destroy = function () {
@@ -1665,6 +1720,12 @@ if (typeof jQuery === 'undefined') {
clearTimeout(this.timeout)
this.hide(function () {
that.$element.off('.' + that.type).removeData('bs.' + that.type)
+ if (that.$tip) {
+ that.$tip.detach()
+ }
+ that.$tip = null
+ that.$arrow = null
+ that.$viewport = null
})
}
@@ -1674,18 +1735,12 @@ if (typeof jQuery === 'undefined') {
function Plugin(option) {
return this.each(function () {
- var $this = $(this)
- var data = $this.data('bs.tooltip')
- var options = typeof option == 'object' && option
- var selector = options && options.selector
+ var $this = $(this)
+ var data = $this.data('bs.tooltip')
+ var options = typeof option == 'object' && option
- if (!data && option == 'destroy') return
- if (selector) {
- if (!data) $this.data('bs.tooltip', (data = {}))
- if (!data[selector]) data[selector] = new Tooltip(this, options)
- } else {
- if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
- }
+ if (!data && /destroy|hide/.test(option)) return
+ if (!data) $this.data('bs.tooltip', (data = new Tooltip(this, options)))
if (typeof option == 'string') data[option]()
})
}
@@ -1707,10 +1762,10 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
- * Bootstrap: popover.js v3.3.1
+ * Bootstrap: popover.js v3.3.5
* http://getbootstrap.com/javascript/#popovers
* ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
+ * Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
@@ -1727,7 +1782,7 @@ if (typeof jQuery === 'undefined') {
if (!$.fn.tooltip) throw new Error('Popover requires tooltip.js')
- Popover.VERSION = '3.3.1'
+ Popover.VERSION = '3.3.5'
Popover.DEFAULTS = $.extend({}, $.fn.tooltip.Constructor.DEFAULTS, {
placement: 'right',
@@ -1783,29 +1838,18 @@ if (typeof jQuery === 'undefined') {
return (this.$arrow = this.$arrow || this.tip().find('.arrow'))
}
- Popover.prototype.tip = function () {
- if (!this.$tip) this.$tip = $(this.options.template)
- return this.$tip
- }
-
// POPOVER PLUGIN DEFINITION
// =========================
function Plugin(option) {
return this.each(function () {
- var $this = $(this)
- var data = $this.data('bs.popover')
- var options = typeof option == 'object' && option
- var selector = options && options.selector
+ var $this = $(this)
+ var data = $this.data('bs.popover')
+ var options = typeof option == 'object' && option
- if (!data && option == 'destroy') return
- if (selector) {
- if (!data) $this.data('bs.popover', (data = {}))
- if (!data[selector]) data[selector] = new Popover(this, options)
- } else {
- if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
- }
+ if (!data && /destroy|hide/.test(option)) return
+ if (!data) $this.data('bs.popover', (data = new Popover(this, options)))
if (typeof option == 'string') data[option]()
})
}
@@ -1827,10 +1871,10 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
- * Bootstrap: scrollspy.js v3.3.1
+ * Bootstrap: scrollspy.js v3.3.5
* http://getbootstrap.com/javascript/#scrollspy
* ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
+ * Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
@@ -1842,10 +1886,8 @@ if (typeof jQuery === 'undefined') {
// ==========================
function ScrollSpy(element, options) {
- var process = $.proxy(this.process, this)
-
- this.$body = $('body')
- this.$scrollElement = $(element).is('body') ? $(window) : $(element)
+ this.$body = $(document.body)
+ this.$scrollElement = $(element).is(document.body) ? $(window) : $(element)
this.options = $.extend({}, ScrollSpy.DEFAULTS, options)
this.selector = (this.options.target || '') + ' .nav li > a'
this.offsets = []
@@ -1853,12 +1895,12 @@ if (typeof jQuery === 'undefined') {
this.activeTarget = null
this.scrollHeight = 0
- this.$scrollElement.on('scroll.bs.scrollspy', process)
+ this.$scrollElement.on('scroll.bs.scrollspy', $.proxy(this.process, this))
this.refresh()
this.process()
}
- ScrollSpy.VERSION = '3.3.1'
+ ScrollSpy.VERSION = '3.3.5'
ScrollSpy.DEFAULTS = {
offset: 10
@@ -1869,20 +1911,19 @@ if (typeof jQuery === 'undefined') {
}
ScrollSpy.prototype.refresh = function () {
- var offsetMethod = 'offset'
- var offsetBase = 0
+ var that = this
+ var offsetMethod = 'offset'
+ var offsetBase = 0
+
+ this.offsets = []
+ this.targets = []
+ this.scrollHeight = this.getScrollHeight()
if (!$.isWindow(this.$scrollElement[0])) {
offsetMethod = 'position'
offsetBase = this.$scrollElement.scrollTop()
}
- this.offsets = []
- this.targets = []
- this.scrollHeight = this.getScrollHeight()
-
- var self = this
-
this.$body
.find(this.selector)
.map(function () {
@@ -1897,8 +1938,8 @@ if (typeof jQuery === 'undefined') {
})
.sort(function (a, b) { return a[0] - b[0] })
.each(function () {
- self.offsets.push(this[0])
- self.targets.push(this[1])
+ that.offsets.push(this[0])
+ that.targets.push(this[1])
})
}
@@ -1927,7 +1968,7 @@ if (typeof jQuery === 'undefined') {
for (i = offsets.length; i--;) {
activeTarget != targets[i]
&& scrollTop >= offsets[i]
- && (!offsets[i + 1] || scrollTop <= offsets[i + 1])
+ && (offsets[i + 1] === undefined || scrollTop < offsets[i + 1])
&& this.activate(targets[i])
}
}
@@ -1938,8 +1979,8 @@ if (typeof jQuery === 'undefined') {
this.clear()
var selector = this.selector +
- '[data-target="' + target + '"],' +
- this.selector + '[href="' + target + '"]'
+ '[data-target="' + target + '"],' +
+ this.selector + '[href="' + target + '"]'
var active = $(selector)
.parents('li')
@@ -2003,10 +2044,10 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
- * Bootstrap: tab.js v3.3.1
+ * Bootstrap: tab.js v3.3.5
* http://getbootstrap.com/javascript/#tabs
* ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
+ * Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
@@ -2018,10 +2059,12 @@ if (typeof jQuery === 'undefined') {
// ====================
var Tab = function (element) {
+ // jscs:disable requireDollarBeforejQueryAssignment
this.element = $(element)
+ // jscs:enable requireDollarBeforejQueryAssignment
}
- Tab.VERSION = '3.3.1'
+ Tab.VERSION = '3.3.5'
Tab.TRANSITION_DURATION = 150
@@ -2069,7 +2112,7 @@ if (typeof jQuery === 'undefined') {
var $active = container.find('> .active')
var transition = callback
&& $.support.transition
- && (($active.length && $active.hasClass('fade')) || !!container.find('> .fade').length)
+ && ($active.length && $active.hasClass('fade') || !!container.find('> .fade').length)
function next() {
$active
@@ -2092,7 +2135,7 @@ if (typeof jQuery === 'undefined') {
element.removeClass('fade')
}
- if (element.parent('.dropdown-menu')) {
+ if (element.parent('.dropdown-menu').length) {
element
.closest('li.dropdown')
.addClass('active')
@@ -2157,10 +2200,10 @@ if (typeof jQuery === 'undefined') {
}(jQuery);
/* ========================================================================
- * Bootstrap: affix.js v3.3.1
+ * Bootstrap: affix.js v3.3.5
* http://getbootstrap.com/javascript/#affix
* ========================================================================
- * Copyright 2011-2014 Twitter, Inc.
+ * Copyright 2011-2015 Twitter, Inc.
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
* ======================================================================== */
@@ -2179,14 +2222,14 @@ if (typeof jQuery === 'undefined') {
.on('click.bs.affix.data-api', $.proxy(this.checkPositionWithEventLoop, this))
this.$element = $(element)
- this.affixed =
- this.unpin =
+ this.affixed = null
+ this.unpin = null
this.pinnedOffset = null
this.checkPosition()
}
- Affix.VERSION = '3.3.1'
+ Affix.VERSION = '3.3.5'
Affix.RESET = 'affix affix-top affix-bottom'
@@ -2211,7 +2254,7 @@ if (typeof jQuery === 'undefined') {
var colliderTop = initializing ? scrollTop : position.top
var colliderHeight = initializing ? targetHeight : height
- if (offsetTop != null && colliderTop <= offsetTop) return 'top'
+ if (offsetTop != null && scrollTop <= offsetTop) return 'top'
if (offsetBottom != null && (colliderTop + colliderHeight >= scrollHeight - offsetBottom)) return 'bottom'
return false
@@ -2236,7 +2279,7 @@ if (typeof jQuery === 'undefined') {
var offset = this.options.offset
var offsetTop = offset.top
var offsetBottom = offset.bottom
- var scrollHeight = $('body').height()
+ var scrollHeight = Math.max($(document).height(), $(document.body).height())
if (typeof offset != 'object') offsetBottom = offsetTop = offset
if (typeof offsetTop == 'function') offsetTop = offset.top(this.$element)
diff --git a/web/static/js/bootstrap-3.3.5.min.js b/web/static/js/bootstrap-3.3.5.min.js
new file mode 100644
index 0000000000..133aeecb98
--- /dev/null
+++ b/web/static/js/bootstrap-3.3.5.min.js
@@ -0,0 +1,7 @@
+/*!
+ * Bootstrap v3.3.5 (http://getbootstrap.com)
+ * Copyright 2011-2015 Twitter, Inc.
+ * Licensed under the MIT license
+ */
+if("undefined"==typeof jQuery)throw new Error("Bootstrap's JavaScript requires jQuery");+function(a){"use strict";var b=a.fn.jquery.split(" ")[0].split(".");if(b[0]<2&&b[1]<9||1==b[0]&&9==b[1]&&b[2]<1)throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher")}(jQuery),+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one("bsTransitionEnd",function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b(),a.support.transition&&(a.event.special.bsTransitionEnd={bindType:a.support.transition.end,delegateType:a.support.transition.end,handle:function(b){return a(b.target).is(this)?b.handleObj.handler.apply(this,arguments):void 0}})})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var c=a(this),e=c.data("bs.alert");e||c.data("bs.alert",e=new d(this)),"string"==typeof b&&e[b].call(c)})}var c='[data-dismiss="alert"]',d=function(b){a(b).on("click",c,this.close)};d.VERSION="3.3.5",d.TRANSITION_DURATION=150,d.prototype.close=function(b){function c(){g.detach().trigger("closed.bs.alert").remove()}var e=a(this),f=e.attr("data-target");f||(f=e.attr("href"),f=f&&f.replace(/.*(?=#[^\s]*$)/,""));var g=a(f);b&&b.preventDefault(),g.length||(g=e.closest(".alert")),g.trigger(b=a.Event("close.bs.alert")),b.isDefaultPrevented()||(g.removeClass("in"),a.support.transition&&g.hasClass("fade")?g.one("bsTransitionEnd",c).emulateTransitionEnd(d.TRANSITION_DURATION):c())};var e=a.fn.alert;a.fn.alert=b,a.fn.alert.Constructor=d,a.fn.alert.noConflict=function(){return a.fn.alert=e,this},a(document).on("click.bs.alert.data-api",c,d.prototype.close)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.button"),f="object"==typeof b&&b;e||d.data("bs.button",e=new c(this,f)),"toggle"==b?e.toggle():b&&e.setState(b)})}var c=function(b,d){this.$element=a(b),this.options=a.extend({},c.DEFAULTS,d),this.isLoading=!1};c.VERSION="3.3.5",c.DEFAULTS={loadingText:"loading..."},c.prototype.setState=function(b){var c="disabled",d=this.$element,e=d.is("input")?"val":"html",f=d.data();b+="Text",null==f.resetText&&d.data("resetText",d[e]()),setTimeout(a.proxy(function(){d[e](null==f[b]?this.options[b]:f[b]),"loadingText"==b?(this.isLoading=!0,d.addClass(c).attr(c,c)):this.isLoading&&(this.isLoading=!1,d.removeClass(c).removeAttr(c))},this),0)},c.prototype.toggle=function(){var a=!0,b=this.$element.closest('[data-toggle="buttons"]');if(b.length){var c=this.$element.find("input");"radio"==c.prop("type")?(c.prop("checked")&&(a=!1),b.find(".active").removeClass("active"),this.$element.addClass("active")):"checkbox"==c.prop("type")&&(c.prop("checked")!==this.$element.hasClass("active")&&(a=!1),this.$element.toggleClass("active")),c.prop("checked",this.$element.hasClass("active")),a&&c.trigger("change")}else this.$element.attr("aria-pressed",!this.$element.hasClass("active")),this.$element.toggleClass("active")};var d=a.fn.button;a.fn.button=b,a.fn.button.Constructor=c,a.fn.button.noConflict=function(){return a.fn.button=d,this},a(document).on("click.bs.button.data-api",'[data-toggle^="button"]',function(c){var d=a(c.target);d.hasClass("btn")||(d=d.closest(".btn")),b.call(d,"toggle"),a(c.target).is('input[type="radio"]')||a(c.target).is('input[type="checkbox"]')||c.preventDefault()}).on("focus.bs.button.data-api blur.bs.button.data-api",'[data-toggle^="button"]',function(b){a(b.target).closest(".btn").toggleClass("focus",/^focus(in)?$/.test(b.type))})}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.carousel"),f=a.extend({},c.DEFAULTS,d.data(),"object"==typeof b&&b),g="string"==typeof b?b:f.slide;e||d.data("bs.carousel",e=new c(this,f)),"number"==typeof b?e.to(b):g?e[g]():f.interval&&e.pause().cycle()})}var c=function(b,c){this.$element=a(b),this.$indicators=this.$element.find(".carousel-indicators"),this.options=c,this.paused=null,this.sliding=null,this.interval=null,this.$active=null,this.$items=null,this.options.keyboard&&this.$element.on("keydown.bs.carousel",a.proxy(this.keydown,this)),"hover"==this.options.pause&&!("ontouchstart"in document.documentElement)&&this.$element.on("mouseenter.bs.carousel",a.proxy(this.pause,this)).on("mouseleave.bs.carousel",a.proxy(this.cycle,this))};c.VERSION="3.3.5",c.TRANSITION_DURATION=600,c.DEFAULTS={interval:5e3,pause:"hover",wrap:!0,keyboard:!0},c.prototype.keydown=function(a){if(!/input|textarea/i.test(a.target.tagName)){switch(a.which){case 37:this.prev();break;case 39:this.next();break;default:return}a.preventDefault()}},c.prototype.cycle=function(b){return b||(this.paused=!1),this.interval&&clearInterval(this.interval),this.options.interval&&!this.paused&&(this.interval=setInterval(a.proxy(this.next,this),this.options.interval)),this},c.prototype.getItemIndex=function(a){return this.$items=a.parent().children(".item"),this.$items.index(a||this.$active)},c.prototype.getItemForDirection=function(a,b){var c=this.getItemIndex(b),d="prev"==a&&0===c||"next"==a&&c==this.$items.length-1;if(d&&!this.options.wrap)return b;var e="prev"==a?-1:1,f=(c+e)%this.$items.length;return this.$items.eq(f)},c.prototype.to=function(a){var b=this,c=this.getItemIndex(this.$active=this.$element.find(".item.active"));return a>this.$items.length-1||0>a?void 0:this.sliding?this.$element.one("slid.bs.carousel",function(){b.to(a)}):c==a?this.pause().cycle():this.slide(a>c?"next":"prev",this.$items.eq(a))},c.prototype.pause=function(b){return b||(this.paused=!0),this.$element.find(".next, .prev").length&&a.support.transition&&(this.$element.trigger(a.support.transition.end),this.cycle(!0)),this.interval=clearInterval(this.interval),this},c.prototype.next=function(){return this.sliding?void 0:this.slide("next")},c.prototype.prev=function(){return this.sliding?void 0:this.slide("prev")},c.prototype.slide=function(b,d){var e=this.$element.find(".item.active"),f=d||this.getItemForDirection(b,e),g=this.interval,h="next"==b?"left":"right",i=this;if(f.hasClass("active"))return this.sliding=!1;var j=f[0],k=a.Event("slide.bs.carousel",{relatedTarget:j,direction:h});if(this.$element.trigger(k),!k.isDefaultPrevented()){if(this.sliding=!0,g&&this.pause(),this.$indicators.length){this.$indicators.find(".active").removeClass("active");var l=a(this.$indicators.children()[this.getItemIndex(f)]);l&&l.addClass("active")}var m=a.Event("slid.bs.carousel",{relatedTarget:j,direction:h});return a.support.transition&&this.$element.hasClass("slide")?(f.addClass(b),f[0].offsetWidth,e.addClass(h),f.addClass(h),e.one("bsTransitionEnd",function(){f.removeClass([b,h].join(" ")).addClass("active"),e.removeClass(["active",h].join(" ")),i.sliding=!1,setTimeout(function(){i.$element.trigger(m)},0)}).emulateTransitionEnd(c.TRANSITION_DURATION)):(e.removeClass("active"),f.addClass("active"),this.sliding=!1,this.$element.trigger(m)),g&&this.cycle(),this}};var d=a.fn.carousel;a.fn.carousel=b,a.fn.carousel.Constructor=c,a.fn.carousel.noConflict=function(){return a.fn.carousel=d,this};var e=function(c){var d,e=a(this),f=a(e.attr("data-target")||(d=e.attr("href"))&&d.replace(/.*(?=#[^\s]+$)/,""));if(f.hasClass("carousel")){var g=a.extend({},f.data(),e.data()),h=e.attr("data-slide-to");h&&(g.interval=!1),b.call(f,g),h&&f.data("bs.carousel").to(h),c.preventDefault()}};a(document).on("click.bs.carousel.data-api","[data-slide]",e).on("click.bs.carousel.data-api","[data-slide-to]",e),a(window).on("load",function(){a('[data-ride="carousel"]').each(function(){var c=a(this);b.call(c,c.data())})})}(jQuery),+function(a){"use strict";function b(b){var c,d=b.attr("data-target")||(c=b.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,"");return a(d)}function c(b){return this.each(function(){var c=a(this),e=c.data("bs.collapse"),f=a.extend({},d.DEFAULTS,c.data(),"object"==typeof b&&b);!e&&f.toggle&&/show|hide/.test(b)&&(f.toggle=!1),e||c.data("bs.collapse",e=new d(this,f)),"string"==typeof b&&e[b]()})}var d=function(b,c){this.$element=a(b),this.options=a.extend({},d.DEFAULTS,c),this.$trigger=a('[data-toggle="collapse"][href="#'+b.id+'"],[data-toggle="collapse"][data-target="#'+b.id+'"]'),this.transitioning=null,this.options.parent?this.$parent=this.getParent():this.addAriaAndCollapsedClass(this.$element,this.$trigger),this.options.toggle&&this.toggle()};d.VERSION="3.3.5",d.TRANSITION_DURATION=350,d.DEFAULTS={toggle:!0},d.prototype.dimension=function(){var a=this.$element.hasClass("width");return a?"width":"height"},d.prototype.show=function(){if(!this.transitioning&&!this.$element.hasClass("in")){var b,e=this.$parent&&this.$parent.children(".panel").children(".in, .collapsing");if(!(e&&e.length&&(b=e.data("bs.collapse"),b&&b.transitioning))){var f=a.Event("show.bs.collapse");if(this.$element.trigger(f),!f.isDefaultPrevented()){e&&e.length&&(c.call(e,"hide"),b||e.data("bs.collapse",null));var g=this.dimension();this.$element.removeClass("collapse").addClass("collapsing")[g](0).attr("aria-expanded",!0),this.$trigger.removeClass("collapsed").attr("aria-expanded",!0),this.transitioning=1;var h=function(){this.$element.removeClass("collapsing").addClass("collapse in")[g](""),this.transitioning=0,this.$element.trigger("shown.bs.collapse")};if(!a.support.transition)return h.call(this);var i=a.camelCase(["scroll",g].join("-"));this.$element.one("bsTransitionEnd",a.proxy(h,this)).emulateTransitionEnd(d.TRANSITION_DURATION)[g](this.$element[0][i])}}}},d.prototype.hide=function(){if(!this.transitioning&&this.$element.hasClass("in")){var b=a.Event("hide.bs.collapse");if(this.$element.trigger(b),!b.isDefaultPrevented()){var c=this.dimension();this.$element[c](this.$element[c]())[0].offsetHeight,this.$element.addClass("collapsing").removeClass("collapse in").attr("aria-expanded",!1),this.$trigger.addClass("collapsed").attr("aria-expanded",!1),this.transitioning=1;var e=function(){this.transitioning=0,this.$element.removeClass("collapsing").addClass("collapse").trigger("hidden.bs.collapse")};return a.support.transition?void this.$element[c](0).one("bsTransitionEnd",a.proxy(e,this)).emulateTransitionEnd(d.TRANSITION_DURATION):e.call(this)}}},d.prototype.toggle=function(){this[this.$element.hasClass("in")?"hide":"show"]()},d.prototype.getParent=function(){return a(this.options.parent).find('[data-toggle="collapse"][data-parent="'+this.options.parent+'"]').each(a.proxy(function(c,d){var e=a(d);this.addAriaAndCollapsedClass(b(e),e)},this)).end()},d.prototype.addAriaAndCollapsedClass=function(a,b){var c=a.hasClass("in");a.attr("aria-expanded",c),b.toggleClass("collapsed",!c).attr("aria-expanded",c)};var e=a.fn.collapse;a.fn.collapse=c,a.fn.collapse.Constructor=d,a.fn.collapse.noConflict=function(){return a.fn.collapse=e,this},a(document).on("click.bs.collapse.data-api",'[data-toggle="collapse"]',function(d){var e=a(this);e.attr("data-target")||d.preventDefault();var f=b(e),g=f.data("bs.collapse"),h=g?"toggle":e.data();c.call(f,h)})}(jQuery),+function(a){"use strict";function b(b){var c=b.attr("data-target");c||(c=b.attr("href"),c=c&&/#[A-Za-z]/.test(c)&&c.replace(/.*(?=#[^\s]*$)/,""));var d=c&&a(c);return d&&d.length?d:b.parent()}function c(c){c&&3===c.which||(a(e).remove(),a(f).each(function(){var d=a(this),e=b(d),f={relatedTarget:this};e.hasClass("open")&&(c&&"click"==c.type&&/input|textarea/i.test(c.target.tagName)&&a.contains(e[0],c.target)||(e.trigger(c=a.Event("hide.bs.dropdown",f)),c.isDefaultPrevented()||(d.attr("aria-expanded","false"),e.removeClass("open").trigger("hidden.bs.dropdown",f))))}))}function d(b){return this.each(function(){var c=a(this),d=c.data("bs.dropdown");d||c.data("bs.dropdown",d=new g(this)),"string"==typeof b&&d[b].call(c)})}var e=".dropdown-backdrop",f='[data-toggle="dropdown"]',g=function(b){a(b).on("click.bs.dropdown",this.toggle)};g.VERSION="3.3.5",g.prototype.toggle=function(d){var e=a(this);if(!e.is(".disabled, :disabled")){var f=b(e),g=f.hasClass("open");if(c(),!g){"ontouchstart"in document.documentElement&&!f.closest(".navbar-nav").length&&a(document.createElement("div")).addClass("dropdown-backdrop").insertAfter(a(this)).on("click",c);var h={relatedTarget:this};if(f.trigger(d=a.Event("show.bs.dropdown",h)),d.isDefaultPrevented())return;e.trigger("focus").attr("aria-expanded","true"),f.toggleClass("open").trigger("shown.bs.dropdown",h)}return!1}},g.prototype.keydown=function(c){if(/(38|40|27|32)/.test(c.which)&&!/input|textarea/i.test(c.target.tagName)){var d=a(this);if(c.preventDefault(),c.stopPropagation(),!d.is(".disabled, :disabled")){var e=b(d),g=e.hasClass("open");if(!g&&27!=c.which||g&&27==c.which)return 27==c.which&&e.find(f).trigger("focus"),d.trigger("click");var h=" li:not(.disabled):visible a",i=e.find(".dropdown-menu"+h);if(i.length){var j=i.index(c.target);38==c.which&&j>0&&j--,40==c.which&&jdocument.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&a?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!a?this.scrollbarWidth:""})},c.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})},c.prototype.checkScrollbar=function(){var a=window.innerWidth;if(!a){var b=document.documentElement.getBoundingClientRect();a=b.right-Math.abs(b.left)}this.bodyIsOverflowing=document.body.clientWidth ',trigger:"hover focus",title:"",delay:0,html:!1,container:!1,viewport:{selector:"body",padding:0}},c.prototype.init=function(b,c,d){if(this.enabled=!0,this.type=b,this.$element=a(c),this.options=this.getOptions(d),this.$viewport=this.options.viewport&&a(a.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport),this.inState={click:!1,hover:!1,focus:!1},this.$element[0]instanceof document.constructor&&!this.options.selector)throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!");for(var e=this.options.trigger.split(" "),f=e.length;f--;){var g=e[f];if("click"==g)this.$element.on("click."+this.type,this.options.selector,a.proxy(this.toggle,this));else if("manual"!=g){var h="hover"==g?"mouseenter":"focusin",i="hover"==g?"mouseleave":"focusout";this.$element.on(h+"."+this.type,this.options.selector,a.proxy(this.enter,this)),this.$element.on(i+"."+this.type,this.options.selector,a.proxy(this.leave,this))}}this.options.selector?this._options=a.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()},c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.getOptions=function(b){return b=a.extend({},this.getDefaults(),this.$element.data(),b),b.delay&&"number"==typeof b.delay&&(b.delay={show:b.delay,hide:b.delay}),b},c.prototype.getDelegateOptions=function(){var b={},c=this.getDefaults();return this._options&&a.each(this._options,function(a,d){c[a]!=d&&(b[a]=d)}),b},c.prototype.enter=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusin"==b.type?"focus":"hover"]=!0),c.tip().hasClass("in")||"in"==c.hoverState?void(c.hoverState="in"):(clearTimeout(c.timeout),c.hoverState="in",c.options.delay&&c.options.delay.show?void(c.timeout=setTimeout(function(){"in"==c.hoverState&&c.show()},c.options.delay.show)):c.show())},c.prototype.isInStateTrue=function(){for(var a in this.inState)if(this.inState[a])return!0;return!1},c.prototype.leave=function(b){var c=b instanceof this.constructor?b:a(b.currentTarget).data("bs."+this.type);return c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c)),b instanceof a.Event&&(c.inState["focusout"==b.type?"focus":"hover"]=!1),c.isInStateTrue()?void 0:(clearTimeout(c.timeout),c.hoverState="out",c.options.delay&&c.options.delay.hide?void(c.timeout=setTimeout(function(){"out"==c.hoverState&&c.hide()},c.options.delay.hide)):c.hide())},c.prototype.show=function(){var b=a.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(b);var d=a.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(b.isDefaultPrevented()||!d)return;var e=this,f=this.tip(),g=this.getUID(this.type);this.setContent(),f.attr("id",g),this.$element.attr("aria-describedby",g),this.options.animation&&f.addClass("fade");var h="function"==typeof this.options.placement?this.options.placement.call(this,f[0],this.$element[0]):this.options.placement,i=/\s?auto?\s?/i,j=i.test(h);j&&(h=h.replace(i,"")||"top"),f.detach().css({top:0,left:0,display:"block"}).addClass(h).data("bs."+this.type,this),this.options.container?f.appendTo(this.options.container):f.insertAfter(this.$element),this.$element.trigger("inserted.bs."+this.type);var k=this.getPosition(),l=f[0].offsetWidth,m=f[0].offsetHeight;if(j){var n=h,o=this.getPosition(this.$viewport);h="bottom"==h&&k.bottom+m>o.bottom?"top":"top"==h&&k.top-mo.width?"left":"left"==h&&k.left-lg.top+g.height&&(e.top=g.top+g.height-i)}else{var j=b.left-f,k=b.left+f+c;jg.right&&(e.left=g.left+g.width-k)}return e},c.prototype.getTitle=function(){var a,b=this.$element,c=this.options;return a=b.attr("data-original-title")||("function"==typeof c.title?c.title.call(b[0]):c.title)},c.prototype.getUID=function(a){do a+=~~(1e6*Math.random());while(document.getElementById(a));return a},c.prototype.tip=function(){if(!this.$tip&&(this.$tip=a(this.options.template),1!=this.$tip.length))throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!");return this.$tip},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")},c.prototype.enable=function(){this.enabled=!0},c.prototype.disable=function(){this.enabled=!1},c.prototype.toggleEnabled=function(){this.enabled=!this.enabled},c.prototype.toggle=function(b){var c=this;b&&(c=a(b.currentTarget).data("bs."+this.type),c||(c=new this.constructor(b.currentTarget,this.getDelegateOptions()),a(b.currentTarget).data("bs."+this.type,c))),b?(c.inState.click=!c.inState.click,c.isInStateTrue()?c.enter(c):c.leave(c)):c.tip().hasClass("in")?c.leave(c):c.enter(c)},c.prototype.destroy=function(){var a=this;clearTimeout(this.timeout),this.hide(function(){a.$element.off("."+a.type).removeData("bs."+a.type),a.$tip&&a.$tip.detach(),a.$tip=null,a.$arrow=null,a.$viewport=null})};var d=a.fn.tooltip;a.fn.tooltip=b,a.fn.tooltip.Constructor=c,a.fn.tooltip.noConflict=function(){return a.fn.tooltip=d,this}}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.popover"),f="object"==typeof b&&b;(e||!/destroy|hide/.test(b))&&(e||d.data("bs.popover",e=new c(this,f)),"string"==typeof b&&e[b]())})}var c=function(a,b){this.init("popover",a,b)};if(!a.fn.tooltip)throw new Error("Popover requires tooltip.js");c.VERSION="3.3.5",c.DEFAULTS=a.extend({},a.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:''}),c.prototype=a.extend({},a.fn.tooltip.Constructor.prototype),c.prototype.constructor=c,c.prototype.getDefaults=function(){return c.DEFAULTS},c.prototype.setContent=function(){var a=this.tip(),b=this.getTitle(),c=this.getContent();a.find(".popover-title")[this.options.html?"html":"text"](b),a.find(".popover-content").children().detach().end()[this.options.html?"string"==typeof c?"html":"append":"text"](c),a.removeClass("fade top bottom left right in"),a.find(".popover-title").html()||a.find(".popover-title").hide()},c.prototype.hasContent=function(){return this.getTitle()||this.getContent()},c.prototype.getContent=function(){var a=this.$element,b=this.options;return a.attr("data-content")||("function"==typeof b.content?b.content.call(a[0]):b.content)},c.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};var d=a.fn.popover;a.fn.popover=b,a.fn.popover.Constructor=c,a.fn.popover.noConflict=function(){return a.fn.popover=d,this}}(jQuery),+function(a){"use strict";function b(c,d){this.$body=a(document.body),this.$scrollElement=a(a(c).is(document.body)?window:c),this.options=a.extend({},b.DEFAULTS,d),this.selector=(this.options.target||"")+" .nav li > a",this.offsets=[],this.targets=[],this.activeTarget=null,this.scrollHeight=0,this.$scrollElement.on("scroll.bs.scrollspy",a.proxy(this.process,this)),this.refresh(),this.process()}function c(c){return this.each(function(){var d=a(this),e=d.data("bs.scrollspy"),f="object"==typeof c&&c;e||d.data("bs.scrollspy",e=new b(this,f)),"string"==typeof c&&e[c]()})}b.VERSION="3.3.5",b.DEFAULTS={offset:10},b.prototype.getScrollHeight=function(){return this.$scrollElement[0].scrollHeight||Math.max(this.$body[0].scrollHeight,document.documentElement.scrollHeight)},b.prototype.refresh=function(){var b=this,c="offset",d=0;this.offsets=[],this.targets=[],this.scrollHeight=this.getScrollHeight(),a.isWindow(this.$scrollElement[0])||(c="position",d=this.$scrollElement.scrollTop()),this.$body.find(this.selector).map(function(){var b=a(this),e=b.data("target")||b.attr("href"),f=/^#./.test(e)&&a(e);return f&&f.length&&f.is(":visible")&&[[f[c]().top+d,e]]||null}).sort(function(a,b){return a[0]-b[0]}).each(function(){b.offsets.push(this[0]),b.targets.push(this[1])})},b.prototype.process=function(){var a,b=this.$scrollElement.scrollTop()+this.options.offset,c=this.getScrollHeight(),d=this.options.offset+c-this.$scrollElement.height(),e=this.offsets,f=this.targets,g=this.activeTarget;if(this.scrollHeight!=c&&this.refresh(),b>=d)return g!=(a=f[f.length-1])&&this.activate(a);if(g&&b=e[a]&&(void 0===e[a+1]||b .dropdown-menu > .active").removeClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!1),b.addClass("active").find('[data-toggle="tab"]').attr("aria-expanded",!0),h?(b[0].offsetWidth,b.addClass("in")):b.removeClass("fade"),b.parent(".dropdown-menu").length&&b.closest("li.dropdown").addClass("active").end().find('[data-toggle="tab"]').attr("aria-expanded",!0),e&&e()}var g=d.find("> .active"),h=e&&a.support.transition&&(g.length&&g.hasClass("fade")||!!d.find("> .fade").length);g.length&&h?g.one("bsTransitionEnd",f).emulateTransitionEnd(c.TRANSITION_DURATION):f(),g.removeClass("in")};var d=a.fn.tab;a.fn.tab=b,a.fn.tab.Constructor=c,a.fn.tab.noConflict=function(){return a.fn.tab=d,this};var e=function(c){c.preventDefault(),b.call(a(this),"show")};a(document).on("click.bs.tab.data-api",'[data-toggle="tab"]',e).on("click.bs.tab.data-api",'[data-toggle="pill"]',e)}(jQuery),+function(a){"use strict";function b(b){return this.each(function(){var d=a(this),e=d.data("bs.affix"),f="object"==typeof b&&b;e||d.data("bs.affix",e=new c(this,f)),"string"==typeof b&&e[b]()})}var c=function(b,d){this.options=a.extend({},c.DEFAULTS,d),this.$target=a(this.options.target).on("scroll.bs.affix.data-api",a.proxy(this.checkPosition,this)).on("click.bs.affix.data-api",a.proxy(this.checkPositionWithEventLoop,this)),this.$element=a(b),this.affixed=null,this.unpin=null,this.pinnedOffset=null,this.checkPosition()};c.VERSION="3.3.5",c.RESET="affix affix-top affix-bottom",c.DEFAULTS={offset:0,target:window},c.prototype.getState=function(a,b,c,d){var e=this.$target.scrollTop(),f=this.$element.offset(),g=this.$target.height();if(null!=c&&"top"==this.affixed)return c>e?"top":!1;if("bottom"==this.affixed)return null!=c?e+this.unpin<=f.top?!1:"bottom":a-d>=e+g?!1:"bottom";var h=null==this.affixed,i=h?e:f.top,j=h?g:b;return null!=c&&c>=e?"top":null!=d&&i+j>=a-d?"bottom":!1},c.prototype.getPinnedOffset=function(){if(this.pinnedOffset)return this.pinnedOffset;this.$element.removeClass(c.RESET).addClass("affix");var a=this.$target.scrollTop(),b=this.$element.offset();return this.pinnedOffset=b.top-a},c.prototype.checkPositionWithEventLoop=function(){setTimeout(a.proxy(this.checkPosition,this),1)},c.prototype.checkPosition=function(){if(this.$element.is(":visible")){var b=this.$element.height(),d=this.options.offset,e=d.top,f=d.bottom,g=Math.max(a(document).height(),a(document.body).height());"object"!=typeof d&&(f=e=d),"function"==typeof e&&(e=d.top(this.$element)),"function"==typeof f&&(f=d.bottom(this.$element));var h=this.getState(g,b,e,f);if(this.affixed!=h){null!=this.unpin&&this.$element.css("top","");var i="affix"+(h?"-"+h:""),j=a.Event(i+".bs.affix");if(this.$element.trigger(j),j.isDefaultPrevented())return;this.affixed=h,this.unpin="bottom"==h?this.getPinnedOffset():null,this.$element.removeClass(c.RESET).addClass(i).trigger(i.replace("affix","affixed")+".bs.affix")}"bottom"==h&&this.$element.offset({top:g-b-f})}};var d=a.fn.affix;a.fn.affix=b,a.fn.affix.Constructor=c,a.fn.affix.noConflict=function(){return a.fn.affix=d,this},a(window).on("load",function(){a('[data-spy="affix"]').each(function(){var c=a(this),d=c.data();d.offset=d.offset||{},null!=d.offsetBottom&&(d.offset.bottom=d.offsetBottom),null!=d.offsetTop&&(d.offset.top=d.offsetTop),b.call(c,d)})})}(jQuery);
\ No newline at end of file
diff --git a/web/static/js/jasny-bootstrap.js b/web/static/js/jasny-bootstrap.js
new file mode 100644
index 0000000000..9e7b21993c
--- /dev/null
+++ b/web/static/js/jasny-bootstrap.js
@@ -0,0 +1,1024 @@
+/*!
+ * Jasny Bootstrap v3.1.3 (http://jasny.github.io/bootstrap)
+ * Copyright 2012-2014 Arnold Daniels
+ * Licensed under Apache-2.0 (https://github.com/jasny/bootstrap/blob/master/LICENSE)
+ */
+
+if (typeof jQuery === 'undefined') { throw new Error('Jasny Bootstrap\'s JavaScript requires jQuery') }
+
+/* ========================================================================
+ * Bootstrap: transition.js v3.1.3
+ * http://getbootstrap.com/javascript/#transitions
+ * ========================================================================
+ * Copyright 2011-2014 Twitter, Inc.
+ * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
+ * ======================================================================== */
+
+
++function ($) {
+ 'use strict';
+
+ // CSS TRANSITION SUPPORT (Shoutout: http://www.modernizr.com/)
+ // ============================================================
+
+ function transitionEnd() {
+ var el = document.createElement('bootstrap')
+
+ var transEndEventNames = {
+ WebkitTransition : 'webkitTransitionEnd',
+ MozTransition : 'transitionend',
+ OTransition : 'oTransitionEnd otransitionend',
+ transition : 'transitionend'
+ }
+
+ for (var name in transEndEventNames) {
+ if (el.style[name] !== undefined) {
+ return { end: transEndEventNames[name] }
+ }
+ }
+
+ return false // explicit for ie8 ( ._.)
+ }
+
+ if ($.support.transition !== undefined) return // Prevent conflict with Twitter Bootstrap
+
+ // http://blog.alexmaccaw.com/css-transitions
+ $.fn.emulateTransitionEnd = function (duration) {
+ var called = false, $el = this
+ $(this).one($.support.transition.end, function () { called = true })
+ var callback = function () { if (!called) $($el).trigger($.support.transition.end) }
+ setTimeout(callback, duration)
+ return this
+ }
+
+ $(function () {
+ $.support.transition = transitionEnd()
+ })
+
+}(window.jQuery);
+
+/* ========================================================================
+ * Bootstrap: offcanvas.js v3.1.3
+ * http://jasny.github.io/bootstrap/javascript/#offcanvas
+ * ========================================================================
+ * Copyright 2013-2014 Arnold Daniels
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License")
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ======================================================================== */
+
++function ($) { "use strict";
+
+ // OFFCANVAS PUBLIC CLASS DEFINITION
+ // =================================
+
+ var OffCanvas = function (element, options) {
+ this.$element = $(element)
+ this.options = $.extend({}, OffCanvas.DEFAULTS, options)
+ this.state = null
+ this.placement = null
+
+ if (this.options.recalc) {
+ this.calcClone()
+ $(window).on('resize', $.proxy(this.recalc, this))
+ }
+
+ if (this.options.autohide)
+ $(document).on('click', $.proxy(this.autohide, this))
+
+ if (this.options.toggle) this.toggle()
+
+ if (this.options.disablescrolling) {
+ this.options.disableScrolling = this.options.disablescrolling
+ delete this.options.disablescrolling
+ }
+ }
+
+ OffCanvas.DEFAULTS = {
+ toggle: true,
+ placement: 'auto',
+ autohide: true,
+ recalc: true,
+ disableScrolling: true
+ }
+
+ OffCanvas.prototype.offset = function () {
+ switch (this.placement) {
+ case 'left':
+ case 'right': return this.$element.outerWidth()
+ case 'top':
+ case 'bottom': return this.$element.outerHeight()
+ }
+ }
+
+ OffCanvas.prototype.calcPlacement = function () {
+ if (this.options.placement !== 'auto') {
+ this.placement = this.options.placement
+ return
+ }
+
+ if (!this.$element.hasClass('in')) {
+ this.$element.css('visiblity', 'hidden !important').addClass('in')
+ }
+
+ var horizontal = $(window).width() / this.$element.width()
+ var vertical = $(window).height() / this.$element.height()
+
+ var element = this.$element
+ function ab(a, b) {
+ if (element.css(b) === 'auto') return a
+ if (element.css(a) === 'auto') return b
+
+ var size_a = parseInt(element.css(a), 10)
+ var size_b = parseInt(element.css(b), 10)
+
+ return size_a > size_b ? b : a
+ }
+
+ this.placement = horizontal >= vertical ? ab('left', 'right') : ab('top', 'bottom')
+
+ if (this.$element.css('visibility') === 'hidden !important') {
+ this.$element.removeClass('in').css('visiblity', '')
+ }
+ }
+
+ OffCanvas.prototype.opposite = function (placement) {
+ switch (placement) {
+ case 'top': return 'bottom'
+ case 'left': return 'right'
+ case 'bottom': return 'top'
+ case 'right': return 'left'
+ }
+ }
+
+ OffCanvas.prototype.getCanvasElements = function() {
+ // Return a set containing the canvas plus all fixed elements
+ var canvas = this.options.canvas ? $(this.options.canvas) : this.$element
+
+ var fixed_elements = canvas.find('*').filter(function() {
+ return $(this).css('position') === 'fixed'
+ }).not(this.options.exclude)
+
+ return canvas.add(fixed_elements)
+ }
+
+ OffCanvas.prototype.slide = function (elements, offset, callback) {
+ // Use jQuery animation if CSS transitions aren't supported
+ if (!$.support.transition) {
+ var anim = {}
+ anim[this.placement] = "+=" + offset
+ return elements.animate(anim, 350, callback)
+ }
+
+ var placement = this.placement
+ var opposite = this.opposite(placement)
+
+ elements.each(function() {
+ if ($(this).css(placement) !== 'auto')
+ $(this).css(placement, (parseInt($(this).css(placement), 10) || 0) + offset)
+
+ if ($(this).css(opposite) !== 'auto')
+ $(this).css(opposite, (parseInt($(this).css(opposite), 10) || 0) - offset)
+ })
+
+ this.$element
+ .one($.support.transition.end, callback)
+ .emulateTransitionEnd(350)
+ }
+
+ OffCanvas.prototype.disableScrolling = function() {
+ var bodyWidth = $('body').width()
+ var prop = 'padding-' + this.opposite(this.placement)
+
+ if ($('body').data('offcanvas-style') === undefined) {
+ $('body').data('offcanvas-style', $('body').attr('style') || '')
+ }
+
+ $('body').css('overflow', 'hidden')
+
+ if ($('body').width() > bodyWidth) {
+ var padding = parseInt($('body').css(prop), 10) + $('body').width() - bodyWidth
+
+ setTimeout(function() {
+ $('body').css(prop, padding)
+ }, 1)
+ }
+ }
+
+ OffCanvas.prototype.show = function () {
+ if (this.state) return
+
+ var startEvent = $.Event('show.bs.offcanvas')
+ this.$element.trigger(startEvent)
+ if (startEvent.isDefaultPrevented()) return
+
+ this.state = 'slide-in'
+ this.calcPlacement();
+
+ var elements = this.getCanvasElements()
+ var placement = this.placement
+ var opposite = this.opposite(placement)
+ var offset = this.offset()
+
+ if (elements.index(this.$element) !== -1) {
+ $(this.$element).data('offcanvas-style', $(this.$element).attr('style') || '')
+ this.$element.css(placement, -1 * offset)
+ this.$element.css(placement); // Workaround: Need to get the CSS property for it to be applied before the next line of code
+ }
+
+ elements.addClass('canvas-sliding').each(function() {
+ if ($(this).data('offcanvas-style') === undefined) $(this).data('offcanvas-style', $(this).attr('style') || '')
+ if ($(this).css('position') === 'static') $(this).css('position', 'relative')
+ if (($(this).css(placement) === 'auto' || $(this).css(placement) === '0px') &&
+ ($(this).css(opposite) === 'auto' || $(this).css(opposite) === '0px')) {
+ $(this).css(placement, 0)
+ }
+ })
+
+ if (this.options.disableScrolling) this.disableScrolling()
+
+ var complete = function () {
+ if (this.state != 'slide-in') return
+
+ this.state = 'slid'
+
+ elements.removeClass('canvas-sliding').addClass('canvas-slid')
+ this.$element.trigger('shown.bs.offcanvas')
+ }
+
+ setTimeout($.proxy(function() {
+ this.$element.addClass('in')
+ this.slide(elements, offset, $.proxy(complete, this))
+ }, this), 1)
+ }
+
+ OffCanvas.prototype.hide = function (fast) {
+ if (this.state !== 'slid') return
+
+ var startEvent = $.Event('hide.bs.offcanvas')
+ this.$element.trigger(startEvent)
+ if (startEvent.isDefaultPrevented()) return
+
+ this.state = 'slide-out'
+
+ var elements = $('.canvas-slid')
+ var placement = this.placement
+ var offset = -1 * this.offset()
+
+ var complete = function () {
+ if (this.state != 'slide-out') return
+
+ this.state = null
+ this.placement = null
+
+ this.$element.removeClass('in')
+
+ elements.removeClass('canvas-sliding')
+ elements.add(this.$element).add('body').each(function() {
+ $(this).attr('style', $(this).data('offcanvas-style')).removeData('offcanvas-style')
+ })
+
+ this.$element.trigger('hidden.bs.offcanvas')
+ }
+
+ elements.removeClass('canvas-slid').addClass('canvas-sliding')
+
+ setTimeout($.proxy(function() {
+ this.slide(elements, offset, $.proxy(complete, this))
+ }, this), 1)
+ }
+
+ OffCanvas.prototype.toggle = function () {
+ if (this.state === 'slide-in' || this.state === 'slide-out') return
+ this[this.state === 'slid' ? 'hide' : 'show']()
+ }
+
+ OffCanvas.prototype.calcClone = function() {
+ this.$calcClone = this.$element.clone()
+ .html('')
+ .addClass('offcanvas-clone').removeClass('in')
+ .appendTo($('body'))
+ }
+
+ OffCanvas.prototype.recalc = function () {
+ if (this.$calcClone.css('display') === 'none' || (this.state !== 'slid' && this.state !== 'slide-in')) return
+
+ this.state = null
+ this.placement = null
+ var elements = this.getCanvasElements()
+
+ this.$element.removeClass('in')
+
+ elements.removeClass('canvas-slid')
+ elements.add(this.$element).add('body').each(function() {
+ $(this).attr('style', $(this).data('offcanvas-style')).removeData('offcanvas-style')
+ })
+ }
+
+ OffCanvas.prototype.autohide = function (e) {
+ if ($(e.target).closest(this.$element).length === 0) this.hide()
+ }
+
+ // OFFCANVAS PLUGIN DEFINITION
+ // ==========================
+
+ var old = $.fn.offcanvas
+
+ $.fn.offcanvas = function (option) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.offcanvas')
+ var options = $.extend({}, OffCanvas.DEFAULTS, $this.data(), typeof option === 'object' && option)
+
+ if (!data) $this.data('bs.offcanvas', (data = new OffCanvas(this, options)))
+ if (typeof option === 'string') data[option]()
+ })
+ }
+
+ $.fn.offcanvas.Constructor = OffCanvas
+
+
+ // OFFCANVAS NO CONFLICT
+ // ====================
+
+ $.fn.offcanvas.noConflict = function () {
+ $.fn.offcanvas = old
+ return this
+ }
+
+
+ // OFFCANVAS DATA-API
+ // =================
+
+ $(document).on('click.bs.offcanvas.data-api', '[data-toggle=offcanvas]', function (e) {
+ var $this = $(this), href
+ var target = $this.attr('data-target')
+ || e.preventDefault()
+ || (href = $this.attr('href')) && href.replace(/.*(?=#[^\s]+$)/, '') //strip for ie7
+ var $canvas = $(target)
+ var data = $canvas.data('bs.offcanvas')
+ var option = data ? 'toggle' : $this.data()
+
+ e.stopPropagation()
+
+ if (data) data.toggle()
+ else $canvas.offcanvas(option)
+ })
+
+}(window.jQuery);
+
+/* ============================================================
+ * Bootstrap: rowlink.js v3.1.3
+ * http://jasny.github.io/bootstrap/javascript/#rowlink
+ * ============================================================
+ * Copyright 2012-2014 Arnold Daniels
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ============================================================ */
+
++function ($) { "use strict";
+
+ var Rowlink = function (element, options) {
+ this.$element = $(element)
+ this.options = $.extend({}, Rowlink.DEFAULTS, options)
+
+ this.$element.on('click.bs.rowlink', 'td:not(.rowlink-skip)', $.proxy(this.click, this))
+ }
+
+ Rowlink.DEFAULTS = {
+ target: "a"
+ }
+
+ Rowlink.prototype.click = function(e) {
+ var target = $(e.currentTarget).closest('tr').find(this.options.target)[0]
+ if ($(e.target)[0] === target) return
+
+ e.preventDefault();
+
+ if (target.click) {
+ target.click()
+ } else if (document.createEvent) {
+ var evt = document.createEvent("MouseEvents");
+ evt.initMouseEvent("click", true, true, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
+ target.dispatchEvent(evt);
+ }
+ }
+
+
+ // ROWLINK PLUGIN DEFINITION
+ // ===========================
+
+ var old = $.fn.rowlink
+
+ $.fn.rowlink = function (options) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.rowlink')
+ if (!data) $this.data('bs.rowlink', (data = new Rowlink(this, options)))
+ })
+ }
+
+ $.fn.rowlink.Constructor = Rowlink
+
+
+ // ROWLINK NO CONFLICT
+ // ====================
+
+ $.fn.rowlink.noConflict = function () {
+ $.fn.rowlink = old
+ return this
+ }
+
+
+ // ROWLINK DATA-API
+ // ==================
+
+ $(document).on('click.bs.rowlink.data-api', '[data-link="row"]', function (e) {
+ if ($(e.target).closest('.rowlink-skip').length !== 0) return
+
+ var $this = $(this)
+ if ($this.data('bs.rowlink')) return
+ $this.rowlink($this.data())
+ $(e.target).trigger('click.bs.rowlink')
+ })
+
+}(window.jQuery);
+
+/* ===========================================================
+ * Bootstrap: inputmask.js v3.1.0
+ * http://jasny.github.io/bootstrap/javascript/#inputmask
+ *
+ * Based on Masked Input plugin by Josh Bush (digitalbush.com)
+ * ===========================================================
+ * Copyright 2012-2014 Arnold Daniels
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License")
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================================================== */
+
++function ($) { "use strict";
+
+ var isIphone = (window.orientation !== undefined)
+ var isAndroid = navigator.userAgent.toLowerCase().indexOf("android") > -1
+ var isIE = window.navigator.appName == 'Microsoft Internet Explorer'
+
+ // INPUTMASK PUBLIC CLASS DEFINITION
+ // =================================
+
+ var Inputmask = function (element, options) {
+ if (isAndroid) return // No support because caret positioning doesn't work on Android
+
+ this.$element = $(element)
+ this.options = $.extend({}, Inputmask.DEFAULTS, options)
+ this.mask = String(this.options.mask)
+
+ this.init()
+ this.listen()
+
+ this.checkVal() //Perform initial check for existing values
+ }
+
+ Inputmask.DEFAULTS = {
+ mask: "",
+ placeholder: "_",
+ definitions: {
+ '9': "[0-9]",
+ 'a': "[A-Za-z]",
+ 'w': "[A-Za-z0-9]",
+ '*': "."
+ }
+ }
+
+ Inputmask.prototype.init = function() {
+ var defs = this.options.definitions
+ var len = this.mask.length
+
+ this.tests = []
+ this.partialPosition = this.mask.length
+ this.firstNonMaskPos = null
+
+ $.each(this.mask.split(""), $.proxy(function(i, c) {
+ if (c == '?') {
+ len--
+ this.partialPosition = i
+ } else if (defs[c]) {
+ this.tests.push(new RegExp(defs[c]))
+ if (this.firstNonMaskPos === null)
+ this.firstNonMaskPos = this.tests.length - 1
+ } else {
+ this.tests.push(null)
+ }
+ }, this))
+
+ this.buffer = $.map(this.mask.split(""), $.proxy(function(c, i) {
+ if (c != '?') return defs[c] ? this.options.placeholder : c
+ }, this))
+
+ this.focusText = this.$element.val()
+
+ this.$element.data("rawMaskFn", $.proxy(function() {
+ return $.map(this.buffer, function(c, i) {
+ return this.tests[i] && c != this.options.placeholder ? c : null
+ }).join('')
+ }, this))
+ }
+
+ Inputmask.prototype.listen = function() {
+ if (this.$element.attr("readonly")) return
+
+ var pasteEventName = (isIE ? 'paste' : 'input') + ".mask"
+
+ this.$element
+ .on("unmask.bs.inputmask", $.proxy(this.unmask, this))
+
+ .on("focus.bs.inputmask", $.proxy(this.focusEvent, this))
+ .on("blur.bs.inputmask", $.proxy(this.blurEvent, this))
+
+ .on("keydown.bs.inputmask", $.proxy(this.keydownEvent, this))
+ .on("keypress.bs.inputmask", $.proxy(this.keypressEvent, this))
+
+ .on(pasteEventName, $.proxy(this.pasteEvent, this))
+ }
+
+ //Helper Function for Caret positioning
+ Inputmask.prototype.caret = function(begin, end) {
+ if (this.$element.length === 0) return
+ if (typeof begin == 'number') {
+ end = (typeof end == 'number') ? end : begin
+ return this.$element.each(function() {
+ if (this.setSelectionRange) {
+ this.setSelectionRange(begin, end)
+ } else if (this.createTextRange) {
+ var range = this.createTextRange()
+ range.collapse(true)
+ range.moveEnd('character', end)
+ range.moveStart('character', begin)
+ range.select()
+ }
+ })
+ } else {
+ if (this.$element[0].setSelectionRange) {
+ begin = this.$element[0].selectionStart
+ end = this.$element[0].selectionEnd
+ } else if (document.selection && document.selection.createRange) {
+ var range = document.selection.createRange()
+ begin = 0 - range.duplicate().moveStart('character', -100000)
+ end = begin + range.text.length
+ }
+ return {
+ begin: begin,
+ end: end
+ }
+ }
+ }
+
+ Inputmask.prototype.seekNext = function(pos) {
+ var len = this.mask.length
+ while (++pos <= len && !this.tests[pos]);
+
+ return pos
+ }
+
+ Inputmask.prototype.seekPrev = function(pos) {
+ while (--pos >= 0 && !this.tests[pos]);
+
+ return pos
+ }
+
+ Inputmask.prototype.shiftL = function(begin,end) {
+ var len = this.mask.length
+
+ if (begin < 0) return
+
+ for (var i = begin, j = this.seekNext(end); i < len; i++) {
+ if (this.tests[i]) {
+ if (j < len && this.tests[i].test(this.buffer[j])) {
+ this.buffer[i] = this.buffer[j]
+ this.buffer[j] = this.options.placeholder
+ } else
+ break
+ j = this.seekNext(j)
+ }
+ }
+ this.writeBuffer()
+ this.caret(Math.max(this.firstNonMaskPos, begin))
+ }
+
+ Inputmask.prototype.shiftR = function(pos) {
+ var len = this.mask.length
+
+ for (var i = pos, c = this.options.placeholder; i < len; i++) {
+ if (this.tests[i]) {
+ var j = this.seekNext(i)
+ var t = this.buffer[i]
+ this.buffer[i] = c
+ if (j < len && this.tests[j].test(t))
+ c = t
+ else
+ break
+ }
+ }
+ },
+
+ Inputmask.prototype.unmask = function() {
+ this.$element
+ .unbind(".mask")
+ .removeData("inputmask")
+ }
+
+ Inputmask.prototype.focusEvent = function() {
+ this.focusText = this.$element.val()
+ var len = this.mask.length
+ var pos = this.checkVal()
+ this.writeBuffer()
+
+ var that = this
+ var moveCaret = function() {
+ if (pos == len)
+ that.caret(0, pos)
+ else
+ that.caret(pos)
+ }
+
+ moveCaret()
+ setTimeout(moveCaret, 50)
+ }
+
+ Inputmask.prototype.blurEvent = function() {
+ this.checkVal()
+ if (this.$element.val() !== this.focusText)
+ this.$element.trigger('change')
+ }
+
+ Inputmask.prototype.keydownEvent = function(e) {
+ var k = e.which
+
+ //backspace, delete, and escape get special treatment
+ if (k == 8 || k == 46 || (isIphone && k == 127)) {
+ var pos = this.caret(),
+ begin = pos.begin,
+ end = pos.end
+
+ if (end - begin === 0) {
+ begin = k != 46 ? this.seekPrev(begin) : (end = this.seekNext(begin - 1))
+ end = k == 46 ? this.seekNext(end) : end
+ }
+ this.clearBuffer(begin, end)
+ this.shiftL(begin, end - 1)
+
+ return false
+ } else if (k == 27) {//escape
+ this.$element.val(this.focusText)
+ this.caret(0, this.checkVal())
+ return false
+ }
+ }
+
+ Inputmask.prototype.keypressEvent = function(e) {
+ var len = this.mask.length
+
+ var k = e.which,
+ pos = this.caret()
+
+ if (e.ctrlKey || e.altKey || e.metaKey || k < 32) {//Ignore
+ return true
+ } else if (k) {
+ if (pos.end - pos.begin !== 0) {
+ this.clearBuffer(pos.begin, pos.end)
+ this.shiftL(pos.begin, pos.end - 1)
+ }
+
+ var p = this.seekNext(pos.begin - 1)
+ if (p < len) {
+ var c = String.fromCharCode(k)
+ if (this.tests[p].test(c)) {
+ this.shiftR(p)
+ this.buffer[p] = c
+ this.writeBuffer()
+ var next = this.seekNext(p)
+ this.caret(next)
+ }
+ }
+ return false
+ }
+ }
+
+ Inputmask.prototype.pasteEvent = function() {
+ var that = this
+
+ setTimeout(function() {
+ that.caret(that.checkVal(true))
+ }, 0)
+ }
+
+ Inputmask.prototype.clearBuffer = function(start, end) {
+ var len = this.mask.length
+
+ for (var i = start; i < end && i < len; i++) {
+ if (this.tests[i])
+ this.buffer[i] = this.options.placeholder
+ }
+ }
+
+ Inputmask.prototype.writeBuffer = function() {
+ return this.$element.val(this.buffer.join('')).val()
+ }
+
+ Inputmask.prototype.checkVal = function(allow) {
+ var len = this.mask.length
+ //try to place characters where they belong
+ var test = this.$element.val()
+ var lastMatch = -1
+
+ for (var i = 0, pos = 0; i < len; i++) {
+ if (this.tests[i]) {
+ this.buffer[i] = this.options.placeholder
+ while (pos++ < test.length) {
+ var c = test.charAt(pos - 1)
+ if (this.tests[i].test(c)) {
+ this.buffer[i] = c
+ lastMatch = i
+ break
+ }
+ }
+ if (pos > test.length)
+ break
+ } else if (this.buffer[i] == test.charAt(pos) && i != this.partialPosition) {
+ pos++
+ lastMatch = i
+ }
+ }
+ if (!allow && lastMatch + 1 < this.partialPosition) {
+ this.$element.val("")
+ this.clearBuffer(0, len)
+ } else if (allow || lastMatch + 1 >= this.partialPosition) {
+ this.writeBuffer()
+ if (!allow) this.$element.val(this.$element.val().substring(0, lastMatch + 1))
+ }
+ return (this.partialPosition ? i : this.firstNonMaskPos)
+ }
+
+
+ // INPUTMASK PLUGIN DEFINITION
+ // ===========================
+
+ var old = $.fn.inputmask
+
+ $.fn.inputmask = function (options) {
+ return this.each(function () {
+ var $this = $(this)
+ var data = $this.data('bs.inputmask')
+
+ if (!data) $this.data('bs.inputmask', (data = new Inputmask(this, options)))
+ })
+ }
+
+ $.fn.inputmask.Constructor = Inputmask
+
+
+ // INPUTMASK NO CONFLICT
+ // ====================
+
+ $.fn.inputmask.noConflict = function () {
+ $.fn.inputmask = old
+ return this
+ }
+
+
+ // INPUTMASK DATA-API
+ // ==================
+
+ $(document).on('focus.bs.inputmask.data-api', '[data-mask]', function (e) {
+ var $this = $(this)
+ if ($this.data('bs.inputmask')) return
+ $this.inputmask($this.data())
+ })
+
+}(window.jQuery);
+
+/* ===========================================================
+ * Bootstrap: fileinput.js v3.1.3
+ * http://jasny.github.com/bootstrap/javascript/#fileinput
+ * ===========================================================
+ * Copyright 2012-2014 Arnold Daniels
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License")
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ * ========================================================== */
+
++function ($) { "use strict";
+
+ var isIE = window.navigator.appName == 'Microsoft Internet Explorer'
+
+ // FILEUPLOAD PUBLIC CLASS DEFINITION
+ // =================================
+
+ var Fileinput = function (element, options) {
+ this.$element = $(element)
+
+ this.$input = this.$element.find(':file')
+ if (this.$input.length === 0) return
+
+ this.name = this.$input.attr('name') || options.name
+
+ this.$hidden = this.$element.find('input[type=hidden][name="' + this.name + '"]')
+ if (this.$hidden.length === 0) {
+ this.$hidden = $('').insertBefore(this.$input)
+ }
+
+ this.$preview = this.$element.find('.fileinput-preview')
+ var height = this.$preview.css('height')
+ if (this.$preview.css('display') !== 'inline' && height !== '0px' && height !== 'none') {
+ this.$preview.css('line-height', height)
+ }
+
+ this.original = {
+ exists: this.$element.hasClass('fileinput-exists'),
+ preview: this.$preview.html(),
+ hiddenVal: this.$hidden.val()
+ }
+
+ this.listen()
+ }
+
+ Fileinput.prototype.listen = function() {
+ this.$input.on('change.bs.fileinput', $.proxy(this.change, this))
+ $(this.$input[0].form).on('reset.bs.fileinput', $.proxy(this.reset, this))
+
+ this.$element.find('[data-trigger="fileinput"]').on('click.bs.fileinput', $.proxy(this.trigger, this))
+ this.$element.find('[data-dismiss="fileinput"]').on('click.bs.fileinput', $.proxy(this.clear, this))
+ },
+
+ Fileinput.prototype.change = function(e) {
+ var files = e.target.files === undefined ? (e.target && e.target.value ? [{ name: e.target.value.replace(/^.+\\/, '')}] : []) : e.target.files
+
+ e.stopPropagation()
+
+ if (files.length === 0) {
+ this.clear()
+ return
+ }
+
+ this.$hidden.val('')
+ this.$hidden.attr('name', '')
+ this.$input.attr('name', this.name)
+
+ var file = files[0]
+
+ if (this.$preview.length > 0 && (typeof file.type !== "undefined" ? file.type.match(/^image\/(gif|png|jpeg)$/) : file.name.match(/\.(gif|png|jpe?g)$/i)) && typeof FileReader !== "undefined") {
+ var reader = new FileReader()
+ var preview = this.$preview
+ var element = this.$element
+
+ reader.onload = function(re) {
+ var $img = $('
')
+ $img[0].src = re.target.result
+ files[0].result = re.target.result
+
+ element.find('.fileinput-filename').text(file.name)
+
+ // if parent has max-height, using `(max-)height: 100%` on child doesn't take padding and border into account
+ if (preview.css('max-height') != 'none') $img.css('max-height', parseInt(preview.css('max-height'), 10) - parseInt(preview.css('padding-top'), 10) - parseInt(preview.css('padding-bottom'), 10) - parseInt(preview.css('border-top'), 10) - parseInt(preview.css('border-bottom'), 10))
+
+ preview.html($img)
+ element.addClass('fileinput-exists').removeClass('fileinput-new')
+
+ element.trigger('change.bs.fileinput', files)
+ }
+
+ reader.readAsDataURL(file)
+ } else {
+ this.$element.find('.fileinput-filename').text(file.name)
+ this.$preview.text(file.name)
+
+ this.$element.addClass('fileinput-exists').removeClass('fileinput-new')
+
+ this.$element.trigger('change.bs.fileinput')
+ }
+ },
+
+ Fileinput.prototype.clear = function(e) {
+ if (e) e.preventDefault()
+
+ this.$hidden.val('')
+ this.$hidden.attr('name', this.name)
+ this.$input.attr('name', '')
+
+ //ie8+ doesn't support changing the value of input with type=file so clone instead
+ if (isIE) {
+ var inputClone = this.$input.clone(true);
+ this.$input.after(inputClone);
+ this.$input.remove();
+ this.$input = inputClone;
+ } else {
+ this.$input.val('')
+ }
+
+ this.$preview.html('')
+ this.$element.find('.fileinput-filename').text('')
+ this.$element.addClass('fileinput-new').removeClass('fileinput-exists')
+
+ if (e !== undefined) {
+ this.$input.trigger('change')
+ this.$element.trigger('clear.bs.fileinput')
+ }
+ },
+
+ Fileinput.prototype.reset = function() {
+ this.clear()
+
+ this.$hidden.val(this.original.hiddenVal)
+ this.$preview.html(this.original.preview)
+ this.$element.find('.fileinput-filename').text('')
+
+ if (this.original.exists) this.$element.addClass('fileinput-exists').removeClass('fileinput-new')
+ else this.$element.addClass('fileinput-new').removeClass('fileinput-exists')
+
+ this.$element.trigger('reset.bs.fileinput')
+ },
+
+ Fileinput.prototype.trigger = function(e) {
+ this.$input.trigger('click')
+ e.preventDefault()
+ }
+
+
+ // FILEUPLOAD PLUGIN DEFINITION
+ // ===========================
+
+ var old = $.fn.fileinput
+
+ $.fn.fileinput = function (options) {
+ return this.each(function () {
+ var $this = $(this),
+ data = $this.data('bs.fileinput')
+ if (!data) $this.data('bs.fileinput', (data = new Fileinput(this, options)))
+ if (typeof options == 'string') data[options]()
+ })
+ }
+
+ $.fn.fileinput.Constructor = Fileinput
+
+
+ // FILEINPUT NO CONFLICT
+ // ====================
+
+ $.fn.fileinput.noConflict = function () {
+ $.fn.fileinput = old
+ return this
+ }
+
+
+ // FILEUPLOAD DATA-API
+ // ==================
+
+ $(document).on('click.fileinput.data-api', '[data-provides="fileinput"]', function (e) {
+ var $this = $(this)
+ if ($this.data('bs.fileinput')) return
+ $this.fileinput($this.data())
+
+ var $target = $(e.target).closest('[data-dismiss="fileinput"],[data-trigger="fileinput"]');
+ if ($target.length > 0) {
+ e.preventDefault()
+ $target.trigger('click.bs.fileinput')
+ }
+ })
+
+}(window.jQuery);
diff --git a/web/static/js/jasny-bootstrap.min.js b/web/static/js/jasny-bootstrap.min.js
new file mode 100644
index 0000000000..6eb175625c
--- /dev/null
+++ b/web/static/js/jasny-bootstrap.min.js
@@ -0,0 +1,6 @@
+/*!
+ * Jasny Bootstrap v3.1.3 (http://jasny.github.io/bootstrap)
+ * Copyright 2012-2014 Arnold Daniels
+ * Licensed under Apache-2.0 (https://github.com/jasny/bootstrap/blob/master/LICENSE)
+ */
+if("undefined"==typeof jQuery)throw new Error("Jasny Bootstrap's JavaScript requires jQuery");+function(a){"use strict";function b(){var a=document.createElement("bootstrap"),b={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var c in b)if(void 0!==a.style[c])return{end:b[c]};return!1}void 0===a.support.transition&&(a.fn.emulateTransitionEnd=function(b){var c=!1,d=this;a(this).one(a.support.transition.end,function(){c=!0});var e=function(){c||a(d).trigger(a.support.transition.end)};return setTimeout(e,b),this},a(function(){a.support.transition=b()}))}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.state=null,this.placement=null,this.options.recalc&&(this.calcClone(),a(window).on("resize",a.proxy(this.recalc,this))),this.options.autohide&&a(document).on("click",a.proxy(this.autohide,this)),this.options.toggle&&this.toggle(),this.options.disablescrolling&&(this.options.disableScrolling=this.options.disablescrolling,delete this.options.disablescrolling)};b.DEFAULTS={toggle:!0,placement:"auto",autohide:!0,recalc:!0,disableScrolling:!0},b.prototype.offset=function(){switch(this.placement){case"left":case"right":return this.$element.outerWidth();case"top":case"bottom":return this.$element.outerHeight()}},b.prototype.calcPlacement=function(){function b(a,b){if("auto"===e.css(b))return a;if("auto"===e.css(a))return b;var c=parseInt(e.css(a),10),d=parseInt(e.css(b),10);return c>d?b:a}if("auto"!==this.options.placement)return void(this.placement=this.options.placement);this.$element.hasClass("in")||this.$element.css("visiblity","hidden !important").addClass("in");var c=a(window).width()/this.$element.width(),d=a(window).height()/this.$element.height(),e=this.$element;this.placement=c>=d?b("left","right"):b("top","bottom"),"hidden !important"===this.$element.css("visibility")&&this.$element.removeClass("in").css("visiblity","")},b.prototype.opposite=function(a){switch(a){case"top":return"bottom";case"left":return"right";case"bottom":return"top";case"right":return"left"}},b.prototype.getCanvasElements=function(){var b=this.options.canvas?a(this.options.canvas):this.$element,c=b.find("*").filter(function(){return"fixed"===a(this).css("position")}).not(this.options.exclude);return b.add(c)},b.prototype.slide=function(b,c,d){if(!a.support.transition){var e={};return e[this.placement]="+="+c,b.animate(e,350,d)}var f=this.placement,g=this.opposite(f);b.each(function(){"auto"!==a(this).css(f)&&a(this).css(f,(parseInt(a(this).css(f),10)||0)+c),"auto"!==a(this).css(g)&&a(this).css(g,(parseInt(a(this).css(g),10)||0)-c)}),this.$element.one(a.support.transition.end,d).emulateTransitionEnd(350)},b.prototype.disableScrolling=function(){var b=a("body").width(),c="padding-"+this.opposite(this.placement);if(void 0===a("body").data("offcanvas-style")&&a("body").data("offcanvas-style",a("body").attr("style")||""),a("body").css("overflow","hidden"),a("body").width()>b){var d=parseInt(a("body").css(c),10)+a("body").width()-b;setTimeout(function(){a("body").css(c,d)},1)}},b.prototype.show=function(){if(!this.state){var b=a.Event("show.bs.offcanvas");if(this.$element.trigger(b),!b.isDefaultPrevented()){this.state="slide-in",this.calcPlacement();var c=this.getCanvasElements(),d=this.placement,e=this.opposite(d),f=this.offset();-1!==c.index(this.$element)&&(a(this.$element).data("offcanvas-style",a(this.$element).attr("style")||""),this.$element.css(d,-1*f),this.$element.css(d)),c.addClass("canvas-sliding").each(function(){void 0===a(this).data("offcanvas-style")&&a(this).data("offcanvas-style",a(this).attr("style")||""),"static"===a(this).css("position")&&a(this).css("position","relative"),"auto"!==a(this).css(d)&&"0px"!==a(this).css(d)||"auto"!==a(this).css(e)&&"0px"!==a(this).css(e)||a(this).css(d,0)}),this.options.disableScrolling&&this.disableScrolling();var g=function(){"slide-in"==this.state&&(this.state="slid",c.removeClass("canvas-sliding").addClass("canvas-slid"),this.$element.trigger("shown.bs.offcanvas"))};setTimeout(a.proxy(function(){this.$element.addClass("in"),this.slide(c,f,a.proxy(g,this))},this),1)}}},b.prototype.hide=function(){if("slid"===this.state){var b=a.Event("hide.bs.offcanvas");if(this.$element.trigger(b),!b.isDefaultPrevented()){this.state="slide-out";var c=a(".canvas-slid"),d=(this.placement,-1*this.offset()),e=function(){"slide-out"==this.state&&(this.state=null,this.placement=null,this.$element.removeClass("in"),c.removeClass("canvas-sliding"),c.add(this.$element).add("body").each(function(){a(this).attr("style",a(this).data("offcanvas-style")).removeData("offcanvas-style")}),this.$element.trigger("hidden.bs.offcanvas"))};c.removeClass("canvas-slid").addClass("canvas-sliding"),setTimeout(a.proxy(function(){this.slide(c,d,a.proxy(e,this))},this),1)}}},b.prototype.toggle=function(){"slide-in"!==this.state&&"slide-out"!==this.state&&this["slid"===this.state?"hide":"show"]()},b.prototype.calcClone=function(){this.$calcClone=this.$element.clone().html("").addClass("offcanvas-clone").removeClass("in").appendTo(a("body"))},b.prototype.recalc=function(){if("none"!==this.$calcClone.css("display")&&("slid"===this.state||"slide-in"===this.state)){this.state=null,this.placement=null;var b=this.getCanvasElements();this.$element.removeClass("in"),b.removeClass("canvas-slid"),b.add(this.$element).add("body").each(function(){a(this).attr("style",a(this).data("offcanvas-style")).removeData("offcanvas-style")})}},b.prototype.autohide=function(b){0===a(b.target).closest(this.$element).length&&this.hide()};var c=a.fn.offcanvas;a.fn.offcanvas=function(c){return this.each(function(){var d=a(this),e=d.data("bs.offcanvas"),f=a.extend({},b.DEFAULTS,d.data(),"object"==typeof c&&c);e||d.data("bs.offcanvas",e=new b(this,f)),"string"==typeof c&&e[c]()})},a.fn.offcanvas.Constructor=b,a.fn.offcanvas.noConflict=function(){return a.fn.offcanvas=c,this},a(document).on("click.bs.offcanvas.data-api","[data-toggle=offcanvas]",function(b){var c,d=a(this),e=d.attr("data-target")||b.preventDefault()||(c=d.attr("href"))&&c.replace(/.*(?=#[^\s]+$)/,""),f=a(e),g=f.data("bs.offcanvas"),h=g?"toggle":d.data();b.stopPropagation(),g?g.toggle():f.offcanvas(h)})}(window.jQuery),+function(a){"use strict";var b=function(c,d){this.$element=a(c),this.options=a.extend({},b.DEFAULTS,d),this.$element.on("click.bs.rowlink","td:not(.rowlink-skip)",a.proxy(this.click,this))};b.DEFAULTS={target:"a"},b.prototype.click=function(b){var c=a(b.currentTarget).closest("tr").find(this.options.target)[0];if(a(b.target)[0]!==c)if(b.preventDefault(),c.click)c.click();else if(document.createEvent){var d=document.createEvent("MouseEvents");d.initMouseEvent("click",!0,!0,window,0,0,0,0,0,!1,!1,!1,!1,0,null),c.dispatchEvent(d)}};var c=a.fn.rowlink;a.fn.rowlink=function(c){return this.each(function(){var d=a(this),e=d.data("bs.rowlink");e||d.data("bs.rowlink",e=new b(this,c))})},a.fn.rowlink.Constructor=b,a.fn.rowlink.noConflict=function(){return a.fn.rowlink=c,this},a(document).on("click.bs.rowlink.data-api",'[data-link="row"]',function(b){if(0===a(b.target).closest(".rowlink-skip").length){var c=a(this);c.data("bs.rowlink")||(c.rowlink(c.data()),a(b.target).trigger("click.bs.rowlink"))}})}(window.jQuery),+function(a){"use strict";var b=void 0!==window.orientation,c=navigator.userAgent.toLowerCase().indexOf("android")>-1,d="Microsoft Internet Explorer"==window.navigator.appName,e=function(b,d){c||(this.$element=a(b),this.options=a.extend({},e.DEFAULTS,d),this.mask=String(this.options.mask),this.init(),this.listen(),this.checkVal())};e.DEFAULTS={mask:"",placeholder:"_",definitions:{9:"[0-9]",a:"[A-Za-z]",w:"[A-Za-z0-9]","*":"."}},e.prototype.init=function(){var b=this.options.definitions,c=this.mask.length;this.tests=[],this.partialPosition=this.mask.length,this.firstNonMaskPos=null,a.each(this.mask.split(""),a.proxy(function(a,d){"?"==d?(c--,this.partialPosition=a):b[d]?(this.tests.push(new RegExp(b[d])),null===this.firstNonMaskPos&&(this.firstNonMaskPos=this.tests.length-1)):this.tests.push(null)},this)),this.buffer=a.map(this.mask.split(""),a.proxy(function(a){return"?"!=a?b[a]?this.options.placeholder:a:void 0},this)),this.focusText=this.$element.val(),this.$element.data("rawMaskFn",a.proxy(function(){return a.map(this.buffer,function(a,b){return this.tests[b]&&a!=this.options.placeholder?a:null}).join("")},this))},e.prototype.listen=function(){if(!this.$element.attr("readonly")){var b=(d?"paste":"input")+".mask";this.$element.on("unmask.bs.inputmask",a.proxy(this.unmask,this)).on("focus.bs.inputmask",a.proxy(this.focusEvent,this)).on("blur.bs.inputmask",a.proxy(this.blurEvent,this)).on("keydown.bs.inputmask",a.proxy(this.keydownEvent,this)).on("keypress.bs.inputmask",a.proxy(this.keypressEvent,this)).on(b,a.proxy(this.pasteEvent,this))}},e.prototype.caret=function(a,b){if(0!==this.$element.length){if("number"==typeof a)return b="number"==typeof b?b:a,this.$element.each(function(){if(this.setSelectionRange)this.setSelectionRange(a,b);else if(this.createTextRange){var c=this.createTextRange();c.collapse(!0),c.moveEnd("character",b),c.moveStart("character",a),c.select()}});if(this.$element[0].setSelectionRange)a=this.$element[0].selectionStart,b=this.$element[0].selectionEnd;else if(document.selection&&document.selection.createRange){var c=document.selection.createRange();a=0-c.duplicate().moveStart("character",-1e5),b=a+c.text.length}return{begin:a,end:b}}},e.prototype.seekNext=function(a){for(var b=this.mask.length;++a<=b&&!this.tests[a];);return a},e.prototype.seekPrev=function(a){for(;--a>=0&&!this.tests[a];);return a},e.prototype.shiftL=function(a,b){var c=this.mask.length;if(!(0>a)){for(var d=a,e=this.seekNext(b);c>d;d++)if(this.tests[d]){if(!(c>e&&this.tests[d].test(this.buffer[e])))break;this.buffer[d]=this.buffer[e],this.buffer[e]=this.options.placeholder,e=this.seekNext(e)}this.writeBuffer(),this.caret(Math.max(this.firstNonMaskPos,a))}},e.prototype.shiftR=function(a){for(var b=this.mask.length,c=a,d=this.options.placeholder;b>c;c++)if(this.tests[c]){var e=this.seekNext(c),f=this.buffer[c];if(this.buffer[c]=d,!(b>e&&this.tests[e].test(f)))break;d=f}},e.prototype.unmask=function(){this.$element.unbind(".mask").removeData("inputmask")},e.prototype.focusEvent=function(){this.focusText=this.$element.val();var a=this.mask.length,b=this.checkVal();this.writeBuffer();var c=this,d=function(){b==a?c.caret(0,b):c.caret(b)};d(),setTimeout(d,50)},e.prototype.blurEvent=function(){this.checkVal(),this.$element.val()!==this.focusText&&this.$element.trigger("change")},e.prototype.keydownEvent=function(a){var c=a.which;if(8==c||46==c||b&&127==c){var d=this.caret(),e=d.begin,f=d.end;return f-e===0&&(e=46!=c?this.seekPrev(e):f=this.seekNext(e-1),f=46==c?this.seekNext(f):f),this.clearBuffer(e,f),this.shiftL(e,f-1),!1}return 27==c?(this.$element.val(this.focusText),this.caret(0,this.checkVal()),!1):void 0},e.prototype.keypressEvent=function(a){var b=this.mask.length,c=a.which,d=this.caret();if(a.ctrlKey||a.altKey||a.metaKey||32>c)return!0;if(c){d.end-d.begin!==0&&(this.clearBuffer(d.begin,d.end),this.shiftL(d.begin,d.end-1));var e=this.seekNext(d.begin-1);if(b>e){var f=String.fromCharCode(c);if(this.tests[e].test(f)){this.shiftR(e),this.buffer[e]=f,this.writeBuffer();var g=this.seekNext(e);this.caret(g)}}return!1}},e.prototype.pasteEvent=function(){var a=this;setTimeout(function(){a.caret(a.checkVal(!0))},0)},e.prototype.clearBuffer=function(a,b){for(var c=this.mask.length,d=a;b>d&&c>d;d++)this.tests[d]&&(this.buffer[d]=this.options.placeholder)},e.prototype.writeBuffer=function(){return this.$element.val(this.buffer.join("")).val()},e.prototype.checkVal=function(a){for(var b=this.mask.length,c=this.$element.val(),d=-1,e=0,f=0;b>e;e++)if(this.tests[e]){for(this.buffer[e]=this.options.placeholder;f++c.length)break}else this.buffer[e]==c.charAt(f)&&e!=this.partialPosition&&(f++,d=e);return!a&&d+1=this.partialPosition)&&(this.writeBuffer(),a||this.$element.val(this.$element.val().substring(0,d+1))),this.partialPosition?e:this.firstNonMaskPos};var f=a.fn.inputmask;a.fn.inputmask=function(b){return this.each(function(){var c=a(this),d=c.data("bs.inputmask");d||c.data("bs.inputmask",d=new e(this,b))})},a.fn.inputmask.Constructor=e,a.fn.inputmask.noConflict=function(){return a.fn.inputmask=f,this},a(document).on("focus.bs.inputmask.data-api","[data-mask]",function(){var b=a(this);b.data("bs.inputmask")||b.inputmask(b.data())})}(window.jQuery),+function(a){"use strict";var b="Microsoft Internet Explorer"==window.navigator.appName,c=function(b,c){if(this.$element=a(b),this.$input=this.$element.find(":file"),0!==this.$input.length){this.name=this.$input.attr("name")||c.name,this.$hidden=this.$element.find('input[type=hidden][name="'+this.name+'"]'),0===this.$hidden.length&&(this.$hidden=a('').insertBefore(this.$input)),this.$preview=this.$element.find(".fileinput-preview");var d=this.$preview.css("height");"inline"!==this.$preview.css("display")&&"0px"!==d&&"none"!==d&&this.$preview.css("line-height",d),this.original={exists:this.$element.hasClass("fileinput-exists"),preview:this.$preview.html(),hiddenVal:this.$hidden.val()},this.listen()}};c.prototype.listen=function(){this.$input.on("change.bs.fileinput",a.proxy(this.change,this)),a(this.$input[0].form).on("reset.bs.fileinput",a.proxy(this.reset,this)),this.$element.find('[data-trigger="fileinput"]').on("click.bs.fileinput",a.proxy(this.trigger,this)),this.$element.find('[data-dismiss="fileinput"]').on("click.bs.fileinput",a.proxy(this.clear,this))},c.prototype.change=function(b){var c=void 0===b.target.files?b.target&&b.target.value?[{name:b.target.value.replace(/^.+\\/,"")}]:[]:b.target.files;if(b.stopPropagation(),0===c.length)return void this.clear();this.$hidden.val(""),this.$hidden.attr("name",""),this.$input.attr("name",this.name);var d=c[0];if(this.$preview.length>0&&("undefined"!=typeof d.type?d.type.match(/^image\/(gif|png|jpeg)$/):d.name.match(/\.(gif|png|jpe?g)$/i))&&"undefined"!=typeof FileReader){var e=new FileReader,f=this.$preview,g=this.$element;e.onload=function(b){var e=a("
");e[0].src=b.target.result,c[0].result=b.target.result,g.find(".fileinput-filename").text(d.name),"none"!=f.css("max-height")&&e.css("max-height",parseInt(f.css("max-height"),10)-parseInt(f.css("padding-top"),10)-parseInt(f.css("padding-bottom"),10)-parseInt(f.css("border-top"),10)-parseInt(f.css("border-bottom"),10)),f.html(e),g.addClass("fileinput-exists").removeClass("fileinput-new"),g.trigger("change.bs.fileinput",c)},e.readAsDataURL(d)}else this.$element.find(".fileinput-filename").text(d.name),this.$preview.text(d.name),this.$element.addClass("fileinput-exists").removeClass("fileinput-new"),this.$element.trigger("change.bs.fileinput")},c.prototype.clear=function(a){if(a&&a.preventDefault(),this.$hidden.val(""),this.$hidden.attr("name",this.name),this.$input.attr("name",""),b){var c=this.$input.clone(!0);this.$input.after(c),this.$input.remove(),this.$input=c}else this.$input.val("");this.$preview.html(""),this.$element.find(".fileinput-filename").text(""),this.$element.addClass("fileinput-new").removeClass("fileinput-exists"),void 0!==a&&(this.$input.trigger("change"),this.$element.trigger("clear.bs.fileinput"))},c.prototype.reset=function(){this.clear(),this.$hidden.val(this.original.hiddenVal),this.$preview.html(this.original.preview),this.$element.find(".fileinput-filename").text(""),this.original.exists?this.$element.addClass("fileinput-exists").removeClass("fileinput-new"):this.$element.addClass("fileinput-new").removeClass("fileinput-exists"),this.$element.trigger("reset.bs.fileinput")},c.prototype.trigger=function(a){this.$input.trigger("click"),a.preventDefault()};var d=a.fn.fileinput;a.fn.fileinput=function(b){return this.each(function(){var d=a(this),e=d.data("bs.fileinput");e||d.data("bs.fileinput",e=new c(this,b)),"string"==typeof b&&e[b]()})},a.fn.fileinput.Constructor=c,a.fn.fileinput.noConflict=function(){return a.fn.fileinput=d,this},a(document).on("click.fileinput.data-api",'[data-provides="fileinput"]',function(b){var c=a(this);if(!c.data("bs.fileinput")){c.fileinput(c.data());var d=a(b.target).closest('[data-dismiss="fileinput"],[data-trigger="fileinput"]');d.length>0&&(b.preventDefault(),d.trigger("click.bs.fileinput"))}})}(window.jQuery);
\ No newline at end of file
diff --git a/web/static/js/react-bootstrap-0.25.1.js b/web/static/js/react-bootstrap-0.25.1.js
new file mode 100644
index 0000000000..db53266122
--- /dev/null
+++ b/web/static/js/react-bootstrap-0.25.1.js
@@ -0,0 +1,15678 @@
+(function webpackUniversalModuleDefinition(root, factory) {
+ if(typeof exports === 'object' && typeof module === 'object')
+ module.exports = factory(require("react"));
+ else if(typeof define === 'function' && define.amd)
+ define(["react"], factory);
+ else if(typeof exports === 'object')
+ exports["ReactBootstrap"] = factory(require("react"));
+ else
+ root["ReactBootstrap"] = factory(root["React"]);
+})(this, function(__WEBPACK_EXTERNAL_MODULE_32__) {
+return /******/ (function(modules) { // webpackBootstrap
+/******/ // The module cache
+/******/ var installedModules = {};
+
+/******/ // The require function
+/******/ function __webpack_require__(moduleId) {
+
+/******/ // Check if module is in cache
+/******/ if(installedModules[moduleId])
+/******/ return installedModules[moduleId].exports;
+
+/******/ // Create a new module (and put it into the cache)
+/******/ var module = installedModules[moduleId] = {
+/******/ exports: {},
+/******/ id: moduleId,
+/******/ loaded: false
+/******/ };
+
+/******/ // Execute the module function
+/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__);
+
+/******/ // Flag the module as loaded
+/******/ module.loaded = true;
+
+/******/ // Return the exports of the module
+/******/ return module.exports;
+/******/ }
+
+
+/******/ // expose the modules object (__webpack_modules__)
+/******/ __webpack_require__.m = modules;
+
+/******/ // expose the module cache
+/******/ __webpack_require__.c = installedModules;
+
+/******/ // __webpack_public_path__
+/******/ __webpack_require__.p = "";
+
+/******/ // Load entry module and return exports
+/******/ return __webpack_require__(0);
+/******/ })
+/************************************************************************/
+/******/ ([
+/* 0 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _Object$keys = __webpack_require__(1)['default'];
+
+ var _Object$defineProperty = __webpack_require__(11)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ var _interopRequireWildcard = __webpack_require__(15)['default'];
+
+ exports.__esModule = true;
+
+ var _utilsDeprecationWarning = __webpack_require__(16);
+
+ var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning);
+
+ var _utilsDomUtils = __webpack_require__(31);
+
+ var _utilsDomUtils2 = _interopRequireDefault(_utilsDomUtils);
+
+ var _utilsChildrenValueInputValidation = __webpack_require__(52);
+
+ var _utilsChildrenValueInputValidation2 = _interopRequireDefault(_utilsChildrenValueInputValidation);
+
+ var _utilsCreateChainedFunction = __webpack_require__(56);
+
+ var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction);
+
+ var _utilsValidComponentChildren = __webpack_require__(55);
+
+ var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var _Accordion2 = __webpack_require__(57);
+
+ var _Accordion3 = _interopRequireDefault(_Accordion2);
+
+ exports.Accordion = _Accordion3['default'];
+
+ var _Affix2 = __webpack_require__(71);
+
+ var _Affix3 = _interopRequireDefault(_Affix2);
+
+ exports.Affix = _Affix3['default'];
+
+ var _AffixMixin2 = __webpack_require__(72);
+
+ var _AffixMixin3 = _interopRequireDefault(_AffixMixin2);
+
+ exports.AffixMixin = _AffixMixin3['default'];
+
+ var _Alert2 = __webpack_require__(74);
+
+ var _Alert3 = _interopRequireDefault(_Alert2);
+
+ exports.Alert = _Alert3['default'];
+
+ var _Badge2 = __webpack_require__(75);
+
+ var _Badge3 = _interopRequireDefault(_Badge2);
+
+ exports.Badge = _Badge3['default'];
+
+ var _BootstrapMixin2 = __webpack_require__(69);
+
+ var _BootstrapMixin3 = _interopRequireDefault(_BootstrapMixin2);
+
+ exports.BootstrapMixin = _BootstrapMixin3['default'];
+
+ var _Button2 = __webpack_require__(76);
+
+ var _Button3 = _interopRequireDefault(_Button2);
+
+ exports.Button = _Button3['default'];
+
+ var _ButtonGroup2 = __webpack_require__(81);
+
+ var _ButtonGroup3 = _interopRequireDefault(_ButtonGroup2);
+
+ exports.ButtonGroup = _ButtonGroup3['default'];
+
+ var _ButtonInput2 = __webpack_require__(77);
+
+ var _ButtonInput3 = _interopRequireDefault(_ButtonInput2);
+
+ exports.ButtonInput = _ButtonInput3['default'];
+
+ var _ButtonToolbar2 = __webpack_require__(82);
+
+ var _ButtonToolbar3 = _interopRequireDefault(_ButtonToolbar2);
+
+ exports.ButtonToolbar = _ButtonToolbar3['default'];
+
+ var _Carousel2 = __webpack_require__(83);
+
+ var _Carousel3 = _interopRequireDefault(_Carousel2);
+
+ exports.Carousel = _Carousel3['default'];
+
+ var _CarouselItem2 = __webpack_require__(84);
+
+ var _CarouselItem3 = _interopRequireDefault(_CarouselItem2);
+
+ exports.CarouselItem = _CarouselItem3['default'];
+
+ var _Col2 = __webpack_require__(86);
+
+ var _Col3 = _interopRequireDefault(_Col2);
+
+ exports.Col = _Col3['default'];
+
+ var _CollapsibleMixin2 = __webpack_require__(87);
+
+ var _CollapsibleMixin3 = _interopRequireDefault(_CollapsibleMixin2);
+
+ exports.CollapsibleMixin = _CollapsibleMixin3['default'];
+
+ var _CollapsibleNav2 = __webpack_require__(88);
+
+ var _CollapsibleNav3 = _interopRequireDefault(_CollapsibleNav2);
+
+ exports.CollapsibleNav = _CollapsibleNav3['default'];
+
+ var _Dropdown2 = __webpack_require__(93);
+
+ var _Dropdown3 = _interopRequireDefault(_Dropdown2);
+
+ exports.Dropdown = _Dropdown3['default'];
+
+ var _DropdownButton2 = __webpack_require__(171);
+
+ var _DropdownButton3 = _interopRequireDefault(_DropdownButton2);
+
+ exports.DropdownButton = _DropdownButton3['default'];
+
+ var _NavDropdown2 = __webpack_require__(172);
+
+ var _NavDropdown3 = _interopRequireDefault(_NavDropdown2);
+
+ exports.NavDropdown = _NavDropdown3['default'];
+
+ var _SplitButton3 = __webpack_require__(173);
+
+ var _SplitButton4 = _interopRequireDefault(_SplitButton3);
+
+ exports.SplitButton = _SplitButton4['default'];
+
+ var _FadeMixin2 = __webpack_require__(175);
+
+ var _FadeMixin3 = _interopRequireDefault(_FadeMixin2);
+
+ exports.FadeMixin = _FadeMixin3['default'];
+
+ var _Glyphicon2 = __webpack_require__(80);
+
+ var _Glyphicon3 = _interopRequireDefault(_Glyphicon2);
+
+ exports.Glyphicon = _Glyphicon3['default'];
+
+ var _Grid2 = __webpack_require__(176);
+
+ var _Grid3 = _interopRequireDefault(_Grid2);
+
+ exports.Grid = _Grid3['default'];
+
+ var _Input2 = __webpack_require__(177);
+
+ var _Input3 = _interopRequireDefault(_Input2);
+
+ exports.Input = _Input3['default'];
+
+ var _Interpolate2 = __webpack_require__(180);
+
+ var _Interpolate3 = _interopRequireDefault(_Interpolate2);
+
+ exports.Interpolate = _Interpolate3['default'];
+
+ var _Jumbotron2 = __webpack_require__(181);
+
+ var _Jumbotron3 = _interopRequireDefault(_Jumbotron2);
+
+ exports.Jumbotron = _Jumbotron3['default'];
+
+ var _Label2 = __webpack_require__(182);
+
+ var _Label3 = _interopRequireDefault(_Label2);
+
+ exports.Label = _Label3['default'];
+
+ var _ListGroup2 = __webpack_require__(183);
+
+ var _ListGroup3 = _interopRequireDefault(_ListGroup2);
+
+ exports.ListGroup = _ListGroup3['default'];
+
+ var _ListGroupItem2 = __webpack_require__(184);
+
+ var _ListGroupItem3 = _interopRequireDefault(_ListGroupItem2);
+
+ exports.ListGroupItem = _ListGroupItem3['default'];
+
+ var _MenuItem2 = __webpack_require__(185);
+
+ var _MenuItem3 = _interopRequireDefault(_MenuItem2);
+
+ exports.MenuItem = _MenuItem3['default'];
+
+ var _Modal2 = __webpack_require__(186);
+
+ var _Modal3 = _interopRequireDefault(_Modal2);
+
+ exports.Modal = _Modal3['default'];
+
+ var _ModalHeader2 = __webpack_require__(198);
+
+ var _ModalHeader3 = _interopRequireDefault(_ModalHeader2);
+
+ exports.ModalHeader = _ModalHeader3['default'];
+
+ var _ModalTitle2 = __webpack_require__(199);
+
+ var _ModalTitle3 = _interopRequireDefault(_ModalTitle2);
+
+ exports.ModalTitle = _ModalTitle3['default'];
+
+ var _ModalBody2 = __webpack_require__(197);
+
+ var _ModalBody3 = _interopRequireDefault(_ModalBody2);
+
+ exports.ModalBody = _ModalBody3['default'];
+
+ var _ModalFooter2 = __webpack_require__(200);
+
+ var _ModalFooter3 = _interopRequireDefault(_ModalFooter2);
+
+ exports.ModalFooter = _ModalFooter3['default'];
+
+ var _Nav2 = __webpack_require__(201);
+
+ var _Nav3 = _interopRequireDefault(_Nav2);
+
+ exports.Nav = _Nav3['default'];
+
+ var _Navbar2 = __webpack_require__(202);
+
+ var _Navbar3 = _interopRequireDefault(_Navbar2);
+
+ exports.Navbar = _Navbar3['default'];
+
+ var _NavItem2 = __webpack_require__(203);
+
+ var _NavItem3 = _interopRequireDefault(_NavItem2);
+
+ exports.NavItem = _NavItem3['default'];
+
+ var _Overlay2 = __webpack_require__(204);
+
+ var _Overlay3 = _interopRequireDefault(_Overlay2);
+
+ exports.Overlay = _Overlay3['default'];
+
+ var _OverlayTrigger2 = __webpack_require__(209);
+
+ var _OverlayTrigger3 = _interopRequireDefault(_OverlayTrigger2);
+
+ exports.OverlayTrigger = _OverlayTrigger3['default'];
+
+ var _PageHeader2 = __webpack_require__(212);
+
+ var _PageHeader3 = _interopRequireDefault(_PageHeader2);
+
+ exports.PageHeader = _PageHeader3['default'];
+
+ var _PageItem2 = __webpack_require__(213);
+
+ var _PageItem3 = _interopRequireDefault(_PageItem2);
+
+ exports.PageItem = _PageItem3['default'];
+
+ var _Pager2 = __webpack_require__(214);
+
+ var _Pager3 = _interopRequireDefault(_Pager2);
+
+ exports.Pager = _Pager3['default'];
+
+ var _Pagination2 = __webpack_require__(215);
+
+ var _Pagination3 = _interopRequireDefault(_Pagination2);
+
+ exports.Pagination = _Pagination3['default'];
+
+ var _Panel2 = __webpack_require__(218);
+
+ var _Panel3 = _interopRequireDefault(_Panel2);
+
+ exports.Panel = _Panel3['default'];
+
+ var _PanelGroup2 = __webpack_require__(66);
+
+ var _PanelGroup3 = _interopRequireDefault(_PanelGroup2);
+
+ exports.PanelGroup = _PanelGroup3['default'];
+
+ var _Popover2 = __webpack_require__(219);
+
+ var _Popover3 = _interopRequireDefault(_Popover2);
+
+ exports.Popover = _Popover3['default'];
+
+ var _ProgressBar2 = __webpack_require__(220);
+
+ var _ProgressBar3 = _interopRequireDefault(_ProgressBar2);
+
+ exports.ProgressBar = _ProgressBar3['default'];
+
+ var _Row2 = __webpack_require__(221);
+
+ var _Row3 = _interopRequireDefault(_Row2);
+
+ exports.Row = _Row3['default'];
+
+ var _SafeAnchor2 = __webpack_require__(100);
+
+ var _SafeAnchor3 = _interopRequireDefault(_SafeAnchor2);
+
+ exports.SafeAnchor = _SafeAnchor3['default'];
+
+ var _SplitButton5 = _interopRequireDefault(_SplitButton3);
+
+ exports.SplitButton = _SplitButton5['default'];
+
+ var _styleMaps2 = __webpack_require__(70);
+
+ var _styleMaps3 = _interopRequireDefault(_styleMaps2);
+
+ exports.styleMaps = _styleMaps3['default'];
+
+ var _SubNav2 = __webpack_require__(222);
+
+ var _SubNav3 = _interopRequireDefault(_SubNav2);
+
+ exports.SubNav = _SubNav3['default'];
+
+ var _Tab2 = __webpack_require__(223);
+
+ var _Tab3 = _interopRequireDefault(_Tab2);
+
+ exports.Tab = _Tab3['default'];
+
+ var _TabbedArea2 = __webpack_require__(224);
+
+ var _TabbedArea3 = _interopRequireDefault(_TabbedArea2);
+
+ exports.TabbedArea = _TabbedArea3['default'];
+
+ var _Table2 = __webpack_require__(227);
+
+ var _Table3 = _interopRequireDefault(_Table2);
+
+ exports.Table = _Table3['default'];
+
+ var _TabPane2 = __webpack_require__(226);
+
+ var _TabPane3 = _interopRequireDefault(_TabPane2);
+
+ exports.TabPane = _TabPane3['default'];
+
+ var _Tabs2 = __webpack_require__(225);
+
+ var _Tabs3 = _interopRequireDefault(_Tabs2);
+
+ exports.Tabs = _Tabs3['default'];
+
+ var _Thumbnail2 = __webpack_require__(228);
+
+ var _Thumbnail3 = _interopRequireDefault(_Thumbnail2);
+
+ exports.Thumbnail = _Thumbnail3['default'];
+
+ var _Tooltip2 = __webpack_require__(229);
+
+ var _Tooltip3 = _interopRequireDefault(_Tooltip2);
+
+ exports.Tooltip = _Tooltip3['default'];
+
+ var _Well2 = __webpack_require__(230);
+
+ var _Well3 = _interopRequireDefault(_Well2);
+
+ exports.Well = _Well3['default'];
+
+ var _Portal2 = __webpack_require__(231);
+
+ var _Portal3 = _interopRequireDefault(_Portal2);
+
+ exports.Portal = _Portal3['default'];
+
+ var _Position2 = __webpack_require__(232);
+
+ var _Position3 = _interopRequireDefault(_Position2);
+
+ exports.Position = _Position3['default'];
+
+ var _Collapse2 = __webpack_require__(89);
+
+ var _Collapse3 = _interopRequireDefault(_Collapse2);
+
+ exports.Collapse = _Collapse3['default'];
+
+ var _Fade2 = __webpack_require__(195);
+
+ var _Fade3 = _interopRequireDefault(_Fade2);
+
+ exports.Fade = _Fade3['default'];
+
+ var _FormControls2 = __webpack_require__(178);
+
+ var _FormControls = _interopRequireWildcard(_FormControls2);
+
+ exports.FormControls = _FormControls;
+ var utils = {
+ childrenValueInputValidation: _utilsChildrenValueInputValidation2['default'],
+ createChainedFunction: _utilsCreateChainedFunction2['default'],
+ ValidComponentChildren: _utilsValidComponentChildren2['default'],
+ CustomPropTypes: _utilsCustomPropTypes2['default'],
+ domUtils: createDeprecationWrapper(_utilsDomUtils2['default'], 'utils/domUtils', 'npm install dom-helpers')
+ };
+
+ exports.utils = utils;
+ function createDeprecationWrapper(obj, deprecated, instead, link) {
+ var wrapper = {};
+
+ if (false) {
+ return obj;
+ }
+
+ _Object$keys(obj).forEach(function (key) {
+ _Object$defineProperty(wrapper, key, {
+ get: function get() {
+ _utilsDeprecationWarning2['default'](deprecated, instead, link);
+ return obj[key];
+ },
+ set: function set(x) {
+ obj[key] = x;
+ }
+ });
+ });
+
+ return wrapper;
+ }
+
+/***/ },
+/* 1 */
+/***/ function(module, exports, __webpack_require__) {
+
+ module.exports = { "default": __webpack_require__(2), __esModule: true };
+
+/***/ },
+/* 2 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(3);
+ module.exports = __webpack_require__(9).Object.keys;
+
+/***/ },
+/* 3 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 19.1.2.14 Object.keys(O)
+ var toObject = __webpack_require__(4);
+
+ __webpack_require__(6)('keys', function($keys){
+ return function keys(it){
+ return $keys(toObject(it));
+ };
+ });
+
+/***/ },
+/* 4 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 7.1.13 ToObject(argument)
+ var defined = __webpack_require__(5);
+ module.exports = function(it){
+ return Object(defined(it));
+ };
+
+/***/ },
+/* 5 */
+/***/ function(module, exports) {
+
+ // 7.2.1 RequireObjectCoercible(argument)
+ module.exports = function(it){
+ if(it == undefined)throw TypeError("Can't call method on " + it);
+ return it;
+ };
+
+/***/ },
+/* 6 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // most Object methods by ES6 should accept primitives
+ module.exports = function(KEY, exec){
+ var $def = __webpack_require__(7)
+ , fn = (__webpack_require__(9).Object || {})[KEY] || Object[KEY]
+ , exp = {};
+ exp[KEY] = exec(fn);
+ $def($def.S + $def.F * __webpack_require__(10)(function(){ fn(1); }), 'Object', exp);
+ };
+
+/***/ },
+/* 7 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var global = __webpack_require__(8)
+ , core = __webpack_require__(9)
+ , PROTOTYPE = 'prototype';
+ var ctx = function(fn, that){
+ return function(){
+ return fn.apply(that, arguments);
+ };
+ };
+ var $def = function(type, name, source){
+ var key, own, out, exp
+ , isGlobal = type & $def.G
+ , isProto = type & $def.P
+ , target = isGlobal ? global : type & $def.S
+ ? global[name] : (global[name] || {})[PROTOTYPE]
+ , exports = isGlobal ? core : core[name] || (core[name] = {});
+ if(isGlobal)source = name;
+ for(key in source){
+ // contains in native
+ own = !(type & $def.F) && target && key in target;
+ if(own && key in exports)continue;
+ // export native or passed
+ out = own ? target[key] : source[key];
+ // prevent global pollution for namespaces
+ if(isGlobal && typeof target[key] != 'function')exp = source[key];
+ // bind timers to global for call from export context
+ else if(type & $def.B && own)exp = ctx(out, global);
+ // wrap global constructors for prevent change them in library
+ else if(type & $def.W && target[key] == out)!function(C){
+ exp = function(param){
+ return this instanceof C ? new C(param) : C(param);
+ };
+ exp[PROTOTYPE] = C[PROTOTYPE];
+ }(out);
+ else exp = isProto && typeof out == 'function' ? ctx(Function.call, out) : out;
+ // export
+ exports[key] = exp;
+ if(isProto)(exports[PROTOTYPE] || (exports[PROTOTYPE] = {}))[key] = out;
+ }
+ };
+ // type bitmap
+ $def.F = 1; // forced
+ $def.G = 2; // global
+ $def.S = 4; // static
+ $def.P = 8; // proto
+ $def.B = 16; // bind
+ $def.W = 32; // wrap
+ module.exports = $def;
+
+/***/ },
+/* 8 */
+/***/ function(module, exports) {
+
+ var global = typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();
+ module.exports = global;
+ if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef
+
+/***/ },
+/* 9 */
+/***/ function(module, exports) {
+
+ var core = module.exports = {};
+ if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef
+
+/***/ },
+/* 10 */
+/***/ function(module, exports) {
+
+ module.exports = function(exec){
+ try {
+ return !!exec();
+ } catch(e){
+ return true;
+ }
+ };
+
+/***/ },
+/* 11 */
+/***/ function(module, exports, __webpack_require__) {
+
+ module.exports = { "default": __webpack_require__(12), __esModule: true };
+
+/***/ },
+/* 12 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $ = __webpack_require__(13);
+ module.exports = function defineProperty(it, key, desc){
+ return $.setDesc(it, key, desc);
+ };
+
+/***/ },
+/* 13 */
+/***/ function(module, exports) {
+
+ var $Object = Object;
+ module.exports = {
+ create: $Object.create,
+ getProto: $Object.getPrototypeOf,
+ isEnum: {}.propertyIsEnumerable,
+ getDesc: $Object.getOwnPropertyDescriptor,
+ setDesc: $Object.defineProperty,
+ setDescs: $Object.defineProperties,
+ getKeys: $Object.keys,
+ getNames: $Object.getOwnPropertyNames,
+ getSymbols: $Object.getOwnPropertySymbols,
+ each: [].forEach
+ };
+
+/***/ },
+/* 14 */
+/***/ function(module, exports) {
+
+ "use strict";
+
+ exports["default"] = function (obj) {
+ return obj && obj.__esModule ? obj : {
+ "default": obj
+ };
+ };
+
+ exports.__esModule = true;
+
+/***/ },
+/* 15 */
+/***/ function(module, exports) {
+
+ "use strict";
+
+ exports["default"] = function (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.__esModule = true;
+
+/***/ },
+/* 16 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _reactLibWarning = __webpack_require__(29);
+
+ var _reactLibWarning2 = _interopRequireDefault(_reactLibWarning);
+
+ var warned = {};
+
+ function deprecationWarning(oldname, newname, link) {
+ var message = undefined;
+
+ if (typeof 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;
+ }
+
+ _reactLibWarning2['default'](false, message);
+ 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) {
+ _inherits(DeprecatedComponent, _Component);
+
+ function DeprecatedComponent() {
+ _classCallCheck(this, DeprecatedComponent);
+
+ _Component.apply(this, arguments);
+ }
+
+ DeprecatedComponent.prototype.componentWillMount = function componentWillMount() {
+ deprecationWarning.apply(undefined, args);
+
+ if (_Component.prototype.componentWillMount) {
+ var _Component$prototype$componentWillMount;
+
+ for (var _len2 = arguments.length, methodArgs = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+ methodArgs[_key2] = arguments[_key2];
+ }
+
+ (_Component$prototype$componentWillMount = _Component.prototype.componentWillMount).call.apply(_Component$prototype$componentWillMount, [this].concat(methodArgs));
+ }
+ };
+
+ return DeprecatedComponent;
+ })(Component);
+ };
+
+ exports['default'] = deprecationWarning;
+ module.exports = exports['default'];
+
+/***/ },
+/* 17 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+
+ var _Object$create = __webpack_require__(18)["default"];
+
+ var _Object$setPrototypeOf = __webpack_require__(20)["default"];
+
+ 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);
+ }
+
+ 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;
+ };
+
+ exports.__esModule = true;
+
+/***/ },
+/* 18 */
+/***/ function(module, exports, __webpack_require__) {
+
+ module.exports = { "default": __webpack_require__(19), __esModule: true };
+
+/***/ },
+/* 19 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var $ = __webpack_require__(13);
+ module.exports = function create(P, D){
+ return $.create(P, D);
+ };
+
+/***/ },
+/* 20 */
+/***/ function(module, exports, __webpack_require__) {
+
+ module.exports = { "default": __webpack_require__(21), __esModule: true };
+
+/***/ },
+/* 21 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(22);
+ module.exports = __webpack_require__(9).Object.setPrototypeOf;
+
+/***/ },
+/* 22 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 19.1.3.19 Object.setPrototypeOf(O, proto)
+ var $def = __webpack_require__(7);
+ $def($def.S, 'Object', {setPrototypeOf: __webpack_require__(23).set});
+
+/***/ },
+/* 23 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // Works with __proto__ only. Old v8 can't work with null proto objects.
+ /* eslint-disable no-proto */
+ var getDesc = __webpack_require__(13).getDesc
+ , isObject = __webpack_require__(24)
+ , anObject = __webpack_require__(25);
+ 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(buggy, set){
+ try {
+ set = __webpack_require__(26)(Function.call, getDesc(Object.prototype, '__proto__').set, 2);
+ set({}, []);
+ } catch(e){ buggy = true; }
+ return function setPrototypeOf(O, proto){
+ check(O, proto);
+ if(buggy)O.__proto__ = proto;
+ else set(O, proto);
+ return O;
+ };
+ }()
+ : undefined),
+ check: check
+ };
+
+/***/ },
+/* 24 */
+/***/ function(module, exports) {
+
+ // http://jsperf.com/core-js-isobject
+ module.exports = function(it){
+ return it !== null && (typeof it == 'object' || typeof it == 'function');
+ };
+
+/***/ },
+/* 25 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isObject = __webpack_require__(24);
+ module.exports = function(it){
+ if(!isObject(it))throw TypeError(it + ' is not an object!');
+ return it;
+ };
+
+/***/ },
+/* 26 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // optional / simple context binding
+ var aFunction = __webpack_require__(27);
+ 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);
+ };
+ };
+
+/***/ },
+/* 27 */
+/***/ function(module, exports) {
+
+ module.exports = function(it){
+ if(typeof it != 'function')throw TypeError(it + ' is not a function!');
+ return it;
+ };
+
+/***/ },
+/* 28 */
+/***/ function(module, exports) {
+
+ "use strict";
+
+ exports["default"] = function (instance, Constructor) {
+ if (!(instance instanceof Constructor)) {
+ throw new TypeError("Cannot call a class as a function");
+ }
+ };
+
+ exports.__esModule = true;
+
+/***/ },
+/* 29 */
+/***/ function(module, exports, __webpack_require__) {
+
+ /**
+ * Copyright 2014-2015, Facebook, Inc.
+ * All rights reserved.
+ *
+ * This source code is licensed under the BSD-style license found in the
+ * LICENSE file in the root directory of this source tree. An additional grant
+ * of patent rights can be found in the PATENTS file in the same directory.
+ *
+ * @providesModule warning
+ */
+
+ "use strict";
+
+ var emptyFunction = __webpack_require__(30);
+
+ /**
+ * 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 (true) {
+ warning = function(condition, format ) {for (var args=[],$__0=2,$__1=arguments.length;$__0<$__1;$__0++) args.push(arguments[$__0]);
+ if (format === undefined) {
+ throw new Error(
+ '`warning(condition, format, ...args)` requires a warning ' +
+ 'message argument'
+ );
+ }
+
+ if (format.length < 10 || /^[s\W]*$/.test(format)) {
+ throw new Error(
+ 'The warning format should be able to uniquely identify this ' +
+ 'warning. Please, use a more descriptive format than: ' + format
+ );
+ }
+
+ if (format.indexOf('Failed Composite propType: ') === 0) {
+ return; // Ignore CompositeComponent proptype check.
+ }
+
+ if (!condition) {
+ var argIndex = 0;
+ var message = 'Warning: ' + format.replace(/%s/g, function() {return args[argIndex++];});
+ console.warn(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) {}
+ }
+ };
+ }
+
+ module.exports = warning;
+
+
+/***/ },
+/* 30 */
+/***/ function(module, exports) {
+
+ /**
+ * Copyright 2013-2015, Facebook, Inc.
+ * All rights reserved.
+ *
+ * This source code is licensed under the BSD-style license found in the
+ * LICENSE file in the root directory of this source tree. An additional grant
+ * of patent rights can be found in the PATENTS file in the same directory.
+ *
+ * @providesModule emptyFunction
+ */
+
+ 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.
+ */
+ 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;
+
+
+/***/ },
+/* 31 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _domHelpersUtilInDOM = __webpack_require__(33);
+
+ var _domHelpersUtilInDOM2 = _interopRequireDefault(_domHelpersUtilInDOM);
+
+ var _domHelpersOwnerDocument = __webpack_require__(34);
+
+ var _domHelpersOwnerDocument2 = _interopRequireDefault(_domHelpersOwnerDocument);
+
+ var _domHelpersOwnerWindow = __webpack_require__(35);
+
+ var _domHelpersOwnerWindow2 = _interopRequireDefault(_domHelpersOwnerWindow);
+
+ var _domHelpersQueryContains = __webpack_require__(37);
+
+ var _domHelpersQueryContains2 = _interopRequireDefault(_domHelpersQueryContains);
+
+ var _domHelpersActiveElement = __webpack_require__(38);
+
+ var _domHelpersActiveElement2 = _interopRequireDefault(_domHelpersActiveElement);
+
+ var _domHelpersQueryOffset = __webpack_require__(39);
+
+ var _domHelpersQueryOffset2 = _interopRequireDefault(_domHelpersQueryOffset);
+
+ var _domHelpersQueryOffsetParent = __webpack_require__(41);
+
+ var _domHelpersQueryOffsetParent2 = _interopRequireDefault(_domHelpersQueryOffsetParent);
+
+ var _domHelpersQueryPosition = __webpack_require__(49);
+
+ var _domHelpersQueryPosition2 = _interopRequireDefault(_domHelpersQueryPosition);
+
+ var _domHelpersStyle = __webpack_require__(42);
+
+ var _domHelpersStyle2 = _interopRequireDefault(_domHelpersStyle);
+
+ function ownerDocument(componentOrElement) {
+ var elem = _react2['default'].findDOMNode(componentOrElement);
+ return _domHelpersOwnerDocument2['default'](elem && elem.ownerDocument || document);
+ }
+
+ function ownerWindow(componentOrElement) {
+ var doc = ownerDocument(componentOrElement);
+ return _domHelpersOwnerWindow2['default'](doc);
+ }
+
+ //TODO remove in 0.26
+ function getComputedStyles(elem) {
+ return ownerDocument(elem).defaultView.getComputedStyle(elem, null);
+ }
+
+ /**
+ * Get the height of the document
+ *
+ * @returns {documentHeight: number}
+ */
+ function getDocumentHeight() {
+ return Math.max(document.documentElement.offsetHeight, document.height, document.body.scrollHeight, document.body.offsetHeight);
+ }
+
+ /**
+ * Get an element's size
+ *
+ * @param {HTMLElement} elem
+ * @returns {{width: number, height: number}}
+ */
+ function getSize(elem) {
+ var rect = {
+ width: elem.offsetWidth || 0,
+ height: elem.offsetHeight || 0
+ };
+ if (typeof elem.getBoundingClientRect !== 'undefined') {
+ var _elem$getBoundingClientRect = elem.getBoundingClientRect();
+
+ var width = _elem$getBoundingClientRect.width;
+ var height = _elem$getBoundingClientRect.height;
+
+ rect.width = width || rect.width;
+ rect.height = height || rect.height;
+ }
+ return rect;
+ }
+
+ exports['default'] = {
+ canUseDom: _domHelpersUtilInDOM2['default'],
+ css: _domHelpersStyle2['default'],
+ getComputedStyles: getComputedStyles,
+ contains: _domHelpersQueryContains2['default'],
+ ownerWindow: ownerWindow,
+ ownerDocument: ownerDocument,
+ getOffset: _domHelpersQueryOffset2['default'],
+ getDocumentHeight: getDocumentHeight,
+ getPosition: _domHelpersQueryPosition2['default'],
+ getSize: getSize,
+ activeElement: _domHelpersActiveElement2['default'],
+ offsetParent: _domHelpersQueryOffsetParent2['default']
+ };
+ module.exports = exports['default'];
+
+/***/ },
+/* 32 */
+/***/ function(module, exports) {
+
+ module.exports = __WEBPACK_EXTERNAL_MODULE_32__;
+
+/***/ },
+/* 33 */
+/***/ function(module, exports) {
+
+ 'use strict';
+ module.exports = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
+
+/***/ },
+/* 34 */
+/***/ function(module, exports) {
+
+ "use strict";
+
+ exports.__esModule = true;
+ exports["default"] = ownerDocument;
+
+ function ownerDocument(node) {
+ return node && node.ownerDocument || document;
+ }
+
+ module.exports = exports["default"];
+
+/***/ },
+/* 35 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var babelHelpers = __webpack_require__(36);
+
+ exports.__esModule = true;
+ exports['default'] = ownerWindow;
+
+ var _ownerDocument = __webpack_require__(34);
+
+ var _ownerDocument2 = babelHelpers.interopRequireDefault(_ownerDocument);
+
+ function ownerWindow(node) {
+ var doc = (0, _ownerDocument2['default'])(node);
+ return doc && doc.defaultView || doc.parentWindow;
+ }
+
+ module.exports = exports['default'];
+
+/***/ },
+/* 36 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;(function (root, factory) {
+ if (true) {
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [exports], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory), __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ? (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
+ } else if (typeof exports === "object") {
+ factory(exports);
+ } else {
+ factory(root.babelHelpers = {});
+ }
+ })(this, function (global) {
+ var babelHelpers = global;
+
+ babelHelpers.interopRequireDefault = function (obj) {
+ return obj && obj.__esModule ? obj : {
+ "default": obj
+ };
+ };
+
+ babelHelpers._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;
+ };
+ })
+
+/***/ },
+/* 37 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var canUseDOM = __webpack_require__(33);
+
+ var contains = (function () {
+ var root = canUseDOM && document.documentElement;
+
+ return root && root.contains ? function (context, node) {
+ return context.contains(node);
+ } : root && root.compareDocumentPosition ? function (context, node) {
+ return context === node || !!(context.compareDocumentPosition(node) & 16);
+ } : function (context, node) {
+ if (node) do {
+ if (node === context) return true;
+ } while (node = node.parentNode);
+
+ return false;
+ };
+ })();
+
+ module.exports = contains;
+
+/***/ },
+/* 38 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var babelHelpers = __webpack_require__(36);
+
+ exports.__esModule = true;
+
+ /**
+ * document.activeElement
+ */
+ exports['default'] = activeElement;
+
+ var _ownerDocument = __webpack_require__(34);
+
+ var _ownerDocument2 = babelHelpers.interopRequireDefault(_ownerDocument);
+
+ function activeElement() {
+ var doc = arguments[0] === undefined ? document : arguments[0];
+
+ try {
+ return doc.activeElement;
+ } catch (e) {}
+ }
+
+ module.exports = exports['default'];
+
+/***/ },
+/* 39 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var contains = __webpack_require__(37),
+ getWindow = __webpack_require__(40),
+ ownerDocument = __webpack_require__(34);
+
+ module.exports = function offset(node) {
+ var doc = ownerDocument(node),
+ win = getWindow(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 (!contains(docElem, node)) return box;
+
+ if (node.getBoundingClientRect !== undefined) box = node.getBoundingClientRect();
+
+ if (box.width || box.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;
+ };
+
+/***/ },
+/* 40 */
+/***/ function(module, exports) {
+
+ 'use strict';
+
+ module.exports = function getWindow(node) {
+ return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false;
+ };
+
+/***/ },
+/* 41 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var babelHelpers = __webpack_require__(36);
+
+ exports.__esModule = true;
+ exports['default'] = offsetParent;
+
+ var _ownerDocument = __webpack_require__(34);
+
+ var _ownerDocument2 = babelHelpers.interopRequireDefault(_ownerDocument);
+
+ var _style = __webpack_require__(42);
+
+ var _style2 = babelHelpers.interopRequireDefault(_style);
+
+ 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'];
+
+/***/ },
+/* 42 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var camelize = __webpack_require__(43),
+ hyphenate = __webpack_require__(45),
+ _getComputedStyle = __webpack_require__(47),
+ removeStyle = __webpack_require__(48);
+
+ var has = Object.prototype.hasOwnProperty;
+
+ module.exports = function style(node, property, value) {
+ var css = '',
+ props = property;
+
+ if (typeof property === 'string') {
+
+ if (value === undefined) return node.style[camelize(property)] || _getComputedStyle(node).getPropertyValue(hyphenate(property));else (props = {})[property] = value;
+ }
+
+ for (var key in props) if (has.call(props, key)) {
+ !props[key] && props[key] !== 0 ? removeStyle(node, hyphenate(key)) : css += hyphenate(key) + ':' + props[key] + ';';
+ }
+
+ node.style.cssText += ';' + css;
+ };
+
+/***/ },
+/* 43 */
+/***/ function(module, exports, __webpack_require__) {
+
+ /**
+ * Copyright 2014-2015, Facebook, Inc.
+ * All rights reserved.
+ * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js
+ */
+
+ 'use strict';
+ var camelize = __webpack_require__(44);
+ var msPattern = /^-ms-/;
+
+ module.exports = function camelizeStyleName(string) {
+ return camelize(string.replace(msPattern, 'ms-'));
+ };
+
+/***/ },
+/* 44 */
+/***/ function(module, exports) {
+
+ "use strict";
+
+ var rHyphen = /-(.)/g;
+
+ module.exports = function camelize(string) {
+ return string.replace(rHyphen, function (_, chr) {
+ return chr.toUpperCase();
+ });
+ };
+
+/***/ },
+/* 45 */
+/***/ function(module, exports, __webpack_require__) {
+
+ /**
+ * Copyright 2013-2014, Facebook, Inc.
+ * All rights reserved.
+ * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js
+ */
+
+ "use strict";
+
+ var hyphenate = __webpack_require__(46);
+ var msPattern = /^ms-/;
+
+ module.exports = function hyphenateStyleName(string) {
+ return hyphenate(string).replace(msPattern, "-ms-");
+ };
+
+/***/ },
+/* 46 */
+/***/ function(module, exports) {
+
+ 'use strict';
+
+ var rUpper = /([A-Z])/g;
+
+ module.exports = function hyphenate(string) {
+ return string.replace(rUpper, '-$1').toLowerCase();
+ };
+
+/***/ },
+/* 47 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var babelHelpers = __webpack_require__(36);
+
+ var _utilCamelizeStyle = __webpack_require__(43);
+
+ var _utilCamelizeStyle2 = babelHelpers.interopRequireDefault(_utilCamelizeStyle);
+
+ var rposition = /^(top|right|bottom|left)$/;
+ var rnumnonpx = /^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i;
+
+ module.exports = 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, _utilCamelizeStyle2['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;
+ }
+ };
+ };
+
+/***/ },
+/* 48 */
+/***/ function(module, exports) {
+
+ 'use strict';
+
+ module.exports = function removeStyle(node, key) {
+ return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key);
+ };
+
+/***/ },
+/* 49 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var babelHelpers = __webpack_require__(36);
+
+ exports.__esModule = true;
+ exports['default'] = position;
+
+ var _offset = __webpack_require__(39);
+
+ var _offset2 = babelHelpers.interopRequireDefault(_offset);
+
+ var _offsetParent = __webpack_require__(41);
+
+ var _offsetParent2 = babelHelpers.interopRequireDefault(_offsetParent);
+
+ var _scrollTop = __webpack_require__(50);
+
+ var _scrollTop2 = babelHelpers.interopRequireDefault(_scrollTop);
+
+ var _scrollLeft = __webpack_require__(51);
+
+ var _scrollLeft2 = babelHelpers.interopRequireDefault(_scrollLeft);
+
+ var _style = __webpack_require__(42);
+
+ var _style2 = babelHelpers.interopRequireDefault(_style);
+
+ 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 babelHelpers._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'];
+
+/***/ },
+/* 50 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var getWindow = __webpack_require__(40);
+
+ module.exports = function scrollTop(node, val) {
+ var win = getWindow(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;
+ };
+
+/***/ },
+/* 51 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var getWindow = __webpack_require__(40);
+
+ module.exports = function scrollTop(node, val) {
+ var win = getWindow(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;
+ };
+
+/***/ },
+/* 52 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+ exports['default'] = valueValidation;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _CustomPropTypes = __webpack_require__(53);
+
+ var propList = ['children', 'value'];
+ var typeList = [_react2['default'].PropTypes.number, _react2['default'].PropTypes.string];
+
+ function valueValidation(props, propName, componentName) {
+ var error = _CustomPropTypes.singlePropFrom(propList)(props, propName, componentName);
+ if (!error) {
+ var oneOfType = _react2['default'].PropTypes.oneOfType(typeList);
+ error = oneOfType(props, propName, componentName);
+ }
+ return error;
+ }
+
+ module.exports = exports['default'];
+
+/***/ },
+/* 53 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _Object$keys = __webpack_require__(1)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _reactLibWarning = __webpack_require__(29);
+
+ var _reactLibWarning2 = _interopRequireDefault(_reactLibWarning);
+
+ var _childrenToArray = __webpack_require__(54);
+
+ var _childrenToArray2 = _interopRequireDefault(_childrenToArray);
+
+ var ANONYMOUS = '<>';
+
+ /**
+ * Create chain-able isRequired validator
+ *
+ * Largely copied directly from:
+ * https://github.com/facebook/react/blob/0.11-stable/src/core/ReactPropTypes.js#L94
+ */
+ function createChainableTypeChecker(validate) {
+ function checkType(isRequired, props, propName, componentName) {
+ componentName = componentName || ANONYMOUS;
+ if (props[propName] == null) {
+ if (isRequired) {
+ return new Error('Required prop \'' + propName + '\' was not specified in \'' + componentName + '\'.');
+ }
+ } else {
+ return validate(props, propName, componentName);
+ }
+ }
+
+ var chainedCheckType = checkType.bind(null, false);
+ chainedCheckType.isRequired = checkType.bind(null, true);
+
+ return chainedCheckType;
+ }
+
+ var CustomPropTypes = {
+
+ deprecated: function deprecated(propType, explanation) {
+ return function (props, propName, componentName) {
+ if (props[propName] != null) {
+ _reactLibWarning2['default'](false, '"' + propName + '" property of "' + componentName + '" has been deprecated.\n' + explanation);
+ }
+
+ return propType(props, propName, componentName);
+ };
+ },
+
+ isRequiredForA11y: function isRequiredForA11y(propType) {
+ return function (props, propName, componentName) {
+ if (props[propName] == null) {
+ return new Error('The prop `' + propName + '` is required to make ' + componentName + ' accessible ' + 'for users using assistive technologies such as screen readers `');
+ }
+
+ return propType(props, propName, componentName);
+ };
+ },
+
+ requiredRoles: function requiredRoles() {
+ for (var _len = arguments.length, roles = Array(_len), _key = 0; _key < _len; _key++) {
+ roles[_key] = arguments[_key];
+ }
+
+ return createChainableTypeChecker(function requiredRolesValidator(props, propName, component) {
+ var missing = undefined;
+ var children = _childrenToArray2['default'](props.children);
+
+ var inRole = function inRole(role, child) {
+ return role === child.props.bsRole;
+ };
+
+ roles.every(function (role) {
+ if (!children.some(function (child) {
+ return inRole(role, child);
+ })) {
+ 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(', ')));
+ }
+ });
+ },
+
+ exclusiveRoles: function exclusiveRoles() {
+ for (var _len2 = arguments.length, roles = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
+ roles[_key2] = arguments[_key2];
+ }
+
+ return createChainableTypeChecker(function exclusiveRolesValidator(props, propName, component) {
+ var children = _childrenToArray2['default'](props.children);
+ var duplicate = undefined;
+
+ roles.every(function (role) {
+ var childrenWithRole = children.filter(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(', ')));
+ }
+ });
+ },
+
+ /**
+ * Checks whether a prop provides a DOM element
+ *
+ * The element can be provided in two forms:
+ * - Directly passed
+ * - Or passed an object that has a `render` method
+ *
+ * @param props
+ * @param propName
+ * @param componentName
+ * @returns {Error|undefined}
+ */
+ mountable: createMountableChecker(),
+
+ /**
+ * Checks whether a prop provides a type of element.
+ *
+ * The type of element can be provided in two forms:
+ * - tag name (string)
+ * - a return value of React.createClass(...)
+ *
+ * @param props
+ * @param propName
+ * @param componentName
+ * @returns {Error|undefined}
+ */
+ elementType: createElementTypeChecker(),
+
+ /**
+ * Checks whether a prop matches a key of an associated object
+ *
+ * @param props
+ * @param propName
+ * @param componentName
+ * @returns {Error|undefined}
+ */
+ keyOf: createKeyOfChecker,
+ /**
+ * Checks if only one of the listed properties is in use. An error is given
+ * if multiple have a value
+ *
+ * @param props
+ * @param propName
+ * @param componentName
+ * @returns {Error|undefined}
+ */
+ singlePropFrom: createSinglePropFromChecker,
+
+ all: all
+ };
+
+ function errMsg(props, propName, componentName, msgContinuation) {
+ return 'Invalid prop \'' + propName + '\' of value \'' + props[propName] + '\'' + (' supplied to \'' + componentName + '\'' + msgContinuation);
+ }
+
+ function createMountableChecker() {
+ function validate(props, propName, componentName) {
+ if (typeof props[propName] !== 'object' || typeof props[propName].render !== 'function' && props[propName].nodeType !== 1) {
+ return new Error(errMsg(props, propName, componentName, ', expected a DOM element or an object that has a `render` method'));
+ }
+ }
+
+ return createChainableTypeChecker(validate);
+ }
+
+ function createKeyOfChecker(obj) {
+ function validate(props, propName, componentName) {
+ var propValue = props[propName];
+ if (!obj.hasOwnProperty(propValue)) {
+ var valuesString = JSON.stringify(_Object$keys(obj));
+ return new Error(errMsg(props, propName, componentName, ', expected one of ' + valuesString + '.'));
+ }
+ }
+ return createChainableTypeChecker(validate);
+ }
+
+ function createSinglePropFromChecker(arrOfProps) {
+ function validate(props, propName, componentName) {
+ var usedPropCount = arrOfProps.map(function (listedProp) {
+ return props[listedProp];
+ }).reduce(function (acc, curr) {
+ return acc + (curr !== undefined ? 1 : 0);
+ }, 0);
+
+ if (usedPropCount > 1) {
+ var first = arrOfProps[0];
+ var others = arrOfProps.slice(1);
+
+ var message = others.join(', ') + ' and ' + first;
+ return new Error('Invalid prop \'' + propName + '\', only one of the following ' + ('may be provided: ' + message));
+ }
+ }
+ return validate;
+ }
+
+ function all(propTypes) {
+ if (propTypes === undefined) {
+ throw new Error('No validations provided');
+ }
+
+ if (!(propTypes instanceof Array)) {
+ throw new Error('Invalid argument must be an array');
+ }
+
+ if (propTypes.length === 0) {
+ throw new Error('No validations provided');
+ }
+
+ return function (props, propName, componentName) {
+ for (var i = 0; i < propTypes.length; i++) {
+ var result = propTypes[i](props, propName, componentName);
+
+ if (result !== undefined && result !== null) {
+ return result;
+ }
+ }
+ };
+ }
+
+ function createElementTypeChecker() {
+ function validate(props, propName, componentName) {
+ var errBeginning = errMsg(props, propName, componentName, '. Expected an Element `type`');
+
+ if (typeof props[propName] !== 'function') {
+ if (_react2['default'].isValidElement(props[propName])) {
+ return new Error(errBeginning + ', not an actual Element');
+ }
+
+ if (typeof props[propName] !== 'string') {
+ return new Error(errBeginning + ' such as a tag name or return value of React.createClass(...)');
+ }
+ }
+ }
+
+ return createChainableTypeChecker(validate);
+ }
+
+ exports['default'] = CustomPropTypes;
+ module.exports = exports['default'];
+
+/***/ },
+/* 54 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+ exports['default'] = childrenAsArray;
+
+ var _ValidComponentChildren = __webpack_require__(55);
+
+ var _ValidComponentChildren2 = _interopRequireDefault(_ValidComponentChildren);
+
+ function childrenAsArray(children) {
+ var result = [];
+
+ if (children === undefined) {
+ return result;
+ }
+
+ _ValidComponentChildren2['default'].forEach(children, function (child) {
+ result.push(child);
+ });
+
+ return result;
+ }
+
+ module.exports = exports['default'];
+
+/***/ },
+/* 55 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ /**
+ * Maps children that are typically specified as `props.children`,
+ * but only iterates over children that are "valid components".
+ *
+ * The mapFunction provided index will be normalised to the components mapped,
+ * so an invalid component would not increase the index.
+ *
+ * @param {?*} children Children tree container.
+ * @param {function(*, int)} mapFunction.
+ * @param {*} mapContext Context for mapFunction.
+ * @return {object} Object containing the ordered map of results.
+ */
+ function mapValidComponents(children, func, context) {
+ var index = 0;
+
+ return _react2['default'].Children.map(children, function (child) {
+ if (_react2['default'].isValidElement(child)) {
+ var lastIndex = index;
+ index++;
+ return func.call(context, child, lastIndex);
+ }
+
+ return child;
+ });
+ }
+
+ /**
+ * Iterates through children that are typically specified as `props.children`,
+ * but only iterates over children that are "valid components".
+ *
+ * The provided forEachFunc(child, index) will be called for each
+ * leaf child with the index reflecting the position relative to "valid components".
+ *
+ * @param {?*} children Children tree container.
+ * @param {function(*, int)} forEachFunc.
+ * @param {*} forEachContext Context for forEachContext.
+ */
+ function forEachValidComponents(children, func, context) {
+ var index = 0;
+
+ return _react2['default'].Children.forEach(children, function (child) {
+ if (_react2['default'].isValidElement(child)) {
+ func.call(context, child, index);
+ index++;
+ }
+ });
+ }
+
+ /**
+ * Count the number of "valid components" in the Children container.
+ *
+ * @param {?*} children Children tree container.
+ * @returns {number}
+ */
+ function numberOfValidComponents(children) {
+ var count = 0;
+
+ _react2['default'].Children.forEach(children, function (child) {
+ if (_react2['default'].isValidElement(child)) {
+ count++;
+ }
+ });
+
+ return count;
+ }
+
+ /**
+ * Determine if the Child container has one or more "valid components".
+ *
+ * @param {?*} children Children tree container.
+ * @returns {boolean}
+ */
+ function hasValidComponent(children) {
+ var hasValid = false;
+
+ _react2['default'].Children.forEach(children, function (child) {
+ if (!hasValid && _react2['default'].isValidElement(child)) {
+ hasValid = true;
+ }
+ });
+
+ return hasValid;
+ }
+
+ exports['default'] = {
+ map: mapValidComponents,
+ forEach: forEachValidComponents,
+ numberOf: numberOfValidComponents,
+ hasValidComponent: hasValidComponent
+ };
+ module.exports = exports['default'];
+
+/***/ },
+/* 56 */
+/***/ function(module, exports) {
+
+ /**
+ * 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}
+ */
+ 'use strict';
+
+ exports.__esModule = true;
+ 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'];
+
+/***/ },
+/* 57 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _PanelGroup = __webpack_require__(66);
+
+ var _PanelGroup2 = _interopRequireDefault(_PanelGroup);
+
+ var Accordion = _react2['default'].createClass({
+ displayName: 'Accordion',
+
+ render: function render() {
+ return _react2['default'].createElement(
+ _PanelGroup2['default'],
+ _extends({}, this.props, { accordion: true }),
+ this.props.children
+ );
+ }
+ });
+
+ exports['default'] = Accordion;
+ module.exports = exports['default'];
+
+/***/ },
+/* 58 */
+/***/ function(module, exports, __webpack_require__) {
+
+ "use strict";
+
+ var _Object$assign = __webpack_require__(59)["default"];
+
+ exports["default"] = _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.__esModule = true;
+
+/***/ },
+/* 59 */
+/***/ function(module, exports, __webpack_require__) {
+
+ module.exports = { "default": __webpack_require__(60), __esModule: true };
+
+/***/ },
+/* 60 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(61);
+ module.exports = __webpack_require__(9).Object.assign;
+
+/***/ },
+/* 61 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 19.1.3.1 Object.assign(target, source)
+ var $def = __webpack_require__(7);
+ $def($def.S, 'Object', {assign: __webpack_require__(62)});
+
+/***/ },
+/* 62 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 19.1.2.1 Object.assign(target, source, ...)
+ var toObject = __webpack_require__(4)
+ , IObject = __webpack_require__(63)
+ , enumKeys = __webpack_require__(65);
+ /* eslint-disable no-unused-vars */
+ module.exports = Object.assign || function assign(target, source){
+ /* eslint-enable no-unused-vars */
+ var T = toObject(target)
+ , l = arguments.length
+ , i = 1;
+ while(l > i){
+ var S = IObject(arguments[i++])
+ , keys = enumKeys(S)
+ , length = keys.length
+ , j = 0
+ , key;
+ while(length > j)T[key = keys[j++]] = S[key];
+ }
+ return T;
+ };
+
+/***/ },
+/* 63 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // indexed object, fallback for non-array-like ES3 strings
+ var cof = __webpack_require__(64);
+ module.exports = 0 in Object('z') ? Object : function(it){
+ return cof(it) == 'String' ? it.split('') : Object(it);
+ };
+
+/***/ },
+/* 64 */
+/***/ function(module, exports) {
+
+ var toString = {}.toString;
+
+ module.exports = function(it){
+ return toString.call(it).slice(8, -1);
+ };
+
+/***/ },
+/* 65 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // all enumerable object keys, includes symbols
+ var $ = __webpack_require__(13);
+ module.exports = function(it){
+ var keys = $.getKeys(it)
+ , getSymbols = $.getSymbols;
+ if(getSymbols){
+ var symbols = getSymbols(it)
+ , isEnum = $.isEnum
+ , i = 0
+ , key;
+ while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))keys.push(key);
+ }
+ return keys;
+ };
+
+/***/ },
+/* 66 */
+/***/ function(module, exports, __webpack_require__) {
+
+ /* eslint react/prop-types: [2, {ignore: "bsStyle"}] */
+ /* BootstrapMixin contains `bsStyle` type validation */
+
+ 'use strict';
+
+ var _objectWithoutProperties = __webpack_require__(67)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _utilsValidComponentChildren = __webpack_require__(55);
+
+ var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren);
+
+ var PanelGroup = _react2['default'].createClass({
+ displayName: 'PanelGroup',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ accordion: _react2['default'].PropTypes.bool,
+ activeKey: _react2['default'].PropTypes.any,
+ className: _react2['default'].PropTypes.string,
+ children: _react2['default'].PropTypes.node,
+ defaultActiveKey: _react2['default'].PropTypes.any,
+ onSelect: _react2['default'].PropTypes.func
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ accordion: false,
+ bsClass: 'panel-group'
+ };
+ },
+
+ getInitialState: function getInitialState() {
+ var defaultActiveKey = this.props.defaultActiveKey;
+
+ return {
+ activeKey: defaultActiveKey
+ };
+ },
+
+ render: function render() {
+ var classes = this.getBsClassSet();
+ var _props = this.props;
+ var className = _props.className;
+
+ var props = _objectWithoutProperties(_props, ['className']);
+
+ if (this.props.accordion) {
+ props.role = 'tablist';
+ }
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, props, { className: _classnames2['default'](className, classes), onSelect: null }),
+ _utilsValidComponentChildren2['default'].map(props.children, this.renderPanel)
+ );
+ },
+
+ renderPanel: function renderPanel(child, index) {
+ var activeKey = this.props.activeKey != null ? this.props.activeKey : this.state.activeKey;
+
+ var props = {
+ bsStyle: child.props.bsStyle || this.props.bsStyle,
+ key: child.key ? child.key : index,
+ ref: child.ref
+ };
+
+ if (this.props.accordion) {
+ props.headerRole = 'tab';
+ props.panelRole = 'tabpanel';
+ props.collapsible = true;
+ props.expanded = child.props.eventKey === activeKey;
+ props.onSelect = this.handleSelect;
+ }
+
+ return _react.cloneElement(child, props);
+ },
+
+ shouldComponentUpdate: function shouldComponentUpdate() {
+ // Defer any updates to this component during the `onSelect` handler.
+ return !this._isChanging;
+ },
+
+ handleSelect: function handleSelect(e, key) {
+ e.preventDefault();
+
+ if (this.props.onSelect) {
+ this._isChanging = true;
+ this.props.onSelect(key);
+ this._isChanging = false;
+ }
+
+ if (this.state.activeKey === key) {
+ key = null;
+ }
+
+ this.setState({
+ activeKey: key
+ });
+ }
+ });
+
+ exports['default'] = PanelGroup;
+ module.exports = exports['default'];
+
+/***/ },
+/* 67 */
+/***/ function(module, exports) {
+
+ "use strict";
+
+ 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;
+ };
+
+ exports.__esModule = true;
+
+/***/ },
+/* 68 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var __WEBPACK_AMD_DEFINE_RESULT__;/*!
+ Copyright (c) 2015 Jed Watson.
+ Licensed under the MIT License (MIT), see
+ http://jedwatson.github.io/classnames
+ */
+
+ (function () {
+ 'use strict';
+
+ function classNames () {
+
+ var classes = '';
+
+ for (var i = 0; i < arguments.length; i++) {
+ var arg = arguments[i];
+ if (!arg) continue;
+
+ var argType = typeof arg;
+
+ if ('string' === argType || 'number' === argType) {
+ classes += ' ' + arg;
+
+ } else if (Array.isArray(arg)) {
+ classes += ' ' + classNames.apply(null, arg);
+
+ } else if ('object' === argType) {
+ for (var key in arg) {
+ if (arg.hasOwnProperty(key) && arg[key]) {
+ classes += ' ' + key;
+ }
+ }
+ }
+ }
+
+ return classes.substr(1);
+ }
+
+ if (typeof module !== 'undefined' && module.exports) {
+ module.exports = classNames;
+ } else if (true){
+ // AMD. Register as an anonymous module.
+ !(__WEBPACK_AMD_DEFINE_RESULT__ = function () {
+ return classNames;
+ }.call(exports, __webpack_require__, exports, module), __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
+ } else {
+ window.classNames = classNames;
+ }
+
+ }());
+
+
+/***/ },
+/* 69 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _styleMaps = __webpack_require__(70);
+
+ var _styleMaps2 = _interopRequireDefault(_styleMaps);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var BootstrapMixin = {
+ propTypes: {
+ /**
+ * bootstrap className
+ * @private
+ */
+ bsClass: _utilsCustomPropTypes2['default'].keyOf(_styleMaps2['default'].CLASSES),
+ /**
+ * Style variants
+ * @type {("default"|"primary"|"success"|"info"|"warning"|"danger"|"link")}
+ */
+ bsStyle: _react2['default'].PropTypes.oneOf(_styleMaps2['default'].STYLES),
+ /**
+ * Size variants
+ * @type {("xsmall"|"small"|"medium"|"large"|"xs"|"sm"|"md"|"lg")}
+ */
+ bsSize: _utilsCustomPropTypes2['default'].keyOf(_styleMaps2['default'].SIZES)
+ },
+
+ getBsClassSet: function getBsClassSet() {
+ var classes = {};
+
+ var bsClass = this.props.bsClass && _styleMaps2['default'].CLASSES[this.props.bsClass];
+ if (bsClass) {
+ classes[bsClass] = true;
+
+ var prefix = bsClass + '-';
+
+ var bsSize = this.props.bsSize && _styleMaps2['default'].SIZES[this.props.bsSize];
+ if (bsSize) {
+ classes[prefix + bsSize] = true;
+ }
+
+ if (this.props.bsStyle) {
+ if (_styleMaps2['default'].STYLES.indexOf(this.props.bsStyle) >= 0) {
+ classes[prefix + this.props.bsStyle] = true;
+ } else {
+ classes[this.props.bsStyle] = true;
+ }
+ }
+ }
+
+ return classes;
+ },
+
+ prefixClass: function prefixClass(subClass) {
+ return _styleMaps2['default'].CLASSES[this.props.bsClass] + '-' + subClass;
+ }
+ };
+
+ exports['default'] = BootstrapMixin;
+ module.exports = exports['default'];
+
+/***/ },
+/* 70 */
+/***/ function(module, exports) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+ var styleMaps = {
+ CLASSES: {
+ 'alert': 'alert',
+ 'button': 'btn',
+ 'button-group': 'btn-group',
+ 'button-toolbar': 'btn-toolbar',
+ 'column': 'col',
+ 'input-group': 'input-group',
+ 'form': 'form',
+ 'glyphicon': 'glyphicon',
+ 'label': 'label',
+ 'thumbnail': 'thumbnail',
+ 'list-group-item': 'list-group-item',
+ 'panel': 'panel',
+ 'panel-group': 'panel-group',
+ 'pagination': 'pagination',
+ 'progress-bar': 'progress-bar',
+ 'nav': 'nav',
+ 'navbar': 'navbar',
+ 'modal': 'modal',
+ 'row': 'row',
+ 'well': 'well'
+ },
+ STYLES: ['default', 'primary', 'success', 'info', 'warning', 'danger', 'link', 'inline', 'tabs', 'pills'],
+ addStyle: function addStyle(name) {
+ styleMaps.STYLES.push(name);
+ },
+ SIZES: {
+ 'large': 'lg',
+ 'medium': 'md',
+ 'small': 'sm',
+ 'xsmall': 'xs',
+ 'lg': 'lg',
+ 'md': 'md',
+ 'sm': 'sm',
+ 'xs': 'xs'
+ },
+ GRID_COLUMNS: 12
+ };
+
+ exports['default'] = styleMaps;
+ module.exports = exports['default'];
+
+/***/ },
+/* 71 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _AffixMixin = __webpack_require__(72);
+
+ var _AffixMixin2 = _interopRequireDefault(_AffixMixin);
+
+ var Affix = _react2['default'].createClass({
+ displayName: 'Affix',
+
+ mixins: [_AffixMixin2['default']],
+
+ render: function render() {
+ var holderStyle = _extends({
+ top: this.state.affixPositionTop
+ }, this.props.style);
+
+ // eslint-disable-line react/prop-types
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, {
+ className: _classnames2['default'](this.props.className, this.state.affixClass),
+ style: holderStyle }),
+ this.props.children
+ );
+ }
+ });
+
+ exports['default'] = Affix;
+ module.exports = exports['default'];
+ // we don't want to expose the `style` property
+
+/***/ },
+/* 72 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _utilsDomUtils = __webpack_require__(31);
+
+ var _utilsDomUtils2 = _interopRequireDefault(_utilsDomUtils);
+
+ var _utilsEventListener = __webpack_require__(73);
+
+ var _utilsEventListener2 = _interopRequireDefault(_utilsEventListener);
+
+ var AffixMixin = {
+ propTypes: {
+ offset: _react2['default'].PropTypes.number,
+ offsetTop: _react2['default'].PropTypes.number,
+ offsetBottom: _react2['default'].PropTypes.number
+ },
+
+ getInitialState: function getInitialState() {
+ return {
+ affixClass: 'affix-top'
+ };
+ },
+
+ getPinnedOffset: function getPinnedOffset(DOMNode) {
+ if (this.pinnedOffset) {
+ return this.pinnedOffset;
+ }
+
+ DOMNode.className = DOMNode.className.replace(/affix-top|affix-bottom|affix/, '');
+ DOMNode.className += DOMNode.className.length ? ' affix' : 'affix';
+
+ this.pinnedOffset = _utilsDomUtils2['default'].getOffset(DOMNode).top - window.pageYOffset;
+
+ return this.pinnedOffset;
+ },
+
+ checkPosition: function checkPosition() {
+ var DOMNode = undefined,
+ scrollHeight = undefined,
+ scrollTop = undefined,
+ position = undefined,
+ offsetTop = undefined,
+ offsetBottom = undefined,
+ affix = undefined,
+ affixType = undefined,
+ affixPositionTop = undefined;
+
+ // TODO: or not visible
+ if (!this.isMounted()) {
+ return;
+ }
+
+ DOMNode = _react2['default'].findDOMNode(this);
+ scrollHeight = _utilsDomUtils2['default'].getDocumentHeight();
+ scrollTop = window.pageYOffset;
+ position = _utilsDomUtils2['default'].getOffset(DOMNode);
+
+ if (this.affixed === 'top') {
+ position.top += scrollTop;
+ }
+
+ offsetTop = this.props.offsetTop != null ? this.props.offsetTop : this.props.offset;
+ offsetBottom = this.props.offsetBottom != null ? this.props.offsetBottom : this.props.offset;
+
+ if (offsetTop == null && offsetBottom == null) {
+ return;
+ }
+ if (offsetTop == null) {
+ offsetTop = 0;
+ }
+ if (offsetBottom == null) {
+ offsetBottom = 0;
+ }
+
+ if (this.unpin != null && scrollTop + this.unpin <= position.top) {
+ affix = false;
+ } else if (offsetBottom != null && position.top + DOMNode.offsetHeight >= scrollHeight - offsetBottom) {
+ affix = 'bottom';
+ } else if (offsetTop != null && scrollTop <= offsetTop) {
+ affix = 'top';
+ } else {
+ affix = false;
+ }
+
+ if (this.affixed === affix) {
+ return;
+ }
+
+ if (this.unpin != null) {
+ DOMNode.style.top = '';
+ }
+
+ affixType = 'affix' + (affix ? '-' + affix : '');
+
+ this.affixed = affix;
+ this.unpin = affix === 'bottom' ? this.getPinnedOffset(DOMNode) : null;
+
+ if (affix === 'bottom') {
+ DOMNode.className = DOMNode.className.replace(/affix-top|affix-bottom|affix/, 'affix-bottom');
+ affixPositionTop = scrollHeight - offsetBottom - DOMNode.offsetHeight - _utilsDomUtils2['default'].getOffset(DOMNode).top;
+ }
+
+ this.setState({
+ affixClass: affixType,
+ affixPositionTop: affixPositionTop
+ });
+ },
+
+ checkPositionWithEventLoop: function checkPositionWithEventLoop() {
+ setTimeout(this.checkPosition, 0);
+ },
+
+ componentDidMount: function componentDidMount() {
+ this._onWindowScrollListener = _utilsEventListener2['default'].listen(window, 'scroll', this.checkPosition);
+ this._onDocumentClickListener = _utilsEventListener2['default'].listen(_utilsDomUtils2['default'].ownerDocument(this), 'click', this.checkPositionWithEventLoop);
+ },
+
+ componentWillUnmount: function componentWillUnmount() {
+ if (this._onWindowScrollListener) {
+ this._onWindowScrollListener.remove();
+ }
+
+ if (this._onDocumentClickListener) {
+ this._onDocumentClickListener.remove();
+ }
+ },
+
+ componentDidUpdate: function componentDidUpdate(prevProps, prevState) {
+ if (prevState.affixClass === this.state.affixClass) {
+ this.checkPositionWithEventLoop();
+ }
+ }
+ };
+
+ exports['default'] = AffixMixin;
+ module.exports = exports['default'];
+
+/***/ },
+/* 73 */
+/***/ function(module, exports) {
+
+ /**
+ * Copyright 2013-2014 Facebook, Inc.
+ *
+ * This file contains a modified version of:
+ * https://github.com/facebook/react/blob/v0.12.0/src/vendor/stubs/EventListener.js
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ *
+ * TODO: remove in favour of solution provided by:
+ * https://github.com/facebook/react/issues/285
+ */
+
+ /**
+ * Does not take into account specific nature of platform.
+ */
+ 'use strict';
+
+ exports.__esModule = true;
+ var EventListener = {
+ /**
+ * Listen to DOM events during the bubble phase.
+ *
+ * @param {DOMEventTarget} target DOM element to register listener on.
+ * @param {string} eventType Event type, e.g. 'click' or 'mouseover'.
+ * @param {function} callback Callback function.
+ * @return {object} Object with a `remove` method.
+ */
+ listen: function listen(target, eventType, callback) {
+ if (target.addEventListener) {
+ target.addEventListener(eventType, callback, false);
+ return {
+ remove: function remove() {
+ target.removeEventListener(eventType, callback, false);
+ }
+ };
+ } else if (target.attachEvent) {
+ target.attachEvent('on' + eventType, callback);
+ return {
+ remove: function remove() {
+ target.detachEvent('on' + eventType, callback);
+ }
+ };
+ }
+ }
+ };
+
+ exports['default'] = EventListener;
+ module.exports = exports['default'];
+
+/***/ },
+/* 74 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var Alert = _react2['default'].createClass({
+ displayName: 'Alert',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ onDismiss: _react2['default'].PropTypes.func,
+ dismissAfter: _react2['default'].PropTypes.number,
+ closeLabel: _react2['default'].PropTypes.string
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ bsClass: 'alert',
+ bsStyle: 'info',
+ closeLabel: 'Close Alert'
+ };
+ },
+
+ renderDismissButton: function renderDismissButton() {
+ return _react2['default'].createElement(
+ 'button',
+ {
+ type: 'button',
+ className: 'close',
+ 'aria-label': this.props.closeLabel,
+ onClick: this.props.onDismiss },
+ _react2['default'].createElement(
+ 'span',
+ { 'aria-hidden': 'true' },
+ '×'
+ )
+ );
+ },
+
+ render: function render() {
+ var classes = this.getBsClassSet();
+ var isDismissable = !!this.props.onDismiss;
+
+ classes['alert-dismissable'] = isDismissable;
+
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, { role: 'alert', className: _classnames2['default'](this.props.className, classes) }),
+ isDismissable ? this.renderDismissButton() : null,
+ this.props.children
+ );
+ },
+
+ componentDidMount: function componentDidMount() {
+ if (this.props.dismissAfter && this.props.onDismiss) {
+ this.dismissTimer = setTimeout(this.props.onDismiss, this.props.dismissAfter);
+ }
+ },
+
+ componentWillUnmount: function componentWillUnmount() {
+ clearTimeout(this.dismissTimer);
+ }
+ });
+
+ exports['default'] = Alert;
+ module.exports = exports['default'];
+
+/***/ },
+/* 75 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _utilsValidComponentChildren = __webpack_require__(55);
+
+ var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var Badge = _react2['default'].createClass({
+ displayName: 'Badge',
+
+ propTypes: {
+ pullRight: _react2['default'].PropTypes.bool
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ pullRight: false
+ };
+ },
+
+ hasContent: function hasContent() {
+ return _utilsValidComponentChildren2['default'].hasValidComponent(this.props.children) || _react2['default'].Children.count(this.props.children) > 1 || typeof this.props.children === 'string' || typeof this.props.children === 'number';
+ },
+
+ render: function render() {
+ var classes = {
+ 'pull-right': this.props.pullRight,
+ 'badge': this.hasContent()
+ };
+ return _react2['default'].createElement(
+ 'span',
+ _extends({}, this.props, {
+ className: _classnames2['default'](this.props.className, classes) }),
+ this.props.children
+ );
+ }
+ });
+
+ exports['default'] = Badge;
+ module.exports = exports['default'];
+
+/***/ },
+/* 76 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var _ButtonInput = __webpack_require__(77);
+
+ var _ButtonInput2 = _interopRequireDefault(_ButtonInput);
+
+ var Button = _react2['default'].createClass({
+ displayName: 'Button',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ active: _react2['default'].PropTypes.bool,
+ disabled: _react2['default'].PropTypes.bool,
+ block: _react2['default'].PropTypes.bool,
+ navItem: _react2['default'].PropTypes.bool,
+ navDropdown: _react2['default'].PropTypes.bool,
+ /**
+ * You can use a custom element for this component
+ */
+ componentClass: _utilsCustomPropTypes2['default'].elementType,
+ href: _react2['default'].PropTypes.string,
+ target: _react2['default'].PropTypes.string,
+ /**
+ * Defines HTML button type Attribute
+ * @type {("button"|"reset"|"submit")}
+ * @defaultValue 'button'
+ */
+ type: _react2['default'].PropTypes.oneOf(_ButtonInput2['default'].types)
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ active: false,
+ block: false,
+ bsClass: 'button',
+ bsStyle: 'default',
+ disabled: false,
+ navItem: false,
+ navDropdown: false
+ };
+ },
+
+ render: function render() {
+ var classes = this.props.navDropdown ? {} : this.getBsClassSet();
+ var renderFuncName = undefined;
+
+ classes = _extends({
+ active: this.props.active,
+ 'btn-block': this.props.block
+ }, classes);
+
+ if (this.props.navItem) {
+ return this.renderNavItem(classes);
+ }
+
+ renderFuncName = this.props.href || this.props.target || this.props.navDropdown ? 'renderAnchor' : 'renderButton';
+
+ return this[renderFuncName](classes);
+ },
+
+ renderAnchor: function renderAnchor(classes) {
+
+ var Component = this.props.componentClass || 'a';
+ var href = this.props.href || '#';
+ classes.disabled = this.props.disabled;
+
+ return _react2['default'].createElement(
+ Component,
+ _extends({}, this.props, {
+ href: href,
+ className: _classnames2['default'](this.props.className, classes),
+ role: 'button' }),
+ this.props.children
+ );
+ },
+
+ renderButton: function renderButton(classes) {
+ var Component = this.props.componentClass || 'button';
+
+ return _react2['default'].createElement(
+ Component,
+ _extends({}, this.props, {
+ type: this.props.type || 'button',
+ className: _classnames2['default'](this.props.className, classes) }),
+ this.props.children
+ );
+ },
+
+ renderNavItem: function renderNavItem(classes) {
+ var liClasses = {
+ active: this.props.active
+ };
+
+ return _react2['default'].createElement(
+ 'li',
+ { className: _classnames2['default'](liClasses) },
+ this.renderAnchor(classes)
+ );
+ }
+ });
+
+ exports['default'] = Button;
+ module.exports = exports['default'];
+
+/***/ },
+/* 77 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _objectWithoutProperties = __webpack_require__(67)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _Button = __webpack_require__(76);
+
+ var _Button2 = _interopRequireDefault(_Button);
+
+ var _FormGroup = __webpack_require__(78);
+
+ var _FormGroup2 = _interopRequireDefault(_FormGroup);
+
+ var _InputBase2 = __webpack_require__(79);
+
+ var _InputBase3 = _interopRequireDefault(_InputBase2);
+
+ var _utilsChildrenValueInputValidation = __webpack_require__(52);
+
+ var _utilsChildrenValueInputValidation2 = _interopRequireDefault(_utilsChildrenValueInputValidation);
+
+ var ButtonInput = (function (_InputBase) {
+ _inherits(ButtonInput, _InputBase);
+
+ function ButtonInput() {
+ _classCallCheck(this, ButtonInput);
+
+ _InputBase.apply(this, arguments);
+ }
+
+ ButtonInput.prototype.renderFormGroup = function renderFormGroup(children) {
+ var _props = this.props;
+ var bsStyle = _props.bsStyle;
+ var value = _props.value;
+
+ var other = _objectWithoutProperties(_props, ['bsStyle', 'value']);
+
+ return _react2['default'].createElement(
+ _FormGroup2['default'],
+ other,
+ children
+ );
+ };
+
+ ButtonInput.prototype.renderInput = function renderInput() {
+ var _props2 = this.props;
+ var children = _props2.children;
+ var value = _props2.value;
+
+ var other = _objectWithoutProperties(_props2, ['children', 'value']);
+
+ var val = children ? children : value;
+ return _react2['default'].createElement(_Button2['default'], _extends({}, other, { componentClass: 'input', ref: 'input', key: 'input', value: val }));
+ };
+
+ return ButtonInput;
+ })(_InputBase3['default']);
+
+ ButtonInput.types = ['button', 'reset', 'submit'];
+
+ ButtonInput.defaultProps = {
+ type: 'button'
+ };
+
+ ButtonInput.propTypes = {
+ type: _react2['default'].PropTypes.oneOf(ButtonInput.types),
+ bsStyle: function bsStyle(props) {
+ //defer to Button propTypes of bsStyle
+ return null;
+ },
+ children: _utilsChildrenValueInputValidation2['default'],
+ value: _utilsChildrenValueInputValidation2['default']
+ };
+
+ exports['default'] = ButtonInput;
+ module.exports = exports['default'];
+
+/***/ },
+/* 78 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var FormGroup = (function (_React$Component) {
+ _inherits(FormGroup, _React$Component);
+
+ function FormGroup() {
+ _classCallCheck(this, FormGroup);
+
+ _React$Component.apply(this, arguments);
+ }
+
+ FormGroup.prototype.render = function render() {
+ var classes = {
+ 'form-group': !this.props.standalone,
+ 'form-group-lg': !this.props.standalone && this.props.bsSize === 'large',
+ 'form-group-sm': !this.props.standalone && this.props.bsSize === 'small',
+ 'has-feedback': this.props.hasFeedback,
+ 'has-success': this.props.bsStyle === 'success',
+ 'has-warning': this.props.bsStyle === 'warning',
+ 'has-error': this.props.bsStyle === 'error'
+ };
+
+ return _react2['default'].createElement(
+ 'div',
+ { className: _classnames2['default'](classes, this.props.groupClassName) },
+ this.props.children
+ );
+ };
+
+ return FormGroup;
+ })(_react2['default'].Component);
+
+ FormGroup.defaultProps = {
+ hasFeedback: false,
+ standalone: false
+ };
+
+ FormGroup.propTypes = {
+ standalone: _react2['default'].PropTypes.bool,
+ hasFeedback: _react2['default'].PropTypes.bool,
+ bsSize: function bsSize(props) {
+ if (props.standalone && props.bsSize !== undefined) {
+ return new Error('bsSize will not be used when `standalone` is set.');
+ }
+
+ return _react2['default'].PropTypes.oneOf(['small', 'medium', 'large']).apply(null, arguments);
+ },
+ bsStyle: _react2['default'].PropTypes.oneOf(['success', 'warning', 'error']),
+ groupClassName: _react2['default'].PropTypes.string
+ };
+
+ exports['default'] = FormGroup;
+ module.exports = exports['default'];
+
+/***/ },
+/* 79 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _FormGroup = __webpack_require__(78);
+
+ var _FormGroup2 = _interopRequireDefault(_FormGroup);
+
+ var _Glyphicon = __webpack_require__(80);
+
+ var _Glyphicon2 = _interopRequireDefault(_Glyphicon);
+
+ var InputBase = (function (_React$Component) {
+ _inherits(InputBase, _React$Component);
+
+ function InputBase() {
+ _classCallCheck(this, InputBase);
+
+ _React$Component.apply(this, arguments);
+ }
+
+ InputBase.prototype.getInputDOMNode = function getInputDOMNode() {
+ return _react2['default'].findDOMNode(this.refs.input);
+ };
+
+ InputBase.prototype.getValue = function getValue() {
+ if (this.props.type === 'static') {
+ return this.props.value;
+ } else if (this.props.type) {
+ if (this.props.type === 'select' && this.props.multiple) {
+ return this.getSelectedOptions();
+ } else {
+ return this.getInputDOMNode().value;
+ }
+ } else {
+ throw 'Cannot use getValue without specifying input type.';
+ }
+ };
+
+ InputBase.prototype.getChecked = function getChecked() {
+ return this.getInputDOMNode().checked;
+ };
+
+ InputBase.prototype.getSelectedOptions = function getSelectedOptions() {
+ var values = [];
+
+ Array.prototype.forEach.call(this.getInputDOMNode().getElementsByTagName('option'), function (option) {
+ if (option.selected) {
+ var value = option.getAttribute('value') || option.innerHtml;
+ values.push(value);
+ }
+ });
+
+ return values;
+ };
+
+ InputBase.prototype.isCheckboxOrRadio = function isCheckboxOrRadio() {
+ return this.props.type === 'checkbox' || this.props.type === 'radio';
+ };
+
+ InputBase.prototype.isFile = function isFile() {
+ return this.props.type === 'file';
+ };
+
+ InputBase.prototype.renderInputGroup = function renderInputGroup(children) {
+ var addonBefore = this.props.addonBefore ? _react2['default'].createElement(
+ 'span',
+ { className: 'input-group-addon', key: 'addonBefore' },
+ this.props.addonBefore
+ ) : null;
+
+ var addonAfter = this.props.addonAfter ? _react2['default'].createElement(
+ 'span',
+ { className: 'input-group-addon', key: 'addonAfter' },
+ this.props.addonAfter
+ ) : null;
+
+ var buttonBefore = this.props.buttonBefore ? _react2['default'].createElement(
+ 'span',
+ { className: 'input-group-btn' },
+ this.props.buttonBefore
+ ) : null;
+
+ var buttonAfter = this.props.buttonAfter ? _react2['default'].createElement(
+ 'span',
+ { className: 'input-group-btn' },
+ this.props.buttonAfter
+ ) : null;
+
+ var inputGroupClassName = undefined;
+ switch (this.props.bsSize) {
+ case 'small':
+ inputGroupClassName = 'input-group-sm';break;
+ case 'large':
+ inputGroupClassName = 'input-group-lg';break;
+ default:
+ }
+
+ return addonBefore || addonAfter || buttonBefore || buttonAfter ? _react2['default'].createElement(
+ 'div',
+ { className: _classnames2['default'](inputGroupClassName, 'input-group'), key: 'input-group' },
+ addonBefore,
+ buttonBefore,
+ children,
+ addonAfter,
+ buttonAfter
+ ) : children;
+ };
+
+ InputBase.prototype.renderIcon = function renderIcon() {
+ if (this.props.hasFeedback) {
+ if (this.props.feedbackIcon) {
+ return _react2['default'].cloneElement(this.props.feedbackIcon, { formControlFeedback: true });
+ }
+
+ switch (this.props.bsStyle) {
+ case 'success':
+ return _react2['default'].createElement(_Glyphicon2['default'], { formControlFeedback: true, glyph: 'ok', key: 'icon' });
+ case 'warning':
+ return _react2['default'].createElement(_Glyphicon2['default'], { formControlFeedback: true, glyph: 'warning-sign', key: 'icon' });
+ case 'error':
+ return _react2['default'].createElement(_Glyphicon2['default'], { formControlFeedback: true, glyph: 'remove', key: 'icon' });
+ default:
+ return _react2['default'].createElement('span', { className: 'form-control-feedback', key: 'icon' });
+ }
+ } else {
+ return null;
+ }
+ };
+
+ InputBase.prototype.renderHelp = function renderHelp() {
+ return this.props.help ? _react2['default'].createElement(
+ 'span',
+ { className: 'help-block', key: 'help' },
+ this.props.help
+ ) : null;
+ };
+
+ InputBase.prototype.renderCheckboxAndRadioWrapper = function renderCheckboxAndRadioWrapper(children) {
+ var classes = {
+ 'checkbox': this.props.type === 'checkbox',
+ 'radio': this.props.type === 'radio'
+ };
+
+ return _react2['default'].createElement(
+ 'div',
+ { className: _classnames2['default'](classes), key: 'checkboxRadioWrapper' },
+ children
+ );
+ };
+
+ InputBase.prototype.renderWrapper = function renderWrapper(children) {
+ return this.props.wrapperClassName ? _react2['default'].createElement(
+ 'div',
+ { className: this.props.wrapperClassName, key: 'wrapper' },
+ children
+ ) : children;
+ };
+
+ InputBase.prototype.renderLabel = function renderLabel(children) {
+ var classes = {
+ 'control-label': !this.isCheckboxOrRadio()
+ };
+ classes[this.props.labelClassName] = this.props.labelClassName;
+
+ return this.props.label ? _react2['default'].createElement(
+ 'label',
+ { htmlFor: this.props.id, className: _classnames2['default'](classes), key: 'label' },
+ children,
+ this.props.label
+ ) : children;
+ };
+
+ InputBase.prototype.renderInput = function renderInput() {
+ if (!this.props.type) {
+ return this.props.children;
+ }
+
+ switch (this.props.type) {
+ case 'select':
+ return _react2['default'].createElement(
+ 'select',
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'form-control'), ref: 'input', key: 'input' }),
+ this.props.children
+ );
+ case 'textarea':
+ return _react2['default'].createElement('textarea', _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'form-control'), ref: 'input', key: 'input' }));
+ case 'static':
+ return _react2['default'].createElement(
+ 'p',
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'form-control-static'), ref: 'input', key: 'input' }),
+ this.props.value
+ );
+ default:
+ var className = this.isCheckboxOrRadio() || this.isFile() ? '' : 'form-control';
+ return _react2['default'].createElement('input', _extends({}, this.props, { className: _classnames2['default'](this.props.className, className), ref: 'input', key: 'input' }));
+ }
+ };
+
+ InputBase.prototype.renderFormGroup = function renderFormGroup(children) {
+ return _react2['default'].createElement(
+ _FormGroup2['default'],
+ this.props,
+ children
+ );
+ };
+
+ InputBase.prototype.renderChildren = function renderChildren() {
+ return !this.isCheckboxOrRadio() ? [this.renderLabel(), this.renderWrapper([this.renderInputGroup(this.renderInput()), this.renderIcon(), this.renderHelp()])] : this.renderWrapper([this.renderCheckboxAndRadioWrapper(this.renderLabel(this.renderInput())), this.renderHelp()]);
+ };
+
+ InputBase.prototype.render = function render() {
+ var children = this.renderChildren();
+ return this.renderFormGroup(children);
+ };
+
+ return InputBase;
+ })(_react2['default'].Component);
+
+ InputBase.propTypes = {
+ type: _react2['default'].PropTypes.string,
+ label: _react2['default'].PropTypes.node,
+ help: _react2['default'].PropTypes.node,
+ addonBefore: _react2['default'].PropTypes.node,
+ addonAfter: _react2['default'].PropTypes.node,
+ buttonBefore: _react2['default'].PropTypes.node,
+ buttonAfter: _react2['default'].PropTypes.node,
+ bsSize: _react2['default'].PropTypes.oneOf(['small', 'medium', 'large']),
+ bsStyle: _react2['default'].PropTypes.oneOf(['success', 'warning', 'error']),
+ hasFeedback: _react2['default'].PropTypes.bool,
+ feedbackIcon: _react2['default'].PropTypes.node,
+ id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]),
+ groupClassName: _react2['default'].PropTypes.string,
+ wrapperClassName: _react2['default'].PropTypes.string,
+ labelClassName: _react2['default'].PropTypes.string,
+ multiple: _react2['default'].PropTypes.bool,
+ disabled: _react2['default'].PropTypes.bool,
+ value: _react2['default'].PropTypes.any
+ };
+
+ InputBase.defaultProps = {
+ disabled: false,
+ hasFeedback: false,
+ multiple: false
+ };
+
+ exports['default'] = InputBase;
+ module.exports = exports['default'];
+
+/***/ },
+/* 80 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var Glyphicon = _react2['default'].createClass({
+ displayName: 'Glyphicon',
+
+ propTypes: {
+ /**
+ * bootstrap className
+ * @private
+ */
+ bsClass: _react2['default'].PropTypes.string,
+ /**
+ * An icon name. See e.g. http://getbootstrap.com/components/#glyphicons
+ */
+ glyph: _react2['default'].PropTypes.string.isRequired,
+ /**
+ * Adds 'form-control-feedback' class
+ * @private
+ */
+ formControlFeedback: _react2['default'].PropTypes.bool
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ bsClass: 'glyphicon',
+ formControlFeedback: false
+ };
+ },
+
+ render: function render() {
+ var _classNames;
+
+ var className = _classnames2['default'](this.props.className, (_classNames = {}, _classNames[this.props.bsClass] = true, _classNames['glyphicon-' + this.props.glyph] = true, _classNames['form-control-feedback'] = this.props.formControlFeedback, _classNames));
+
+ return _react2['default'].createElement(
+ 'span',
+ _extends({}, this.props, { className: className }),
+ this.props.children
+ );
+ }
+ });
+
+ exports['default'] = Glyphicon;
+ module.exports = exports['default'];
+
+/***/ },
+/* 81 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var ButtonGroup = _react2['default'].createClass({
+ displayName: 'ButtonGroup',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ vertical: _react2['default'].PropTypes.bool,
+ justified: _react2['default'].PropTypes.bool,
+ /**
+ * Display block buttons, only useful when used with the "vertical" prop.
+ * @type {bool}
+ */
+ block: _utilsCustomPropTypes2['default'].all([_react2['default'].PropTypes.bool, function (props, propName, componentName) {
+ if (props.block && !props.vertical) {
+ return new Error('The block property requires the vertical property to be set to have any effect');
+ }
+ }])
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ block: false,
+ bsClass: 'button-group',
+ justified: false,
+ vertical: false
+ };
+ },
+
+ render: function render() {
+ var classes = this.getBsClassSet();
+ classes['btn-group'] = !this.props.vertical;
+ classes['btn-group-vertical'] = this.props.vertical;
+ classes['btn-group-justified'] = this.props.justified;
+ classes['btn-block'] = this.props.block;
+
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, {
+ className: _classnames2['default'](this.props.className, classes) }),
+ this.props.children
+ );
+ }
+ });
+
+ exports['default'] = ButtonGroup;
+ module.exports = exports['default'];
+
+/***/ },
+/* 82 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var ButtonToolbar = _react2['default'].createClass({
+ displayName: 'ButtonToolbar',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ bsClass: 'button-toolbar'
+ };
+ },
+
+ render: function render() {
+ var classes = this.getBsClassSet();
+
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, {
+ role: 'toolbar',
+ className: _classnames2['default'](this.props.className, classes) }),
+ this.props.children
+ );
+ }
+ });
+
+ exports['default'] = ButtonToolbar;
+ module.exports = exports['default'];
+
+/***/ },
+/* 83 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _utilsValidComponentChildren = __webpack_require__(55);
+
+ var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren);
+
+ var _Glyphicon = __webpack_require__(80);
+
+ var _Glyphicon2 = _interopRequireDefault(_Glyphicon);
+
+ var Carousel = _react2['default'].createClass({
+ displayName: 'Carousel',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ slide: _react2['default'].PropTypes.bool,
+ indicators: _react2['default'].PropTypes.bool,
+ interval: _react2['default'].PropTypes.number,
+ controls: _react2['default'].PropTypes.bool,
+ pauseOnHover: _react2['default'].PropTypes.bool,
+ wrap: _react2['default'].PropTypes.bool,
+ onSelect: _react2['default'].PropTypes.func,
+ onSlideEnd: _react2['default'].PropTypes.func,
+ activeIndex: _react2['default'].PropTypes.number,
+ defaultActiveIndex: _react2['default'].PropTypes.number,
+ direction: _react2['default'].PropTypes.oneOf(['prev', 'next']),
+ prevIcon: _react2['default'].PropTypes.node,
+ nextIcon: _react2['default'].PropTypes.node
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ slide: true,
+ interval: 5000,
+ pauseOnHover: true,
+ wrap: true,
+ indicators: true,
+ controls: true,
+ prevIcon: _react2['default'].createElement(_Glyphicon2['default'], { glyph: 'chevron-left' }),
+ nextIcon: _react2['default'].createElement(_Glyphicon2['default'], { glyph: 'chevron-right' })
+ };
+ },
+
+ getInitialState: function getInitialState() {
+ return {
+ activeIndex: this.props.defaultActiveIndex == null ? 0 : this.props.defaultActiveIndex,
+ previousActiveIndex: null,
+ direction: null
+ };
+ },
+
+ getDirection: function getDirection(prevIndex, index) {
+ if (prevIndex === index) {
+ return null;
+ }
+
+ return prevIndex > index ? 'prev' : 'next';
+ },
+
+ componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
+ var activeIndex = this.getActiveIndex();
+
+ if (nextProps.activeIndex != null && nextProps.activeIndex !== activeIndex) {
+ clearTimeout(this.timeout);
+ this.setState({
+ previousActiveIndex: activeIndex,
+ direction: nextProps.direction != null ? nextProps.direction : this.getDirection(activeIndex, nextProps.activeIndex)
+ });
+ }
+ },
+
+ componentDidMount: function componentDidMount() {
+ this.waitForNext();
+ },
+
+ componentWillUnmount: function componentWillUnmount() {
+ clearTimeout(this.timeout);
+ },
+
+ next: function next(e) {
+ if (e) {
+ e.preventDefault();
+ }
+
+ var index = this.getActiveIndex() + 1;
+ var count = _utilsValidComponentChildren2['default'].numberOf(this.props.children);
+
+ if (index > count - 1) {
+ if (!this.props.wrap) {
+ return;
+ }
+ index = 0;
+ }
+
+ this.handleSelect(index, 'next');
+ },
+
+ prev: function prev(e) {
+ if (e) {
+ e.preventDefault();
+ }
+
+ var index = this.getActiveIndex() - 1;
+
+ if (index < 0) {
+ if (!this.props.wrap) {
+ return;
+ }
+ index = _utilsValidComponentChildren2['default'].numberOf(this.props.children) - 1;
+ }
+
+ this.handleSelect(index, 'prev');
+ },
+
+ pause: function pause() {
+ this.isPaused = true;
+ clearTimeout(this.timeout);
+ },
+
+ play: function play() {
+ this.isPaused = false;
+ this.waitForNext();
+ },
+
+ waitForNext: function waitForNext() {
+ if (!this.isPaused && this.props.slide && this.props.interval && this.props.activeIndex == null) {
+ this.timeout = setTimeout(this.next, this.props.interval);
+ }
+ },
+
+ handleMouseOver: function handleMouseOver() {
+ if (this.props.pauseOnHover) {
+ this.pause();
+ }
+ },
+
+ handleMouseOut: function handleMouseOut() {
+ if (this.isPaused) {
+ this.play();
+ }
+ },
+
+ render: function render() {
+ var classes = {
+ carousel: true,
+ slide: this.props.slide
+ };
+
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, {
+ className: _classnames2['default'](this.props.className, classes),
+ onMouseOver: this.handleMouseOver,
+ onMouseOut: this.handleMouseOut }),
+ this.props.indicators ? this.renderIndicators() : null,
+ _react2['default'].createElement(
+ 'div',
+ { className: 'carousel-inner', ref: 'inner' },
+ _utilsValidComponentChildren2['default'].map(this.props.children, this.renderItem)
+ ),
+ this.props.controls ? this.renderControls() : null
+ );
+ },
+
+ renderPrev: function renderPrev() {
+ return _react2['default'].createElement(
+ 'a',
+ { className: 'left carousel-control', href: '#prev', key: 0, onClick: this.prev },
+ this.props.prevIcon
+ );
+ },
+
+ renderNext: function renderNext() {
+ return _react2['default'].createElement(
+ 'a',
+ { className: 'right carousel-control', href: '#next', key: 1, onClick: this.next },
+ this.props.nextIcon
+ );
+ },
+
+ renderControls: function renderControls() {
+ if (!this.props.wrap) {
+ var activeIndex = this.getActiveIndex();
+ var count = _utilsValidComponentChildren2['default'].numberOf(this.props.children);
+
+ return [activeIndex !== 0 ? this.renderPrev() : null, activeIndex !== count - 1 ? this.renderNext() : null];
+ }
+
+ return [this.renderPrev(), this.renderNext()];
+ },
+
+ renderIndicator: function renderIndicator(child, index) {
+ var className = index === this.getActiveIndex() ? 'active' : null;
+
+ return _react2['default'].createElement('li', {
+ key: index,
+ className: className,
+ onClick: this.handleSelect.bind(this, index, null) });
+ },
+
+ renderIndicators: function renderIndicators() {
+ var indicators = [];
+ _utilsValidComponentChildren2['default'].forEach(this.props.children, function (child, index) {
+ indicators.push(this.renderIndicator(child, index),
+
+ // Force whitespace between indicator elements, bootstrap
+ // requires this for correct spacing of elements.
+ ' ');
+ }, this);
+
+ return _react2['default'].createElement(
+ 'ol',
+ { className: 'carousel-indicators' },
+ indicators
+ );
+ },
+
+ getActiveIndex: function getActiveIndex() {
+ return this.props.activeIndex != null ? this.props.activeIndex : this.state.activeIndex;
+ },
+
+ handleItemAnimateOutEnd: function handleItemAnimateOutEnd() {
+ this.setState({
+ previousActiveIndex: null,
+ direction: null
+ }, function () {
+ this.waitForNext();
+
+ if (this.props.onSlideEnd) {
+ this.props.onSlideEnd();
+ }
+ });
+ },
+
+ renderItem: function renderItem(child, index) {
+ var activeIndex = this.getActiveIndex();
+ var isActive = index === activeIndex;
+ var isPreviousActive = this.state.previousActiveIndex != null && this.state.previousActiveIndex === index && this.props.slide;
+
+ return _react.cloneElement(child, {
+ active: isActive,
+ ref: child.ref,
+ key: child.key ? child.key : index,
+ index: index,
+ animateOut: isPreviousActive,
+ animateIn: isActive && this.state.previousActiveIndex != null && this.props.slide,
+ direction: this.state.direction,
+ onAnimateOutEnd: isPreviousActive ? this.handleItemAnimateOutEnd : null
+ });
+ },
+
+ handleSelect: function handleSelect(index, direction) {
+ clearTimeout(this.timeout);
+
+ if (this.isMounted()) {
+ var previousActiveIndex = this.getActiveIndex();
+ direction = direction || this.getDirection(previousActiveIndex, index);
+
+ if (this.props.onSelect) {
+ this.props.onSelect(index, direction);
+ }
+
+ if (this.props.activeIndex == null && index !== previousActiveIndex) {
+ if (this.state.previousActiveIndex != null) {
+ // If currently animating don't activate the new index.
+ // TODO: look into queuing this canceled call and
+ // animating after the current animation has ended.
+ return;
+ }
+
+ this.setState({
+ activeIndex: index,
+ previousActiveIndex: previousActiveIndex,
+ direction: direction
+ });
+ }
+ }
+ }
+ });
+
+ exports['default'] = Carousel;
+ module.exports = exports['default'];
+
+/***/ },
+/* 84 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _utilsTransitionEvents = __webpack_require__(85);
+
+ var _utilsTransitionEvents2 = _interopRequireDefault(_utilsTransitionEvents);
+
+ var CarouselItem = _react2['default'].createClass({
+ displayName: 'CarouselItem',
+
+ propTypes: {
+ direction: _react2['default'].PropTypes.oneOf(['prev', 'next']),
+ onAnimateOutEnd: _react2['default'].PropTypes.func,
+ active: _react2['default'].PropTypes.bool,
+ animateIn: _react2['default'].PropTypes.bool,
+ animateOut: _react2['default'].PropTypes.bool,
+ caption: _react2['default'].PropTypes.node,
+ index: _react2['default'].PropTypes.number
+ },
+
+ getInitialState: function getInitialState() {
+ return {
+ direction: null
+ };
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ active: false,
+ animateIn: false,
+ animateOut: false
+ };
+ },
+
+ handleAnimateOutEnd: function handleAnimateOutEnd() {
+ if (this.props.onAnimateOutEnd && this.isMounted()) {
+ this.props.onAnimateOutEnd(this.props.index);
+ }
+ },
+
+ componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
+ if (this.props.active !== nextProps.active) {
+ this.setState({
+ direction: null
+ });
+ }
+ },
+
+ componentDidUpdate: function componentDidUpdate(prevProps) {
+ if (!this.props.active && prevProps.active) {
+ _utilsTransitionEvents2['default'].addEndEventListener(_react2['default'].findDOMNode(this), this.handleAnimateOutEnd);
+ }
+
+ if (this.props.active !== prevProps.active) {
+ setTimeout(this.startAnimation, 20);
+ }
+ },
+
+ startAnimation: function startAnimation() {
+ if (!this.isMounted()) {
+ return;
+ }
+
+ this.setState({
+ direction: this.props.direction === 'prev' ? 'right' : 'left'
+ });
+ },
+
+ render: function render() {
+ var classes = {
+ item: true,
+ active: this.props.active && !this.props.animateIn || this.props.animateOut,
+ next: this.props.active && this.props.animateIn && this.props.direction === 'next',
+ prev: this.props.active && this.props.animateIn && this.props.direction === 'prev'
+ };
+
+ if (this.state.direction && (this.props.animateIn || this.props.animateOut)) {
+ classes[this.state.direction] = true;
+ }
+
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }),
+ this.props.children,
+ this.props.caption ? this.renderCaption() : null
+ );
+ },
+
+ renderCaption: function renderCaption() {
+ return _react2['default'].createElement(
+ 'div',
+ { className: 'carousel-caption' },
+ this.props.caption
+ );
+ }
+ });
+
+ exports['default'] = CarouselItem;
+ module.exports = exports['default'];
+
+/***/ },
+/* 85 */
+/***/ function(module, exports) {
+
+ /**
+ * Copyright 2013-2014, Facebook, Inc.
+ * All rights reserved.
+ *
+ * This file contains a modified version of:
+ * https://github.com/facebook/react/blob/v0.12.0/src/addons/transitions/ReactTransitionEvents.js
+ *
+ * This source code is licensed under the BSD-style license found here:
+ * https://github.com/facebook/react/blob/v0.12.0/LICENSE
+ * An additional grant of patent rights can be found here:
+ * https://github.com/facebook/react/blob/v0.12.0/PATENTS
+ */
+
+ 'use strict';
+
+ exports.__esModule = true;
+ var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);
+
+ /**
+ * EVENT_NAME_MAP is used to determine which event fired when a
+ * transition/animation ends, based on the style property used to
+ * define that event.
+ */
+ var EVENT_NAME_MAP = {
+ transitionend: {
+ 'transition': 'transitionend',
+ 'WebkitTransition': 'webkitTransitionEnd',
+ 'MozTransition': 'mozTransitionEnd',
+ 'OTransition': 'oTransitionEnd',
+ 'msTransition': 'MSTransitionEnd'
+ },
+
+ animationend: {
+ 'animation': 'animationend',
+ 'WebkitAnimation': 'webkitAnimationEnd',
+ 'MozAnimation': 'mozAnimationEnd',
+ 'OAnimation': 'oAnimationEnd',
+ 'msAnimation': 'MSAnimationEnd'
+ }
+ };
+
+ var endEvents = [];
+
+ function detectEvents() {
+ var testEl = document.createElement('div');
+ var style = testEl.style;
+
+ // On some platforms, in particular some releases of Android 4.x,
+ // the un-prefixed "animation" and "transition" properties are defined on the
+ // style object but the events that fire will still be prefixed, so we need
+ // to check if the un-prefixed events are useable, and if not remove them
+ // from the map
+ if (!('AnimationEvent' in window)) {
+ delete EVENT_NAME_MAP.animationend.animation;
+ }
+
+ if (!('TransitionEvent' in window)) {
+ delete EVENT_NAME_MAP.transitionend.transition;
+ }
+
+ for (var baseEventName in EVENT_NAME_MAP) {
+ var baseEvents = EVENT_NAME_MAP[baseEventName];
+ for (var styleName in baseEvents) {
+ if (styleName in style) {
+ endEvents.push(baseEvents[styleName]);
+ break;
+ }
+ }
+ }
+ }
+
+ if (canUseDOM) {
+ detectEvents();
+ }
+
+ // We use the raw {add|remove}EventListener() call because EventListener
+ // does not know how to remove event listeners and we really should
+ // clean up. Also, these events are not triggered in older browsers
+ // so we should be A-OK here.
+
+ function addEventListener(node, eventName, eventListener) {
+ node.addEventListener(eventName, eventListener, false);
+ }
+
+ function removeEventListener(node, eventName, eventListener) {
+ node.removeEventListener(eventName, eventListener, false);
+ }
+
+ var ReactTransitionEvents = {
+ addEndEventListener: function addEndEventListener(node, eventListener) {
+ if (endEvents.length === 0) {
+ // If CSS transitions are not supported, trigger an "end animation"
+ // event immediately.
+ window.setTimeout(eventListener, 0);
+ return;
+ }
+ endEvents.forEach(function (endEvent) {
+ addEventListener(node, endEvent, eventListener);
+ });
+ },
+
+ removeEndEventListener: function removeEndEventListener(node, eventListener) {
+ if (endEvents.length === 0) {
+ return;
+ }
+ endEvents.forEach(function (endEvent) {
+ removeEventListener(node, endEvent, eventListener);
+ });
+ }
+ };
+
+ exports['default'] = ReactTransitionEvents;
+ module.exports = exports['default'];
+
+/***/ },
+/* 86 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _Object$keys = __webpack_require__(1)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _styleMaps = __webpack_require__(70);
+
+ var _styleMaps2 = _interopRequireDefault(_styleMaps);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var Col = _react2['default'].createClass({
+ displayName: 'Col',
+
+ propTypes: {
+ /**
+ * The number of columns you wish to span
+ *
+ * for Extra small devices Phones (<768px)
+ *
+ * class-prefix `col-xs-`
+ */
+ xs: _react2['default'].PropTypes.number,
+ /**
+ * The number of columns you wish to span
+ *
+ * for Small devices Tablets (≥768px)
+ *
+ * class-prefix `col-sm-`
+ */
+ sm: _react2['default'].PropTypes.number,
+ /**
+ * The number of columns you wish to span
+ *
+ * for Medium devices Desktops (≥992px)
+ *
+ * class-prefix `col-md-`
+ */
+ md: _react2['default'].PropTypes.number,
+ /**
+ * The number of columns you wish to span
+ *
+ * for Large devices Desktops (≥1200px)
+ *
+ * class-prefix `col-lg-`
+ */
+ lg: _react2['default'].PropTypes.number,
+ /**
+ * Move columns to the right
+ *
+ * for Extra small devices Phones
+ *
+ * class-prefix `col-xs-offset-`
+ */
+ xsOffset: _react2['default'].PropTypes.number,
+ /**
+ * Move columns to the right
+ *
+ * for Small devices Tablets
+ *
+ * class-prefix `col-sm-offset-`
+ */
+ smOffset: _react2['default'].PropTypes.number,
+ /**
+ * Move columns to the right
+ *
+ * for Medium devices Desktops
+ *
+ * class-prefix `col-md-offset-`
+ */
+ mdOffset: _react2['default'].PropTypes.number,
+ /**
+ * Move columns to the right
+ *
+ * for Large devices Desktops
+ *
+ * class-prefix `col-lg-offset-`
+ */
+ lgOffset: _react2['default'].PropTypes.number,
+ /**
+ * Change the order of grid columns to the right
+ *
+ * for Extra small devices Phones
+ *
+ * class-prefix `col-xs-push-`
+ */
+ xsPush: _react2['default'].PropTypes.number,
+ /**
+ * Change the order of grid columns to the right
+ *
+ * for Small devices Tablets
+ *
+ * class-prefix `col-sm-push-`
+ */
+ smPush: _react2['default'].PropTypes.number,
+ /**
+ * Change the order of grid columns to the right
+ *
+ * for Medium devices Desktops
+ *
+ * class-prefix `col-md-push-`
+ */
+ mdPush: _react2['default'].PropTypes.number,
+ /**
+ * Change the order of grid columns to the right
+ *
+ * for Large devices Desktops
+ *
+ * class-prefix `col-lg-push-`
+ */
+ lgPush: _react2['default'].PropTypes.number,
+ /**
+ * Change the order of grid columns to the left
+ *
+ * for Extra small devices Phones
+ *
+ * class-prefix `col-xs-pull-`
+ */
+ xsPull: _react2['default'].PropTypes.number,
+ /**
+ * Change the order of grid columns to the left
+ *
+ * for Small devices Tablets
+ *
+ * class-prefix `col-sm-pull-`
+ */
+ smPull: _react2['default'].PropTypes.number,
+ /**
+ * Change the order of grid columns to the left
+ *
+ * for Medium devices Desktops
+ *
+ * class-prefix `col-md-pull-`
+ */
+ mdPull: _react2['default'].PropTypes.number,
+ /**
+ * Change the order of grid columns to the left
+ *
+ * for Large devices Desktops
+ *
+ * class-prefix `col-lg-pull-`
+ */
+ lgPull: _react2['default'].PropTypes.number,
+ /**
+ * You can use a custom element for this component
+ */
+ componentClass: _utilsCustomPropTypes2['default'].elementType
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ componentClass: 'div'
+ };
+ },
+
+ render: function render() {
+ var ComponentClass = this.props.componentClass;
+ var classes = {};
+
+ _Object$keys(_styleMaps2['default'].SIZES).forEach(function (key) {
+ var size = _styleMaps2['default'].SIZES[key];
+ var prop = size;
+ var classPart = size + '-';
+
+ if (this.props[prop]) {
+ classes['col-' + classPart + this.props[prop]] = true;
+ }
+
+ prop = size + 'Offset';
+ classPart = size + '-offset-';
+ if (this.props[prop] >= 0) {
+ classes['col-' + classPart + this.props[prop]] = true;
+ }
+
+ prop = size + 'Push';
+ classPart = size + '-push-';
+ if (this.props[prop] >= 0) {
+ classes['col-' + classPart + this.props[prop]] = true;
+ }
+
+ prop = size + 'Pull';
+ classPart = size + '-pull-';
+ if (this.props[prop] >= 0) {
+ classes['col-' + classPart + this.props[prop]] = true;
+ }
+ }, this);
+
+ return _react2['default'].createElement(
+ ComponentClass,
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }),
+ this.props.children
+ );
+ }
+ });
+
+ exports['default'] = Col;
+ module.exports = exports['default'];
+
+/***/ },
+/* 87 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _utilsTransitionEvents = __webpack_require__(85);
+
+ var _utilsTransitionEvents2 = _interopRequireDefault(_utilsTransitionEvents);
+
+ var _utilsDeprecationWarning = __webpack_require__(16);
+
+ var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning);
+
+ var CollapsibleMixin = {
+
+ propTypes: {
+ defaultExpanded: _react2['default'].PropTypes.bool,
+ expanded: _react2['default'].PropTypes.bool
+ },
+
+ getInitialState: function getInitialState() {
+ var defaultExpanded = this.props.defaultExpanded != null ? this.props.defaultExpanded : this.props.expanded != null ? this.props.expanded : false;
+
+ return {
+ expanded: defaultExpanded,
+ collapsing: false
+ };
+ },
+
+ componentWillMount: function componentWillMount() {
+ _utilsDeprecationWarning2['default']('CollapsibleMixin', 'Collapse Component');
+ },
+
+ componentWillUpdate: function componentWillUpdate(nextProps, nextState) {
+ var willExpanded = nextProps.expanded != null ? nextProps.expanded : nextState.expanded;
+ if (willExpanded === this.isExpanded()) {
+ return;
+ }
+
+ // if the expanded state is being toggled, ensure node has a dimension value
+ // this is needed for the animation to work and needs to be set before
+ // the collapsing class is applied (after collapsing is applied the in class
+ // is removed and the node's dimension will be wrong)
+
+ var node = this.getCollapsibleDOMNode();
+ var dimension = this.dimension();
+ var value = '0';
+
+ if (!willExpanded) {
+ value = this.getCollapsibleDimensionValue();
+ }
+
+ node.style[dimension] = value + 'px';
+
+ this._afterWillUpdate();
+ },
+
+ componentDidUpdate: function componentDidUpdate(prevProps, prevState) {
+ // check if expanded is being toggled; if so, set collapsing
+ this._checkToggleCollapsing(prevProps, prevState);
+
+ // check if collapsing was turned on; if so, start animation
+ this._checkStartAnimation();
+ },
+
+ // helps enable test stubs
+ _afterWillUpdate: function _afterWillUpdate() {},
+
+ _checkStartAnimation: function _checkStartAnimation() {
+ if (!this.state.collapsing) {
+ return;
+ }
+
+ var node = this.getCollapsibleDOMNode();
+ var dimension = this.dimension();
+ var value = this.getCollapsibleDimensionValue();
+
+ // setting the dimension here starts the transition animation
+ var result = undefined;
+ if (this.isExpanded()) {
+ result = value + 'px';
+ } else {
+ result = '0px';
+ }
+ node.style[dimension] = result;
+ },
+
+ _checkToggleCollapsing: function _checkToggleCollapsing(prevProps, prevState) {
+ var wasExpanded = prevProps.expanded != null ? prevProps.expanded : prevState.expanded;
+ var isExpanded = this.isExpanded();
+ if (wasExpanded !== isExpanded) {
+ if (wasExpanded) {
+ this._handleCollapse();
+ } else {
+ this._handleExpand();
+ }
+ }
+ },
+
+ _handleExpand: function _handleExpand() {
+ var _this = this;
+
+ var node = this.getCollapsibleDOMNode();
+ var dimension = this.dimension();
+
+ var complete = function complete() {
+ _this._removeEndEventListener(node, complete);
+ // remove dimension value - this ensures the collapsible item can grow
+ // in dimension after initial display (such as an image loading)
+ node.style[dimension] = '';
+ _this.setState({
+ collapsing: false
+ });
+ };
+
+ this._addEndEventListener(node, complete);
+
+ this.setState({
+ collapsing: true
+ });
+ },
+
+ _handleCollapse: function _handleCollapse() {
+ var _this2 = this;
+
+ var node = this.getCollapsibleDOMNode();
+
+ var complete = function complete() {
+ _this2._removeEndEventListener(node, complete);
+ _this2.setState({
+ collapsing: false
+ });
+ };
+
+ this._addEndEventListener(node, complete);
+
+ this.setState({
+ collapsing: true
+ });
+ },
+
+ // helps enable test stubs
+ _addEndEventListener: function _addEndEventListener(node, complete) {
+ _utilsTransitionEvents2['default'].addEndEventListener(node, complete);
+ },
+
+ // helps enable test stubs
+ _removeEndEventListener: function _removeEndEventListener(node, complete) {
+ _utilsTransitionEvents2['default'].removeEndEventListener(node, complete);
+ },
+
+ dimension: function dimension() {
+ return typeof this.getCollapsibleDimension === 'function' ? this.getCollapsibleDimension() : 'height';
+ },
+
+ isExpanded: function isExpanded() {
+ return this.props.expanded != null ? this.props.expanded : this.state.expanded;
+ },
+
+ getCollapsibleClassSet: function getCollapsibleClassSet(className) {
+ var classes = {};
+
+ if (typeof className === 'string') {
+ className.split(' ').forEach(function (subClasses) {
+ if (subClasses) {
+ classes[subClasses] = true;
+ }
+ });
+ }
+
+ classes.collapsing = this.state.collapsing;
+ classes.collapse = !this.state.collapsing;
+ classes['in'] = this.isExpanded() && !this.state.collapsing;
+
+ return classes;
+ }
+ };
+
+ exports['default'] = CollapsibleMixin;
+ module.exports = exports['default'];
+
+/***/ },
+/* 88 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _Collapse = __webpack_require__(89);
+
+ var _Collapse2 = _interopRequireDefault(_Collapse);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _utilsValidComponentChildren = __webpack_require__(55);
+
+ var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren);
+
+ var _utilsCreateChainedFunction = __webpack_require__(56);
+
+ var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction);
+
+ var CollapsibleNav = _react2['default'].createClass({
+ displayName: 'CollapsibleNav',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ onSelect: _react2['default'].PropTypes.func,
+ activeHref: _react2['default'].PropTypes.string,
+ activeKey: _react2['default'].PropTypes.any,
+ collapsible: _react2['default'].PropTypes.bool,
+ expanded: _react2['default'].PropTypes.bool,
+ eventKey: _react2['default'].PropTypes.any
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ collapsible: false,
+ expanded: false
+ };
+ },
+
+ render: function render() {
+ /*
+ * this.props.collapsible is set in NavBar when an eventKey is supplied.
+ */
+ var classes = this.props.collapsible ? 'navbar-collapse' : null;
+ var renderChildren = this.props.collapsible ? this.renderCollapsibleNavChildren : this.renderChildren;
+
+ var nav = _react2['default'].createElement(
+ 'div',
+ { eventKey: this.props.eventKey, className: _classnames2['default'](this.props.className, classes) },
+ _utilsValidComponentChildren2['default'].map(this.props.children, renderChildren)
+ );
+
+ if (this.props.collapsible) {
+ return _react2['default'].createElement(
+ _Collapse2['default'],
+ { 'in': this.props.expanded },
+ nav
+ );
+ } else {
+ return nav;
+ }
+ },
+
+ getChildActiveProp: function getChildActiveProp(child) {
+ if (child.props.active) {
+ return true;
+ }
+ if (this.props.activeKey != null) {
+ if (child.props.eventKey === this.props.activeKey) {
+ return true;
+ }
+ }
+ if (this.props.activeHref != null) {
+ if (child.props.href === this.props.activeHref) {
+ return true;
+ }
+ }
+
+ return child.props.active;
+ },
+
+ renderChildren: function renderChildren(child, index) {
+ var key = child.key ? child.key : index;
+ return _react.cloneElement(child, {
+ activeKey: this.props.activeKey,
+ activeHref: this.props.activeHref,
+ ref: 'nocollapse_' + key,
+ key: key,
+ navItem: true
+ });
+ },
+
+ renderCollapsibleNavChildren: function renderCollapsibleNavChildren(child, index) {
+ var key = child.key ? child.key : index;
+ return _react.cloneElement(child, {
+ active: this.getChildActiveProp(child),
+ activeKey: this.props.activeKey,
+ activeHref: this.props.activeHref,
+ onSelect: _utilsCreateChainedFunction2['default'](child.props.onSelect, this.props.onSelect),
+ ref: 'collapsible_' + key,
+ key: key,
+ navItem: true
+ });
+ }
+ });
+
+ exports['default'] = CollapsibleNav;
+ module.exports = exports['default'];
+
+/***/ },
+/* 89 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _reactOverlaysLibTransition = __webpack_require__(90);
+
+ var _reactOverlaysLibTransition2 = _interopRequireDefault(_reactOverlaysLibTransition);
+
+ var _utilsDomUtils = __webpack_require__(31);
+
+ var _utilsDomUtils2 = _interopRequireDefault(_utilsDomUtils);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var _utilsDeprecationWarning = __webpack_require__(16);
+
+ var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning);
+
+ var _utilsCreateChainedFunction = __webpack_require__(56);
+
+ var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction);
+
+ var capitalize = function capitalize(str) {
+ return str[0].toUpperCase() + str.substr(1);
+ };
+
+ // reading a dimension prop will cause the browser to recalculate,
+ // which will let our animations work
+ var triggerBrowserReflow = function triggerBrowserReflow(node) {
+ return node.offsetHeight;
+ };
+
+ var MARGINS = {
+ height: ['marginTop', 'marginBottom'],
+ width: ['marginLeft', 'marginRight']
+ };
+
+ function getDimensionValue(dimension, elem) {
+ var value = elem['offset' + capitalize(dimension)];
+ var margins = MARGINS[dimension];
+
+ return value + parseInt(_utilsDomUtils2['default'].css(elem, margins[0]), 10) + parseInt(_utilsDomUtils2['default'].css(elem, margins[1]), 10);
+ }
+
+ var Collapse = (function (_React$Component) {
+ _inherits(Collapse, _React$Component);
+
+ function Collapse(props, context) {
+ _classCallCheck(this, Collapse);
+
+ _React$Component.call(this, props, context);
+
+ this.onEnterListener = this.handleEnter.bind(this);
+ this.onEnteringListener = this.handleEntering.bind(this);
+ this.onEnteredListener = this.handleEntered.bind(this);
+ this.onExitListener = this.handleExit.bind(this);
+ this.onExitingListener = this.handleExiting.bind(this);
+ }
+
+ // Explicitly copied from Transition for doc generation.
+ // TODO: Remove duplication once #977 is resolved.
+
+ Collapse.prototype.render = function render() {
+ var enter = _utilsCreateChainedFunction2['default'](this.onEnterListener, this.props.onEnter);
+ var entering = _utilsCreateChainedFunction2['default'](this.onEnteringListener, this.props.onEntering);
+ var entered = _utilsCreateChainedFunction2['default'](this.onEnteredListener, this.props.onEntered);
+ var exit = _utilsCreateChainedFunction2['default'](this.onExitListener, this.props.onExit);
+ var exiting = _utilsCreateChainedFunction2['default'](this.onExitingListener, this.props.onExiting);
+
+ return _react2['default'].createElement(
+ _reactOverlaysLibTransition2['default'],
+ _extends({
+ ref: 'transition'
+ }, this.props, {
+ 'aria-expanded': this.props.role ? this.props['in'] : null,
+ className: this._dimension() === 'width' ? 'width' : '',
+ exitedClassName: 'collapse',
+ exitingClassName: 'collapsing',
+ enteredClassName: 'collapse in',
+ enteringClassName: 'collapsing',
+ onEnter: enter,
+ onEntering: entering,
+ onEntered: entered,
+ onExit: exit,
+ onExiting: exiting,
+ onExited: this.props.onExited
+ }),
+ this.props.children
+ );
+ };
+
+ /* -- Expanding -- */
+
+ Collapse.prototype.handleEnter = function handleEnter(elem) {
+ var dimension = this._dimension();
+ elem.style[dimension] = '0';
+ };
+
+ Collapse.prototype.handleEntering = function handleEntering(elem) {
+ var dimension = this._dimension();
+
+ elem.style[dimension] = this._getScrollDimensionValue(elem, dimension);
+ };
+
+ Collapse.prototype.handleEntered = function handleEntered(elem) {
+ var dimension = this._dimension();
+ elem.style[dimension] = null;
+ };
+
+ /* -- Collapsing -- */
+
+ Collapse.prototype.handleExit = function handleExit(elem) {
+ var dimension = this._dimension();
+
+ elem.style[dimension] = this.props.getDimensionValue(dimension, elem) + 'px';
+ };
+
+ Collapse.prototype.handleExiting = function handleExiting(elem) {
+ var dimension = this._dimension();
+
+ triggerBrowserReflow(elem);
+ elem.style[dimension] = '0';
+ };
+
+ Collapse.prototype._dimension = function _dimension() {
+ return typeof this.props.dimension === 'function' ? this.props.dimension() : this.props.dimension;
+ };
+
+ //for testing
+
+ Collapse.prototype._getTransitionInstance = function _getTransitionInstance() {
+ return this.refs.transition;
+ };
+
+ Collapse.prototype._getScrollDimensionValue = function _getScrollDimensionValue(elem, dimension) {
+ return elem['scroll' + capitalize(dimension)] + 'px';
+ };
+
+ return Collapse;
+ })(_react2['default'].Component);
+
+ Collapse.propTypes = {
+ /**
+ * Show the component; triggers the expand or collapse animation
+ */
+ 'in': _react2['default'].PropTypes.bool,
+
+ /**
+ * Unmount the component (remove it from the DOM) when it is collapsed
+ */
+ unmountOnExit: _react2['default'].PropTypes.bool,
+
+ /**
+ * Run the expand animation when the component mounts, if it is initially
+ * shown
+ */
+ transitionAppear: _react2['default'].PropTypes.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: _react2['default'].PropTypes.number,
+
+ /**
+ * duration
+ * @private
+ */
+ duration: _utilsCustomPropTypes2['default'].all([_react2['default'].PropTypes.number, function (props) {
+ if (props.duration != null) {
+ _utilsDeprecationWarning2['default']('Collapse `duration`', 'the `timeout` prop');
+ }
+ return null;
+ }]),
+
+ /**
+ * Callback fired before the component expands
+ */
+ onEnter: _react2['default'].PropTypes.func,
+ /**
+ * Callback fired after the component starts to expand
+ */
+ onEntering: _react2['default'].PropTypes.func,
+ /**
+ * Callback fired after the component has expanded
+ */
+ onEntered: _react2['default'].PropTypes.func,
+ /**
+ * Callback fired before the component collapses
+ */
+ onExit: _react2['default'].PropTypes.func,
+ /**
+ * Callback fired after the component starts to collapse
+ */
+ onExiting: _react2['default'].PropTypes.func,
+ /**
+ * Callback fired after the component has collapsed
+ */
+ onExited: _react2['default'].PropTypes.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: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.oneOf(['height', 'width']), _react2['default'].PropTypes.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: _react2['default'].PropTypes.func,
+
+ /**
+ * ARIA role of collapsible element
+ */
+ role: _react2['default'].PropTypes.string
+ };
+
+ Collapse.defaultProps = {
+ 'in': false,
+ timeout: 300,
+ unmountOnExit: false,
+ transitionAppear: false,
+
+ dimension: 'height',
+ getDimensionValue: getDimensionValue
+ };
+
+ exports['default'] = Collapse;
+ module.exports = exports['default'];
+
+/***/ },
+/* 90 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = 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; };
+
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+ function _objectWithoutProperties(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; }
+
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+ 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) subClass.__proto__ = superClass; }
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _domHelpersTransitionProperties = __webpack_require__(91);
+
+ var _domHelpersTransitionProperties2 = _interopRequireDefault(_domHelpersTransitionProperties);
+
+ var _domHelpersEventsOn = __webpack_require__(92);
+
+ var _domHelpersEventsOn2 = _interopRequireDefault(_domHelpersEventsOn);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var transitionEndEvent = _domHelpersTransitionProperties2['default'].end;
+
+ var UNMOUNTED = 0;
+ exports.UNMOUNTED = UNMOUNTED;
+ var EXITED = 1;
+ exports.EXITED = EXITED;
+ var ENTERING = 2;
+ exports.ENTERING = ENTERING;
+ var ENTERED = 3;
+ exports.ENTERED = ENTERED;
+ var EXITING = 4;
+
+ exports.EXITING = EXITING;
+ /**
+ * The Transition component lets you define and run css transitions with a simple declarative api.
+ * It works similar to React's own [CSSTransitionGroup](http://facebook.github.io/react/docs/animation.html#high-level-api-reactcsstransitiongroup)
+ * but is specifically optimized for transitioning a single child "in" or "out".
+ *
+ * You don't even need to use class based css transitions if you don't want to (but it is easiest).
+ * The extensive set of lifecyle callbacks means you have control over
+ * the transitioning now at each step of the way.
+ */
+
+ var Transition = (function (_React$Component) {
+ function Transition(props, context) {
+ _classCallCheck(this, Transition);
+
+ _React$Component.call(this, props, context);
+
+ var initialStatus = undefined;
+ if (props['in']) {
+ // Start enter transition in componentDidMount.
+ initialStatus = props.transitionAppear ? EXITED : ENTERED;
+ } else {
+ initialStatus = props.unmountOnExit ? UNMOUNTED : EXITED;
+ }
+ this.state = { status: initialStatus };
+
+ this.nextCallback = null;
+ }
+
+ _inherits(Transition, _React$Component);
+
+ Transition.prototype.componentDidMount = function componentDidMount() {
+ if (this.props.transitionAppear && this.props['in']) {
+ this.performEnter(this.props);
+ }
+ };
+
+ Transition.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
+ var status = this.state.status;
+ if (nextProps['in']) {
+ if (status === EXITING) {
+ this.performEnter(nextProps);
+ } else if (this.props.unmountOnExit) {
+ if (status === UNMOUNTED) {
+ // Start enter transition in componentDidUpdate.
+ this.setState({ status: EXITED });
+ }
+ } else if (status === EXITED) {
+ this.performEnter(nextProps);
+ }
+
+ // Otherwise we're already entering or entered.
+ } else {
+ if (status === ENTERING || status === ENTERED) {
+ this.performExit(nextProps);
+ }
+
+ // Otherwise we're already exited or exiting.
+ }
+ };
+
+ Transition.prototype.componentDidUpdate = function componentDidUpdate() {
+ if (this.props.unmountOnExit && this.state.status === EXITED) {
+ // EXITED is always a transitional state to either ENTERING or UNMOUNTED
+ // when using unmountOnExit.
+ if (this.props['in']) {
+ this.performEnter(this.props);
+ } else {
+ this.setState({ status: UNMOUNTED });
+ }
+ }
+ };
+
+ Transition.prototype.componentWillUnmount = function componentWillUnmount() {
+ this.cancelNextCallback();
+ };
+
+ Transition.prototype.performEnter = function performEnter(props) {
+ var _this = this;
+
+ this.cancelNextCallback();
+ var node = _react2['default'].findDOMNode(this);
+
+ // Not this.props, because we might be about to receive new props.
+ props.onEnter(node);
+
+ this.safeSetState({ status: ENTERING }, function () {
+ _this.props.onEntering(node);
+
+ _this.onTransitionEnd(node, function () {
+ _this.safeSetState({ status: ENTERED }, function () {
+ _this.props.onEntered(node);
+ });
+ });
+ });
+ };
+
+ Transition.prototype.performExit = function performExit(props) {
+ var _this2 = this;
+
+ this.cancelNextCallback();
+ var node = _react2['default'].findDOMNode(this);
+
+ // Not this.props, because we might be about to receive new props.
+ props.onExit(node);
+
+ this.safeSetState({ status: EXITING }, function () {
+ _this2.props.onExiting(node);
+
+ _this2.onTransitionEnd(node, function () {
+ _this2.safeSetState({ status: EXITED }, function () {
+ _this2.props.onExited(node);
+ });
+ });
+ });
+ };
+
+ Transition.prototype.cancelNextCallback = function cancelNextCallback() {
+ if (this.nextCallback !== null) {
+ this.nextCallback.cancel();
+ this.nextCallback = null;
+ }
+ };
+
+ Transition.prototype.safeSetState = function safeSetState(nextState, callback) {
+ // This shouldn't be necessary, but there are weird race conditions with
+ // setState callbacks and unmounting in testing, so always make sure that
+ // we can cancel any pending setState callbacks after we unmount.
+ this.setState(nextState, this.setNextCallback(callback));
+ };
+
+ Transition.prototype.setNextCallback = function setNextCallback(callback) {
+ var _this3 = this;
+
+ var active = true;
+
+ this.nextCallback = function (event) {
+ if (active) {
+ active = false;
+ _this3.nextCallback = null;
+
+ callback(event);
+ }
+ };
+
+ this.nextCallback.cancel = function () {
+ active = false;
+ };
+
+ return this.nextCallback;
+ };
+
+ Transition.prototype.onTransitionEnd = function onTransitionEnd(node, handler) {
+ this.setNextCallback(handler);
+
+ if (node) {
+ _domHelpersEventsOn2['default'](node, transitionEndEvent, this.nextCallback);
+ setTimeout(this.nextCallback, this.props.timeout);
+ } else {
+ setTimeout(this.nextCallback, 0);
+ }
+ };
+
+ Transition.prototype.render = function render() {
+ var status = this.state.status;
+ if (status === UNMOUNTED) {
+ return null;
+ }
+
+ var _props = this.props;
+ var children = _props.children;
+ var className = _props.className;
+
+ var childProps = _objectWithoutProperties(_props, ['children', 'className']);
+
+ Object.keys(Transition.propTypes).forEach(function (key) {
+ return delete childProps[key];
+ });
+
+ var transitionClassName = undefined;
+ if (status === EXITED) {
+ transitionClassName = this.props.exitedClassName;
+ } else if (status === ENTERING) {
+ transitionClassName = this.props.enteringClassName;
+ } else if (status === ENTERED) {
+ transitionClassName = this.props.enteredClassName;
+ } else if (status === EXITING) {
+ transitionClassName = this.props.exitingClassName;
+ }
+
+ var child = _react2['default'].Children.only(children);
+ return _react2['default'].cloneElement(child, _extends({}, childProps, {
+ className: _classnames2['default'](child.props.className, className, transitionClassName)
+ }));
+ };
+
+ return Transition;
+ })(_react2['default'].Component);
+
+ Transition.propTypes = {
+ /**
+ * Show the component; triggers the enter or exit animation
+ */
+ 'in': _react2['default'].PropTypes.bool,
+
+ /**
+ * Unmount the component (remove it from the DOM) when it is not shown
+ */
+ unmountOnExit: _react2['default'].PropTypes.bool,
+
+ /**
+ * Run the enter animation when the component mounts, if it is initially
+ * shown
+ */
+ transitionAppear: _react2['default'].PropTypes.bool,
+
+ /**
+ * A Timeout for the animation, in milliseconds, to ensure that a node doesn't
+ * transition indefinately if the browser transitionEnd events are
+ * canceled or interrupted.
+ *
+ * By default this is set to a high number (5 seconds) as a failsafe. You should consider
+ * setting this to the duration of your animation (or a bit above it).
+ */
+ timeout: _react2['default'].PropTypes.number,
+
+ /**
+ * CSS class or classes applied when the component is exited
+ */
+ exitedClassName: _react2['default'].PropTypes.string,
+ /**
+ * CSS class or classes applied while the component is exiting
+ */
+ exitingClassName: _react2['default'].PropTypes.string,
+ /**
+ * CSS class or classes applied when the component is entered
+ */
+ enteredClassName: _react2['default'].PropTypes.string,
+ /**
+ * CSS class or classes applied while the component is entering
+ */
+ enteringClassName: _react2['default'].PropTypes.string,
+
+ /**
+ * Callback fired before the "entering" classes are applied
+ */
+ onEnter: _react2['default'].PropTypes.func,
+ /**
+ * Callback fired after the "entering" classes are applied
+ */
+ onEntering: _react2['default'].PropTypes.func,
+ /**
+ * Callback fired after the "enter" classes are applied
+ */
+ onEntered: _react2['default'].PropTypes.func,
+ /**
+ * Callback fired before the "exiting" classes are applied
+ */
+ onExit: _react2['default'].PropTypes.func,
+ /**
+ * Callback fired after the "exiting" classes are applied
+ */
+ onExiting: _react2['default'].PropTypes.func,
+ /**
+ * Callback fired after the "exited" classes are applied
+ */
+ onExited: _react2['default'].PropTypes.func
+ };
+
+ // Name the function so it is clearer in the documentation
+ function noop() {}
+
+ Transition.displayName = 'Transition';
+
+ Transition.defaultProps = {
+ 'in': false,
+ unmountOnExit: false,
+ transitionAppear: false,
+
+ timeout: 5000,
+
+ onEnter: noop,
+ onEntering: noop,
+ onEntered: noop,
+
+ onExit: noop,
+ onExiting: noop,
+ onExited: noop
+ };
+
+ exports['default'] = Transition;
+
+/***/ },
+/* 91 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var canUseDOM = __webpack_require__(33);
+
+ var has = Object.prototype.hasOwnProperty,
+ transform = 'transform',
+ transition = {},
+ transitionTiming,
+ transitionDuration,
+ transitionProperty,
+ transitionDelay;
+
+ if (canUseDOM) {
+ transition = getTransitionProperties();
+
+ transform = transition.prefix + transform;
+
+ transitionProperty = transition.prefix + 'transition-property';
+ transitionDuration = transition.prefix + 'transition-duration';
+ transitionDelay = transition.prefix + 'transition-delay';
+ transitionTiming = transition.prefix + 'transition-timing-function';
+ }
+
+ module.exports = {
+ transform: transform,
+ end: transition.end,
+ property: transitionProperty,
+ timing: transitionTiming,
+ delay: transitionDelay,
+ duration: transitionDuration
+ };
+
+ function getTransitionProperties() {
+ var endEvent,
+ prefix = '',
+ transitions = {
+ O: 'otransitionend',
+ Moz: 'transitionend',
+ Webkit: 'webkitTransitionEnd',
+ ms: 'MSTransitionEnd'
+ };
+
+ var element = document.createElement('div');
+
+ for (var vendor in transitions) if (has.call(transitions, vendor)) {
+ if (element.style[vendor + 'TransitionProperty'] !== undefined) {
+ prefix = '-' + vendor.toLowerCase() + '-';
+ endEvent = transitions[vendor];
+ break;
+ }
+ }
+
+ if (!endEvent && element.style.transitionProperty !== undefined) endEvent = 'transitionend';
+
+ return { end: endEvent, prefix: prefix };
+ }
+
+/***/ },
+/* 92 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var canUseDOM = __webpack_require__(33);
+ var on = function on() {};
+
+ if (canUseDOM) {
+ 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, handler);
+ };
+ })();
+ }
+
+ module.exports = on;
+
+/***/ },
+/* 93 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _keycode = __webpack_require__(94);
+
+ var _keycode2 = _interopRequireDefault(_keycode);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _uncontrollable = __webpack_require__(95);
+
+ var _uncontrollable2 = _interopRequireDefault(_uncontrollable);
+
+ var _ButtonGroup = __webpack_require__(81);
+
+ var _ButtonGroup2 = _interopRequireDefault(_ButtonGroup);
+
+ var _DropdownToggle = __webpack_require__(99);
+
+ var _DropdownToggle2 = _interopRequireDefault(_DropdownToggle);
+
+ var _DropdownMenu = __webpack_require__(101);
+
+ var _DropdownMenu2 = _interopRequireDefault(_DropdownMenu);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var _utilsCreateChainedFunction = __webpack_require__(56);
+
+ var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction);
+
+ var _lodashCollectionFind = __webpack_require__(107);
+
+ var _lodashCollectionFind2 = _interopRequireDefault(_lodashCollectionFind);
+
+ var _lodashObjectOmit = __webpack_require__(156);
+
+ var _lodashObjectOmit2 = _interopRequireDefault(_lodashObjectOmit);
+
+ var TOGGLE_REF = 'toggle-btn';
+
+ var TOGGLE_ROLE = _DropdownToggle2['default'].defaultProps.bsRole;
+ exports.TOGGLE_ROLE = TOGGLE_ROLE;
+ var MENU_ROLE = _DropdownMenu2['default'].defaultProps.bsRole;
+
+ exports.MENU_ROLE = MENU_ROLE;
+
+ var Dropdown = (function (_React$Component) {
+ _inherits(Dropdown, _React$Component);
+
+ function Dropdown(props) {
+ _classCallCheck(this, Dropdown);
+
+ _React$Component.call(this, props);
+
+ this.Toggle = _DropdownToggle2['default'];
+
+ this.toggleOpen = this.toggleOpen.bind(this);
+ this.handleClick = this.handleClick.bind(this);
+ this.handleKeyDown = this.handleKeyDown.bind(this);
+ this.handleClose = this.handleClose.bind(this);
+ this.extractChildren = this.extractChildren.bind(this);
+
+ this.refineMenu = this.refineMenu.bind(this);
+ this.refineToggle = this.refineToggle.bind(this);
+
+ this.childExtractors = [{
+ key: 'toggle',
+ matches: function matches(child) {
+ return child.props.bsRole === TOGGLE_ROLE;
+ },
+ refine: this.refineToggle
+ }, {
+ key: 'menu',
+ exclusive: true,
+ matches: function matches(child) {
+ return child.props.bsRole === MENU_ROLE;
+ },
+ refine: this.refineMenu
+ }];
+
+ this.state = {};
+ }
+
+ Dropdown.prototype.componentDidMount = function componentDidMount() {
+ var menu = this.refs.menu;
+ if (this.props.open && menu.focusNext) {
+ menu.focusNext();
+ }
+ };
+
+ Dropdown.prototype.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {
+ var menu = this.refs.menu;
+ if (this.props.open && !prevProps.open && menu.focusNext) {
+ menu.focusNext();
+ }
+ };
+
+ Dropdown.prototype.render = function render() {
+ var children = this.extractChildren();
+ var Component = this.props.componentClass;
+
+ var props = _lodashObjectOmit2['default'](this.props, ['id']);
+
+ var rootClasses = {
+ open: this.props.open,
+ dropdown: !this.props.dropup,
+ dropup: this.props.dropup
+ };
+
+ return _react2['default'].createElement(
+ Component,
+ _extends({}, props, {
+ className: _classnames2['default'](this.props.className, rootClasses)
+ }),
+ children
+ );
+ };
+
+ Dropdown.prototype.toggleOpen = function toggleOpen() {
+ var open = !this.props.open;
+
+ if (this.props.onToggle) {
+ this.props.onToggle(open);
+ }
+ };
+
+ Dropdown.prototype.handleClick = function handleClick(event) {
+ if (this.props.disabled) {
+ return;
+ }
+
+ this.toggleOpen();
+ };
+
+ Dropdown.prototype.handleKeyDown = function handleKeyDown(event) {
+ var _this = this;
+
+ var focusNext = function focusNext() {
+ if (_this.refs.menu.focusNext) {
+ _this.refs.menu.focusNext();
+ }
+ };
+
+ switch (event.keyCode) {
+ case _keycode2['default'].codes.down:
+ if (!this.props.open) {
+ this.toggleOpen();
+ } else {
+ focusNext();
+ }
+ event.preventDefault();
+ break;
+ case _keycode2['default'].codes.esc:
+ case _keycode2['default'].codes.tab:
+ if (this.props.open) {
+ this.handleClose(event);
+ }
+ break;
+ default:
+ }
+ };
+
+ Dropdown.prototype.handleClose = function handleClose(event) {
+ if (!this.props.open) {
+ return;
+ }
+
+ // we need to let the current event finish before closing the menu.
+ // otherwise the menu may close, shifting focus to document.body, before focus has moved
+ // to the next focusable input
+ if (event && event.keyCode === _keycode2['default'].codes.tab) {
+ setTimeout(this.toggleOpen);
+ } else {
+ this.toggleOpen();
+ }
+
+ if (event && event.type === 'keydown' && event.keyCode === _keycode2['default'].codes.esc) {
+ var toggle = _react2['default'].findDOMNode(this.refs[TOGGLE_REF]);
+ event.preventDefault();
+ event.stopPropagation();
+ toggle.focus();
+ }
+ };
+
+ Dropdown.prototype.extractChildren = function extractChildren() {
+ var _this2 = this;
+
+ var open = !!this.props.open;
+ var seen = {};
+
+ return _react2['default'].Children.map(this.props.children, function (child) {
+ var extractor = _lodashCollectionFind2['default'](_this2.childExtractors, function (x) {
+ return x.matches(child);
+ });
+
+ if (extractor) {
+ if (seen[extractor.key]) {
+ return false;
+ }
+
+ seen[extractor.key] = extractor.exclusive;
+ child = extractor.refine(child, open);
+ }
+
+ return child;
+ });
+ };
+
+ Dropdown.prototype.refineMenu = function refineMenu(menu, open) {
+ var menuProps = {
+ ref: 'menu',
+ open: open,
+ labelledBy: this.props.id,
+ pullRight: this.props.pullRight
+ };
+
+ menuProps.onClose = _utilsCreateChainedFunction2['default'](menu.props.onClose, this.props.onClose, this.handleClose);
+
+ menuProps.onSelect = _utilsCreateChainedFunction2['default'](menu.props.onSelect, this.props.onSelect, this.handleClose);
+
+ return _react.cloneElement(menu, menuProps, menu.props.children);
+ };
+
+ Dropdown.prototype.refineToggle = function refineToggle(toggle, open) {
+ var toggleProps = {
+ open: open,
+ id: this.props.id,
+ ref: TOGGLE_REF
+ };
+
+ toggleProps.onClick = _utilsCreateChainedFunction2['default'](toggle.props.onClick, this.handleClick);
+
+ toggleProps.onKeyDown = _utilsCreateChainedFunction2['default'](toggle.props.onKeyDown, this.handleKeyDown);
+
+ return _react.cloneElement(toggle, toggleProps, toggle.props.children);
+ };
+
+ return Dropdown;
+ })(_react2['default'].Component);
+
+ Dropdown.Toggle = _DropdownToggle2['default'];
+
+ Dropdown.TOGGLE_REF = TOGGLE_REF;
+
+ Dropdown.defaultProps = {
+ componentClass: _ButtonGroup2['default']
+ };
+
+ Dropdown.propTypes = {
+ /**
+ * The menu will open above the dropdown button, instead of below it.
+ */
+ dropup: _react2['default'].PropTypes.bool,
+
+ /**
+ * An html id attribute, necessary for assistive technologies, such as screen readers.
+ * @type {string|number}
+ * @required
+ */
+ id: _utilsCustomPropTypes2['default'].isRequiredForA11y(_react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number])),
+
+ componentClass: _utilsCustomPropTypes2['default'].elementType,
+
+ /**
+ * The children of a Dropdown may be a `` or a ``.
+ * @type {node}
+ */
+ children: _utilsCustomPropTypes2['default'].all([_utilsCustomPropTypes2['default'].requiredRoles(TOGGLE_ROLE, MENU_ROLE), _utilsCustomPropTypes2['default'].exclusiveRoles(MENU_ROLE)]),
+
+ /**
+ * Whether or not component is disabled.
+ */
+ disabled: _react2['default'].PropTypes.bool,
+
+ /**
+ * Align the menu to the right side of the Dropdown toggle
+ */
+ pullRight: _react2['default'].PropTypes.bool,
+
+ /**
+ * Whether or not the Dropdown is visible.
+ *
+ * @controllable onToggle
+ */
+ open: _react2['default'].PropTypes.bool,
+
+ /**
+ * A callback fired when the Dropdown closes.
+ */
+ onClose: _react2['default'].PropTypes.func,
+
+ /**
+ * A callback fired when the Dropdown wishes to change visibility. Called with the requested
+ * `open` value.
+ *
+ * ```js
+ * function(Boolean isOpen){}
+ * ```
+ * @controllable open
+ */
+ onToggle: _react2['default'].PropTypes.func,
+
+ /**
+ * A callback fired when a menu item is selected.
+ *
+ * ```js
+ * function(Object event, Any eventKey)
+ * ```
+ */
+ onSelect: _react2['default'].PropTypes.func
+ };
+
+ Dropdown = _uncontrollable2['default'](Dropdown, { open: 'onToggle' });
+
+ Dropdown.Toggle = _DropdownToggle2['default'];
+ Dropdown.Menu = _DropdownMenu2['default'];
+
+ exports['default'] = Dropdown;
+
+/***/ },
+/* 94 */
+/***/ function(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,
+ 'right click': 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': 33,
+ '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]
+ }
+
+
+/***/ },
+/* 95 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+ var _createUncontrollable = __webpack_require__(96);
+
+ var _createUncontrollable2 = _interopRequireDefault(_createUncontrollable);
+
+ var mixin = {
+ shouldComponentUpdate: function shouldComponentUpdate() {
+ //let the setState trigger the update
+ return !this._notifying;
+ }
+ };
+
+ function set(component, propName, handler, value, args) {
+ if (handler) {
+ component._notifying = true;
+ handler.call.apply(handler, [component, value].concat(args));
+ component._notifying = false;
+ }
+
+ component._values[propName] = value;
+ component.forceUpdate();
+ }
+
+ exports['default'] = _createUncontrollable2['default']([mixin], set);
+ module.exports = exports['default'];
+
+/***/ },
+/* 96 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = 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'] = createUncontrollable;
+
+ 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 }; }
+
+ function _objectWithoutProperties(obj, keys) { var target = {}; for (var i in obj) { if (keys.indexOf(i) >= 0) continue; if (!Object.prototype.hasOwnProperty.call(obj, i)) continue; target[i] = obj[i]; } return target; }
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _utils = __webpack_require__(97);
+
+ var utils = _interopRequireWildcard(_utils);
+
+ function createUncontrollable(mixins, set) {
+
+ return uncontrollable;
+
+ function uncontrollable(Component, controlledValues) {
+ var forwardMethods = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2];
+
+ var displayName = Component.displayName || Component.name || 'Component',
+ basePropTypes = utils.getType(Component).propTypes,
+ propTypes;
+
+ propTypes = utils.uncontrolledPropTypes(controlledValues, basePropTypes, displayName);
+
+ var methods = utils.transform(forwardMethods, function (proto, method) {
+ proto[method] = function () {
+ var controlled = this.refs.controlled;
+ return controlled[method].apply(controlled, arguments);
+ };
+ }, {});
+
+ var component = _react2['default'].createClass(_extends({
+
+ displayName: 'Uncontrolled(' + displayName + ')',
+
+ mixins: mixins,
+
+ propTypes: propTypes
+
+ }, methods, {
+
+ componentWillMount: function componentWillMount() {
+ var props = this.props,
+ keys = Object.keys(controlledValues);
+
+ this._values = utils.transform(keys, function (values, key) {
+ values[key] = props[utils.defaultKey(key)];
+ }, {});
+ },
+
+ render: function render() {
+ var _this = this;
+
+ var newProps = {};
+ var _props = this.props;
+ var valueLink = _props.valueLink;
+ var checkedLink = _props.checkedLink;
+
+ var props = _objectWithoutProperties(_props, ['valueLink', 'checkedLink']);
+
+ utils.each(controlledValues, function (handle, propName) {
+ var linkPropName = utils.getLinkName(propName),
+ prop = _this.props[propName];
+
+ if (linkPropName && !isProp(_this.props, propName) && isProp(_this.props, linkPropName)) {
+ prop = _this.props[linkPropName].value;
+ }
+
+ newProps[propName] = prop !== undefined ? prop : _this._values[propName];
+
+ newProps[handle] = setAndNotify.bind(_this, propName);
+ });
+
+ newProps = _extends({ ref: 'controlled' }, props, newProps);
+
+ return _react2['default'].createElement(Component, newProps);
+ }
+
+ }));
+
+ component.ControlledComponent = Component;
+
+ return component;
+
+ function setAndNotify(propName, value) {
+ var linkName = utils.getLinkName(propName),
+ handler = this.props[controlledValues[propName]];
+
+ if (linkName && isProp(this.props, linkName) && !handler) {
+ handler = this.props[linkName].requestChange;
+ }
+
+ for (var _len = arguments.length, args = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {
+ args[_key - 2] = arguments[_key];
+ }
+
+ set(this, propName, handler, value, args);
+ }
+
+ function isProp(props, prop) {
+ return props[prop] !== undefined;
+ }
+ }
+ }
+
+ module.exports = exports['default'];
+
+/***/ },
+/* 97 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+ exports.customPropType = customPropType;
+ exports.uncontrolledPropTypes = uncontrolledPropTypes;
+ exports.getType = getType;
+ exports.getLinkName = getLinkName;
+ exports.defaultKey = defaultKey;
+ exports.chain = chain;
+ exports.transform = transform;
+ exports.each = each;
+ exports.has = has;
+
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _invariant = __webpack_require__(98);
+
+ var _invariant2 = _interopRequireDefault(_invariant);
+
+ function customPropType(handler, propType, name) {
+
+ return function (props, propName, componentName) {
+
+ if (props[propName] !== undefined) {
+ if (!props[handler]) {
+ return new Error('You have provided a `' + propName + '` prop to ' + '`' + name + '` without an `' + handler + '` handler. This will render a read-only field. ' + 'If the field should be mutable use `' + defaultKey(propName) + '`. Otherwise, set `' + handler + '`');
+ }
+
+ return propType && propType(props, propName, name);
+ }
+ };
+ }
+
+ function uncontrolledPropTypes(controlledValues, basePropTypes, displayName) {
+ var propTypes = {};
+
+ if (("development") !== 'production' && basePropTypes) {
+ transform(controlledValues, function (obj, handler, prop) {
+ var type = basePropTypes[prop];
+
+ _invariant2['default'](typeof handler === 'string' && handler.trim().length, 'Uncontrollable - [%s]: the prop `%s` needs a valid handler key name in order to make it uncontrollable', displayName, prop);
+
+ obj[prop] = customPropType(handler, type, displayName);
+
+ if (type !== undefined) obj[defaultKey(prop)] = type;
+ }, propTypes);
+ }
+
+ return propTypes;
+ }
+
+ var version = _react2['default'].version.split('.').map(parseFloat);
+
+ exports.version = version;
+
+ function getType(component) {
+ if (version[0] === 0 && version[1] >= 13) return component;
+
+ return component.type;
+ }
+
+ function getLinkName(name) {
+ return name === 'value' ? 'valueLink' : name === 'checked' ? 'checkedLink' : null;
+ }
+
+ function defaultKey(key) {
+ return 'default' + key.charAt(0).toUpperCase() + key.substr(1);
+ }
+
+ function chain(thisArg, a, b) {
+ return function chainedFunction() {
+ for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
+ args[_key] = arguments[_key];
+ }
+
+ a && a.call.apply(a, [thisArg].concat(args));
+ b && b.call.apply(b, [thisArg].concat(args));
+ };
+ }
+
+ function transform(obj, cb, seed) {
+ each(obj, cb.bind(null, seed = seed || (Array.isArray(obj) ? [] : {})));
+ return seed;
+ }
+
+ function each(obj, cb, thisArg) {
+ if (Array.isArray(obj)) return obj.forEach(cb, thisArg);
+
+ for (var key in obj) if (has(obj, key)) cb.call(thisArg, obj[key], key, obj);
+ }
+
+ function has(o, k) {
+ return o ? Object.prototype.hasOwnProperty.call(o, k) : false;
+ }
+
+/***/ },
+/* 98 */
+/***/ function(module, exports, __webpack_require__) {
+
+ /**
+ * Copyright 2013-2015, Facebook, Inc.
+ * All rights reserved.
+ *
+ * This source code is licensed under the BSD-style license found in the
+ * LICENSE file in the root directory of this source tree. An additional grant
+ * of patent rights can be found in the PATENTS file in the same directory.
+ *
+ * @providesModule invariant
+ */
+
+ '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 (true) {
+ 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(
+ 'Invariant Violation: ' +
+ format.replace(/%s/g, function() { return args[argIndex++]; })
+ );
+ }
+
+ error.framesToPop = 1; // we don't care about invariant's own frame
+ throw error;
+ }
+ };
+
+ module.exports = invariant;
+
+
+/***/ },
+/* 99 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _Button = __webpack_require__(76);
+
+ var _Button2 = _interopRequireDefault(_Button);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var _SafeAnchor = __webpack_require__(100);
+
+ var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
+
+ var CARET = _react2['default'].createElement(
+ 'span',
+ null,
+ ' ',
+ _react2['default'].createElement('span', { className: 'caret' })
+ );
+
+ var DropdownToggle = (function (_React$Component) {
+ _inherits(DropdownToggle, _React$Component);
+
+ function DropdownToggle() {
+ _classCallCheck(this, DropdownToggle);
+
+ _React$Component.apply(this, arguments);
+ }
+
+ DropdownToggle.prototype.render = function render() {
+ var caret = this.props.noCaret ? null : CARET;
+
+ var classes = {
+ 'dropdown-toggle': true
+ };
+
+ var Component = this.props.useAnchor ? _SafeAnchor2['default'] : _Button2['default'];
+
+ return _react2['default'].createElement(
+ Component,
+ _extends({}, this.props, {
+ className: _classnames2['default'](classes, this.props.className),
+ type: 'button',
+ 'aria-haspopup': true,
+ 'aria-expanded': this.props.open }),
+ this.props.title || this.props.children,
+ caret
+ );
+ };
+
+ return DropdownToggle;
+ })(_react2['default'].Component);
+
+ exports['default'] = DropdownToggle;
+
+ var titleAndChildrenValidation = _utilsCustomPropTypes2['default'].singlePropFrom(['title', 'children']);
+
+ DropdownToggle.defaultProps = {
+ open: false,
+ useAnchor: false,
+ bsRole: 'toggle'
+ };
+
+ DropdownToggle.propTypes = {
+ bsRole: _react2['default'].PropTypes.string,
+ children: titleAndChildrenValidation,
+ noCaret: _react2['default'].PropTypes.bool,
+ open: _react2['default'].PropTypes.bool,
+ title: titleAndChildrenValidation,
+ useAnchor: _react2['default'].PropTypes.bool
+ };
+
+ DropdownToggle.isToggle = true;
+ DropdownToggle.titleProp = 'title';
+ DropdownToggle.onClickProp = 'onClick';
+ module.exports = exports['default'];
+
+/***/ },
+/* 100 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _utilsCreateChainedFunction = __webpack_require__(56);
+
+ var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction);
+
+ /**
+ * Note: This is intended as a stop-gap for accessibility concerns that the
+ * Bootstrap CSS does not address as they have styled anchors and not buttons
+ * in many cases.
+ */
+
+ var SafeAnchor = (function (_React$Component) {
+ _inherits(SafeAnchor, _React$Component);
+
+ function SafeAnchor(props) {
+ _classCallCheck(this, SafeAnchor);
+
+ _React$Component.call(this, props);
+
+ this.handleClick = this.handleClick.bind(this);
+ }
+
+ SafeAnchor.prototype.handleClick = function handleClick(event) {
+ if (this.props.href === undefined) {
+ event.preventDefault();
+ }
+ };
+
+ SafeAnchor.prototype.render = function render() {
+ return _react2['default'].createElement('a', _extends({ role: this.props.href ? undefined : 'button'
+ }, this.props, {
+ onClick: _utilsCreateChainedFunction2['default'](this.props.onClick, this.handleClick),
+ href: this.props.href || '' }));
+ };
+
+ return SafeAnchor;
+ })(_react2['default'].Component);
+
+ exports['default'] = SafeAnchor;
+
+ SafeAnchor.propTypes = {
+ href: _react2['default'].PropTypes.string,
+ onClick: _react2['default'].PropTypes.func
+ };
+ module.exports = exports['default'];
+
+/***/ },
+/* 101 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _keycode = __webpack_require__(94);
+
+ var _keycode2 = _interopRequireDefault(_keycode);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _reactOverlaysLibRootCloseWrapper = __webpack_require__(102);
+
+ var _reactOverlaysLibRootCloseWrapper2 = _interopRequireDefault(_reactOverlaysLibRootCloseWrapper);
+
+ var _utilsValidComponentChildren = __webpack_require__(55);
+
+ var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren);
+
+ var _utilsCreateChainedFunction = __webpack_require__(56);
+
+ var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction);
+
+ var DropdownMenu = (function (_React$Component) {
+ _inherits(DropdownMenu, _React$Component);
+
+ function DropdownMenu(props) {
+ _classCallCheck(this, DropdownMenu);
+
+ _React$Component.call(this, props);
+
+ this.focusNext = this.focusNext.bind(this);
+ this.focusPrevious = this.focusPrevious.bind(this);
+ this.getFocusableMenuItems = this.getFocusableMenuItems.bind(this);
+ this.getItemsAndActiveIndex = this.getItemsAndActiveIndex.bind(this);
+
+ this.handleKeyDown = this.handleKeyDown.bind(this);
+ }
+
+ 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);
+ break;
+ default:
+ }
+ };
+
+ DropdownMenu.prototype.focusNext = function focusNext() {
+ var _getItemsAndActiveIndex = this.getItemsAndActiveIndex();
+
+ var items = _getItemsAndActiveIndex.items;
+ var activeItemIndex = _getItemsAndActiveIndex.activeItemIndex;
+
+ if (activeItemIndex === items.length - 1) {
+ items[0].focus();
+ return;
+ }
+
+ items[activeItemIndex + 1].focus();
+ };
+
+ DropdownMenu.prototype.focusPrevious = function focusPrevious() {
+ var _getItemsAndActiveIndex2 = this.getItemsAndActiveIndex();
+
+ var items = _getItemsAndActiveIndex2.items;
+ var activeItemIndex = _getItemsAndActiveIndex2.activeItemIndex;
+
+ if (activeItemIndex === 0) {
+ items[items.length - 1].focus();
+ return;
+ }
+
+ items[activeItemIndex - 1].focus();
+ };
+
+ DropdownMenu.prototype.getItemsAndActiveIndex = function getItemsAndActiveIndex() {
+ var items = this.getFocusableMenuItems();
+ var activeElement = document.activeElement;
+ var activeItemIndex = items.indexOf(activeElement);
+
+ return { items: items, activeItemIndex: activeItemIndex };
+ };
+
+ DropdownMenu.prototype.getFocusableMenuItems = function getFocusableMenuItems() {
+ var menuNode = _react2['default'].findDOMNode(this);
+
+ if (menuNode === undefined) {
+ return [];
+ }
+
+ return [].slice.call(menuNode.querySelectorAll('[tabIndex="-1"]'), 0);
+ };
+
+ DropdownMenu.prototype.render = function render() {
+ var _this = this;
+
+ var items = _utilsValidComponentChildren2['default'].map(this.props.children, function (child) {
+ var _ref = child.props || {};
+
+ var children = _ref.children;
+ var onKeyDown = _ref.onKeyDown;
+ var onSelect = _ref.onSelect;
+
+ return _react2['default'].cloneElement(child, {
+ onKeyDown: _utilsCreateChainedFunction2['default'](onKeyDown, _this.handleKeyDown),
+ onSelect: _utilsCreateChainedFunction2['default'](onSelect, _this.props.onSelect)
+ }, children);
+ });
+
+ var classes = {
+ 'dropdown-menu': true,
+ 'dropdown-menu-right': this.props.pullRight
+ };
+
+ var list = _react2['default'].createElement(
+ 'ul',
+ {
+ className: _classnames2['default'](this.props.className, classes),
+ role: 'menu',
+ 'aria-labelledby': this.props.labelledBy
+ },
+ items
+ );
+
+ if (this.props.open) {
+ list = _react2['default'].createElement(
+ _reactOverlaysLibRootCloseWrapper2['default'],
+ { noWrap: true, onRootClose: this.props.onClose },
+ list
+ );
+ }
+
+ return list;
+ };
+
+ return DropdownMenu;
+ })(_react2['default'].Component);
+
+ DropdownMenu.defaultProps = {
+ bsRole: 'menu',
+ pullRight: false
+ };
+
+ DropdownMenu.propTypes = {
+ open: _react2['default'].PropTypes.bool,
+ pullRight: _react2['default'].PropTypes.bool,
+ onClose: _react2['default'].PropTypes.func,
+ labelledBy: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]),
+ onSelect: _react2['default'].PropTypes.func
+ };
+
+ exports['default'] = DropdownMenu;
+ module.exports = exports['default'];
+
+/***/ },
+/* 102 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+
+ 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 _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) subClass.__proto__ = superClass; }
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _utilsAddEventListener = __webpack_require__(103);
+
+ var _utilsAddEventListener2 = _interopRequireDefault(_utilsAddEventListener);
+
+ var _utilsCreateChainedFunction = __webpack_require__(105);
+
+ var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction);
+
+ var _utilsOwnerDocument = __webpack_require__(106);
+
+ var _utilsOwnerDocument2 = _interopRequireDefault(_utilsOwnerDocument);
+
+ // TODO: Consider using an ES6 symbol here, once we use babel-runtime.
+ var CLICK_WAS_INSIDE = '__click_was_inside';
+
+ function suppressRootClose(event) {
+ // Tag the native event to prevent the root close logic on document click.
+ // This seems safer than using event.nativeEvent.stopImmediatePropagation(),
+ // which is only supported in IE >= 9.
+ event.nativeEvent[CLICK_WAS_INSIDE] = true;
+ }
+
+ var RootCloseWrapper = (function (_React$Component) {
+ function RootCloseWrapper(props) {
+ _classCallCheck(this, RootCloseWrapper);
+
+ _React$Component.call(this, props);
+
+ this.handleDocumentClick = this.handleDocumentClick.bind(this);
+ this.handleDocumentKeyUp = this.handleDocumentKeyUp.bind(this);
+ }
+
+ _inherits(RootCloseWrapper, _React$Component);
+
+ RootCloseWrapper.prototype.bindRootCloseHandlers = function bindRootCloseHandlers() {
+ var doc = _utilsOwnerDocument2['default'](this);
+
+ this._onDocumentClickListener = _utilsAddEventListener2['default'](doc, 'click', this.handleDocumentClick);
+
+ this._onDocumentKeyupListener = _utilsAddEventListener2['default'](doc, 'keyup', this.handleDocumentKeyUp);
+ };
+
+ RootCloseWrapper.prototype.handleDocumentClick = function handleDocumentClick(e) {
+ // This is now the native event.
+ if (e[CLICK_WAS_INSIDE]) {
+ return;
+ }
+
+ this.props.onRootClose();
+ };
+
+ RootCloseWrapper.prototype.handleDocumentKeyUp = function handleDocumentKeyUp(e) {
+ if (e.keyCode === 27) {
+ this.props.onRootClose();
+ }
+ };
+
+ RootCloseWrapper.prototype.unbindRootCloseHandlers = function unbindRootCloseHandlers() {
+ if (this._onDocumentClickListener) {
+ this._onDocumentClickListener.remove();
+ }
+
+ if (this._onDocumentKeyupListener) {
+ this._onDocumentKeyupListener.remove();
+ }
+ };
+
+ RootCloseWrapper.prototype.componentDidMount = function componentDidMount() {
+ this.bindRootCloseHandlers();
+ };
+
+ RootCloseWrapper.prototype.render = function render() {
+ var _props = this.props;
+ var noWrap = _props.noWrap;
+ var children = _props.children;
+
+ var child = _react2['default'].Children.only(children);
+
+ if (noWrap) {
+ return _react2['default'].cloneElement(child, {
+ onClick: _utilsCreateChainedFunction2['default'](suppressRootClose, child.props.onClick)
+ });
+ }
+
+ // Wrap the child in a new element, so the child won't have to handle
+ // potentially combining multiple onClick listeners.
+ return _react2['default'].createElement(
+ 'div',
+ { onClick: suppressRootClose },
+ child
+ );
+ };
+
+ RootCloseWrapper.prototype.getWrappedDOMNode = function getWrappedDOMNode() {
+ // We can't use a ref to identify the wrapped child, since we might be
+ // stealing the ref from the owner, but we know exactly the DOM structure
+ // that will be rendered, so we can just do this to get the child's DOM
+ // node for doing size calculations in OverlayMixin.
+ var node = _react2['default'].findDOMNode(this);
+ return this.props.noWrap ? node : node.firstChild;
+ };
+
+ RootCloseWrapper.prototype.componentWillUnmount = function componentWillUnmount() {
+ this.unbindRootCloseHandlers();
+ };
+
+ return RootCloseWrapper;
+ })(_react2['default'].Component);
+
+ exports['default'] = RootCloseWrapper;
+
+ RootCloseWrapper.displayName = 'RootCloseWrapper';
+
+ RootCloseWrapper.propTypes = {
+ onRootClose: _react2['default'].PropTypes.func.isRequired,
+
+ /**
+ * Passes the suppress click handler directly to the child component instead
+ * of placing it on a wrapping div. Only use when you can be sure the child
+ * properly handle the click event.
+ */
+ noWrap: _react2['default'].PropTypes.bool
+ };
+ module.exports = exports['default'];
+
+/***/ },
+/* 103 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+ var _domHelpersEventsOn = __webpack_require__(92);
+
+ var _domHelpersEventsOn2 = _interopRequireDefault(_domHelpersEventsOn);
+
+ var _domHelpersEventsOff = __webpack_require__(104);
+
+ var _domHelpersEventsOff2 = _interopRequireDefault(_domHelpersEventsOff);
+
+ exports['default'] = function (node, event, handler) {
+ _domHelpersEventsOn2['default'](node, event, handler);
+ return {
+ remove: function remove() {
+ _domHelpersEventsOff2['default'](node, event, handler);
+ }
+ };
+ };
+
+ module.exports = exports['default'];
+
+/***/ },
+/* 104 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+ var canUseDOM = __webpack_require__(33);
+ var off = function off() {};
+
+ if (canUseDOM) {
+
+ 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);
+ };
+ })();
+ }
+
+ module.exports = off;
+
+/***/ },
+/* 105 */
+/***/ function(module, exports) {
+
+ /**
+ * 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}
+ */
+ 'use strict';
+
+ exports.__esModule = true;
+ 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'];
+
+/***/ },
+/* 106 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _domHelpersOwnerDocument = __webpack_require__(34);
+
+ var _domHelpersOwnerDocument2 = _interopRequireDefault(_domHelpersOwnerDocument);
+
+ exports['default'] = function (componentOrElement) {
+ return _domHelpersOwnerDocument2['default'](_react2['default'].findDOMNode(componentOrElement));
+ };
+
+ module.exports = exports['default'];
+
+/***/ },
+/* 107 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseEach = __webpack_require__(108),
+ createFind = __webpack_require__(129);
+
+ /**
+ * Iterates over elements of `collection`, returning the first element
+ * `predicate` returns truthy for. The predicate is bound to `thisArg` and
+ * invoked with three arguments: (value, index|key, collection).
+ *
+ * If a property name is provided for `predicate` the created `_.property`
+ * style callback returns the property value of the given element.
+ *
+ * If a value is also provided for `thisArg` the created `_.matchesProperty`
+ * style callback returns `true` for elements that have a matching property
+ * value, else `false`.
+ *
+ * If an object is provided for `predicate` the created `_.matches` style
+ * callback returns `true` for elements that have the properties of the given
+ * object, else `false`.
+ *
+ * @static
+ * @memberOf _
+ * @alias detect
+ * @category Collection
+ * @param {Array|Object|string} collection The collection to search.
+ * @param {Function|Object|string} [predicate=_.identity] The function invoked
+ * per iteration.
+ * @param {*} [thisArg] The `this` binding of `predicate`.
+ * @returns {*} Returns the matched element, else `undefined`.
+ * @example
+ *
+ * var users = [
+ * { 'user': 'barney', 'age': 36, 'active': true },
+ * { 'user': 'fred', 'age': 40, 'active': false },
+ * { 'user': 'pebbles', 'age': 1, 'active': true }
+ * ];
+ *
+ * _.result(_.find(users, function(chr) {
+ * return chr.age < 40;
+ * }), 'user');
+ * // => 'barney'
+ *
+ * // using the `_.matches` callback shorthand
+ * _.result(_.find(users, { 'age': 1, 'active': true }), 'user');
+ * // => 'pebbles'
+ *
+ * // using the `_.matchesProperty` callback shorthand
+ * _.result(_.find(users, 'active', false), 'user');
+ * // => 'fred'
+ *
+ * // using the `_.property` callback shorthand
+ * _.result(_.find(users, 'active'), 'user');
+ * // => 'barney'
+ */
+ var find = createFind(baseEach);
+
+ module.exports = find;
+
+
+/***/ },
+/* 108 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseForOwn = __webpack_require__(109),
+ createBaseEach = __webpack_require__(128);
+
+ /**
+ * The base implementation of `_.forEach` without support for callback
+ * shorthands and `this` binding.
+ *
+ * @private
+ * @param {Array|Object|string} collection The collection to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array|Object|string} Returns `collection`.
+ */
+ var baseEach = createBaseEach(baseForOwn);
+
+ module.exports = baseEach;
+
+
+/***/ },
+/* 109 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseFor = __webpack_require__(110),
+ keys = __webpack_require__(114);
+
+ /**
+ * The base implementation of `_.forOwn` without support for callback
+ * shorthands and `this` binding.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Object} Returns `object`.
+ */
+ function baseForOwn(object, iteratee) {
+ return baseFor(object, iteratee, keys);
+ }
+
+ module.exports = baseForOwn;
+
+
+/***/ },
+/* 110 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var createBaseFor = __webpack_require__(111);
+
+ /**
+ * The base implementation of `baseForIn` and `baseForOwn` which iterates
+ * over `object` properties returned by `keysFunc` invoking `iteratee` for
+ * each property. Iteratee functions may exit iteration early by explicitly
+ * returning `false`.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @param {Function} keysFunc The function to get the keys of `object`.
+ * @returns {Object} Returns `object`.
+ */
+ var baseFor = createBaseFor();
+
+ module.exports = baseFor;
+
+
+/***/ },
+/* 111 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var toObject = __webpack_require__(112);
+
+ /**
+ * Creates a base function for `_.forIn` or `_.forInRight`.
+ *
+ * @private
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {Function} Returns the new base function.
+ */
+ function createBaseFor(fromRight) {
+ return function(object, iteratee, keysFunc) {
+ var iterable = toObject(object),
+ props = keysFunc(object),
+ length = props.length,
+ index = fromRight ? length : -1;
+
+ while ((fromRight ? index-- : ++index < length)) {
+ var key = props[index];
+ if (iteratee(iterable[key], key, iterable) === false) {
+ break;
+ }
+ }
+ return object;
+ };
+ }
+
+ module.exports = createBaseFor;
+
+
+/***/ },
+/* 112 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isObject = __webpack_require__(113);
+
+ /**
+ * Converts `value` to an object if it's not one.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {Object} Returns the object.
+ */
+ function toObject(value) {
+ return isObject(value) ? value : Object(value);
+ }
+
+ module.exports = toObject;
+
+
+/***/ },
+/* 113 */
+/***/ function(module, exports) {
+
+ /**
+ * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
+ * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is an object, else `false`.
+ * @example
+ *
+ * _.isObject({});
+ * // => true
+ *
+ * _.isObject([1, 2, 3]);
+ * // => true
+ *
+ * _.isObject(1);
+ * // => false
+ */
+ function isObject(value) {
+ // Avoid a V8 JIT bug in Chrome 19-20.
+ // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.
+ var type = typeof value;
+ return !!value && (type == 'object' || type == 'function');
+ }
+
+ module.exports = isObject;
+
+
+/***/ },
+/* 114 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var getNative = __webpack_require__(115),
+ isArrayLike = __webpack_require__(119),
+ isObject = __webpack_require__(113),
+ shimKeys = __webpack_require__(123);
+
+ /* Native method references for those with the same name as other `lodash` methods. */
+ var nativeKeys = getNative(Object, 'keys');
+
+ /**
+ * Creates an array of the own enumerable property names of `object`.
+ *
+ * **Note:** Non-object values are coerced to objects. See the
+ * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)
+ * for more details.
+ *
+ * @static
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.keys(new Foo);
+ * // => ['a', 'b'] (iteration order is not guaranteed)
+ *
+ * _.keys('hi');
+ * // => ['0', '1']
+ */
+ var keys = !nativeKeys ? shimKeys : function(object) {
+ var Ctor = object == null ? undefined : object.constructor;
+ if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
+ (typeof object != 'function' && isArrayLike(object))) {
+ return shimKeys(object);
+ }
+ return isObject(object) ? nativeKeys(object) : [];
+ };
+
+ module.exports = keys;
+
+
+/***/ },
+/* 115 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isNative = __webpack_require__(116);
+
+ /**
+ * Gets the native function at `key` of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {string} key The key of the method to get.
+ * @returns {*} Returns the function if it's native, else `undefined`.
+ */
+ function getNative(object, key) {
+ var value = object == null ? undefined : object[key];
+ return isNative(value) ? value : undefined;
+ }
+
+ module.exports = getNative;
+
+
+/***/ },
+/* 116 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isFunction = __webpack_require__(117),
+ isObjectLike = __webpack_require__(118);
+
+ /** Used to detect host constructors (Safari > 5). */
+ var reIsHostCtor = /^\[object .+?Constructor\]$/;
+
+ /** Used for native method references. */
+ var objectProto = Object.prototype;
+
+ /** Used to resolve the decompiled source of functions. */
+ var fnToString = Function.prototype.toString;
+
+ /** Used to check objects for own properties. */
+ var hasOwnProperty = objectProto.hasOwnProperty;
+
+ /** Used to detect if a method is native. */
+ var reIsNative = RegExp('^' +
+ fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
+ .replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
+ );
+
+ /**
+ * Checks if `value` is a native function.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a native function, else `false`.
+ * @example
+ *
+ * _.isNative(Array.prototype.push);
+ * // => true
+ *
+ * _.isNative(_);
+ * // => false
+ */
+ function isNative(value) {
+ if (value == null) {
+ return false;
+ }
+ if (isFunction(value)) {
+ return reIsNative.test(fnToString.call(value));
+ }
+ return isObjectLike(value) && reIsHostCtor.test(value);
+ }
+
+ module.exports = isNative;
+
+
+/***/ },
+/* 117 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isObject = __webpack_require__(113);
+
+ /** `Object#toString` result references. */
+ var funcTag = '[object Function]';
+
+ /** Used for native method references. */
+ var objectProto = Object.prototype;
+
+ /**
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+ var objToString = objectProto.toString;
+
+ /**
+ * Checks if `value` is classified as a `Function` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isFunction(_);
+ * // => true
+ *
+ * _.isFunction(/abc/);
+ * // => false
+ */
+ function isFunction(value) {
+ // The use of `Object#toString` avoids issues with the `typeof` operator
+ // in older versions of Chrome and Safari which return 'function' for regexes
+ // and Safari 8 which returns 'object' for typed array constructors.
+ return isObject(value) && objToString.call(value) == funcTag;
+ }
+
+ module.exports = isFunction;
+
+
+/***/ },
+/* 118 */
+/***/ function(module, exports) {
+
+ /**
+ * Checks if `value` is object-like.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is object-like, else `false`.
+ */
+ function isObjectLike(value) {
+ return !!value && typeof value == 'object';
+ }
+
+ module.exports = isObjectLike;
+
+
+/***/ },
+/* 119 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var getLength = __webpack_require__(120),
+ isLength = __webpack_require__(122);
+
+ /**
+ * Checks if `value` is array-like.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is array-like, else `false`.
+ */
+ function isArrayLike(value) {
+ return value != null && isLength(getLength(value));
+ }
+
+ module.exports = isArrayLike;
+
+
+/***/ },
+/* 120 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseProperty = __webpack_require__(121);
+
+ /**
+ * Gets the "length" property value of `object`.
+ *
+ * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)
+ * that affects Safari on at least iOS 8.1-8.3 ARM64.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {*} Returns the "length" value.
+ */
+ var getLength = baseProperty('length');
+
+ module.exports = getLength;
+
+
+/***/ },
+/* 121 */
+/***/ function(module, exports) {
+
+ /**
+ * The base implementation of `_.property` without support for deep paths.
+ *
+ * @private
+ * @param {string} key The key of the property to get.
+ * @returns {Function} Returns the new function.
+ */
+ function baseProperty(key) {
+ return function(object) {
+ return object == null ? undefined : object[key];
+ };
+ }
+
+ module.exports = baseProperty;
+
+
+/***/ },
+/* 122 */
+/***/ function(module, exports) {
+
+ /**
+ * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
+ * of an array-like value.
+ */
+ var MAX_SAFE_INTEGER = 9007199254740991;
+
+ /**
+ * Checks if `value` is a valid array-like length.
+ *
+ * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.
+ */
+ function isLength(value) {
+ return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;
+ }
+
+ module.exports = isLength;
+
+
+/***/ },
+/* 123 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isArguments = __webpack_require__(124),
+ isArray = __webpack_require__(125),
+ isIndex = __webpack_require__(126),
+ isLength = __webpack_require__(122),
+ keysIn = __webpack_require__(127);
+
+ /** Used for native method references. */
+ var objectProto = Object.prototype;
+
+ /** Used to check objects for own properties. */
+ var hasOwnProperty = objectProto.hasOwnProperty;
+
+ /**
+ * A fallback implementation of `Object.keys` which creates an array of the
+ * own enumerable property names of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ */
+ function shimKeys(object) {
+ var props = keysIn(object),
+ propsLength = props.length,
+ length = propsLength && object.length;
+
+ var allowIndexes = !!length && isLength(length) &&
+ (isArray(object) || isArguments(object));
+
+ var index = -1,
+ result = [];
+
+ while (++index < propsLength) {
+ var key = props[index];
+ if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {
+ result.push(key);
+ }
+ }
+ return result;
+ }
+
+ module.exports = shimKeys;
+
+
+/***/ },
+/* 124 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isArrayLike = __webpack_require__(119),
+ isObjectLike = __webpack_require__(118);
+
+ /** Used for native method references. */
+ var objectProto = Object.prototype;
+
+ /** Used to check objects for own properties. */
+ var hasOwnProperty = objectProto.hasOwnProperty;
+
+ /** Native method references. */
+ var propertyIsEnumerable = objectProto.propertyIsEnumerable;
+
+ /**
+ * Checks if `value` is classified as an `arguments` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isArguments(function() { return arguments; }());
+ * // => true
+ *
+ * _.isArguments([1, 2, 3]);
+ * // => false
+ */
+ function isArguments(value) {
+ return isObjectLike(value) && isArrayLike(value) &&
+ hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');
+ }
+
+ module.exports = isArguments;
+
+
+/***/ },
+/* 125 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var getNative = __webpack_require__(115),
+ isLength = __webpack_require__(122),
+ isObjectLike = __webpack_require__(118);
+
+ /** `Object#toString` result references. */
+ var arrayTag = '[object Array]';
+
+ /** Used for native method references. */
+ var objectProto = Object.prototype;
+
+ /**
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+ var objToString = objectProto.toString;
+
+ /* Native method references for those with the same name as other `lodash` methods. */
+ var nativeIsArray = getNative(Array, 'isArray');
+
+ /**
+ * Checks if `value` is classified as an `Array` object.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isArray([1, 2, 3]);
+ * // => true
+ *
+ * _.isArray(function() { return arguments; }());
+ * // => false
+ */
+ var isArray = nativeIsArray || function(value) {
+ return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;
+ };
+
+ module.exports = isArray;
+
+
+/***/ },
+/* 126 */
+/***/ function(module, exports) {
+
+ /** Used to detect unsigned integer values. */
+ var reIsUint = /^\d+$/;
+
+ /**
+ * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
+ * of an array-like value.
+ */
+ var MAX_SAFE_INTEGER = 9007199254740991;
+
+ /**
+ * Checks if `value` is a valid array-like index.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.
+ * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.
+ */
+ function isIndex(value, length) {
+ value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;
+ length = length == null ? MAX_SAFE_INTEGER : length;
+ return value > -1 && value % 1 == 0 && value < length;
+ }
+
+ module.exports = isIndex;
+
+
+/***/ },
+/* 127 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isArguments = __webpack_require__(124),
+ isArray = __webpack_require__(125),
+ isIndex = __webpack_require__(126),
+ isLength = __webpack_require__(122),
+ isObject = __webpack_require__(113);
+
+ /** Used for native method references. */
+ var objectProto = Object.prototype;
+
+ /** Used to check objects for own properties. */
+ var hasOwnProperty = objectProto.hasOwnProperty;
+
+ /**
+ * Creates an array of the own and inherited enumerable property names of `object`.
+ *
+ * **Note:** Non-object values are coerced to objects.
+ *
+ * @static
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the array of property names.
+ * @example
+ *
+ * function Foo() {
+ * this.a = 1;
+ * this.b = 2;
+ * }
+ *
+ * Foo.prototype.c = 3;
+ *
+ * _.keysIn(new Foo);
+ * // => ['a', 'b', 'c'] (iteration order is not guaranteed)
+ */
+ function keysIn(object) {
+ if (object == null) {
+ return [];
+ }
+ if (!isObject(object)) {
+ object = Object(object);
+ }
+ var length = object.length;
+ length = (length && isLength(length) &&
+ (isArray(object) || isArguments(object)) && length) || 0;
+
+ var Ctor = object.constructor,
+ index = -1,
+ isProto = typeof Ctor == 'function' && Ctor.prototype === object,
+ result = Array(length),
+ skipIndexes = length > 0;
+
+ while (++index < length) {
+ result[index] = (index + '');
+ }
+ for (var key in object) {
+ if (!(skipIndexes && isIndex(key, length)) &&
+ !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {
+ result.push(key);
+ }
+ }
+ return result;
+ }
+
+ module.exports = keysIn;
+
+
+/***/ },
+/* 128 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var getLength = __webpack_require__(120),
+ isLength = __webpack_require__(122),
+ toObject = __webpack_require__(112);
+
+ /**
+ * Creates a `baseEach` or `baseEachRight` function.
+ *
+ * @private
+ * @param {Function} eachFunc The function to iterate over a collection.
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {Function} Returns the new base function.
+ */
+ function createBaseEach(eachFunc, fromRight) {
+ return function(collection, iteratee) {
+ var length = collection ? getLength(collection) : 0;
+ if (!isLength(length)) {
+ return eachFunc(collection, iteratee);
+ }
+ var index = fromRight ? length : -1,
+ iterable = toObject(collection);
+
+ while ((fromRight ? index-- : ++index < length)) {
+ if (iteratee(iterable[index], index, iterable) === false) {
+ break;
+ }
+ }
+ return collection;
+ };
+ }
+
+ module.exports = createBaseEach;
+
+
+/***/ },
+/* 129 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseCallback = __webpack_require__(130),
+ baseFind = __webpack_require__(154),
+ baseFindIndex = __webpack_require__(155),
+ isArray = __webpack_require__(125);
+
+ /**
+ * Creates a `_.find` or `_.findLast` function.
+ *
+ * @private
+ * @param {Function} eachFunc The function to iterate over a collection.
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {Function} Returns the new find function.
+ */
+ function createFind(eachFunc, fromRight) {
+ return function(collection, predicate, thisArg) {
+ predicate = baseCallback(predicate, thisArg, 3);
+ if (isArray(collection)) {
+ var index = baseFindIndex(collection, predicate, fromRight);
+ return index > -1 ? collection[index] : undefined;
+ }
+ return baseFind(collection, predicate, eachFunc);
+ };
+ }
+
+ module.exports = createFind;
+
+
+/***/ },
+/* 130 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseMatches = __webpack_require__(131),
+ baseMatchesProperty = __webpack_require__(143),
+ bindCallback = __webpack_require__(150),
+ identity = __webpack_require__(151),
+ property = __webpack_require__(152);
+
+ /**
+ * The base implementation of `_.callback` which supports specifying the
+ * number of arguments to provide to `func`.
+ *
+ * @private
+ * @param {*} [func=_.identity] The value to convert to a callback.
+ * @param {*} [thisArg] The `this` binding of `func`.
+ * @param {number} [argCount] The number of arguments to provide to `func`.
+ * @returns {Function} Returns the callback.
+ */
+ function baseCallback(func, thisArg, argCount) {
+ var type = typeof func;
+ if (type == 'function') {
+ return thisArg === undefined
+ ? func
+ : bindCallback(func, thisArg, argCount);
+ }
+ if (func == null) {
+ return identity;
+ }
+ if (type == 'object') {
+ return baseMatches(func);
+ }
+ return thisArg === undefined
+ ? property(func)
+ : baseMatchesProperty(func, thisArg);
+ }
+
+ module.exports = baseCallback;
+
+
+/***/ },
+/* 131 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseIsMatch = __webpack_require__(132),
+ getMatchData = __webpack_require__(140),
+ toObject = __webpack_require__(112);
+
+ /**
+ * The base implementation of `_.matches` which does not clone `source`.
+ *
+ * @private
+ * @param {Object} source The object of property values to match.
+ * @returns {Function} Returns the new function.
+ */
+ function baseMatches(source) {
+ var matchData = getMatchData(source);
+ if (matchData.length == 1 && matchData[0][2]) {
+ var key = matchData[0][0],
+ value = matchData[0][1];
+
+ return function(object) {
+ if (object == null) {
+ return false;
+ }
+ return object[key] === value && (value !== undefined || (key in toObject(object)));
+ };
+ }
+ return function(object) {
+ return baseIsMatch(object, matchData);
+ };
+ }
+
+ module.exports = baseMatches;
+
+
+/***/ },
+/* 132 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseIsEqual = __webpack_require__(133),
+ toObject = __webpack_require__(112);
+
+ /**
+ * The base implementation of `_.isMatch` without support for callback
+ * shorthands and `this` binding.
+ *
+ * @private
+ * @param {Object} object The object to inspect.
+ * @param {Array} matchData The propery names, values, and compare flags to match.
+ * @param {Function} [customizer] The function to customize comparing objects.
+ * @returns {boolean} Returns `true` if `object` is a match, else `false`.
+ */
+ function baseIsMatch(object, matchData, customizer) {
+ var index = matchData.length,
+ length = index,
+ noCustomizer = !customizer;
+
+ if (object == null) {
+ return !length;
+ }
+ object = toObject(object);
+ while (index--) {
+ var data = matchData[index];
+ if ((noCustomizer && data[2])
+ ? data[1] !== object[data[0]]
+ : !(data[0] in object)
+ ) {
+ return false;
+ }
+ }
+ while (++index < length) {
+ data = matchData[index];
+ var key = data[0],
+ objValue = object[key],
+ srcValue = data[1];
+
+ if (noCustomizer && data[2]) {
+ if (objValue === undefined && !(key in object)) {
+ return false;
+ }
+ } else {
+ var result = customizer ? customizer(objValue, srcValue, key) : undefined;
+ if (!(result === undefined ? baseIsEqual(srcValue, objValue, customizer, true) : result)) {
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+ module.exports = baseIsMatch;
+
+
+/***/ },
+/* 133 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseIsEqualDeep = __webpack_require__(134),
+ isObject = __webpack_require__(113),
+ isObjectLike = __webpack_require__(118);
+
+ /**
+ * The base implementation of `_.isEqual` without support for `this` binding
+ * `customizer` functions.
+ *
+ * @private
+ * @param {*} value The value to compare.
+ * @param {*} other The other value to compare.
+ * @param {Function} [customizer] The function to customize comparing values.
+ * @param {boolean} [isLoose] Specify performing partial comparisons.
+ * @param {Array} [stackA] Tracks traversed `value` objects.
+ * @param {Array} [stackB] Tracks traversed `other` objects.
+ * @returns {boolean} Returns `true` if the values are equivalent, else `false`.
+ */
+ function baseIsEqual(value, other, customizer, isLoose, stackA, stackB) {
+ if (value === other) {
+ return true;
+ }
+ if (value == null || other == null || (!isObject(value) && !isObjectLike(other))) {
+ return value !== value && other !== other;
+ }
+ return baseIsEqualDeep(value, other, baseIsEqual, customizer, isLoose, stackA, stackB);
+ }
+
+ module.exports = baseIsEqual;
+
+
+/***/ },
+/* 134 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var equalArrays = __webpack_require__(135),
+ equalByTag = __webpack_require__(137),
+ equalObjects = __webpack_require__(138),
+ isArray = __webpack_require__(125),
+ isTypedArray = __webpack_require__(139);
+
+ /** `Object#toString` result references. */
+ var argsTag = '[object Arguments]',
+ arrayTag = '[object Array]',
+ objectTag = '[object Object]';
+
+ /** Used for native method references. */
+ var objectProto = Object.prototype;
+
+ /** Used to check objects for own properties. */
+ var hasOwnProperty = objectProto.hasOwnProperty;
+
+ /**
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+ var objToString = objectProto.toString;
+
+ /**
+ * A specialized version of `baseIsEqual` for arrays and objects which performs
+ * deep comparisons and tracks traversed objects enabling objects with circular
+ * references to be compared.
+ *
+ * @private
+ * @param {Object} object The object to compare.
+ * @param {Object} other The other object to compare.
+ * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {Function} [customizer] The function to customize comparing objects.
+ * @param {boolean} [isLoose] Specify performing partial comparisons.
+ * @param {Array} [stackA=[]] Tracks traversed `value` objects.
+ * @param {Array} [stackB=[]] Tracks traversed `other` objects.
+ * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
+ */
+ function baseIsEqualDeep(object, other, equalFunc, customizer, isLoose, stackA, stackB) {
+ var objIsArr = isArray(object),
+ othIsArr = isArray(other),
+ objTag = arrayTag,
+ othTag = arrayTag;
+
+ if (!objIsArr) {
+ objTag = objToString.call(object);
+ if (objTag == argsTag) {
+ objTag = objectTag;
+ } else if (objTag != objectTag) {
+ objIsArr = isTypedArray(object);
+ }
+ }
+ if (!othIsArr) {
+ othTag = objToString.call(other);
+ if (othTag == argsTag) {
+ othTag = objectTag;
+ } else if (othTag != objectTag) {
+ othIsArr = isTypedArray(other);
+ }
+ }
+ var objIsObj = objTag == objectTag,
+ othIsObj = othTag == objectTag,
+ isSameTag = objTag == othTag;
+
+ if (isSameTag && !(objIsArr || objIsObj)) {
+ return equalByTag(object, other, objTag);
+ }
+ if (!isLoose) {
+ var objIsWrapped = objIsObj && hasOwnProperty.call(object, '__wrapped__'),
+ othIsWrapped = othIsObj && hasOwnProperty.call(other, '__wrapped__');
+
+ if (objIsWrapped || othIsWrapped) {
+ return equalFunc(objIsWrapped ? object.value() : object, othIsWrapped ? other.value() : other, customizer, isLoose, stackA, stackB);
+ }
+ }
+ if (!isSameTag) {
+ return false;
+ }
+ // Assume cyclic values are equal.
+ // For more information on detecting circular references see https://es5.github.io/#JO.
+ stackA || (stackA = []);
+ stackB || (stackB = []);
+
+ var length = stackA.length;
+ while (length--) {
+ if (stackA[length] == object) {
+ return stackB[length] == other;
+ }
+ }
+ // Add `object` and `other` to the stack of traversed objects.
+ stackA.push(object);
+ stackB.push(other);
+
+ var result = (objIsArr ? equalArrays : equalObjects)(object, other, equalFunc, customizer, isLoose, stackA, stackB);
+
+ stackA.pop();
+ stackB.pop();
+
+ return result;
+ }
+
+ module.exports = baseIsEqualDeep;
+
+
+/***/ },
+/* 135 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var arraySome = __webpack_require__(136);
+
+ /**
+ * A specialized version of `baseIsEqualDeep` for arrays with support for
+ * partial deep comparisons.
+ *
+ * @private
+ * @param {Array} array The array to compare.
+ * @param {Array} other The other array to compare.
+ * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {Function} [customizer] The function to customize comparing arrays.
+ * @param {boolean} [isLoose] Specify performing partial comparisons.
+ * @param {Array} [stackA] Tracks traversed `value` objects.
+ * @param {Array} [stackB] Tracks traversed `other` objects.
+ * @returns {boolean} Returns `true` if the arrays are equivalent, else `false`.
+ */
+ function equalArrays(array, other, equalFunc, customizer, isLoose, stackA, stackB) {
+ var index = -1,
+ arrLength = array.length,
+ othLength = other.length;
+
+ if (arrLength != othLength && !(isLoose && othLength > arrLength)) {
+ return false;
+ }
+ // Ignore non-index properties.
+ while (++index < arrLength) {
+ var arrValue = array[index],
+ othValue = other[index],
+ result = customizer ? customizer(isLoose ? othValue : arrValue, isLoose ? arrValue : othValue, index) : undefined;
+
+ if (result !== undefined) {
+ if (result) {
+ continue;
+ }
+ return false;
+ }
+ // Recursively compare arrays (susceptible to call stack limits).
+ if (isLoose) {
+ if (!arraySome(other, function(othValue) {
+ return arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB);
+ })) {
+ return false;
+ }
+ } else if (!(arrValue === othValue || equalFunc(arrValue, othValue, customizer, isLoose, stackA, stackB))) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ module.exports = equalArrays;
+
+
+/***/ },
+/* 136 */
+/***/ function(module, exports) {
+
+ /**
+ * A specialized version of `_.some` for arrays without support for callback
+ * shorthands and `this` binding.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {boolean} Returns `true` if any element passes the predicate check,
+ * else `false`.
+ */
+ function arraySome(array, predicate) {
+ var index = -1,
+ length = array.length;
+
+ while (++index < length) {
+ if (predicate(array[index], index, array)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ module.exports = arraySome;
+
+
+/***/ },
+/* 137 */
+/***/ function(module, exports) {
+
+ /** `Object#toString` result references. */
+ var boolTag = '[object Boolean]',
+ dateTag = '[object Date]',
+ errorTag = '[object Error]',
+ numberTag = '[object Number]',
+ regexpTag = '[object RegExp]',
+ stringTag = '[object String]';
+
+ /**
+ * A specialized version of `baseIsEqualDeep` for comparing objects of
+ * the same `toStringTag`.
+ *
+ * **Note:** This function only supports comparing values with tags of
+ * `Boolean`, `Date`, `Error`, `Number`, `RegExp`, or `String`.
+ *
+ * @private
+ * @param {Object} object The object to compare.
+ * @param {Object} other The other object to compare.
+ * @param {string} tag The `toStringTag` of the objects to compare.
+ * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
+ */
+ function equalByTag(object, other, tag) {
+ switch (tag) {
+ case boolTag:
+ case dateTag:
+ // Coerce dates and booleans to numbers, dates to milliseconds and booleans
+ // to `1` or `0` treating invalid dates coerced to `NaN` as not equal.
+ return +object == +other;
+
+ case errorTag:
+ return object.name == other.name && object.message == other.message;
+
+ case numberTag:
+ // Treat `NaN` vs. `NaN` as equal.
+ return (object != +object)
+ ? other != +other
+ : object == +other;
+
+ case regexpTag:
+ case stringTag:
+ // Coerce regexes to strings and treat strings primitives and string
+ // objects as equal. See https://es5.github.io/#x15.10.6.4 for more details.
+ return object == (other + '');
+ }
+ return false;
+ }
+
+ module.exports = equalByTag;
+
+
+/***/ },
+/* 138 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var keys = __webpack_require__(114);
+
+ /** Used for native method references. */
+ var objectProto = Object.prototype;
+
+ /** Used to check objects for own properties. */
+ var hasOwnProperty = objectProto.hasOwnProperty;
+
+ /**
+ * A specialized version of `baseIsEqualDeep` for objects with support for
+ * partial deep comparisons.
+ *
+ * @private
+ * @param {Object} object The object to compare.
+ * @param {Object} other The other object to compare.
+ * @param {Function} equalFunc The function to determine equivalents of values.
+ * @param {Function} [customizer] The function to customize comparing values.
+ * @param {boolean} [isLoose] Specify performing partial comparisons.
+ * @param {Array} [stackA] Tracks traversed `value` objects.
+ * @param {Array} [stackB] Tracks traversed `other` objects.
+ * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
+ */
+ function equalObjects(object, other, equalFunc, customizer, isLoose, stackA, stackB) {
+ var objProps = keys(object),
+ objLength = objProps.length,
+ othProps = keys(other),
+ othLength = othProps.length;
+
+ if (objLength != othLength && !isLoose) {
+ return false;
+ }
+ var index = objLength;
+ while (index--) {
+ var key = objProps[index];
+ if (!(isLoose ? key in other : hasOwnProperty.call(other, key))) {
+ return false;
+ }
+ }
+ var skipCtor = isLoose;
+ while (++index < objLength) {
+ key = objProps[index];
+ var objValue = object[key],
+ othValue = other[key],
+ result = customizer ? customizer(isLoose ? othValue : objValue, isLoose? objValue : othValue, key) : undefined;
+
+ // Recursively compare objects (susceptible to call stack limits).
+ if (!(result === undefined ? equalFunc(objValue, othValue, customizer, isLoose, stackA, stackB) : result)) {
+ return false;
+ }
+ skipCtor || (skipCtor = key == 'constructor');
+ }
+ if (!skipCtor) {
+ var objCtor = object.constructor,
+ othCtor = other.constructor;
+
+ // Non `Object` object instances with different constructors are not equal.
+ if (objCtor != othCtor &&
+ ('constructor' in object && 'constructor' in other) &&
+ !(typeof objCtor == 'function' && objCtor instanceof objCtor &&
+ typeof othCtor == 'function' && othCtor instanceof othCtor)) {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ module.exports = equalObjects;
+
+
+/***/ },
+/* 139 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isLength = __webpack_require__(122),
+ isObjectLike = __webpack_require__(118);
+
+ /** `Object#toString` result references. */
+ var argsTag = '[object Arguments]',
+ arrayTag = '[object Array]',
+ boolTag = '[object Boolean]',
+ dateTag = '[object Date]',
+ errorTag = '[object Error]',
+ funcTag = '[object Function]',
+ mapTag = '[object Map]',
+ numberTag = '[object Number]',
+ objectTag = '[object Object]',
+ regexpTag = '[object RegExp]',
+ setTag = '[object Set]',
+ stringTag = '[object String]',
+ weakMapTag = '[object WeakMap]';
+
+ var arrayBufferTag = '[object ArrayBuffer]',
+ float32Tag = '[object Float32Array]',
+ float64Tag = '[object Float64Array]',
+ int8Tag = '[object Int8Array]',
+ int16Tag = '[object Int16Array]',
+ int32Tag = '[object Int32Array]',
+ uint8Tag = '[object Uint8Array]',
+ uint8ClampedTag = '[object Uint8ClampedArray]',
+ uint16Tag = '[object Uint16Array]',
+ uint32Tag = '[object Uint32Array]';
+
+ /** Used to identify `toStringTag` values of typed arrays. */
+ var typedArrayTags = {};
+ typedArrayTags[float32Tag] = typedArrayTags[float64Tag] =
+ typedArrayTags[int8Tag] = typedArrayTags[int16Tag] =
+ typedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =
+ typedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =
+ typedArrayTags[uint32Tag] = true;
+ typedArrayTags[argsTag] = typedArrayTags[arrayTag] =
+ typedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =
+ typedArrayTags[dateTag] = typedArrayTags[errorTag] =
+ typedArrayTags[funcTag] = typedArrayTags[mapTag] =
+ typedArrayTags[numberTag] = typedArrayTags[objectTag] =
+ typedArrayTags[regexpTag] = typedArrayTags[setTag] =
+ typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
+
+ /** Used for native method references. */
+ var objectProto = Object.prototype;
+
+ /**
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
+ * of values.
+ */
+ var objToString = objectProto.toString;
+
+ /**
+ * Checks if `value` is classified as a typed array.
+ *
+ * @static
+ * @memberOf _
+ * @category Lang
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
+ * @example
+ *
+ * _.isTypedArray(new Uint8Array);
+ * // => true
+ *
+ * _.isTypedArray([]);
+ * // => false
+ */
+ function isTypedArray(value) {
+ return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];
+ }
+
+ module.exports = isTypedArray;
+
+
+/***/ },
+/* 140 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isStrictComparable = __webpack_require__(141),
+ pairs = __webpack_require__(142);
+
+ /**
+ * Gets the propery names, values, and compare flags of `object`.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the match data of `object`.
+ */
+ function getMatchData(object) {
+ var result = pairs(object),
+ length = result.length;
+
+ while (length--) {
+ result[length][2] = isStrictComparable(result[length][1]);
+ }
+ return result;
+ }
+
+ module.exports = getMatchData;
+
+
+/***/ },
+/* 141 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isObject = __webpack_require__(113);
+
+ /**
+ * Checks if `value` is suitable for strict equality comparisons, i.e. `===`.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @returns {boolean} Returns `true` if `value` if suitable for strict
+ * equality comparisons, else `false`.
+ */
+ function isStrictComparable(value) {
+ return value === value && !isObject(value);
+ }
+
+ module.exports = isStrictComparable;
+
+
+/***/ },
+/* 142 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var keys = __webpack_require__(114),
+ toObject = __webpack_require__(112);
+
+ /**
+ * Creates a two dimensional array of the key-value pairs for `object`,
+ * e.g. `[[key1, value1], [key2, value2]]`.
+ *
+ * @static
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The object to query.
+ * @returns {Array} Returns the new array of key-value pairs.
+ * @example
+ *
+ * _.pairs({ 'barney': 36, 'fred': 40 });
+ * // => [['barney', 36], ['fred', 40]] (iteration order is not guaranteed)
+ */
+ function pairs(object) {
+ object = toObject(object);
+
+ var index = -1,
+ props = keys(object),
+ length = props.length,
+ result = Array(length);
+
+ while (++index < length) {
+ var key = props[index];
+ result[index] = [key, object[key]];
+ }
+ return result;
+ }
+
+ module.exports = pairs;
+
+
+/***/ },
+/* 143 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseGet = __webpack_require__(144),
+ baseIsEqual = __webpack_require__(133),
+ baseSlice = __webpack_require__(145),
+ isArray = __webpack_require__(125),
+ isKey = __webpack_require__(146),
+ isStrictComparable = __webpack_require__(141),
+ last = __webpack_require__(147),
+ toObject = __webpack_require__(112),
+ toPath = __webpack_require__(148);
+
+ /**
+ * The base implementation of `_.matchesProperty` which does not clone `srcValue`.
+ *
+ * @private
+ * @param {string} path The path of the property to get.
+ * @param {*} srcValue The value to compare.
+ * @returns {Function} Returns the new function.
+ */
+ function baseMatchesProperty(path, srcValue) {
+ var isArr = isArray(path),
+ isCommon = isKey(path) && isStrictComparable(srcValue),
+ pathKey = (path + '');
+
+ path = toPath(path);
+ return function(object) {
+ if (object == null) {
+ return false;
+ }
+ var key = pathKey;
+ object = toObject(object);
+ if ((isArr || !isCommon) && !(key in object)) {
+ object = path.length == 1 ? object : baseGet(object, baseSlice(path, 0, -1));
+ if (object == null) {
+ return false;
+ }
+ key = last(path);
+ object = toObject(object);
+ }
+ return object[key] === srcValue
+ ? (srcValue !== undefined || (key in object))
+ : baseIsEqual(srcValue, object[key], undefined, true);
+ };
+ }
+
+ module.exports = baseMatchesProperty;
+
+
+/***/ },
+/* 144 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var toObject = __webpack_require__(112);
+
+ /**
+ * The base implementation of `get` without support for string paths
+ * and default values.
+ *
+ * @private
+ * @param {Object} object The object to query.
+ * @param {Array} path The path of the property to get.
+ * @param {string} [pathKey] The key representation of path.
+ * @returns {*} Returns the resolved value.
+ */
+ function baseGet(object, path, pathKey) {
+ if (object == null) {
+ return;
+ }
+ if (pathKey !== undefined && pathKey in toObject(object)) {
+ path = [pathKey];
+ }
+ var index = 0,
+ length = path.length;
+
+ while (object != null && index < length) {
+ object = object[path[index++]];
+ }
+ return (index && index == length) ? object : undefined;
+ }
+
+ module.exports = baseGet;
+
+
+/***/ },
+/* 145 */
+/***/ function(module, exports) {
+
+ /**
+ * The base implementation of `_.slice` without an iteratee call guard.
+ *
+ * @private
+ * @param {Array} array The array to slice.
+ * @param {number} [start=0] The start position.
+ * @param {number} [end=array.length] The end position.
+ * @returns {Array} Returns the slice of `array`.
+ */
+ function baseSlice(array, start, end) {
+ var index = -1,
+ length = array.length;
+
+ start = start == null ? 0 : (+start || 0);
+ if (start < 0) {
+ start = -start > length ? 0 : (length + start);
+ }
+ end = (end === undefined || end > length) ? length : (+end || 0);
+ if (end < 0) {
+ end += length;
+ }
+ length = start > end ? 0 : ((end - start) >>> 0);
+ start >>>= 0;
+
+ var result = Array(length);
+ while (++index < length) {
+ result[index] = array[index + start];
+ }
+ return result;
+ }
+
+ module.exports = baseSlice;
+
+
+/***/ },
+/* 146 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isArray = __webpack_require__(125),
+ toObject = __webpack_require__(112);
+
+ /** Used to match property names within property paths. */
+ var reIsDeepProp = /\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,
+ reIsPlainProp = /^\w*$/;
+
+ /**
+ * Checks if `value` is a property name and not a property path.
+ *
+ * @private
+ * @param {*} value The value to check.
+ * @param {Object} [object] The object to query keys on.
+ * @returns {boolean} Returns `true` if `value` is a property name, else `false`.
+ */
+ function isKey(value, object) {
+ var type = typeof value;
+ if ((type == 'string' && reIsPlainProp.test(value)) || type == 'number') {
+ return true;
+ }
+ if (isArray(value)) {
+ return false;
+ }
+ var result = !reIsDeepProp.test(value);
+ return result || (object != null && value in toObject(object));
+ }
+
+ module.exports = isKey;
+
+
+/***/ },
+/* 147 */
+/***/ function(module, exports) {
+
+ /**
+ * Gets the last element of `array`.
+ *
+ * @static
+ * @memberOf _
+ * @category Array
+ * @param {Array} array The array to query.
+ * @returns {*} Returns the last element of `array`.
+ * @example
+ *
+ * _.last([1, 2, 3]);
+ * // => 3
+ */
+ function last(array) {
+ var length = array ? array.length : 0;
+ return length ? array[length - 1] : undefined;
+ }
+
+ module.exports = last;
+
+
+/***/ },
+/* 148 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseToString = __webpack_require__(149),
+ isArray = __webpack_require__(125);
+
+ /** Used to match property names within property paths. */
+ var rePropName = /[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\n\\]|\\.)*?)\2)\]/g;
+
+ /** Used to match backslashes in property paths. */
+ var reEscapeChar = /\\(\\)?/g;
+
+ /**
+ * Converts `value` to property path array if it's not one.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {Array} Returns the property path array.
+ */
+ function toPath(value) {
+ if (isArray(value)) {
+ return value;
+ }
+ var result = [];
+ baseToString(value).replace(rePropName, function(match, number, quote, string) {
+ result.push(quote ? string.replace(reEscapeChar, '$1') : (number || match));
+ });
+ return result;
+ }
+
+ module.exports = toPath;
+
+
+/***/ },
+/* 149 */
+/***/ function(module, exports) {
+
+ /**
+ * Converts `value` to a string if it's not one. An empty string is returned
+ * for `null` or `undefined` values.
+ *
+ * @private
+ * @param {*} value The value to process.
+ * @returns {string} Returns the string.
+ */
+ function baseToString(value) {
+ return value == null ? '' : (value + '');
+ }
+
+ module.exports = baseToString;
+
+
+/***/ },
+/* 150 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var identity = __webpack_require__(151);
+
+ /**
+ * A specialized version of `baseCallback` which only supports `this` binding
+ * and specifying the number of arguments to provide to `func`.
+ *
+ * @private
+ * @param {Function} func The function to bind.
+ * @param {*} thisArg The `this` binding of `func`.
+ * @param {number} [argCount] The number of arguments to provide to `func`.
+ * @returns {Function} Returns the callback.
+ */
+ function bindCallback(func, thisArg, argCount) {
+ if (typeof func != 'function') {
+ return identity;
+ }
+ if (thisArg === undefined) {
+ return func;
+ }
+ switch (argCount) {
+ case 1: return function(value) {
+ return func.call(thisArg, value);
+ };
+ case 3: return function(value, index, collection) {
+ return func.call(thisArg, value, index, collection);
+ };
+ case 4: return function(accumulator, value, index, collection) {
+ return func.call(thisArg, accumulator, value, index, collection);
+ };
+ case 5: return function(value, other, key, object, source) {
+ return func.call(thisArg, value, other, key, object, source);
+ };
+ }
+ return function() {
+ return func.apply(thisArg, arguments);
+ };
+ }
+
+ module.exports = bindCallback;
+
+
+/***/ },
+/* 151 */
+/***/ function(module, exports) {
+
+ /**
+ * This method returns the first argument provided to it.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {*} value Any value.
+ * @returns {*} Returns `value`.
+ * @example
+ *
+ * var object = { 'user': 'fred' };
+ *
+ * _.identity(object) === object;
+ * // => true
+ */
+ function identity(value) {
+ return value;
+ }
+
+ module.exports = identity;
+
+
+/***/ },
+/* 152 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseProperty = __webpack_require__(121),
+ basePropertyDeep = __webpack_require__(153),
+ isKey = __webpack_require__(146);
+
+ /**
+ * Creates a function that returns the property value at `path` on a
+ * given object.
+ *
+ * @static
+ * @memberOf _
+ * @category Utility
+ * @param {Array|string} path The path of the property to get.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * var objects = [
+ * { 'a': { 'b': { 'c': 2 } } },
+ * { 'a': { 'b': { 'c': 1 } } }
+ * ];
+ *
+ * _.map(objects, _.property('a.b.c'));
+ * // => [2, 1]
+ *
+ * _.pluck(_.sortBy(objects, _.property(['a', 'b', 'c'])), 'a.b.c');
+ * // => [1, 2]
+ */
+ function property(path) {
+ return isKey(path) ? baseProperty(path) : basePropertyDeep(path);
+ }
+
+ module.exports = property;
+
+
+/***/ },
+/* 153 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseGet = __webpack_require__(144),
+ toPath = __webpack_require__(148);
+
+ /**
+ * A specialized version of `baseProperty` which supports deep paths.
+ *
+ * @private
+ * @param {Array|string} path The path of the property to get.
+ * @returns {Function} Returns the new function.
+ */
+ function basePropertyDeep(path) {
+ var pathKey = (path + '');
+ path = toPath(path);
+ return function(object) {
+ return baseGet(object, path, pathKey);
+ };
+ }
+
+ module.exports = basePropertyDeep;
+
+
+/***/ },
+/* 154 */
+/***/ function(module, exports) {
+
+ /**
+ * The base implementation of `_.find`, `_.findLast`, `_.findKey`, and `_.findLastKey`,
+ * without support for callback shorthands and `this` binding, which iterates
+ * over `collection` using the provided `eachFunc`.
+ *
+ * @private
+ * @param {Array|Object|string} collection The collection to search.
+ * @param {Function} predicate The function invoked per iteration.
+ * @param {Function} eachFunc The function to iterate over `collection`.
+ * @param {boolean} [retKey] Specify returning the key of the found element
+ * instead of the element itself.
+ * @returns {*} Returns the found element or its key, else `undefined`.
+ */
+ function baseFind(collection, predicate, eachFunc, retKey) {
+ var result;
+ eachFunc(collection, function(value, key, collection) {
+ if (predicate(value, key, collection)) {
+ result = retKey ? key : value;
+ return false;
+ }
+ });
+ return result;
+ }
+
+ module.exports = baseFind;
+
+
+/***/ },
+/* 155 */
+/***/ function(module, exports) {
+
+ /**
+ * The base implementation of `_.findIndex` and `_.findLastIndex` without
+ * support for callback shorthands and `this` binding.
+ *
+ * @private
+ * @param {Array} array The array to search.
+ * @param {Function} predicate The function invoked per iteration.
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ */
+ function baseFindIndex(array, predicate, fromRight) {
+ var length = array.length,
+ index = fromRight ? length : -1;
+
+ while ((fromRight ? index-- : ++index < length)) {
+ if (predicate(array[index], index, array)) {
+ return index;
+ }
+ }
+ return -1;
+ }
+
+ module.exports = baseFindIndex;
+
+
+/***/ },
+/* 156 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var arrayMap = __webpack_require__(157),
+ baseDifference = __webpack_require__(158),
+ baseFlatten = __webpack_require__(165),
+ bindCallback = __webpack_require__(150),
+ keysIn = __webpack_require__(127),
+ pickByArray = __webpack_require__(167),
+ pickByCallback = __webpack_require__(168),
+ restParam = __webpack_require__(170);
+
+ /**
+ * The opposite of `_.pick`; this method creates an object composed of the
+ * own and inherited enumerable properties of `object` that are not omitted.
+ *
+ * @static
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The source object.
+ * @param {Function|...(string|string[])} [predicate] The function invoked per
+ * iteration or property names to omit, specified as individual property
+ * names or arrays of property names.
+ * @param {*} [thisArg] The `this` binding of `predicate`.
+ * @returns {Object} Returns the new object.
+ * @example
+ *
+ * var object = { 'user': 'fred', 'age': 40 };
+ *
+ * _.omit(object, 'age');
+ * // => { 'user': 'fred' }
+ *
+ * _.omit(object, _.isNumber);
+ * // => { 'user': 'fred' }
+ */
+ var omit = restParam(function(object, props) {
+ if (object == null) {
+ return {};
+ }
+ if (typeof props[0] != 'function') {
+ var props = arrayMap(baseFlatten(props), String);
+ return pickByArray(object, baseDifference(keysIn(object), props));
+ }
+ var predicate = bindCallback(props[0], props[1], 3);
+ return pickByCallback(object, function(value, key, object) {
+ return !predicate(value, key, object);
+ });
+ });
+
+ module.exports = omit;
+
+
+/***/ },
+/* 157 */
+/***/ function(module, exports) {
+
+ /**
+ * A specialized version of `_.map` for arrays without support for callback
+ * shorthands and `this` binding.
+ *
+ * @private
+ * @param {Array} array The array to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Array} Returns the new mapped array.
+ */
+ function arrayMap(array, iteratee) {
+ var index = -1,
+ length = array.length,
+ result = Array(length);
+
+ while (++index < length) {
+ result[index] = iteratee(array[index], index, array);
+ }
+ return result;
+ }
+
+ module.exports = arrayMap;
+
+
+/***/ },
+/* 158 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseIndexOf = __webpack_require__(159),
+ cacheIndexOf = __webpack_require__(161),
+ createCache = __webpack_require__(162);
+
+ /** Used as the size to enable large array optimizations. */
+ var LARGE_ARRAY_SIZE = 200;
+
+ /**
+ * The base implementation of `_.difference` which accepts a single array
+ * of values to exclude.
+ *
+ * @private
+ * @param {Array} array The array to inspect.
+ * @param {Array} values The values to exclude.
+ * @returns {Array} Returns the new array of filtered values.
+ */
+ function baseDifference(array, values) {
+ var length = array ? array.length : 0,
+ result = [];
+
+ if (!length) {
+ return result;
+ }
+ var index = -1,
+ indexOf = baseIndexOf,
+ isCommon = true,
+ cache = (isCommon && values.length >= LARGE_ARRAY_SIZE) ? createCache(values) : null,
+ valuesLength = values.length;
+
+ if (cache) {
+ indexOf = cacheIndexOf;
+ isCommon = false;
+ values = cache;
+ }
+ outer:
+ while (++index < length) {
+ var value = array[index];
+
+ if (isCommon && value === value) {
+ var valuesIndex = valuesLength;
+ while (valuesIndex--) {
+ if (values[valuesIndex] === value) {
+ continue outer;
+ }
+ }
+ result.push(value);
+ }
+ else if (indexOf(values, value, 0) < 0) {
+ result.push(value);
+ }
+ }
+ return result;
+ }
+
+ module.exports = baseDifference;
+
+
+/***/ },
+/* 159 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var indexOfNaN = __webpack_require__(160);
+
+ /**
+ * The base implementation of `_.indexOf` without support for binary searches.
+ *
+ * @private
+ * @param {Array} array The array to search.
+ * @param {*} value The value to search for.
+ * @param {number} fromIndex The index to search from.
+ * @returns {number} Returns the index of the matched value, else `-1`.
+ */
+ function baseIndexOf(array, value, fromIndex) {
+ if (value !== value) {
+ return indexOfNaN(array, fromIndex);
+ }
+ var index = fromIndex - 1,
+ length = array.length;
+
+ while (++index < length) {
+ if (array[index] === value) {
+ return index;
+ }
+ }
+ return -1;
+ }
+
+ module.exports = baseIndexOf;
+
+
+/***/ },
+/* 160 */
+/***/ function(module, exports) {
+
+ /**
+ * Gets the index at which the first occurrence of `NaN` is found in `array`.
+ *
+ * @private
+ * @param {Array} array The array to search.
+ * @param {number} fromIndex The index to search from.
+ * @param {boolean} [fromRight] Specify iterating from right to left.
+ * @returns {number} Returns the index of the matched `NaN`, else `-1`.
+ */
+ function indexOfNaN(array, fromIndex, fromRight) {
+ var length = array.length,
+ index = fromIndex + (fromRight ? 0 : -1);
+
+ while ((fromRight ? index-- : ++index < length)) {
+ var other = array[index];
+ if (other !== other) {
+ return index;
+ }
+ }
+ return -1;
+ }
+
+ module.exports = indexOfNaN;
+
+
+/***/ },
+/* 161 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isObject = __webpack_require__(113);
+
+ /**
+ * Checks if `value` is in `cache` mimicking the return signature of
+ * `_.indexOf` by returning `0` if the value is found, else `-1`.
+ *
+ * @private
+ * @param {Object} cache The cache to search.
+ * @param {*} value The value to search for.
+ * @returns {number} Returns `0` if `value` is found, else `-1`.
+ */
+ function cacheIndexOf(cache, value) {
+ var data = cache.data,
+ result = (typeof value == 'string' || isObject(value)) ? data.set.has(value) : data.hash[value];
+
+ return result ? 0 : -1;
+ }
+
+ module.exports = cacheIndexOf;
+
+
+/***/ },
+/* 162 */
+/***/ function(module, exports, __webpack_require__) {
+
+ /* WEBPACK VAR INJECTION */(function(global) {var SetCache = __webpack_require__(163),
+ getNative = __webpack_require__(115);
+
+ /** Native method references. */
+ var Set = getNative(global, 'Set');
+
+ /* Native method references for those with the same name as other `lodash` methods. */
+ var nativeCreate = getNative(Object, 'create');
+
+ /**
+ * Creates a `Set` cache object to optimize linear searches of large arrays.
+ *
+ * @private
+ * @param {Array} [values] The values to cache.
+ * @returns {null|Object} Returns the new cache object if `Set` is supported, else `null`.
+ */
+ function createCache(values) {
+ return (nativeCreate && Set) ? new SetCache(values) : null;
+ }
+
+ module.exports = createCache;
+
+ /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
+
+/***/ },
+/* 163 */
+/***/ function(module, exports, __webpack_require__) {
+
+ /* WEBPACK VAR INJECTION */(function(global) {var cachePush = __webpack_require__(164),
+ getNative = __webpack_require__(115);
+
+ /** Native method references. */
+ var Set = getNative(global, 'Set');
+
+ /* Native method references for those with the same name as other `lodash` methods. */
+ var nativeCreate = getNative(Object, 'create');
+
+ /**
+ *
+ * Creates a cache object to store unique values.
+ *
+ * @private
+ * @param {Array} [values] The values to cache.
+ */
+ function SetCache(values) {
+ var length = values ? values.length : 0;
+
+ this.data = { 'hash': nativeCreate(null), 'set': new Set };
+ while (length--) {
+ this.push(values[length]);
+ }
+ }
+
+ // Add functions to the `Set` cache.
+ SetCache.prototype.push = cachePush;
+
+ module.exports = SetCache;
+
+ /* WEBPACK VAR INJECTION */}.call(exports, (function() { return this; }())))
+
+/***/ },
+/* 164 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var isObject = __webpack_require__(113);
+
+ /**
+ * Adds `value` to the cache.
+ *
+ * @private
+ * @name push
+ * @memberOf SetCache
+ * @param {*} value The value to cache.
+ */
+ function cachePush(value) {
+ var data = this.data;
+ if (typeof value == 'string' || isObject(value)) {
+ data.set.add(value);
+ } else {
+ data.hash[value] = true;
+ }
+ }
+
+ module.exports = cachePush;
+
+
+/***/ },
+/* 165 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var arrayPush = __webpack_require__(166),
+ isArguments = __webpack_require__(124),
+ isArray = __webpack_require__(125),
+ isArrayLike = __webpack_require__(119),
+ isObjectLike = __webpack_require__(118);
+
+ /**
+ * The base implementation of `_.flatten` with added support for restricting
+ * flattening and specifying the start index.
+ *
+ * @private
+ * @param {Array} array The array to flatten.
+ * @param {boolean} [isDeep] Specify a deep flatten.
+ * @param {boolean} [isStrict] Restrict flattening to arrays-like objects.
+ * @param {Array} [result=[]] The initial result value.
+ * @returns {Array} Returns the new flattened array.
+ */
+ function baseFlatten(array, isDeep, isStrict, result) {
+ result || (result = []);
+
+ var index = -1,
+ length = array.length;
+
+ while (++index < length) {
+ var value = array[index];
+ if (isObjectLike(value) && isArrayLike(value) &&
+ (isStrict || isArray(value) || isArguments(value))) {
+ if (isDeep) {
+ // Recursively flatten arrays (susceptible to call stack limits).
+ baseFlatten(value, isDeep, isStrict, result);
+ } else {
+ arrayPush(result, value);
+ }
+ } else if (!isStrict) {
+ result[result.length] = value;
+ }
+ }
+ return result;
+ }
+
+ module.exports = baseFlatten;
+
+
+/***/ },
+/* 166 */
+/***/ function(module, exports) {
+
+ /**
+ * Appends the elements of `values` to `array`.
+ *
+ * @private
+ * @param {Array} array The array to modify.
+ * @param {Array} values The values to append.
+ * @returns {Array} Returns `array`.
+ */
+ function arrayPush(array, values) {
+ var index = -1,
+ length = values.length,
+ offset = array.length;
+
+ while (++index < length) {
+ array[offset + index] = values[index];
+ }
+ return array;
+ }
+
+ module.exports = arrayPush;
+
+
+/***/ },
+/* 167 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var toObject = __webpack_require__(112);
+
+ /**
+ * A specialized version of `_.pick` which picks `object` properties specified
+ * by `props`.
+ *
+ * @private
+ * @param {Object} object The source object.
+ * @param {string[]} props The property names to pick.
+ * @returns {Object} Returns the new object.
+ */
+ function pickByArray(object, props) {
+ object = toObject(object);
+
+ var index = -1,
+ length = props.length,
+ result = {};
+
+ while (++index < length) {
+ var key = props[index];
+ if (key in object) {
+ result[key] = object[key];
+ }
+ }
+ return result;
+ }
+
+ module.exports = pickByArray;
+
+
+/***/ },
+/* 168 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseForIn = __webpack_require__(169);
+
+ /**
+ * A specialized version of `_.pick` which picks `object` properties `predicate`
+ * returns truthy for.
+ *
+ * @private
+ * @param {Object} object The source object.
+ * @param {Function} predicate The function invoked per iteration.
+ * @returns {Object} Returns the new object.
+ */
+ function pickByCallback(object, predicate) {
+ var result = {};
+ baseForIn(object, function(value, key, object) {
+ if (predicate(value, key, object)) {
+ result[key] = value;
+ }
+ });
+ return result;
+ }
+
+ module.exports = pickByCallback;
+
+
+/***/ },
+/* 169 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseFor = __webpack_require__(110),
+ keysIn = __webpack_require__(127);
+
+ /**
+ * The base implementation of `_.forIn` without support for callback
+ * shorthands and `this` binding.
+ *
+ * @private
+ * @param {Object} object The object to iterate over.
+ * @param {Function} iteratee The function invoked per iteration.
+ * @returns {Object} Returns `object`.
+ */
+ function baseForIn(object, iteratee) {
+ return baseFor(object, iteratee, keysIn);
+ }
+
+ module.exports = baseForIn;
+
+
+/***/ },
+/* 170 */
+/***/ function(module, exports) {
+
+ /** Used as the `TypeError` message for "Functions" methods. */
+ var FUNC_ERROR_TEXT = 'Expected a function';
+
+ /* Native method references for those with the same name as other `lodash` methods. */
+ var nativeMax = Math.max;
+
+ /**
+ * Creates a function that invokes `func` with the `this` binding of the
+ * created function and arguments from `start` and beyond provided as an array.
+ *
+ * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).
+ *
+ * @static
+ * @memberOf _
+ * @category Function
+ * @param {Function} func The function to apply a rest parameter to.
+ * @param {number} [start=func.length-1] The start position of the rest parameter.
+ * @returns {Function} Returns the new function.
+ * @example
+ *
+ * var say = _.restParam(function(what, names) {
+ * return what + ' ' + _.initial(names).join(', ') +
+ * (_.size(names) > 1 ? ', & ' : '') + _.last(names);
+ * });
+ *
+ * say('hello', 'fred', 'barney', 'pebbles');
+ * // => 'hello fred, barney, & pebbles'
+ */
+ function restParam(func, start) {
+ if (typeof func != 'function') {
+ throw new TypeError(FUNC_ERROR_TEXT);
+ }
+ start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);
+ return function() {
+ var args = arguments,
+ index = -1,
+ length = nativeMax(args.length - start, 0),
+ rest = Array(length);
+
+ while (++index < length) {
+ rest[index] = args[start + index];
+ }
+ switch (start) {
+ case 0: return func.call(this, rest);
+ case 1: return func.call(this, args[0], rest);
+ case 2: return func.call(this, args[0], args[1], rest);
+ }
+ var otherArgs = Array(start + 1);
+ index = -1;
+ while (++index < start) {
+ otherArgs[index] = args[index];
+ }
+ otherArgs[start] = rest;
+ return func.apply(this, otherArgs);
+ };
+ }
+
+ module.exports = restParam;
+
+
+/***/ },
+/* 171 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _objectWithoutProperties = __webpack_require__(67)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _Dropdown = __webpack_require__(93);
+
+ var _Dropdown2 = _interopRequireDefault(_Dropdown);
+
+ var _NavDropdown = __webpack_require__(172);
+
+ var _NavDropdown2 = _interopRequireDefault(_NavDropdown);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var _utilsDeprecationWarning = __webpack_require__(16);
+
+ var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning);
+
+ var _lodashObjectOmit = __webpack_require__(156);
+
+ var _lodashObjectOmit2 = _interopRequireDefault(_lodashObjectOmit);
+
+ var DropdownButton = (function (_React$Component) {
+ _inherits(DropdownButton, _React$Component);
+
+ function DropdownButton(props) {
+ _classCallCheck(this, DropdownButton);
+
+ _React$Component.call(this, props);
+ }
+
+ DropdownButton.prototype.render = function render() {
+ var _props = this.props;
+ var title = _props.title;
+ var navItem = _props.navItem;
+
+ var props = _objectWithoutProperties(_props, ['title', 'navItem']);
+
+ var toggleProps = _lodashObjectOmit2['default'](props, _Dropdown2['default'].ControlledComponent.propTypes);
+
+ if (navItem) {
+ return _react2['default'].createElement(_NavDropdown2['default'], this.props);
+ }
+
+ return _react2['default'].createElement(
+ _Dropdown2['default'],
+ props,
+ _react2['default'].createElement(
+ _Dropdown2['default'].Toggle,
+ toggleProps,
+ title
+ ),
+ _react2['default'].createElement(
+ _Dropdown2['default'].Menu,
+ null,
+ this.props.children
+ )
+ );
+ };
+
+ return DropdownButton;
+ })(_react2['default'].Component);
+
+ DropdownButton.propTypes = _extends({
+ /**
+ * When used with the `title` prop, the noCaret option will not render a caret icon, in the toggle element.
+ */
+ noCaret: _react2['default'].PropTypes.bool,
+
+ /**
+ * Specify whether this Dropdown is part of a Nav component
+ *
+ * @type {bool}
+ * @deprecated Use the `NavDropdown` instead.
+ */
+ navItem: _utilsCustomPropTypes2['default'].all([_react2['default'].PropTypes.bool, function (props, propName, componentName) {
+ if (props.navItem) {
+ _utilsDeprecationWarning2['default']('navItem', 'NavDropdown component', 'https://github.com/react-bootstrap/react-bootstrap/issues/526');
+ }
+ }]),
+ title: _react2['default'].PropTypes.node.isRequired
+ }, _Dropdown2['default'].propTypes, _BootstrapMixin2['default'].propTypes);
+
+ DropdownButton.defaultProps = {
+ pullRight: false,
+ dropup: false,
+ navItem: false,
+ noCaret: false
+ };
+
+ exports['default'] = DropdownButton;
+ module.exports = exports['default'];
+
+/***/ },
+/* 172 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _objectWithoutProperties = __webpack_require__(67)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _Dropdown = __webpack_require__(93);
+
+ var _Dropdown2 = _interopRequireDefault(_Dropdown);
+
+ var NavDropdown = (function (_React$Component) {
+ _inherits(NavDropdown, _React$Component);
+
+ function NavDropdown() {
+ _classCallCheck(this, NavDropdown);
+
+ _React$Component.apply(this, arguments);
+ }
+
+ NavDropdown.prototype.render = function render() {
+ var _props = this.props;
+ var children = _props.children;
+ var title = _props.title;
+ var noCaret = _props.noCaret;
+
+ var props = _objectWithoutProperties(_props, ['children', 'title', 'noCaret']);
+
+ return _react2['default'].createElement(
+ _Dropdown2['default'],
+ _extends({}, props, { componentClass: 'li' }),
+ _react2['default'].createElement(
+ _Dropdown2['default'].Toggle,
+ {
+ useAnchor: true,
+ disabled: props.disabled,
+ noCaret: noCaret
+ },
+ title
+ ),
+ _react2['default'].createElement(
+ _Dropdown2['default'].Menu,
+ null,
+ children
+ )
+ );
+ };
+
+ return NavDropdown;
+ })(_react2['default'].Component);
+
+ NavDropdown.propTypes = _extends({
+ noCaret: _react2['default'].PropTypes.bool,
+ title: _react2['default'].PropTypes.node.isRequired
+ }, _Dropdown2['default'].propTypes);
+
+ exports['default'] = NavDropdown;
+ module.exports = exports['default'];
+
+/***/ },
+/* 173 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _objectWithoutProperties = __webpack_require__(67)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _Button = __webpack_require__(76);
+
+ var _Button2 = _interopRequireDefault(_Button);
+
+ var _Dropdown = __webpack_require__(93);
+
+ var _Dropdown2 = _interopRequireDefault(_Dropdown);
+
+ var _SplitToggle = __webpack_require__(174);
+
+ var _SplitToggle2 = _interopRequireDefault(_SplitToggle);
+
+ var SplitButton = (function (_React$Component) {
+ _inherits(SplitButton, _React$Component);
+
+ function SplitButton() {
+ _classCallCheck(this, SplitButton);
+
+ _React$Component.apply(this, arguments);
+ }
+
+ SplitButton.prototype.render = function render() {
+ var _props = this.props;
+ var children = _props.children;
+ var title = _props.title;
+ var onClick = _props.onClick;
+ var target = _props.target;
+ var href = _props.href;
+ var
+ // bsStyle is validated by 'Button' component
+ bsStyle = _props.bsStyle;
+
+ var props = _objectWithoutProperties(_props, ['children', 'title', 'onClick', 'target', 'href', 'bsStyle']);
+
+ var disabled = props.disabled;
+
+ var button = _react2['default'].createElement(
+ _Button2['default'],
+ {
+ onClick: onClick,
+ bsStyle: bsStyle,
+ disabled: disabled,
+ target: target,
+ href: href
+ },
+ title
+ );
+
+ return _react2['default'].createElement(
+ _Dropdown2['default'],
+ props,
+ button,
+ _react2['default'].createElement(_SplitToggle2['default'], {
+ 'aria-label': title,
+ bsStyle: bsStyle,
+ disabled: disabled
+ }),
+ _react2['default'].createElement(
+ _Dropdown2['default'].Menu,
+ null,
+ children
+ )
+ );
+ };
+
+ return SplitButton;
+ })(_react2['default'].Component);
+
+ SplitButton.propTypes = _extends({}, _Dropdown2['default'].propTypes, _BootstrapMixin2['default'].propTypes, {
+
+ /**
+ * @private
+ */
+ onClick: function onClick() {},
+ target: _react2['default'].PropTypes.string,
+ href: _react2['default'].PropTypes.string,
+ /**
+ * The content of the split button.
+ */
+ title: _react2['default'].PropTypes.node.isRequired
+ });
+
+ SplitButton.defaultProps = {
+ disabled: false,
+ dropup: false,
+ pullRight: false
+ };
+
+ SplitButton.Toggle = _SplitToggle2['default'];
+
+ exports['default'] = SplitButton;
+ module.exports = exports['default'];
+ // eslint-disable-line
+
+ //dropup: React.PropTypes.bool,
+
+/***/ },
+/* 174 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _DropdownToggle = __webpack_require__(99);
+
+ var _DropdownToggle2 = _interopRequireDefault(_DropdownToggle);
+
+ var SplitToggle = (function (_React$Component) {
+ _inherits(SplitToggle, _React$Component);
+
+ function SplitToggle() {
+ _classCallCheck(this, SplitToggle);
+
+ _React$Component.apply(this, arguments);
+ }
+
+ SplitToggle.prototype.render = function render() {
+ return _react2['default'].createElement(_DropdownToggle2['default'], _extends({}, this.props, {
+ useAnchor: false,
+ noCaret: false
+ }));
+ };
+
+ return SplitToggle;
+ })(_react2['default'].Component);
+
+ exports['default'] = SplitToggle;
+
+ SplitToggle.defaultProps = _DropdownToggle2['default'].defaultProps;
+ module.exports = exports['default'];
+
+/***/ },
+/* 175 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _utilsDomUtils = __webpack_require__(31);
+
+ var _utilsDomUtils2 = _interopRequireDefault(_utilsDomUtils);
+
+ var _utilsDeprecationWarning = __webpack_require__(16);
+
+ var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning);
+
+ // TODO: listen for onTransitionEnd to remove el
+ function getElementsAndSelf(root, classes) {
+ var els = root.querySelectorAll('.' + classes.join('.'));
+
+ els = [].map.call(els, function (e) {
+ return e;
+ });
+
+ for (var i = 0; i < classes.length; i++) {
+ if (!root.className.match(new RegExp('\\b' + classes[i] + '\\b'))) {
+ return els;
+ }
+ }
+ els.unshift(root);
+ return els;
+ }
+
+ exports['default'] = {
+ componentWillMount: function componentWillMount() {
+ _utilsDeprecationWarning2['default']('FadeMixin', 'Fade Component');
+ },
+
+ _fadeIn: function _fadeIn() {
+ var els = undefined;
+
+ if (this.isMounted()) {
+ els = getElementsAndSelf(_react2['default'].findDOMNode(this), ['fade']);
+
+ if (els.length) {
+ els.forEach(function (el) {
+ el.className += ' in';
+ });
+ }
+ }
+ },
+
+ _fadeOut: function _fadeOut() {
+ var els = getElementsAndSelf(this._fadeOutEl, ['fade', 'in']);
+
+ if (els.length) {
+ els.forEach(function (el) {
+ el.className = el.className.replace(/\bin\b/, '');
+ });
+ }
+
+ setTimeout(this._handleFadeOutEnd, 300);
+ },
+
+ _handleFadeOutEnd: function _handleFadeOutEnd() {
+ if (this._fadeOutEl && this._fadeOutEl.parentNode) {
+ this._fadeOutEl.parentNode.removeChild(this._fadeOutEl);
+ }
+ },
+
+ componentDidMount: function componentDidMount() {
+ if (document.querySelectorAll) {
+ // Firefox needs delay for transition to be triggered
+ setTimeout(this._fadeIn, 20);
+ }
+ },
+
+ componentWillUnmount: function componentWillUnmount() {
+ var els = getElementsAndSelf(_react2['default'].findDOMNode(this), ['fade']);
+ var container = this.props.container && _react2['default'].findDOMNode(this.props.container) || _utilsDomUtils2['default'].ownerDocument(this).body;
+
+ if (els.length) {
+ this._fadeOutEl = document.createElement('div');
+ container.appendChild(this._fadeOutEl);
+ this._fadeOutEl.appendChild(_react2['default'].findDOMNode(this).cloneNode(true));
+ // Firefox needs delay for transition to be triggered
+ setTimeout(this._fadeOut, 20);
+ }
+ }
+ };
+ module.exports = exports['default'];
+
+/***/ },
+/* 176 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var Grid = _react2['default'].createClass({
+ displayName: 'Grid',
+
+ propTypes: {
+ /**
+ * Turn any fixed-width grid layout into a full-width layout by this property.
+ *
+ * Adds `container-fluid` class.
+ */
+ fluid: _react2['default'].PropTypes.bool,
+ /**
+ * You can use a custom element for this component
+ */
+ componentClass: _utilsCustomPropTypes2['default'].elementType
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ componentClass: 'div',
+ fluid: false
+ };
+ },
+
+ render: function render() {
+ var ComponentClass = this.props.componentClass;
+ var className = this.props.fluid ? 'container-fluid' : 'container';
+
+ return _react2['default'].createElement(
+ ComponentClass,
+ _extends({}, this.props, {
+ className: _classnames2['default'](this.props.className, className) }),
+ this.props.children
+ );
+ }
+ });
+
+ exports['default'] = Grid;
+ module.exports = exports['default'];
+
+/***/ },
+/* 177 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ var _interopRequireWildcard = __webpack_require__(15)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _InputBase2 = __webpack_require__(79);
+
+ var _InputBase3 = _interopRequireDefault(_InputBase2);
+
+ var _FormControls = __webpack_require__(178);
+
+ var FormControls = _interopRequireWildcard(_FormControls);
+
+ var _utilsDeprecationWarning = __webpack_require__(16);
+
+ var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning);
+
+ var Input = (function (_InputBase) {
+ _inherits(Input, _InputBase);
+
+ function Input() {
+ _classCallCheck(this, Input);
+
+ _InputBase.apply(this, arguments);
+ }
+
+ Input.prototype.render = function render() {
+ if (this.props.type === 'static') {
+ _utilsDeprecationWarning2['default']('Input type=static', 'StaticText');
+ return _react2['default'].createElement(FormControls.Static, this.props);
+ }
+
+ return _InputBase.prototype.render.call(this);
+ };
+
+ return Input;
+ })(_InputBase3['default']);
+
+ Input.propTypes = {
+ type: _react2['default'].PropTypes.string
+ };
+
+ exports['default'] = Input;
+ module.exports = exports['default'];
+
+/***/ },
+/* 178 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _Static2 = __webpack_require__(179);
+
+ var _Static3 = _interopRequireDefault(_Static2);
+
+ exports.Static = _Static3['default'];
+
+/***/ },
+/* 179 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _InputBase2 = __webpack_require__(79);
+
+ var _InputBase3 = _interopRequireDefault(_InputBase2);
+
+ var _utilsChildrenValueInputValidation = __webpack_require__(52);
+
+ var _utilsChildrenValueInputValidation2 = _interopRequireDefault(_utilsChildrenValueInputValidation);
+
+ var Static = (function (_InputBase) {
+ _inherits(Static, _InputBase);
+
+ function Static() {
+ _classCallCheck(this, Static);
+
+ _InputBase.apply(this, arguments);
+ }
+
+ Static.prototype.getValue = function getValue() {
+ var _props = this.props;
+ var children = _props.children;
+ var value = _props.value;
+
+ return children ? children : value;
+ };
+
+ Static.prototype.renderInput = function renderInput() {
+ return _react2['default'].createElement(
+ 'p',
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'form-control-static'), ref: 'input', key: 'input' }),
+ this.getValue()
+ );
+ };
+
+ return Static;
+ })(_InputBase3['default']);
+
+ Static.propTypes = {
+ value: _utilsChildrenValueInputValidation2['default'],
+ children: _utilsChildrenValueInputValidation2['default']
+ };
+
+ exports['default'] = Static;
+ module.exports = exports['default'];
+
+/***/ },
+/* 180 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // https://www.npmjs.org/package/react-interpolate-component
+ // TODO: Drop this in favor of es6 string interpolation
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _utilsValidComponentChildren = __webpack_require__(55);
+
+ var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren);
+
+ var REGEXP = /\%\((.+?)\)s/;
+
+ var Interpolate = _react2['default'].createClass({
+ displayName: 'Interpolate',
+
+ propTypes: {
+ component: _react2['default'].PropTypes.node,
+ format: _react2['default'].PropTypes.string,
+ unsafe: _react2['default'].PropTypes.bool
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ component: 'span',
+ unsafe: false
+ };
+ },
+
+ render: function render() {
+ var format = _utilsValidComponentChildren2['default'].hasValidComponent(this.props.children) || typeof this.props.children === 'string' ? this.props.children : this.props.format;
+ var parent = this.props.component;
+ var unsafe = this.props.unsafe === true;
+ var props = _extends({}, this.props);
+
+ delete props.children;
+ delete props.format;
+ delete props.component;
+ delete props.unsafe;
+
+ if (unsafe) {
+ var content = format.split(REGEXP).reduce(function (memo, match, index) {
+ var html = undefined;
+
+ if (index % 2 === 0) {
+ html = match;
+ } else {
+ html = props[match];
+ delete props[match];
+ }
+
+ if (_react2['default'].isValidElement(html)) {
+ throw new Error('cannot interpolate a React component into unsafe text');
+ }
+
+ memo += html;
+
+ return memo;
+ }, '');
+
+ props.dangerouslySetInnerHTML = { __html: content };
+
+ return _react2['default'].createElement(parent, props);
+ } else {
+ var kids = format.split(REGEXP).reduce(function (memo, match, index) {
+ var child = undefined;
+
+ if (index % 2 === 0) {
+ if (match.length === 0) {
+ return memo;
+ }
+
+ child = match;
+ } else {
+ child = props[match];
+ delete props[match];
+ }
+
+ memo.push(child);
+
+ return memo;
+ }, []);
+
+ return _react2['default'].createElement(parent, props, kids);
+ }
+ }
+ });
+
+ exports['default'] = Interpolate;
+ module.exports = exports['default'];
+
+/***/ },
+/* 181 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var Jumbotron = _react2['default'].createClass({
+ displayName: 'Jumbotron',
+
+ propTypes: {
+ /**
+ * You can use a custom element for this component
+ */
+ componentClass: _utilsCustomPropTypes2['default'].elementType
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return { componentClass: 'div' };
+ },
+
+ render: function render() {
+ var ComponentClass = this.props.componentClass;
+
+ return _react2['default'].createElement(
+ ComponentClass,
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'jumbotron') }),
+ this.props.children
+ );
+ }
+ });
+
+ exports['default'] = Jumbotron;
+ module.exports = exports['default'];
+
+/***/ },
+/* 182 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var Label = _react2['default'].createClass({
+ displayName: 'Label',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ bsClass: 'label',
+ bsStyle: 'default'
+ };
+ },
+
+ render: function render() {
+ var classes = this.getBsClassSet();
+
+ return _react2['default'].createElement(
+ 'span',
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }),
+ this.props.children
+ );
+ }
+ });
+
+ exports['default'] = Label;
+ module.exports = exports['default'];
+
+/***/ },
+/* 183 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _utilsValidComponentChildren = __webpack_require__(55);
+
+ var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren);
+
+ var ListGroup = (function (_React$Component) {
+ _inherits(ListGroup, _React$Component);
+
+ function ListGroup() {
+ _classCallCheck(this, ListGroup);
+
+ _React$Component.apply(this, arguments);
+ }
+
+ ListGroup.prototype.render = function render() {
+ var _this = this;
+
+ var items = _utilsValidComponentChildren2['default'].map(this.props.children, function (item, index) {
+ return _react.cloneElement(item, { key: item.key ? item.key : index });
+ });
+
+ var shouldRenderDiv = false;
+
+ if (!this.props.children) {
+ shouldRenderDiv = true;
+ } else {
+ _react2['default'].Children.forEach(this.props.children, function (child) {
+ if (_this.isAnchorOrButton(child.props)) {
+ shouldRenderDiv = true;
+ }
+ });
+ }
+
+ if (shouldRenderDiv) {
+ return this.renderDiv(items);
+ } else {
+ return this.renderUL(items);
+ }
+ };
+
+ ListGroup.prototype.isAnchorOrButton = function isAnchorOrButton(props) {
+ return props.href || props.onClick;
+ };
+
+ ListGroup.prototype.renderUL = function renderUL(items) {
+ var listItems = _utilsValidComponentChildren2['default'].map(items, function (item, index) {
+ return _react.cloneElement(item, { listItem: true });
+ });
+
+ return _react2['default'].createElement(
+ 'ul',
+ _extends({}, this.props, {
+ className: _classnames2['default'](this.props.className, 'list-group') }),
+ listItems
+ );
+ };
+
+ ListGroup.prototype.renderDiv = function renderDiv(items) {
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, {
+ className: _classnames2['default'](this.props.className, 'list-group') }),
+ items
+ );
+ };
+
+ return ListGroup;
+ })(_react2['default'].Component);
+
+ ListGroup.propTypes = {
+ className: _react2['default'].PropTypes.string,
+ id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number])
+ };
+
+ exports['default'] = ListGroup;
+ module.exports = exports['default'];
+
+/***/ },
+/* 184 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var ListGroupItem = _react2['default'].createClass({
+ displayName: 'ListGroupItem',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ bsStyle: _react2['default'].PropTypes.oneOf(['danger', 'info', 'success', 'warning']),
+ className: _react2['default'].PropTypes.string,
+ active: _react2['default'].PropTypes.any,
+ disabled: _react2['default'].PropTypes.any,
+ header: _react2['default'].PropTypes.node,
+ listItem: _react2['default'].PropTypes.bool,
+ onClick: _react2['default'].PropTypes.func,
+ eventKey: _react2['default'].PropTypes.any,
+ href: _react2['default'].PropTypes.string,
+ target: _react2['default'].PropTypes.string
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ bsClass: 'list-group-item',
+ listItem: false
+ };
+ },
+
+ render: function render() {
+ var classes = this.getBsClassSet();
+
+ classes.active = this.props.active;
+ classes.disabled = this.props.disabled;
+
+ if (this.props.href) {
+ return this.renderAnchor(classes);
+ } else if (this.props.onClick) {
+ return this.renderButton(classes);
+ } else if (this.props.listItem) {
+ return this.renderLi(classes);
+ } else {
+ return this.renderSpan(classes);
+ }
+ },
+
+ renderLi: function renderLi(classes) {
+ return _react2['default'].createElement(
+ 'li',
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }),
+ this.props.header ? this.renderStructuredContent() : this.props.children
+ );
+ },
+
+ renderAnchor: function renderAnchor(classes) {
+ return _react2['default'].createElement(
+ 'a',
+ _extends({}, this.props, {
+ className: _classnames2['default'](this.props.className, classes)
+ }),
+ this.props.header ? this.renderStructuredContent() : this.props.children
+ );
+ },
+
+ renderButton: function renderButton(classes) {
+ return _react2['default'].createElement(
+ 'button',
+ _extends({
+ type: 'button'
+ }, this.props, {
+ className: _classnames2['default'](this.props.className, classes) }),
+ this.props.children
+ );
+ },
+
+ renderSpan: function renderSpan(classes) {
+ return _react2['default'].createElement(
+ 'span',
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }),
+ this.props.header ? this.renderStructuredContent() : this.props.children
+ );
+ },
+
+ renderStructuredContent: function renderStructuredContent() {
+ var header = undefined;
+ if (_react2['default'].isValidElement(this.props.header)) {
+ header = _react.cloneElement(this.props.header, {
+ key: 'header',
+ className: _classnames2['default'](this.props.header.props.className, 'list-group-item-heading')
+ });
+ } else {
+ header = _react2['default'].createElement(
+ 'h4',
+ { key: 'header', className: 'list-group-item-heading' },
+ this.props.header
+ );
+ }
+
+ var content = _react2['default'].createElement(
+ 'p',
+ { key: 'content', className: 'list-group-item-text' },
+ this.props.children
+ );
+
+ return [header, content];
+ }
+ });
+
+ exports['default'] = ListGroupItem;
+ module.exports = exports['default'];
+
+/***/ },
+/* 185 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var _SafeAnchor = __webpack_require__(100);
+
+ var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
+
+ var MenuItem = (function (_React$Component) {
+ _inherits(MenuItem, _React$Component);
+
+ function MenuItem(props) {
+ _classCallCheck(this, MenuItem);
+
+ _React$Component.call(this, props);
+
+ this.handleClick = this.handleClick.bind(this);
+ }
+
+ MenuItem.prototype.handleClick = function handleClick(event) {
+ if (!this.props.href || this.props.disabled) {
+ event.preventDefault();
+ }
+
+ if (this.props.disabled) {
+ return;
+ }
+
+ if (this.props.onSelect) {
+ this.props.onSelect(event, this.props.eventKey);
+ }
+ };
+
+ MenuItem.prototype.render = function render() {
+ if (this.props.divider) {
+ return _react2['default'].createElement('li', { role: 'separator', className: 'divider' });
+ }
+
+ if (this.props.header) {
+ return _react2['default'].createElement(
+ 'li',
+ { role: 'heading', className: 'dropdown-header' },
+ this.props.children
+ );
+ }
+
+ var classes = {
+ disabled: this.props.disabled
+ };
+
+ return _react2['default'].createElement(
+ 'li',
+ { role: 'presentation',
+ className: _classnames2['default'](this.props.className, classes),
+ style: this.props.style
+ },
+ _react2['default'].createElement(
+ _SafeAnchor2['default'],
+ {
+ role: 'menuitem',
+ tabIndex: '-1',
+ id: this.props.id,
+ target: this.props.target,
+ title: this.props.title,
+ href: this.props.href || '',
+ onKeyDown: this.props.onKeyDown,
+ onClick: this.handleClick },
+ this.props.children
+ )
+ );
+ };
+
+ return MenuItem;
+ })(_react2['default'].Component);
+
+ exports['default'] = MenuItem;
+
+ MenuItem.propTypes = {
+ disabled: _react2['default'].PropTypes.bool,
+ divider: _utilsCustomPropTypes2['default'].all([_react2['default'].PropTypes.bool, function (props, propName, componentName) {
+ if (props.divider && props.children) {
+ return new Error('Children will not be rendered for dividers');
+ }
+ }]),
+ eventKey: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.string]),
+ header: _react2['default'].PropTypes.bool,
+ href: _react2['default'].PropTypes.string,
+ target: _react2['default'].PropTypes.string,
+ title: _react2['default'].PropTypes.string,
+ onKeyDown: _react2['default'].PropTypes.func,
+ onSelect: _react2['default'].PropTypes.func,
+ id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number])
+ };
+
+ MenuItem.defaultProps = {
+ divider: false,
+ disabled: false,
+ header: false
+ };
+ module.exports = exports['default'];
+
+/***/ },
+/* 186 */
+/***/ function(module, exports, __webpack_require__) {
+
+ /*eslint-disable react/prop-types */
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _objectWithoutProperties = __webpack_require__(67)['default'];
+
+ var _Object$isFrozen = __webpack_require__(187)['default'];
+
+ var _Object$keys = __webpack_require__(1)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _utilsDomUtils = __webpack_require__(31);
+
+ var _utilsDomUtils2 = _interopRequireDefault(_utilsDomUtils);
+
+ var _domHelpersUtilScrollbarSize = __webpack_require__(190);
+
+ var _domHelpersUtilScrollbarSize2 = _interopRequireDefault(_domHelpersUtilScrollbarSize);
+
+ var _utilsEventListener = __webpack_require__(73);
+
+ var _utilsEventListener2 = _interopRequireDefault(_utilsEventListener);
+
+ var _utilsCreateChainedFunction = __webpack_require__(56);
+
+ var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var _reactOverlaysLibPortal = __webpack_require__(191);
+
+ var _reactOverlaysLibPortal2 = _interopRequireDefault(_reactOverlaysLibPortal);
+
+ var _Fade = __webpack_require__(195);
+
+ var _Fade2 = _interopRequireDefault(_Fade);
+
+ var _ModalDialog = __webpack_require__(196);
+
+ var _ModalDialog2 = _interopRequireDefault(_ModalDialog);
+
+ var _ModalBody = __webpack_require__(197);
+
+ var _ModalBody2 = _interopRequireDefault(_ModalBody);
+
+ var _ModalHeader = __webpack_require__(198);
+
+ var _ModalHeader2 = _interopRequireDefault(_ModalHeader);
+
+ var _ModalTitle = __webpack_require__(199);
+
+ var _ModalTitle2 = _interopRequireDefault(_ModalTitle);
+
+ var _ModalFooter = __webpack_require__(200);
+
+ var _ModalFooter2 = _interopRequireDefault(_ModalFooter);
+
+ /**
+ * Gets the correct clientHeight of the modal container
+ * when the body/window/document you need to use the docElement clientHeight
+ * @param {HTMLElement} container
+ * @param {ReactElement|HTMLElement} context
+ * @return {Number}
+ */
+ function containerClientHeight(container, context) {
+ var doc = _utilsDomUtils2['default'].ownerDocument(context);
+
+ return container === doc.body || container === doc.documentElement ? doc.documentElement.clientHeight : container.clientHeight;
+ }
+
+ function getContainer(context) {
+ return context.props.container && _react2['default'].findDOMNode(context.props.container) || _utilsDomUtils2['default'].ownerDocument(context).body;
+ }
+
+ var currentFocusListener = undefined;
+
+ /**
+ * Firefox doesn't have a focusin event so using capture is easiest way to get bubbling
+ * IE8 can't do addEventListener, but does have onfocusin, so we use that in ie8
+ *
+ * We only allow one Listener at a time to avoid stack overflows
+ *
+ * @param {ReactElement|HTMLElement} context
+ * @param {Function} handler
+ */
+ function onFocus(context, handler) {
+ var doc = _utilsDomUtils2['default'].ownerDocument(context);
+ var useFocusin = !doc.addEventListener;
+ var remove = undefined;
+
+ if (currentFocusListener) {
+ currentFocusListener.remove();
+ }
+
+ if (useFocusin) {
+ document.attachEvent('onfocusin', handler);
+ remove = function () {
+ return document.detachEvent('onfocusin', handler);
+ };
+ } else {
+ document.addEventListener('focus', handler, true);
+ remove = function () {
+ return document.removeEventListener('focus', handler, true);
+ };
+ }
+
+ currentFocusListener = { remove: remove };
+
+ return currentFocusListener;
+ }
+
+ var Modal = _react2['default'].createClass({
+ displayName: 'Modal',
+
+ propTypes: _extends({}, _reactOverlaysLibPortal2['default'].propTypes, _ModalDialog2['default'].propTypes, {
+
+ /**
+ * Include a backdrop component. Specify 'static' for a backdrop that doesn't trigger an "onHide" when clicked.
+ */
+ backdrop: _react2['default'].PropTypes.oneOf(['static', true, false]),
+
+ /**
+ * Close the modal when escape key is pressed
+ */
+ keyboard: _react2['default'].PropTypes.bool,
+
+ /**
+ * Open and close the Modal with a slide and fade animation.
+ */
+ animation: _react2['default'].PropTypes.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.
+ */
+ dialogComponent: _utilsCustomPropTypes2['default'].elementType,
+
+ /**
+ * 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: _react2['default'].PropTypes.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: _react2['default'].PropTypes.bool,
+
+ /**
+ * Hide this from automatic props documentation generation.
+ * @private
+ */
+ bsStyle: _react2['default'].PropTypes.string,
+
+ /**
+ * When `true` The modal will show itself.
+ */
+ show: _react2['default'].PropTypes.bool
+ }),
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ bsClass: 'modal',
+ dialogComponent: _ModalDialog2['default'],
+ show: false,
+ animation: true,
+ backdrop: true,
+ keyboard: true,
+ autoFocus: true,
+ enforceFocus: true
+ };
+ },
+
+ getInitialState: function getInitialState() {
+ return {
+ exited: !this.props.show
+ };
+ },
+
+ render: function render() {
+ var _props = this.props;
+ var children = _props.children;
+ var animation = _props.animation;
+ var backdrop = _props.backdrop;
+
+ var props = _objectWithoutProperties(_props, ['children', 'animation', 'backdrop']);
+
+ var onExit = props.onExit;
+ var onExiting = props.onExiting;
+ var onEnter = props.onEnter;
+ var onEntering = props.onEntering;
+ var onEntered = props.onEntered;
+
+ var show = !!props.show;
+ var Dialog = props.dialogComponent;
+
+ var mountModal = show || animation && !this.state.exited;
+ if (!mountModal) {
+ return null;
+ }
+
+ var modal = _react2['default'].createElement(
+ Dialog,
+ _extends({}, props, {
+ ref: this._setDialogRef,
+ className: _classnames2['default'](this.props.className, { 'in': show && !animation }),
+ onClick: backdrop === true ? this.handleBackdropClick : null }),
+ this.renderContent()
+ );
+
+ if (animation) {
+ modal = _react2['default'].createElement(
+ _Fade2['default'],
+ {
+ transitionAppear: true,
+ unmountOnExit: true,
+ 'in': show,
+ timeout: Modal.TRANSITION_DURATION,
+ onExit: onExit,
+ onExiting: onExiting,
+ onExited: this.handleHidden,
+ onEnter: onEnter,
+ onEntering: onEntering,
+ onEntered: onEntered },
+ modal
+ );
+ }
+
+ if (backdrop) {
+ modal = this.renderBackdrop(modal);
+ }
+
+ return _react2['default'].createElement(
+ _reactOverlaysLibPortal2['default'],
+ { container: props.container },
+ modal
+ );
+ },
+
+ renderContent: function renderContent() {
+ var _this = this;
+
+ return _react2['default'].Children.map(this.props.children, function (child) {
+ // TODO: use context in 0.14
+ if (child && child.type && child.type.__isModalHeader) {
+ return _react.cloneElement(child, {
+ onHide: _utilsCreateChainedFunction2['default'](_this.props.onHide, child.props.onHide)
+ });
+ }
+ return child;
+ });
+ },
+
+ renderBackdrop: function renderBackdrop(modal) {
+ var _props2 = this.props;
+ var animation = _props2.animation;
+ var bsClass = _props2.bsClass;
+
+ var duration = Modal.BACKDROP_TRANSITION_DURATION;
+
+ // Don't handle clicks for "static" backdrops
+ var onClick = this.props.backdrop === true ? this.handleBackdropClick : null;
+
+ var backdrop = _react2['default'].createElement('div', {
+ ref: 'backdrop',
+ className: _classnames2['default'](bsClass + '-backdrop', { 'in': this.props.show && !animation }),
+ onClick: onClick });
+
+ return _react2['default'].createElement(
+ 'div',
+ {
+ ref: 'modal' },
+ animation ? _react2['default'].createElement(
+ _Fade2['default'],
+ { transitionAppear: true, 'in': this.props.show, timeout: duration },
+ backdrop
+ ) : backdrop,
+ modal
+ );
+ },
+
+ _setDialogRef: function _setDialogRef(ref) {
+ // issue #1074
+ // due to: https://github.com/facebook/react/blob/v0.13.3/src/core/ReactCompositeComponent.js#L842
+ //
+ // when backdrop is `false` react hasn't had a chance to reassign the refs to a usable object, b/c there are no other
+ // "classic" refs on the component (or they haven't been processed yet)
+ // TODO: Remove the need for this in next breaking release
+ if (_Object$isFrozen(this.refs) && !_Object$keys(this.refs).length) {
+ this.refs = {};
+ }
+
+ this.refs.dialog = ref;
+
+ //maintains backwards compat with older component breakdown
+ if (!this.props.backdrop) {
+ this.refs.modal = ref;
+ }
+ },
+
+ componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
+ if (nextProps.show) {
+ this.setState({ exited: false });
+ } else if (!nextProps.animation) {
+ // Otherwise let handleHidden take care of marking exited.
+ this.setState({ exited: true });
+ }
+ },
+
+ componentWillUpdate: function componentWillUpdate(nextProps) {
+ if (nextProps.show) {
+ this.checkForFocus();
+ }
+ },
+
+ componentDidMount: function componentDidMount() {
+ if (this.props.show) {
+ this.onShow();
+ }
+ },
+
+ componentDidUpdate: function componentDidUpdate(prevProps) {
+ var animation = this.props.animation;
+
+ if (prevProps.show && !this.props.show && !animation) {
+ //otherwise handleHidden will call this.
+ this.onHide();
+ } else if (!prevProps.show && this.props.show) {
+ this.onShow();
+ }
+ },
+
+ componentWillUnmount: function componentWillUnmount() {
+ if (this.props.show) {
+ this.onHide();
+ }
+ },
+
+ onShow: function onShow() {
+ var _this2 = this;
+
+ var doc = _utilsDomUtils2['default'].ownerDocument(this);
+ var win = _utilsDomUtils2['default'].ownerWindow(this);
+
+ this._onDocumentKeyupListener = _utilsEventListener2['default'].listen(doc, 'keyup', this.handleDocumentKeyUp);
+
+ this._onWindowResizeListener = _utilsEventListener2['default'].listen(win, 'resize', this.handleWindowResize);
+
+ if (this.props.enforceFocus) {
+ this._onFocusinListener = onFocus(this, this.enforceFocus);
+ }
+
+ var container = getContainer(this);
+
+ container.className += container.className.length ? ' modal-open' : 'modal-open';
+
+ this._containerIsOverflowing = container.scrollHeight > containerClientHeight(container, this);
+
+ this._originalPadding = container.style.paddingRight;
+
+ if (this._containerIsOverflowing) {
+ container.style.paddingRight = parseInt(this._originalPadding || 0, 10) + _domHelpersUtilScrollbarSize2['default']() + 'px';
+ }
+
+ if (this.props.backdrop) {
+ this.iosClickHack();
+ }
+
+ this.setState(this._getStyles(), function () {
+ return _this2.focusModalContent();
+ });
+ },
+
+ onHide: function onHide() {
+ this._onDocumentKeyupListener.remove();
+ this._onWindowResizeListener.remove();
+
+ if (this._onFocusinListener) {
+ this._onFocusinListener.remove();
+ }
+
+ var container = getContainer(this);
+
+ container.style.paddingRight = this._originalPadding;
+
+ container.className = container.className.replace(/ ?modal-open/, '');
+
+ this.restoreLastFocus();
+ },
+
+ handleHidden: function handleHidden() {
+ this.setState({ exited: true });
+
+ this.onHide();
+
+ if (this.props.onExited) {
+ var _props3;
+
+ (_props3 = this.props).onExited.apply(_props3, arguments);
+ }
+ },
+
+ handleBackdropClick: function handleBackdropClick(e) {
+ if (e.target !== e.currentTarget) {
+ return;
+ }
+
+ this.props.onHide();
+ },
+
+ handleDocumentKeyUp: function handleDocumentKeyUp(e) {
+ if (this.props.keyboard && e.keyCode === 27) {
+ this.props.onHide();
+ }
+ },
+
+ handleWindowResize: function handleWindowResize() {
+ this.setState(this._getStyles());
+ },
+
+ checkForFocus: function checkForFocus() {
+ if (_utilsDomUtils2['default'].canUseDom) {
+ this.lastFocus = _utilsDomUtils2['default'].activeElement(document);
+ }
+ },
+
+ focusModalContent: function focusModalContent() {
+ var modalContent = _react2['default'].findDOMNode(this.refs.dialog);
+ var current = _utilsDomUtils2['default'].activeElement(_utilsDomUtils2['default'].ownerDocument(this));
+ var focusInModal = current && _utilsDomUtils2['default'].contains(modalContent, current);
+
+ if (modalContent && this.props.autoFocus && !focusInModal) {
+ this.lastFocus = current;
+ modalContent.focus();
+ }
+ },
+
+ restoreLastFocus: function restoreLastFocus() {
+ if (this.lastFocus && this.lastFocus.focus) {
+ this.lastFocus.focus();
+ this.lastFocus = null;
+ }
+ },
+
+ enforceFocus: function enforceFocus() {
+ if (!this.isMounted()) {
+ return;
+ }
+
+ var active = _utilsDomUtils2['default'].activeElement(_utilsDomUtils2['default'].ownerDocument(this));
+ var modal = _react2['default'].findDOMNode(this.refs.dialog);
+
+ if (modal && modal !== active && !_utilsDomUtils2['default'].contains(modal, active)) {
+ modal.focus();
+ }
+ },
+
+ iosClickHack: function iosClickHack() {
+ // IOS only allows click events to be delegated to the document on elements
+ // it considers 'clickable' - anchors, buttons, etc. We fake a click handler on the
+ // DOM nodes themselves. Remove if handled by React: https://github.com/facebook/react/issues/1169
+ _react2['default'].findDOMNode(this.refs.modal).onclick = function () {};
+ _react2['default'].findDOMNode(this.refs.backdrop).onclick = function () {};
+ },
+
+ _getStyles: function _getStyles() {
+ if (!_utilsDomUtils2['default'].canUseDom) {
+ return {};
+ }
+
+ var node = _react2['default'].findDOMNode(this.refs.modal);
+ var scrollHt = node.scrollHeight;
+ var container = getContainer(this);
+ var containerIsOverflowing = this._containerIsOverflowing;
+ var modalIsOverflowing = scrollHt > containerClientHeight(container, this);
+
+ return {
+ dialogStyles: {
+ paddingRight: containerIsOverflowing && !modalIsOverflowing ? _domHelpersUtilScrollbarSize2['default']() : void 0,
+ paddingLeft: !containerIsOverflowing && modalIsOverflowing ? _domHelpersUtilScrollbarSize2['default']() : void 0
+ }
+ };
+ }
+
+ });
+
+ 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'] = Modal;
+ module.exports = exports['default'];
+
+/***/ },
+/* 187 */
+/***/ function(module, exports, __webpack_require__) {
+
+ module.exports = { "default": __webpack_require__(188), __esModule: true };
+
+/***/ },
+/* 188 */
+/***/ function(module, exports, __webpack_require__) {
+
+ __webpack_require__(189);
+ module.exports = __webpack_require__(9).Object.isFrozen;
+
+/***/ },
+/* 189 */
+/***/ function(module, exports, __webpack_require__) {
+
+ // 19.1.2.12 Object.isFrozen(O)
+ var isObject = __webpack_require__(24);
+
+ __webpack_require__(6)('isFrozen', function($isFrozen){
+ return function isFrozen(it){
+ return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
+ };
+ });
+
+/***/ },
+/* 190 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var canUseDOM = __webpack_require__(33);
+
+ var size;
+
+ module.exports = function (recalc) {
+ if (!size || recalc) {
+ if (canUseDOM) {
+ 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;
+ };
+
+/***/ },
+/* 191 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _reactPropTypesLibMountable = __webpack_require__(192);
+
+ var _reactPropTypesLibMountable2 = _interopRequireDefault(_reactPropTypesLibMountable);
+
+ var _utilsOwnerDocument = __webpack_require__(106);
+
+ var _utilsOwnerDocument2 = _interopRequireDefault(_utilsOwnerDocument);
+
+ var _utilsGetContainer = __webpack_require__(194);
+
+ var _utilsGetContainer2 = _interopRequireDefault(_utilsGetContainer);
+
+ /**
+ * The `` component renders its children into a new "subtree" outside of current component hierarchy.
+ * You can think of it as a declarative `appendChild()`, or jQuery's `$.fn.appendTo()`.
+ * The children of `` component will be appended to the `container` specified.
+ */
+ var Portal = _react2['default'].createClass({
+
+ displayName: 'Portal',
+
+ propTypes: {
+ /**
+ * A Node, Component instance, or function that returns either. The `container` will have the Portal children
+ * appended to it.
+ */
+ container: _react2['default'].PropTypes.oneOfType([_reactPropTypesLibMountable2['default'], _react2['default'].PropTypes.func])
+ },
+
+ componentDidMount: function componentDidMount() {
+ this._renderOverlay();
+ },
+
+ componentDidUpdate: function componentDidUpdate() {
+ this._renderOverlay();
+ },
+
+ componentWillUnmount: function componentWillUnmount() {
+ this._unrenderOverlay();
+ this._unmountOverlayTarget();
+ },
+
+ _mountOverlayTarget: function _mountOverlayTarget() {
+ if (!this._overlayTarget) {
+ this._overlayTarget = document.createElement('div');
+ this.getContainerDOMNode().appendChild(this._overlayTarget);
+ }
+ },
+
+ _unmountOverlayTarget: function _unmountOverlayTarget() {
+ if (this._overlayTarget) {
+ this.getContainerDOMNode().removeChild(this._overlayTarget);
+ this._overlayTarget = null;
+ }
+ },
+
+ _renderOverlay: function _renderOverlay() {
+
+ var overlay = !this.props.children ? null : _react2['default'].Children.only(this.props.children);
+
+ // Save reference for future access.
+ if (overlay !== null) {
+ this._mountOverlayTarget();
+ this._overlayInstance = _react2['default'].render(overlay, this._overlayTarget);
+ } else {
+ // Unrender if the component is null for transitions to null
+ this._unrenderOverlay();
+ this._unmountOverlayTarget();
+ }
+ },
+
+ _unrenderOverlay: function _unrenderOverlay() {
+ if (this._overlayTarget) {
+ _react2['default'].unmountComponentAtNode(this._overlayTarget);
+ this._overlayInstance = null;
+ }
+ },
+
+ render: function render() {
+ return null;
+ },
+
+ getOverlayDOMNode: function getOverlayDOMNode() {
+ if (!this.isMounted()) {
+ throw new Error('getOverlayDOMNode(): A component must be mounted to have a DOM node.');
+ }
+
+ if (this._overlayInstance) {
+ if (this._overlayInstance.getWrappedDOMNode) {
+ return this._overlayInstance.getWrappedDOMNode();
+ } else {
+ return _react2['default'].findDOMNode(this._overlayInstance);
+ }
+ }
+
+ return null;
+ },
+
+ getContainerDOMNode: function getContainerDOMNode() {
+ return _utilsGetContainer2['default'](this.props.container, _utilsOwnerDocument2['default'](this).body);
+ }
+ });
+
+ exports['default'] = Portal;
+ module.exports = exports['default'];
+
+/***/ },
+/* 192 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+
+ var _common = __webpack_require__(193);
+
+ /**
+ * Checks whether a prop provides a DOM element
+ *
+ * The element can be provided in two forms:
+ * - Directly passed
+ * - Or passed an object that has a `render` method
+ *
+ * @param props
+ * @param propName
+ * @param componentName
+ * @returns {Error|undefined}
+ */
+
+ function validate(props, propName, componentName) {
+ if (typeof props[propName] !== 'object' || typeof props[propName].render !== 'function' && props[propName].nodeType !== 1) {
+ return new Error(_common.errMsg(props, propName, componentName, ', expected a DOM element or an object that has a `render` method'));
+ }
+ }
+
+ exports['default'] = _common.createChainableTypeChecker(validate);
+ module.exports = exports['default'];
+
+/***/ },
+/* 193 */
+/***/ function(module, exports) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+ exports.errMsg = errMsg;
+ exports.createChainableTypeChecker = createChainableTypeChecker;
+
+ function errMsg(props, propName, componentName, msgContinuation) {
+ return 'Invalid prop \'' + propName + '\' of value \'' + props[propName] + '\'' + (' supplied to \'' + componentName + '\'' + msgContinuation);
+ }
+
+ /**
+ * Create chain-able isRequired validator
+ *
+ * Largely copied directly from:
+ * https://github.com/facebook/react/blob/0.11-stable/src/core/ReactPropTypes.js#L94
+ */
+
+ function createChainableTypeChecker(validate) {
+ function checkType(isRequired, props, propName, componentName) {
+ componentName = componentName || '<>';
+ if (props[propName] == null) {
+ if (isRequired) {
+ return new Error('Required prop \'' + propName + '\' was not specified in \'' + componentName + '\'.');
+ }
+ } else {
+ return validate(props, propName, componentName);
+ }
+ }
+
+ var chainedCheckType = checkType.bind(null, false);
+ chainedCheckType.isRequired = checkType.bind(null, true);
+
+ return chainedCheckType;
+ }
+
+/***/ },
+/* 194 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+ exports['default'] = getContainer;
+
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ function getContainer(container, defaultContainer) {
+ container = typeof container === 'function' ? container() : container;
+ return _react2['default'].findDOMNode(container) || defaultContainer;
+ }
+
+ module.exports = exports['default'];
+
+/***/ },
+/* 195 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _reactOverlaysLibTransition = __webpack_require__(90);
+
+ var _reactOverlaysLibTransition2 = _interopRequireDefault(_reactOverlaysLibTransition);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var _utilsDeprecationWarning = __webpack_require__(16);
+
+ var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning);
+
+ var Fade = (function (_React$Component) {
+ _inherits(Fade, _React$Component);
+
+ function Fade() {
+ _classCallCheck(this, Fade);
+
+ _React$Component.apply(this, arguments);
+ }
+
+ // Explicitly copied from Transition for doc generation.
+ // TODO: Remove duplication once #977 is resolved.
+
+ Fade.prototype.render = function render() {
+ var timeout = this.props.timeout || this.props.duration;
+
+ return _react2['default'].createElement(
+ _reactOverlaysLibTransition2['default'],
+ _extends({}, this.props, {
+ timeout: timeout,
+ className: 'fade',
+ enteredClassName: 'in',
+ enteringClassName: 'in'
+ }),
+ this.props.children
+ );
+ };
+
+ return Fade;
+ })(_react2['default'].Component);
+
+ Fade.propTypes = {
+ /**
+ * Show the component; triggers the fade in or fade out animation
+ */
+ 'in': _react2['default'].PropTypes.bool,
+
+ /**
+ * Unmount the component (remove it from the DOM) when it is faded out
+ */
+ unmountOnExit: _react2['default'].PropTypes.bool,
+
+ /**
+ * Run the fade in animation when the component mounts, if it is initially
+ * shown
+ */
+ transitionAppear: _react2['default'].PropTypes.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: _react2['default'].PropTypes.number,
+
+ /**
+ * duration
+ * @private
+ */
+ duration: _utilsCustomPropTypes2['default'].all([_react2['default'].PropTypes.number, function (props) {
+ if (props.duration != null) {
+ _utilsDeprecationWarning2['default']('Fade `duration`', 'the `timeout` prop');
+ }
+ return null;
+ }]),
+
+ /**
+ * Callback fired before the component fades in
+ */
+ onEnter: _react2['default'].PropTypes.func,
+ /**
+ * Callback fired after the component starts to fade in
+ */
+ onEntering: _react2['default'].PropTypes.func,
+ /**
+ * Callback fired after the has component faded in
+ */
+ onEntered: _react2['default'].PropTypes.func,
+ /**
+ * Callback fired before the component fades out
+ */
+ onExit: _react2['default'].PropTypes.func,
+ /**
+ * Callback fired after the component starts to fade out
+ */
+ onExiting: _react2['default'].PropTypes.func,
+ /**
+ * Callback fired after the component has faded out
+ */
+ onExited: _react2['default'].PropTypes.func
+ };
+
+ Fade.defaultProps = {
+ 'in': false,
+ timeout: 300,
+ unmountOnExit: false,
+ transitionAppear: false
+ };
+
+ exports['default'] = Fade;
+ module.exports = exports['default'];
+
+/***/ },
+/* 196 */
+/***/ function(module, exports, __webpack_require__) {
+
+ /*eslint-disable react/prop-types */
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var ModalDialog = _react2['default'].createClass({
+ displayName: 'ModalDialog',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ /**
+ * A Callback fired when the header closeButton or non-static backdrop is clicked.
+ * @type {function}
+ * @required
+ */
+ onHide: _react2['default'].PropTypes.func.isRequired,
+
+ /**
+ * A css class to apply to the Modal dialog DOM node.
+ */
+ dialogClassName: _react2['default'].PropTypes.string
+
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ bsClass: 'modal',
+ closeButton: true
+ };
+ },
+
+ render: function render() {
+ var modalStyle = _extends({
+ display: 'block'
+ }, this.props.style);
+ var bsClass = this.props.bsClass;
+ var dialogClasses = this.getBsClassSet();
+
+ delete dialogClasses.modal;
+ dialogClasses[bsClass + '-dialog'] = true;
+
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, {
+ title: null,
+ tabIndex: '-1',
+ role: 'dialog',
+ style: modalStyle,
+ className: _classnames2['default'](this.props.className, bsClass) }),
+ _react2['default'].createElement(
+ 'div',
+ { className: _classnames2['default'](this.props.dialogClassName, dialogClasses) },
+ _react2['default'].createElement(
+ 'div',
+ { className: bsClass + '-content', role: 'document' },
+ this.props.children
+ )
+ )
+ );
+ }
+ });
+
+ exports['default'] = ModalDialog;
+ module.exports = exports['default'];
+
+/***/ },
+/* 197 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var ModalBody = (function (_React$Component) {
+ _inherits(ModalBody, _React$Component);
+
+ function ModalBody() {
+ _classCallCheck(this, ModalBody);
+
+ _React$Component.apply(this, arguments);
+ }
+
+ ModalBody.prototype.render = function render() {
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, {
+ className: _classnames2['default'](this.props.className, this.props.modalClassName) }),
+ this.props.children
+ );
+ };
+
+ return ModalBody;
+ })(_react2['default'].Component);
+
+ ModalBody.propTypes = {
+ /**
+ * A css class applied to the Component
+ */
+ modalClassName: _react2['default'].PropTypes.string
+ };
+
+ ModalBody.defaultProps = {
+ modalClassName: 'modal-body'
+ };
+
+ exports['default'] = ModalBody;
+ module.exports = exports['default'];
+
+/***/ },
+/* 198 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var ModalHeader = (function (_React$Component) {
+ _inherits(ModalHeader, _React$Component);
+
+ function ModalHeader() {
+ _classCallCheck(this, ModalHeader);
+
+ _React$Component.apply(this, arguments);
+ }
+
+ //used in liue of parent contexts right now to auto wire the close button
+
+ ModalHeader.prototype.render = function render() {
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, {
+ className: _classnames2['default'](this.props.className, this.props.modalClassName) }),
+ this.props.closeButton && _react2['default'].createElement(
+ 'button',
+ {
+ className: 'close',
+ onClick: this.props.onHide },
+ _react2['default'].createElement(
+ 'span',
+ { 'aria-hidden': 'true' },
+ '×'
+ )
+ ),
+ this.props.children
+ );
+ };
+
+ return ModalHeader;
+ })(_react2['default'].Component);
+
+ ModalHeader.__isModalHeader = true;
+
+ ModalHeader.propTypes = {
+ /**
+ * The 'aria-label' attribute is used to define a string that labels the current element.
+ * It is used for Assistive Technology when the label text is not visible on screen.
+ */
+ 'aria-label': _react2['default'].PropTypes.string,
+
+ /**
+ * A css class applied to the Component
+ */
+ modalClassName: _react2['default'].PropTypes.string,
+
+ /**
+ * Specify whether the Component should contain a close button
+ */
+ closeButton: _react2['default'].PropTypes.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: _react2['default'].PropTypes.func
+ };
+
+ ModalHeader.defaultProps = {
+ 'aria-label': 'Close',
+ modalClassName: 'modal-header',
+ closeButton: false
+ };
+
+ exports['default'] = ModalHeader;
+ module.exports = exports['default'];
+
+/***/ },
+/* 199 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var ModalTitle = (function (_React$Component) {
+ _inherits(ModalTitle, _React$Component);
+
+ function ModalTitle() {
+ _classCallCheck(this, ModalTitle);
+
+ _React$Component.apply(this, arguments);
+ }
+
+ ModalTitle.prototype.render = function render() {
+ return _react2['default'].createElement(
+ 'h4',
+ _extends({}, this.props, {
+ className: _classnames2['default'](this.props.className, this.props.modalClassName) }),
+ this.props.children
+ );
+ };
+
+ return ModalTitle;
+ })(_react2['default'].Component);
+
+ ModalTitle.propTypes = {
+ /**
+ * A css class applied to the Component
+ */
+ modalClassName: _react2['default'].PropTypes.string
+ };
+
+ ModalTitle.defaultProps = {
+ modalClassName: 'modal-title'
+ };
+
+ exports['default'] = ModalTitle;
+ module.exports = exports['default'];
+
+/***/ },
+/* 200 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var ModalFooter = (function (_React$Component) {
+ _inherits(ModalFooter, _React$Component);
+
+ function ModalFooter() {
+ _classCallCheck(this, ModalFooter);
+
+ _React$Component.apply(this, arguments);
+ }
+
+ ModalFooter.prototype.render = function render() {
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, {
+ className: _classnames2['default'](this.props.className, this.props.modalClassName) }),
+ this.props.children
+ );
+ };
+
+ return ModalFooter;
+ })(_react2['default'].Component);
+
+ ModalFooter.propTypes = {
+ /**
+ * A css class applied to the Component
+ */
+ modalClassName: _react2['default'].PropTypes.string
+ };
+
+ ModalFooter.defaultProps = {
+ modalClassName: 'modal-footer'
+ };
+
+ exports['default'] = ModalFooter;
+ module.exports = exports['default'];
+
+/***/ },
+/* 201 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _Collapse = __webpack_require__(89);
+
+ var _Collapse2 = _interopRequireDefault(_Collapse);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _utilsValidComponentChildren = __webpack_require__(55);
+
+ var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren);
+
+ var _utilsCreateChainedFunction = __webpack_require__(56);
+
+ var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction);
+
+ var Nav = _react2['default'].createClass({
+ displayName: 'Nav',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ activeHref: _react2['default'].PropTypes.string,
+ activeKey: _react2['default'].PropTypes.any,
+ bsStyle: _react2['default'].PropTypes.oneOf(['tabs', 'pills']),
+ stacked: _react2['default'].PropTypes.bool,
+ justified: _react2['default'].PropTypes.bool,
+ onSelect: _react2['default'].PropTypes.func,
+ collapsible: _react2['default'].PropTypes.bool,
+ /**
+ * CSS classes for the wrapper `nav` element
+ */
+ className: _react2['default'].PropTypes.string,
+ /**
+ * HTML id for the wrapper `nav` element
+ */
+ id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]),
+ /**
+ * CSS classes for the inner `ul` element
+ */
+ ulClassName: _react2['default'].PropTypes.string,
+ /**
+ * HTML id for the inner `ul` element
+ */
+ ulId: _react2['default'].PropTypes.string,
+ expanded: _react2['default'].PropTypes.bool,
+ navbar: _react2['default'].PropTypes.bool,
+ eventKey: _react2['default'].PropTypes.any,
+ pullRight: _react2['default'].PropTypes.bool,
+ right: _react2['default'].PropTypes.bool
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ bsClass: 'nav',
+ collapsible: false,
+ expanded: true,
+ justified: false,
+ navbar: false,
+ pullRight: false,
+ right: false,
+ stacked: false
+ };
+ },
+
+ render: function render() {
+ var classes = this.props.collapsible ? 'navbar-collapse' : null;
+
+ if (this.props.navbar && !this.props.collapsible) {
+ return this.renderUl();
+ }
+
+ return _react2['default'].createElement(
+ _Collapse2['default'],
+ { 'in': this.props.expanded },
+ _react2['default'].createElement(
+ 'nav',
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }),
+ this.renderUl()
+ )
+ );
+ },
+
+ renderUl: function renderUl() {
+ var classes = this.getBsClassSet();
+
+ classes['nav-stacked'] = this.props.stacked;
+ classes['nav-justified'] = this.props.justified;
+ classes['navbar-nav'] = this.props.navbar;
+ classes['pull-right'] = this.props.pullRight;
+ classes['navbar-right'] = this.props.right;
+
+ return _react2['default'].createElement(
+ 'ul',
+ _extends({}, this.props, {
+ role: this.props.bsStyle === 'tabs' ? 'tablist' : null,
+ className: _classnames2['default'](this.props.ulClassName, classes),
+ id: this.props.ulId,
+ ref: 'ul'
+ }),
+ _utilsValidComponentChildren2['default'].map(this.props.children, this.renderNavItem)
+ );
+ },
+
+ getChildActiveProp: function getChildActiveProp(child) {
+ if (child.props.active) {
+ return true;
+ }
+ if (this.props.activeKey != null) {
+ if (child.props.eventKey === this.props.activeKey) {
+ return true;
+ }
+ }
+ if (this.props.activeHref != null) {
+ if (child.props.href === this.props.activeHref) {
+ return true;
+ }
+ }
+
+ return child.props.active;
+ },
+
+ renderNavItem: function renderNavItem(child, index) {
+ return _react.cloneElement(child, {
+ role: this.props.bsStyle === 'tabs' ? 'tab' : null,
+ active: this.getChildActiveProp(child),
+ activeKey: this.props.activeKey,
+ activeHref: this.props.activeHref,
+ onSelect: _utilsCreateChainedFunction2['default'](child.props.onSelect, this.props.onSelect),
+ key: child.key ? child.key : index,
+ navItem: true
+ });
+ }
+ });
+
+ exports['default'] = Nav;
+ module.exports = exports['default'];
+
+/***/ },
+/* 202 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _utilsValidComponentChildren = __webpack_require__(55);
+
+ var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren);
+
+ var _utilsCreateChainedFunction = __webpack_require__(56);
+
+ var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var Navbar = _react2['default'].createClass({
+ displayName: 'Navbar',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ fixedTop: _react2['default'].PropTypes.bool,
+ fixedBottom: _react2['default'].PropTypes.bool,
+ staticTop: _react2['default'].PropTypes.bool,
+ inverse: _react2['default'].PropTypes.bool,
+ fluid: _react2['default'].PropTypes.bool,
+ role: _react2['default'].PropTypes.string,
+ /**
+ * You can use a custom element for this component
+ */
+ componentClass: _utilsCustomPropTypes2['default'].elementType,
+ brand: _react2['default'].PropTypes.node,
+ toggleButton: _react2['default'].PropTypes.node,
+ toggleNavKey: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]),
+ onToggle: _react2['default'].PropTypes.func,
+ navExpanded: _react2['default'].PropTypes.bool,
+ defaultNavExpanded: _react2['default'].PropTypes.bool
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ bsClass: 'navbar',
+ bsStyle: 'default',
+ role: 'navigation',
+ componentClass: 'nav',
+ fixedTop: false,
+ fixedBottom: false,
+ staticTop: false,
+ inverse: false,
+ fluid: false,
+ defaultNavExpanded: false
+ };
+ },
+
+ getInitialState: function getInitialState() {
+ return {
+ navExpanded: this.props.defaultNavExpanded
+ };
+ },
+
+ shouldComponentUpdate: function shouldComponentUpdate() {
+ // Defer any updates to this component during the `onSelect` handler.
+ return !this._isChanging;
+ },
+
+ handleToggle: function handleToggle() {
+ if (this.props.onToggle) {
+ this._isChanging = true;
+ this.props.onToggle();
+ this._isChanging = false;
+ }
+
+ this.setState({
+ navExpanded: !this.state.navExpanded
+ });
+ },
+
+ isNavExpanded: function isNavExpanded() {
+ return this.props.navExpanded != null ? this.props.navExpanded : this.state.navExpanded;
+ },
+
+ render: function render() {
+ var classes = this.getBsClassSet();
+ var ComponentClass = this.props.componentClass;
+
+ classes['navbar-fixed-top'] = this.props.fixedTop;
+ classes['navbar-fixed-bottom'] = this.props.fixedBottom;
+ classes['navbar-static-top'] = this.props.staticTop;
+ classes['navbar-inverse'] = this.props.inverse;
+
+ return _react2['default'].createElement(
+ ComponentClass,
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }),
+ _react2['default'].createElement(
+ 'div',
+ { className: this.props.fluid ? 'container-fluid' : 'container' },
+ this.props.brand || this.props.toggleButton || this.props.toggleNavKey != null ? this.renderHeader() : null,
+ _utilsValidComponentChildren2['default'].map(this.props.children, this.renderChild)
+ )
+ );
+ },
+
+ renderChild: function renderChild(child, index) {
+ return _react.cloneElement(child, {
+ navbar: true,
+ collapsible: this.props.toggleNavKey != null && this.props.toggleNavKey === child.props.eventKey,
+ expanded: this.props.toggleNavKey != null && this.props.toggleNavKey === child.props.eventKey && this.isNavExpanded(),
+ key: child.key ? child.key : index
+ });
+ },
+
+ renderHeader: function renderHeader() {
+ var brand = undefined;
+
+ if (this.props.brand) {
+ if (_react2['default'].isValidElement(this.props.brand)) {
+ brand = _react.cloneElement(this.props.brand, {
+ className: _classnames2['default'](this.props.brand.props.className, 'navbar-brand')
+ });
+ } else {
+ brand = _react2['default'].createElement(
+ 'span',
+ { className: 'navbar-brand' },
+ this.props.brand
+ );
+ }
+ }
+
+ return _react2['default'].createElement(
+ 'div',
+ { className: 'navbar-header' },
+ brand,
+ this.props.toggleButton || this.props.toggleNavKey != null ? this.renderToggleButton() : null
+ );
+ },
+
+ renderToggleButton: function renderToggleButton() {
+ var children = undefined;
+
+ if (_react2['default'].isValidElement(this.props.toggleButton)) {
+
+ return _react.cloneElement(this.props.toggleButton, {
+ className: _classnames2['default'](this.props.toggleButton.props.className, 'navbar-toggle'),
+ onClick: _utilsCreateChainedFunction2['default'](this.handleToggle, this.props.toggleButton.props.onClick)
+ });
+ }
+
+ children = this.props.toggleButton != null ? this.props.toggleButton : [_react2['default'].createElement(
+ 'span',
+ { className: 'sr-only', key: 0 },
+ 'Toggle navigation'
+ ), _react2['default'].createElement('span', { className: 'icon-bar', key: 1 }), _react2['default'].createElement('span', { className: 'icon-bar', key: 2 }), _react2['default'].createElement('span', { className: 'icon-bar', key: 3 })];
+
+ return _react2['default'].createElement(
+ 'button',
+ { className: 'navbar-toggle', type: 'button', onClick: this.handleToggle },
+ children
+ );
+ }
+ });
+
+ exports['default'] = Navbar;
+ module.exports = exports['default'];
+
+/***/ },
+/* 203 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _objectWithoutProperties = __webpack_require__(67)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _SafeAnchor = __webpack_require__(100);
+
+ var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
+
+ var NavItem = _react2['default'].createClass({
+ displayName: 'NavItem',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ linkId: _react2['default'].PropTypes.string,
+ onSelect: _react2['default'].PropTypes.func,
+ active: _react2['default'].PropTypes.bool,
+ disabled: _react2['default'].PropTypes.bool,
+ href: _react2['default'].PropTypes.string,
+ role: _react2['default'].PropTypes.string,
+ title: _react2['default'].PropTypes.node,
+ eventKey: _react2['default'].PropTypes.any,
+ target: _react2['default'].PropTypes.string,
+ 'aria-controls': _react2['default'].PropTypes.string
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ active: false,
+ disabled: false
+ };
+ },
+
+ render: function render() {
+ var _props = this.props;
+ var role = _props.role;
+ var linkId = _props.linkId;
+ var disabled = _props.disabled;
+ var active = _props.active;
+ var href = _props.href;
+ var title = _props.title;
+ var target = _props.target;
+ var children = _props.children;
+ var ariaControls = _props['aria-controls'];
+
+ var props = _objectWithoutProperties(_props, ['role', 'linkId', 'disabled', 'active', 'href', 'title', 'target', 'children', 'aria-controls']);
+
+ var classes = {
+ active: active,
+ disabled: disabled
+ };
+ var linkProps = {
+ role: role,
+ href: href,
+ title: title,
+ target: target,
+ id: linkId,
+ onClick: this.handleClick
+ };
+
+ if (!role && href === '#') {
+ linkProps.role = 'button';
+ }
+
+ return _react2['default'].createElement(
+ 'li',
+ _extends({}, props, { role: 'presentation', className: _classnames2['default'](props.className, classes) }),
+ _react2['default'].createElement(
+ _SafeAnchor2['default'],
+ _extends({}, linkProps, { 'aria-selected': active, 'aria-controls': ariaControls }),
+ children
+ )
+ );
+ },
+
+ handleClick: function handleClick(e) {
+ if (this.props.onSelect) {
+ e.preventDefault();
+
+ if (!this.props.disabled) {
+ this.props.onSelect(this.props.eventKey, this.props.href, this.props.target);
+ }
+ }
+ }
+ });
+
+ exports['default'] = NavItem;
+ module.exports = exports['default'];
+
+/***/ },
+/* 204 */
+/***/ function(module, exports, __webpack_require__) {
+
+ /* eslint react/prop-types: [2, {ignore: ["container", "containerPadding", "target", "placement", "children"] }] */
+ /* These properties are validated in 'Portal' and 'Position' components */
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _objectWithoutProperties = __webpack_require__(67)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _reactOverlaysLibOverlay = __webpack_require__(205);
+
+ var _reactOverlaysLibOverlay2 = _interopRequireDefault(_reactOverlaysLibOverlay);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var _Fade = __webpack_require__(195);
+
+ var _Fade2 = _interopRequireDefault(_Fade);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var Overlay = (function (_React$Component) {
+ _inherits(Overlay, _React$Component);
+
+ function Overlay() {
+ _classCallCheck(this, Overlay);
+
+ _React$Component.apply(this, arguments);
+ }
+
+ Overlay.prototype.render = function render() {
+ var _props = this.props;
+ var child = _props.children;
+ var transition = _props.animation;
+
+ var props = _objectWithoutProperties(_props, ['children', 'animation']);
+
+ if (transition === true) {
+ transition = _Fade2['default'];
+ }
+
+ if (!transition) {
+ child = _react.cloneElement(child, {
+ className: _classnames2['default']('in', child.props.className)
+ });
+ }
+
+ return _react2['default'].createElement(
+ _reactOverlaysLibOverlay2['default'],
+ _extends({}, props, {
+ transition: transition
+ }),
+ child
+ );
+ };
+
+ return Overlay;
+ })(_react2['default'].Component);
+
+ Overlay.propTypes = _extends({}, _reactOverlaysLibOverlay2['default'].propTypes, {
+
+ /**
+ * Set the visibility of the Overlay
+ */
+ show: _react2['default'].PropTypes.bool,
+ /**
+ * Specify whether the overlay should trigger onHide when the user clicks outside the overlay
+ */
+ rootClose: _react2['default'].PropTypes.bool,
+ /**
+ * A Callback fired by the Overlay when it wishes to be hidden.
+ */
+ onHide: _react2['default'].PropTypes.func,
+
+ /**
+ * Use animation
+ */
+ animation: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.bool, _utilsCustomPropTypes2['default'].elementType]),
+
+ /**
+ * Callback fired before the Overlay transitions in
+ */
+ onEnter: _react2['default'].PropTypes.func,
+
+ /**
+ * Callback fired as the Overlay begins to transition in
+ */
+ onEntering: _react2['default'].PropTypes.func,
+
+ /**
+ * Callback fired after the Overlay finishes transitioning in
+ */
+ onEntered: _react2['default'].PropTypes.func,
+
+ /**
+ * Callback fired right before the Overlay transitions out
+ */
+ onExit: _react2['default'].PropTypes.func,
+
+ /**
+ * Callback fired as the Overlay begins to transition out
+ */
+ onExiting: _react2['default'].PropTypes.func,
+
+ /**
+ * Callback fired after the Overlay finishes transitioning out
+ */
+ onExited: _react2['default'].PropTypes.func
+ });
+
+ Overlay.defaultProps = {
+ animation: _Fade2['default'],
+ rootClose: false,
+ show: false
+ };
+
+ exports['default'] = Overlay;
+ module.exports = exports['default'];
+
+/***/ },
+/* 205 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = 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; };
+
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+ function _objectWithoutProperties(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; }
+
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+ 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) subClass.__proto__ = superClass; }
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _Portal = __webpack_require__(191);
+
+ var _Portal2 = _interopRequireDefault(_Portal);
+
+ var _Position = __webpack_require__(206);
+
+ var _Position2 = _interopRequireDefault(_Position);
+
+ var _RootCloseWrapper = __webpack_require__(102);
+
+ var _RootCloseWrapper2 = _interopRequireDefault(_RootCloseWrapper);
+
+ var _reactPropTypesLibElementType = __webpack_require__(208);
+
+ var _reactPropTypesLibElementType2 = _interopRequireDefault(_reactPropTypesLibElementType);
+
+ /**
+ * Built on top of `` and ``, the overlay component is great for custom tooltip overlays.
+ */
+
+ var Overlay = (function (_React$Component) {
+ function Overlay(props, context) {
+ _classCallCheck(this, Overlay);
+
+ _React$Component.call(this, props, context);
+
+ this.state = { exited: !props.show };
+ this.onHiddenListener = this.handleHidden.bind(this);
+ }
+
+ _inherits(Overlay, _React$Component);
+
+ Overlay.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {
+ if (nextProps.show) {
+ this.setState({ exited: false });
+ } else if (!nextProps.transition) {
+ // Otherwise let handleHidden take care of marking exited.
+ this.setState({ exited: true });
+ }
+ };
+
+ Overlay.prototype.render = function render() {
+ var _props = this.props;
+ var container = _props.container;
+ var containerPadding = _props.containerPadding;
+ var target = _props.target;
+ var placement = _props.placement;
+ var rootClose = _props.rootClose;
+ var children = _props.children;
+ var Transition = _props.transition;
+
+ var props = _objectWithoutProperties(_props, ['container', 'containerPadding', 'target', 'placement', 'rootClose', 'children', 'transition']);
+
+ // Don't un-render the overlay while it's transitioning out.
+ var mountOverlay = props.show || Transition && !this.state.exited;
+ if (!mountOverlay) {
+ // Don't bother showing anything if we don't have to.
+ return null;
+ }
+
+ var child = children;
+
+ // Position is be inner-most because it adds inline styles into the child,
+ // which the other wrappers don't forward correctly.
+ child = _react2['default'].createElement(
+ _Position2['default'],
+ { container: container, containerPadding: containerPadding, target: target, placement: placement },
+ child
+ );
+
+ if (Transition) {
+ var onExit = props.onExit;
+ var onExiting = props.onExiting;
+ var onEnter = props.onEnter;
+ var onEntering = props.onEntering;
+ var onEntered = props.onEntered;
+
+ // This animates the child node by injecting props, so it must precede
+ // anything that adds a wrapping div.
+ child = _react2['default'].createElement(
+ Transition,
+ {
+ 'in': props.show,
+ transitionAppear: true,
+ onExit: onExit,
+ onExiting: onExiting,
+ onExited: this.onHiddenListener,
+ onEnter: onEnter,
+ onEntering: onEntering,
+ onEntered: onEntered
+ },
+ child
+ );
+ }
+
+ // This goes after everything else because it adds a wrapping div.
+ if (rootClose) {
+ child = _react2['default'].createElement(
+ _RootCloseWrapper2['default'],
+ { onRootClose: props.onHide },
+ child
+ );
+ }
+
+ return _react2['default'].createElement(
+ _Portal2['default'],
+ { container: container },
+ child
+ );
+ };
+
+ Overlay.prototype.handleHidden = function handleHidden() {
+ this.setState({ exited: true });
+
+ if (this.props.onExited) {
+ var _props2;
+
+ (_props2 = this.props).onExited.apply(_props2, arguments);
+ }
+ };
+
+ return Overlay;
+ })(_react2['default'].Component);
+
+ Overlay.propTypes = _extends({}, _Portal2['default'].propTypes, _Position2['default'].propTypes, {
+ /**
+ * Set the visibility of the Overlay
+ */
+ show: _react2['default'].PropTypes.bool,
+ /**
+ * Specify whether the overlay should trigger onHide when the user clicks outside the overlay
+ */
+ rootClose: _react2['default'].PropTypes.bool,
+ /**
+ * A Callback fired by the Overlay when it wishes to be hidden.
+ */
+ onHide: _react2['default'].PropTypes.func,
+
+ /**
+ * A `` component used to animate the overlay changes visibility.
+ */
+ transition: _reactPropTypesLibElementType2['default'],
+
+ /**
+ * Callback fired before the Overlay transitions in
+ */
+ onEnter: _react2['default'].PropTypes.func,
+
+ /**
+ * Callback fired as the Overlay begins to transition in
+ */
+ onEntering: _react2['default'].PropTypes.func,
+
+ /**
+ * Callback fired after the Overlay finishes transitioning in
+ */
+ onEntered: _react2['default'].PropTypes.func,
+
+ /**
+ * Callback fired right before the Overlay transitions out
+ */
+ onExit: _react2['default'].PropTypes.func,
+
+ /**
+ * Callback fired as the Overlay begins to transition out
+ */
+ onExiting: _react2['default'].PropTypes.func,
+
+ /**
+ * Callback fired after the Overlay finishes transitioning out
+ */
+ onExited: _react2['default'].PropTypes.func
+ });
+
+ exports['default'] = Overlay;
+ module.exports = exports['default'];
+
+/***/ },
+/* 206 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = 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; };
+
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+ function _objectWithoutProperties(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; }
+
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+ 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) subClass.__proto__ = superClass; }
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _utilsOwnerDocument = __webpack_require__(106);
+
+ var _utilsOwnerDocument2 = _interopRequireDefault(_utilsOwnerDocument);
+
+ var _utilsGetContainer = __webpack_require__(194);
+
+ var _utilsGetContainer2 = _interopRequireDefault(_utilsGetContainer);
+
+ var _utilsOverlayPositionUtils = __webpack_require__(207);
+
+ var _reactPropTypesLibMountable = __webpack_require__(192);
+
+ var _reactPropTypesLibMountable2 = _interopRequireDefault(_reactPropTypesLibMountable);
+
+ /**
+ * The Position component calulates the corrdinates for its child, to
+ * position it relative to a `target` component or node. Useful for creating callouts and tooltips,
+ * the Position component injects a `style` props with `left` and `top` values for positioning your component.
+ *
+ * It also injects "arrow" `left`, and `top` values for styling callout arrows for giving your components
+ * a sense of directionality.
+ */
+
+ var Position = (function (_React$Component) {
+ function Position(props, context) {
+ _classCallCheck(this, Position);
+
+ _React$Component.call(this, props, context);
+
+ this.state = {
+ positionLeft: null,
+ positionTop: null,
+ arrowOffsetLeft: null,
+ arrowOffsetTop: null
+ };
+
+ this._needsFlush = false;
+ this._lastTarget = null;
+ }
+
+ _inherits(Position, _React$Component);
+
+ Position.prototype.componentDidMount = function componentDidMount() {
+ this.updatePosition();
+ };
+
+ Position.prototype.componentWillReceiveProps = function componentWillReceiveProps() {
+ this._needsFlush = true;
+ };
+
+ Position.prototype.componentDidUpdate = function componentDidUpdate(prevProps) {
+ if (this._needsFlush) {
+ this._needsFlush = false;
+ this.updatePosition(prevProps.placement !== this.props.placement);
+ }
+ };
+
+ Position.prototype.componentWillUnmount = function componentWillUnmount() {
+ // Probably not necessary, but just in case holding a reference to the
+ // target causes problems somewhere.
+ this._lastTarget = null;
+ };
+
+ Position.prototype.render = function render() {
+ var _props = this.props;
+ var children = _props.children;
+ var className = _props.className;
+
+ var props = _objectWithoutProperties(_props, ['children', 'className']);
+
+ var _state = this.state;
+ var positionLeft = _state.positionLeft;
+ var positionTop = _state.positionTop;
+
+ var arrowPosition = _objectWithoutProperties(_state, ['positionLeft', 'positionTop']);
+
+ var child = _react2['default'].Children.only(children);
+ return _react.cloneElement(child, _extends({}, props, arrowPosition, {
+ //do we need to also forward positionLeft and positionTop if they are set to style?
+ positionLeft: positionLeft,
+ positionTop: positionTop,
+ className: _classnames2['default'](className, child.props.className),
+ style: _extends({}, child.props.style, {
+ left: positionLeft,
+ top: positionTop
+ })
+ }));
+ };
+
+ Position.prototype.getTargetSafe = function getTargetSafe() {
+ if (!this.props.target) {
+ return null;
+ }
+
+ var target = this.props.target(this.props);
+ if (!target) {
+ // This is so we can just use === check below on all falsy targets.
+ return null;
+ }
+
+ return target;
+ };
+
+ Position.prototype.updatePosition = function updatePosition(placementChanged) {
+ var target = this.getTargetSafe();
+
+ if (target === this._lastTarget && !placementChanged) {
+ return;
+ }
+
+ this._lastTarget = target;
+
+ if (!target) {
+ this.setState({
+ positionLeft: null,
+ positionTop: null,
+ arrowOffsetLeft: null,
+ arrowOffsetTop: null
+ });
+
+ return;
+ }
+
+ var overlay = _react2['default'].findDOMNode(this);
+ var container = _utilsGetContainer2['default'](this.props.container, _utilsOwnerDocument2['default'](this).body);
+
+ this.setState(_utilsOverlayPositionUtils.calcOverlayPosition(this.props.placement, overlay, target, container, this.props.containerPadding));
+ };
+
+ return Position;
+ })(_react2['default'].Component);
+
+ Position.propTypes = {
+ /**
+ * Function mapping props to a DOM node the component is positioned next to
+ */
+ target: _react2['default'].PropTypes.func,
+ /**
+ * "offsetParent" of the component
+ */
+ container: _reactPropTypesLibMountable2['default'],
+ /**
+ * Minimum spacing in pixels between container border and component border
+ */
+ containerPadding: _react2['default'].PropTypes.number,
+ /**
+ * How to position the component relative to the target
+ */
+ placement: _react2['default'].PropTypes.oneOf(['top', 'right', 'bottom', 'left'])
+ };
+
+ Position.displayName = 'Position';
+
+ Position.defaultProps = {
+ containerPadding: 0,
+ placement: 'right'
+ };
+
+ exports['default'] = Position;
+ module.exports = exports['default'];
+
+/***/ },
+/* 207 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+ var _ownerDocument = __webpack_require__(106);
+
+ var _ownerDocument2 = _interopRequireDefault(_ownerDocument);
+
+ var _domHelpersQueryOffset = __webpack_require__(39);
+
+ var _domHelpersQueryOffset2 = _interopRequireDefault(_domHelpersQueryOffset);
+
+ var _domHelpersQueryPosition = __webpack_require__(49);
+
+ var _domHelpersQueryPosition2 = _interopRequireDefault(_domHelpersQueryPosition);
+
+ var _domHelpersQueryScrollTop = __webpack_require__(50);
+
+ var _domHelpersQueryScrollTop2 = _interopRequireDefault(_domHelpersQueryScrollTop);
+
+ var utils = {
+
+ getContainerDimensions: function getContainerDimensions(containerNode) {
+ var width = undefined,
+ height = undefined,
+ scroll = undefined;
+
+ if (containerNode.tagName === 'BODY') {
+ width = window.innerWidth;
+ height = window.innerHeight;
+
+ scroll = _domHelpersQueryScrollTop2['default'](_ownerDocument2['default'](containerNode).documentElement) || _domHelpersQueryScrollTop2['default'](containerNode);
+ } else {
+ var _getOffset = _domHelpersQueryOffset2['default'](containerNode);
+
+ width = _getOffset.width;
+ height = _getOffset.height;
+
+ scroll = _domHelpersQueryScrollTop2['default'](containerNode);
+ }
+
+ return { width: width, height: height, scroll: scroll };
+ },
+
+ getPosition: function getPosition(target, container) {
+ var offset = container.tagName === 'BODY' ? _domHelpersQueryOffset2['default'](target) : _domHelpersQueryPosition2['default'](target, container);
+
+ return offset;
+ },
+
+ calcOverlayPosition: function calcOverlayPosition(placement, overlayNode, target, container, padding) {
+ var childOffset = utils.getPosition(target, container);
+
+ var _getOffset2 = _domHelpersQueryOffset2['default'](overlayNode);
+
+ var overlayHeight = _getOffset2.height;
+ var overlayWidth = _getOffset2.width;
+
+ var positionLeft = undefined,
+ positionTop = undefined,
+ arrowOffsetLeft = undefined,
+ arrowOffsetTop = undefined;
+
+ if (placement === 'left' || placement === 'right') {
+ positionTop = childOffset.top + (childOffset.height - overlayHeight) / 2;
+
+ if (placement === 'left') {
+ positionLeft = childOffset.left - overlayWidth;
+ } else {
+ positionLeft = childOffset.left + childOffset.width;
+ }
+
+ var topDelta = getTopDelta(positionTop, overlayHeight, container, padding);
+
+ positionTop += topDelta;
+ arrowOffsetTop = 50 * (1 - 2 * topDelta / overlayHeight) + '%';
+ arrowOffsetLeft = void 0;
+ } else if (placement === 'top' || placement === 'bottom') {
+ positionLeft = childOffset.left + (childOffset.width - overlayWidth) / 2;
+
+ if (placement === 'top') {
+ positionTop = childOffset.top - overlayHeight;
+ } else {
+ positionTop = childOffset.top + childOffset.height;
+ }
+
+ var leftDelta = getLeftDelta(positionLeft, overlayWidth, container, padding);
+ positionLeft += leftDelta;
+ arrowOffsetLeft = 50 * (1 - 2 * leftDelta / overlayWidth) + '%';
+ arrowOffsetTop = void 0;
+ } else {
+ throw new Error('calcOverlayPosition(): No such placement of "' + placement + '" found.');
+ }
+
+ return { positionLeft: positionLeft, positionTop: positionTop, arrowOffsetLeft: arrowOffsetLeft, arrowOffsetTop: arrowOffsetTop };
+ }
+ };
+
+ function getTopDelta(top, overlayHeight, container, padding) {
+ var containerDimensions = utils.getContainerDimensions(container);
+ var containerScroll = containerDimensions.scroll;
+ var containerHeight = containerDimensions.height;
+
+ var topEdgeOffset = top - padding - containerScroll;
+ var bottomEdgeOffset = top + padding - containerScroll + overlayHeight;
+
+ if (topEdgeOffset < 0) {
+ return -topEdgeOffset;
+ } else if (bottomEdgeOffset > containerHeight) {
+ return containerHeight - bottomEdgeOffset;
+ } else {
+ return 0;
+ }
+ }
+
+ function getLeftDelta(left, overlayWidth, container, padding) {
+ var containerDimensions = utils.getContainerDimensions(container);
+ var containerWidth = containerDimensions.width;
+
+ var leftEdgeOffset = left - padding;
+ var rightEdgeOffset = left + padding + overlayWidth;
+
+ if (leftEdgeOffset < 0) {
+ return -leftEdgeOffset;
+ } else if (rightEdgeOffset > containerWidth) {
+ return containerWidth - rightEdgeOffset;
+ } else {
+ return 0;
+ }
+ }
+ exports['default'] = utils;
+ module.exports = exports['default'];
+
+/***/ },
+/* 208 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ exports.__esModule = true;
+
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _common = __webpack_require__(193);
+
+ /**
+ * Checks whether a prop provides a type of element.
+ *
+ * The type of element can be provided in two forms:
+ * - tag name (string)
+ * - a return value of React.createClass(...)
+ *
+ * @param props
+ * @param propName
+ * @param componentName
+ * @returns {Error|undefined}
+ */
+
+ function validate(props, propName, componentName) {
+ var errBeginning = _common.errMsg(props, propName, componentName, '. Expected an Element `type`');
+
+ if (typeof props[propName] !== 'function') {
+ if (_react2['default'].isValidElement(props[propName])) {
+ return new Error(errBeginning + ', not an actual Element');
+ }
+
+ if (typeof props[propName] !== 'string') {
+ return new Error(errBeginning + ' such as a tag name or return value of React.createClass(...)');
+ }
+ }
+ }
+
+ exports['default'] = _common.createChainableTypeChecker(validate);
+ module.exports = exports['default'];
+
+/***/ },
+/* 209 */
+/***/ function(module, exports, __webpack_require__) {
+
+ /*eslint-disable react/prop-types */
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _Object$keys = __webpack_require__(1)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _utilsCreateChainedFunction = __webpack_require__(56);
+
+ var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction);
+
+ var _utilsCreateContextWrapper = __webpack_require__(210);
+
+ var _utilsCreateContextWrapper2 = _interopRequireDefault(_utilsCreateContextWrapper);
+
+ var _Overlay = __webpack_require__(204);
+
+ var _Overlay2 = _interopRequireDefault(_Overlay);
+
+ var _reactLibWarning = __webpack_require__(29);
+
+ var _reactLibWarning2 = _interopRequireDefault(_reactLibWarning);
+
+ var _lodashObjectPick = __webpack_require__(211);
+
+ var _lodashObjectPick2 = _interopRequireDefault(_lodashObjectPick);
+
+ /**
+ * Check if value one is inside or equal to the of value
+ *
+ * @param {string} one
+ * @param {string|array} of
+ * @returns {boolean}
+ */
+ function isOneOf(one, of) {
+ if (Array.isArray(of)) {
+ return of.indexOf(one) >= 0;
+ }
+ return one === of;
+ }
+
+ var OverlayTrigger = _react2['default'].createClass({
+ displayName: 'OverlayTrigger',
+
+ propTypes: _extends({}, _Overlay2['default'].propTypes, {
+
+ /**
+ * Specify which action or actions trigger Overlay visibility
+ */
+ trigger: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.oneOf(['click', 'hover', 'focus']), _react2['default'].PropTypes.arrayOf(_react2['default'].PropTypes.oneOf(['click', 'hover', 'focus']))]),
+
+ /**
+ * A millisecond delay amount to show and hide the Overlay once triggered
+ */
+ delay: _react2['default'].PropTypes.number,
+ /**
+ * A millisecond delay amount before showing the Overlay once triggered.
+ */
+ delayShow: _react2['default'].PropTypes.number,
+ /**
+ * A millisecond delay amount before hiding the Overlay once triggered.
+ */
+ delayHide: _react2['default'].PropTypes.number,
+
+ /**
+ * The initial visibility state of the Overlay, for more nuanced visibility controll consider
+ * using the Overlay component directly.
+ */
+ defaultOverlayShown: _react2['default'].PropTypes.bool,
+
+ /**
+ * An element or text to overlay next to the target.
+ */
+ overlay: _react2['default'].PropTypes.node.isRequired,
+
+ /**
+ * @private
+ */
+ onBlur: _react2['default'].PropTypes.func,
+ /**
+ * @private
+ */
+ onClick: _react2['default'].PropTypes.func,
+ /**
+ * @private
+ */
+ onFocus: _react2['default'].PropTypes.func,
+ /**
+ * @private
+ */
+ onMouseEnter: _react2['default'].PropTypes.func,
+ /**
+ * @private
+ */
+ onMouseLeave: _react2['default'].PropTypes.func,
+
+ //override specific overlay props
+ /**
+ * @private
+ */
+ target: function target() {},
+ /**
+ * @private
+ */
+ onHide: function onHide() {},
+ /**
+ * @private
+ */
+ show: function show() {}
+ }),
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ defaultOverlayShown: false,
+ trigger: ['hover', 'focus']
+ };
+ },
+
+ getInitialState: function getInitialState() {
+ return {
+ isOverlayShown: this.props.defaultOverlayShown
+ };
+ },
+
+ show: function show() {
+ this.setState({
+ isOverlayShown: true
+ });
+ },
+
+ hide: function hide() {
+ this.setState({
+ isOverlayShown: false
+ });
+ },
+
+ toggle: function toggle() {
+ if (this.state.isOverlayShown) {
+ this.hide();
+ } else {
+ this.show();
+ }
+ },
+
+ componentDidMount: function componentDidMount() {
+ this._mountNode = document.createElement('div');
+ _react2['default'].render(this._overlay, this._mountNode);
+ },
+
+ componentWillUnmount: function componentWillUnmount() {
+ _react2['default'].unmountComponentAtNode(this._mountNode);
+ this._mountNode = null;
+ clearTimeout(this._hoverDelay);
+ },
+
+ componentDidUpdate: function componentDidUpdate() {
+ if (this._mountNode) {
+ _react2['default'].render(this._overlay, this._mountNode);
+ }
+ },
+
+ getOverlayTarget: function getOverlayTarget() {
+ return _react2['default'].findDOMNode(this);
+ },
+
+ getOverlay: function getOverlay() {
+ var overlayProps = _extends({}, _lodashObjectPick2['default'](this.props, _Object$keys(_Overlay2['default'].propTypes)), {
+ show: this.state.isOverlayShown,
+ onHide: this.hide,
+ target: this.getOverlayTarget,
+ onExit: this.props.onExit,
+ onExiting: this.props.onExiting,
+ onExited: this.props.onExited,
+ onEnter: this.props.onEnter,
+ onEntering: this.props.onEntering,
+ onEntered: this.props.onEntered
+ });
+
+ var overlay = _react.cloneElement(this.props.overlay, {
+ placement: overlayProps.placement,
+ container: overlayProps.container
+ });
+
+ return _react2['default'].createElement(
+ _Overlay2['default'],
+ overlayProps,
+ overlay
+ );
+ },
+
+ render: function render() {
+ var trigger = _react2['default'].Children.only(this.props.children);
+
+ var props = {
+ 'aria-describedby': this.props.overlay.props.id
+ };
+
+ // create in render otherwise owner is lost...
+ this._overlay = this.getOverlay();
+
+ props.onClick = _utilsCreateChainedFunction2['default'](trigger.props.onClick, this.props.onClick);
+
+ if (isOneOf('click', this.props.trigger)) {
+ props.onClick = _utilsCreateChainedFunction2['default'](this.toggle, props.onClick);
+ }
+
+ if (isOneOf('hover', this.props.trigger)) {
+ _reactLibWarning2['default'](!(this.props.trigger === 'hover'), '[react-bootstrap] Specifying only the `"hover"` trigger limits the visibilty 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.');
+
+ props.onMouseOver = _utilsCreateChainedFunction2['default'](this.handleDelayedShow, this.props.onMouseOver);
+ props.onMouseOut = _utilsCreateChainedFunction2['default'](this.handleDelayedHide, this.props.onMouseOut);
+ }
+
+ if (isOneOf('focus', this.props.trigger)) {
+ props.onFocus = _utilsCreateChainedFunction2['default'](this.handleDelayedShow, this.props.onFocus);
+ props.onBlur = _utilsCreateChainedFunction2['default'](this.handleDelayedHide, this.props.onBlur);
+ }
+
+ return _react.cloneElement(trigger, props);
+ },
+
+ handleDelayedShow: function handleDelayedShow() {
+ var _this = this;
+
+ if (this._hoverDelay != null) {
+ clearTimeout(this._hoverDelay);
+ this._hoverDelay = null;
+ return;
+ }
+
+ var delay = this.props.delayShow != null ? this.props.delayShow : this.props.delay;
+
+ if (!delay) {
+ this.show();
+ return;
+ }
+
+ this._hoverDelay = setTimeout(function () {
+ _this._hoverDelay = null;
+ _this.show();
+ }, delay);
+ },
+
+ handleDelayedHide: function handleDelayedHide() {
+ var _this2 = this;
+
+ if (this._hoverDelay != null) {
+ clearTimeout(this._hoverDelay);
+ this._hoverDelay = null;
+ return;
+ }
+
+ var delay = this.props.delayHide != null ? this.props.delayHide : this.props.delay;
+
+ if (!delay) {
+ this.hide();
+ return;
+ }
+
+ this._hoverDelay = setTimeout(function () {
+ _this2._hoverDelay = null;
+ _this2.hide();
+ }, delay);
+ }
+
+ });
+
+ /**
+ * Creates a new OverlayTrigger class that forwards the relevant context
+ *
+ * This static method should only be called at the module level, instead of in
+ * e.g. a render() method, because it's expensive to create new classes.
+ *
+ * For example, you would want to have:
+ *
+ * > export default OverlayTrigger.withContext({
+ * > myContextKey: React.PropTypes.object
+ * > });
+ *
+ * and import this when needed.
+ */
+ OverlayTrigger.withContext = _utilsCreateContextWrapper2['default'](OverlayTrigger, 'overlay');
+
+ exports['default'] = OverlayTrigger;
+ module.exports = exports['default'];
+
+/***/ },
+/* 210 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _inherits = __webpack_require__(17)['default'];
+
+ var _classCallCheck = __webpack_require__(28)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _objectWithoutProperties = __webpack_require__(67)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+ exports['default'] = createContextWrapper;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ /**
+ * Creates new trigger class that injects context into overlay.
+ */
+
+ function createContextWrapper(Trigger, propName) {
+ return function (contextTypes) {
+ var ContextWrapper = (function (_React$Component) {
+ _inherits(ContextWrapper, _React$Component);
+
+ function ContextWrapper() {
+ _classCallCheck(this, ContextWrapper);
+
+ _React$Component.apply(this, arguments);
+ }
+
+ ContextWrapper.prototype.getChildContext = function getChildContext() {
+ return this.props.context;
+ };
+
+ ContextWrapper.prototype.render = function render() {
+ // Strip injected props from below.
+ var _props = this.props;
+ var wrapped = _props.wrapped;
+ var context = _props.context;
+
+ var props = _objectWithoutProperties(_props, ['wrapped', 'context']);
+
+ return _react2['default'].cloneElement(wrapped, props);
+ };
+
+ return ContextWrapper;
+ })(_react2['default'].Component);
+
+ ContextWrapper.childContextTypes = contextTypes;
+
+ var TriggerWithContext = (function () {
+ function TriggerWithContext() {
+ _classCallCheck(this, TriggerWithContext);
+ }
+
+ TriggerWithContext.prototype.render = function render() {
+ var props = _extends({}, this.props);
+ props[propName] = this.getWrappedOverlay();
+
+ return _react2['default'].createElement(
+ Trigger,
+ props,
+ this.props.children
+ );
+ };
+
+ TriggerWithContext.prototype.getWrappedOverlay = function getWrappedOverlay() {
+ return _react2['default'].createElement(ContextWrapper, {
+ context: this.context,
+ wrapped: this.props[propName]
+ });
+ };
+
+ return TriggerWithContext;
+ })();
+
+ TriggerWithContext.contextTypes = contextTypes;
+
+ return TriggerWithContext;
+ };
+ }
+
+ module.exports = exports['default'];
+
+/***/ },
+/* 211 */
+/***/ function(module, exports, __webpack_require__) {
+
+ var baseFlatten = __webpack_require__(165),
+ bindCallback = __webpack_require__(150),
+ pickByArray = __webpack_require__(167),
+ pickByCallback = __webpack_require__(168),
+ restParam = __webpack_require__(170);
+
+ /**
+ * Creates an object composed of the picked `object` properties. Property
+ * names may be specified as individual arguments or as arrays of property
+ * names. If `predicate` is provided it's invoked for each property of `object`
+ * picking the properties `predicate` returns truthy for. The predicate is
+ * bound to `thisArg` and invoked with three arguments: (value, key, object).
+ *
+ * @static
+ * @memberOf _
+ * @category Object
+ * @param {Object} object The source object.
+ * @param {Function|...(string|string[])} [predicate] The function invoked per
+ * iteration or property names to pick, specified as individual property
+ * names or arrays of property names.
+ * @param {*} [thisArg] The `this` binding of `predicate`.
+ * @returns {Object} Returns the new object.
+ * @example
+ *
+ * var object = { 'user': 'fred', 'age': 40 };
+ *
+ * _.pick(object, 'user');
+ * // => { 'user': 'fred' }
+ *
+ * _.pick(object, _.isString);
+ * // => { 'user': 'fred' }
+ */
+ var pick = restParam(function(object, props) {
+ if (object == null) {
+ return {};
+ }
+ return typeof props[0] == 'function'
+ ? pickByCallback(object, bindCallback(props[0], props[1], 3))
+ : pickByArray(object, baseFlatten(props));
+ });
+
+ module.exports = pick;
+
+
+/***/ },
+/* 212 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var PageHeader = _react2['default'].createClass({
+ displayName: 'PageHeader',
+
+ render: function render() {
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'page-header') }),
+ _react2['default'].createElement(
+ 'h1',
+ null,
+ this.props.children
+ )
+ );
+ }
+ });
+
+ exports['default'] = PageHeader;
+ module.exports = exports['default'];
+
+/***/ },
+/* 213 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _SafeAnchor = __webpack_require__(100);
+
+ var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
+
+ var PageItem = _react2['default'].createClass({
+ displayName: 'PageItem',
+
+ propTypes: {
+ href: _react2['default'].PropTypes.string,
+ target: _react2['default'].PropTypes.string,
+ title: _react2['default'].PropTypes.string,
+ disabled: _react2['default'].PropTypes.bool,
+ previous: _react2['default'].PropTypes.bool,
+ next: _react2['default'].PropTypes.bool,
+ onSelect: _react2['default'].PropTypes.func,
+ eventKey: _react2['default'].PropTypes.any
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ disabled: false,
+ previous: false,
+ next: false
+ };
+ },
+
+ render: function render() {
+ var classes = {
+ 'disabled': this.props.disabled,
+ 'previous': this.props.previous,
+ 'next': this.props.next
+ };
+
+ return _react2['default'].createElement(
+ 'li',
+ _extends({}, this.props, {
+ className: _classnames2['default'](this.props.className, classes) }),
+ _react2['default'].createElement(
+ _SafeAnchor2['default'],
+ {
+ href: this.props.href,
+ title: this.props.title,
+ target: this.props.target,
+ onClick: this.handleSelect },
+ this.props.children
+ )
+ );
+ },
+
+ handleSelect: function handleSelect(e) {
+ if (this.props.onSelect || this.props.disabled) {
+ e.preventDefault();
+
+ if (!this.props.disabled) {
+ this.props.onSelect(this.props.eventKey, this.props.href, this.props.target);
+ }
+ }
+ }
+ });
+
+ exports['default'] = PageItem;
+ module.exports = exports['default'];
+
+/***/ },
+/* 214 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _utilsValidComponentChildren = __webpack_require__(55);
+
+ var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren);
+
+ var _utilsCreateChainedFunction = __webpack_require__(56);
+
+ var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction);
+
+ var Pager = _react2['default'].createClass({
+ displayName: 'Pager',
+
+ propTypes: {
+ onSelect: _react2['default'].PropTypes.func
+ },
+
+ render: function render() {
+ return _react2['default'].createElement(
+ 'ul',
+ _extends({}, this.props, {
+ className: _classnames2['default'](this.props.className, 'pager') }),
+ _utilsValidComponentChildren2['default'].map(this.props.children, this.renderPageItem)
+ );
+ },
+
+ renderPageItem: function renderPageItem(child, index) {
+ return _react.cloneElement(child, {
+ onSelect: _utilsCreateChainedFunction2['default'](child.props.onSelect, this.props.onSelect),
+ key: child.key ? child.key : index
+ });
+ }
+ });
+
+ exports['default'] = Pager;
+ module.exports = exports['default'];
+
+/***/ },
+/* 215 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _PaginationButton = __webpack_require__(216);
+
+ var _PaginationButton2 = _interopRequireDefault(_PaginationButton);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var _SafeAnchor = __webpack_require__(100);
+
+ var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
+
+ var Pagination = _react2['default'].createClass({
+ displayName: 'Pagination',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ activePage: _react2['default'].PropTypes.number,
+ items: _react2['default'].PropTypes.number,
+ maxButtons: _react2['default'].PropTypes.number,
+ ellipsis: _react2['default'].PropTypes.bool,
+ first: _react2['default'].PropTypes.bool,
+ last: _react2['default'].PropTypes.bool,
+ prev: _react2['default'].PropTypes.bool,
+ next: _react2['default'].PropTypes.bool,
+ onSelect: _react2['default'].PropTypes.func,
+ /**
+ * You can use a custom element for the buttons
+ */
+ buttonComponentClass: _utilsCustomPropTypes2['default'].elementType
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ activePage: 1,
+ items: 1,
+ maxButtons: 0,
+ first: false,
+ last: false,
+ prev: false,
+ next: false,
+ ellipsis: true,
+ buttonComponentClass: _SafeAnchor2['default'],
+ bsClass: 'pagination'
+ };
+ },
+
+ renderPageButtons: function renderPageButtons() {
+ var pageButtons = [];
+ var startPage = undefined,
+ endPage = undefined,
+ hasHiddenPagesAfter = undefined;
+ var _props = this.props;
+ var maxButtons = _props.maxButtons;
+ var activePage = _props.activePage;
+ var items = _props.items;
+ var onSelect = _props.onSelect;
+ var ellipsis = _props.ellipsis;
+ var buttonComponentClass = _props.buttonComponentClass;
+
+ if (maxButtons) {
+ var hiddenPagesBefore = activePage - parseInt(maxButtons / 2, 10);
+ startPage = hiddenPagesBefore > 1 ? hiddenPagesBefore : 1;
+ hasHiddenPagesAfter = startPage + maxButtons <= items;
+
+ if (!hasHiddenPagesAfter) {
+ endPage = items;
+ startPage = items - maxButtons + 1;
+ if (startPage < 1) {
+ startPage = 1;
+ }
+ } else {
+ endPage = startPage + maxButtons - 1;
+ }
+ } else {
+ startPage = 1;
+ endPage = items;
+ }
+
+ for (var pagenumber = startPage; pagenumber <= endPage; pagenumber++) {
+ pageButtons.push(_react2['default'].createElement(
+ _PaginationButton2['default'],
+ {
+ key: pagenumber,
+ eventKey: pagenumber,
+ active: pagenumber === activePage,
+ onSelect: onSelect,
+ buttonComponentClass: buttonComponentClass },
+ pagenumber
+ ));
+ }
+
+ if (maxButtons && hasHiddenPagesAfter && ellipsis) {
+ pageButtons.push(_react2['default'].createElement(
+ _PaginationButton2['default'],
+ {
+ key: 'ellipsis',
+ disabled: true,
+ buttonComponentClass: buttonComponentClass },
+ _react2['default'].createElement(
+ 'span',
+ { 'aria-label': 'More' },
+ '...'
+ )
+ ));
+ }
+
+ return pageButtons;
+ },
+
+ renderPrev: function renderPrev() {
+ if (!this.props.prev) {
+ return null;
+ }
+
+ return _react2['default'].createElement(
+ _PaginationButton2['default'],
+ {
+ key: 'prev',
+ eventKey: this.props.activePage - 1,
+ disabled: this.props.activePage === 1,
+ onSelect: this.props.onSelect,
+ buttonComponentClass: this.props.buttonComponentClass },
+ _react2['default'].createElement(
+ 'span',
+ { 'aria-label': 'Previous' },
+ '‹'
+ )
+ );
+ },
+
+ renderNext: function renderNext() {
+ if (!this.props.next) {
+ return null;
+ }
+
+ return _react2['default'].createElement(
+ _PaginationButton2['default'],
+ {
+ key: 'next',
+ eventKey: this.props.activePage + 1,
+ disabled: this.props.activePage >= this.props.items,
+ onSelect: this.props.onSelect,
+ buttonComponentClass: this.props.buttonComponentClass },
+ _react2['default'].createElement(
+ 'span',
+ { 'aria-label': 'Next' },
+ '›'
+ )
+ );
+ },
+
+ renderFirst: function renderFirst() {
+ if (!this.props.first) {
+ return null;
+ }
+
+ return _react2['default'].createElement(
+ _PaginationButton2['default'],
+ {
+ key: 'first',
+ eventKey: 1,
+ disabled: this.props.activePage === 1,
+ onSelect: this.props.onSelect,
+ buttonComponentClass: this.props.buttonComponentClass },
+ _react2['default'].createElement(
+ 'span',
+ { 'aria-label': 'First' },
+ '«'
+ )
+ );
+ },
+
+ renderLast: function renderLast() {
+ if (!this.props.last) {
+ return null;
+ }
+
+ return _react2['default'].createElement(
+ _PaginationButton2['default'],
+ {
+ key: 'last',
+ eventKey: this.props.items,
+ disabled: this.props.activePage >= this.props.items,
+ onSelect: this.props.onSelect,
+ buttonComponentClass: this.props.buttonComponentClass },
+ _react2['default'].createElement(
+ 'span',
+ { 'aria-label': 'Last' },
+ '»'
+ )
+ );
+ },
+
+ render: function render() {
+ return _react2['default'].createElement(
+ 'ul',
+ _extends({}, this.props, {
+ className: _classnames2['default'](this.props.className, this.getBsClassSet()) }),
+ this.renderFirst(),
+ this.renderPrev(),
+ this.renderPageButtons(),
+ this.renderNext(),
+ this.renderLast()
+ );
+ }
+ });
+
+ exports['default'] = Pagination;
+ module.exports = exports['default'];
+
+/***/ },
+/* 216 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _objectWithoutProperties = __webpack_require__(67)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _utilsCreateSelectedEvent = __webpack_require__(217);
+
+ var _utilsCreateSelectedEvent2 = _interopRequireDefault(_utilsCreateSelectedEvent);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var PaginationButton = _react2['default'].createClass({
+ displayName: 'PaginationButton',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ className: _react2['default'].PropTypes.string,
+ eventKey: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]),
+ onSelect: _react2['default'].PropTypes.func,
+ disabled: _react2['default'].PropTypes.bool,
+ active: _react2['default'].PropTypes.bool,
+ /**
+ * You can use a custom element for this component
+ */
+ buttonComponentClass: _utilsCustomPropTypes2['default'].elementType
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ active: false,
+ disabled: false
+ };
+ },
+
+ handleClick: function handleClick(event) {
+ if (this.props.disabled) {
+ return;
+ }
+
+ if (this.props.onSelect) {
+ var selectedEvent = _utilsCreateSelectedEvent2['default'](this.props.eventKey);
+ this.props.onSelect(event, selectedEvent);
+ }
+ },
+
+ render: function render() {
+ var classes = _extends({
+ active: this.props.active,
+ disabled: this.props.disabled
+ }, this.getBsClassSet());
+
+ var _props = this.props;
+ var className = _props.className;
+
+ var anchorProps = _objectWithoutProperties(_props, ['className']);
+
+ var ButtonComponentClass = this.props.buttonComponentClass;
+
+ return _react2['default'].createElement(
+ 'li',
+ { className: _classnames2['default'](className, classes) },
+ _react2['default'].createElement(ButtonComponentClass, _extends({}, anchorProps, {
+ onClick: this.handleClick }))
+ );
+ }
+ });
+
+ exports['default'] = PaginationButton;
+ module.exports = exports['default'];
+
+/***/ },
+/* 217 */
+/***/ function(module, exports) {
+
+ "use strict";
+
+ exports.__esModule = true;
+ exports["default"] = createSelectedEvent;
+
+ function createSelectedEvent(eventKey) {
+ var selectionPrevented = false;
+
+ return {
+ eventKey: eventKey,
+
+ preventSelection: function preventSelection() {
+ selectionPrevented = true;
+ },
+
+ isSelectionPrevented: function isSelectionPrevented() {
+ return selectionPrevented;
+ }
+ };
+ }
+
+ module.exports = exports["default"];
+
+/***/ },
+/* 218 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _objectWithoutProperties = __webpack_require__(67)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _Collapse = __webpack_require__(89);
+
+ var _Collapse2 = _interopRequireDefault(_Collapse);
+
+ var Panel = _react2['default'].createClass({
+ displayName: 'Panel',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ collapsible: _react2['default'].PropTypes.bool,
+ onSelect: _react2['default'].PropTypes.func,
+ header: _react2['default'].PropTypes.node,
+ id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]),
+ footer: _react2['default'].PropTypes.node,
+ defaultExpanded: _react2['default'].PropTypes.bool,
+ expanded: _react2['default'].PropTypes.bool,
+ eventKey: _react2['default'].PropTypes.any,
+ headerRole: _react2['default'].PropTypes.string,
+ panelRole: _react2['default'].PropTypes.string
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ bsClass: 'panel',
+ bsStyle: 'default',
+ defaultExpanded: false
+ };
+ },
+
+ getInitialState: function getInitialState() {
+ return {
+ expanded: this.props.defaultExpanded
+ };
+ },
+
+ handleSelect: function handleSelect(e) {
+ e.selected = true;
+
+ if (this.props.onSelect) {
+ this.props.onSelect(e, this.props.eventKey);
+ } else {
+ e.preventDefault();
+ }
+
+ if (e.selected) {
+ this.handleToggle();
+ }
+ },
+
+ handleToggle: function handleToggle() {
+ this.setState({ expanded: !this.state.expanded });
+ },
+
+ isExpanded: function isExpanded() {
+ return this.props.expanded != null ? this.props.expanded : this.state.expanded;
+ },
+
+ render: function render() {
+ var _props = this.props;
+ var headerRole = _props.headerRole;
+ var panelRole = _props.panelRole;
+
+ var props = _objectWithoutProperties(_props, ['headerRole', 'panelRole']);
+
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, props, {
+ className: _classnames2['default'](this.props.className, this.getBsClassSet()),
+ id: this.props.collapsible ? null : this.props.id, onSelect: null }),
+ this.renderHeading(headerRole),
+ this.props.collapsible ? this.renderCollapsibleBody(panelRole) : this.renderBody(),
+ this.renderFooter()
+ );
+ },
+
+ renderCollapsibleBody: function renderCollapsibleBody(panelRole) {
+ var props = {
+ className: this.prefixClass('collapse'),
+ id: this.props.id,
+ ref: 'panel',
+ 'aria-hidden': !this.isExpanded()
+ };
+ if (panelRole) {
+ props.role = panelRole;
+ }
+
+ return _react2['default'].createElement(
+ _Collapse2['default'],
+ { 'in': this.isExpanded() },
+ _react2['default'].createElement(
+ 'div',
+ props,
+ this.renderBody()
+ )
+ );
+ },
+
+ renderBody: function renderBody() {
+ var allChildren = this.props.children;
+ var bodyElements = [];
+ var panelBodyChildren = [];
+ var bodyClass = this.prefixClass('body');
+
+ function getProps() {
+ return { key: bodyElements.length };
+ }
+
+ function addPanelChild(child) {
+ bodyElements.push(_react.cloneElement(child, getProps()));
+ }
+
+ function addPanelBody(children) {
+ bodyElements.push(_react2['default'].createElement(
+ 'div',
+ _extends({ className: bodyClass }, getProps()),
+ children
+ ));
+ }
+
+ function maybeRenderPanelBody() {
+ if (panelBodyChildren.length === 0) {
+ return;
+ }
+
+ addPanelBody(panelBodyChildren);
+ panelBodyChildren = [];
+ }
+
+ // Handle edge cases where we should not iterate through children.
+ if (!Array.isArray(allChildren) || allChildren.length === 0) {
+ if (this.shouldRenderFill(allChildren)) {
+ addPanelChild(allChildren);
+ } else {
+ addPanelBody(allChildren);
+ }
+ } else {
+
+ allChildren.forEach((function (child) {
+ if (this.shouldRenderFill(child)) {
+ maybeRenderPanelBody();
+
+ // Separately add the filled element.
+ addPanelChild(child);
+ } else {
+ panelBodyChildren.push(child);
+ }
+ }).bind(this));
+
+ maybeRenderPanelBody();
+ }
+
+ return bodyElements;
+ },
+
+ shouldRenderFill: function shouldRenderFill(child) {
+ return _react2['default'].isValidElement(child) && child.props.fill != null;
+ },
+
+ renderHeading: function renderHeading(headerRole) {
+ var header = this.props.header;
+
+ if (!header) {
+ return null;
+ }
+
+ if (!_react2['default'].isValidElement(header) || Array.isArray(header)) {
+ header = this.props.collapsible ? this.renderCollapsibleTitle(header, headerRole) : header;
+ } else {
+ var className = _classnames2['default'](this.prefixClass('title'), header.props.className);
+
+ if (this.props.collapsible) {
+ header = _react.cloneElement(header, {
+ className: className,
+ children: this.renderAnchor(header.props.children, headerRole)
+ });
+ } else {
+ header = _react.cloneElement(header, { className: className });
+ }
+ }
+
+ return _react2['default'].createElement(
+ 'div',
+ { className: this.prefixClass('heading') },
+ header
+ );
+ },
+
+ renderAnchor: function renderAnchor(header, headerRole) {
+ return _react2['default'].createElement(
+ 'a',
+ {
+ href: '#' + (this.props.id || ''),
+ 'aria-controls': this.props.collapsible ? this.props.id : null,
+ className: this.isExpanded() ? null : 'collapsed',
+ 'aria-expanded': this.isExpanded(),
+ 'aria-selected': this.isExpanded(),
+ onClick: this.handleSelect,
+ role: headerRole },
+ header
+ );
+ },
+
+ renderCollapsibleTitle: function renderCollapsibleTitle(header, headerRole) {
+ return _react2['default'].createElement(
+ 'h4',
+ { className: this.prefixClass('title'), role: 'presentation' },
+ this.renderAnchor(header, headerRole)
+ );
+ },
+
+ renderFooter: function renderFooter() {
+ if (!this.props.footer) {
+ return null;
+ }
+
+ return _react2['default'].createElement(
+ 'div',
+ { className: this.prefixClass('footer') },
+ this.props.footer
+ );
+ }
+ });
+
+ exports['default'] = Panel;
+ module.exports = exports['default'];
+
+/***/ },
+/* 219 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var Popover = _react2['default'].createClass({
+ displayName: 'Popover',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ /**
+ * An html id attribute, necessary for accessibility
+ * @type {string}
+ * @required
+ */
+ id: _utilsCustomPropTypes2['default'].isRequiredForA11y(_react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number])),
+
+ /**
+ * Sets the direction the Popover is positioned towards.
+ */
+ placement: _react2['default'].PropTypes.oneOf(['top', 'right', 'bottom', 'left']),
+
+ /**
+ * The "left" position value for the Popover.
+ */
+ positionLeft: _react2['default'].PropTypes.number,
+ /**
+ * The "top" position value for the Popover.
+ */
+ positionTop: _react2['default'].PropTypes.number,
+ /**
+ * The "left" position value for the Popover arrow.
+ */
+ arrowOffsetLeft: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.string]),
+ /**
+ * The "top" position value for the Popover arrow.
+ */
+ arrowOffsetTop: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.string]),
+ /**
+ * Title text
+ */
+ title: _react2['default'].PropTypes.node
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ placement: 'right'
+ };
+ },
+
+ render: function render() {
+ var _classes;
+
+ var classes = (_classes = {
+ 'popover': true
+ }, _classes[this.props.placement] = true, _classes);
+
+ var style = _extends({
+ 'left': this.props.positionLeft,
+ 'top': this.props.positionTop,
+ 'display': 'block'
+ }, this.props.style);
+
+ // eslint-disable-line react/prop-types
+ var arrowStyle = {
+ 'left': this.props.arrowOffsetLeft,
+ 'top': this.props.arrowOffsetTop
+ };
+
+ return _react2['default'].createElement(
+ 'div',
+ _extends({ role: 'tooltip' }, this.props, { className: _classnames2['default'](this.props.className, classes), style: style, title: null }),
+ _react2['default'].createElement('div', { className: 'arrow', style: arrowStyle }),
+ this.props.title ? this.renderTitle() : null,
+ _react2['default'].createElement(
+ 'div',
+ { className: 'popover-content' },
+ this.props.children
+ )
+ );
+ },
+
+ renderTitle: function renderTitle() {
+ return _react2['default'].createElement(
+ 'h3',
+ { className: 'popover-title' },
+ this.props.title
+ );
+ }
+ });
+
+ exports['default'] = Popover;
+ module.exports = exports['default'];
+ // we don't want to expose the `style` property
+
+/***/ },
+/* 220 */
+/***/ function(module, exports, __webpack_require__) {
+
+ /* eslint react/prop-types: [2, {ignore: "bsStyle"}] */
+ /* BootstrapMixin contains `bsStyle` type validation */
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _objectWithoutProperties = __webpack_require__(67)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _Interpolate = __webpack_require__(180);
+
+ var _Interpolate2 = _interopRequireDefault(_Interpolate);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _utilsValidComponentChildren = __webpack_require__(55);
+
+ var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren);
+
+ var ProgressBar = _react2['default'].createClass({
+ displayName: 'ProgressBar',
+
+ propTypes: {
+ min: _react.PropTypes.number,
+ now: _react.PropTypes.number,
+ max: _react.PropTypes.number,
+ label: _react.PropTypes.node,
+ srOnly: _react.PropTypes.bool,
+ striped: _react.PropTypes.bool,
+ active: _react.PropTypes.bool,
+ children: onlyProgressBar,
+ className: _react2['default'].PropTypes.string,
+ interpolateClass: _react.PropTypes.node,
+ /**
+ * @private
+ */
+ isChild: _react.PropTypes.bool
+ },
+
+ mixins: [_BootstrapMixin2['default']],
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ bsClass: 'progress-bar',
+ min: 0,
+ max: 100,
+ active: false,
+ isChild: false,
+ srOnly: false,
+ striped: false
+ };
+ },
+
+ getPercentage: function getPercentage(now, min, max) {
+ var roundPrecision = 1000;
+ return Math.round((now - min) / (max - min) * 100 * roundPrecision) / roundPrecision;
+ },
+
+ render: function render() {
+ if (this.props.isChild) {
+ return this.renderProgressBar();
+ }
+
+ var content = undefined;
+
+ if (this.props.children) {
+ content = _utilsValidComponentChildren2['default'].map(this.props.children, this.renderChildBar);
+ } else {
+ content = this.renderProgressBar();
+ }
+
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, {
+ className: _classnames2['default'](this.props.className, 'progress'),
+ min: null,
+ max: null,
+ label: null,
+ 'aria-valuetext': null
+ }),
+ content
+ );
+ },
+
+ renderChildBar: function renderChildBar(child, index) {
+ return _react.cloneElement(child, {
+ isChild: true,
+ key: child.key ? child.key : index
+ });
+ },
+
+ renderProgressBar: function renderProgressBar() {
+ var _props = this.props;
+ var className = _props.className;
+ var label = _props.label;
+ var now = _props.now;
+ var min = _props.min;
+ var max = _props.max;
+
+ var props = _objectWithoutProperties(_props, ['className', 'label', 'now', 'min', 'max']);
+
+ var percentage = this.getPercentage(now, min, max);
+
+ if (typeof label === 'string') {
+ label = this.renderLabel(percentage);
+ }
+
+ if (this.props.srOnly) {
+ label = _react2['default'].createElement(
+ 'span',
+ { className: 'sr-only' },
+ label
+ );
+ }
+
+ var classes = _classnames2['default'](className, this.getBsClassSet(), {
+ active: this.props.active,
+ 'progress-bar-striped': this.props.active || this.props.striped
+ });
+
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, props, {
+ className: classes,
+ role: 'progressbar',
+ style: { width: percentage + '%' },
+ 'aria-valuenow': this.props.now,
+ 'aria-valuemin': this.props.min,
+ 'aria-valuemax': this.props.max }),
+ label
+ );
+ },
+
+ renderLabel: function renderLabel(percentage) {
+ var InterpolateClass = this.props.interpolateClass || _Interpolate2['default'];
+
+ return _react2['default'].createElement(
+ InterpolateClass,
+ {
+ now: this.props.now,
+ min: this.props.min,
+ max: this.props.max,
+ percent: percentage,
+ bsStyle: this.props.bsStyle },
+ this.props.label
+ );
+ }
+ });
+
+ /**
+ * Custom propTypes checker
+ */
+ function onlyProgressBar(props, propName, componentName) {
+ if (props[propName]) {
+ var _ret = (function () {
+ var error = undefined,
+ childIdentifier = undefined;
+
+ _react2['default'].Children.forEach(props[propName], function (child) {
+ if (child.type !== ProgressBar) {
+ childIdentifier = child.type.displayName ? child.type.displayName : child.type;
+ error = new Error('Children of ' + componentName + ' can contain only ProgressBar components. Found ' + childIdentifier);
+ }
+ });
+
+ return {
+ v: error
+ };
+ })();
+
+ if (typeof _ret === 'object') return _ret.v;
+ }
+ }
+
+ exports['default'] = ProgressBar;
+ module.exports = exports['default'];
+
+/***/ },
+/* 221 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var Row = _react2['default'].createClass({
+ displayName: 'Row',
+
+ propTypes: {
+ /**
+ * You can use a custom element for this component
+ */
+ componentClass: _utilsCustomPropTypes2['default'].elementType
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ componentClass: 'div'
+ };
+ },
+
+ render: function render() {
+ var ComponentClass = this.props.componentClass;
+
+ return _react2['default'].createElement(
+ ComponentClass,
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, 'row') }),
+ this.props.children
+ );
+ }
+ });
+
+ exports['default'] = Row;
+ module.exports = exports['default'];
+
+/***/ },
+/* 222 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _utilsValidComponentChildren = __webpack_require__(55);
+
+ var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren);
+
+ var _utilsCreateChainedFunction = __webpack_require__(56);
+
+ var _utilsCreateChainedFunction2 = _interopRequireDefault(_utilsCreateChainedFunction);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _SafeAnchor = __webpack_require__(100);
+
+ var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
+
+ var SubNav = _react2['default'].createClass({
+ displayName: 'SubNav',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ onSelect: _react2['default'].PropTypes.func,
+ active: _react2['default'].PropTypes.bool,
+ activeHref: _react2['default'].PropTypes.string,
+ activeKey: _react2['default'].PropTypes.any,
+ disabled: _react2['default'].PropTypes.bool,
+ eventKey: _react2['default'].PropTypes.any,
+ href: _react2['default'].PropTypes.string,
+ title: _react2['default'].PropTypes.string,
+ text: _react2['default'].PropTypes.node,
+ target: _react2['default'].PropTypes.string
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ bsClass: 'nav',
+ active: false,
+ disabled: false
+ };
+ },
+
+ handleClick: function handleClick(e) {
+ if (this.props.onSelect) {
+ e.preventDefault();
+
+ if (!this.props.disabled) {
+ this.props.onSelect(this.props.eventKey, this.props.href, this.props.target);
+ }
+ }
+ },
+
+ isActive: function isActive() {
+ return this.isChildActive(this);
+ },
+
+ isChildActive: function isChildActive(child) {
+ if (child.props.active) {
+ return true;
+ }
+
+ if (this.props.activeKey != null && this.props.activeKey === child.props.eventKey) {
+ return true;
+ }
+
+ if (this.props.activeHref != null && this.props.activeHref === child.props.href) {
+ return true;
+ }
+
+ if (child.props.children) {
+ var isActive = false;
+
+ _utilsValidComponentChildren2['default'].forEach(child.props.children, function (grandchild) {
+ if (this.isChildActive(grandchild)) {
+ isActive = true;
+ }
+ }, this);
+
+ return isActive;
+ }
+
+ return false;
+ },
+
+ getChildActiveProp: function getChildActiveProp(child) {
+ if (child.props.active) {
+ return true;
+ }
+ if (this.props.activeKey != null) {
+ if (child.props.eventKey === this.props.activeKey) {
+ return true;
+ }
+ }
+ if (this.props.activeHref != null) {
+ if (child.props.href === this.props.activeHref) {
+ return true;
+ }
+ }
+
+ return child.props.active;
+ },
+
+ render: function render() {
+ var classes = {
+ 'active': this.isActive(),
+ 'disabled': this.props.disabled
+ };
+
+ return _react2['default'].createElement(
+ 'li',
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }),
+ _react2['default'].createElement(
+ _SafeAnchor2['default'],
+ {
+ href: this.props.href,
+ title: this.props.title,
+ target: this.props.target,
+ onClick: this.handleClick },
+ this.props.text
+ ),
+ _react2['default'].createElement(
+ 'ul',
+ { className: 'nav' },
+ _utilsValidComponentChildren2['default'].map(this.props.children, this.renderNavItem)
+ )
+ );
+ },
+
+ renderNavItem: function renderNavItem(child, index) {
+ return _react.cloneElement(child, {
+ active: this.getChildActiveProp(child),
+ onSelect: _utilsCreateChainedFunction2['default'](child.props.onSelect, this.props.onSelect),
+ key: child.key ? child.key : index
+ });
+ }
+ });
+
+ exports['default'] = SubNav;
+ module.exports = exports['default'];
+
+/***/ },
+/* 223 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _utilsTransitionEvents = __webpack_require__(85);
+
+ var _utilsTransitionEvents2 = _interopRequireDefault(_utilsTransitionEvents);
+
+ var Tab = _react2['default'].createClass({
+ displayName: 'Tab',
+
+ propTypes: {
+ /**
+ * @private
+ */
+ active: _react2['default'].PropTypes.bool,
+ animation: _react2['default'].PropTypes.bool,
+ /**
+ * It is used by 'Tabs' - parent component
+ * @private
+ */
+ onAnimateOutEnd: _react2['default'].PropTypes.func,
+ disabled: _react2['default'].PropTypes.bool,
+ title: _react2['default'].PropTypes.node
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ animation: true
+ };
+ },
+
+ getInitialState: function getInitialState() {
+ return {
+ animateIn: false,
+ animateOut: false
+ };
+ },
+
+ componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
+ if (this.props.animation) {
+ if (!this.state.animateIn && nextProps.active && !this.props.active) {
+ this.setState({
+ animateIn: true
+ });
+ } else if (!this.state.animateOut && !nextProps.active && this.props.active) {
+ this.setState({
+ animateOut: true
+ });
+ }
+ }
+ },
+
+ componentDidUpdate: function componentDidUpdate() {
+ if (this.state.animateIn) {
+ setTimeout(this.startAnimateIn, 0);
+ }
+ if (this.state.animateOut) {
+ _utilsTransitionEvents2['default'].addEndEventListener(_react2['default'].findDOMNode(this), this.stopAnimateOut);
+ }
+ },
+
+ startAnimateIn: function startAnimateIn() {
+ if (this.isMounted()) {
+ this.setState({
+ animateIn: false
+ });
+ }
+ },
+
+ stopAnimateOut: function stopAnimateOut() {
+ if (this.isMounted()) {
+ this.setState({
+ animateOut: false
+ });
+
+ if (this.props.onAnimateOutEnd) {
+ this.props.onAnimateOutEnd();
+ }
+ }
+ },
+
+ render: function render() {
+ var classes = {
+ 'tab-pane': true,
+ 'fade': true,
+ 'active': this.props.active || this.state.animateOut,
+ 'in': this.props.active && !this.state.animateIn
+ };
+
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, {
+ title: undefined,
+ role: 'tabpanel',
+ 'aria-hidden': !this.props.active,
+ className: _classnames2['default'](this.props.className, classes)
+ }),
+ this.props.children
+ );
+ }
+ });
+
+ exports['default'] = Tab;
+ module.exports = exports['default'];
+
+/***/ },
+/* 224 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _objectWithoutProperties = __webpack_require__(67)['default'];
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _Tabs = __webpack_require__(225);
+
+ var _Tabs2 = _interopRequireDefault(_Tabs);
+
+ var _TabPane = __webpack_require__(226);
+
+ var _TabPane2 = _interopRequireDefault(_TabPane);
+
+ var _utilsValidComponentChildren = __webpack_require__(55);
+
+ var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren);
+
+ var _utilsDeprecationWarning = __webpack_require__(16);
+
+ var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning);
+
+ var TabbedArea = _react2['default'].createClass({
+ displayName: 'TabbedArea',
+
+ componentWillMount: function componentWillMount() {
+ _utilsDeprecationWarning2['default']('TabbedArea', 'Tabs', 'https://github.com/react-bootstrap/react-bootstrap/pull/1091');
+ },
+
+ render: function render() {
+ var _props = this.props;
+ var children = _props.children;
+
+ var props = _objectWithoutProperties(_props, ['children']);
+
+ var tabs = _utilsValidComponentChildren2['default'].map(children, function (child) {
+ var _child$props = child.props;
+ var title = _child$props.tab;
+
+ var others = _objectWithoutProperties(_child$props, ['tab']);
+
+ return _react2['default'].createElement(_TabPane2['default'], _extends({ title: title }, others));
+ });
+
+ return _react2['default'].createElement(
+ _Tabs2['default'],
+ props,
+ tabs
+ );
+ }
+ });
+
+ exports['default'] = TabbedArea;
+ module.exports = exports['default'];
+
+/***/ },
+/* 225 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _objectWithoutProperties = __webpack_require__(67)['default'];
+
+ var _Object$keys = __webpack_require__(1)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _Col = __webpack_require__(86);
+
+ var _Col2 = _interopRequireDefault(_Col);
+
+ var _Grid = __webpack_require__(176);
+
+ var _Grid2 = _interopRequireDefault(_Grid);
+
+ var _Nav = __webpack_require__(201);
+
+ var _Nav2 = _interopRequireDefault(_Nav);
+
+ var _NavItem = __webpack_require__(203);
+
+ var _NavItem2 = _interopRequireDefault(_NavItem);
+
+ var _Row = __webpack_require__(221);
+
+ var _Row2 = _interopRequireDefault(_Row);
+
+ var _styleMaps = __webpack_require__(70);
+
+ var _styleMaps2 = _interopRequireDefault(_styleMaps);
+
+ var _utilsValidComponentChildren = __webpack_require__(55);
+
+ var _utilsValidComponentChildren2 = _interopRequireDefault(_utilsValidComponentChildren);
+
+ var paneId = function paneId(props, child) {
+ return child.props.id ? child.props.id : props.id && props.id + '___pane___' + child.props.eventKey;
+ };
+ var tabId = function tabId(props, child) {
+ return child.props.id ? child.props.id + '___tab' : props.id && props.id + '___tab___' + child.props.eventKey;
+ };
+
+ function getDefaultActiveKeyFromChildren(children) {
+ var defaultActiveKey = undefined;
+
+ _utilsValidComponentChildren2['default'].forEach(children, function (child) {
+ if (defaultActiveKey == null) {
+ defaultActiveKey = child.props.eventKey;
+ }
+ });
+
+ return defaultActiveKey;
+ }
+
+ var Tabs = _react2['default'].createClass({
+ displayName: 'Tabs',
+
+ propTypes: {
+ activeKey: _react2['default'].PropTypes.any,
+ defaultActiveKey: _react2['default'].PropTypes.any,
+ /**
+ * Navigation style for tabs
+ *
+ * If not specified, it will be treated as `'tabs'` when vertically
+ * positioned and `'pills'` when horizontally positioned.
+ */
+ bsStyle: _react2['default'].PropTypes.oneOf(['tabs', 'pills']),
+ animation: _react2['default'].PropTypes.bool,
+ id: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number]),
+ onSelect: _react2['default'].PropTypes.func,
+ position: _react2['default'].PropTypes.oneOf(['top', 'left', 'right']),
+ /**
+ * Number of grid columns for the tabs if horizontally positioned
+ *
+ * This accepts either a single width or a mapping of size to width.
+ */
+ tabWidth: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.object]),
+ /**
+ * Number of grid columns for the panes if horizontally positioned
+ *
+ * This accepts either a single width or a mapping of size to width. If not
+ * specified, it will be treated as `styleMaps.GRID_COLUMNS` minus
+ * `tabWidth`.
+ */
+ paneWidth: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.object])
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ animation: true,
+ tabWidth: 2,
+ position: 'top'
+ };
+ },
+
+ getInitialState: function getInitialState() {
+ var defaultActiveKey = this.props.defaultActiveKey != null ? this.props.defaultActiveKey : getDefaultActiveKeyFromChildren(this.props.children);
+
+ return {
+ activeKey: defaultActiveKey,
+ previousActiveKey: null
+ };
+ },
+
+ componentWillReceiveProps: function componentWillReceiveProps(nextProps) {
+ var _this = this;
+
+ if (nextProps.activeKey != null && nextProps.activeKey !== this.props.activeKey) {
+ (function () {
+ // check if the 'previousActiveKey' child still exists
+ var previousActiveKey = _this.props.activeKey;
+ _react2['default'].Children.forEach(nextProps.children, function (child) {
+ if (_react2['default'].isValidElement(child)) {
+ if (child.props.eventKey === previousActiveKey) {
+ _this.setState({
+ previousActiveKey: previousActiveKey
+ });
+ return;
+ }
+ }
+ });
+ })();
+ }
+ },
+
+ handlePaneAnimateOutEnd: function handlePaneAnimateOutEnd() {
+ this.setState({
+ previousActiveKey: null
+ });
+ },
+
+ render: function render() {
+ var _props = this.props;
+ var id = _props.id;
+ var className = _props.className;
+ var style = _props.style;
+ var position = _props.position;
+ var bsStyle = _props.bsStyle;
+ var tabWidth = _props.tabWidth;
+ var paneWidth = _props.paneWidth;
+ var children = _props.children;
+
+ var props = _objectWithoutProperties(_props, ['id', 'className', 'style', 'position', 'bsStyle', 'tabWidth', 'paneWidth', 'children']);
+
+ var isHorizontal = position === 'left' || position === 'right';
+
+ if (bsStyle == null) {
+ bsStyle = isHorizontal ? 'pills' : 'tabs';
+ }
+
+ var containerProps = { id: id, className: className, style: style };
+
+ var tabsProps = _extends({}, props, {
+ bsStyle: bsStyle,
+ stacked: isHorizontal,
+ activeKey: this.getActiveKey(),
+ onSelect: this.handleSelect,
+ ref: 'tabs',
+ role: 'tablist'
+ });
+ var childTabs = _utilsValidComponentChildren2['default'].map(children, this.renderTab);
+
+ var panesProps = {
+ className: 'tab-content',
+ ref: 'panes'
+ };
+ var childPanes = _utilsValidComponentChildren2['default'].map(children, this.renderPane);
+
+ if (isHorizontal) {
+ var _getColProps = this.getColProps({ tabWidth: tabWidth, paneWidth: paneWidth });
+
+ var tabsColProps = _getColProps.tabsColProps;
+ var panesColProps = _getColProps.panesColProps;
+
+ var tabs = _react2['default'].createElement(
+ _Col2['default'],
+ _extends({ componentClass: _Nav2['default'] }, tabsProps, tabsColProps),
+ childTabs
+ );
+ var panes = _react2['default'].createElement(
+ _Col2['default'],
+ _extends({}, panesProps, panesColProps),
+ childPanes
+ );
+
+ var body = undefined;
+ if (position === 'left') {
+ body = _react2['default'].createElement(
+ _Row2['default'],
+ containerProps,
+ tabs,
+ panes
+ );
+ } else {
+ body = _react2['default'].createElement(
+ _Row2['default'],
+ containerProps,
+ panes,
+ tabs
+ );
+ }
+
+ return _react2['default'].createElement(
+ _Grid2['default'],
+ null,
+ body
+ );
+ } else {
+ return _react2['default'].createElement(
+ 'div',
+ containerProps,
+ _react2['default'].createElement(
+ _Nav2['default'],
+ tabsProps,
+ childTabs
+ ),
+ _react2['default'].createElement(
+ 'div',
+ panesProps,
+ childPanes
+ )
+ );
+ }
+ },
+
+ getActiveKey: function getActiveKey() {
+ return this.props.activeKey !== undefined ? this.props.activeKey : this.state.activeKey;
+ },
+
+ renderPane: function renderPane(child, index) {
+ var previousActiveKey = this.state.previousActiveKey;
+
+ var shouldPaneBeSetActive = child.props.eventKey === this.getActiveKey();
+ var thereIsNoActivePane = previousActiveKey == null;
+
+ var paneIsAlreadyActive = previousActiveKey != null && child.props.eventKey === previousActiveKey;
+
+ return _react.cloneElement(child, {
+ active: shouldPaneBeSetActive && (thereIsNoActivePane || !this.props.animation),
+ id: paneId(this.props, child),
+ 'aria-labelledby': tabId(this.props, child),
+ key: child.key ? child.key : index,
+ animation: this.props.animation,
+ onAnimateOutEnd: paneIsAlreadyActive ? this.handlePaneAnimateOutEnd : null
+ });
+ },
+
+ renderTab: function renderTab(child) {
+ if (child.props.title == null) {
+ return null;
+ }
+
+ var _child$props = child.props;
+ var eventKey = _child$props.eventKey;
+ var title = _child$props.title;
+ var disabled = _child$props.disabled;
+
+ return _react2['default'].createElement(
+ _NavItem2['default'],
+ {
+ linkId: tabId(this.props, child),
+ ref: 'tab' + eventKey,
+ 'aria-controls': paneId(this.props, child),
+ eventKey: eventKey,
+ disabled: disabled },
+ title
+ );
+ },
+
+ getColProps: function getColProps(_ref) {
+ var tabWidth = _ref.tabWidth;
+ var paneWidth = _ref.paneWidth;
+
+ var tabsColProps = undefined;
+ if (tabWidth instanceof Object) {
+ tabsColProps = tabWidth;
+ } else {
+ tabsColProps = { xs: tabWidth };
+ }
+
+ var panesColProps = undefined;
+ if (paneWidth == null) {
+ panesColProps = {};
+ _Object$keys(tabsColProps).forEach(function (size) {
+ panesColProps[size] = _styleMaps2['default'].GRID_COLUMNS - tabsColProps[size];
+ });
+ } else if (paneWidth instanceof Object) {
+ panesColProps = paneWidth;
+ } else {
+ panesColProps = { xs: paneWidth };
+ }
+
+ return { tabsColProps: tabsColProps, panesColProps: panesColProps };
+ },
+
+ shouldComponentUpdate: function shouldComponentUpdate() {
+ // Defer any updates to this component during the `onSelect` handler.
+ return !this._isChanging;
+ },
+
+ handleSelect: function handleSelect(selectedKey) {
+ if (this.props.onSelect) {
+ this._isChanging = true;
+ this.props.onSelect(selectedKey);
+ this._isChanging = false;
+ return;
+ }
+
+ // if there is no external handler, then use embedded one
+ var previousActiveKey = this.getActiveKey();
+ if (selectedKey !== previousActiveKey) {
+ this.setState({
+ activeKey: selectedKey,
+ previousActiveKey: previousActiveKey
+ });
+ }
+ }
+ });
+
+ exports['default'] = Tabs;
+ module.exports = exports['default'];
+
+/***/ },
+/* 226 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _utilsDeprecationWarning = __webpack_require__(16);
+
+ var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning);
+
+ var _Tab = __webpack_require__(223);
+
+ var _Tab2 = _interopRequireDefault(_Tab);
+
+ var TabPane = _react2['default'].createClass({
+ displayName: 'TabPane',
+
+ componentWillMount: function componentWillMount() {
+ _utilsDeprecationWarning2['default']('TabPane', 'Tab', 'https://github.com/react-bootstrap/react-bootstrap/pull/1091');
+ },
+
+ render: function render() {
+ return _react2['default'].createElement(_Tab2['default'], this.props);
+ }
+ });
+
+ exports['default'] = TabPane;
+ module.exports = exports['default'];
+
+/***/ },
+/* 227 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var Table = _react2['default'].createClass({
+ displayName: 'Table',
+
+ propTypes: {
+ striped: _react2['default'].PropTypes.bool,
+ bordered: _react2['default'].PropTypes.bool,
+ condensed: _react2['default'].PropTypes.bool,
+ hover: _react2['default'].PropTypes.bool,
+ responsive: _react2['default'].PropTypes.bool
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ bordered: false,
+ condensed: false,
+ hover: false,
+ responsive: false,
+ striped: false
+ };
+ },
+
+ render: function render() {
+ var classes = {
+ 'table': true,
+ 'table-striped': this.props.striped,
+ 'table-bordered': this.props.bordered,
+ 'table-condensed': this.props.condensed,
+ 'table-hover': this.props.hover
+ };
+ var table = _react2['default'].createElement(
+ 'table',
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }),
+ this.props.children
+ );
+
+ return this.props.responsive ? _react2['default'].createElement(
+ 'div',
+ { className: 'table-responsive' },
+ table
+ ) : table;
+ }
+ });
+
+ exports['default'] = Table;
+ module.exports = exports['default'];
+
+/***/ },
+/* 228 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _SafeAnchor = __webpack_require__(100);
+
+ var _SafeAnchor2 = _interopRequireDefault(_SafeAnchor);
+
+ var Thumbnail = _react2['default'].createClass({
+ displayName: 'Thumbnail',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ alt: _react2['default'].PropTypes.string,
+ href: _react2['default'].PropTypes.string,
+ src: _react2['default'].PropTypes.string
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ bsClass: 'thumbnail'
+ };
+ },
+
+ render: function render() {
+ var classes = this.getBsClassSet();
+
+ if (this.props.href) {
+ return _react2['default'].createElement(
+ _SafeAnchor2['default'],
+ _extends({}, this.props, { href: this.props.href, className: _classnames2['default'](this.props.className, classes) }),
+ _react2['default'].createElement('img', { src: this.props.src, alt: this.props.alt })
+ );
+ } else {
+ if (this.props.children) {
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }),
+ _react2['default'].createElement('img', { src: this.props.src, alt: this.props.alt }),
+ _react2['default'].createElement(
+ 'div',
+ { className: 'caption' },
+ this.props.children
+ )
+ );
+ } else {
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }),
+ _react2['default'].createElement('img', { src: this.props.src, alt: this.props.alt })
+ );
+ }
+ }
+ }
+ });
+
+ exports['default'] = Thumbnail;
+ module.exports = exports['default'];
+
+/***/ },
+/* 229 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var _utilsCustomPropTypes = __webpack_require__(53);
+
+ var _utilsCustomPropTypes2 = _interopRequireDefault(_utilsCustomPropTypes);
+
+ var Tooltip = _react2['default'].createClass({
+ displayName: 'Tooltip',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ propTypes: {
+ /**
+ * An html id attribute, necessary for accessibility
+ * @type {string}
+ * @required
+ */
+ id: _utilsCustomPropTypes2['default'].isRequiredForA11y(_react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.string, _react2['default'].PropTypes.number])),
+
+ /**
+ * Sets the direction the Tooltip is positioned towards.
+ */
+ placement: _react2['default'].PropTypes.oneOf(['top', 'right', 'bottom', 'left']),
+
+ /**
+ * The "left" position value for the Tooltip.
+ */
+ positionLeft: _react2['default'].PropTypes.number,
+ /**
+ * The "top" position value for the Tooltip.
+ */
+ positionTop: _react2['default'].PropTypes.number,
+ /**
+ * The "left" position value for the Tooltip arrow.
+ */
+ arrowOffsetLeft: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.string]),
+ /**
+ * The "top" position value for the Tooltip arrow.
+ */
+ arrowOffsetTop: _react2['default'].PropTypes.oneOfType([_react2['default'].PropTypes.number, _react2['default'].PropTypes.string]),
+ /**
+ * Title text
+ */
+ title: _react2['default'].PropTypes.node
+ },
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ placement: 'right'
+ };
+ },
+
+ render: function render() {
+ var _classes;
+
+ var classes = (_classes = {
+ 'tooltip': true
+ }, _classes[this.props.placement] = true, _classes);
+
+ var style = _extends({
+ 'left': this.props.positionLeft,
+ 'top': this.props.positionTop
+ }, this.props.style);
+
+ var arrowStyle = {
+ 'left': this.props.arrowOffsetLeft,
+ 'top': this.props.arrowOffsetTop
+ };
+
+ return _react2['default'].createElement(
+ 'div',
+ _extends({ role: 'tooltip' }, this.props, { className: _classnames2['default'](this.props.className, classes), style: style }),
+ _react2['default'].createElement('div', { className: 'tooltip-arrow', style: arrowStyle }),
+ _react2['default'].createElement(
+ 'div',
+ { className: 'tooltip-inner' },
+ this.props.children
+ )
+ );
+ }
+ });
+
+ exports['default'] = Tooltip;
+ module.exports = exports['default'];
+
+/***/ },
+/* 230 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _extends = __webpack_require__(58)['default'];
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _react = __webpack_require__(32);
+
+ var _react2 = _interopRequireDefault(_react);
+
+ var _classnames = __webpack_require__(68);
+
+ var _classnames2 = _interopRequireDefault(_classnames);
+
+ var _BootstrapMixin = __webpack_require__(69);
+
+ var _BootstrapMixin2 = _interopRequireDefault(_BootstrapMixin);
+
+ var Well = _react2['default'].createClass({
+ displayName: 'Well',
+
+ mixins: [_BootstrapMixin2['default']],
+
+ getDefaultProps: function getDefaultProps() {
+ return {
+ bsClass: 'well'
+ };
+ },
+
+ render: function render() {
+ var classes = this.getBsClassSet();
+
+ return _react2['default'].createElement(
+ 'div',
+ _extends({}, this.props, { className: _classnames2['default'](this.props.className, classes) }),
+ this.props.children
+ );
+ }
+ });
+
+ exports['default'] = Well;
+ module.exports = exports['default'];
+
+/***/ },
+/* 231 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _utilsDeprecationWarning = __webpack_require__(16);
+
+ var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning);
+
+ var _reactOverlaysLibPortal = __webpack_require__(191);
+
+ var _reactOverlaysLibPortal2 = _interopRequireDefault(_reactOverlaysLibPortal);
+
+ exports['default'] = _utilsDeprecationWarning2['default'].wrapper(_reactOverlaysLibPortal2['default'], {
+ message: 'The Portal component is deprecated in react-bootstrap. It has been moved to a more generic library: react-overlays. ' + 'You can read more at: ' + 'http://react-bootstrap.github.io/react-overlays/examples/#portal and ' + 'https://github.com/react-bootstrap/react-bootstrap/issues/1084'
+ });
+ module.exports = exports['default'];
+
+/***/ },
+/* 232 */
+/***/ function(module, exports, __webpack_require__) {
+
+ 'use strict';
+
+ var _interopRequireDefault = __webpack_require__(14)['default'];
+
+ exports.__esModule = true;
+
+ var _utilsDeprecationWarning = __webpack_require__(16);
+
+ var _utilsDeprecationWarning2 = _interopRequireDefault(_utilsDeprecationWarning);
+
+ var _reactOverlaysLibPosition = __webpack_require__(206);
+
+ var _reactOverlaysLibPosition2 = _interopRequireDefault(_reactOverlaysLibPosition);
+
+ exports['default'] = _utilsDeprecationWarning2['default'].wrapper(_reactOverlaysLibPosition2['default'], {
+ message: 'The Position component is deprecated in react-bootstrap. It has been moved to a more generic library: react-overlays. ' + 'You can read more at: ' + 'http://react-bootstrap.github.io/react-overlays/examples/#position and ' + 'https://github.com/react-bootstrap/react-bootstrap/issues/1084'
+ });
+ module.exports = exports['default'];
+
+/***/ }
+/******/ ])
+});
+;
\ No newline at end of file
diff --git a/web/static/js/react-bootstrap-0.25.1.min.js b/web/static/js/react-bootstrap-0.25.1.min.js
new file mode 100644
index 0000000000..06f9677d3e
--- /dev/null
+++ b/web/static/js/react-bootstrap-0.25.1.min.js
@@ -0,0 +1,14 @@
+!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.ReactBootstrap=t(require("react")):e.ReactBootstrap=t(e.React)}(this,function(e){return function(e){function t(r){if(n[r])return n[r].exports;var o=n[r]={exports:{},id:r,loaded:!1};return e[r].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n={};return t.m=e,t.c=n,t.p="",t(0)}([function(e,t,n){"use strict";function r(e,t,n,r){return e}var o=(n(17)["default"],n(149)["default"],n(2)["default"]),s=n(72)["default"];t.__esModule=!0;var a=n(12),i=(o(a),n(23)),l=o(i),u=n(36),p=o(u),d=n(11),f=o(d),c=n(9),h=o(c),m=n(8),v=o(m),y=n(103),g=o(y);t.Accordion=g["default"];var b=n(104),T=o(b);t.Affix=T["default"];var P=n(49),x=o(P);t.AffixMixin=x["default"];var E=n(105),C=o(E);t.Alert=C["default"];var _=n(106),N=o(_);t.Badge=N["default"];var O=n(5),w=o(O);t.BootstrapMixin=w["default"];var S=n(25),k=o(S);t.Button=k["default"];var M=n(50),D=o(M);t.ButtonGroup=D["default"];var A=n(51),I=o(A);t.ButtonInput=I["default"];var R=n(107),L=o(R);t.ButtonToolbar=L["default"];var j=n(108),K=o(j);t.Carousel=K["default"];var B=n(109),F=o(B);t.CarouselItem=F["default"];var W=n(52),H=o(W);t.Col=H["default"];var U=n(110),V=o(U);t.CollapsibleMixin=V["default"];var q=n(111),z=o(q);t.CollapsibleNav=z["default"];var G=n(27),Y=o(G);t.Dropdown=Y["default"];var $=n(112),X=o($);t.DropdownButton=X["default"];var Z=n(63),J=o(Z);t.NavDropdown=J["default"];var Q=n(136),ee=o(Q);t.SplitButton=ee["default"];var te=n(114),ne=o(te);t.FadeMixin=ne["default"];var re=n(33),oe=o(re);t.Glyphicon=oe["default"];var se=n(56),ae=o(se);t.Grid=ae["default"];var ie=n(116),le=o(ie);t.Input=le["default"];var ue=n(57),pe=o(ue);t.Interpolate=pe["default"];var de=n(117),fe=o(de);t.Jumbotron=fe["default"];var ce=n(118),he=o(ce);t.Label=he["default"];var me=n(119),ve=o(me);t.ListGroup=ve["default"];var ye=n(120),ge=o(ye);t.ListGroupItem=ge["default"];var be=n(121),Te=o(be);t.MenuItem=Te["default"];var Pe=n(122),xe=o(Pe);t.Modal=xe["default"];var Ee=n(60),Ce=o(Ee);t.ModalHeader=Ce["default"];var _e=n(61),Ne=o(_e);t.ModalTitle=Ne["default"];var Oe=n(58),we=o(Oe);t.ModalBody=we["default"];var Se=n(59),ke=o(Se);t.ModalFooter=ke["default"];var Me=n(62),De=o(Me);t.Nav=De["default"];var Ae=n(124),Ie=o(Ae);t.Navbar=Ie["default"];var Re=n(64),Le=o(Re);t.NavItem=Le["default"];var je=n(65),Ke=o(je);t.Overlay=Ke["default"];var Be=n(125),Fe=o(Be);t.OverlayTrigger=Fe["default"];var We=n(126),He=o(We);t.PageHeader=He["default"];var Ue=n(127),Ve=o(Ue);t.PageItem=Ve["default"];var qe=n(128),ze=o(qe);t.Pager=ze["default"];var Ge=n(129),Ye=o(Ge);t.Pagination=Ye["default"];var $e=n(131),Xe=o($e);t.Panel=Xe["default"];var Ze=n(66),Je=o(Ze);t.PanelGroup=Je["default"];var Qe=n(132),et=o(Qe);t.Popover=et["default"];var tt=n(135),nt=o(tt);t.ProgressBar=nt["default"];var rt=n(67),ot=o(rt);t.Row=ot["default"];var st=n(14),at=o(st);t.SafeAnchor=at["default"];var it=o(Q);t.SplitButton=it["default"];var lt=n(28),ut=o(lt);t.styleMaps=ut["default"];var pt=n(138),dt=o(pt);t.SubNav=dt["default"];var ft=n(68),ct=o(ft);t.Tab=ct["default"];var ht=n(139),mt=o(ht);t.TabbedArea=mt["default"];var vt=n(140),yt=o(vt);t.Table=yt["default"];var gt=n(69),bt=o(gt);t.TabPane=bt["default"];var Tt=n(70),Pt=o(Tt);t.Tabs=Pt["default"];var xt=n(141),Et=o(xt);t.Thumbnail=Et["default"];var Ct=n(142),_t=o(Ct);t.Tooltip=_t["default"];var Nt=n(143),Ot=o(Nt);t.Well=Ot["default"];var wt=n(133),St=o(wt);t.Portal=St["default"];var kt=n(134),Mt=o(kt);t.Position=Mt["default"];var Dt=n(26),At=o(Dt);t.Collapse=At["default"];var It=n(32),Rt=o(It);t.Fade=Rt["default"];var Lt=n(54),jt=s(Lt);t.FormControls=jt;var Kt={childrenValueInputValidation:p["default"],createChainedFunction:f["default"],ValidComponentChildren:h["default"],CustomPropTypes:v["default"],domUtils:r(l["default"],"utils/domUtils","npm install dom-helpers")};t.utils=Kt},function(t,n){t.exports=e},function(e,t){"use strict";t["default"]=function(e){return e&&e.__esModule?e:{"default":e}},t.__esModule=!0},function(e,t,n){"use strict";var r=n(147)["default"];t["default"]=r||function(e){for(var t=1;t=0?e[n+this.props.bsStyle]=!0:e[this.props.bsStyle]=!0)}return e},prefixClass:function(e){return i["default"].CLASSES[this.props.bsClass]+"-"+e}};t["default"]=p,e.exports=t["default"]},function(e,t){"use strict";t["default"]=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},t.__esModule=!0},function(e,t,n){"use strict";var r=n(148)["default"],o=n(151)["default"];t["default"]=function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=r(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(o?o(e,t):e.__proto__=t)},t.__esModule=!0},function(e,t,n){"use strict";function r(e){function t(t,n,r,o){return o=o||g,null!=n[r]?e(n,r,o):t?new Error("Required prop '"+r+"' was not specified in '"+o+"'."):void 0}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}function o(e,t,n,r){return"Invalid prop '"+t+"' of value '"+e[t]+"'"+(" supplied to '"+n+"'"+r)}function s(){function e(e,t,n){return"object"!=typeof e[t]||"function"!=typeof e[t].render&&1!==e[t].nodeType?new Error(o(e,t,n,", expected a DOM element or an object that has a `render` method")):void 0}return r(e)}function a(e){function t(t,n,r){var s=t[n];if(!e.hasOwnProperty(s)){var a=JSON.stringify(p(e));return new Error(o(t,n,r,", expected one of "+a+"."))}}return r(t)}function i(e){function t(t,n,r){var o=e.map(function(e){return t[e]}).reduce(function(e,t){return e+(void 0!==t?1:0)},0);if(o>1){var s=e[0],a=e.slice(1),i=a.join(", ")+" and "+s;return new Error("Invalid prop '"+n+"', only one of the following may be provided: "+i)}}return t}function l(e){if(void 0===e)throw new Error("No validations provided");if(!(e instanceof Array))throw new Error("Invalid argument must be an array");if(0===e.length)throw new Error("No validations provided");return function(t,n,r){for(var o=0;o>",b={deprecated:function(e,t){return function(n,r,o){return null!=n[r]&&m["default"](!1,'"'+r+'" property of "'+o+'" has been deprecated.\n'+t),e(n,r,o)}},isRequiredForA11y:function(e){return function(t,n,r){return null==t[n]?new Error("The prop `"+n+"` is required to make "+r+" accessible for users using assistive technologies such as screen readers `"):e(t,n,r)}},requiredRoles:function(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return r(function(e,n,r){var o=void 0,s=y["default"](e.children),a=function(e,t){return e===t.props.bsRole};return t.every(function(e){return s.some(function(t){return a(e,t)})?!0:(o=e,!1)}),o?new Error("(children) "+r+" - Missing a required child with bsRole: "+o+". "+(r+" must have at least one child of each of the following bsRoles: "+t.join(", "))):void 0})},exclusiveRoles:function(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return r(function(e,n,r){var o=y["default"](e.children),s=void 0;return t.every(function(e){var t=o.filter(function(t){return t.props.bsRole===e});return t.length>1?(s=e,!1):!0}),s?new Error("(children) "+r+" - Duplicate children detected of bsRole: "+s+". Only one child each allowed with the following bsRoles: "+t.join(", ")):void 0})},mountable:s(),elementType:u(),keyOf:a,singlePropFrom:i,all:l};t["default"]=b,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t,n){var r=0;return u["default"].Children.map(e,function(e){if(u["default"].isValidElement(e)){var o=r;return r++,t.call(n,e,o)}return e})}function o(e,t,n){var r=0;return u["default"].Children.forEach(e,function(e){u["default"].isValidElement(e)&&(t.call(n,e,r),r++)})}function s(e){var t=0;return u["default"].Children.forEach(e,function(e){u["default"].isValidElement(e)&&t++}),t}function a(e){var t=!1;return u["default"].Children.forEach(e,function(e){!t&&u["default"].isValidElement(e)&&(t=!0)}),t}var i=n(2)["default"];t.__esModule=!0;var l=n(1),u=i(l);t["default"]={map:r,forEach:o,numberOf:s,hasValidComponent:a},e.exports=t["default"]},function(e,t){"use strict";t["default"]=function(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n},t.__esModule=!0},function(e,t){"use strict";function n(){for(var e=arguments.length,t=Array(e),n=0;e>n;n++)t[n]=arguments[n];return t.filter(function(e){return null!=e}).reduce(function(e,t){if("function"!=typeof t)throw new Error("Invalid Argument Type, must only provide functions, undefined, or null.");return null===e?t:function(){for(var n=arguments.length,r=Array(n),o=0;n>o;o++)r[o]=arguments[o];e.apply(this,r),t.apply(this,r)}},null)}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t,n){var r=void 0;"object"==typeof e?r=e.message:(r=e+" is deprecated. Use "+t+" instead.",n&&(r+="\nYou can read more about it at "+n)),u[r]||(l["default"](!1,r),u[r]=!0)}var o=n(7)["default"],s=n(6)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(48),l=a(i),u={};r.wrapper=function(e){for(var t=arguments.length,n=Array(t>1?t-1:0),a=1;t>a;a++)n[a-1]=arguments[a];return function(e){function t(){s(this,t),e.apply(this,arguments)}return o(t,e),t.prototype.componentWillMount=function(){if(r.apply(void 0,n),e.prototype.componentWillMount){for(var t,o=arguments.length,s=Array(o),a=0;o>a;a++)s[a]=arguments[a];(t=e.prototype.componentWillMount).call.apply(t,[this].concat(s))}},t}(e)},t["default"]=r,e.exports=t["default"]},function(e,t,n){function r(e){return o(e)?e:Object(e)}var o=n(16);e.exports=r},function(e,t,n){"use strict";var r=n(7)["default"],o=n(6)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(11),p=a(u),d=function(e){function t(n){o(this,t),e.call(this,n),this.handleClick=this.handleClick.bind(this)}return r(t,e),t.prototype.handleClick=function(e){void 0===this.props.href&&e.preventDefault()},t.prototype.render=function(){return l["default"].createElement("a",s({role:this.props.href?void 0:"button"},this.props,{onClick:p["default"](this.props.onClick,this.handleClick),href:this.props.href||""}))},t}(l["default"].Component);t["default"]=d,d.propTypes={href:l["default"].PropTypes.string,onClick:l["default"].PropTypes.func},e.exports=t["default"]},function(e,t,n){var r=n(30),o=n(21),s=n(22),a="[object Array]",i=Object.prototype,l=i.toString,u=r(Array,"isArray"),p=u||function(e){return s(e)&&o(e.length)&&l.call(e)==a};e.exports=p},function(e,t){function n(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=n},function(e,t,n){e.exports={"default":n(156),__esModule:!0}},function(e,t){var n=e.exports={};"number"==typeof __e&&(__e=n)},function(e,t){"use strict";function n(e){return e&&e.ownerDocument||document}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t){"use strict";e.exports=!("undefined"==typeof window||!window.document||!window.document.createElement)},function(e,t){function n(e){return"number"==typeof e&&e>-1&&e%1==0&&r>=e}var r=9007199254740991;e.exports=n},function(e,t){function n(e){return!!e&&"object"==typeof e}e.exports=n},function(e,t,n){"use strict";function r(e){var t=p["default"].findDOMNode(e);return h["default"](t&&t.ownerDocument||document)}function o(e){var t=r(e);return v["default"](t)}function s(e){return r(e).defaultView.getComputedStyle(e,null)}function a(){return Math.max(document.documentElement.offsetHeight,document.height,document.body.scrollHeight,document.body.offsetHeight)}function i(e){var t={width:e.offsetWidth||0,height:e.offsetHeight||0};if("undefined"!=typeof e.getBoundingClientRect){var n=e.getBoundingClientRect(),r=n.width,o=n.height;t.width=r||t.width,t.height=o||t.height}return t}var l=n(2)["default"];t.__esModule=!0;var u=n(1),p=l(u),d=n(20),f=l(d),c=n(19),h=l(c),m=n(175),v=l(m),y=n(76),g=l(y),b=n(173),T=l(b),P=n(40),x=l(P),E=n(77),C=l(E),_=n(78),N=l(_),O=n(41),w=l(O);t["default"]={canUseDom:f["default"],css:w["default"],getComputedStyles:s,contains:g["default"],ownerWindow:o,ownerDocument:r,getOffset:x["default"],getDocumentHeight:a,getPosition:N["default"],getSize:i,activeElement:T["default"],offsetParent:C["default"]},e.exports=t["default"]},function(e,t,n){var r,o,s;!function(n,a){o=[t],r=a,s="function"==typeof r?r.apply(t,o):r,!(void 0!==s&&(e.exports=s))}(this,function(e){var t=e;t.interopRequireDefault=function(e){return e&&e.__esModule?e:{"default":e}},t._extends=Object.assign||function(e){for(var t=1;t0;++r=t-a?"bottom":null!=o&&o>=n?"top":!1,this.affixed!==l&&(null!=this.unpin&&(e.style.top=""),u="affix"+(l?"-"+l:""),this.affixed=l,this.unpin="bottom"===l?this.getPinnedOffset(e):null,"bottom"===l&&(e.className=e.className.replace(/affix-top|affix-bottom|affix/,"affix-bottom"),p=t-a-e.offsetHeight-i["default"].getOffset(e).top),this.setState({affixClass:u,affixPositionTop:p}))))},checkPositionWithEventLoop:function(){setTimeout(this.checkPosition,0)},componentDidMount:function(){this._onWindowScrollListener=u["default"].listen(window,"scroll",this.checkPosition),this._onDocumentClickListener=u["default"].listen(i["default"].ownerDocument(this),"click",this.checkPositionWithEventLoop)},componentWillUnmount:function(){this._onWindowScrollListener&&this._onWindowScrollListener.remove(),this._onDocumentClickListener&&this._onDocumentClickListener.remove()},componentDidUpdate:function(e,t){t.affixClass===this.state.affixClass&&this.checkPositionWithEventLoop()}};t["default"]=p,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(5),p=o(u),d=n(8),f=o(d),c=a["default"].createClass({displayName:"ButtonGroup",mixins:[p["default"]],propTypes:{vertical:a["default"].PropTypes.bool,justified:a["default"].PropTypes.bool,block:f["default"].all([a["default"].PropTypes.bool,function(e,t,n){return e.block&&!e.vertical?new Error("The block property requires the vertical property to be set to have any effect"):void 0}])},getDefaultProps:function(){return{block:!1,bsClass:"button-group",justified:!1,vertical:!1}},render:function(){var e=this.getBsClassSet();return e["btn-group"]=!this.props.vertical,e["btn-group-vertical"]=this.props.vertical,e["btn-group-justified"]=this.props.justified,e["btn-block"]=this.props.block,a["default"].createElement("div",r({},this.props,{className:l["default"](this.props.className,e)}),this.props.children)}});t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(7)["default"],o=n(6)["default"],s=n(10)["default"],a=n(3)["default"],i=n(2)["default"];t.__esModule=!0;var l=n(1),u=i(l),p=n(25),d=i(p),f=n(55),c=i(f),h=n(34),m=i(h),v=n(36),y=i(v),g=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.renderFormGroup=function(e){var t=this.props,n=(t.bsStyle,t.value,s(t,["bsStyle","value"]));return u["default"].createElement(c["default"],n,e)},t.prototype.renderInput=function(){var e=this.props,t=e.children,n=e.value,r=s(e,["children","value"]),o=t?t:n;return u["default"].createElement(d["default"],a({},r,{componentClass:"input",ref:"input",key:"input",value:o}))},t}(m["default"]);g.types=["button","reset","submit"],g.defaultProps={type:"button"},g.propTypes={type:u["default"].PropTypes.oneOf(g.types),bsStyle:function(e){return null},children:y["default"],value:y["default"]},t["default"]=g,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(17)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(1),i=s(a),l=n(4),u=s(l),p=n(28),d=s(p),f=n(8),c=s(f),h=i["default"].createClass({displayName:"Col",propTypes:{xs:i["default"].PropTypes.number,sm:i["default"].PropTypes.number,md:i["default"].PropTypes.number,lg:i["default"].PropTypes.number,xsOffset:i["default"].PropTypes.number,smOffset:i["default"].PropTypes.number,mdOffset:i["default"].PropTypes.number,lgOffset:i["default"].PropTypes.number,xsPush:i["default"].PropTypes.number,smPush:i["default"].PropTypes.number,mdPush:i["default"].PropTypes.number,lgPush:i["default"].PropTypes.number,xsPull:i["default"].PropTypes.number,smPull:i["default"].PropTypes.number,mdPull:i["default"].PropTypes.number,lgPull:i["default"].PropTypes.number,componentClass:c["default"].elementType},getDefaultProps:function(){return{componentClass:"div"}},render:function(){var e=this.props.componentClass,t={};return o(d["default"].SIZES).forEach(function(e){var n=d["default"].SIZES[e],r=n,o=n+"-";this.props[r]&&(t["col-"+o+this.props[r]]=!0),r=n+"Offset",o=n+"-offset-",this.props[r]>=0&&(t["col-"+o+this.props[r]]=!0),r=n+"Push",o=n+"-push-",this.props[r]>=0&&(t["col-"+o+this.props[r]]=!0),r=n+"Pull",o=n+"-pull-",this.props[r]>=0&&(t["col-"+o+this.props[r]]=!0)},this),i["default"].createElement(e,r({},this.props,{className:u["default"](this.props.className,t)}),this.props.children)}});t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(7)["default"],o=n(6)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(4),p=a(u),d=n(25),f=a(d),c=n(8),h=a(c),m=n(14),v=a(m),y=l["default"].createElement("span",null," ",l["default"].createElement("span",{className:"caret"})),g=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){var e=this.props.noCaret?null:y,t={"dropdown-toggle":!0},n=this.props.useAnchor?v["default"]:f["default"];return l["default"].createElement(n,s({},this.props,{className:p["default"](t,this.props.className),type:"button","aria-haspopup":!0,"aria-expanded":this.props.open}),this.props.title||this.props.children,e)},t}(l["default"].Component);t["default"]=g;var b=h["default"].singlePropFrom(["title","children"]);g.defaultProps={open:!1,useAnchor:!1,bsRole:"toggle"},g.propTypes={bsRole:l["default"].PropTypes.string,children:b,noCaret:l["default"].PropTypes.bool,open:l["default"].PropTypes.bool,title:b,useAnchor:l["default"].PropTypes.bool},g.isToggle=!0,g.titleProp="title",g.onClickProp="onClick",e.exports=t["default"]},function(e,t,n){"use strict";var r=n(2)["default"];t.__esModule=!0;var o=n(115),s=r(o);t.Static=s["default"]},function(e,t,n){"use strict";var r=n(7)["default"],o=n(6)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(1),i=s(a),l=n(4),u=s(l),p=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){var e={"form-group":!this.props.standalone,"form-group-lg":!this.props.standalone&&"large"===this.props.bsSize,"form-group-sm":!this.props.standalone&&"small"===this.props.bsSize,"has-feedback":this.props.hasFeedback,"has-success":"success"===this.props.bsStyle,"has-warning":"warning"===this.props.bsStyle,"has-error":"error"===this.props.bsStyle};return i["default"].createElement("div",{className:u["default"](e,this.props.groupClassName)},this.props.children)},t}(i["default"].Component);p.defaultProps={hasFeedback:!1,standalone:!1},p.propTypes={standalone:i["default"].PropTypes.bool,hasFeedback:i["default"].PropTypes.bool,bsSize:function(e){return e.standalone&&void 0!==e.bsSize?new Error("bsSize will not be used when `standalone` is set."):i["default"].PropTypes.oneOf(["small","medium","large"]).apply(null,arguments)},bsStyle:i["default"].PropTypes.oneOf(["success","warning","error"]),groupClassName:i["default"].PropTypes.string},t["default"]=p,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(8),p=o(u),d=a["default"].createClass({displayName:"Grid",propTypes:{fluid:a["default"].PropTypes.bool,componentClass:p["default"].elementType},getDefaultProps:function(){return{componentClass:"div",fluid:!1}},render:function(){var e=this.props.componentClass,t=this.props.fluid?"container-fluid":"container";return a["default"].createElement(e,r({},this.props,{className:l["default"](this.props.className,t)}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(9),l=o(i),u=/\%\((.+?)\)s/,p=a["default"].createClass({displayName:"Interpolate",propTypes:{component:a["default"].PropTypes.node,format:a["default"].PropTypes.string,unsafe:a["default"].PropTypes.bool},getDefaultProps:function(){return{component:"span",unsafe:!1}},render:function(){var e=l["default"].hasValidComponent(this.props.children)||"string"==typeof this.props.children?this.props.children:this.props.format,t=this.props.component,n=this.props.unsafe===!0,o=r({},this.props);if(delete o.children,delete o.format,delete o.component,delete o.unsafe,n){var s=e.split(u).reduce(function(e,t,n){var r=void 0;if(n%2===0?r=t:(r=o[t],delete o[t]),a["default"].isValidElement(r))throw new Error("cannot interpolate a React component into unsafe text");return e+=r},"");return o.dangerouslySetInnerHTML={__html:s},a["default"].createElement(t,o)}var i=e.split(u).reduce(function(e,t,n){var r=void 0;if(n%2===0){if(0===t.length)return e;r=t}else r=o[t],delete o[t];return e.push(r),e},[]);return a["default"].createElement(t,o,i)}});t["default"]=p,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(7)["default"],o=n(6)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(4),p=a(u),d=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){return l["default"].createElement("div",s({},this.props,{className:p["default"](this.props.className,this.props.modalClassName)}),this.props.children)},t}(l["default"].Component);d.propTypes={modalClassName:l["default"].PropTypes.string},d.defaultProps={modalClassName:"modal-body"},t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(7)["default"],o=n(6)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(4),p=a(u),d=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){return l["default"].createElement("div",s({},this.props,{className:p["default"](this.props.className,this.props.modalClassName)}),this.props.children)},t}(l["default"].Component);d.propTypes={modalClassName:l["default"].PropTypes.string},d.defaultProps={modalClassName:"modal-footer"},t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(7)["default"],o=n(6)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(4),p=a(u),d=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){return l["default"].createElement("div",s({},this.props,{className:p["default"](this.props.className,this.props.modalClassName)}),this.props.closeButton&&l["default"].createElement("button",{className:"close",onClick:this.props.onHide},l["default"].createElement("span",{"aria-hidden":"true"},"×")),this.props.children)},t}(l["default"].Component);d.__isModalHeader=!0,d.propTypes={"aria-label":l["default"].PropTypes.string,modalClassName:l["default"].PropTypes.string,closeButton:l["default"].PropTypes.bool,onHide:l["default"].PropTypes.func},d.defaultProps={"aria-label":"Close",modalClassName:"modal-header",closeButton:!1},t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(7)["default"],o=n(6)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(4),p=a(u),d=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){return l["default"].createElement("h4",s({},this.props,{className:p["default"](this.props.className,this.props.modalClassName)}),this.props.children)},t}(l["default"].Component);d.propTypes={modalClassName:l["default"].PropTypes.string},d.defaultProps={modalClassName:"modal-title"},t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(5),l=o(i),u=n(26),p=o(u),d=n(4),f=o(d),c=n(9),h=o(c),m=n(11),v=o(m),y=a["default"].createClass({displayName:"Nav",mixins:[l["default"]],propTypes:{activeHref:a["default"].PropTypes.string,activeKey:a["default"].PropTypes.any,bsStyle:a["default"].PropTypes.oneOf(["tabs","pills"]),stacked:a["default"].PropTypes.bool,justified:a["default"].PropTypes.bool,onSelect:a["default"].PropTypes.func,collapsible:a["default"].PropTypes.bool,className:a["default"].PropTypes.string,id:a["default"].PropTypes.oneOfType([a["default"].PropTypes.string,a["default"].PropTypes.number]),ulClassName:a["default"].PropTypes.string,ulId:a["default"].PropTypes.string,expanded:a["default"].PropTypes.bool,navbar:a["default"].PropTypes.bool,eventKey:a["default"].PropTypes.any,pullRight:a["default"].PropTypes.bool,right:a["default"].PropTypes.bool},getDefaultProps:function(){return{bsClass:"nav",collapsible:!1,expanded:!0,justified:!1,navbar:!1,pullRight:!1,right:!1,stacked:!1}},render:function(){var e=this.props.collapsible?"navbar-collapse":null;return this.props.navbar&&!this.props.collapsible?this.renderUl():a["default"].createElement(p["default"],{"in":this.props.expanded},a["default"].createElement("nav",r({},this.props,{className:f["default"](this.props.className,e)}),this.renderUl()))},renderUl:function(){var e=this.getBsClassSet();return e["nav-stacked"]=this.props.stacked,e["nav-justified"]=this.props.justified,e["navbar-nav"]=this.props.navbar,e["pull-right"]=this.props.pullRight,e["navbar-right"]=this.props.right,a["default"].createElement("ul",r({},this.props,{role:"tabs"===this.props.bsStyle?"tablist":null,className:f["default"](this.props.ulClassName,e),id:this.props.ulId,ref:"ul"}),h["default"].map(this.props.children,this.renderNavItem))},getChildActiveProp:function(e){return e.props.active?!0:null!=this.props.activeKey&&e.props.eventKey===this.props.activeKey?!0:null!=this.props.activeHref&&e.props.href===this.props.activeHref?!0:e.props.active},renderNavItem:function(e,t){return s.cloneElement(e,{role:"tabs"===this.props.bsStyle?"tab":null,active:this.getChildActiveProp(e),activeKey:this.props.activeKey,activeHref:this.props.activeHref,onSelect:v["default"](e.props.onSelect,this.props.onSelect),key:e.key?e.key:t,navItem:!0})}});t["default"]=y,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(7)["default"],o=n(6)["default"],s=n(3)["default"],a=n(10)["default"],i=n(2)["default"];t.__esModule=!0;var l=n(1),u=i(l),p=n(27),d=i(p),f=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){var e=this.props,t=e.children,n=e.title,r=e.noCaret,o=a(e,["children","title","noCaret"]);return u["default"].createElement(d["default"],s({},o,{componentClass:"li"}),u["default"].createElement(d["default"].Toggle,{useAnchor:!0,disabled:o.disabled,noCaret:r},n),u["default"].createElement(d["default"].Menu,null,t))},t}(u["default"].Component);f.propTypes=s({noCaret:u["default"].PropTypes.bool,title:u["default"].PropTypes.node.isRequired},d["default"].propTypes),t["default"]=f,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(10)["default"],o=n(3)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(1),i=s(a),l=n(4),u=s(l),p=n(5),d=s(p),f=n(14),c=s(f),h=i["default"].createClass({displayName:"NavItem",mixins:[d["default"]],propTypes:{linkId:i["default"].PropTypes.string,onSelect:i["default"].PropTypes.func,active:i["default"].PropTypes.bool,disabled:i["default"].PropTypes.bool,href:i["default"].PropTypes.string,role:i["default"].PropTypes.string,title:i["default"].PropTypes.node,eventKey:i["default"].PropTypes.any,target:i["default"].PropTypes.string,"aria-controls":i["default"].PropTypes.string},getDefaultProps:function(){return{active:!1,disabled:!1}},render:function(){var e=this.props,t=e.role,n=e.linkId,s=e.disabled,a=e.active,l=e.href,p=e.title,d=e.target,f=e.children,h=e["aria-controls"],m=r(e,["role","linkId","disabled","active","href","title","target","children","aria-controls"]),v={active:a,disabled:s},y={role:t,href:l,title:p,target:d,id:n,onClick:this.handleClick};return t||"#"!==l||(y.role="button"),i["default"].createElement("li",o({},m,{role:"presentation",className:u["default"](m.className,v)}),i["default"].createElement(c["default"],o({},y,{"aria-selected":a,"aria-controls":h}),f))},handleClick:function(e){this.props.onSelect&&(e.preventDefault(),this.props.disabled||this.props.onSelect(this.props.eventKey,this.props.href,this.props.target))}});t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(7)["default"],o=n(6)["default"],s=n(3)["default"],a=n(10)["default"],i=n(2)["default"];t.__esModule=!0;var l=n(1),u=i(l),p=n(223),d=i(p),f=n(8),c=i(f),h=n(32),m=i(h),v=n(4),y=i(v),g=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){var e=this.props,t=e.children,n=e.animation,r=a(e,["children","animation"]);return n===!0&&(n=m["default"]),n||(t=l.cloneElement(t,{className:y["default"]("in",t.props.className)})),u["default"].createElement(d["default"],s({},r,{transition:n}),t)},t}(u["default"].Component);g.propTypes=s({},d["default"].propTypes,{show:u["default"].PropTypes.bool,rootClose:u["default"].PropTypes.bool,onHide:u["default"].PropTypes.func,animation:u["default"].PropTypes.oneOfType([u["default"].PropTypes.bool,c["default"].elementType]),onEnter:u["default"].PropTypes.func,onEntering:u["default"].PropTypes.func,onEntered:u["default"].PropTypes.func,onExit:u["default"].PropTypes.func,onExiting:u["default"].PropTypes.func,onExited:u["default"].PropTypes.func}),g.defaultProps={animation:m["default"],rootClose:!1,show:!1},t["default"]=g,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(10)["default"],o=n(3)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(1),i=s(a),l=n(4),u=s(l),p=n(5),d=s(p),f=n(9),c=s(f),h=i["default"].createClass({displayName:"PanelGroup",mixins:[d["default"]],propTypes:{accordion:i["default"].PropTypes.bool,activeKey:i["default"].PropTypes.any,className:i["default"].PropTypes.string,children:i["default"].PropTypes.node,defaultActiveKey:i["default"].PropTypes.any,onSelect:i["default"].PropTypes.func},getDefaultProps:function(){return{accordion:!1,bsClass:"panel-group"}},getInitialState:function(){var e=this.props.defaultActiveKey;return{activeKey:e}},render:function(){var e=this.getBsClassSet(),t=this.props,n=t.className,s=r(t,["className"]);return this.props.accordion&&(s.role="tablist"),i["default"].createElement("div",o({},s,{className:u["default"](n,e),onSelect:null}),c["default"].map(s.children,this.renderPanel))},renderPanel:function(e,t){var n=null!=this.props.activeKey?this.props.activeKey:this.state.activeKey,r={bsStyle:e.props.bsStyle||this.props.bsStyle,key:e.key?e.key:t,ref:e.ref};return this.props.accordion&&(r.headerRole="tab",r.panelRole="tabpanel",r.collapsible=!0,r.expanded=e.props.eventKey===n,r.onSelect=this.handleSelect),a.cloneElement(e,r)},shouldComponentUpdate:function(){return!this._isChanging},handleSelect:function(e,t){e.preventDefault(),this.props.onSelect&&(this._isChanging=!0,this.props.onSelect(t),this._isChanging=!1),this.state.activeKey===t&&(t=null),this.setState({activeKey:t})}});t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(8),p=o(u),d=a["default"].createClass({displayName:"Row",propTypes:{componentClass:p["default"].elementType},getDefaultProps:function(){return{componentClass:"div"}},render:function(){var e=this.props.componentClass;return a["default"].createElement(e,r({},this.props,{className:l["default"](this.props.className,"row")}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(35),p=o(u),d=a["default"].createClass({displayName:"Tab",propTypes:{active:a["default"].PropTypes.bool,animation:a["default"].PropTypes.bool,onAnimateOutEnd:a["default"].PropTypes.func,disabled:a["default"].PropTypes.bool,title:a["default"].PropTypes.node},getDefaultProps:function(){return{animation:!0}},getInitialState:function(){return{animateIn:!1,animateOut:!1}},componentWillReceiveProps:function(e){this.props.animation&&(this.state.animateIn||!e.active||this.props.active?this.state.animateOut||e.active||!this.props.active||this.setState({animateOut:!0}):this.setState({animateIn:!0}))},componentDidUpdate:function(){this.state.animateIn&&setTimeout(this.startAnimateIn,0),this.state.animateOut&&p["default"].addEndEventListener(a["default"].findDOMNode(this),this.stopAnimateOut)},startAnimateIn:function(){this.isMounted()&&this.setState({animateIn:!1})},stopAnimateOut:function(){this.isMounted()&&(this.setState({animateOut:!1}),this.props.onAnimateOutEnd&&this.props.onAnimateOutEnd())},render:function(){var e={"tab-pane":!0,fade:!0,active:this.props.active||this.state.animateOut,"in":this.props.active&&!this.state.animateIn};return a["default"].createElement("div",r({},this.props,{title:void 0,role:"tabpanel","aria-hidden":!this.props.active,className:l["default"](this.props.className,e)}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(2)["default"];t.__esModule=!0;var o=n(1),s=r(o),a=n(12),i=r(a),l=n(68),u=r(l),p=s["default"].createClass({displayName:"TabPane",componentWillMount:function(){i["default"]("TabPane","Tab","https://github.com/react-bootstrap/react-bootstrap/pull/1091")},render:function(){return s["default"].createElement(u["default"],this.props)}});t["default"]=p,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){var t=void 0;return E["default"].forEach(e,function(e){null==t&&(t=e.props.eventKey)}),t}var o=n(3)["default"],s=n(10)["default"],a=n(17)["default"],i=n(2)["default"];t.__esModule=!0;var l=n(1),u=i(l),p=n(52),d=i(p),f=n(56),c=i(f),h=n(62),m=i(h),v=n(64),y=i(v),g=n(67),b=i(g),T=n(28),P=i(T),x=n(9),E=i(x),C=function(e,t){return t.props.id?t.props.id:e.id&&e.id+"___pane___"+t.props.eventKey},_=function(e,t){return t.props.id?t.props.id+"___tab":e.id&&e.id+"___tab___"+t.props.eventKey},N=u["default"].createClass({displayName:"Tabs",propTypes:{activeKey:u["default"].PropTypes.any,defaultActiveKey:u["default"].PropTypes.any,bsStyle:u["default"].PropTypes.oneOf(["tabs","pills"]),animation:u["default"].PropTypes.bool,id:u["default"].PropTypes.oneOfType([u["default"].PropTypes.string,u["default"].PropTypes.number]),onSelect:u["default"].PropTypes.func,position:u["default"].PropTypes.oneOf(["top","left","right"]),tabWidth:u["default"].PropTypes.oneOfType([u["default"].PropTypes.number,u["default"].PropTypes.object]),paneWidth:u["default"].PropTypes.oneOfType([u["default"].PropTypes.number,u["default"].PropTypes.object])},getDefaultProps:function(){return{animation:!0,tabWidth:2,position:"top"}},getInitialState:function(){var e=null!=this.props.defaultActiveKey?this.props.defaultActiveKey:r(this.props.children);return{activeKey:e,previousActiveKey:null}},componentWillReceiveProps:function(e){var t=this;null!=e.activeKey&&e.activeKey!==this.props.activeKey&&!function(){var n=t.props.activeKey;u["default"].Children.forEach(e.children,function(e){return u["default"].isValidElement(e)&&e.props.eventKey===n?void t.setState({previousActiveKey:n}):void 0})}()},handlePaneAnimateOutEnd:function(){this.setState({previousActiveKey:null})},render:function(){var e=this.props,t=e.id,n=e.className,r=e.style,a=e.position,i=e.bsStyle,l=e.tabWidth,p=e.paneWidth,f=e.children,h=s(e,["id","className","style","position","bsStyle","tabWidth","paneWidth","children"]),v="left"===a||"right"===a;null==i&&(i=v?"pills":"tabs");var y={id:t,className:n,style:r},g=o({},h,{bsStyle:i,stacked:v,activeKey:this.getActiveKey(),onSelect:this.handleSelect,ref:"tabs",role:"tablist"}),T=E["default"].map(f,this.renderTab),P={className:"tab-content",ref:"panes"},x=E["default"].map(f,this.renderPane);if(v){var C=this.getColProps({tabWidth:l,paneWidth:p}),_=C.tabsColProps,N=C.panesColProps,O=u["default"].createElement(d["default"],o({componentClass:m["default"]},g,_),T),w=u["default"].createElement(d["default"],o({},P,N),x),S=void 0;return S="left"===a?u["default"].createElement(b["default"],y,O,w):u["default"].createElement(b["default"],y,w,O),u["default"].createElement(c["default"],null,S)}return u["default"].createElement("div",y,u["default"].createElement(m["default"],g,T),u["default"].createElement("div",P,x))},getActiveKey:function(){return void 0!==this.props.activeKey?this.props.activeKey:this.state.activeKey},renderPane:function(e,t){var n=this.state.previousActiveKey,r=e.props.eventKey===this.getActiveKey(),o=null==n,s=null!=n&&e.props.eventKey===n;return l.cloneElement(e,{active:r&&(o||!this.props.animation),id:C(this.props,e),"aria-labelledby":_(this.props,e),key:e.key?e.key:t,animation:this.props.animation,onAnimateOutEnd:s?this.handlePaneAnimateOutEnd:null})},renderTab:function(e){if(null==e.props.title)return null;var t=e.props,n=t.eventKey,r=t.title,o=t.disabled;return u["default"].createElement(y["default"],{linkId:_(this.props,e),ref:"tab"+n,"aria-controls":C(this.props,e),eventKey:n,disabled:o},r)},getColProps:function(e){var t=e.tabWidth,n=e.paneWidth,r=void 0;r=t instanceof Object?t:{xs:t};var o=void 0;return null==n?(o={},a(r).forEach(function(e){o[e]=P["default"].GRID_COLUMNS-r[e]})):o=n instanceof Object?n:{xs:n},{tabsColProps:r,panesColProps:o}},shouldComponentUpdate:function(){return!this._isChanging},handleSelect:function(e){if(this.props.onSelect)return this._isChanging=!0,this.props.onSelect(e),void(this._isChanging=!1);var t=this.getActiveKey();e!==t&&this.setState({activeKey:e,previousActiveKey:t})}});t["default"]=N,e.exports=t["default"]},function(e,t){"use strict";t.__esModule=!0;var n={listen:function(e,t,n){return e.addEventListener?(e.addEventListener(t,n,!1),{remove:function(){e.removeEventListener(t,n,!1)}}):e.attachEvent?(e.attachEvent("on"+t,n),{remove:function(){e.detachEvent("on"+t,n)}}):void 0}};t["default"]=n,e.exports=t["default"]},function(e,t){"use strict";t["default"]=function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t},t.__esModule=!0},function(e,t,n){e.exports=function(e,t){var r=n(37),o=(n(18).Object||{})[e]||Object[e],s={};s[e]=t(o),r(r.S+r.F*n(165)(function(){o(1)}),"Object",s)}},function(e,t,n){var r=n(163);e.exports=function(e){return Object(r(e))}},function(e,t,n){"use strict";var r=n(20),o=function(){};r&&(o=function(){return document.addEventListener?function(e,t,n,r){return e.addEventListener(t,n,r||!1)}:document.attachEvent?function(e,t,n){return e.attachEvent("on"+t,n)}:void 0}()),e.exports=o},function(e,t,n){"use strict";var r=n(20),o=function(){var e=r&&document.documentElement;return e&&e.contains?function(e,t){return e.contains(t)}:e&&e.compareDocumentPosition?function(e,t){return e===t||!!(16&e.compareDocumentPosition(t))}:function(e,t){if(t)do if(t===e)return!0;while(t=t.parentNode);return!1}}();e.exports=o},function(e,t,n){"use strict";function r(e){return e.nodeName&&e.nodeName.toLowerCase()}function o(e){for(var t=i["default"](e),n=e&&e.offsetParent;n&&"html"!==r(e)&&"static"===u["default"](n,"position");)n=n.offsetParent;return n||t.documentElement}var s=n(24);t.__esModule=!0,t["default"]=o;var a=n(19),i=s.interopRequireDefault(a),l=n(41),u=s.interopRequireDefault(l);e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e.nodeName&&e.nodeName.toLowerCase()}function o(e,t){var n,o={top:0,left:0};return"fixed"===m["default"](e,"position")?n=e.getBoundingClientRect():(t=t||u["default"](e),n=i["default"](e),"html"!==r(t)&&(o=i["default"](t)),o.top+=parseInt(m["default"](t,"borderTopWidth"),10)-d["default"](t)||0,o.left+=parseInt(m["default"](t,"borderLeftWidth"),10)-c["default"](t)||0),s._extends({},n,{top:n.top-o.top-(parseInt(m["default"](e,"marginTop"),10)||0),left:n.left-o.left-(parseInt(m["default"](e,"marginLeft"),10)||0)})}var s=n(24);t.__esModule=!0,t["default"]=o;var a=n(40),i=s.interopRequireDefault(a),l=n(77),u=s.interopRequireDefault(l),p=n(79),d=s.interopRequireDefault(p),f=n(176),c=s.interopRequireDefault(f),h=n(41),m=s.interopRequireDefault(h);e.exports=t["default"]},function(e,t,n){"use strict";var r=n(39);e.exports=function(e,t){var n=r(e);return void 0===t?n?"pageYOffset"in n?n.pageYOffset:n.document.documentElement.scrollTop:e.scrollTop:void(n?n.scrollTo("pageXOffset"in n?n.pageXOffset:n.document.documentElement.scrollLeft,t):e.scrollTop=t)}},function(e,t,n){"use strict";var r=n(180),o=/^-ms-/;e.exports=function(e){return r(e.replace(o,"ms-"))}},function(e,t){t=e.exports=function(e){if(e&&"object"==typeof e){var t=e.which||e.keyCode||e.charCode;t&&(e=t)}if("number"==typeof e)return s[e];var o=String(e),a=n[o.toLowerCase()];if(a)return a;var a=r[o.toLowerCase()];return a?a:1===o.length?o.charCodeAt(0):void 0};var n=t.code=t.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,"right click":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},r=t.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:33,ins:45,del:46,cmd:91};/*!
+ * Programatically add the following
+ */
+for(o=97;123>o;o++)n[String.fromCharCode(o)]=o-32;for(var o=48;58>o;o++)n[o-48]=o;for(o=1;13>o;o++)n["f"+o]=o+111;for(o=0;10>o;o++)n["numpad "+o]=o+96;var s=t.names=t.title={};for(o in n)s[n[o]]=o;for(var a in r)n[a]=r[a]},function(e,t){function n(e,t){if("function"!=typeof e)throw new TypeError(r);return t=o(void 0===t?e.length-1:+t||0,0),function(){for(var n=arguments,r=-1,s=o(n.length-t,0),a=Array(s);++rr;)e=e[t[r++]];return r&&r==s?e:void 0}}var o=n(13);e.exports=r},function(e,t,n){function r(e,t,n,i,l,u){return e===t?!0:null==e||null==t||!s(e)&&!a(t)?e!==e&&t!==t:o(e,t,r,n,i,l,u)}var o=n(198),s=n(16),a=n(22);e.exports=r},function(e,t){function n(e){return function(t){return null==t?void 0:t[e]}}e.exports=n},function(e,t,n){var r=n(87),o=r("length");e.exports=o},function(e,t){function n(e,t){return e="number"==typeof e||r.test(e)?+e:-1,t=null==t?o:t,e>-1&&e%1==0&&t>e}var r=/^\d+$/,o=9007199254740991;e.exports=n},function(e,t,n){function r(e,t){var n=typeof e;if("string"==n&&i.test(e)||"number"==n)return!0;if(o(e))return!1;var r=!a.test(e);return r||null!=t&&e in s(t)}var o=n(15),s=n(13),a=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\n\\]|\\.)*?\1)\]/,i=/^\w*$/;e.exports=r},function(e,t,n){function r(e){return e===e&&!o(e)}var o=n(16);e.exports=r},function(e,t,n){function r(e,t){e=o(e);for(var n=-1,r=t.length,s={};++n=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}function i(){}t.__esModule=!0;var l=Object.assign||function(e){for(var t=1;t>",null!=n[r]?e(n,r,o):t?new Error("Required prop '"+r+"' was not specified in '"+o+"'."):void 0}var n=t.bind(null,!1);return n.isRequired=t.bind(null,!0),n}t.__esModule=!0,t.errMsg=n,t.createChainableTypeChecker=r},function(e,t,n){"use strict";function r(e,t,n){return"object"!=typeof e[t]||"function"!=typeof e[t].render&&1!==e[t].nodeType?new Error(o.errMsg(e,t,n,", expected a DOM element or an object that has a `render` method")):void 0}t.__esModule=!0;var o=n(101);t["default"]=o.createChainableTypeChecker(r),e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(66),l=o(i),u=a["default"].createClass({displayName:"Accordion",render:function(){return a["default"].createElement(l["default"],r({},this.props,{accordion:!0}),this.props.children)}});t["default"]=u,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(49),p=o(u),d=a["default"].createClass({displayName:"Affix",mixins:[p["default"]],render:function(){var e=r({top:this.state.affixPositionTop},this.props.style);return a["default"].createElement("div",r({},this.props,{className:l["default"](this.props.className,this.state.affixClass),style:e}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(5),p=o(u),d=a["default"].createClass({displayName:"Alert",mixins:[p["default"]],propTypes:{onDismiss:a["default"].PropTypes.func,dismissAfter:a["default"].PropTypes.number,closeLabel:a["default"].PropTypes.string},getDefaultProps:function(){return{bsClass:"alert",bsStyle:"info",closeLabel:"Close Alert"}},renderDismissButton:function(){return a["default"].createElement("button",{type:"button",className:"close","aria-label":this.props.closeLabel,onClick:this.props.onDismiss},a["default"].createElement("span",{"aria-hidden":"true"},"×"))},render:function(){var e=this.getBsClassSet(),t=!!this.props.onDismiss;return e["alert-dismissable"]=t,a["default"].createElement("div",r({},this.props,{role:"alert",className:l["default"](this.props.className,e)}),t?this.renderDismissButton():null,this.props.children)},componentDidMount:function(){this.props.dismissAfter&&this.props.onDismiss&&(this.dismissTimer=setTimeout(this.props.onDismiss,this.props.dismissAfter))},componentWillUnmount:function(){clearTimeout(this.dismissTimer)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(9),l=o(i),u=n(4),p=o(u),d=a["default"].createClass({displayName:"Badge",propTypes:{pullRight:a["default"].PropTypes.bool},getDefaultProps:function(){return{pullRight:!1}},hasContent:function(){return l["default"].hasValidComponent(this.props.children)||a["default"].Children.count(this.props.children)>1||"string"==typeof this.props.children||"number"==typeof this.props.children},render:function(){var e={"pull-right":this.props.pullRight,badge:this.hasContent()};return a["default"].createElement("span",r({},this.props,{className:p["default"](this.props.className,e)}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(5),p=o(u),d=a["default"].createClass({displayName:"ButtonToolbar",mixins:[p["default"]],getDefaultProps:function(){return{bsClass:"button-toolbar"}},render:function(){var e=this.getBsClassSet();return a["default"].createElement("div",r({},this.props,{role:"toolbar",className:l["default"](this.props.className,e)}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(5),p=o(u),d=n(9),f=o(d),c=n(33),h=o(c),m=a["default"].createClass({displayName:"Carousel",mixins:[p["default"]],propTypes:{slide:a["default"].PropTypes.bool,indicators:a["default"].PropTypes.bool,interval:a["default"].PropTypes.number,controls:a["default"].PropTypes.bool,pauseOnHover:a["default"].PropTypes.bool,wrap:a["default"].PropTypes.bool,onSelect:a["default"].PropTypes.func,onSlideEnd:a["default"].PropTypes.func,activeIndex:a["default"].PropTypes.number,defaultActiveIndex:a["default"].PropTypes.number,direction:a["default"].PropTypes.oneOf(["prev","next"]),prevIcon:a["default"].PropTypes.node,nextIcon:a["default"].PropTypes.node},getDefaultProps:function(){return{slide:!0,interval:5e3,pauseOnHover:!0,wrap:!0,indicators:!0,controls:!0,prevIcon:a["default"].createElement(h["default"],{glyph:"chevron-left"}),nextIcon:a["default"].createElement(h["default"],{glyph:"chevron-right"})}},getInitialState:function(){return{activeIndex:null==this.props.defaultActiveIndex?0:this.props.defaultActiveIndex,previousActiveIndex:null,direction:null}},getDirection:function(e,t){return e===t?null:e>t?"prev":"next"},componentWillReceiveProps:function(e){var t=this.getActiveIndex();null!=e.activeIndex&&e.activeIndex!==t&&(clearTimeout(this.timeout),this.setState({previousActiveIndex:t,direction:null!=e.direction?e.direction:this.getDirection(t,e.activeIndex)}))},componentDidMount:function(){this.waitForNext()},componentWillUnmount:function(){clearTimeout(this.timeout)},next:function(e){e&&e.preventDefault();var t=this.getActiveIndex()+1,n=f["default"].numberOf(this.props.children);if(t>n-1){if(!this.props.wrap)return;t=0}this.handleSelect(t,"next")},prev:function(e){e&&e.preventDefault();var t=this.getActiveIndex()-1;if(0>t){if(!this.props.wrap)return;t=f["default"].numberOf(this.props.children)-1}this.handleSelect(t,"prev")},pause:function(){this.isPaused=!0,clearTimeout(this.timeout)},play:function(){this.isPaused=!1,this.waitForNext()},waitForNext:function(){!this.isPaused&&this.props.slide&&this.props.interval&&null==this.props.activeIndex&&(this.timeout=setTimeout(this.next,this.props.interval))},handleMouseOver:function(){this.props.pauseOnHover&&this.pause()},handleMouseOut:function(){this.isPaused&&this.play()},render:function(){var e={carousel:!0,slide:this.props.slide};return a["default"].createElement("div",r({},this.props,{className:l["default"](this.props.className,e),onMouseOver:this.handleMouseOver,onMouseOut:this.handleMouseOut}),this.props.indicators?this.renderIndicators():null,a["default"].createElement("div",{className:"carousel-inner",ref:"inner"},f["default"].map(this.props.children,this.renderItem)),this.props.controls?this.renderControls():null)},renderPrev:function(){return a["default"].createElement("a",{className:"left carousel-control",href:"#prev",key:0,onClick:this.prev},this.props.prevIcon)},renderNext:function(){return a["default"].createElement("a",{className:"right carousel-control",href:"#next",key:1,onClick:this.next},this.props.nextIcon)},renderControls:function(){if(!this.props.wrap){var e=this.getActiveIndex(),t=f["default"].numberOf(this.props.children);return[0!==e?this.renderPrev():null,e!==t-1?this.renderNext():null]}return[this.renderPrev(),this.renderNext()]},renderIndicator:function(e,t){var n=t===this.getActiveIndex()?"active":null;return a["default"].createElement("li",{key:t,className:n,onClick:this.handleSelect.bind(this,t,null)})},renderIndicators:function(){var e=[];return f["default"].forEach(this.props.children,function(t,n){e.push(this.renderIndicator(t,n)," ")},this),a["default"].createElement("ol",{className:"carousel-indicators"},e)},getActiveIndex:function(){return null!=this.props.activeIndex?this.props.activeIndex:this.state.activeIndex},handleItemAnimateOutEnd:function(){this.setState({previousActiveIndex:null,direction:null},function(){this.waitForNext(),this.props.onSlideEnd&&this.props.onSlideEnd()})},renderItem:function(e,t){var n=this.getActiveIndex(),r=t===n,o=null!=this.state.previousActiveIndex&&this.state.previousActiveIndex===t&&this.props.slide;return s.cloneElement(e,{active:r,ref:e.ref,key:e.key?e.key:t,index:t,animateOut:o,animateIn:r&&null!=this.state.previousActiveIndex&&this.props.slide,direction:this.state.direction,onAnimateOutEnd:o?this.handleItemAnimateOutEnd:null})},handleSelect:function(e,t){if(clearTimeout(this.timeout),this.isMounted()){var n=this.getActiveIndex();if(t=t||this.getDirection(n,e),this.props.onSelect&&this.props.onSelect(e,t),null==this.props.activeIndex&&e!==n){if(null!=this.state.previousActiveIndex)return;this.setState({activeIndex:e,previousActiveIndex:n,direction:t})}}}});t["default"]=m,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(35),p=o(u),d=a["default"].createClass({displayName:"CarouselItem",propTypes:{direction:a["default"].PropTypes.oneOf(["prev","next"]),onAnimateOutEnd:a["default"].PropTypes.func,active:a["default"].PropTypes.bool,animateIn:a["default"].PropTypes.bool,animateOut:a["default"].PropTypes.bool,caption:a["default"].PropTypes.node,index:a["default"].PropTypes.number},getInitialState:function(){return{direction:null}},getDefaultProps:function(){return{active:!1,animateIn:!1,animateOut:!1}},handleAnimateOutEnd:function(){this.props.onAnimateOutEnd&&this.isMounted()&&this.props.onAnimateOutEnd(this.props.index)},componentWillReceiveProps:function(e){this.props.active!==e.active&&this.setState({direction:null})},componentDidUpdate:function(e){!this.props.active&&e.active&&p["default"].addEndEventListener(a["default"].findDOMNode(this),this.handleAnimateOutEnd),this.props.active!==e.active&&setTimeout(this.startAnimation,20)},startAnimation:function(){this.isMounted()&&this.setState({direction:"prev"===this.props.direction?"right":"left"})},render:function(){var e={item:!0,active:this.props.active&&!this.props.animateIn||this.props.animateOut,next:this.props.active&&this.props.animateIn&&"next"===this.props.direction,prev:this.props.active&&this.props.animateIn&&"prev"===this.props.direction};return this.state.direction&&(this.props.animateIn||this.props.animateOut)&&(e[this.state.direction]=!0),a["default"].createElement("div",r({},this.props,{className:l["default"](this.props.className,e)}),this.props.children,this.props.caption?this.renderCaption():null)},renderCaption:function(){return a["default"].createElement("div",{className:"carousel-caption"},this.props.caption)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(2)["default"];t.__esModule=!0;var o=n(1),s=r(o),a=n(35),i=r(a),l=n(12),u=r(l),p={propTypes:{defaultExpanded:s["default"].PropTypes.bool,expanded:s["default"].PropTypes.bool},getInitialState:function(){var e=null!=this.props.defaultExpanded?this.props.defaultExpanded:null!=this.props.expanded?this.props.expanded:!1;return{expanded:e,collapsing:!1}},componentWillMount:function(){u["default"]("CollapsibleMixin","Collapse Component")},componentWillUpdate:function(e,t){var n=null!=e.expanded?e.expanded:t.expanded;if(n!==this.isExpanded()){var r=this.getCollapsibleDOMNode(),o=this.dimension(),s="0";n||(s=this.getCollapsibleDimensionValue()),r.style[o]=s+"px",this._afterWillUpdate()}},componentDidUpdate:function(e,t){this._checkToggleCollapsing(e,t),this._checkStartAnimation()},_afterWillUpdate:function(){},_checkStartAnimation:function(){if(this.state.collapsing){var e=this.getCollapsibleDOMNode(),t=this.dimension(),n=this.getCollapsibleDimensionValue(),r=void 0;r=this.isExpanded()?n+"px":"0px",e.style[t]=r}},_checkToggleCollapsing:function(e,t){var n=null!=e.expanded?e.expanded:t.expanded,r=this.isExpanded();n!==r&&(n?this._handleCollapse():this._handleExpand())},_handleExpand:function(){var e=this,t=this.getCollapsibleDOMNode(),n=this.dimension(),r=function o(){e._removeEndEventListener(t,o),t.style[n]="",e.setState({collapsing:!1})};this._addEndEventListener(t,r),this.setState({collapsing:!0})},_handleCollapse:function(){var e=this,t=this.getCollapsibleDOMNode(),n=function r(){e._removeEndEventListener(t,r),e.setState({collapsing:!1})};this._addEndEventListener(t,n),this.setState({collapsing:!0})},_addEndEventListener:function(e,t){i["default"].addEndEventListener(e,t)},_removeEndEventListener:function(e,t){i["default"].removeEndEventListener(e,t)},dimension:function(){return"function"==typeof this.getCollapsibleDimension?this.getCollapsibleDimension():"height"},isExpanded:function(){return null!=this.props.expanded?this.props.expanded:this.state.expanded},getCollapsibleClassSet:function(e){var t={};return"string"==typeof e&&e.split(" ").forEach(function(e){e&&(t[e]=!0)}),t.collapsing=this.state.collapsing,t.collapse=!this.state.collapsing,t["in"]=this.isExpanded()&&!this.state.collapsing,t}};t["default"]=p,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(2)["default"];t.__esModule=!0;var o=n(1),s=r(o),a=n(5),i=r(a),l=n(26),u=r(l),p=n(4),d=r(p),f=n(9),c=r(f),h=n(11),m=r(h),v=s["default"].createClass({displayName:"CollapsibleNav",mixins:[i["default"]],propTypes:{onSelect:s["default"].PropTypes.func,activeHref:s["default"].PropTypes.string,activeKey:s["default"].PropTypes.any,collapsible:s["default"].PropTypes.bool,expanded:s["default"].PropTypes.bool,eventKey:s["default"].PropTypes.any},getDefaultProps:function(){return{collapsible:!1,expanded:!1}},render:function(){var e=this.props.collapsible?"navbar-collapse":null,t=this.props.collapsible?this.renderCollapsibleNavChildren:this.renderChildren,n=s["default"].createElement("div",{eventKey:this.props.eventKey,className:d["default"](this.props.className,e)},c["default"].map(this.props.children,t));return this.props.collapsible?s["default"].createElement(u["default"],{"in":this.props.expanded},n):n},getChildActiveProp:function(e){return e.props.active?!0:null!=this.props.activeKey&&e.props.eventKey===this.props.activeKey?!0:null!=this.props.activeHref&&e.props.href===this.props.activeHref?!0:e.props.active},renderChildren:function(e,t){var n=e.key?e.key:t;return o.cloneElement(e,{activeKey:this.props.activeKey,activeHref:this.props.activeHref,ref:"nocollapse_"+n,key:n,navItem:!0})},renderCollapsibleNavChildren:function(e,t){var n=e.key?e.key:t;return o.cloneElement(e,{active:this.getChildActiveProp(e),activeKey:this.props.activeKey,activeHref:this.props.activeHref,onSelect:m["default"](e.props.onSelect,this.props.onSelect),ref:"collapsible_"+n,key:n,navItem:!0})}});t["default"]=v,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(7)["default"],o=n(6)["default"],s=n(3)["default"],a=n(10)["default"],i=n(2)["default"];t.__esModule=!0;var l=n(1),u=i(l),p=n(5),d=i(p),f=n(27),c=i(f),h=n(63),m=i(h),v=n(8),y=i(v),g=n(12),b=i(g),T=n(95),P=i(T),x=function(e){function t(n){o(this,t),e.call(this,n)}return r(t,e),t.prototype.render=function(){var e=this.props,t=e.title,n=e.navItem,r=a(e,["title","navItem"]),o=P["default"](r,c["default"].ControlledComponent.propTypes);return n?u["default"].createElement(m["default"],this.props):u["default"].createElement(c["default"],r,u["default"].createElement(c["default"].Toggle,o,t),u["default"].createElement(c["default"].Menu,null,this.props.children))},t}(u["default"].Component);x.propTypes=s({noCaret:u["default"].PropTypes.bool,navItem:y["default"].all([u["default"].PropTypes.bool,function(e,t,n){e.navItem&&b["default"]("navItem","NavDropdown component","https://github.com/react-bootstrap/react-bootstrap/issues/526")}]),title:u["default"].PropTypes.node.isRequired},c["default"].propTypes,d["default"].propTypes),x.defaultProps={pullRight:!1,dropup:!1,navItem:!1,noCaret:!1},t["default"]=x,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(7)["default"],o=n(6)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(1),i=s(a),l=n(81),u=s(l),p=n(4),d=s(p),f=n(98),c=s(f),h=n(9),m=s(h),v=n(11),y=s(v),g=function(e){function t(n){o(this,t),e.call(this,n),this.focusNext=this.focusNext.bind(this),this.focusPrevious=this.focusPrevious.bind(this),this.getFocusableMenuItems=this.getFocusableMenuItems.bind(this),this.getItemsAndActiveIndex=this.getItemsAndActiveIndex.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this)}return r(t,e),t.prototype.handleKeyDown=function(e){switch(e.keyCode){case u["default"].codes.down:this.focusNext(),e.preventDefault();break;case u["default"].codes.up:this.focusPrevious(),e.preventDefault();break;case u["default"].codes.esc:case u["default"].codes.tab:this.props.onClose(e)}},t.prototype.focusNext=function(){var e=this.getItemsAndActiveIndex(),t=e.items,n=e.activeItemIndex;return n===t.length-1?void t[0].focus():void t[n+1].focus()},t.prototype.focusPrevious=function(){var e=this.getItemsAndActiveIndex(),t=e.items,n=e.activeItemIndex;return 0===n?void t[t.length-1].focus():void t[n-1].focus()},t.prototype.getItemsAndActiveIndex=function(){var e=this.getFocusableMenuItems(),t=document.activeElement,n=e.indexOf(t);return{items:e,activeItemIndex:n}},t.prototype.getFocusableMenuItems=function(){var e=i["default"].findDOMNode(this);return void 0===e?[]:[].slice.call(e.querySelectorAll('[tabIndex="-1"]'),0)},t.prototype.render=function(){var e=this,t=m["default"].map(this.props.children,function(t){var n=t.props||{},r=n.children,o=n.onKeyDown,s=n.onSelect;return i["default"].cloneElement(t,{onKeyDown:y["default"](o,e.handleKeyDown),onSelect:y["default"](s,e.props.onSelect)},r)}),n={"dropdown-menu":!0,"dropdown-menu-right":this.props.pullRight},r=i["default"].createElement("ul",{className:d["default"](this.props.className,n),role:"menu","aria-labelledby":this.props.labelledBy},t);return this.props.open&&(r=i["default"].createElement(c["default"],{noWrap:!0,onRootClose:this.props.onClose},r)),r},t}(i["default"].Component);g.defaultProps={bsRole:"menu",pullRight:!1},g.propTypes={open:i["default"].PropTypes.bool,pullRight:i["default"].PropTypes.bool,onClose:i["default"].PropTypes.func,labelledBy:i["default"].PropTypes.oneOfType([i["default"].PropTypes.string,i["default"].PropTypes.number]),onSelect:i["default"].PropTypes.func},t["default"]=g,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){var n=e.querySelectorAll("."+t.join("."));n=[].map.call(n,function(e){return e});for(var r=0;rr(a,this),this._originalPadding=a.style.paddingRight,this._containerIsOverflowing&&(a.style.paddingRight=parseInt(this._originalPadding||0,10)+g["default"]()+"px"),this.props.backdrop&&this.iosClickHack(),this.setState(this._getStyles(),function(){return e.focusModalContent()})},onHide:function(){this._onDocumentKeyupListener.remove(),this._onWindowResizeListener.remove(),this._onFocusinListener&&this._onFocusinListener.remove();var e=o(this);e.style.paddingRight=this._originalPadding,e.className=e.className.replace(/ ?modal-open/,""),this.restoreLastFocus()},handleHidden:function(){if(this.setState({exited:!0}),this.onHide(),this.props.onExited){var e;(e=this.props).onExited.apply(e,arguments)}},handleBackdropClick:function(e){e.target===e.currentTarget&&this.props.onHide()},handleDocumentKeyUp:function(e){this.props.keyboard&&27===e.keyCode&&this.props.onHide()},handleWindowResize:function(){this.setState(this._getStyles())},checkForFocus:function(){v["default"].canUseDom&&(this.lastFocus=v["default"].activeElement(document))},focusModalContent:function(){var e=f["default"].findDOMNode(this.refs.dialog),t=v["default"].activeElement(v["default"].ownerDocument(this)),n=t&&v["default"].contains(e,t);e&&this.props.autoFocus&&!n&&(this.lastFocus=t,e.focus())},restoreLastFocus:function(){this.lastFocus&&this.lastFocus.focus&&(this.lastFocus.focus(),this.lastFocus=null)},enforceFocus:function(){if(this.isMounted()){var e=v["default"].activeElement(v["default"].ownerDocument(this)),t=f["default"].findDOMNode(this.refs.dialog);t&&t!==e&&!v["default"].contains(t,e)&&t.focus()}},iosClickHack:function(){f["default"].findDOMNode(this.refs.modal).onclick=function(){},f["default"].findDOMNode(this.refs.backdrop).onclick=function(){}},_getStyles:function(){if(!v["default"].canUseDom)return{};var e=f["default"].findDOMNode(this.refs.modal),t=e.scrollHeight,n=o(this),s=this._containerIsOverflowing,a=t>r(n,this);return{dialogStyles:{paddingRight:s&&!a?g["default"]():void 0,paddingLeft:!s&&a?g["default"]():void 0}}}});F.Body=D["default"],F.Header=I["default"],F.Title=L["default"],F.Footer=K["default"],F.Dialog=k["default"],F.TRANSITION_DURATION=300,F.BACKDROP_TRANSITION_DURATION=150,t["default"]=F,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(5),p=o(u),d=a["default"].createClass({displayName:"ModalDialog",mixins:[p["default"]],propTypes:{onHide:a["default"].PropTypes.func.isRequired,dialogClassName:a["default"].PropTypes.string},getDefaultProps:function(){return{bsClass:"modal",closeButton:!0}},render:function(){var e=r({display:"block"},this.props.style),t=this.props.bsClass,n=this.getBsClassSet();return delete n.modal,n[t+"-dialog"]=!0,a["default"].createElement("div",r({},this.props,{title:null,tabIndex:"-1",role:"dialog",style:e,className:l["default"](this.props.className,t)}),a["default"].createElement("div",{className:l["default"](this.props.dialogClassName,n)},a["default"].createElement("div",{className:t+"-content",role:"document"},this.props.children)))}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(5),l=o(i),u=n(4),p=o(u),d=n(9),f=o(d),c=n(11),h=o(c),m=n(8),v=o(m),y=a["default"].createClass({displayName:"Navbar",mixins:[l["default"]],propTypes:{fixedTop:a["default"].PropTypes.bool,fixedBottom:a["default"].PropTypes.bool,staticTop:a["default"].PropTypes.bool,inverse:a["default"].PropTypes.bool,fluid:a["default"].PropTypes.bool,role:a["default"].PropTypes.string,componentClass:v["default"].elementType,brand:a["default"].PropTypes.node,toggleButton:a["default"].PropTypes.node,toggleNavKey:a["default"].PropTypes.oneOfType([a["default"].PropTypes.string,a["default"].PropTypes.number]),onToggle:a["default"].PropTypes.func,navExpanded:a["default"].PropTypes.bool,defaultNavExpanded:a["default"].PropTypes.bool},getDefaultProps:function(){return{bsClass:"navbar",bsStyle:"default",role:"navigation",componentClass:"nav",fixedTop:!1,fixedBottom:!1,staticTop:!1,inverse:!1,fluid:!1,defaultNavExpanded:!1}},getInitialState:function(){return{navExpanded:this.props.defaultNavExpanded}},shouldComponentUpdate:function(){return!this._isChanging},handleToggle:function(){this.props.onToggle&&(this._isChanging=!0,this.props.onToggle(),this._isChanging=!1),this.setState({navExpanded:!this.state.navExpanded})},isNavExpanded:function(){return null!=this.props.navExpanded?this.props.navExpanded:this.state.navExpanded},render:function(){var e=this.getBsClassSet(),t=this.props.componentClass;return e["navbar-fixed-top"]=this.props.fixedTop,e["navbar-fixed-bottom"]=this.props.fixedBottom,e["navbar-static-top"]=this.props.staticTop,e["navbar-inverse"]=this.props.inverse,a["default"].createElement(t,r({},this.props,{className:p["default"](this.props.className,e)}),a["default"].createElement("div",{className:this.props.fluid?"container-fluid":"container"},this.props.brand||this.props.toggleButton||null!=this.props.toggleNavKey?this.renderHeader():null,f["default"].map(this.props.children,this.renderChild)))},renderChild:function(e,t){return s.cloneElement(e,{navbar:!0,collapsible:null!=this.props.toggleNavKey&&this.props.toggleNavKey===e.props.eventKey,expanded:null!=this.props.toggleNavKey&&this.props.toggleNavKey===e.props.eventKey&&this.isNavExpanded(),key:e.key?e.key:t})},renderHeader:function(){var e=void 0;return this.props.brand&&(e=a["default"].isValidElement(this.props.brand)?s.cloneElement(this.props.brand,{className:p["default"](this.props.brand.props.className,"navbar-brand")}):a["default"].createElement("span",{className:"navbar-brand"},this.props.brand)),a["default"].createElement("div",{className:"navbar-header"},e,this.props.toggleButton||null!=this.props.toggleNavKey?this.renderToggleButton():null)},renderToggleButton:function(){var e=void 0;return a["default"].isValidElement(this.props.toggleButton)?s.cloneElement(this.props.toggleButton,{className:p["default"](this.props.toggleButton.props.className,"navbar-toggle"),onClick:h["default"](this.handleToggle,this.props.toggleButton.props.onClick)}):(e=null!=this.props.toggleButton?this.props.toggleButton:[a["default"].createElement("span",{className:"sr-only",key:0},"Toggle navigation"),a["default"].createElement("span",{className:"icon-bar",key:1}),a["default"].createElement("span",{className:"icon-bar",key:2}),a["default"].createElement("span",{className:"icon-bar",key:3})],a["default"].createElement("button",{className:"navbar-toggle",type:"button",onClick:this.handleToggle},e))}});t["default"]=y,e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){return Array.isArray(t)?t.indexOf(e)>=0:e===t}var o=n(3)["default"],s=n(17)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(11),p=a(u),d=n(145),f=a(d),c=n(65),h=a(c),m=n(48),v=a(m),y=n(221),g=a(y),b=l["default"].createClass({displayName:"OverlayTrigger",propTypes:o({},h["default"].propTypes,{trigger:l["default"].PropTypes.oneOfType([l["default"].PropTypes.oneOf(["click","hover","focus"]),l["default"].PropTypes.arrayOf(l["default"].PropTypes.oneOf(["click","hover","focus"]))]),delay:l["default"].PropTypes.number,delayShow:l["default"].PropTypes.number,delayHide:l["default"].PropTypes.number,defaultOverlayShown:l["default"].PropTypes.bool,overlay:l["default"].PropTypes.node.isRequired,onBlur:l["default"].PropTypes.func,onClick:l["default"].PropTypes.func,onFocus:l["default"].PropTypes.func,onMouseEnter:l["default"].PropTypes.func,onMouseLeave:l["default"].PropTypes.func,target:function(){},onHide:function(){},show:function(){}}),getDefaultProps:function(){return{defaultOverlayShown:!1,trigger:["hover","focus"]}},getInitialState:function(){return{isOverlayShown:this.props.defaultOverlayShown}},show:function(){this.setState({isOverlayShown:!0})},hide:function(){this.setState({isOverlayShown:!1})},toggle:function(){this.state.isOverlayShown?this.hide():this.show()},componentDidMount:function(){this._mountNode=document.createElement("div"),l["default"].render(this._overlay,this._mountNode)},componentWillUnmount:function(){l["default"].unmountComponentAtNode(this._mountNode),this._mountNode=null,clearTimeout(this._hoverDelay)},componentDidUpdate:function(){this._mountNode&&l["default"].render(this._overlay,this._mountNode)},getOverlayTarget:function(){return l["default"].findDOMNode(this)},getOverlay:function(){var e=o({},g["default"](this.props,s(h["default"].propTypes)),{show:this.state.isOverlayShown,onHide:this.hide,target:this.getOverlayTarget,onExit:this.props.onExit,onExiting:this.props.onExiting,onExited:this.props.onExited,onEnter:this.props.onEnter,onEntering:this.props.onEntering,onEntered:this.props.onEntered}),t=i.cloneElement(this.props.overlay,{placement:e.placement,container:e.container});return l["default"].createElement(h["default"],e,t)},render:function(){var e=l["default"].Children.only(this.props.children),t={"aria-describedby":this.props.overlay.props.id};return this._overlay=this.getOverlay(),t.onClick=p["default"](e.props.onClick,this.props.onClick),r("click",this.props.trigger)&&(t.onClick=p["default"](this.toggle,t.onClick)),r("hover",this.props.trigger)&&(v["default"](!("hover"===this.props.trigger),'[react-bootstrap] Specifying only the `"hover"` trigger limits the visibilty 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.'),t.onMouseOver=p["default"](this.handleDelayedShow,this.props.onMouseOver),t.onMouseOut=p["default"](this.handleDelayedHide,this.props.onMouseOut)),r("focus",this.props.trigger)&&(t.onFocus=p["default"](this.handleDelayedShow,this.props.onFocus),t.onBlur=p["default"](this.handleDelayedHide,this.props.onBlur)),i.cloneElement(e,t)},handleDelayedShow:function(){var e=this;if(null!=this._hoverDelay)return clearTimeout(this._hoverDelay),void(this._hoverDelay=null);var t=null!=this.props.delayShow?this.props.delayShow:this.props.delay;return t?void(this._hoverDelay=setTimeout(function(){e._hoverDelay=null,e.show()},t)):void this.show()},handleDelayedHide:function(){var e=this;if(null!=this._hoverDelay)return clearTimeout(this._hoverDelay),void(this._hoverDelay=null);var t=null!=this.props.delayHide?this.props.delayHide:this.props.delay;return t?void(this._hoverDelay=setTimeout(function(){e._hoverDelay=null,e.hide()},t)):void this.hide()}});b.withContext=f["default"](b,"overlay"),t["default"]=b,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=a["default"].createClass({displayName:"PageHeader",render:function(){return a["default"].createElement("div",r({},this.props,{className:l["default"](this.props.className,"page-header")}),a["default"].createElement("h1",null,this.props.children))}});t["default"]=u,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(14),p=o(u),d=a["default"].createClass({displayName:"PageItem",propTypes:{href:a["default"].PropTypes.string,target:a["default"].PropTypes.string,title:a["default"].PropTypes.string,disabled:a["default"].PropTypes.bool,previous:a["default"].PropTypes.bool,next:a["default"].PropTypes.bool,onSelect:a["default"].PropTypes.func,eventKey:a["default"].PropTypes.any},getDefaultProps:function(){return{disabled:!1,previous:!1,next:!1}},render:function(){var e={disabled:this.props.disabled,previous:this.props.previous,next:this.props.next};return a["default"].createElement("li",r({},this.props,{className:l["default"](this.props.className,e)}),a["default"].createElement(p["default"],{href:this.props.href,title:this.props.title,target:this.props.target,onClick:this.handleSelect},this.props.children))},handleSelect:function(e){(this.props.onSelect||this.props.disabled)&&(e.preventDefault(),this.props.disabled||this.props.onSelect(this.props.eventKey,this.props.href,this.props.target))}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(9),p=o(u),d=n(11),f=o(d),c=a["default"].createClass({displayName:"Pager",propTypes:{onSelect:a["default"].PropTypes.func},render:function(){return a["default"].createElement("ul",r({},this.props,{className:l["default"](this.props.className,"pager")}),p["default"].map(this.props.children,this.renderPageItem))},renderPageItem:function(e,t){return s.cloneElement(e,{onSelect:f["default"](e.props.onSelect,this.props.onSelect),key:e.key?e.key:t})}});t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(5),p=o(u),d=n(130),f=o(d),c=n(8),h=o(c),m=n(14),v=o(m),y=a["default"].createClass({displayName:"Pagination",mixins:[p["default"]],propTypes:{activePage:a["default"].PropTypes.number,items:a["default"].PropTypes.number,maxButtons:a["default"].PropTypes.number,ellipsis:a["default"].PropTypes.bool,first:a["default"].PropTypes.bool,last:a["default"].PropTypes.bool,prev:a["default"].PropTypes.bool,next:a["default"].PropTypes.bool,onSelect:a["default"].PropTypes.func,buttonComponentClass:h["default"].elementType},getDefaultProps:function(){return{activePage:1,items:1,maxButtons:0,first:!1,last:!1,prev:!1,next:!1,ellipsis:!0,buttonComponentClass:v["default"],bsClass:"pagination"}},renderPageButtons:function(){var e=[],t=void 0,n=void 0,r=void 0,o=this.props,s=o.maxButtons,i=o.activePage,l=o.items,u=o.onSelect,p=o.ellipsis,d=o.buttonComponentClass;if(s){var c=i-parseInt(s/2,10);t=c>1?c:1,r=l>=t+s,r?n=t+s-1:(n=l,t=l-s+1,1>t&&(t=1))}else t=1,n=l;for(var h=t;n>=h;h++)e.push(a["default"].createElement(f["default"],{key:h,eventKey:h,active:h===i,onSelect:u,buttonComponentClass:d},h));return s&&r&&p&&e.push(a["default"].createElement(f["default"],{key:"ellipsis",disabled:!0,buttonComponentClass:d},a["default"].createElement("span",{"aria-label":"More"},"..."))),e},renderPrev:function(){return this.props.prev?a["default"].createElement(f["default"],{key:"prev",eventKey:this.props.activePage-1,disabled:1===this.props.activePage,onSelect:this.props.onSelect,buttonComponentClass:this.props.buttonComponentClass},a["default"].createElement("span",{"aria-label":"Previous"},"‹")):null},renderNext:function(){return this.props.next?a["default"].createElement(f["default"],{key:"next",eventKey:this.props.activePage+1,disabled:this.props.activePage>=this.props.items,onSelect:this.props.onSelect,buttonComponentClass:this.props.buttonComponentClass},a["default"].createElement("span",{"aria-label":"Next"},"›")):null},renderFirst:function(){return this.props.first?a["default"].createElement(f["default"],{key:"first",eventKey:1,disabled:1===this.props.activePage,onSelect:this.props.onSelect,buttonComponentClass:this.props.buttonComponentClass},a["default"].createElement("span",{"aria-label":"First"},"«")):null},renderLast:function(){return this.props.last?a["default"].createElement(f["default"],{key:"last",eventKey:this.props.items,disabled:this.props.activePage>=this.props.items,onSelect:this.props.onSelect,buttonComponentClass:this.props.buttonComponentClass},a["default"].createElement("span",{"aria-label":"Last"},"»")):null},render:function(){return a["default"].createElement("ul",r({},this.props,{className:l["default"](this.props.className,this.getBsClassSet())}),this.renderFirst(),this.renderPrev(),this.renderPageButtons(),this.renderNext(),this.renderLast())}});t["default"]=y,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(10)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(1),i=s(a),l=n(4),u=s(l),p=n(5),d=s(p),f=n(146),c=s(f),h=n(8),m=s(h),v=i["default"].createClass({displayName:"PaginationButton",mixins:[d["default"]],propTypes:{className:i["default"].PropTypes.string,eventKey:i["default"].PropTypes.oneOfType([i["default"].PropTypes.string,i["default"].PropTypes.number]),onSelect:i["default"].PropTypes.func,disabled:i["default"].PropTypes.bool,active:i["default"].PropTypes.bool,buttonComponentClass:m["default"].elementType},getDefaultProps:function(){return{active:!1,disabled:!1}},handleClick:function(e){if(!this.props.disabled&&this.props.onSelect){var t=c["default"](this.props.eventKey);this.props.onSelect(e,t)}},render:function(){var e=r({active:this.props.active,disabled:this.props.disabled},this.getBsClassSet()),t=this.props,n=t.className,s=o(t,["className"]),a=this.props.buttonComponentClass;return i["default"].createElement("li",{className:u["default"](n,e)},i["default"].createElement(a,r({},s,{onClick:this.handleClick})))}});t["default"]=v,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(10)["default"],o=n(3)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(1),i=s(a),l=n(4),u=s(l),p=n(5),d=s(p),f=n(26),c=s(f),h=i["default"].createClass({displayName:"Panel",mixins:[d["default"]],propTypes:{collapsible:i["default"].PropTypes.bool,onSelect:i["default"].PropTypes.func,header:i["default"].PropTypes.node,id:i["default"].PropTypes.oneOfType([i["default"].PropTypes.string,i["default"].PropTypes.number]),footer:i["default"].PropTypes.node,defaultExpanded:i["default"].PropTypes.bool,expanded:i["default"].PropTypes.bool,eventKey:i["default"].PropTypes.any,headerRole:i["default"].PropTypes.string,panelRole:i["default"].PropTypes.string},getDefaultProps:function(){return{bsClass:"panel",bsStyle:"default",defaultExpanded:!1}},getInitialState:function(){return{expanded:this.props.defaultExpanded}},handleSelect:function(e){e.selected=!0,this.props.onSelect?this.props.onSelect(e,this.props.eventKey):e.preventDefault(),e.selected&&this.handleToggle()},handleToggle:function(){this.setState({expanded:!this.state.expanded})},isExpanded:function(){return null!=this.props.expanded?this.props.expanded:this.state.expanded},render:function(){var e=this.props,t=e.headerRole,n=e.panelRole,s=r(e,["headerRole","panelRole"]);return i["default"].createElement("div",o({},s,{className:u["default"](this.props.className,this.getBsClassSet()),id:this.props.collapsible?null:this.props.id,onSelect:null}),this.renderHeading(t),this.props.collapsible?this.renderCollapsibleBody(n):this.renderBody(),this.renderFooter())},renderCollapsibleBody:function(e){var t={className:this.prefixClass("collapse"),id:this.props.id,ref:"panel","aria-hidden":!this.isExpanded()};return e&&(t.role=e),i["default"].createElement(c["default"],{"in":this.isExpanded()},i["default"].createElement("div",t,this.renderBody()))},renderBody:function(){function e(){return{key:l.length}}function t(t){l.push(a.cloneElement(t,e()))}function n(t){l.push(i["default"].createElement("div",o({className:p},e()),t))}function r(){0!==u.length&&(n(u),u=[])}var s=this.props.children,l=[],u=[],p=this.prefixClass("body");return Array.isArray(s)&&0!==s.length?(s.forEach(function(e){this.shouldRenderFill(e)?(r(),t(e)):u.push(e)}.bind(this)),r()):this.shouldRenderFill(s)?t(s):n(s),l},shouldRenderFill:function(e){return i["default"].isValidElement(e)&&null!=e.props.fill},renderHeading:function(e){var t=this.props.header;if(!t)return null;if(!i["default"].isValidElement(t)||Array.isArray(t))t=this.props.collapsible?this.renderCollapsibleTitle(t,e):t;else{var n=u["default"](this.prefixClass("title"),t.props.className);t=this.props.collapsible?a.cloneElement(t,{className:n,children:this.renderAnchor(t.props.children,e)}):a.cloneElement(t,{className:n})}return i["default"].createElement("div",{className:this.prefixClass("heading")},t)},renderAnchor:function(e,t){return i["default"].createElement("a",{href:"#"+(this.props.id||""),"aria-controls":this.props.collapsible?this.props.id:null,className:this.isExpanded()?null:"collapsed","aria-expanded":this.isExpanded(),"aria-selected":this.isExpanded(),onClick:this.handleSelect,role:t},e)},renderCollapsibleTitle:function(e,t){return i["default"].createElement("h4",{className:this.prefixClass("title"),role:"presentation"},this.renderAnchor(e,t))},renderFooter:function(){return this.props.footer?i["default"].createElement("div",{className:this.prefixClass("footer")},this.props.footer):null}});t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(5),p=o(u),d=n(8),f=o(d),c=a["default"].createClass({displayName:"Popover",mixins:[p["default"]],propTypes:{id:f["default"].isRequiredForA11y(a["default"].PropTypes.oneOfType([a["default"].PropTypes.string,a["default"].PropTypes.number])),placement:a["default"].PropTypes.oneOf(["top","right","bottom","left"]),positionLeft:a["default"].PropTypes.number,positionTop:a["default"].PropTypes.number,arrowOffsetLeft:a["default"].PropTypes.oneOfType([a["default"].PropTypes.number,a["default"].PropTypes.string]),arrowOffsetTop:a["default"].PropTypes.oneOfType([a["default"].PropTypes.number,a["default"].PropTypes.string]),title:a["default"].PropTypes.node},getDefaultProps:function(){
+return{placement:"right"}},render:function(){var e,t=(e={popover:!0},e[this.props.placement]=!0,e),n=r({left:this.props.positionLeft,top:this.props.positionTop,display:"block"},this.props.style),o={left:this.props.arrowOffsetLeft,top:this.props.arrowOffsetTop};return a["default"].createElement("div",r({role:"tooltip"},this.props,{className:l["default"](this.props.className,t),style:n,title:null}),a["default"].createElement("div",{className:"arrow",style:o}),this.props.title?this.renderTitle():null,a["default"].createElement("div",{className:"popover-content"},this.props.children))},renderTitle:function(){return a["default"].createElement("h3",{className:"popover-title"},this.props.title)}});t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(2)["default"];t.__esModule=!0;var o=n(12),s=r(o),a=n(47),i=r(a);t["default"]=s["default"].wrapper(i["default"],{message:"The Portal component is deprecated in react-bootstrap. It has been moved to a more generic library: react-overlays. You can read more at: http://react-bootstrap.github.io/react-overlays/examples/#portal and https://github.com/react-bootstrap/react-bootstrap/issues/1084"}),e.exports=t["default"]},function(e,t,n){"use strict";var r=n(2)["default"];t.__esModule=!0;var o=n(12),s=r(o),a=n(97),i=r(a);t["default"]=s["default"].wrapper(i["default"],{message:"The Position component is deprecated in react-bootstrap. It has been moved to a more generic library: react-overlays. You can read more at: http://react-bootstrap.github.io/react-overlays/examples/#position and https://github.com/react-bootstrap/react-bootstrap/issues/1084"}),e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t,n){if(e[t]){var r=function(){var r=void 0,o=void 0;return l["default"].Children.forEach(e[t],function(e){e.type!==y&&(o=e.type.displayName?e.type.displayName:e.type,r=new Error("Children of "+n+" can contain only ProgressBar components. Found "+o))}),{v:r}}();if("object"==typeof r)return r.v}}var o=n(3)["default"],s=n(10)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(57),p=a(u),d=n(5),f=a(d),c=n(4),h=a(c),m=n(9),v=a(m),y=l["default"].createClass({displayName:"ProgressBar",propTypes:{min:i.PropTypes.number,now:i.PropTypes.number,max:i.PropTypes.number,label:i.PropTypes.node,srOnly:i.PropTypes.bool,striped:i.PropTypes.bool,active:i.PropTypes.bool,children:r,className:l["default"].PropTypes.string,interpolateClass:i.PropTypes.node,isChild:i.PropTypes.bool},mixins:[f["default"]],getDefaultProps:function(){return{bsClass:"progress-bar",min:0,max:100,active:!1,isChild:!1,srOnly:!1,striped:!1}},getPercentage:function(e,t,n){var r=1e3;return Math.round((e-t)/(n-t)*100*r)/r},render:function(){if(this.props.isChild)return this.renderProgressBar();var e=void 0;return e=this.props.children?v["default"].map(this.props.children,this.renderChildBar):this.renderProgressBar(),l["default"].createElement("div",o({},this.props,{className:h["default"](this.props.className,"progress"),min:null,max:null,label:null,"aria-valuetext":null}),e)},renderChildBar:function(e,t){return i.cloneElement(e,{isChild:!0,key:e.key?e.key:t})},renderProgressBar:function(){var e=this.props,t=e.className,n=e.label,r=e.now,a=e.min,i=e.max,u=s(e,["className","label","now","min","max"]),p=this.getPercentage(r,a,i);"string"==typeof n&&(n=this.renderLabel(p)),this.props.srOnly&&(n=l["default"].createElement("span",{className:"sr-only"},n));var d=h["default"](t,this.getBsClassSet(),{active:this.props.active,"progress-bar-striped":this.props.active||this.props.striped});return l["default"].createElement("div",o({},u,{className:d,role:"progressbar",style:{width:p+"%"},"aria-valuenow":this.props.now,"aria-valuemin":this.props.min,"aria-valuemax":this.props.max}),n)},renderLabel:function(e){var t=this.props.interpolateClass||p["default"];return l["default"].createElement(t,{now:this.props.now,min:this.props.min,max:this.props.max,percent:e,bsStyle:this.props.bsStyle},this.props.label)}});t["default"]=y,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(7)["default"],o=n(6)["default"],s=n(3)["default"],a=n(10)["default"],i=n(2)["default"];t.__esModule=!0;var l=n(1),u=i(l),p=n(5),d=i(p),f=n(25),c=i(f),h=n(27),m=i(h),v=n(137),y=i(v),g=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){var e=this.props,t=e.children,n=e.title,r=e.onClick,o=e.target,s=e.href,i=e.bsStyle,l=a(e,["children","title","onClick","target","href","bsStyle"]),p=l.disabled,d=u["default"].createElement(c["default"],{onClick:r,bsStyle:i,disabled:p,target:o,href:s},n);return u["default"].createElement(m["default"],l,d,u["default"].createElement(y["default"],{"aria-label":n,bsStyle:i,disabled:p}),u["default"].createElement(m["default"].Menu,null,t))},t}(u["default"].Component);g.propTypes=s({},m["default"].propTypes,d["default"].propTypes,{onClick:function(){},target:u["default"].PropTypes.string,href:u["default"].PropTypes.string,title:u["default"].PropTypes.node.isRequired}),g.defaultProps={disabled:!1,dropup:!1,pullRight:!1},g.Toggle=y["default"],t["default"]=g,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(7)["default"],o=n(6)["default"],s=n(3)["default"],a=n(2)["default"];t.__esModule=!0;var i=n(1),l=a(i),u=n(53),p=a(u),d=function(e){function t(){o(this,t),e.apply(this,arguments)}return r(t,e),t.prototype.render=function(){return l["default"].createElement(p["default"],s({},this.props,{useAnchor:!1,noCaret:!1}))},t}(l["default"].Component);t["default"]=d,d.defaultProps=p["default"].defaultProps,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(9),p=o(u),d=n(11),f=o(d),c=n(5),h=o(c),m=n(14),v=o(m),y=a["default"].createClass({displayName:"SubNav",mixins:[h["default"]],propTypes:{onSelect:a["default"].PropTypes.func,active:a["default"].PropTypes.bool,activeHref:a["default"].PropTypes.string,activeKey:a["default"].PropTypes.any,disabled:a["default"].PropTypes.bool,eventKey:a["default"].PropTypes.any,href:a["default"].PropTypes.string,title:a["default"].PropTypes.string,text:a["default"].PropTypes.node,target:a["default"].PropTypes.string},getDefaultProps:function(){return{bsClass:"nav",active:!1,disabled:!1}},handleClick:function(e){this.props.onSelect&&(e.preventDefault(),this.props.disabled||this.props.onSelect(this.props.eventKey,this.props.href,this.props.target))},isActive:function(){return this.isChildActive(this)},isChildActive:function(e){if(e.props.active)return!0;if(null!=this.props.activeKey&&this.props.activeKey===e.props.eventKey)return!0;if(null!=this.props.activeHref&&this.props.activeHref===e.props.href)return!0;if(e.props.children){var t=!1;return p["default"].forEach(e.props.children,function(e){this.isChildActive(e)&&(t=!0)},this),t}return!1},getChildActiveProp:function(e){return e.props.active?!0:null!=this.props.activeKey&&e.props.eventKey===this.props.activeKey?!0:null!=this.props.activeHref&&e.props.href===this.props.activeHref?!0:e.props.active},render:function(){var e={active:this.isActive(),disabled:this.props.disabled};return a["default"].createElement("li",r({},this.props,{className:l["default"](this.props.className,e)}),a["default"].createElement(v["default"],{href:this.props.href,title:this.props.title,target:this.props.target,onClick:this.handleClick},this.props.text),a["default"].createElement("ul",{className:"nav"},p["default"].map(this.props.children,this.renderNavItem)))},renderNavItem:function(e,t){return s.cloneElement(e,{active:this.getChildActiveProp(e),onSelect:f["default"](e.props.onSelect,this.props.onSelect),key:e.key?e.key:t})}});t["default"]=y,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(10)["default"],o=n(3)["default"],s=n(2)["default"];t.__esModule=!0;var a=n(1),i=s(a),l=n(70),u=s(l),p=n(69),d=s(p),f=n(9),c=s(f),h=n(12),m=s(h),v=i["default"].createClass({displayName:"TabbedArea",componentWillMount:function(){m["default"]("TabbedArea","Tabs","https://github.com/react-bootstrap/react-bootstrap/pull/1091")},render:function(){var e=this.props,t=e.children,n=r(e,["children"]),s=c["default"].map(t,function(e){var t=e.props,n=t.tab,s=r(t,["tab"]);return i["default"].createElement(d["default"],o({title:n},s))});return i["default"].createElement(u["default"],n,s)}});t["default"]=v,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=a["default"].createClass({displayName:"Table",propTypes:{striped:a["default"].PropTypes.bool,bordered:a["default"].PropTypes.bool,condensed:a["default"].PropTypes.bool,hover:a["default"].PropTypes.bool,responsive:a["default"].PropTypes.bool},getDefaultProps:function(){return{bordered:!1,condensed:!1,hover:!1,responsive:!1,striped:!1}},render:function(){var e={table:!0,"table-striped":this.props.striped,"table-bordered":this.props.bordered,"table-condensed":this.props.condensed,"table-hover":this.props.hover},t=a["default"].createElement("table",r({},this.props,{className:l["default"](this.props.className,e)}),this.props.children);return this.props.responsive?a["default"].createElement("div",{className:"table-responsive"},t):t}});t["default"]=u,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(5),p=o(u),d=n(14),f=o(d),c=a["default"].createClass({displayName:"Thumbnail",mixins:[p["default"]],propTypes:{alt:a["default"].PropTypes.string,href:a["default"].PropTypes.string,src:a["default"].PropTypes.string},getDefaultProps:function(){return{bsClass:"thumbnail"}},render:function(){var e=this.getBsClassSet();return this.props.href?a["default"].createElement(f["default"],r({},this.props,{href:this.props.href,className:l["default"](this.props.className,e)}),a["default"].createElement("img",{src:this.props.src,alt:this.props.alt})):this.props.children?a["default"].createElement("div",r({},this.props,{className:l["default"](this.props.className,e)}),a["default"].createElement("img",{src:this.props.src,alt:this.props.alt}),a["default"].createElement("div",{className:"caption"},this.props.children)):a["default"].createElement("div",r({},this.props,{className:l["default"](this.props.className,e)}),a["default"].createElement("img",{src:this.props.src,alt:this.props.alt}))}});t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(5),p=o(u),d=n(8),f=o(d),c=a["default"].createClass({displayName:"Tooltip",mixins:[p["default"]],propTypes:{id:f["default"].isRequiredForA11y(a["default"].PropTypes.oneOfType([a["default"].PropTypes.string,a["default"].PropTypes.number])),placement:a["default"].PropTypes.oneOf(["top","right","bottom","left"]),positionLeft:a["default"].PropTypes.number,positionTop:a["default"].PropTypes.number,arrowOffsetLeft:a["default"].PropTypes.oneOfType([a["default"].PropTypes.number,a["default"].PropTypes.string]),arrowOffsetTop:a["default"].PropTypes.oneOfType([a["default"].PropTypes.number,a["default"].PropTypes.string]),title:a["default"].PropTypes.node},getDefaultProps:function(){return{placement:"right"}},render:function(){var e,t=(e={tooltip:!0},e[this.props.placement]=!0,e),n=r({left:this.props.positionLeft,top:this.props.positionTop},this.props.style),o={left:this.props.arrowOffsetLeft,top:this.props.arrowOffsetTop};return a["default"].createElement("div",r({role:"tooltip"},this.props,{className:l["default"](this.props.className,t),style:n}),a["default"].createElement("div",{className:"tooltip-arrow",style:o}),a["default"].createElement("div",{className:"tooltip-inner"},this.props.children))}});t["default"]=c,e.exports=t["default"]},function(e,t,n){"use strict";var r=n(3)["default"],o=n(2)["default"];t.__esModule=!0;var s=n(1),a=o(s),i=n(4),l=o(i),u=n(5),p=o(u),d=a["default"].createClass({displayName:"Well",mixins:[p["default"]],getDefaultProps:function(){return{bsClass:"well"}},render:function(){var e=this.getBsClassSet();return a["default"].createElement("div",r({},this.props,{className:l["default"](this.props.className,e)}),this.props.children)}});t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){var t=[];return void 0===e?t:(a["default"].forEach(e,function(e){t.push(e)}),t)}var o=n(2)["default"];t.__esModule=!0,t["default"]=r;var s=n(9),a=o(s);e.exports=t["default"]},function(e,t,n){"use strict";function r(e,t){return function(n){var r=function(e){function t(){s(this,t),e.apply(this,arguments)}return o(t,e),t.prototype.getChildContext=function(){return this.props.context},t.prototype.render=function(){var e=this.props,t=e.wrapped,n=(e.context,i(e,["wrapped","context"]));return p["default"].cloneElement(t,n)},t}(p["default"].Component);r.childContextTypes=n;var l=function(){function n(){s(this,n)}return n.prototype.render=function(){var n=a({},this.props);return n[t]=this.getWrappedOverlay(),p["default"].createElement(e,n,this.props.children)},n.prototype.getWrappedOverlay=function(){return p["default"].createElement(r,{context:this.context,wrapped:this.props[t]})},n}();return l.contextTypes=n,l}}var o=n(7)["default"],s=n(6)["default"],a=n(3)["default"],i=n(10)["default"],l=n(2)["default"];t.__esModule=!0,t["default"]=r;var u=n(1),p=l(u);e.exports=t["default"]},function(e,t){"use strict";function n(e){var t=!1;return{eventKey:e,preventSelection:function(){t=!0},isSelectionPrevented:function(){return t}}}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t,n){e.exports={"default":n(152),__esModule:!0}},function(e,t,n){e.exports={"default":n(153),__esModule:!0}},function(e,t,n){e.exports={"default":n(154),__esModule:!0}},function(e,t,n){e.exports={"default":n(155),__esModule:!0}},function(e,t,n){e.exports={"default":n(157),__esModule:!0}},function(e,t,n){n(169),e.exports=n(18).Object.assign},function(e,t,n){var r=n(29);e.exports=function(e,t){return r.create(e,t)}},function(e,t,n){var r=n(29);e.exports=function(e,t,n){return r.setDesc(e,t,n)}},function(e,t,n){n(170),e.exports=n(18).Object.isFrozen},function(e,t,n){n(171),e.exports=n(18).Object.keys},function(e,t,n){n(172),e.exports=n(18).Object.setPrototypeOf},function(e,t){e.exports=function(e){if("function"!=typeof e)throw TypeError(e+" is not a function!");return e}},function(e,t,n){var r=n(38);e.exports=function(e){if(!r(e))throw TypeError(e+" is not an object!");return e}},function(e,t,n){var r=n(74),o=n(167),s=n(164);e.exports=Object.assign||function(e,t){for(var n=r(e),a=arguments.length,i=1;a>i;)for(var l,u=o(arguments[i++]),p=s(u),d=p.length,f=0;d>f;)n[l=p[f++]]=u[l];return n}},function(e,t){var n={}.toString;e.exports=function(e){return n.call(e).slice(8,-1)}},function(e,t,n){var r=n(158);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,o){return e.call(t,n,r,o)}}return function(){return e.apply(t,arguments)}}},function(e,t){e.exports=function(e){if(void 0==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var r=n(29);e.exports=function(e){var t=r.getKeys(e),n=r.getSymbols;if(n)for(var o,s=n(e),a=r.isEnum,i=0;s.length>i;)a.call(e,o=s[i++])&&t.push(o);return t}},function(e,t){e.exports=function(e){try{return!!e()}catch(t){return!0}}},function(e,t){var n="undefined"!=typeof self&&self.Math==Math?self:Function("return this")();e.exports=n,"number"==typeof __g&&(__g=n)},function(e,t,n){var r=n(161);e.exports=0 in Object("z")?Object:function(e){return"String"==r(e)?e.split(""):Object(e)}},function(e,t,n){var r=n(29).getDesc,o=n(38),s=n(159),a=function(e,t){if(s(e),!o(t)&&null!==t)throw TypeError(t+": can't set as prototype!")};e.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(e,t){try{t=n(162)(Function.call,r(Object.prototype,"__proto__").set,2),t({},[])}catch(o){e=!0}return function(n,r){return a(n,r),e?n.__proto__=r:t(n,r),n}}():void 0),check:a}},function(e,t,n){var r=n(37);r(r.S,"Object",{assign:n(160)})},function(e,t,n){var r=n(38);n(73)("isFrozen",function(e){return function(t){return r(t)?e?e(t):!1:!0}})},function(e,t,n){var r=n(74);n(73)("keys",function(e){return function(t){return e(r(t))}})},function(e,t,n){var r=n(37);r(r.S,"Object",{setPrototypeOf:n(168).set})},function(e,t,n){"use strict";function r(){var e=void 0===arguments[0]?document:arguments[0];try{return e.activeElement}catch(t){}}var o=n(24);t.__esModule=!0,t["default"]=r;var s=n(19);o.interopRequireDefault(s);e.exports=t["default"]},function(e,t,n){"use strict";var r=n(20),o=function(){};r&&(o=function(){return document.addEventListener?function(e,t,n,r){return e.removeEventListener(t,n,r||!1)}:document.attachEvent?function(e,t,n){return e.detachEvent("on"+t,n)}:void 0}()),e.exports=o},function(e,t,n){"use strict";function r(e){var t=a["default"](e);return t&&t.defaultView||t.parentWindow}var o=n(24);t.__esModule=!0,t["default"]=r;var s=n(19),a=o.interopRequireDefault(s);e.exports=t["default"]},function(e,t,n){"use strict";var r=n(39);e.exports=function(e,t){var n=r(e);return void 0===t?n?"pageXOffset"in n?n.pageXOffset:n.document.documentElement.scrollLeft:e.scrollLeft:void(n?n.scrollTo(t,"pageYOffset"in n?n.pageYOffset:n.document.documentElement.scrollTop):e.scrollLeft=t)}},function(e,t,n){"use strict";var r=n(24),o=n(80),s=r.interopRequireDefault(o),a=/^(top|right|bottom|left)$/,i=/^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i;e.exports=function(e){if(!e)throw new TypeError("No Element passed to `getComputedStyle()`");var t=e.ownerDocument;return"defaultView"in t?t.defaultView.opener?e.ownerDocument.defaultView.getComputedStyle(e,null):window.getComputedStyle(e,null):{getPropertyValue:function(t){var n=e.style;t=s["default"](t),"float"==t&&(t="styleFloat");var r=e.currentStyle[t]||null;if(null==r&&n&&n[t]&&(r=n[t]),i.test(r)&&!a.test(t)){var o=n.left,l=e.runtimeStyle,u=l&&l.left;u&&(l.left=e.currentStyle.left),n.left="fontSize"===t?"1em":r,r=n.pixelLeft+"px",n.left=o,u&&(l.left=u)}return r}}}},function(e,t){"use strict";e.exports=function(e,t){return"removeProperty"in e.style?e.style.removeProperty(t):e.style.removeAttribute(t)}},function(e,t,n){"use strict";function r(){var e,t="",n={O:"otransitionend",Moz:"transitionend",Webkit:"webkitTransitionEnd",ms:"MSTransitionEnd"},r=document.createElement("div");for(var o in n)if(u.call(n,o)&&void 0!==r.style[o+"TransitionProperty"]){t="-"+o.toLowerCase()+"-",e=n[o];break}return e||void 0===r.style.transitionProperty||(e="transitionend"),{end:e,prefix:t}}var o,s,a,i,l=n(20),u=Object.prototype.hasOwnProperty,p="transform",d={};l&&(d=r(),p=d.prefix+p,a=d.prefix+"transition-property",s=d.prefix+"transition-duration",i=d.prefix+"transition-delay",o=d.prefix+"transition-timing-function"),e.exports={transform:p,end:d.end,property:a,timing:o,delay:i,duration:s}},function(e,t){"use strict";var n=/-(.)/g;e.exports=function(e){return e.replace(n,function(e,t){return t.toUpperCase()})}},function(e,t){"use strict";var n=/([A-Z])/g;e.exports=function(e){return e.replace(n,"-$1").toLowerCase()}},function(e,t,n){"use strict";var r=n(181),o=/^ms-/;e.exports=function(e){return r(e).replace(o,"-ms-")}},function(e,t,n){"use strict";var r,o=n(20);e.exports=function(e){if((!r||e)&&o){var t=document.createElement("div");t.style.position="absolute",t.style.top="-9999px",t.style.width="50px",t.style.height="50px",t.style.overflow="scroll",document.body.appendChild(t),r=t.offsetWidth-t.clientWidth,document.body.removeChild(t)}return r}},function(e,t){function n(e){var t=e?e.length:0;return t?e[t-1]:void 0}e.exports=n},function(e,t,n){var r=n(192),o=n(210),s=o(r);e.exports=s},function(e,t,n){(function(t){function r(e){var t=e?e.length:0;for(this.data={hash:i(null),set:new a};t--;)this.push(e[t])}var o=n(206),s=n(30),a=s(t,"Set"),i=s(Object,"create");r.prototype.push=o,e.exports=r}).call(t,function(){return this}())},function(e,t){function n(e,t){for(var n=-1,r=e.length,o=Array(r);++n=i?a(t):null,f=t.length;d&&(u=s,p=!1,t=d);e:for(;++lt&&(t=-t>o?0:o+t),n=void 0===n||n>o?o:+n||0,0>n&&(n+=o),o=t>n?0:n-t>>>0,t>>>=0;for(var s=Array(o);++r-1?n[u]:void 0}return s(n,r,e)}}var o=n(190),s=n(193),a=n(194),i=n(15);e.exports=r},function(e,t,n){function r(e,t,n,r,s,a,i){var l=-1,u=e.length,p=t.length;if(u!=p&&!(s&&p>u))return!1;for(;++l=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function s(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(e.__proto__=t)}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;tn;n++)t[n]=arguments[n];return t.filter(function(e){return null!=e}).reduce(function(e,t){if("function"!=typeof t)throw new Error("Invalid Argument Type, must only provide functions, undefined, or null.");return null===e?t:function(){for(var n=arguments.length,r=Array(n),o=0;n>o;o++)r[o]=arguments[o];e.apply(this,r),t.apply(this,r)}},null)}t.__esModule=!0,t["default"]=n,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n,r){var o=h.getContainerDimensions(n),s=o.scroll,a=o.height,i=e-r-s,l=e+r-s+t;return 0>i?-i:l>a?a-l:0}function s(e,t,n,r){var o=h.getContainerDimensions(n),s=o.width,a=e-r,i=e+r+t;return 0>a?-a:i>s?s-i:0}t.__esModule=!0;var a=n(31),i=r(a),l=n(40),u=r(l),p=n(78),d=r(p),f=n(79),c=r(f),h={getContainerDimensions:function(e){var t=void 0,n=void 0,r=void 0;if("BODY"===e.tagName)t=window.innerWidth,n=window.innerHeight,r=c["default"](i["default"](e).documentElement)||c["default"](e);else{var o=u["default"](e);t=o.width,n=o.height,r=c["default"](e)}return{width:t,height:n,scroll:r}},getPosition:function(e,t){var n="BODY"===t.tagName?u["default"](e):d["default"](e,t);return n},calcOverlayPosition:function(e,t,n,r,a){var i=h.getPosition(n,r),l=u["default"](t),p=l.height,d=l.width,f=void 0,c=void 0,m=void 0,v=void 0;
+if("left"===e||"right"===e){c=i.top+(i.height-p)/2,f="left"===e?i.left-d:i.left+i.width;var y=o(c,p,r,a);c+=y,v=50*(1-2*y/p)+"%",m=void 0}else{if("top"!==e&&"bottom"!==e)throw new Error('calcOverlayPosition(): No such placement of "'+e+'" found.');f=i.left+(i.width-d)/2,c="top"===e?i.top-p:i.top+i.height;var g=s(f,d,r,a);f+=g,m=50*(1-2*g/d)+"%",v=void 0}return{positionLeft:f,positionTop:c,arrowOffsetLeft:m,arrowOffsetTop:v}}};t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t,n){var r=i.errMsg(e,t,n,". Expected an Element `type`");if("function"!=typeof e[t]){if(a["default"].isValidElement(e[t]))return new Error(r+", not an actual Element");if("string"!=typeof e[t])return new Error(r+" such as a tag name or return value of React.createClass(...)")}}t.__esModule=!0;var s=n(1),a=r(s),i=n(101);t["default"]=i.createChainableTypeChecker(o),e.exports=t["default"]},function(e,t){function n(e){return function(){return e}}function r(){}r.thatReturns=n,r.thatReturnsFalse=n(!1),r.thatReturnsTrue=n(!0),r.thatReturnsNull=n(null),r.thatReturnsThis=function(){return this},r.thatReturnsArgument=function(e){return e},e.exports=r},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function o(e){return e&&e.__esModule?e:{"default":e}}function s(e,t){var n={};for(var r in e)t.indexOf(r)>=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function a(e,t){function n(n,r){function o(e,n){var o=d.getLinkName(e),s=this.props[r[e]];o&&a(this.props,o)&&!s&&(s=this.props[o].requestChange);for(var i=arguments.length,l=Array(i>2?i-2:0),u=2;i>u;u++)l[u-2]=arguments[u];t(this,e,s,n,l)}function a(e,t){return void 0!==e[t]}var l,p=arguments.length<=2||void 0===arguments[2]?[]:arguments[2],f=n.displayName||n.name||"Component",c=d.getType(n).propTypes;l=d.uncontrolledPropTypes(r,c,f);var h=d.transform(p,function(e,t){e[t]=function(){var e=this.refs.controlled;return e[t].apply(e,arguments)}},{}),m=u["default"].createClass(i({displayName:"Uncontrolled("+f+")",mixins:e,propTypes:l},h,{componentWillMount:function(){var e=this.props,t=Object.keys(r);this._values=d.transform(t,function(t,n){t[n]=e[d.defaultKey(n)]},{})},render:function(){var e=this,t={},l=this.props,p=(l.valueLink,l.checkedLink,s(l,["valueLink","checkedLink"]));return d.each(r,function(n,r){var s=d.getLinkName(r),i=e.props[r];s&&!a(e.props,r)&&a(e.props,s)&&(i=e.props[s].value),t[r]=void 0!==i?i:e._values[r],t[n]=o.bind(e,r)}),t=i({ref:"controlled"},p,t),u["default"].createElement(n,t)}}));return m.ControlledComponent=n,m}return n}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t=13?e:e.type}function i(e){return"value"===e?"valueLink":"checked"===e?"checkedLink":null}function l(e){return"default"+e.charAt(0).toUpperCase()+e.substr(1)}function u(e,t,n){return function(){for(var r=arguments.length,o=Array(r),s=0;r>s;s++)o[s]=arguments[s];t&&t.call.apply(t,[e].concat(o)),n&&n.call.apply(n,[e].concat(o))}}function p(e,t,n){return d(e,t.bind(null,n=n||(Array.isArray(e)?[]:{}))),n}function d(e,t,n){if(Array.isArray(e))return e.forEach(t,n);for(var r in e)f(e,r)&&t.call(n,e[r],r,e)}function f(e,t){return e?Object.prototype.hasOwnProperty.call(e,t):!1}t.__esModule=!0,t.customPropType=o,t.uncontrolledPropTypes=s,t.getType=a,t.getLinkName=i,t.defaultKey=l,t.chain=u,t.transform=p,t.each=d,t.has=f;var c=n(1),h=r(c),m=n(231),v=(r(m),h["default"].version.split(".").map(parseFloat));t.version=v}])});
+//# sourceMappingURL=react-bootstrap.min.js.map
\ No newline at end of file
diff --git a/web/static/js/react-with-addons-0.13.1.min.js b/web/static/js/react-with-addons-0.13.1.min.js
deleted file mode 100644
index 63ac731339..0000000000
--- a/web/static/js/react-with-addons-0.13.1.min.js
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
- * React (with addons) v0.13.1
- *
- * 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.
- *
- */
-!function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define([],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.React=e()}}(function(){return function e(t,n,r){function o(a,s){if(!n[a]){if(!t[a]){var u="function"==typeof require&&require;if(!s&&u)return u(a,!0);if(i)return i(a,!0);var l=new Error("Cannot find module '"+a+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[a]={exports:{}};t[a][0].call(c.exports,function(e){var n=t[a][1][e];return o(n?n:e)},c,c.exports,e,t,n,r)}return n[a].exports}for(var i="function"==typeof require&&require,a=0;a8&&11>=_),M=32,T=String.fromCharCode(M),N=d.topLevelTypes,P={beforeInput:{phasedRegistrationNames:{bubbled:y({onBeforeInput:null}),captured:y({onBeforeInputCapture:null})},dependencies:[N.topCompositionEnd,N.topKeyPress,N.topTextInput,N.topPaste]},compositionEnd:{phasedRegistrationNames:{bubbled:y({onCompositionEnd:null}),captured:y({onCompositionEndCapture:null})},dependencies:[N.topBlur,N.topCompositionEnd,N.topKeyDown,N.topKeyPress,N.topKeyUp,N.topMouseDown]},compositionStart:{phasedRegistrationNames:{bubbled:y({onCompositionStart:null}),captured:y({onCompositionStartCapture:null})},dependencies:[N.topBlur,N.topCompositionStart,N.topKeyDown,N.topKeyPress,N.topKeyUp,N.topMouseDown]},compositionUpdate:{phasedRegistrationNames:{bubbled:y({onCompositionUpdate:null}),captured:y({onCompositionUpdateCapture:null})},dependencies:[N.topBlur,N.topCompositionUpdate,N.topKeyDown,N.topKeyPress,N.topKeyUp,N.topMouseDown]}},I=!1,R=null,w={eventTypes:P,extractEvents:function(e,t,n,r){return[u(e,t,n,r),p(e,t,n,r)]}};t.exports=w},{103:103,107:107,154:154,16:16,21:21,22:22,23:23}],4:[function(e,t){var n=e(147),r={addClass:function(e,t){return n(!/\s/.test(t)),t&&(e.classList?e.classList.add(t):r.hasClass(e,t)||(e.className=e.className+" "+t)),e},removeClass:function(e,t){return n(!/\s/.test(t)),t&&(e.classList?e.classList.remove(t):r.hasClass(e,t)&&(e.className=e.className.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,""))),e},conditionClass:function(e,t,n){return(n?r.addClass:r.removeClass)(e,t)},hasClass:function(e,t){return n(!/\s/.test(t)),e.classList?!!t&&e.classList.contains(t):(" "+e.className+" ").indexOf(" "+t+" ")>-1}};t.exports=r},{147:147}],5:[function(e,t){"use strict";function n(e,t){return e+t.charAt(0).toUpperCase()+t.substring(1)}var r={boxFlex:!0,boxFlexGroup:!0,columnCount:!0,flex:!0,flexGrow:!0,flexShrink:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,strokeOpacity:!0},o=["Webkit","ms","Moz","O"];Object.keys(r).forEach(function(e){o.forEach(function(t){r[n(t,e)]=r[e]})});var i={background:{backgroundImage:!0,backgroundPosition:!0,backgroundRepeat:!0,backgroundColor:!0},border:{borderWidth:!0,borderStyle:!0,borderColor:!0},borderBottom:{borderBottomWidth:!0,borderBottomStyle:!0,borderBottomColor:!0},borderLeft:{borderLeftWidth:!0,borderLeftStyle:!0,borderLeftColor:!0},borderRight:{borderRightWidth:!0,borderRightStyle:!0,borderRightColor:!0},borderTop:{borderTopWidth:!0,borderTopStyle:!0,borderTopColor:!0},font:{fontStyle:!0,fontVariant:!0,fontWeight:!0,fontSize:!0,lineHeight:!0,fontFamily:!0}},a={isUnitlessNumber:r,shorthandPropertyExpansions:i};t.exports=a},{}],6:[function(e,t){"use strict";var n=e(5),r=e(22),o=(e(118),e(125)),i=e(145),a=e(156),s=(e(166),a(function(e){return i(e)})),u="cssFloat";r.canUseDOM&&void 0===document.documentElement.style.cssFloat&&(u="styleFloat");var l={createMarkupForStyles:function(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];null!=r&&(t+=s(n)+":",t+=o(n,r)+";")}return t||null},setValueForStyles:function(e,t){var r=e.style;for(var i in t)if(t.hasOwnProperty(i)){var a=o(i,t[i]);if("float"===i&&(i=u),a)r[i]=a;else{var s=n.shorthandPropertyExpansions[i];if(s)for(var l in s)r[l]="";else r[i]=""}}}};t.exports=l},{118:118,125:125,145:145,156:156,166:166,22:22,5:5}],7:[function(e,t){"use strict";function n(){this._callbacks=null,this._contexts=null}var r=e(30),o=e(29),i=e(147);o(n.prototype,{enqueue:function(e,t){this._callbacks=this._callbacks||[],this._contexts=this._contexts||[],this._callbacks.push(e),this._contexts.push(t)},notifyAll:function(){var e=this._callbacks,t=this._contexts;if(e){i(e.length===t.length),this._callbacks=null,this._contexts=null;for(var n=0,r=e.length;r>n;n++)e[n].call(t[n]);e.length=0,t.length=0}},reset:function(){this._callbacks=null,this._contexts=null},destructor:function(){this.reset()}}),r.addPoolingTo(n),t.exports=n},{147:147,29:29,30:30}],8:[function(e,t){"use strict";function n(e){return"SELECT"===e.nodeName||"INPUT"===e.nodeName&&"file"===e.type}function r(e){var t=_.getPooled(N.change,I,e);C.accumulateTwoPhaseDispatches(t),b.batchedUpdates(o,t)}function o(e){y.enqueueEvents(e),y.processEventQueue()}function i(e,t){P=e,I=t,P.attachEvent("onchange",r)}function a(){P&&(P.detachEvent("onchange",r),P=null,I=null)}function s(e,t,n){return e===T.topChange?n:void 0}function u(e,t,n){e===T.topFocus?(a(),i(t,n)):e===T.topBlur&&a()}function l(e,t){P=e,I=t,R=e.value,w=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(P,"value",A),P.attachEvent("onpropertychange",p)}function c(){P&&(delete P.value,P.detachEvent("onpropertychange",p),P=null,I=null,R=null,w=null)}function p(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==R&&(R=t,r(e))}}function d(e,t,n){return e===T.topInput?n:void 0}function f(e,t,n){e===T.topFocus?(c(),l(t,n)):e===T.topBlur&&c()}function h(e){return e!==T.topSelectionChange&&e!==T.topKeyUp&&e!==T.topKeyDown||!P||P.value===R?void 0:(R=P.value,I)}function m(e){return"INPUT"===e.nodeName&&("checkbox"===e.type||"radio"===e.type)}function v(e,t,n){return e===T.topClick?n:void 0}var g=e(16),y=e(18),C=e(21),E=e(22),b=e(97),_=e(105),x=e(148),D=e(150),M=e(154),T=g.topLevelTypes,N={change:{phasedRegistrationNames:{bubbled:M({onChange:null}),captured:M({onChangeCapture:null})},dependencies:[T.topBlur,T.topChange,T.topClick,T.topFocus,T.topInput,T.topKeyDown,T.topKeyUp,T.topSelectionChange]}},P=null,I=null,R=null,w=null,O=!1;E.canUseDOM&&(O=x("change")&&(!("documentMode"in document)||document.documentMode>8));var S=!1;E.canUseDOM&&(S=x("input")&&(!("documentMode"in document)||document.documentMode>9));var A={get:function(){return w.get.call(this)},set:function(e){R=""+e,w.set.call(this,e)}},k={eventTypes:N,extractEvents:function(e,t,r,o){var i,a;if(n(t)?O?i=s:a=u:D(t)?S?i=d:(i=h,a=f):m(t)&&(i=v),i){var l=i(e,t,r);if(l){var c=_.getPooled(N.change,l,o);return C.accumulateTwoPhaseDispatches(c),c}}a&&a(e,t,r)}};t.exports=k},{105:105,148:148,150:150,154:154,16:16,18:18,21:21,22:22,97:97}],9:[function(e,t){"use strict";var n=0,r={createReactRootIndex:function(){return n++}};t.exports=r},{}],10:[function(e,t){"use strict";function n(e,t,n){e.insertBefore(t,e.childNodes[n]||null)}var r=e(13),o=e(77),i=e(160),a=e(147),s={dangerouslyReplaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup,updateTextContent:i,processUpdates:function(e,t){for(var s,u=null,l=null,c=0;ct||r.hasOverloadedBooleanValue[e]&&t===!1}var r=e(11),o=e(158),i=(e(166),{createMarkupForID:function(e){return r.ID_ATTRIBUTE_NAME+"="+o(e)},createMarkupForProperty:function(e,t){if(r.isStandardName.hasOwnProperty(e)&&r.isStandardName[e]){if(n(e,t))return"";var i=r.getAttributeName[e];return r.hasBooleanValue[e]||r.hasOverloadedBooleanValue[e]&&t===!0?i:i+"="+o(t)}return r.isCustomAttribute(e)?null==t?"":e+"="+o(t):null},setValueForProperty:function(e,t,o){if(r.isStandardName.hasOwnProperty(t)&&r.isStandardName[t]){var i=r.getMutationMethod[t];if(i)i(e,o);else if(n(t,o))this.deleteValueForProperty(e,t);else if(r.mustUseAttribute[t])e.setAttribute(r.getAttributeName[t],""+o);else{var a=r.getPropertyName[t];r.hasSideEffects[t]&&""+e[a]==""+o||(e[a]=o)}}else r.isCustomAttribute(t)&&(null==o?e.removeAttribute(t):e.setAttribute(t,""+o))},deleteValueForProperty:function(e,t){if(r.isStandardName.hasOwnProperty(t)&&r.isStandardName[t]){var n=r.getMutationMethod[t];if(n)n(e,void 0);else if(r.mustUseAttribute[t])e.removeAttribute(r.getAttributeName[t]);else{var o=r.getPropertyName[t],i=r.getDefaultValueForProperty(e.nodeName,o);r.hasSideEffects[t]&&""+e[o]===i||(e[o]=i)}}else r.isCustomAttribute(t)&&e.removeAttribute(t)}});t.exports=i},{11:11,158:158,166:166}],13:[function(e,t){"use strict";function n(e){return e.substring(1,e.indexOf(" "))}var r=e(22),o=e(123),i=e(126),a=e(139),s=e(147),u=/^(<[^ \/>]+)/,l="data-danger-index",c={dangerouslyRenderMarkup:function(e){s(r.canUseDOM);for(var t,c={},p=0;pu;u++){var c=s[u];if(c){var p=c.extractEvents(e,t,r,i);p&&(a=o(a,p))}}return a},enqueueEvents:function(e){e&&(u=o(u,e))},processEventQueue:function(){var e=u;u=null,i(e,l),a(!u)},__purge:function(){s={}},__getListenerBank:function(){return s}};t.exports=p},{115:115,132:132,147:147,19:19,20:20}],19:[function(e,t){"use strict";function n(){if(a)for(var e in s){var t=s[e],n=a.indexOf(e);if(i(n>-1),!u.plugins[n]){i(t.extractEvents),u.plugins[n]=t;var o=t.eventTypes;for(var l in o)i(r(o[l],t,l))}}}function r(e,t,n){i(!u.eventNameDispatchConfigs.hasOwnProperty(n)),u.eventNameDispatchConfigs[n]=e;var r=e.phasedRegistrationNames;if(r){for(var a in r)if(r.hasOwnProperty(a)){var s=r[a];o(s,t,n)}return!0}return e.registrationName?(o(e.registrationName,t,n),!0):!1}function o(e,t,n){i(!u.registrationNameModules[e]),u.registrationNameModules[e]=t,u.registrationNameDependencies[e]=t.eventTypes[n].dependencies}var i=e(147),a=null,s={},u={plugins:[],eventNameDispatchConfigs:{},registrationNameModules:{},registrationNameDependencies:{},injectEventPluginOrder:function(e){i(!a),a=Array.prototype.slice.call(e),n()},injectEventPluginsByName:function(e){var t=!1;for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];s.hasOwnProperty(r)&&s[r]===o||(i(!s[r]),s[r]=o,t=!0)}t&&n()},getPluginModuleForEvent:function(e){var t=e.dispatchConfig;if(t.registrationName)return u.registrationNameModules[t.registrationName]||null;for(var n in t.phasedRegistrationNames)if(t.phasedRegistrationNames.hasOwnProperty(n)){var r=u.registrationNameModules[t.phasedRegistrationNames[n]];if(r)return r}return null},_resetEventPlugins:function(){a=null;for(var e in s)s.hasOwnProperty(e)&&delete s[e];u.plugins.length=0;var t=u.eventNameDispatchConfigs;for(var n in t)t.hasOwnProperty(n)&&delete t[n];var r=u.registrationNameModules;for(var o in r)r.hasOwnProperty(o)&&delete r[o]}};t.exports=u},{147:147}],20:[function(e,t){"use strict";function n(e){return e===m.topMouseUp||e===m.topTouchEnd||e===m.topTouchCancel}function r(e){return e===m.topMouseMove||e===m.topTouchMove}function o(e){return e===m.topMouseDown||e===m.topTouchStart}function i(e,t){var n=e._dispatchListeners,r=e._dispatchIDs;if(Array.isArray(n))for(var o=0;oe&&n[e]===o[e];e++);var a=r-e;for(t=1;a>=t&&n[r-t]===o[i-t];t++);var s=t>1?1-t:void 0;return this._fallbackText=o.slice(e,s),this._fallbackText}}),r.addPoolingTo(n),t.exports=n},{142:142,29:29,30:30}],24:[function(e,t){"use strict";var n,r=e(11),o=e(22),i=r.injection.MUST_USE_ATTRIBUTE,a=r.injection.MUST_USE_PROPERTY,s=r.injection.HAS_BOOLEAN_VALUE,u=r.injection.HAS_SIDE_EFFECTS,l=r.injection.HAS_NUMERIC_VALUE,c=r.injection.HAS_POSITIVE_NUMERIC_VALUE,p=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE;if(o.canUseDOM){var d=document.implementation;n=d&&d.hasFeature&&d.hasFeature("http://www.w3.org/TR/SVG11/feature#BasicStructure","1.1")}var f={isCustomAttribute:RegExp.prototype.test.bind(/^(data|aria)-[a-z_][a-z\d_.\-]*$/),Properties:{accept:null,acceptCharset:null,accessKey:null,action:null,allowFullScreen:i|s,allowTransparency:i,alt:null,async:s,autoComplete:null,autoPlay:s,cellPadding:null,cellSpacing:null,charSet:i,checked:a|s,classID:i,className:n?i:a,cols:i|c,colSpan:null,content:null,contentEditable:null,contextMenu:i,controls:a|s,coords:null,crossOrigin:null,data:null,dateTime:i,defer:s,dir:null,disabled:i|s,download:p,draggable:null,encType:null,form:i,formAction:i,formEncType:i,formMethod:i,formNoValidate:s,formTarget:i,frameBorder:i,headers:null,height:i,hidden:i|s,href:null,hrefLang:null,htmlFor:null,httpEquiv:null,icon:null,id:a,label:null,lang:null,list:i,loop:a|s,manifest:i,marginHeight:null,marginWidth:null,max:null,maxLength:i,media:i,mediaGroup:null,method:null,min:null,multiple:a|s,muted:a|s,name:null,noValidate:s,open:s,pattern:null,placeholder:null,poster:null,preload:null,radioGroup:null,readOnly:a|s,rel:null,required:s,role:i,rows:i|c,rowSpan:null,sandbox:null,scope:null,scrolling:null,seamless:i|s,selected:a|s,shape:null,size:i|c,sizes:i,span:c,spellCheck:null,src:null,srcDoc:a,srcSet:i,start:l,step:null,style:null,tabIndex:null,target:null,title:null,type:null,useMap:null,value:a|u,width:i,wmode:i,autoCapitalize:null,autoCorrect:null,itemProp:i,itemScope:i|s,itemType:i,itemID:i,itemRef:i,property:null},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{autoCapitalize:"autocapitalize",autoComplete:"autocomplete",autoCorrect:"autocorrect",autoFocus:"autofocus",autoPlay:"autoplay",encType:"encoding",hrefLang:"hreflang",radioGroup:"radiogroup",spellCheck:"spellcheck",srcDoc:"srcdoc",srcSet:"srcset"}};t.exports=f},{11:11,22:22}],25:[function(e,t){"use strict";var n=e(73),r=e(92),o={linkState:function(e){return new n(this.state[e],r.createStateKeySetter(this,e))}};t.exports=o},{73:73,92:92}],26:[function(e,t){"use strict";function n(e){u(null==e.props.checkedLink||null==e.props.valueLink)}function r(e){n(e),u(null==e.props.value&&null==e.props.onChange)}function o(e){n(e),u(null==e.props.checked&&null==e.props.onChange)}function i(e){this.props.valueLink.requestChange(e.target.value)}function a(e){this.props.checkedLink.requestChange(e.target.checked)}var s=e(84),u=e(147),l={button:!0,checkbox:!0,image:!0,hidden:!0,radio:!0,reset:!0,submit:!0},c={Mixin:{propTypes:{value:function(e,t){return!e[t]||l[e.type]||e.onChange||e.readOnly||e.disabled?null: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(e,t){return!e[t]||e.onChange||e.readOnly||e.disabled?null: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:s.func}},getValue:function(e){return e.props.valueLink?(r(e),e.props.valueLink.value):e.props.value},getChecked:function(e){return e.props.checkedLink?(o(e),e.props.checkedLink.value):e.props.checked},getOnChange:function(e){return e.props.valueLink?(r(e),i):e.props.checkedLink?(o(e),a):e.props.onChange}};t.exports=c},{147:147,84:84}],27:[function(e,t){"use strict";function n(e){e.remove()}var r=e(33),o=e(115),i=e(132),a=e(147),s={trapBubbledEvent:function(e,t){a(this.isMounted());var n=this.getDOMNode();a(n);var i=r.trapBubbledEvent(e,t,n);this._localEventListeners=o(this._localEventListeners,i)},componentWillUnmount:function(){this._localEventListeners&&i(this._localEventListeners,n)}};t.exports=s},{115:115,132:132,147:147,33:33}],28:[function(e,t){"use strict";var n=e(16),r=e(126),o=n.topLevelTypes,i={eventTypes:null,extractEvents:function(e,t,n,i){if(e===o.topTouchStart){var a=i.target;a&&!a.onclick&&(a.onclick=r)}}};t.exports=i},{126:126,16:16}],29:[function(e,t){"use strict";function n(e){if(null==e)throw new TypeError("Object.assign target cannot be null or undefined");for(var t=Object(e),n=Object.prototype.hasOwnProperty,r=1;rc;c++){var d=s[c];
-a.hasOwnProperty(d)&&a[d]||(d===u.topWheel?l("wheel")?m.ReactEventListener.trapBubbledEvent(u.topWheel,"wheel",o):l("mousewheel")?m.ReactEventListener.trapBubbledEvent(u.topWheel,"mousewheel",o):m.ReactEventListener.trapBubbledEvent(u.topWheel,"DOMMouseScroll",o):d===u.topScroll?l("scroll",!0)?m.ReactEventListener.trapCapturedEvent(u.topScroll,"scroll",o):m.ReactEventListener.trapBubbledEvent(u.topScroll,"scroll",m.ReactEventListener.WINDOW_HANDLE):d===u.topFocus||d===u.topBlur?(l("focus",!0)?(m.ReactEventListener.trapCapturedEvent(u.topFocus,"focus",o),m.ReactEventListener.trapCapturedEvent(u.topBlur,"blur",o)):l("focusin")&&(m.ReactEventListener.trapBubbledEvent(u.topFocus,"focusin",o),m.ReactEventListener.trapBubbledEvent(u.topBlur,"focusout",o)),a[u.topBlur]=!0,a[u.topFocus]=!0):f.hasOwnProperty(d)&&m.ReactEventListener.trapBubbledEvent(d,f[d],o),a[d]=!0)}},trapBubbledEvent:function(e,t,n){return m.ReactEventListener.trapBubbledEvent(e,t,n)},trapCapturedEvent:function(e,t,n){return m.ReactEventListener.trapCapturedEvent(e,t,n)},ensureScrollValueMonitoring:function(){if(!p){var e=s.refreshScrollValues;m.ReactEventListener.monitorScrollValue(e),p=!0}},eventNameDispatchConfigs:o.eventNameDispatchConfigs,registrationNameModules:o.registrationNameModules,putListener:o.putListener,getListener:o.getListener,deleteListener:o.deleteListener,deleteAllListeners:o.deleteAllListeners});t.exports=m},{114:114,148:148,16:16,18:18,19:19,29:29,65:65}],34:[function(e,t){"use strict";var n=e(31),r=e(29),o=n.createFactory(e(95)),i=n.createFactory(e(35)),a=n.createClass({displayName:"ReactCSSTransitionGroup",propTypes:{transitionName:n.PropTypes.string.isRequired,transitionAppear:n.PropTypes.bool,transitionEnter:n.PropTypes.bool,transitionLeave:n.PropTypes.bool},getDefaultProps:function(){return{transitionAppear:!1,transitionEnter:!0,transitionLeave:!0}},_wrapChild:function(e){return i({name:this.props.transitionName,appear:this.props.transitionAppear,enter:this.props.transitionEnter,leave:this.props.transitionLeave},e)},render:function(){return o(r({},this.props,{childFactory:this._wrapChild}))}});t.exports=a},{29:29,31:31,35:35,95:95}],35:[function(e,t){"use strict";var n=e(31),r=e(4),o=e(94),i=e(157),a=(e(166),17),s=n.createClass({displayName:"ReactCSSTransitionGroupChild",transition:function(e,t){var n=this.getDOMNode(),i=this.props.name+"-"+e,a=i+"-active",s=function(e){e&&e.target!==n||(r.removeClass(n,i),r.removeClass(n,a),o.removeEndEventListener(n,s),t&&t())};o.addEndEventListener(n,s),r.addClass(n,i),this.queueClass(a)},queueClass:function(e){this.classNameQueue.push(e),this.timeout||(this.timeout=setTimeout(this.flushClassNameQueue,a))},flushClassNameQueue:function(){this.isMounted()&&this.classNameQueue.forEach(r.addClass.bind(r,this.getDOMNode())),this.classNameQueue.length=0,this.timeout=null},componentWillMount:function(){this.classNameQueue=[]},componentWillUnmount:function(){this.timeout&&clearTimeout(this.timeout)},componentWillAppear:function(e){this.props.appear?this.transition("appear",e):e()},componentWillEnter:function(e){this.props.enter?this.transition("enter",e):e()},componentWillLeave:function(e){this.props.leave?this.transition("leave",e):e()},render:function(){return i(this.props.children)}});t.exports=s},{157:157,166:166,31:31,4:4,94:94}],36:[function(e,t){"use strict";var n=e(87),r=e(130),o=e(146),i=e(162),a={instantiateChildren:function(e){var t=r(e);for(var n in t)if(t.hasOwnProperty(n)){var i=t[n],a=o(i,null);t[n]=a}return t},updateChildren:function(e,t,a,s){var u=r(t);if(!u&&!e)return null;var l;for(l in u)if(u.hasOwnProperty(l)){var c=e&&e[l],p=c&&c._currentElement,d=u[l];if(i(p,d))n.receiveComponent(c,d,a,s),u[l]=c;else{c&&n.unmountComponent(c,l);var f=o(d,null);u[l]=f}}for(l in e)!e.hasOwnProperty(l)||u&&u.hasOwnProperty(l)||n.unmountComponent(e[l]);return u},unmountChildren:function(e){for(var t in e){var r=e[t];n.unmountComponent(r)}}};t.exports=a},{130:130,146:146,162:162,87:87}],37:[function(e,t){"use strict";function n(e,t){this.forEachFunction=e,this.forEachContext=t}function r(e,t,n,r){var o=e;o.forEachFunction.call(o.forEachContext,t,r)}function o(e,t,o){if(null==e)return e;var i=n.getPooled(t,o);d(e,r,i),n.release(i)}function i(e,t,n){this.mapResult=e,this.mapFunction=t,this.mapContext=n}function a(e,t,n,r){var o=e,i=o.mapResult,a=!i.hasOwnProperty(n);if(a){var s=o.mapFunction.call(o.mapContext,t,r);i[n]=s}}function s(e,t,n){if(null==e)return e;var r={},o=i.getPooled(r,t,n);return d(e,a,o),i.release(o),p.create(r)}function u(){return null}function l(e){return d(e,u,null)}var c=e(30),p=e(67),d=e(164),f=(e(166),c.twoArgumentPooler),h=c.threeArgumentPooler;c.addPoolingTo(n,f),c.addPoolingTo(i,h);var m={forEach:o,map:s,count:l};t.exports=m},{164:164,166:166,30:30,67:67}],38:[function(e,t){"use strict";function n(e,t){var n=x.hasOwnProperty(t)?x[t]:null;M.hasOwnProperty(t)&&g(n===b.OVERRIDE_BASE),e.hasOwnProperty(t)&&g(n===b.DEFINE_MANY||n===b.DEFINE_MANY_MERGED)}function r(e,t){if(t){g("function"!=typeof t),g(!p.isValidElement(t));var r=e.prototype;t.hasOwnProperty(E)&&D.mixins(e,t.mixins);for(var o in t)if(t.hasOwnProperty(o)&&o!==E){var i=t[o];if(n(r,o),D.hasOwnProperty(o))D[o](e,i);else{var u=x.hasOwnProperty(o),l=r.hasOwnProperty(o),c=i&&i.__reactDontBind,d="function"==typeof i,f=d&&!u&&!l&&!c;if(f)r.__reactAutoBindMap||(r.__reactAutoBindMap={}),r.__reactAutoBindMap[o]=i,r[o]=i;else if(l){var h=x[o];g(u&&(h===b.DEFINE_MANY_MERGED||h===b.DEFINE_MANY)),h===b.DEFINE_MANY_MERGED?r[o]=a(r[o],i):h===b.DEFINE_MANY&&(r[o]=s(r[o],i))}else r[o]=i}}}}function o(e,t){if(t)for(var n in t){var r=t[n];if(t.hasOwnProperty(n)){var o=n in D;g(!o);var i=n in e;g(!i),e[n]=r}}}function i(e,t){g(e&&t&&"object"==typeof e&&"object"==typeof t);for(var n in t)t.hasOwnProperty(n)&&(g(void 0===e[n]),e[n]=t[n]);return e}function a(e,t){return function(){var n=e.apply(this,arguments),r=t.apply(this,arguments);if(null==n)return r;if(null==r)return n;var o={};return i(o,n),i(o,r),o}}function s(e,t){return function(){e.apply(this,arguments),t.apply(this,arguments)}}function u(e,t){var n=t.bind(e);return n}function l(e){for(var t in e.__reactAutoBindMap)if(e.__reactAutoBindMap.hasOwnProperty(t)){var n=e.__reactAutoBindMap[t];e[t]=u(e,d.guard(n,e.constructor.displayName+"."+t))}}var c=e(39),p=(e(45),e(61)),d=e(64),f=e(71),h=e(72),m=(e(83),e(82),e(96)),v=e(29),g=e(147),y=e(153),C=e(154),E=(e(166),C({mixins:null})),b=y({DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),_=[],x={mixins:b.DEFINE_MANY,statics:b.DEFINE_MANY,propTypes:b.DEFINE_MANY,contextTypes:b.DEFINE_MANY,childContextTypes:b.DEFINE_MANY,getDefaultProps:b.DEFINE_MANY_MERGED,getInitialState:b.DEFINE_MANY_MERGED,getChildContext:b.DEFINE_MANY_MERGED,render:b.DEFINE_ONCE,componentWillMount:b.DEFINE_MANY,componentDidMount:b.DEFINE_MANY,componentWillReceiveProps:b.DEFINE_MANY,shouldComponentUpdate:b.DEFINE_ONCE,componentWillUpdate:b.DEFINE_MANY,componentDidUpdate:b.DEFINE_MANY,componentWillUnmount:b.DEFINE_MANY,updateComponent:b.OVERRIDE_BASE},D={displayName:function(e,t){e.displayName=t},mixins:function(e,t){if(t)for(var n=0;n";return this._createOpenTagMarkupAndPutListeners(t)+this._createContentMarkup(t,r)+o},_createOpenTagMarkupAndPutListeners:function(e){var t=this._currentElement.props,n="<"+this._tag;for(var o in t)if(t.hasOwnProperty(o)){var i=t[o];if(null!=i)if(E.hasOwnProperty(o))r(this._rootNodeID,o,i,e);else{o===_&&(i&&(i=this._previousStyleCopy=h({},t.style)),i=a.createMarkupForStyles(i));var s=u.createMarkupForProperty(o,i);s&&(n+=" "+s)}}if(e.renderToStaticMarkup)return n+">";var l=u.createMarkupForID(this._rootNodeID);return n+" "+l+">"},_createContentMarkup:function(e,t){var n="";("listing"===this._tag||"pre"===this._tag||"textarea"===this._tag)&&(n="\n");var r=this._currentElement.props,o=r.dangerouslySetInnerHTML;if(null!=o){if(null!=o.__html)return n+o.__html}else{var i=b[typeof r.children]?r.children:null,a=null!=i?null:r.children;if(null!=i)return n+m(i);if(null!=a){var s=this.mountChildren(a,e,t);return n+s.join("")}}return n},receiveComponent:function(e,t,n){var r=this._currentElement;this._currentElement=e,this.updateComponent(t,r,e,n)},updateComponent:function(e,t,r,o){n(this._currentElement.props),this._updateDOMProperties(t.props,e),this._updateDOMChildren(t.props,e,o)},_updateDOMProperties:function(e,t){var n,o,i,a=this._currentElement.props;for(n in e)if(!a.hasOwnProperty(n)&&e.hasOwnProperty(n))if(n===_){var u=this._previousStyleCopy;for(o in u)u.hasOwnProperty(o)&&(i=i||{},i[o]="");this._previousStyleCopy=null}else E.hasOwnProperty(n)?y(this._rootNodeID,n):(s.isStandardName[n]||s.isCustomAttribute(n))&&D.deletePropertyByID(this._rootNodeID,n);for(n in a){var l=a[n],c=n===_?this._previousStyleCopy:e[n];if(a.hasOwnProperty(n)&&l!==c)if(n===_)if(l&&(l=this._previousStyleCopy=h({},l)),c){for(o in c)!c.hasOwnProperty(o)||l&&l.hasOwnProperty(o)||(i=i||{},i[o]="");for(o in l)l.hasOwnProperty(o)&&c[o]!==l[o]&&(i=i||{},i[o]=l[o])}else i=l;else E.hasOwnProperty(n)?r(this._rootNodeID,n,l,t):(s.isStandardName[n]||s.isCustomAttribute(n))&&D.updatePropertyByID(this._rootNodeID,n,l)}i&&D.updateStylesByID(this._rootNodeID,i)},_updateDOMChildren:function(e,t,n){var r=this._currentElement.props,o=b[typeof e.children]?e.children:null,i=b[typeof r.children]?r.children:null,a=e.dangerouslySetInnerHTML&&e.dangerouslySetInnerHTML.__html,s=r.dangerouslySetInnerHTML&&r.dangerouslySetInnerHTML.__html,u=null!=o?null:e.children,l=null!=i?null:r.children,c=null!=o||null!=a,p=null!=i||null!=s;null!=u&&null==l?this.updateChildren(null,t,n):c&&!p&&this.updateTextContent(""),null!=i?o!==i&&this.updateTextContent(""+i):null!=s?a!==s&&D.updateInnerHTMLByID(this._rootNodeID,s):null!=l&&this.updateChildren(l,t,n)},unmountComponent:function(){this.unmountChildren(),l.deleteAllListeners(this._rootNodeID),c.unmountIDFromEnvironment(this._rootNodeID),this._rootNodeID=null}},f.measureMethods(i,"ReactDOMComponent",{mountComponent:"mountComponent",updateComponent:"updateComponent"}),h(i.prototype,i.Mixin,d.Mixin),i.injection={injectIDOperations:function(e){i.BackendIDOperations=D=e}},t.exports=i},{11:11,12:12,128:128,147:147,148:148,154:154,166:166,29:29,33:33,40:40,6:6,75:75,76:76,80:80}],49:[function(e,t){"use strict";var n=e(16),r=e(27),o=e(32),i=e(38),a=e(61),s=a.createFactory("form"),u=i.createClass({displayName:"ReactDOMForm",tagName:"FORM",mixins:[o,r],render:function(){return s(this.props)},componentDidMount:function(){this.trapBubbledEvent(n.topLevelTypes.topReset,"reset"),this.trapBubbledEvent(n.topLevelTypes.topSubmit,"submit")}});t.exports=u},{16:16,27:27,32:32,38:38,61:61}],50:[function(e,t){"use strict";var n=e(6),r=e(10),o=e(12),i=e(75),a=e(80),s=e(147),u=e(159),l={dangerouslySetInnerHTML:"`dangerouslySetInnerHTML` must be set using `updateInnerHTMLByID()`.",style:"`style` must be set using `updateStylesByID()`."},c={updatePropertyByID:function(e,t,n){var r=i.getNode(e);s(!l.hasOwnProperty(t)),null!=n?o.setValueForProperty(r,t,n):o.deleteValueForProperty(r,t)},deletePropertyByID:function(e,t,n){var r=i.getNode(e);s(!l.hasOwnProperty(t)),o.deleteValueForProperty(r,t,n)},updateStylesByID:function(e,t){var r=i.getNode(e);n.setValueForStyles(r,t)},updateInnerHTMLByID:function(e,t){var n=i.getNode(e);u(n,t)},updateTextContentByID:function(e,t){var n=i.getNode(e);r.updateTextContent(n,t)},dangerouslyReplaceNodeWithMarkupByID:function(e,t){var n=i.getNode(e);r.dangerouslyReplaceNodeWithMarkup(n,t)},dangerouslyProcessChildrenUpdates:function(e,t){for(var n=0;np;p++){var m=u[p];if(m!==a&&m.form===a.form){var v=l.getID(m);d(v);var g=h[v];d(g),c.asap(n,g)}}}return t}});t.exports=m},{12:12,147:147,2:2,26:26,29:29,32:32,38:38,61:61,75:75,97:97}],54:[function(e,t){"use strict";var n=e(32),r=e(38),o=e(61),i=(e(166),o.createFactory("option")),a=r.createClass({displayName:"ReactDOMOption",tagName:"OPTION",mixins:[n],componentWillMount:function(){},render:function(){return i(this.props,this.props.children)}});t.exports=a},{166:166,32:32,38:38,61:61}],55:[function(e,t){"use strict";function n(){if(this._pendingUpdate){this._pendingUpdate=!1;var e=a.getValue(this);null!=e&&this.isMounted()&&o(this,e)}}function r(e,t){if(null==e[t])return null;if(e.multiple){if(!Array.isArray(e[t]))return new Error("The `"+t+"` prop supplied to