diff options
author | Mavlushechka <mavlushechka@gmail.com> | 2022-09-24 00:07:19 +0500 |
---|---|---|
committer | Mavlushechka <mavlushechka@gmail.com> | 2022-09-24 00:07:19 +0500 |
commit | 43ffc1d6e59f2d118c730e968e032fcecbeaf202 (patch) | |
tree | 7e1e87163c8af30cd29d2b6e745d1c6b1077dc25 /app/src/static/js/react-bootstrap.js | |
parent | e7c380c64056a004a1d61f04df7afb2a1c1c3675 (diff) |
Copy docker/getting-started repository
Diffstat (limited to 'app/src/static/js/react-bootstrap.js')
-rw-r--r-- | app/src/static/js/react-bootstrap.js | 17906 |
1 files changed, 17906 insertions, 0 deletions
diff --git a/app/src/static/js/react-bootstrap.js b/app/src/static/js/react-bootstrap.js new file mode 100644 index 0000000..ae99266 --- /dev/null +++ b/app/src/static/js/react-bootstrap.js @@ -0,0 +1,17906 @@ +(function webpackUniversalModuleDefinition(root, factory) { + if(typeof exports === 'object' && typeof module === 'object') + module.exports = factory(require("react"), require("react-dom")); + else if(typeof define === 'function' && define.amd) + define(["react", "react-dom"], factory); + else if(typeof exports === 'object') + exports["ReactBootstrap"] = factory(require("react"), require("react-dom")); + else + root["ReactBootstrap"] = factory(root["React"], root["ReactDOM"]); +})(window, function(__WEBPACK_EXTERNAL_MODULE__1__, __WEBPACK_EXTERNAL_MODULE__6__) { +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] = { +/******/ i: moduleId, +/******/ l: false, +/******/ exports: {} +/******/ }; +/******/ +/******/ // Execute the module function +/******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); +/******/ +/******/ // Flag the module as loaded +/******/ module.l = 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; +/******/ +/******/ // define getter function for harmony exports +/******/ __webpack_require__.d = function(exports, name, getter) { +/******/ if(!__webpack_require__.o(exports, name)) { +/******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); +/******/ } +/******/ }; +/******/ +/******/ // define __esModule on exports +/******/ __webpack_require__.r = function(exports) { +/******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { +/******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); +/******/ } +/******/ Object.defineProperty(exports, '__esModule', { value: true }); +/******/ }; +/******/ +/******/ // create a fake namespace object +/******/ // mode & 1: value is a module id, require it +/******/ // mode & 2: merge all properties of value into the ns +/******/ // mode & 4: return value when already ns object +/******/ // mode & 8|1: behave like require +/******/ __webpack_require__.t = function(value, mode) { +/******/ if(mode & 1) value = __webpack_require__(value); +/******/ if(mode & 8) return value; +/******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; +/******/ var ns = Object.create(null); +/******/ __webpack_require__.r(ns); +/******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); +/******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); +/******/ return ns; +/******/ }; +/******/ +/******/ // getDefaultExport function for compatibility with non-harmony modules +/******/ __webpack_require__.n = function(module) { +/******/ var getter = module && module.__esModule ? +/******/ function getDefault() { return module['default']; } : +/******/ function getModuleExports() { return module; }; +/******/ __webpack_require__.d(getter, 'a', getter); +/******/ return getter; +/******/ }; +/******/ +/******/ // Object.prototype.hasOwnProperty.call +/******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; +/******/ +/******/ // __webpack_public_path__ +/******/ __webpack_require__.p = ""; +/******/ +/******/ +/******/ // Load entry module and return exports +/******/ return __webpack_require__(__webpack_require__.s = 86); +/******/ }) +/************************************************************************/ +/******/ ([ +/* 0 */ +/***/ (function(module, exports, __webpack_require__) { + +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +if (false) { var throwOnDirectAccess, ReactIs; } else { + // By explicitly using `prop-types` you are opting into new production behavior. + // http://fb.me/prop-types-in-prod + module.exports = __webpack_require__(58)(); +} + +/***/ }), +/* 1 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__1__; + +/***/ }), +/* 2 */ +/***/ (function(module, exports, __webpack_require__) { + +var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*! + Copyright (c) 2017 Jed Watson. + Licensed under the MIT License (MIT), see + http://jedwatson.github.io/classnames +*/ + +/* global define */ +(function () { + 'use strict'; + + var hasOwn = {}.hasOwnProperty; + + function classNames() { + var classes = []; + + for (var i = 0; i < arguments.length; i++) { + var arg = arguments[i]; + if (!arg) continue; + var argType = typeof arg; + + if (argType === 'string' || argType === 'number') { + classes.push(arg); + } else if (Array.isArray(arg) && arg.length) { + var inner = classNames.apply(null, arg); + + if (inner) { + classes.push(inner); + } + } else if (argType === 'object') { + for (var key in arg) { + if (hasOwn.call(arg, key) && arg[key]) { + classes.push(key); + } + } + } + } + + return classes.join(' '); + } + + if ( true && module.exports) { + classNames.default = classNames; + module.exports = classNames; + } else if (true) { + // register as 'classnames', consistent with npm package name + !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () { + return classNames; + }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__), + __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__)); + } else {} +})(); + +/***/ }), +/* 3 */ +/***/ (function(module, exports) { + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +module.exports = _assertThisInitialized; + +/***/ }), +/* 4 */ +/***/ (function(module, exports) { + +function _defineProperty(obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +} + +module.exports = _defineProperty; + +/***/ }), +/* 5 */ +/***/ (function(module, exports) { + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + "default": obj + }; +} + +module.exports = _interopRequireDefault; + +/***/ }), +/* 6 */ +/***/ (function(module, exports) { + +module.exports = __WEBPACK_EXTERNAL_MODULE__6__; + +/***/ }), +/* 7 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = uncontrollable; + +var _react = _interopRequireDefault(__webpack_require__(1)); + +var _invariant = _interopRequireDefault(__webpack_require__(24)); + +var Utils = _interopRequireWildcard(__webpack_require__(39)); + +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)) { + var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; + + if (desc.get || desc.set) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + } + + newObj.default = obj; + return newObj; + } +} + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function _extends() { + _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; + }; + + return _extends.apply(this, arguments); +} + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} + +function uncontrollable(Component, controlledValues, methods) { + if (methods === void 0) { + methods = []; + } + + var displayName = Component.displayName || Component.name || 'Component'; + var canAcceptRef = Utils.canAcceptRef(Component); + var controlledProps = Object.keys(controlledValues); + var PROPS_TO_OMIT = controlledProps.map(Utils.defaultKey); + !(canAcceptRef || !methods.length) ? false ? undefined : invariant(false) : void 0; + + var UncontrolledComponent = + /*#__PURE__*/ + function (_React$Component) { + _inheritsLoose(UncontrolledComponent, _React$Component); + + function UncontrolledComponent() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.handlers = Object.create(null); + controlledProps.forEach(function (propName) { + var handlerName = controlledValues[propName]; + + var handleChange = function handleChange(value) { + if (_this.props[handlerName]) { + var _this$props; + + _this._notifying = true; + + for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + + (_this$props = _this.props)[handlerName].apply(_this$props, [value].concat(args)); + + _this._notifying = false; + } + + _this._values[propName] = value; + if (!_this.unmounted) _this.forceUpdate(); + }; + + _this.handlers[handlerName] = handleChange; + }); + if (methods.length) _this.attachRef = function (ref) { + _this.inner = ref; + }; + return _this; + } + + var _proto = UncontrolledComponent.prototype; + + _proto.shouldComponentUpdate = function shouldComponentUpdate() { + //let the forceUpdate trigger the update + return !this._notifying; + }; + + _proto.componentWillMount = function componentWillMount() { + var _this2 = this; + + var props = this.props; + this._values = Object.create(null); + controlledProps.forEach(function (key) { + _this2._values[key] = props[Utils.defaultKey(key)]; + }); + }; + + _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + var _this3 = this; + + var props = this.props; + controlledProps.forEach(function (key) { + /** + * If a prop switches from controlled to Uncontrolled + * reset its value to the defaultValue + */ + if (!Utils.isProp(nextProps, key) && Utils.isProp(props, key)) { + _this3._values[key] = nextProps[Utils.defaultKey(key)]; + } + }); + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + this.unmounted = true; + }; + + _proto.render = function render() { + var _this4 = this; + + var _this$props2 = this.props, + innerRef = _this$props2.innerRef, + props = _objectWithoutPropertiesLoose(_this$props2, ["innerRef"]); + + PROPS_TO_OMIT.forEach(function (prop) { + delete props[prop]; + }); + var newProps = {}; + controlledProps.forEach(function (propName) { + var propValue = _this4.props[propName]; + newProps[propName] = propValue !== undefined ? propValue : _this4._values[propName]; + }); + return _react.default.createElement(Component, _extends({}, props, newProps, this.handlers, { + ref: innerRef || this.attachRef + })); + }; + + return UncontrolledComponent; + }(_react.default.Component); + + UncontrolledComponent.displayName = "Uncontrolled(" + displayName + ")"; + UncontrolledComponent.propTypes = _extends({ + innerRef: function innerRef() {} + }, Utils.uncontrolledPropTypes(controlledValues, displayName)); + methods.forEach(function (method) { + UncontrolledComponent.prototype[method] = function $proxiedMethod() { + var _this$inner; + + return (_this$inner = this.inner)[method].apply(_this$inner, arguments); + }; + }); + var WrappedComponent = UncontrolledComponent; + + if (_react.default.forwardRef) { + WrappedComponent = _react.default.forwardRef(function (props, ref) { + return _react.default.createElement(UncontrolledComponent, _extends({}, props, { + innerRef: ref + })); + }); + WrappedComponent.propTypes = UncontrolledComponent.propTypes; + } + + WrappedComponent.ControlledComponent = Component; + /** + * useful when wrapping a Component and you want to control + * everything + */ + + WrappedComponent.deferControlTo = function (newComponent, additions, nextMethods) { + if (additions === void 0) { + additions = {}; + } + + return uncontrollable(newComponent, _extends({}, controlledValues, additions), nextMethods); + }; + + return WrappedComponent; +} + +module.exports = exports["default"]; + +/***/ }), +/* 8 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = useEventCallback; + +var _react = __webpack_require__(1); + +var _useCommittedRef = _interopRequireDefault(__webpack_require__(71)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function useEventCallback(fn) { + var ref = (0, _useCommittedRef.default)(fn); + return (0, _react.useCallback)(function () { + return ref.current.apply(void 0, arguments); + }, [ref]); +} + +/***/ }), +/* 9 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = qsa; // Zepto.js +// (c) 2010-2015 Thomas Fuchs +// Zepto.js may be freely distributed under the MIT license. + +var simpleSelectorRE = /^[\w-]*$/; +var toArray = Function.prototype.bind.call(Function.prototype.call, [].slice); + +function qsa(element, selector) { + var maybeID = selector[0] === '#', + maybeClass = selector[0] === '.', + nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, + isSimple = simpleSelectorRE.test(nameOnly), + found; + + if (isSimple) { + if (maybeID) { + element = element.getElementById ? element : document; + return (found = element.getElementById(nameOnly)) ? [found] : []; + } + + if (element.getElementsByClassName && maybeClass) return toArray(element.getElementsByClassName(nameOnly)); + return toArray(element.getElementsByTagName(selector)); + } + + return toArray(element.querySelectorAll(selector)); +} + +module.exports = exports["default"]; + +/***/ }), +/* 10 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = void 0; + +var _default = !!(typeof window !== 'undefined' && window.document && window.document.createElement); + +exports.default = _default; +module.exports = exports["default"]; + +/***/ }), +/* 11 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = style; + +var _camelizeStyle = _interopRequireDefault(__webpack_require__(40)); + +var _hyphenateStyle = _interopRequireDefault(__webpack_require__(60)); + +var _getComputedStyle2 = _interopRequireDefault(__webpack_require__(62)); + +var _removeStyle = _interopRequireDefault(__webpack_require__(63)); + +var _properties = __webpack_require__(26); + +var _isTransform = _interopRequireDefault(__webpack_require__(64)); + +function style(node, property, value) { + var css = ''; + var transforms = ''; + var props = property; + + if (typeof property === 'string') { + if (value === undefined) { + return node.style[(0, _camelizeStyle.default)(property)] || (0, _getComputedStyle2.default)(node).getPropertyValue((0, _hyphenateStyle.default)(property)); + } else { + (props = {})[property] = value; + } + } + + Object.keys(props).forEach(function (key) { + var value = props[key]; + + if (!value && value !== 0) { + (0, _removeStyle.default)(node, (0, _hyphenateStyle.default)(key)); + } else if ((0, _isTransform.default)(key)) { + transforms += key + "(" + value + ") "; + } else { + css += (0, _hyphenateStyle.default)(key) + ": " + value + ";"; + } + }); + + if (transforms) { + css += _properties.transform + ": " + transforms + ";"; + } + + node.style.cssText += ';' + css; +} + +module.exports = exports["default"]; + +/***/ }), +/* 12 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0; + +var PropTypes = _interopRequireWildcard(__webpack_require__(0)); + +var _react = _interopRequireDefault(__webpack_require__(1)); + +var _reactDom = _interopRequireDefault(__webpack_require__(6)); + +var _reactLifecyclesCompat = __webpack_require__(65); + +var _PropTypes = __webpack_require__(66); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function _interopRequireWildcard(obj) { + if (obj && obj.__esModule) { + return obj; + } else { + var newObj = {}; + + if (obj != null) { + for (var key in obj) { + if (Object.prototype.hasOwnProperty.call(obj, key)) { + var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; + + if (desc.get || desc.set) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + } + + newObj.default = obj; + return newObj; + } +} + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} + +var UNMOUNTED = 'unmounted'; +exports.UNMOUNTED = UNMOUNTED; +var EXITED = 'exited'; +exports.EXITED = EXITED; +var ENTERING = 'entering'; +exports.ENTERING = ENTERING; +var ENTERED = 'entered'; +exports.ENTERED = ENTERED; +var EXITING = 'exiting'; +/** + * The Transition component lets you describe a transition from one component + * state to another _over time_ with a simple declarative API. Most commonly + * it's used to animate the mounting and unmounting of a component, but can also + * be used to describe in-place transition states as well. + * + * --- + * + * **Note**: `Transition` is a platform-agnostic base component. If you're using + * transitions in CSS, you'll probably want to use + * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition) + * instead. It inherits all the features of `Transition`, but contains + * additional features necessary to play nice with CSS transitions (hence the + * name of the component). + * + * --- + * + * By default the `Transition` component does not alter the behavior of the + * component it renders, it only tracks "enter" and "exit" states for the + * components. It's up to you to give meaning and effect to those states. For + * example we can add styles to a component when it enters or exits: + * + * ```jsx + * import { Transition } from 'react-transition-group'; + * + * const duration = 300; + * + * const defaultStyle = { + * transition: `opacity ${duration}ms ease-in-out`, + * opacity: 0, + * } + * + * const transitionStyles = { + * entering: { opacity: 0 }, + * entered: { opacity: 1 }, + * }; + * + * const Fade = ({ in: inProp }) => ( + * <Transition in={inProp} timeout={duration}> + * {state => ( + * <div style={{ + * ...defaultStyle, + * ...transitionStyles[state] + * }}> + * I'm a fade Transition! + * </div> + * )} + * </Transition> + * ); + * ``` + * + * There are 4 main states a Transition can be in: + * - `'entering'` + * - `'entered'` + * - `'exiting'` + * - `'exited'` + * + * Transition state is toggled via the `in` prop. When `true` the component + * begins the "Enter" stage. During this stage, the component will shift from + * its current transition state, to `'entering'` for the duration of the + * transition and then to the `'entered'` stage once it's complete. Let's take + * the following example (we'll use the + * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook): + * + * ```jsx + * function App() { + * const [inProp, setInProp] = useState(false); + * return ( + * <div> + * <Transition in={inProp} timeout={500}> + * {state => ( + * // ... + * )} + * </Transition> + * <button onClick={() => setInProp(true)}> + * Click to Enter + * </button> + * </div> + * ); + * } + * ``` + * + * When the button is clicked the component will shift to the `'entering'` state + * and stay there for 500ms (the value of `timeout`) before it finally switches + * to `'entered'`. + * + * When `in` is `false` the same thing happens except the state moves from + * `'exiting'` to `'exited'`. + */ + +exports.EXITING = EXITING; + +var Transition = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Transition, _React$Component); + + function Transition(props, context) { + var _this; + + _this = _React$Component.call(this, props, context) || this; + var parentGroup = context.transitionGroup; // In the context of a TransitionGroup all enters are really appears + + var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear; + var initialStatus; + _this.appearStatus = null; + + if (props.in) { + if (appear) { + initialStatus = EXITED; + _this.appearStatus = ENTERING; + } else { + initialStatus = ENTERED; + } + } else { + if (props.unmountOnExit || props.mountOnEnter) { + initialStatus = UNMOUNTED; + } else { + initialStatus = EXITED; + } + } + + _this.state = { + status: initialStatus + }; + _this.nextCallback = null; + return _this; + } + + var _proto = Transition.prototype; + + _proto.getChildContext = function getChildContext() { + return { + transitionGroup: null // allows for nested Transitions + + }; + }; + + Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) { + var nextIn = _ref.in; + + if (nextIn && prevState.status === UNMOUNTED) { + return { + status: EXITED + }; + } + + return null; + }; // getSnapshotBeforeUpdate(prevProps) { + // let nextStatus = null + // if (prevProps !== this.props) { + // const { status } = this.state + // if (this.props.in) { + // if (status !== ENTERING && status !== ENTERED) { + // nextStatus = ENTERING + // } + // } else { + // if (status === ENTERING || status === ENTERED) { + // nextStatus = EXITING + // } + // } + // } + // return { nextStatus } + // } + + + _proto.componentDidMount = function componentDidMount() { + this.updateStatus(true, this.appearStatus); + }; + + _proto.componentDidUpdate = function componentDidUpdate(prevProps) { + var nextStatus = null; + + if (prevProps !== this.props) { + var status = this.state.status; + + if (this.props.in) { + if (status !== ENTERING && status !== ENTERED) { + nextStatus = ENTERING; + } + } else { + if (status === ENTERING || status === ENTERED) { + nextStatus = EXITING; + } + } + } + + this.updateStatus(false, nextStatus); + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + this.cancelNextCallback(); + }; + + _proto.getTimeouts = function getTimeouts() { + var timeout = this.props.timeout; + var exit, enter, appear; + exit = enter = appear = timeout; + + if (timeout != null && typeof timeout !== 'number') { + exit = timeout.exit; + enter = timeout.enter; // TODO: remove fallback for next major + + appear = timeout.appear !== undefined ? timeout.appear : enter; + } + + return { + exit: exit, + enter: enter, + appear: appear + }; + }; + + _proto.updateStatus = function updateStatus(mounting, nextStatus) { + if (mounting === void 0) { + mounting = false; + } + + if (nextStatus !== null) { + // nextStatus will always be ENTERING or EXITING. + this.cancelNextCallback(); + + var node = _reactDom.default.findDOMNode(this); + + if (nextStatus === ENTERING) { + this.performEnter(node, mounting); + } else { + this.performExit(node); + } + } else if (this.props.unmountOnExit && this.state.status === EXITED) { + this.setState({ + status: UNMOUNTED + }); + } + }; + + _proto.performEnter = function performEnter(node, mounting) { + var _this2 = this; + + var enter = this.props.enter; + var appearing = this.context.transitionGroup ? this.context.transitionGroup.isMounting : mounting; + var timeouts = this.getTimeouts(); + var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED + // if we are mounting and running this it means appear _must_ be set + + if (!mounting && !enter) { + this.safeSetState({ + status: ENTERED + }, function () { + _this2.props.onEntered(node); + }); + return; + } + + this.props.onEnter(node, appearing); + this.safeSetState({ + status: ENTERING + }, function () { + _this2.props.onEntering(node, appearing); + + _this2.onTransitionEnd(node, enterTimeout, function () { + _this2.safeSetState({ + status: ENTERED + }, function () { + _this2.props.onEntered(node, appearing); + }); + }); + }); + }; + + _proto.performExit = function performExit(node) { + var _this3 = this; + + var exit = this.props.exit; + var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED + + if (!exit) { + this.safeSetState({ + status: EXITED + }, function () { + _this3.props.onExited(node); + }); + return; + } + + this.props.onExit(node); + this.safeSetState({ + status: EXITING + }, function () { + _this3.props.onExiting(node); + + _this3.onTransitionEnd(node, timeouts.exit, function () { + _this3.safeSetState({ + status: EXITED + }, function () { + _this3.props.onExited(node); + }); + }); + }); + }; + + _proto.cancelNextCallback = function cancelNextCallback() { + if (this.nextCallback !== null) { + this.nextCallback.cancel(); + this.nextCallback = null; + } + }; + + _proto.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. + callback = this.setNextCallback(callback); + this.setState(nextState, callback); + }; + + _proto.setNextCallback = function setNextCallback(callback) { + var _this4 = this; + + var active = true; + + this.nextCallback = function (event) { + if (active) { + active = false; + _this4.nextCallback = null; + callback(event); + } + }; + + this.nextCallback.cancel = function () { + active = false; + }; + + return this.nextCallback; + }; + + _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) { + this.setNextCallback(handler); + var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener; + + if (!node || doesNotHaveTimeoutOrListener) { + setTimeout(this.nextCallback, 0); + return; + } + + if (this.props.addEndListener) { + this.props.addEndListener(node, this.nextCallback); + } + + if (timeout != null) { + setTimeout(this.nextCallback, timeout); + } + }; + + _proto.render = function render() { + var status = this.state.status; + + if (status === UNMOUNTED) { + return null; + } + + var _this$props = this.props, + children = _this$props.children, + childProps = _objectWithoutPropertiesLoose(_this$props, ["children"]); // filter props for Transtition + + + delete childProps.in; + delete childProps.mountOnEnter; + delete childProps.unmountOnExit; + delete childProps.appear; + delete childProps.enter; + delete childProps.exit; + delete childProps.timeout; + delete childProps.addEndListener; + delete childProps.onEnter; + delete childProps.onEntering; + delete childProps.onEntered; + delete childProps.onExit; + delete childProps.onExiting; + delete childProps.onExited; + + if (typeof children === 'function') { + return children(status, childProps); + } + + var child = _react.default.Children.only(children); + + return _react.default.cloneElement(child, childProps); + }; + + return Transition; +}(_react.default.Component); + +Transition.contextTypes = { + transitionGroup: PropTypes.object +}; +Transition.childContextTypes = { + transitionGroup: function transitionGroup() {} +}; +Transition.propTypes = false ? undefined : {}; + +function noop() {} + +Transition.defaultProps = { + in: false, + mountOnEnter: false, + unmountOnExit: false, + appear: false, + enter: true, + exit: true, + onEnter: noop, + onEntering: noop, + onEntered: noop, + onExit: noop, + onExiting: noop, + onExited: noop +}; +Transition.UNMOUNTED = 0; +Transition.EXITED = 1; +Transition.ENTERING = 2; +Transition.ENTERED = 3; +Transition.EXITING = 4; + +var _default = (0, _reactLifecyclesCompat.polyfill)(Transition); + +exports.default = _default; + +/***/ }), +/* 13 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = isRequiredForA11y; + +function isRequiredForA11y(validator) { + return function validate(props, propName, componentName, location, propFullName) { + var componentNameSafe = componentName || '<<anonymous>>'; + var propFullNameSafe = propFullName || propName; + + if (props[propName] == null) { + return new Error('The ' + location + ' `' + propFullNameSafe + '` is required to make ' + ('`' + componentNameSafe + '` accessible for users of assistive ') + 'technologies such as screen readers.'); + } + + for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) { + args[_key - 5] = arguments[_key]; + } + + return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args)); + }; +} + +module.exports = exports['default']; + +/***/ }), +/* 14 */ +/***/ (function(module, exports) { + +function _extends() { + module.exports = _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; + }; + + return _extends.apply(this, arguments); +} + +module.exports = _extends; + +/***/ }), +/* 15 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = useUncontrolled; + +var _react = __webpack_require__(1); + +var Utils = _interopRequireWildcard(__webpack_require__(39)); + +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)) { + var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; + + if (desc.get || desc.set) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + } + + newObj.default = obj; + return newObj; + } +} + +function _extends() { + _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; + }; + + return _extends.apply(this, arguments); +} + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +function _toPropertyKey(arg) { + var key = _toPrimitive(arg, "string"); + + return typeof key === "symbol" ? key : String(key); +} + +function _toPrimitive(input, hint) { + if (typeof input !== "object" || input === null) return input; + var prim = input[Symbol.toPrimitive]; + + if (prim !== undefined) { + var res = prim.call(input, hint || "default"); + if (typeof res !== "object") return res; + throw new TypeError("@@toPrimitive must return a primitive value."); + } + + return (hint === "string" ? String : Number)(input); +} + +function useUncontrolled(props, config) { + return Object.keys(config).reduce(function (result, fieldName) { + var _extends2; + + var defaultValue = result[Utils.defaultKey(fieldName)], + propsValue = result[fieldName], + rest = _objectWithoutPropertiesLoose(result, [Utils.defaultKey(fieldName), fieldName].map(_toPropertyKey)); + + var handlerName = config[fieldName]; + var prevProps = (0, _react.useRef)({}); + + var _useState = (0, _react.useState)(defaultValue), + stateValue = _useState[0], + setState = _useState[1]; + + var isProp = Utils.isProp(props, fieldName); + var wasProp = Utils.isProp(prevProps.current, fieldName); + prevProps.current = props; + /** + * If a prop switches from controlled to Uncontrolled + * reset its value to the defaultValue + */ + + if (!isProp && wasProp) { + setState(defaultValue); + } + + var propsHandler = props[handlerName]; + var handler = (0, _react.useCallback)(function (value) { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + if (propsHandler) propsHandler.apply(void 0, [value].concat(args)); + setState(value); + }, [setState, propsHandler]); + return _extends({}, rest, (_extends2 = {}, _extends2[fieldName] = isProp ? propsValue : stateValue, _extends2[handlerName] = handler, _extends2)); + }, props); +} + +module.exports = exports["default"]; + +/***/ }), +/* 16 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = ownerDocument; + +function ownerDocument(node) { + return node && node.ownerDocument || document; +} + +module.exports = exports["default"]; + +/***/ }), +/* 17 */ +/***/ (function(module, exports) { + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} + +module.exports = _inheritsLoose; + +/***/ }), +/* 18 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = scrollbarSize; + +var _inDOM = _interopRequireDefault(__webpack_require__(10)); + +var size; + +function scrollbarSize(recalc) { + if (!size && size !== 0 || recalc) { + if (_inDOM.default) { + var scrollDiv = document.createElement('div'); + scrollDiv.style.position = 'absolute'; + scrollDiv.style.top = '-9999px'; + scrollDiv.style.width = '50px'; + scrollDiv.style.height = '50px'; + scrollDiv.style.overflow = 'scroll'; + document.body.appendChild(scrollDiv); + size = scrollDiv.offsetWidth - scrollDiv.clientWidth; + document.body.removeChild(scrollDiv); + } + } + + return size; +} + +module.exports = exports["default"]; + +/***/ }), +/* 19 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.isRequiredForA11y = exports.elementType = exports.deprecated = exports.componentOrElement = exports.all = undefined; + +var _all = __webpack_require__(34); + +var _all2 = _interopRequireDefault(_all); + +var _componentOrElement = __webpack_require__(20); + +var _componentOrElement2 = _interopRequireDefault(_componentOrElement); + +var _deprecated = __webpack_require__(67); + +var _deprecated2 = _interopRequireDefault(_deprecated); + +var _elementType = __webpack_require__(28); + +var _elementType2 = _interopRequireDefault(_elementType); + +var _isRequiredForA11y = __webpack_require__(13); + +var _isRequiredForA11y2 = _interopRequireDefault(_isRequiredForA11y); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +exports.all = _all2.default; +exports.componentOrElement = _componentOrElement2.default; +exports.deprecated = _deprecated2.default; +exports.elementType = _elementType2.default; +exports.isRequiredForA11y = _isRequiredForA11y2.default; + +/***/ }), +/* 20 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { + return typeof obj; +} : function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; +}; + +var _react = __webpack_require__(1); + +var _react2 = _interopRequireDefault(_react); + +var _createChainableTypeChecker = __webpack_require__(27); + +var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function validate(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + var propType = typeof propValue === 'undefined' ? 'undefined' : _typeof(propValue); + + if (_react2.default.isValidElement(propValue)) { + return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement. You can usually obtain a ReactComponent or DOMElement ' + 'from a ReactElement by attaching a ref to it.'); + } + + if ((propType !== 'object' || typeof propValue.render !== 'function') && propValue.nodeType !== 1) { + return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected a ReactComponent or a ') + 'DOMElement.'); + } + + return null; +} + +exports.default = (0, _createChainableTypeChecker2.default)(validate); +module.exports = exports['default']; + +/***/ }), +/* 21 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * 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 __DEV__ = "production" !== 'production'; + +var warning = function () {}; + +if (__DEV__) { + var printWarning = function printWarning(format, args) { + var len = arguments.length; + args = new Array(len > 1 ? len - 1 : 0); + + for (var key = 1; key < len; key++) { + args[key - 1] = arguments[key]; + } + + var argIndex = 0; + var message = 'Warning: ' + format.replace(/%s/g, function () { + return args[argIndex++]; + }); + + if (typeof console !== 'undefined') { + console.error(message); + } + + try { + // --- Welcome to debugging React --- + // This error was thrown as a convenience so that you can use this stack + // to find the callsite that caused this warning to fire. + throw new Error(message); + } catch (x) {} + }; + + warning = function (condition, format, args) { + var len = arguments.length; + args = new Array(len > 2 ? len - 2 : 0); + + for (var key = 2; key < len; key++) { + args[key - 2] = arguments[key]; + } + + if (format === undefined) { + throw new Error('`warning(condition, format, ...args)` requires a warning ' + 'message argument'); + } + + if (!condition) { + printWarning.apply(null, [format].concat(args)); + } + }; +} + +module.exports = warning; + +/***/ }), +/* 22 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = void 0; + +var _inDOM = _interopRequireDefault(__webpack_require__(10)); + +var _default = function () { + // HTML DOM and SVG DOM may have different support levels, + // so we need to check on context instead of a document root element. + return _inDOM.default ? function (context, node) { + if (context.contains) { + return context.contains(node); + } else if (context.compareDocumentPosition) { + return context === node || !!(context.compareDocumentPosition(node) & 16); + } else { + return fallback(context, node); + } + } : fallback; +}(); + +exports.default = _default; + +function fallback(context, node) { + if (node) do { + if (node === context) return true; + } while (node = node.parentNode); + return false; +} + +module.exports = exports["default"]; + +/***/ }), +/* 23 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = void 0; + +var _properties = _interopRequireDefault(__webpack_require__(26)); + +var _style = _interopRequireDefault(__webpack_require__(11)); + +function onEnd(node, handler, duration) { + var fakeEvent = { + target: node, + currentTarget: node + }, + backup; + if (!_properties.default.end) duration = 0;else if (duration == null) duration = parseDuration(node) || 0; + + if (_properties.default.end) { + node.addEventListener(_properties.default.end, done, false); + backup = setTimeout(function () { + return done(fakeEvent); + }, (duration || 100) * 1.5); + } else setTimeout(done.bind(null, fakeEvent), 0); + + function done(event) { + if (event.target !== event.currentTarget) return; + clearTimeout(backup); + event.target.removeEventListener(_properties.default.end, done); + handler.call(this); + } +} + +onEnd._parseDuration = parseDuration; +var _default = onEnd; +exports.default = _default; + +function parseDuration(node) { + var str = (0, _style.default)(node, _properties.default.duration), + mult = str.indexOf('ms') === -1 ? 1000 : 1; + return parseFloat(str) * mult; +} + +module.exports = exports["default"]; + +/***/ }), +/* 24 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + +/** + * 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 (false) {} + + if (!condition) { + var error; + + if (format === undefined) { + error = new Error('Minified exception occurred; use the non-minified dev environment ' + 'for the full error message and additional helpful warnings.'); + } else { + var args = [a, b, c, d, e, f]; + var argIndex = 0; + error = new Error(format.replace(/%s/g, function () { + return args[argIndex++]; + })); + error.name = 'Invariant Violation'; + } + + error.framesToPop = 1; // we don't care about invariant's own frame + + throw error; + } +}; + +module.exports = invariant; + +/***/ }), +/* 25 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = void 0; + +var _on = _interopRequireDefault(__webpack_require__(43)); + +exports.on = _on.default; + +var _off = _interopRequireDefault(__webpack_require__(44)); + +exports.off = _off.default; + +var _filter = _interopRequireDefault(__webpack_require__(78)); + +exports.filter = _filter.default; + +var _listen = _interopRequireDefault(__webpack_require__(30)); + +exports.listen = _listen.default; +var _default = { + on: _on.default, + off: _off.default, + filter: _filter.default, + listen: _listen.default +}; +exports.default = _default; + +/***/ }), +/* 26 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = exports.animationEnd = exports.animationDelay = exports.animationTiming = exports.animationDuration = exports.animationName = exports.transitionEnd = exports.transitionDuration = exports.transitionDelay = exports.transitionTiming = exports.transitionProperty = exports.transform = void 0; + +var _inDOM = _interopRequireDefault(__webpack_require__(10)); + +var transform = 'transform'; +exports.transform = transform; +var prefix, transitionEnd, animationEnd; +exports.animationEnd = animationEnd; +exports.transitionEnd = transitionEnd; +var transitionProperty, transitionDuration, transitionTiming, transitionDelay; +exports.transitionDelay = transitionDelay; +exports.transitionTiming = transitionTiming; +exports.transitionDuration = transitionDuration; +exports.transitionProperty = transitionProperty; +var animationName, animationDuration, animationTiming, animationDelay; +exports.animationDelay = animationDelay; +exports.animationTiming = animationTiming; +exports.animationDuration = animationDuration; +exports.animationName = animationName; + +if (_inDOM.default) { + var _getTransitionPropert = getTransitionProperties(); + + prefix = _getTransitionPropert.prefix; + exports.transitionEnd = transitionEnd = _getTransitionPropert.transitionEnd; + exports.animationEnd = animationEnd = _getTransitionPropert.animationEnd; + exports.transform = transform = prefix + "-" + transform; + exports.transitionProperty = transitionProperty = prefix + "-transition-property"; + exports.transitionDuration = transitionDuration = prefix + "-transition-duration"; + exports.transitionDelay = transitionDelay = prefix + "-transition-delay"; + exports.transitionTiming = transitionTiming = prefix + "-transition-timing-function"; + exports.animationName = animationName = prefix + "-animation-name"; + exports.animationDuration = animationDuration = prefix + "-animation-duration"; + exports.animationTiming = animationTiming = prefix + "-animation-delay"; + exports.animationDelay = animationDelay = prefix + "-animation-timing-function"; +} + +var _default = { + transform: transform, + end: transitionEnd, + property: transitionProperty, + timing: transitionTiming, + delay: transitionDelay, + duration: transitionDuration +}; +exports.default = _default; + +function getTransitionProperties() { + var style = document.createElement('div').style; + var vendorMap = { + O: function O(e) { + return "o" + e.toLowerCase(); + }, + Moz: function Moz(e) { + return e.toLowerCase(); + }, + Webkit: function Webkit(e) { + return "webkit" + e; + }, + ms: function ms(e) { + return "MS" + e; + } + }; + var vendors = Object.keys(vendorMap); + var transitionEnd, animationEnd; + var prefix = ''; + + for (var i = 0; i < vendors.length; i++) { + var vendor = vendors[i]; + + if (vendor + "TransitionProperty" in style) { + prefix = "-" + vendor.toLowerCase(); + transitionEnd = vendorMap[vendor]('TransitionEnd'); + animationEnd = vendorMap[vendor]('AnimationEnd'); + break; + } + } + + if (!transitionEnd && 'transitionProperty' in style) transitionEnd = 'transitionend'; + if (!animationEnd && 'animationName' in style) animationEnd = 'animationend'; + style = null; + return { + animationEnd: animationEnd, + transitionEnd: transitionEnd, + prefix: prefix + }; +} + +/***/ }), +/* 27 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = createChainableTypeChecker; +/** + * Copyright 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ +// Mostly taken from ReactPropTypes. + +function createChainableTypeChecker(validate) { + function checkType(isRequired, props, propName, componentName, location, propFullName) { + var componentNameSafe = componentName || '<<anonymous>>'; + var propFullNameSafe = propFullName || propName; + + if (props[propName] == null) { + if (isRequired) { + return new Error('Required ' + location + ' `' + propFullNameSafe + '` was not specified ' + ('in `' + componentNameSafe + '`.')); + } + + return null; + } + + for (var _len = arguments.length, args = Array(_len > 6 ? _len - 6 : 0), _key = 6; _key < _len; _key++) { + args[_key - 6] = arguments[_key]; + } + + return validate.apply(undefined, [props, propName, componentNameSafe, location, propFullNameSafe].concat(args)); + } + + var chainedCheckType = checkType.bind(null, false); + chainedCheckType.isRequired = checkType.bind(null, true); + return chainedCheckType; +} + +module.exports = exports['default']; + +/***/ }), +/* 28 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); + +var _react = __webpack_require__(1); + +var _react2 = _interopRequireDefault(_react); + +var _reactIs = __webpack_require__(69); + +var _createChainableTypeChecker = __webpack_require__(27); + +var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function elementType(props, propName, componentName, location, propFullName) { + var propValue = props[propName]; + + if (_react2.default.isValidElement(propValue)) { + return new Error('Invalid ' + location + ' `' + propFullName + '` of type ReactElement ' + ('supplied to `' + componentName + '`,expected an element type (a string ') + ', component class, or function component).'); + } + + if (!(0, _reactIs.isValidElementType)(propValue)) { + return new Error('Invalid ' + location + ' `' + propFullName + '` of value `' + propValue + '` ' + ('supplied to `' + componentName + '`, expected an element type (a string ') + ', component class, or function component).'); + } + + return null; +} + +exports.default = (0, _createChainableTypeChecker2.default)(elementType); +module.exports = exports['default']; + +/***/ }), +/* 29 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = void 0; + +var _react = _interopRequireDefault(__webpack_require__(1)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +var DropdownContext = _react.default.createContext({ + menuRef: function menuRef() {}, + toggleRef: function toggleRef() {}, + onToggle: function onToggle() {}, + toggleNode: undefined, + alignEnd: null, + show: null, + drop: null +}); + +var _default = DropdownContext; +exports.default = _default; +module.exports = exports.default; + +/***/ }), +/* 30 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = void 0; + +var _inDOM = _interopRequireDefault(__webpack_require__(10)); + +var _on = _interopRequireDefault(__webpack_require__(43)); + +var _off = _interopRequireDefault(__webpack_require__(44)); + +var listen = function listen() {}; + +if (_inDOM.default) { + listen = function listen(node, eventName, handler, capture) { + (0, _on.default)(node, eventName, handler, capture); + return function () { + (0, _off.default)(node, eventName, handler, capture); + }; + }; +} + +var _default = listen; +exports.default = _default; +module.exports = exports["default"]; + +/***/ }), +/* 31 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js +var objectWithoutPropertiesLoose = __webpack_require__(53); +var objectWithoutPropertiesLoose_default = /*#__PURE__*/__webpack_require__.n(objectWithoutPropertiesLoose); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/extends.js +var helpers_extends = __webpack_require__(14); +var extends_default = /*#__PURE__*/__webpack_require__.n(helpers_extends); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/inheritsLoose.js +var inheritsLoose = __webpack_require__(17); +var inheritsLoose_default = /*#__PURE__*/__webpack_require__.n(inheritsLoose); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/assertThisInitialized.js +var assertThisInitialized = __webpack_require__(3); +var assertThisInitialized_default = /*#__PURE__*/__webpack_require__.n(assertThisInitialized); + +// EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/defineProperty.js +var defineProperty = __webpack_require__(4); +var defineProperty_default = /*#__PURE__*/__webpack_require__.n(defineProperty); + +// EXTERNAL MODULE: external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react"} +var external_root_React_commonjs2_react_commonjs_react_amd_react_ = __webpack_require__(1); + +// EXTERNAL MODULE: ./node_modules/popper.js/dist/esm/popper.js +var popper = __webpack_require__(38); + +// EXTERNAL MODULE: ./node_modules/react-popper/node_modules/create-react-context/lib/index.js +var lib = __webpack_require__(54); +var lib_default = /*#__PURE__*/__webpack_require__.n(lib); + +// CONCATENATED MODULE: ./node_modules/react-popper/lib/esm/Manager.js + + + + + + +var ManagerContext = lib_default()({ + setReferenceNode: undefined, + referenceNode: undefined +}); + +var Manager_Manager = +/*#__PURE__*/ +function (_React$Component) { + inheritsLoose_default()(Manager, _React$Component); + + function Manager() { + var _this; + + _this = _React$Component.call(this) || this; + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "setReferenceNode", function (referenceNode) { + if (!referenceNode || _this.state.context.referenceNode === referenceNode) { + return; + } + + _this.setState(function (_ref) { + var context = _ref.context; + return { + context: extends_default()({}, context, { + referenceNode: referenceNode + }) + }; + }); + }); + + _this.state = { + context: { + setReferenceNode: _this.setReferenceNode, + referenceNode: undefined + } + }; + return _this; + } + + var _proto = Manager.prototype; + + _proto.render = function render() { + return external_root_React_commonjs2_react_commonjs_react_amd_react_["createElement"](ManagerContext.Provider, { + value: this.state.context + }, this.props.children); + }; + + return Manager; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_["Component"]); + + +// CONCATENATED MODULE: ./node_modules/react-popper/lib/esm/utils.js +/** + * Takes an argument and if it's an array, returns the first item in the array, + * otherwise returns the argument. Used for Preact compatibility. + */ +var unwrapArray = function unwrapArray(arg) { + return Array.isArray(arg) ? arg[0] : arg; +}; +/** + * Takes a maybe-undefined function and arbitrary args and invokes the function + * only if it is defined. + */ + +var safeInvoke = function safeInvoke(fn) { + if (typeof fn === "function") { + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + return fn.apply(void 0, args); + } +}; +// CONCATENATED MODULE: ./node_modules/react-popper/lib/esm/Popper.js + + + + + + + + + +var initialStyle = { + position: 'absolute', + top: 0, + left: 0, + opacity: 0, + pointerEvents: 'none' +}; +var initialArrowStyle = {}; +var Popper_InnerPopper = +/*#__PURE__*/ +function (_React$Component) { + inheritsLoose_default()(InnerPopper, _React$Component); + + function InnerPopper() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "state", { + data: undefined, + placement: undefined + }); + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "popperInstance", void 0); + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "popperNode", null); + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "arrowNode", null); + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "setPopperNode", function (popperNode) { + if (!popperNode || _this.popperNode === popperNode) return; + safeInvoke(_this.props.innerRef, popperNode); + _this.popperNode = popperNode; + + _this.updatePopperInstance(); + }); + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "setArrowNode", function (arrowNode) { + _this.arrowNode = arrowNode; + }); + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "updateStateModifier", { + enabled: true, + order: 900, + fn: function fn(data) { + var placement = data.placement; + + _this.setState({ + data: data, + placement: placement + }); + + return data; + } + }); + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "getOptions", function () { + return { + placement: _this.props.placement, + eventsEnabled: _this.props.eventsEnabled, + positionFixed: _this.props.positionFixed, + modifiers: extends_default()({}, _this.props.modifiers, { + arrow: extends_default()({}, _this.props.modifiers && _this.props.modifiers.arrow, { + enabled: !!_this.arrowNode, + element: _this.arrowNode + }), + applyStyle: { + enabled: false + }, + updateStateModifier: _this.updateStateModifier + }) + }; + }); + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "getPopperStyle", function () { + return !_this.popperNode || !_this.state.data ? initialStyle : extends_default()({ + position: _this.state.data.offsets.popper.position + }, _this.state.data.styles); + }); + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "getPopperPlacement", function () { + return !_this.state.data ? undefined : _this.state.placement; + }); + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "getArrowStyle", function () { + return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles; + }); + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "getOutOfBoundariesState", function () { + return _this.state.data ? _this.state.data.hide : undefined; + }); + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "destroyPopperInstance", function () { + if (!_this.popperInstance) return; + + _this.popperInstance.destroy(); + + _this.popperInstance = null; + }); + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "updatePopperInstance", function () { + _this.destroyPopperInstance(); + + var _assertThisInitialize = assertThisInitialized_default()(assertThisInitialized_default()(_this)), + popperNode = _assertThisInitialize.popperNode; + + var referenceElement = _this.props.referenceElement; + if (!referenceElement || !popperNode) return; + _this.popperInstance = new popper["a" /* default */](referenceElement, popperNode, _this.getOptions()); + }); + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "scheduleUpdate", function () { + if (_this.popperInstance) { + _this.popperInstance.scheduleUpdate(); + } + }); + + return _this; + } + + var _proto = InnerPopper.prototype; + + _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) { + // If the Popper.js options have changed, update the instance (destroy + create) + if (this.props.placement !== prevProps.placement || this.props.referenceElement !== prevProps.referenceElement || this.props.positionFixed !== prevProps.positionFixed) { + this.updatePopperInstance(); + } else if (this.props.eventsEnabled !== prevProps.eventsEnabled && this.popperInstance) { + this.props.eventsEnabled ? this.popperInstance.enableEventListeners() : this.popperInstance.disableEventListeners(); + } // A placement difference in state means popper determined a new placement + // apart from the props value. By the time the popper element is rendered with + // the new position Popper has already measured it, if the place change triggers + // a size change it will result in a misaligned popper. So we schedule an update to be sure. + + + if (prevState.placement !== this.state.placement) { + this.scheduleUpdate(); + } + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + safeInvoke(this.props.innerRef, null); + this.destroyPopperInstance(); + }; + + _proto.render = function render() { + return unwrapArray(this.props.children)({ + ref: this.setPopperNode, + style: this.getPopperStyle(), + placement: this.getPopperPlacement(), + outOfBoundaries: this.getOutOfBoundariesState(), + scheduleUpdate: this.scheduleUpdate, + arrowProps: { + ref: this.setArrowNode, + style: this.getArrowStyle() + } + }); + }; + + return InnerPopper; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_["Component"]); + +defineProperty_default()(Popper_InnerPopper, "defaultProps", { + placement: 'bottom', + eventsEnabled: true, + referenceElement: undefined, + positionFixed: false +}); + +var placements = popper["a" /* default */].placements; + +function Popper(_ref) { + var referenceElement = _ref.referenceElement, + props = objectWithoutPropertiesLoose_default()(_ref, ["referenceElement"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_["createElement"](ManagerContext.Consumer, null, function (_ref2) { + var referenceNode = _ref2.referenceNode; + return external_root_React_commonjs2_react_commonjs_react_amd_react_["createElement"](Popper_InnerPopper, extends_default()({ + referenceElement: referenceElement !== undefined ? referenceElement : referenceNode + }, props)); + }); +} +// EXTERNAL MODULE: ./node_modules/warning/warning.js +var warning = __webpack_require__(21); +var warning_default = /*#__PURE__*/__webpack_require__.n(warning); + +// CONCATENATED MODULE: ./node_modules/react-popper/lib/esm/Reference.js + + + + + + + + + +var Reference_InnerReference = +/*#__PURE__*/ +function (_React$Component) { + inheritsLoose_default()(InnerReference, _React$Component); + + function InnerReference() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + + defineProperty_default()(assertThisInitialized_default()(assertThisInitialized_default()(_this)), "refHandler", function (node) { + safeInvoke(_this.props.innerRef, node); + safeInvoke(_this.props.setReferenceNode, node); + }); + + return _this; + } + + var _proto = InnerReference.prototype; + + _proto.render = function render() { + warning_default()(Boolean(this.props.setReferenceNode), '`Reference` should not be used outside of a `Manager` component.'); + return unwrapArray(this.props.children)({ + ref: this.refHandler + }); + }; + + return InnerReference; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_["Component"]); + +function Reference(props) { + return external_root_React_commonjs2_react_commonjs_react_amd_react_["createElement"](ManagerContext.Consumer, null, function (_ref) { + var setReferenceNode = _ref.setReferenceNode; + return external_root_React_commonjs2_react_commonjs_react_amd_react_["createElement"](Reference_InnerReference, extends_default()({ + setReferenceNode: setReferenceNode + }, props)); + }); +} +// CONCATENATED MODULE: ./node_modules/react-popper/lib/esm/index.js +/* concated harmony reexport Popper */__webpack_require__.d(__webpack_exports__, "Popper", function() { return Popper; }); +/* concated harmony reexport placements */__webpack_require__.d(__webpack_exports__, "placements", function() { return placements; }); +/* concated harmony reexport Manager */__webpack_require__.d(__webpack_exports__, "Manager", function() { return Manager_Manager; }); +/* concated harmony reexport Reference */__webpack_require__.d(__webpack_exports__, "Reference", function() { return Reference; }); +// Public components + + + + // Public types + +/***/ }), +/* 32 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = forwardRef; + +var _react = _interopRequireDefault(__webpack_require__(1)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function forwardRef(renderFn, _temp) { + var _ref = _temp === void 0 ? {} : _temp, + propTypes = _ref.propTypes, + defaultProps = _ref.defaultProps, + _ref$allowFallback = _ref.allowFallback, + allowFallback = _ref$allowFallback === void 0 ? false : _ref$allowFallback, + _ref$displayName = _ref.displayName, + displayName = _ref$displayName === void 0 ? renderFn.name || renderFn.displayName : _ref$displayName; + + var render = function render(props, ref) { + return renderFn(props, ref); + }; + + return Object.assign(_react.default.forwardRef || !allowFallback ? _react.default.forwardRef(render) : function (props) { + return render(props, null); + }, { + displayName: displayName, + propTypes: propTypes, + defaultProps: defaultProps + }); +} + +/***/ }), +/* 33 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = camelize; +var rHyphen = /-(.)/g; + +function camelize(string) { + return string.replace(rHyphen, function (_, chr) { + return chr.toUpperCase(); + }); +} + +module.exports = exports["default"]; + +/***/ }), +/* 34 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = all; + +var _createChainableTypeChecker = __webpack_require__(27); + +var _createChainableTypeChecker2 = _interopRequireDefault(_createChainableTypeChecker); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function all() { + for (var _len = arguments.length, validators = Array(_len), _key = 0; _key < _len; _key++) { + validators[_key] = arguments[_key]; + } + + function allPropTypes() { + for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + var error = null; + validators.forEach(function (validator) { + if (error != null) { + return; + } + + var result = validator.apply(undefined, args); + + if (result != null) { + error = result; + } + }); + return error; + } + + return (0, _createChainableTypeChecker2.default)(allPropTypes); +} + +module.exports = exports['default']; + +/***/ }), +/* 35 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = void 0; + +var _propTypes = _interopRequireDefault(__webpack_require__(0)); + +var _react = _interopRequireDefault(__webpack_require__(1)); + +var _reactPopper = __webpack_require__(31); + +var _DropdownContext = _interopRequireDefault(__webpack_require__(29)); + +var _RootCloseWrapper = _interopRequireDefault(__webpack_require__(42)); + +var _mapContextToProps = _interopRequireDefault(__webpack_require__(77)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +function _extends() { + _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; + }; + + return _extends.apply(this, arguments); +} + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} + +var DropdownMenu = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(DropdownMenu, _React$Component); + + function DropdownMenu() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.state = { + toggleId: null + }; + _this.popperIsInitialized = false; + + _this.handleClose = function (e) { + if (!_this.props.onToggle) return; + + _this.props.onToggle(false, e); + }; + + return _this; + } + + var _proto = DropdownMenu.prototype; + + _proto.getSnapshotBeforeUpdate = function getSnapshotBeforeUpdate(prevProps) { + // If, to the best we can tell, this update won't reinitialize popper, + // manually schedule an update + var shouldUpdatePopper = !prevProps.show && this.props.show && this.popperIsInitialized && // a new reference node will already trigger this internally + prevProps.toggleNode === this.props.toggleNode; + + if (this.props.show && this.props.usePopper && !this.popperIsInitialized) { + this.popperIsInitialized = true; + } + + return !!shouldUpdatePopper; + }; + + _proto.componentDidUpdate = function componentDidUpdate(_, __, shouldUpdatePopper) { + if (shouldUpdatePopper && this.scheduleUpdate) { + this.scheduleUpdate(); + } + }; + + _proto.render = function render() { + var _this2 = this; + + var _this$props = this.props, + show = _this$props.show, + flip = _this$props.flip, + menuRef = _this$props.menuRef, + alignEnd = _this$props.alignEnd, + drop = _this$props.drop, + usePopper = _this$props.usePopper, + toggleNode = _this$props.toggleNode, + rootCloseEvent = _this$props.rootCloseEvent, + _this$props$popperCon = _this$props.popperConfig, + popperConfig = _this$props$popperCon === void 0 ? {} : _this$props$popperCon; + var placement = alignEnd ? 'bottom-end' : 'bottom-start'; + if (drop === 'up') placement = alignEnd ? 'top-end' : 'top-start'; + if (drop === 'right') placement = alignEnd ? 'right-end' : 'right-start'; + if (drop === 'left') placement = alignEnd ? 'left-end' : 'left-start'; + var menu = null; + var menuProps = { + ref: menuRef, + 'aria-labelledby': toggleNode && toggleNode.id + }; + var childArgs = { + show: show, + alignEnd: alignEnd, + close: this.handleClose + }; + + if (!usePopper) { + menu = this.props.children(_extends({}, childArgs, { + props: menuProps + })); + } else if (this.popperIsInitialized || show) { + // Add it this way, so it doesn't override someones usage + // with react-poppers <Reference> + if (toggleNode) popperConfig.referenceElement = toggleNode; + menu = _react.default.createElement(_reactPopper.Popper, _extends({}, popperConfig, { + innerRef: menuRef, + placement: placement, + eventsEnabled: !!show, + modifiers: _extends({ + flip: { + enabled: !!flip + } + }, popperConfig.modifiers) + }), function (_ref) { + var ref = _ref.ref, + style = _ref.style, + popper = _objectWithoutPropertiesLoose(_ref, ["ref", "style"]); + + _this2.scheduleUpdate = popper.scheduleUpdate; + return _this2.props.children(_extends({}, popper, childArgs, { + props: _extends({}, menuProps, { + ref: ref, + style: style + }) + })); + }); + } + + return menu && _react.default.createElement(_RootCloseWrapper.default, { + disabled: !show, + event: rootCloseEvent, + onRootClose: this.handleClose + }, menu); + }; + + return DropdownMenu; +}(_react.default.Component); + +DropdownMenu.displayName = 'ReactOverlaysDropdownMenu'; +DropdownMenu.propTypes = { + /** + * A render prop that returns a Menu element. The `props` + * argument should spread through to **a component that can accept a ref**. + * + * @type {Function ({ + * show: boolean, + * alignEnd: boolean, + * close: (?SyntheticEvent) => void, + * placement: Placement, + * outOfBoundaries: ?boolean, + * scheduleUpdate: () => void, + * props: { + * ref: (?HTMLElement) => void, + * style: { [string]: string | number }, + * aria-labelledby: ?string + * }, + * arrowProps: { + * ref: (?HTMLElement) => void, + * style: { [string]: string | number }, + * }, + * }) => React.Element} + */ + children: _propTypes.default.func.isRequired, + + /** + * Controls the visible state of the menu, generally this is + * provided by the parent `Dropdown` component, + * but may also be specified as a prop directly. + */ + show: _propTypes.default.bool, + + /** + * Aligns the dropdown menu to the 'end' of it's placement position. + * Generally this is provided by the parent `Dropdown` component, + * but may also be specified as a prop directly. + */ + alignEnd: _propTypes.default.bool, + + /** + * Enables the Popper.js `flip` modifier, allowing the Dropdown to + * automatically adjust it's placement in case of overlap with the viewport or toggle. + * Refer to the [flip docs](https://popper.js.org/popper-documentation.html#modifiers..flip.enabled) for more info + */ + flip: _propTypes.default.bool, + usePopper: _propTypes.default.oneOf([true, false]), + + /** + * A set of popper options and props passed directly to react-popper's Popper component. + */ + popperConfig: _propTypes.default.object, + + /** + * Override the default event used by RootCloseWrapper. + */ + rootCloseEvent: _propTypes.default.string, + + /** @private */ + onToggle: _propTypes.default.func, + + /** @private */ + menuRef: _propTypes.default.func, + + /** @private */ + drop: _propTypes.default.string, + + /** @private */ + toggleNode: _propTypes.default.any +}; +DropdownMenu.defaultProps = { + usePopper: true +}; +var DecoratedDropdownMenu = (0, _mapContextToProps.default)(_DropdownContext.default, function (_ref2, props) { + var show = _ref2.show, + alignEnd = _ref2.alignEnd, + toggle = _ref2.toggle, + drop = _ref2.drop, + menuRef = _ref2.menuRef, + toggleNode = _ref2.toggleNode; + return { + drop: drop, + menuRef: menuRef, + toggleNode: toggleNode, + onToggle: toggle, + show: show == null ? props.show : show, + alignEnd: alignEnd == null ? props.alignEnd : alignEnd + }; +}, DropdownMenu); +var _default = DecoratedDropdownMenu; +exports.default = _default; +module.exports = exports.default; + +/***/ }), +/* 36 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = void 0; + +var _propTypes = _interopRequireDefault(__webpack_require__(0)); + +var _react = _interopRequireDefault(__webpack_require__(1)); + +var _DropdownContext = _interopRequireDefault(__webpack_require__(29)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +var propTypes = { + /** + * A render prop that returns a Toggle element. The `props` + * argument should spread through to **a component that can accept a ref**. Use + * the `onToggle` argument to toggle the menu open or closed + * + * @type {Function ({ + * show: boolean, + * toggle: (show: boolean) => void, + * props: { + * ref: (?HTMLElement) => void, + * aria-haspopup: true + * aria-expanded: boolean + * }, + * }) => React.Element} + */ + children: _propTypes.default.func.isRequired +}; + +function DropdownToggle(_ref) { + var children = _ref.children; + return _react.default.createElement(_DropdownContext.default.Consumer, null, function (_ref2) { + var show = _ref2.show, + toggle = _ref2.toggle, + toggleRef = _ref2.toggleRef; + return children({ + show: show, + toggle: toggle, + props: { + ref: toggleRef, + 'aria-haspopup': true, + 'aria-expanded': !!show + } + }); + }); +} + +DropdownToggle.displayName = 'ReactOverlaysDropdownToggle'; +DropdownToggle.propTypes = propTypes; +var _default = DropdownToggle; +exports.default = _default; +module.exports = exports.default; + +/***/ }), +/* 37 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = void 0; + +var _class = _interopRequireDefault(__webpack_require__(80)); + +var _style = _interopRequireDefault(__webpack_require__(11)); + +var _scrollbarSize = _interopRequireDefault(__webpack_require__(18)); + +var _isOverflowing = _interopRequireDefault(__webpack_require__(83)); + +var _manageAriaHidden = __webpack_require__(85); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function findIndexOf(arr, cb) { + var idx = -1; + arr.some(function (d, i) { + if (cb(d, i)) { + idx = i; + return true; + } + }); + return idx; +} +/** + * Proper state managment for containers and the modals in those containers. + * + * @internal Used by the Modal to ensure proper styling of containers. + */ + + +var ModalManager = +/*#__PURE__*/ +function () { + function ModalManager(_temp) { + var _ref = _temp === void 0 ? {} : _temp, + _ref$hideSiblingNodes = _ref.hideSiblingNodes, + hideSiblingNodes = _ref$hideSiblingNodes === void 0 ? true : _ref$hideSiblingNodes, + _ref$handleContainerO = _ref.handleContainerOverflow, + handleContainerOverflow = _ref$handleContainerO === void 0 ? true : _ref$handleContainerO; + + this.hideSiblingNodes = hideSiblingNodes; + this.handleContainerOverflow = handleContainerOverflow; + this.modals = []; + this.containers = []; + this.data = []; + this.scrollbarSize = (0, _scrollbarSize.default)(); + } + + var _proto = ModalManager.prototype; + + _proto.isContainerOverflowing = function isContainerOverflowing(modal) { + var data = this.data[this.containerIndexFromModal(modal)]; + return data && data.overflowing; + }; + + _proto.containerIndexFromModal = function containerIndexFromModal(modal) { + return findIndexOf(this.data, function (d) { + return d.modals.indexOf(modal) !== -1; + }); + }; + + _proto.setContainerStyle = function setContainerStyle(containerState, container) { + var style = { + overflow: 'hidden' // we are only interested in the actual `style` here + // becasue we will override it + + }; + containerState.style = { + overflow: container.style.overflow, + paddingRight: container.style.paddingRight + }; + + if (containerState.overflowing) { + // use computed style, here to get the real padding + // to add our scrollbar width + style.paddingRight = parseInt((0, _style.default)(container, 'paddingRight') || 0, 10) + this.scrollbarSize + "px"; + } + + (0, _style.default)(container, style); + }; + + _proto.removeContainerStyle = function removeContainerStyle(containerState, container) { + var style = containerState.style; + Object.keys(style).forEach(function (key) { + container.style[key] = style[key]; + }); + }; + + _proto.add = function add(modal, container, className) { + var modalIdx = this.modals.indexOf(modal); + var containerIdx = this.containers.indexOf(container); + + if (modalIdx !== -1) { + return modalIdx; + } + + modalIdx = this.modals.length; + this.modals.push(modal); + + if (this.hideSiblingNodes) { + (0, _manageAriaHidden.hideSiblings)(container, modal); + } + + if (containerIdx !== -1) { + this.data[containerIdx].modals.push(modal); + return modalIdx; + } + + var data = { + modals: [modal], + //right now only the first modal of a container will have its classes applied + classes: className ? className.split(/\s+/) : [], + overflowing: (0, _isOverflowing.default)(container) + }; + + if (this.handleContainerOverflow) { + this.setContainerStyle(data, container); + } + + data.classes.forEach(_class.default.addClass.bind(null, container)); + this.containers.push(container); + this.data.push(data); + return modalIdx; + }; + + _proto.remove = function remove(modal) { + var modalIdx = this.modals.indexOf(modal); + + if (modalIdx === -1) { + return; + } + + var containerIdx = this.containerIndexFromModal(modal); + var data = this.data[containerIdx]; + var container = this.containers[containerIdx]; + data.modals.splice(data.modals.indexOf(modal), 1); + this.modals.splice(modalIdx, 1); // if that was the last modal in a container, + // clean up the container + + if (data.modals.length === 0) { + data.classes.forEach(_class.default.removeClass.bind(null, container)); + + if (this.handleContainerOverflow) { + this.removeContainerStyle(data, container); + } + + if (this.hideSiblingNodes) { + (0, _manageAriaHidden.showSiblings)(container, modal); + } + + this.containers.splice(containerIdx, 1); + this.data.splice(containerIdx, 1); + } else if (this.hideSiblingNodes) { + //otherwise make sure the next top modal is visible to a SR + var _data$modals = data.modals[data.modals.length - 1], + backdrop = _data$modals.backdrop, + dialog = _data$modals.dialog; + (0, _manageAriaHidden.ariaHidden)(false, dialog); + (0, _manageAriaHidden.ariaHidden)(false, backdrop); + } + }; + + _proto.isTopModal = function isTopModal(modal) { + return !!this.modals.length && this.modals[this.modals.length - 1] === modal; + }; + + return ModalManager; +}(); + +var _default = ModalManager; +exports.default = _default; +module.exports = exports.default; + +/***/ }), +/* 38 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {/**! + * @fileOverview Kickass library to create and place poppers near their reference elements. + * @version 1.15.0 + * @license + * Copyright (c) 2016 Federico Zivolo and contributors + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ +var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'; +var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox']; +var timeoutDuration = 0; + +for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) { + if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) { + timeoutDuration = 1; + break; + } +} + +function microtaskDebounce(fn) { + var called = false; + return function () { + if (called) { + return; + } + + called = true; + window.Promise.resolve().then(function () { + called = false; + fn(); + }); + }; +} + +function taskDebounce(fn) { + var scheduled = false; + return function () { + if (!scheduled) { + scheduled = true; + setTimeout(function () { + scheduled = false; + fn(); + }, timeoutDuration); + } + }; +} + +var supportsMicroTasks = isBrowser && window.Promise; +/** +* Create a debounced version of a method, that's asynchronously deferred +* but called in the minimum time possible. +* +* @method +* @memberof Popper.Utils +* @argument {Function} fn +* @returns {Function} +*/ + +var debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce; +/** + * Check if the given variable is a function + * @method + * @memberof Popper.Utils + * @argument {Any} functionToCheck - variable to check + * @returns {Boolean} answer to: is a function? + */ + +function isFunction(functionToCheck) { + var getType = {}; + return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; +} +/** + * Get CSS computed property of the given element + * @method + * @memberof Popper.Utils + * @argument {Eement} element + * @argument {String} property + */ + + +function getStyleComputedProperty(element, property) { + if (element.nodeType !== 1) { + return []; + } // NOTE: 1 DOM access here + + + var window = element.ownerDocument.defaultView; + var css = window.getComputedStyle(element, null); + return property ? css[property] : css; +} +/** + * Returns the parentNode or the host of the element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} parent + */ + + +function getParentNode(element) { + if (element.nodeName === 'HTML') { + return element; + } + + return element.parentNode || element.host; +} +/** + * Returns the scrolling parent of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} scroll parent + */ + + +function getScrollParent(element) { + // Return body, `getScroll` will take care to get the correct `scrollTop` from it + if (!element) { + return document.body; + } + + switch (element.nodeName) { + case 'HTML': + case 'BODY': + return element.ownerDocument.body; + + case '#document': + return element.body; + } // Firefox want us to check `-x` and `-y` variations as well + + + var _getStyleComputedProp = getStyleComputedProperty(element), + overflow = _getStyleComputedProp.overflow, + overflowX = _getStyleComputedProp.overflowX, + overflowY = _getStyleComputedProp.overflowY; + + if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) { + return element; + } + + return getScrollParent(getParentNode(element)); +} + +var isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode); +var isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent); +/** + * Determines if the browser is Internet Explorer + * @method + * @memberof Popper.Utils + * @param {Number} version to check + * @returns {Boolean} isIE + */ + +function isIE(version) { + if (version === 11) { + return isIE11; + } + + if (version === 10) { + return isIE10; + } + + return isIE11 || isIE10; +} +/** + * Returns the offset parent of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} offset parent + */ + + +function getOffsetParent(element) { + if (!element) { + return document.documentElement; + } + + var noOffsetParent = isIE(10) ? document.body : null; // NOTE: 1 DOM access here + + var offsetParent = element.offsetParent || null; // Skip hidden elements which don't have an offsetParent + + while (offsetParent === noOffsetParent && element.nextElementSibling) { + offsetParent = (element = element.nextElementSibling).offsetParent; + } + + var nodeName = offsetParent && offsetParent.nodeName; + + if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') { + return element ? element.ownerDocument.documentElement : document.documentElement; + } // .offsetParent will return the closest TH, TD or TABLE in case + // no offsetParent is present, I hate this job... + + + if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') { + return getOffsetParent(offsetParent); + } + + return offsetParent; +} + +function isOffsetContainer(element) { + var nodeName = element.nodeName; + + if (nodeName === 'BODY') { + return false; + } + + return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element; +} +/** + * Finds the root node (document, shadowDOM root) of the given element + * @method + * @memberof Popper.Utils + * @argument {Element} node + * @returns {Element} root node + */ + + +function getRoot(node) { + if (node.parentNode !== null) { + return getRoot(node.parentNode); + } + + return node; +} +/** + * Finds the offset parent common to the two provided nodes + * @method + * @memberof Popper.Utils + * @argument {Element} element1 + * @argument {Element} element2 + * @returns {Element} common offset parent + */ + + +function findCommonOffsetParent(element1, element2) { + // This check is needed to avoid errors in case one of the elements isn't defined for any reason + if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) { + return document.documentElement; + } // Here we make sure to give as "start" the element that comes first in the DOM + + + var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING; + var start = order ? element1 : element2; + var end = order ? element2 : element1; // Get common ancestor container + + var range = document.createRange(); + range.setStart(start, 0); + range.setEnd(end, 0); + var commonAncestorContainer = range.commonAncestorContainer; // Both nodes are inside #document + + if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) { + if (isOffsetContainer(commonAncestorContainer)) { + return commonAncestorContainer; + } + + return getOffsetParent(commonAncestorContainer); + } // one of the nodes is inside shadowDOM, find which one + + + var element1root = getRoot(element1); + + if (element1root.host) { + return findCommonOffsetParent(element1root.host, element2); + } else { + return findCommonOffsetParent(element1, getRoot(element2).host); + } +} +/** + * Gets the scroll value of the given element in the given side (top and left) + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @argument {String} side `top` or `left` + * @returns {number} amount of scrolled pixels + */ + + +function getScroll(element) { + var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top'; + var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft'; + var nodeName = element.nodeName; + + if (nodeName === 'BODY' || nodeName === 'HTML') { + var html = element.ownerDocument.documentElement; + var scrollingElement = element.ownerDocument.scrollingElement || html; + return scrollingElement[upperSide]; + } + + return element[upperSide]; +} +/* + * Sum or subtract the element scroll values (left and top) from a given rect object + * @method + * @memberof Popper.Utils + * @param {Object} rect - Rect object you want to change + * @param {HTMLElement} element - The element from the function reads the scroll values + * @param {Boolean} subtract - set to true if you want to subtract the scroll values + * @return {Object} rect - The modifier rect object + */ + + +function includeScroll(rect, element) { + var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var scrollTop = getScroll(element, 'top'); + var scrollLeft = getScroll(element, 'left'); + var modifier = subtract ? -1 : 1; + rect.top += scrollTop * modifier; + rect.bottom += scrollTop * modifier; + rect.left += scrollLeft * modifier; + rect.right += scrollLeft * modifier; + return rect; +} +/* + * Helper to detect borders of a given element + * @method + * @memberof Popper.Utils + * @param {CSSStyleDeclaration} styles + * Result of `getStyleComputedProperty` on the given element + * @param {String} axis - `x` or `y` + * @return {number} borders - The borders size of the given axis + */ + + +function getBordersSize(styles, axis) { + var sideA = axis === 'x' ? 'Left' : 'Top'; + var sideB = sideA === 'Left' ? 'Right' : 'Bottom'; + return parseFloat(styles['border' + sideA + 'Width'], 10) + parseFloat(styles['border' + sideB + 'Width'], 10); +} + +function getSize(axis, body, html, computedStyle) { + return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0); +} + +function getWindowSizes(document) { + var body = document.body; + var html = document.documentElement; + var computedStyle = isIE(10) && getComputedStyle(html); + return { + height: getSize('Height', body, html, computedStyle), + width: getSize('Width', body, html, computedStyle) + }; +} + +var classCallCheck = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +}; + +var createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; +}(); + +var defineProperty = function (obj, key, value) { + if (key in obj) { + Object.defineProperty(obj, key, { + value: value, + enumerable: true, + configurable: true, + writable: true + }); + } else { + obj[key] = value; + } + + return obj; +}; + +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; +}; +/** + * Given element offsets, generate an output similar to getBoundingClientRect + * @method + * @memberof Popper.Utils + * @argument {Object} offsets + * @returns {Object} ClientRect like output + */ + + +function getClientRect(offsets) { + return _extends({}, offsets, { + right: offsets.left + offsets.width, + bottom: offsets.top + offsets.height + }); +} +/** + * Get bounding client rect of given element + * @method + * @memberof Popper.Utils + * @param {HTMLElement} element + * @return {Object} client rect + */ + + +function getBoundingClientRect(element) { + var rect = {}; // IE10 10 FIX: Please, don't ask, the element isn't + // considered in DOM in some circumstances... + // This isn't reproducible in IE10 compatibility mode of IE11 + + try { + if (isIE(10)) { + rect = element.getBoundingClientRect(); + var scrollTop = getScroll(element, 'top'); + var scrollLeft = getScroll(element, 'left'); + rect.top += scrollTop; + rect.left += scrollLeft; + rect.bottom += scrollTop; + rect.right += scrollLeft; + } else { + rect = element.getBoundingClientRect(); + } + } catch (e) {} + + var result = { + left: rect.left, + top: rect.top, + width: rect.right - rect.left, + height: rect.bottom - rect.top + }; // subtract scrollbar size from sizes + + var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {}; + var width = sizes.width || element.clientWidth || result.right - result.left; + var height = sizes.height || element.clientHeight || result.bottom - result.top; + var horizScrollbar = element.offsetWidth - width; + var vertScrollbar = element.offsetHeight - height; // if an hypothetical scrollbar is detected, we must be sure it's not a `border` + // we make this check conditional for performance reasons + + if (horizScrollbar || vertScrollbar) { + var styles = getStyleComputedProperty(element); + horizScrollbar -= getBordersSize(styles, 'x'); + vertScrollbar -= getBordersSize(styles, 'y'); + result.width -= horizScrollbar; + result.height -= vertScrollbar; + } + + return getClientRect(result); +} + +function getOffsetRectRelativeToArbitraryNode(children, parent) { + var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false; + var isIE10 = isIE(10); + var isHTML = parent.nodeName === 'HTML'; + var childrenRect = getBoundingClientRect(children); + var parentRect = getBoundingClientRect(parent); + var scrollParent = getScrollParent(children); + var styles = getStyleComputedProperty(parent); + var borderTopWidth = parseFloat(styles.borderTopWidth, 10); + var borderLeftWidth = parseFloat(styles.borderLeftWidth, 10); // In cases where the parent is fixed, we must ignore negative scroll in offset calc + + if (fixedPosition && isHTML) { + parentRect.top = Math.max(parentRect.top, 0); + parentRect.left = Math.max(parentRect.left, 0); + } + + var offsets = getClientRect({ + top: childrenRect.top - parentRect.top - borderTopWidth, + left: childrenRect.left - parentRect.left - borderLeftWidth, + width: childrenRect.width, + height: childrenRect.height + }); + offsets.marginTop = 0; + offsets.marginLeft = 0; // Subtract margins of documentElement in case it's being used as parent + // we do this only on HTML because it's the only element that behaves + // differently when margins are applied to it. The margins are included in + // the box of the documentElement, in the other cases not. + + if (!isIE10 && isHTML) { + var marginTop = parseFloat(styles.marginTop, 10); + var marginLeft = parseFloat(styles.marginLeft, 10); + offsets.top -= borderTopWidth - marginTop; + offsets.bottom -= borderTopWidth - marginTop; + offsets.left -= borderLeftWidth - marginLeft; + offsets.right -= borderLeftWidth - marginLeft; // Attach marginTop and marginLeft because in some circumstances we may need them + + offsets.marginTop = marginTop; + offsets.marginLeft = marginLeft; + } + + if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') { + offsets = includeScroll(offsets, parent); + } + + return offsets; +} + +function getViewportOffsetRectRelativeToArtbitraryNode(element) { + var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var html = element.ownerDocument.documentElement; + var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html); + var width = Math.max(html.clientWidth, window.innerWidth || 0); + var height = Math.max(html.clientHeight, window.innerHeight || 0); + var scrollTop = !excludeScroll ? getScroll(html) : 0; + var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0; + var offset = { + top: scrollTop - relativeOffset.top + relativeOffset.marginTop, + left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft, + width: width, + height: height + }; + return getClientRect(offset); +} +/** + * Check if the given element is fixed or is inside a fixed parent + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @argument {Element} customContainer + * @returns {Boolean} answer to "isFixed?" + */ + + +function isFixed(element) { + var nodeName = element.nodeName; + + if (nodeName === 'BODY' || nodeName === 'HTML') { + return false; + } + + if (getStyleComputedProperty(element, 'position') === 'fixed') { + return true; + } + + var parentNode = getParentNode(element); + + if (!parentNode) { + return false; + } + + return isFixed(parentNode); +} +/** + * Finds the first parent of an element that has a transformed property defined + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Element} first transformed parent or documentElement + */ + + +function getFixedPositionOffsetParent(element) { + // This check is needed to avoid errors in case one of the elements isn't defined for any reason + if (!element || !element.parentElement || isIE()) { + return document.documentElement; + } + + var el = element.parentElement; + + while (el && getStyleComputedProperty(el, 'transform') === 'none') { + el = el.parentElement; + } + + return el || document.documentElement; +} +/** + * Computed the boundaries limits and return them + * @method + * @memberof Popper.Utils + * @param {HTMLElement} popper + * @param {HTMLElement} reference + * @param {number} padding + * @param {HTMLElement} boundariesElement - Element used to define the boundaries + * @param {Boolean} fixedPosition - Is in fixed position mode + * @returns {Object} Coordinates of the boundaries + */ + + +function getBoundaries(popper, reference, padding, boundariesElement) { + var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; // NOTE: 1 DOM access here + + var boundaries = { + top: 0, + left: 0 + }; + var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference); // Handle viewport case + + if (boundariesElement === 'viewport') { + boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition); + } else { + // Handle other cases based on DOM element used as boundaries + var boundariesNode = void 0; + + if (boundariesElement === 'scrollParent') { + boundariesNode = getScrollParent(getParentNode(reference)); + + if (boundariesNode.nodeName === 'BODY') { + boundariesNode = popper.ownerDocument.documentElement; + } + } else if (boundariesElement === 'window') { + boundariesNode = popper.ownerDocument.documentElement; + } else { + boundariesNode = boundariesElement; + } + + var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); // In case of HTML, we need a different computation + + if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) { + var _getWindowSizes = getWindowSizes(popper.ownerDocument), + height = _getWindowSizes.height, + width = _getWindowSizes.width; + + boundaries.top += offsets.top - offsets.marginTop; + boundaries.bottom = height + offsets.top; + boundaries.left += offsets.left - offsets.marginLeft; + boundaries.right = width + offsets.left; + } else { + // for all the other DOM elements, this one is good + boundaries = offsets; + } + } // Add paddings + + + padding = padding || 0; + var isPaddingNumber = typeof padding === 'number'; + boundaries.left += isPaddingNumber ? padding : padding.left || 0; + boundaries.top += isPaddingNumber ? padding : padding.top || 0; + boundaries.right -= isPaddingNumber ? padding : padding.right || 0; + boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; + return boundaries; +} + +function getArea(_ref) { + var width = _ref.width, + height = _ref.height; + return width * height; +} +/** + * Utility used to transform the `auto` placement to the placement with more + * available space. + * @method + * @memberof Popper.Utils + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ + + +function computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) { + var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0; + + if (placement.indexOf('auto') === -1) { + return placement; + } + + var boundaries = getBoundaries(popper, reference, padding, boundariesElement); + var rects = { + top: { + width: boundaries.width, + height: refRect.top - boundaries.top + }, + right: { + width: boundaries.right - refRect.right, + height: boundaries.height + }, + bottom: { + width: boundaries.width, + height: boundaries.bottom - refRect.bottom + }, + left: { + width: refRect.left - boundaries.left, + height: boundaries.height + } + }; + var sortedAreas = Object.keys(rects).map(function (key) { + return _extends({ + key: key + }, rects[key], { + area: getArea(rects[key]) + }); + }).sort(function (a, b) { + return b.area - a.area; + }); + var filteredAreas = sortedAreas.filter(function (_ref2) { + var width = _ref2.width, + height = _ref2.height; + return width >= popper.clientWidth && height >= popper.clientHeight; + }); + var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key; + var variation = placement.split('-')[1]; + return computedPlacement + (variation ? '-' + variation : ''); +} +/** + * Get offsets to the reference element + * @method + * @memberof Popper.Utils + * @param {Object} state + * @param {Element} popper - the popper element + * @param {Element} reference - the reference element (the popper will be relative to this) + * @param {Element} fixedPosition - is in fixed position mode + * @returns {Object} An object containing the offsets which will be applied to the popper + */ + + +function getReferenceOffsets(state, popper, reference) { + var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null; + var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference); + return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition); +} +/** + * Get the outer sizes of the given element (offset size + margins) + * @method + * @memberof Popper.Utils + * @argument {Element} element + * @returns {Object} object containing width and height properties + */ + + +function getOuterSizes(element) { + var window = element.ownerDocument.defaultView; + var styles = window.getComputedStyle(element); + var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0); + var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0); + var result = { + width: element.offsetWidth + y, + height: element.offsetHeight + x + }; + return result; +} +/** + * Get the opposite placement of the given one + * @method + * @memberof Popper.Utils + * @argument {String} placement + * @returns {String} flipped placement + */ + + +function getOppositePlacement(placement) { + var hash = { + left: 'right', + right: 'left', + bottom: 'top', + top: 'bottom' + }; + return placement.replace(/left|right|bottom|top/g, function (matched) { + return hash[matched]; + }); +} +/** + * Get offsets to the popper + * @method + * @memberof Popper.Utils + * @param {Object} position - CSS position the Popper will get applied + * @param {HTMLElement} popper - the popper element + * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this) + * @param {String} placement - one of the valid placement options + * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper + */ + + +function getPopperOffsets(popper, referenceOffsets, placement) { + placement = placement.split('-')[0]; // Get popper node sizes + + var popperRect = getOuterSizes(popper); // Add position, width and height to our offsets object + + var popperOffsets = { + width: popperRect.width, + height: popperRect.height + }; // depending by the popper placement we have to compute its offsets slightly differently + + var isHoriz = ['right', 'left'].indexOf(placement) !== -1; + var mainSide = isHoriz ? 'top' : 'left'; + var secondarySide = isHoriz ? 'left' : 'top'; + var measurement = isHoriz ? 'height' : 'width'; + var secondaryMeasurement = !isHoriz ? 'height' : 'width'; + popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2; + + if (placement === secondarySide) { + popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement]; + } else { + popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)]; + } + + return popperOffsets; +} +/** + * Mimics the `find` method of Array + * @method + * @memberof Popper.Utils + * @argument {Array} arr + * @argument prop + * @argument value + * @returns index or -1 + */ + + +function find(arr, check) { + // use native find if supported + if (Array.prototype.find) { + return arr.find(check); + } // use `filter` to obtain the same behavior of `find` + + + return arr.filter(check)[0]; +} +/** + * Return the index of the matching object + * @method + * @memberof Popper.Utils + * @argument {Array} arr + * @argument prop + * @argument value + * @returns index or -1 + */ + + +function findIndex(arr, prop, value) { + // use native findIndex if supported + if (Array.prototype.findIndex) { + return arr.findIndex(function (cur) { + return cur[prop] === value; + }); + } // use `find` + `indexOf` if `findIndex` isn't supported + + + var match = find(arr, function (obj) { + return obj[prop] === value; + }); + return arr.indexOf(match); +} +/** + * Loop trough the list of modifiers and run them in order, + * each of them will then edit the data object. + * @method + * @memberof Popper.Utils + * @param {dataObject} data + * @param {Array} modifiers + * @param {String} ends - Optional modifier name used as stopper + * @returns {dataObject} + */ + + +function runModifiers(modifiers, data, ends) { + var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends)); + modifiersToRun.forEach(function (modifier) { + if (modifier['function']) { + // eslint-disable-line dot-notation + console.warn('`modifier.function` is deprecated, use `modifier.fn`!'); + } + + var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation + + if (modifier.enabled && isFunction(fn)) { + // Add properties to offsets to make them a complete clientRect object + // we do this before each modifier to make sure the previous one doesn't + // mess with these values + data.offsets.popper = getClientRect(data.offsets.popper); + data.offsets.reference = getClientRect(data.offsets.reference); + data = fn(data, modifier); + } + }); + return data; +} +/** + * Updates the position of the popper, computing the new offsets and applying + * the new style.<br /> + * Prefer `scheduleUpdate` over `update` because of performance reasons. + * @method + * @memberof Popper + */ + + +function update() { + // if popper is destroyed, don't perform any further update + if (this.state.isDestroyed) { + return; + } + + var data = { + instance: this, + styles: {}, + arrowStyles: {}, + attributes: {}, + flipped: false, + offsets: {} + }; // compute reference element offsets + + data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); // compute auto placement, store placement inside the data object, + // modifiers will be able to edit `placement` if needed + // and refer to originalPlacement to know the original value + + data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); // store the computed placement inside `originalPlacement` + + data.originalPlacement = data.placement; + data.positionFixed = this.options.positionFixed; // compute the popper offsets + + data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement); + data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; // run the modifiers + + data = runModifiers(this.modifiers, data); // the first `update` will call `onCreate` callback + // the other ones will call `onUpdate` callback + + if (!this.state.isCreated) { + this.state.isCreated = true; + this.options.onCreate(data); + } else { + this.options.onUpdate(data); + } +} +/** + * Helper used to know if the given modifier is enabled. + * @method + * @memberof Popper.Utils + * @returns {Boolean} + */ + + +function isModifierEnabled(modifiers, modifierName) { + return modifiers.some(function (_ref) { + var name = _ref.name, + enabled = _ref.enabled; + return enabled && name === modifierName; + }); +} +/** + * Get the prefixed supported property name + * @method + * @memberof Popper.Utils + * @argument {String} property (camelCase) + * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix) + */ + + +function getSupportedPropertyName(property) { + var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O']; + var upperProp = property.charAt(0).toUpperCase() + property.slice(1); + + for (var i = 0; i < prefixes.length; i++) { + var prefix = prefixes[i]; + var toCheck = prefix ? '' + prefix + upperProp : property; + + if (typeof document.body.style[toCheck] !== 'undefined') { + return toCheck; + } + } + + return null; +} +/** + * Destroys the popper. + * @method + * @memberof Popper + */ + + +function destroy() { + this.state.isDestroyed = true; // touch DOM only if `applyStyle` modifier is enabled + + if (isModifierEnabled(this.modifiers, 'applyStyle')) { + this.popper.removeAttribute('x-placement'); + this.popper.style.position = ''; + this.popper.style.top = ''; + this.popper.style.left = ''; + this.popper.style.right = ''; + this.popper.style.bottom = ''; + this.popper.style.willChange = ''; + this.popper.style[getSupportedPropertyName('transform')] = ''; + } + + this.disableEventListeners(); // remove the popper if user explicity asked for the deletion on destroy + // do not use `remove` because IE11 doesn't support it + + if (this.options.removeOnDestroy) { + this.popper.parentNode.removeChild(this.popper); + } + + return this; +} +/** + * Get the window associated with the element + * @argument {Element} element + * @returns {Window} + */ + + +function getWindow(element) { + var ownerDocument = element.ownerDocument; + return ownerDocument ? ownerDocument.defaultView : window; +} + +function attachToScrollParents(scrollParent, event, callback, scrollParents) { + var isBody = scrollParent.nodeName === 'BODY'; + var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent; + target.addEventListener(event, callback, { + passive: true + }); + + if (!isBody) { + attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents); + } + + scrollParents.push(target); +} +/** + * Setup needed event listeners used to update the popper position + * @method + * @memberof Popper.Utils + * @private + */ + + +function setupEventListeners(reference, options, state, updateBound) { + // Resize event listener on window + state.updateBound = updateBound; + getWindow(reference).addEventListener('resize', state.updateBound, { + passive: true + }); // Scroll event listener on scroll parents + + var scrollElement = getScrollParent(reference); + attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents); + state.scrollElement = scrollElement; + state.eventsEnabled = true; + return state; +} +/** + * It will add resize/scroll events and start recalculating + * position of the popper element when they are triggered. + * @method + * @memberof Popper + */ + + +function enableEventListeners() { + if (!this.state.eventsEnabled) { + this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate); + } +} +/** + * Remove event listeners used to update the popper position + * @method + * @memberof Popper.Utils + * @private + */ + + +function removeEventListeners(reference, state) { + // Remove resize event listener on window + getWindow(reference).removeEventListener('resize', state.updateBound); // Remove scroll event listener on scroll parents + + state.scrollParents.forEach(function (target) { + target.removeEventListener('scroll', state.updateBound); + }); // Reset state + + state.updateBound = null; + state.scrollParents = []; + state.scrollElement = null; + state.eventsEnabled = false; + return state; +} +/** + * It will remove resize/scroll events and won't recalculate popper position + * when they are triggered. It also won't trigger `onUpdate` callback anymore, + * unless you call `update` method manually. + * @method + * @memberof Popper + */ + + +function disableEventListeners() { + if (this.state.eventsEnabled) { + cancelAnimationFrame(this.scheduleUpdate); + this.state = removeEventListeners(this.reference, this.state); + } +} +/** + * Tells if a given input is a number + * @method + * @memberof Popper.Utils + * @param {*} input to check + * @return {Boolean} + */ + + +function isNumeric(n) { + return n !== '' && !isNaN(parseFloat(n)) && isFinite(n); +} +/** + * Set the style to the given popper + * @method + * @memberof Popper.Utils + * @argument {Element} element - Element to apply the style to + * @argument {Object} styles + * Object with a list of properties and values which will be applied to the element + */ + + +function setStyles(element, styles) { + Object.keys(styles).forEach(function (prop) { + var unit = ''; // add unit if the value is numeric and is one of the following + + if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) { + unit = 'px'; + } + + element.style[prop] = styles[prop] + unit; + }); +} +/** + * Set the attributes to the given popper + * @method + * @memberof Popper.Utils + * @argument {Element} element - Element to apply the attributes to + * @argument {Object} styles + * Object with a list of properties and values which will be applied to the element + */ + + +function setAttributes(element, attributes) { + Object.keys(attributes).forEach(function (prop) { + var value = attributes[prop]; + + if (value !== false) { + element.setAttribute(prop, attributes[prop]); + } else { + element.removeAttribute(prop); + } + }); +} +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} data.styles - List of style properties - values to apply to popper element + * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The same data object + */ + + +function applyStyle(data) { + // any property present in `data.styles` will be applied to the popper, + // in this way we can make the 3rd party modifiers add custom styles to it + // Be aware, modifiers could override the properties defined in the previous + // lines of this modifier! + setStyles(data.instance.popper, data.styles); // any property present in `data.attributes` will be applied to the popper, + // they will be set as HTML attributes of the element + + setAttributes(data.instance.popper, data.attributes); // if arrowElement is defined and arrowStyles has some properties + + if (data.arrowElement && Object.keys(data.arrowStyles).length) { + setStyles(data.arrowElement, data.arrowStyles); + } + + return data; +} +/** + * Set the x-placement attribute before everything else because it could be used + * to add margins to the popper margins needs to be calculated to get the + * correct popper offsets. + * @method + * @memberof Popper.modifiers + * @param {HTMLElement} reference - The reference element used to position the popper + * @param {HTMLElement} popper - The HTML element used as popper + * @param {Object} options - Popper.js options + */ + + +function applyStyleOnLoad(reference, popper, options, modifierOptions, state) { + // compute reference element offsets + var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); // compute auto placement, store placement inside the data object, + // modifiers will be able to edit `placement` if needed + // and refer to originalPlacement to know the original value + + var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding); + popper.setAttribute('x-placement', placement); // Apply `position` to popper before anything else because + // without the position applied we can't guarantee correct computations + + setStyles(popper, { + position: options.positionFixed ? 'fixed' : 'absolute' + }); + return options; +} +/** + * @function + * @memberof Popper.Utils + * @argument {Object} data - The data object generated by `update` method + * @argument {Boolean} shouldRound - If the offsets should be rounded at all + * @returns {Object} The popper's position offsets rounded + * + * The tale of pixel-perfect positioning. It's still not 100% perfect, but as + * good as it can be within reason. + * Discussion here: https://github.com/FezVrasta/popper.js/pull/715 + * + * Low DPI screens cause a popper to be blurry if not using full pixels (Safari + * as well on High DPI screens). + * + * Firefox prefers no rounding for positioning and does not have blurriness on + * high DPI screens. + * + * Only horizontal placement and left/right values need to be considered. + */ + + +function getRoundedOffsets(data, shouldRound) { + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + var round = Math.round, + floor = Math.floor; + + var noRound = function noRound(v) { + return v; + }; + + var referenceWidth = round(reference.width); + var popperWidth = round(popper.width); + var isVertical = ['left', 'right'].indexOf(data.placement) !== -1; + var isVariation = data.placement.indexOf('-') !== -1; + var sameWidthParity = referenceWidth % 2 === popperWidth % 2; + var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1; + var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor; + var verticalToInteger = !shouldRound ? noRound : round; + return { + left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left), + top: verticalToInteger(popper.top), + bottom: verticalToInteger(popper.bottom), + right: horizontalToInteger(popper.right) + }; +} + +var isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent); +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ + +function computeStyle(data, options) { + var x = options.x, + y = options.y; + var popper = data.offsets.popper; // Remove this legacy support in Popper.js v2 + + var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) { + return modifier.name === 'applyStyle'; + }).gpuAcceleration; + + if (legacyGpuAccelerationOption !== undefined) { + console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'); + } + + var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration; + var offsetParent = getOffsetParent(data.instance.popper); + var offsetParentRect = getBoundingClientRect(offsetParent); // Styles + + var styles = { + position: popper.position + }; + var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox); + var sideA = x === 'bottom' ? 'top' : 'bottom'; + var sideB = y === 'right' ? 'left' : 'right'; // if gpuAcceleration is set to `true` and transform is supported, + // we use `translate3d` to apply the position to the popper we + // automatically use the supported prefixed version if needed + + var prefixedProperty = getSupportedPropertyName('transform'); // now, let's make a step back and look at this code closely (wtf?) + // If the content of the popper grows once it's been positioned, it + // may happen that the popper gets misplaced because of the new content + // overflowing its reference element + // To avoid this problem, we provide two options (x and y), which allow + // the consumer to define the offset origin. + // If we position a popper on top of a reference element, we can set + // `x` to `top` to make the popper grow towards its top instead of + // its bottom. + + var left = void 0, + top = void 0; + + if (sideA === 'bottom') { + // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar) + // and not the bottom of the html element + if (offsetParent.nodeName === 'HTML') { + top = -offsetParent.clientHeight + offsets.bottom; + } else { + top = -offsetParentRect.height + offsets.bottom; + } + } else { + top = offsets.top; + } + + if (sideB === 'right') { + if (offsetParent.nodeName === 'HTML') { + left = -offsetParent.clientWidth + offsets.right; + } else { + left = -offsetParentRect.width + offsets.right; + } + } else { + left = offsets.left; + } + + if (gpuAcceleration && prefixedProperty) { + styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)'; + styles[sideA] = 0; + styles[sideB] = 0; + styles.willChange = 'transform'; + } else { + // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties + var invertTop = sideA === 'bottom' ? -1 : 1; + var invertLeft = sideB === 'right' ? -1 : 1; + styles[sideA] = top * invertTop; + styles[sideB] = left * invertLeft; + styles.willChange = sideA + ', ' + sideB; + } // Attributes + + + var attributes = { + 'x-placement': data.placement + }; // Update `data` attributes, styles and arrowStyles + + data.attributes = _extends({}, attributes, data.attributes); + data.styles = _extends({}, styles, data.styles); + data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles); + return data; +} +/** + * Helper used to know if the given modifier depends from another one.<br /> + * It checks if the needed modifier is listed and enabled. + * @method + * @memberof Popper.Utils + * @param {Array} modifiers - list of modifiers + * @param {String} requestingName - name of requesting modifier + * @param {String} requestedName - name of requested modifier + * @returns {Boolean} + */ + + +function isModifierRequired(modifiers, requestingName, requestedName) { + var requesting = find(modifiers, function (_ref) { + var name = _ref.name; + return name === requestingName; + }); + var isRequired = !!requesting && modifiers.some(function (modifier) { + return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order; + }); + + if (!isRequired) { + var _requesting = '`' + requestingName + '`'; + + var requested = '`' + requestedName + '`'; + console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!'); + } + + return isRequired; +} +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ + + +function arrow(data, options) { + var _data$offsets$arrow; // arrow depends on keepTogether in order to work + + + if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) { + return data; + } + + var arrowElement = options.element; // if arrowElement is a string, suppose it's a CSS selector + + if (typeof arrowElement === 'string') { + arrowElement = data.instance.popper.querySelector(arrowElement); // if arrowElement is not found, don't run the modifier + + if (!arrowElement) { + return data; + } + } else { + // if the arrowElement isn't a query selector we must check that the + // provided DOM node is child of its popper node + if (!data.instance.popper.contains(arrowElement)) { + console.warn('WARNING: `arrow.element` must be child of its popper element!'); + return data; + } + } + + var placement = data.placement.split('-')[0]; + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + var isVertical = ['left', 'right'].indexOf(placement) !== -1; + var len = isVertical ? 'height' : 'width'; + var sideCapitalized = isVertical ? 'Top' : 'Left'; + var side = sideCapitalized.toLowerCase(); + var altSide = isVertical ? 'left' : 'top'; + var opSide = isVertical ? 'bottom' : 'right'; + var arrowElementSize = getOuterSizes(arrowElement)[len]; // + // extends keepTogether behavior making sure the popper and its + // reference have enough pixels in conjunction + // + // top/left side + + if (reference[opSide] - arrowElementSize < popper[side]) { + data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize); + } // bottom/right side + + + if (reference[side] + arrowElementSize > popper[opSide]) { + data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide]; + } + + data.offsets.popper = getClientRect(data.offsets.popper); // compute center of the popper + + var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; // Compute the sideValue using the updated popper offsets + // take popper margin in account because we don't have this info available + + var css = getStyleComputedProperty(data.instance.popper); + var popperMarginSide = parseFloat(css['margin' + sideCapitalized], 10); + var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width'], 10); + var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; // prevent arrowElement from being placed not contiguously to its popper + + sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0); + data.arrowElement = arrowElement; + data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow); + return data; +} +/** + * Get the opposite placement variation of the given one + * @method + * @memberof Popper.Utils + * @argument {String} placement variation + * @returns {String} flipped placement variation + */ + + +function getOppositeVariation(variation) { + if (variation === 'end') { + return 'start'; + } else if (variation === 'start') { + return 'end'; + } + + return variation; +} +/** + * List of accepted placements to use as values of the `placement` option.<br /> + * Valid placements are: + * - `auto` + * - `top` + * - `right` + * - `bottom` + * - `left` + * + * Each placement can have a variation from this list: + * - `-start` + * - `-end` + * + * Variations are interpreted easily if you think of them as the left to right + * written languages. Horizontally (`top` and `bottom`), `start` is left and `end` + * is right.<br /> + * Vertically (`left` and `right`), `start` is top and `end` is bottom. + * + * Some valid examples are: + * - `top-end` (on top of reference, right aligned) + * - `right-start` (on right of reference, top aligned) + * - `bottom` (on bottom, centered) + * - `auto-end` (on the side with more space available, alignment depends by placement) + * + * @static + * @type {Array} + * @enum {String} + * @readonly + * @method placements + * @memberof Popper + */ + + +var placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; // Get rid of `auto` `auto-start` and `auto-end` + +var validPlacements = placements.slice(3); +/** + * Given an initial placement, returns all the subsequent placements + * clockwise (or counter-clockwise). + * + * @method + * @memberof Popper.Utils + * @argument {String} placement - A valid placement (it accepts variations) + * @argument {Boolean} counter - Set to true to walk the placements counterclockwise + * @returns {Array} placements including their variations + */ + +function clockwise(placement) { + var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false; + var index = validPlacements.indexOf(placement); + var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index)); + return counter ? arr.reverse() : arr; +} + +var BEHAVIORS = { + FLIP: 'flip', + CLOCKWISE: 'clockwise', + COUNTERCLOCKWISE: 'counterclockwise' +}; +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ + +function flip(data, options) { + // if `inner` modifier is enabled, we can't use the `flip` modifier + if (isModifierEnabled(data.instance.modifiers, 'inner')) { + return data; + } + + if (data.flipped && data.placement === data.originalPlacement) { + // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides + return data; + } + + var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed); + var placement = data.placement.split('-')[0]; + var placementOpposite = getOppositePlacement(placement); + var variation = data.placement.split('-')[1] || ''; + var flipOrder = []; + + switch (options.behavior) { + case BEHAVIORS.FLIP: + flipOrder = [placement, placementOpposite]; + break; + + case BEHAVIORS.CLOCKWISE: + flipOrder = clockwise(placement); + break; + + case BEHAVIORS.COUNTERCLOCKWISE: + flipOrder = clockwise(placement, true); + break; + + default: + flipOrder = options.behavior; + } + + flipOrder.forEach(function (step, index) { + if (placement !== step || flipOrder.length === index + 1) { + return data; + } + + placement = data.placement.split('-')[0]; + placementOpposite = getOppositePlacement(placement); + var popperOffsets = data.offsets.popper; + var refOffsets = data.offsets.reference; // using floor because the reference offsets may contain decimals we are not going to consider here + + var floor = Math.floor; + var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom); + var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left); + var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right); + var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top); + var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom); + var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; // flip the variation if required + + var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; // flips variation if reference element overflows boundaries + + var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); // flips variation if popper content overflows boundaries + + var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop); + var flippedVariation = flippedVariationByRef || flippedVariationByContent; + + if (overlapsRef || overflowsBoundaries || flippedVariation) { + // this boolean to detect any flip loop + data.flipped = true; + + if (overlapsRef || overflowsBoundaries) { + placement = flipOrder[index + 1]; + } + + if (flippedVariation) { + variation = getOppositeVariation(variation); + } + + data.placement = placement + (variation ? '-' + variation : ''); // this object contains `position`, we want to preserve it along with + // any additional property we may add in the future + + data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement)); + data = runModifiers(data.instance.modifiers, data, 'flip'); + } + }); + return data; +} +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ + + +function keepTogether(data) { + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + var placement = data.placement.split('-')[0]; + var floor = Math.floor; + var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; + var side = isVertical ? 'right' : 'bottom'; + var opSide = isVertical ? 'left' : 'top'; + var measurement = isVertical ? 'width' : 'height'; + + if (popper[side] < floor(reference[opSide])) { + data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement]; + } + + if (popper[opSide] > floor(reference[side])) { + data.offsets.popper[opSide] = floor(reference[side]); + } + + return data; +} +/** + * Converts a string containing value + unit into a px value number + * @function + * @memberof {modifiers~offset} + * @private + * @argument {String} str - Value + unit string + * @argument {String} measurement - `height` or `width` + * @argument {Object} popperOffsets + * @argument {Object} referenceOffsets + * @returns {Number|String} + * Value in pixels, or original string if no values were extracted + */ + + +function toValue(str, measurement, popperOffsets, referenceOffsets) { + // separate value from unit + var split = str.match(/((?:\-|\+)?\d*\.?\d*)(.*)/); + var value = +split[1]; + var unit = split[2]; // If it's not a number it's an operator, I guess + + if (!value) { + return str; + } + + if (unit.indexOf('%') === 0) { + var element = void 0; + + switch (unit) { + case '%p': + element = popperOffsets; + break; + + case '%': + case '%r': + default: + element = referenceOffsets; + } + + var rect = getClientRect(element); + return rect[measurement] / 100 * value; + } else if (unit === 'vh' || unit === 'vw') { + // if is a vh or vw, we calculate the size based on the viewport + var size = void 0; + + if (unit === 'vh') { + size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0); + } else { + size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0); + } + + return size / 100 * value; + } else { + // if is an explicit pixel unit, we get rid of the unit and keep the value + // if is an implicit unit, it's px, and we return just the value + return value; + } +} +/** + * Parse an `offset` string to extrapolate `x` and `y` numeric offsets. + * @function + * @memberof {modifiers~offset} + * @private + * @argument {String} offset + * @argument {Object} popperOffsets + * @argument {Object} referenceOffsets + * @argument {String} basePlacement + * @returns {Array} a two cells array with x and y offsets in numbers + */ + + +function parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) { + var offsets = [0, 0]; // Use height if placement is left or right and index is 0 otherwise use width + // in this way the first offset will use an axis and the second one + // will use the other one + + var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; // Split the offset string to obtain a list of values and operands + // The regex addresses values with the plus or minus sign in front (+10, -20, etc) + + var fragments = offset.split(/(\+|\-)/).map(function (frag) { + return frag.trim(); + }); // Detect if the offset string contains a pair of values or a single one + // they could be separated by comma or space + + var divider = fragments.indexOf(find(fragments, function (frag) { + return frag.search(/,|\s/) !== -1; + })); + + if (fragments[divider] && fragments[divider].indexOf(',') === -1) { + console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.'); + } // If divider is found, we divide the list of values and operands to divide + // them by ofset X and Y. + + + var splitRegex = /\s*,\s*|\s+/; + var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; // Convert the values with units to absolute pixels to allow our computations + + ops = ops.map(function (op, index) { + // Most of the units rely on the orientation of the popper + var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width'; + var mergeWithPrevious = false; + return op // This aggregates any `+` or `-` sign that aren't considered operators + // e.g.: 10 + +5 => [10, +, +5] + .reduce(function (a, b) { + if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) { + a[a.length - 1] = b; + mergeWithPrevious = true; + return a; + } else if (mergeWithPrevious) { + a[a.length - 1] += b; + mergeWithPrevious = false; + return a; + } else { + return a.concat(b); + } + }, []) // Here we convert the string values into number values (in px) + .map(function (str) { + return toValue(str, measurement, popperOffsets, referenceOffsets); + }); + }); // Loop trough the offsets arrays and execute the operations + + ops.forEach(function (op, index) { + op.forEach(function (frag, index2) { + if (isNumeric(frag)) { + offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1); + } + }); + }); + return offsets; +} +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @argument {Number|String} options.offset=0 + * The offset value as described in the modifier description + * @returns {Object} The data object, properly modified + */ + + +function offset(data, _ref) { + var offset = _ref.offset; + var placement = data.placement, + _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + var basePlacement = placement.split('-')[0]; + var offsets = void 0; + + if (isNumeric(+offset)) { + offsets = [+offset, 0]; + } else { + offsets = parseOffset(offset, popper, reference, basePlacement); + } + + if (basePlacement === 'left') { + popper.top += offsets[0]; + popper.left -= offsets[1]; + } else if (basePlacement === 'right') { + popper.top += offsets[0]; + popper.left += offsets[1]; + } else if (basePlacement === 'top') { + popper.left += offsets[0]; + popper.top -= offsets[1]; + } else if (basePlacement === 'bottom') { + popper.left += offsets[0]; + popper.top += offsets[1]; + } + + data.popper = popper; + return data; +} +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ + + +function preventOverflow(data, options) { + var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); // If offsetParent is the reference element, we really want to + // go one step up and use the next offsetParent as reference to + // avoid to make this modifier completely useless and look like broken + + if (data.instance.reference === boundariesElement) { + boundariesElement = getOffsetParent(boundariesElement); + } // NOTE: DOM access here + // resets the popper's position so that the document size can be calculated excluding + // the size of the popper element itself + + + var transformProp = getSupportedPropertyName('transform'); + var popperStyles = data.instance.popper.style; // assignment to help minification + + var top = popperStyles.top, + left = popperStyles.left, + transform = popperStyles[transformProp]; + popperStyles.top = ''; + popperStyles.left = ''; + popperStyles[transformProp] = ''; + var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); // NOTE: DOM access here + // restores the original style properties after the offsets have been computed + + popperStyles.top = top; + popperStyles.left = left; + popperStyles[transformProp] = transform; + options.boundaries = boundaries; + var order = options.priority; + var popper = data.offsets.popper; + var check = { + primary: function primary(placement) { + var value = popper[placement]; + + if (popper[placement] < boundaries[placement] && !options.escapeWithReference) { + value = Math.max(popper[placement], boundaries[placement]); + } + + return defineProperty({}, placement, value); + }, + secondary: function secondary(placement) { + var mainSide = placement === 'right' ? 'left' : 'top'; + var value = popper[mainSide]; + + if (popper[placement] > boundaries[placement] && !options.escapeWithReference) { + value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height)); + } + + return defineProperty({}, mainSide, value); + } + }; + order.forEach(function (placement) { + var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary'; + popper = _extends({}, popper, check[side](placement)); + }); + data.offsets.popper = popper; + return data; +} +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ + + +function shift(data) { + var placement = data.placement; + var basePlacement = placement.split('-')[0]; + var shiftvariation = placement.split('-')[1]; // if shift shiftvariation is specified, run the modifier + + if (shiftvariation) { + var _data$offsets = data.offsets, + reference = _data$offsets.reference, + popper = _data$offsets.popper; + var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1; + var side = isVertical ? 'left' : 'top'; + var measurement = isVertical ? 'width' : 'height'; + var shiftOffsets = { + start: defineProperty({}, side, reference[side]), + end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement]) + }; + data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]); + } + + return data; +} +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by update method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ + + +function hide(data) { + if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) { + return data; + } + + var refRect = data.offsets.reference; + var bound = find(data.instance.modifiers, function (modifier) { + return modifier.name === 'preventOverflow'; + }).boundaries; + + if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) { + // Avoid unnecessary DOM access if visibility hasn't changed + if (data.hide === true) { + return data; + } + + data.hide = true; + data.attributes['x-out-of-boundaries'] = ''; + } else { + // Avoid unnecessary DOM access if visibility hasn't changed + if (data.hide === false) { + return data; + } + + data.hide = false; + data.attributes['x-out-of-boundaries'] = false; + } + + return data; +} +/** + * @function + * @memberof Modifiers + * @argument {Object} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {Object} The data object, properly modified + */ + + +function inner(data) { + var placement = data.placement; + var basePlacement = placement.split('-')[0]; + var _data$offsets = data.offsets, + popper = _data$offsets.popper, + reference = _data$offsets.reference; + var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1; + var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1; + popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0); + data.placement = getOppositePlacement(placement); + data.offsets.popper = getClientRect(popper); + return data; +} +/** + * Modifier function, each modifier can have a function of this type assigned + * to its `fn` property.<br /> + * These functions will be called on each update, this means that you must + * make sure they are performant enough to avoid performance bottlenecks. + * + * @function ModifierFn + * @argument {dataObject} data - The data object generated by `update` method + * @argument {Object} options - Modifiers configuration and options + * @returns {dataObject} The data object, properly modified + */ + +/** + * Modifiers are plugins used to alter the behavior of your poppers.<br /> + * Popper.js uses a set of 9 modifiers to provide all the basic functionalities + * needed by the library. + * + * Usually you don't want to override the `order`, `fn` and `onLoad` props. + * All the other properties are configurations that could be tweaked. + * @namespace modifiers + */ + + +var modifiers = { + /** + * Modifier used to shift the popper on the start or end of its reference + * element.<br /> + * It will read the variation of the `placement` property.<br /> + * It can be one either `-end` or `-start`. + * @memberof modifiers + * @inner + */ + shift: { + /** @prop {number} order=100 - Index used to define the order of execution */ + order: 100, + + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + + /** @prop {ModifierFn} */ + fn: shift + }, + + /** + * The `offset` modifier can shift your popper on both its axis. + * + * It accepts the following units: + * - `px` or unit-less, interpreted as pixels + * - `%` or `%r`, percentage relative to the length of the reference element + * - `%p`, percentage relative to the length of the popper element + * - `vw`, CSS viewport width unit + * - `vh`, CSS viewport height unit + * + * For length is intended the main axis relative to the placement of the popper.<br /> + * This means that if the placement is `top` or `bottom`, the length will be the + * `width`. In case of `left` or `right`, it will be the `height`. + * + * You can provide a single value (as `Number` or `String`), or a pair of values + * as `String` divided by a comma or one (or more) white spaces.<br /> + * The latter is a deprecated method because it leads to confusion and will be + * removed in v2.<br /> + * Additionally, it accepts additions and subtractions between different units. + * Note that multiplications and divisions aren't supported. + * + * Valid examples are: + * ``` + * 10 + * '10%' + * '10, 10' + * '10%, 10' + * '10 + 10%' + * '10 - 5vh + 3%' + * '-10px + 5vh, 5px - 6%' + * ``` + * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap + * > with their reference element, unfortunately, you will have to disable the `flip` modifier. + * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373). + * + * @memberof modifiers + * @inner + */ + offset: { + /** @prop {number} order=200 - Index used to define the order of execution */ + order: 200, + + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + + /** @prop {ModifierFn} */ + fn: offset, + + /** @prop {Number|String} offset=0 + * The offset value as described in the modifier description + */ + offset: 0 + }, + + /** + * Modifier used to prevent the popper from being positioned outside the boundary. + * + * A scenario exists where the reference itself is not within the boundaries.<br /> + * We can say it has "escaped the boundaries" — or just "escaped".<br /> + * In this case we need to decide whether the popper should either: + * + * - detach from the reference and remain "trapped" in the boundaries, or + * - if it should ignore the boundary and "escape with its reference" + * + * When `escapeWithReference` is set to`true` and reference is completely + * outside its boundaries, the popper will overflow (or completely leave) + * the boundaries in order to remain attached to the edge of the reference. + * + * @memberof modifiers + * @inner + */ + preventOverflow: { + /** @prop {number} order=300 - Index used to define the order of execution */ + order: 300, + + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + + /** @prop {ModifierFn} */ + fn: preventOverflow, + + /** + * @prop {Array} [priority=['left','right','top','bottom']] + * Popper will try to prevent overflow following these priorities by default, + * then, it could overflow on the left and on top of the `boundariesElement` + */ + priority: ['left', 'right', 'top', 'bottom'], + + /** + * @prop {number} padding=5 + * Amount of pixel used to define a minimum distance between the boundaries + * and the popper. This makes sure the popper always has a little padding + * between the edges of its container + */ + padding: 5, + + /** + * @prop {String|HTMLElement} boundariesElement='scrollParent' + * Boundaries used by the modifier. Can be `scrollParent`, `window`, + * `viewport` or any DOM element. + */ + boundariesElement: 'scrollParent' + }, + + /** + * Modifier used to make sure the reference and its popper stay near each other + * without leaving any gap between the two. Especially useful when the arrow is + * enabled and you want to ensure that it points to its reference element. + * It cares only about the first axis. You can still have poppers with margin + * between the popper and its reference element. + * @memberof modifiers + * @inner + */ + keepTogether: { + /** @prop {number} order=400 - Index used to define the order of execution */ + order: 400, + + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + + /** @prop {ModifierFn} */ + fn: keepTogether + }, + + /** + * This modifier is used to move the `arrowElement` of the popper to make + * sure it is positioned between the reference element and its popper element. + * It will read the outer size of the `arrowElement` node to detect how many + * pixels of conjunction are needed. + * + * It has no effect if no `arrowElement` is provided. + * @memberof modifiers + * @inner + */ + arrow: { + /** @prop {number} order=500 - Index used to define the order of execution */ + order: 500, + + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + + /** @prop {ModifierFn} */ + fn: arrow, + + /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */ + element: '[x-arrow]' + }, + + /** + * Modifier used to flip the popper's placement when it starts to overlap its + * reference element. + * + * Requires the `preventOverflow` modifier before it in order to work. + * + * **NOTE:** this modifier will interrupt the current update cycle and will + * restart it if it detects the need to flip the placement. + * @memberof modifiers + * @inner + */ + flip: { + /** @prop {number} order=600 - Index used to define the order of execution */ + order: 600, + + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + + /** @prop {ModifierFn} */ + fn: flip, + + /** + * @prop {String|Array} behavior='flip' + * The behavior used to change the popper's placement. It can be one of + * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid + * placements (with optional variations) + */ + behavior: 'flip', + + /** + * @prop {number} padding=5 + * The popper will flip if it hits the edges of the `boundariesElement` + */ + padding: 5, + + /** + * @prop {String|HTMLElement} boundariesElement='viewport' + * The element which will define the boundaries of the popper position. + * The popper will never be placed outside of the defined boundaries + * (except if `keepTogether` is enabled) + */ + boundariesElement: 'viewport', + + /** + * @prop {Boolean} flipVariations=false + * The popper will switch placement variation between `-start` and `-end` when + * the reference element overlaps its boundaries. + * + * The original placement should have a set variation. + */ + flipVariations: false, + + /** + * @prop {Boolean} flipVariationsByContent=false + * The popper will switch placement variation between `-start` and `-end` when + * the popper element overlaps its reference boundaries. + * + * The original placement should have a set variation. + */ + flipVariationsByContent: false + }, + + /** + * Modifier used to make the popper flow toward the inner of the reference element. + * By default, when this modifier is disabled, the popper will be placed outside + * the reference element. + * @memberof modifiers + * @inner + */ + inner: { + /** @prop {number} order=700 - Index used to define the order of execution */ + order: 700, + + /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */ + enabled: false, + + /** @prop {ModifierFn} */ + fn: inner + }, + + /** + * Modifier used to hide the popper when its reference element is outside of the + * popper boundaries. It will set a `x-out-of-boundaries` attribute which can + * be used to hide with a CSS selector the popper when its reference is + * out of boundaries. + * + * Requires the `preventOverflow` modifier before it in order to work. + * @memberof modifiers + * @inner + */ + hide: { + /** @prop {number} order=800 - Index used to define the order of execution */ + order: 800, + + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + + /** @prop {ModifierFn} */ + fn: hide + }, + + /** + * Computes the style that will be applied to the popper element to gets + * properly positioned. + * + * Note that this modifier will not touch the DOM, it just prepares the styles + * so that `applyStyle` modifier can apply it. This separation is useful + * in case you need to replace `applyStyle` with a custom implementation. + * + * This modifier has `850` as `order` value to maintain backward compatibility + * with previous versions of Popper.js. Expect the modifiers ordering method + * to change in future major versions of the library. + * + * @memberof modifiers + * @inner + */ + computeStyle: { + /** @prop {number} order=850 - Index used to define the order of execution */ + order: 850, + + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + + /** @prop {ModifierFn} */ + fn: computeStyle, + + /** + * @prop {Boolean} gpuAcceleration=true + * If true, it uses the CSS 3D transformation to position the popper. + * Otherwise, it will use the `top` and `left` properties + */ + gpuAcceleration: true, + + /** + * @prop {string} [x='bottom'] + * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin. + * Change this if your popper should grow in a direction different from `bottom` + */ + x: 'bottom', + + /** + * @prop {string} [x='left'] + * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin. + * Change this if your popper should grow in a direction different from `right` + */ + y: 'right' + }, + + /** + * Applies the computed styles to the popper element. + * + * All the DOM manipulations are limited to this modifier. This is useful in case + * you want to integrate Popper.js inside a framework or view library and you + * want to delegate all the DOM manipulations to it. + * + * Note that if you disable this modifier, you must make sure the popper element + * has its position set to `absolute` before Popper.js can do its work! + * + * Just disable this modifier and define your own to achieve the desired effect. + * + * @memberof modifiers + * @inner + */ + applyStyle: { + /** @prop {number} order=900 - Index used to define the order of execution */ + order: 900, + + /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */ + enabled: true, + + /** @prop {ModifierFn} */ + fn: applyStyle, + + /** @prop {Function} */ + onLoad: applyStyleOnLoad, + + /** + * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier + * @prop {Boolean} gpuAcceleration=true + * If true, it uses the CSS 3D transformation to position the popper. + * Otherwise, it will use the `top` and `left` properties + */ + gpuAcceleration: undefined + } +}; +/** + * The `dataObject` is an object containing all the information used by Popper.js. + * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks. + * @name dataObject + * @property {Object} data.instance The Popper.js instance + * @property {String} data.placement Placement applied to popper + * @property {String} data.originalPlacement Placement originally defined on init + * @property {Boolean} data.flipped True if popper has been flipped by flip modifier + * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper + * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier + * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`) + * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`) + * @property {Object} data.boundaries Offsets of the popper boundaries + * @property {Object} data.offsets The measurements of popper, reference and arrow elements + * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values + * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values + * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0 + */ + +/** + * Default options provided to Popper.js constructor.<br /> + * These can be overridden using the `options` argument of Popper.js.<br /> + * To override an option, simply pass an object with the same + * structure of the `options` object, as the 3rd argument. For example: + * ``` + * new Popper(ref, pop, { + * modifiers: { + * preventOverflow: { enabled: false } + * } + * }) + * ``` + * @type {Object} + * @static + * @memberof Popper + */ + +var Defaults = { + /** + * Popper's placement. + * @prop {Popper.placements} placement='bottom' + */ + placement: 'bottom', + + /** + * Set this to true if you want popper to position it self in 'fixed' mode + * @prop {Boolean} positionFixed=false + */ + positionFixed: false, + + /** + * Whether events (resize, scroll) are initially enabled. + * @prop {Boolean} eventsEnabled=true + */ + eventsEnabled: true, + + /** + * Set to true if you want to automatically remove the popper when + * you call the `destroy` method. + * @prop {Boolean} removeOnDestroy=false + */ + removeOnDestroy: false, + + /** + * Callback called when the popper is created.<br /> + * By default, it is set to no-op.<br /> + * Access Popper.js instance with `data.instance`. + * @prop {onCreate} + */ + onCreate: function onCreate() {}, + + /** + * Callback called when the popper is updated. This callback is not called + * on the initialization/creation of the popper, but only on subsequent + * updates.<br /> + * By default, it is set to no-op.<br /> + * Access Popper.js instance with `data.instance`. + * @prop {onUpdate} + */ + onUpdate: function onUpdate() {}, + + /** + * List of modifiers used to modify the offsets before they are applied to the popper. + * They provide most of the functionalities of Popper.js. + * @prop {modifiers} + */ + modifiers: modifiers +}; +/** + * @callback onCreate + * @param {dataObject} data + */ + +/** + * @callback onUpdate + * @param {dataObject} data + */ +// Utils +// Methods + +var Popper = function () { + /** + * Creates a new Popper.js instance. + * @class Popper + * @param {Element|referenceObject} reference - The reference element used to position the popper + * @param {Element} popper - The HTML / XML element used as the popper + * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults) + * @return {Object} instance - The generated Popper.js instance + */ + function Popper(reference, popper) { + var _this = this; + + var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {}; + classCallCheck(this, Popper); + + this.scheduleUpdate = function () { + return requestAnimationFrame(_this.update); + }; // make update() debounced, so that it only runs at most once-per-tick + + + this.update = debounce(this.update.bind(this)); // with {} we create a new object with the options inside it + + this.options = _extends({}, Popper.Defaults, options); // init state + + this.state = { + isDestroyed: false, + isCreated: false, + scrollParents: [] + }; // get reference and popper elements (allow jQuery wrappers) + + this.reference = reference && reference.jquery ? reference[0] : reference; + this.popper = popper && popper.jquery ? popper[0] : popper; // Deep merge modifiers options + + this.options.modifiers = {}; + Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) { + _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {}); + }); // Refactoring modifiers' list (Object => Array) + + this.modifiers = Object.keys(this.options.modifiers).map(function (name) { + return _extends({ + name: name + }, _this.options.modifiers[name]); + }) // sort the modifiers by order + .sort(function (a, b) { + return a.order - b.order; + }); // modifiers have the ability to execute arbitrary code when Popper.js get inited + // such code is executed in the same order of its modifier + // they could add new properties to their options configuration + // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`! + + this.modifiers.forEach(function (modifierOptions) { + if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) { + modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state); + } + }); // fire the first update to position the popper in the right place + + this.update(); + var eventsEnabled = this.options.eventsEnabled; + + if (eventsEnabled) { + // setup event listeners, they will take care of update the position in specific situations + this.enableEventListeners(); + } + + this.state.eventsEnabled = eventsEnabled; + } // We can't use class properties because they don't get listed in the + // class prototype and break stuff like Sinon stubs + + + createClass(Popper, [{ + key: 'update', + value: function update$$1() { + return update.call(this); + } + }, { + key: 'destroy', + value: function destroy$$1() { + return destroy.call(this); + } + }, { + key: 'enableEventListeners', + value: function enableEventListeners$$1() { + return enableEventListeners.call(this); + } + }, { + key: 'disableEventListeners', + value: function disableEventListeners$$1() { + return disableEventListeners.call(this); + } + /** + * Schedules an update. It will run on the next UI update available. + * @method scheduleUpdate + * @memberof Popper + */ + + /** + * Collection of utilities useful when writing custom modifiers. + * Starting from version 1.7, this method is available only if you + * include `popper-utils.js` before `popper.js`. + * + * **DEPRECATION**: This way to access PopperUtils is deprecated + * and will be removed in v2! Use the PopperUtils module directly instead. + * Due to the high instability of the methods contained in Utils, we can't + * guarantee them to follow semver. Use them at your own risk! + * @static + * @private + * @type {Object} + * @deprecated since version 1.8 + * @member Utils + * @memberof Popper + */ + + }]); + return Popper; +}(); +/** + * The `referenceObject` is an object that provides an interface compatible with Popper.js + * and lets you use it as replacement of a real DOM node.<br /> + * You can use this method to position a popper relatively to a set of coordinates + * in case you don't have a DOM node to use as reference. + * + * ``` + * new Popper(referenceObject, popperNode); + * ``` + * + * NB: This feature isn't supported in Internet Explorer 10. + * @name referenceObject + * @property {Function} data.getBoundingClientRect + * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method. + * @property {number} data.clientWidth + * An ES6 getter that will return the width of the virtual reference element. + * @property {number} data.clientHeight + * An ES6 getter that will return the height of the virtual reference element. + */ + + +Popper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils; +Popper.placements = placements; +Popper.Defaults = Defaults; +/* harmony default export */ __webpack_exports__["a"] = (Popper); +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(41))) + +/***/ }), +/* 39 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.uncontrolledPropTypes = uncontrolledPropTypes; +exports.isProp = isProp; +exports.defaultKey = defaultKey; +exports.canAcceptRef = canAcceptRef; + +var _invariant = _interopRequireDefault(__webpack_require__(24)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +var noop = function noop() {}; + +function readOnlyPropType(handler, name) { + return function (props, propName) { + if (props[propName] !== undefined) { + if (!props[handler]) { + return new Error("You have provided a `" + propName + "` prop to `" + name + "` " + ("without an `" + handler + "` handler prop. This will render a read-only field. ") + ("If the field should be mutable use `" + defaultKey(propName) + "`. ") + ("Otherwise, set `" + handler + "`.")); + } + } + }; +} + +function uncontrolledPropTypes(controlledValues, displayName) { + var propTypes = {}; + Object.keys(controlledValues).forEach(function (prop) { + // add default propTypes for folks that use runtime checks + propTypes[defaultKey(prop)] = noop; + + if (false) { var handler; } + }); + return propTypes; +} + +function isProp(props, prop) { + return props[prop] !== undefined; +} + +function defaultKey(key) { + return 'default' + key.charAt(0).toUpperCase() + key.substr(1); +} +/** + * Copyright (c) 2013-present, Facebook, Inc. + * All rights reserved. + * + * This source code is licensed under the BSD-style license found in the + * LICENSE file in the root directory of this source tree. An additional grant + * of patent rights can be found in the PATENTS file in the same directory. + */ + + +function canAcceptRef(component) { + return !!component && (typeof component !== 'function' || component.prototype && component.prototype.isReactComponent); +} + +/***/ }), +/* 40 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = camelizeStyleName; + +var _camelize = _interopRequireDefault(__webpack_require__(33)); +/** + * Copyright 2014-2015, Facebook, Inc. + * All rights reserved. + * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/camelizeStyleName.js + */ + + +var msPattern = /^-ms-/; + +function camelizeStyleName(string) { + return (0, _camelize.default)(string.replace(msPattern, 'ms-')); +} + +module.exports = exports["default"]; + +/***/ }), +/* 41 */ +/***/ (function(module, exports) { + +var g; // This works in non-strict mode + +g = function () { + return this; +}(); + +try { + // This works if eval is allowed (see CSP) + g = g || new Function("return this")(); +} catch (e) { + // This works if the window reference is available + if (typeof window === "object") g = window; +} // g can still be undefined, but nothing to do about it... +// We return undefined, instead of nothing here, so it's +// easier to handle this case. if(!global) { ...} + + +module.exports = g; + +/***/ }), +/* 42 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = void 0; + +var _contains = _interopRequireDefault(__webpack_require__(22)); + +var _listen = _interopRequireDefault(__webpack_require__(30)); + +var _propTypes = _interopRequireDefault(__webpack_require__(0)); + +var _react = _interopRequireDefault(__webpack_require__(1)); + +var _reactDom = _interopRequireDefault(__webpack_require__(6)); + +var _ownerDocument = _interopRequireDefault(__webpack_require__(45)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +var escapeKeyCode = 27; + +var noop = function noop() {}; + +function isLeftClickEvent(event) { + return event.button === 0; +} + +function isModifiedEvent(event) { + return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey); +} +/** + * The `<RootCloseWrapper/>` component registers your callback on the document + * when rendered. Powers the `<Overlay/>` component. This is used achieve modal + * style behavior where your callback is triggered when the user tries to + * interact with the rest of the document or hits the `esc` key. + */ + + +var RootCloseWrapper = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(RootCloseWrapper, _React$Component); + + function RootCloseWrapper(props, context) { + var _this; + + _this = _React$Component.call(this, props, context) || this; + + _this.addEventListeners = function () { + var event = _this.props.event; + var doc = (0, _ownerDocument.default)(_assertThisInitialized(_assertThisInitialized(_this))); // Use capture for this listener so it fires before React's listener, to + // avoid false positives in the contains() check below if the target DOM + // element is removed in the React mouse callback. + + _this.removeMouseCaptureListener = (0, _listen.default)(doc, event, _this.handleMouseCapture, true); + _this.removeMouseListener = (0, _listen.default)(doc, event, _this.handleMouse); + _this.removeKeyupListener = (0, _listen.default)(doc, 'keyup', _this.handleKeyUp); + + if ('ontouchstart' in doc.documentElement) { + _this.mobileSafariHackListeners = [].slice.call(document.body.children).map(function (el) { + return (0, _listen.default)(el, 'mousemove', noop); + }); + } + }; + + _this.removeEventListeners = function () { + if (_this.removeMouseCaptureListener) _this.removeMouseCaptureListener(); + if (_this.removeMouseListener) _this.removeMouseListener(); + if (_this.removeKeyupListener) _this.removeKeyupListener(); + if (_this.mobileSafariHackListeners) _this.mobileSafariHackListeners.forEach(function (remove) { + return remove(); + }); + }; + + _this.handleMouseCapture = function (e) { + _this.preventMouseRootClose = isModifiedEvent(e) || !isLeftClickEvent(e) || (0, _contains.default)(_reactDom.default.findDOMNode(_assertThisInitialized(_assertThisInitialized(_this))), e.target); + }; + + _this.handleMouse = function (e) { + if (!_this.preventMouseRootClose && _this.props.onRootClose) { + _this.props.onRootClose(e); + } + }; + + _this.handleKeyUp = function (e) { + if (e.keyCode === escapeKeyCode && _this.props.onRootClose) { + _this.props.onRootClose(e); + } + }; + + _this.preventMouseRootClose = false; + return _this; + } + + var _proto = RootCloseWrapper.prototype; + + _proto.componentDidMount = function componentDidMount() { + if (!this.props.disabled) { + this.addEventListeners(); + } + }; + + _proto.componentDidUpdate = function componentDidUpdate(prevProps) { + if (!this.props.disabled && prevProps.disabled) { + this.addEventListeners(); + } else if (this.props.disabled && !prevProps.disabled) { + this.removeEventListeners(); + } + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + if (!this.props.disabled) { + this.removeEventListeners(); + } + }; + + _proto.render = function render() { + return this.props.children; + }; + + return RootCloseWrapper; +}(_react.default.Component); + +RootCloseWrapper.displayName = 'RootCloseWrapper'; +RootCloseWrapper.propTypes = { + /** + * Callback fired after click or mousedown. Also triggers when user hits `esc`. + */ + onRootClose: _propTypes.default.func, + + /** + * Children to render. + */ + children: _propTypes.default.element, + + /** + * Disable the the RootCloseWrapper, preventing it from triggering `onRootClose`. + */ + disabled: _propTypes.default.bool, + + /** + * Choose which document mouse event to bind to. + */ + event: _propTypes.default.oneOf(['click', 'mousedown']) +}; +RootCloseWrapper.defaultProps = { + event: 'click' +}; +var _default = RootCloseWrapper; +exports.default = _default; +module.exports = exports.default; + +/***/ }), +/* 43 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = void 0; + +var _inDOM = _interopRequireDefault(__webpack_require__(10)); + +var on = function on() {}; + +if (_inDOM.default) { + on = function () { + if (document.addEventListener) return function (node, eventName, handler, capture) { + return node.addEventListener(eventName, handler, capture || false); + };else if (document.attachEvent) return function (node, eventName, handler) { + return node.attachEvent('on' + eventName, function (e) { + e = e || window.event; + e.target = e.target || e.srcElement; + e.currentTarget = node; + handler.call(node, e); + }); + }; + }(); +} + +var _default = on; +exports.default = _default; +module.exports = exports["default"]; + +/***/ }), +/* 44 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = void 0; + +var _inDOM = _interopRequireDefault(__webpack_require__(10)); + +var off = function off() {}; + +if (_inDOM.default) { + off = function () { + if (document.addEventListener) return function (node, eventName, handler, capture) { + return node.removeEventListener(eventName, handler, capture || false); + };else if (document.attachEvent) return function (node, eventName, handler) { + return node.detachEvent('on' + eventName, handler); + }; + }(); +} + +var _default = off; +exports.default = _default; +module.exports = exports["default"]; + +/***/ }), +/* 45 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = _default; + +var _reactDom = _interopRequireDefault(__webpack_require__(6)); + +var _ownerDocument = _interopRequireDefault(__webpack_require__(16)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function _default(componentOrElement) { + return (0, _ownerDocument.default)(_reactDom.default.findDOMNode(componentOrElement)); +} + +module.exports = exports.default; + +/***/ }), +/* 46 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = forwardRef; + +var _react = _interopRequireDefault(__webpack_require__(1)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function forwardRef(renderFn, _ref) { + var displayName = _ref.displayName, + propTypes = _ref.propTypes, + defaultProps = _ref.defaultProps, + _ref$allowFallback = _ref.allowFallback, + allowFallback = _ref$allowFallback === void 0 ? false : _ref$allowFallback; + + var render = function render(props, ref) { + return renderFn(props, ref); + }; + + Object.assign(render, { + displayName: displayName + }); + if (_react.default.forwardRef || !allowFallback) return Object.assign(_react.default.forwardRef(render), { + propTypes: propTypes, + defaultProps: defaultProps + }); + return Object.assign(function (props) { + return render(props, null); + }, { + displayName: displayName, + propTypes: propTypes, + defaultProps: defaultProps + }); +} + +/***/ }), +/* 47 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = hasClass; + +function hasClass(element, className) { + if (element.classList) return !!className && element.classList.contains(className);else return (" " + (element.className.baseVal || element.className) + " ").indexOf(" " + className + " ") !== -1; +} + +module.exports = exports["default"]; + +/***/ }), +/* 48 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = void 0; + +var _propTypes = _interopRequireDefault(__webpack_require__(0)); + +var _componentOrElement = _interopRequireDefault(__webpack_require__(20)); + +var _react = _interopRequireDefault(__webpack_require__(1)); + +var _reactDom = _interopRequireDefault(__webpack_require__(6)); + +var _WaitForContainer = _interopRequireDefault(__webpack_require__(49)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} +/** + * The `<Portal/>` 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 `<Portal/>` component will be appended to the `container` specified. + */ + + +var Portal = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Portal, _React$Component); + + function Portal() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Portal.prototype; + + _proto.render = function render() { + var _this = this; + + return this.props.children ? _react.default.createElement(_WaitForContainer.default, { + container: this.props.container, + onContainerResolved: this.props.onRendered + }, function (container) { + return _reactDom.default.createPortal(_this.props.children, container); + }) : null; + }; + + return Portal; +}(_react.default.Component); + +Portal.displayName = 'Portal'; +Portal.propTypes = { + /** + * A Node, Component instance, or function that returns either. The `container` will have the Portal children + * appended to it. + */ + container: _propTypes.default.oneOfType([_componentOrElement.default, _propTypes.default.func]), + onRendered: _propTypes.default.func +}; +var _default = Portal; +exports.default = _default; +module.exports = exports.default; + +/***/ }), +/* 49 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = void 0; + +var _propTypes = _interopRequireDefault(__webpack_require__(0)); + +var _componentOrElement = _interopRequireDefault(__webpack_require__(20)); + +var _inDOM = _interopRequireDefault(__webpack_require__(10)); + +var _ownerDocument = _interopRequireDefault(__webpack_require__(16)); + +var _react = _interopRequireDefault(__webpack_require__(1)); + +var _reactDom = _interopRequireDefault(__webpack_require__(6)); + +var _getContainer = _interopRequireDefault(__webpack_require__(50)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} + +var propTypes = { + /** + * A Node, Component instance, or function that returns either. The `container` will have the Portal children + * appended to it. + */ + container: _propTypes.default.oneOfType([_componentOrElement.default, _propTypes.default.func]), + onContainerResolved: _propTypes.default.func +}; + +var WaitForContainer = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(WaitForContainer, _React$Component); + + function WaitForContainer() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + if (!_inDOM.default) return _assertThisInitialized(_this); + var container = _this.props.container; + if (typeof container === 'function') container = container(); + + if (container && !_reactDom.default.findDOMNode(container)) { + // The container is a React component that has not yet been rendered. + // Don't set the container node yet. + return _assertThisInitialized(_this); + } + + _this.setContainer(container); + + return _this; + } + + var _proto = WaitForContainer.prototype; + + _proto.UNSAFE_componentWillReceiveProps = function UNSAFE_componentWillReceiveProps(nextProps) { + if (nextProps.container !== this.props.container) { + this.setContainer(nextProps.container); + } + }; + + _proto.componentDidMount = function componentDidMount() { + if (!this._container) { + this.setContainer(this.props.container); + this.forceUpdate(this.props.onContainerResolved); + } else if (this.props.onContainerResolved) { + this.props.onContainerResolved(); + } + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + this._container = null; + }; + + _proto.setContainer = function setContainer(container) { + this._container = (0, _getContainer.default)(container, (0, _ownerDocument.default)().body); + }; + + _proto.render = function render() { + return this._container ? this.props.children(this._container) : null; + }; + + return WaitForContainer; +}(_react.default.Component); + +WaitForContainer.propTypes = propTypes; +var _default = WaitForContainer; +exports.default = _default; +module.exports = exports.default; + +/***/ }), +/* 50 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = getContainer; + +var _reactDom = _interopRequireDefault(__webpack_require__(6)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function getContainer(container, defaultContainer) { + if (container == null) return defaultContainer; + container = typeof container === 'function' ? container() : container; + return _reactDom.default.findDOMNode(container) || null; +} + +module.exports = exports.default; + +/***/ }), +/* 51 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = void 0; + +var _end = _interopRequireDefault(__webpack_require__(23)); + +exports.end = _end.default; + +var _properties = _interopRequireDefault(__webpack_require__(26)); + +exports.properties = _properties.default; +var _default = { + end: _end.default, + properties: _properties.default +}; +exports.default = _default; + +/***/ }), +/* 52 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = void 0; + +var _matches = _interopRequireDefault(__webpack_require__(72)); + +var _querySelectorAll = _interopRequireDefault(__webpack_require__(9)); + +var _react = _interopRequireDefault(__webpack_require__(1)); + +var _reactDom = _interopRequireDefault(__webpack_require__(6)); + +var _propTypes = _interopRequireDefault(__webpack_require__(0)); + +var _uncontrollable = _interopRequireDefault(__webpack_require__(7)); + +var Popper = _interopRequireWildcard(__webpack_require__(31)); + +var _DropdownContext = _interopRequireDefault(__webpack_require__(29)); + +var _DropdownMenu = _interopRequireDefault(__webpack_require__(35)); + +var _DropdownToggle = _interopRequireDefault(__webpack_require__(36)); + +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)) { + var desc = Object.defineProperty && Object.getOwnPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : {}; + + if (desc.get || desc.set) { + Object.defineProperty(newObj, key, desc); + } else { + newObj[key] = obj[key]; + } + } + } + } + + newObj.default = obj; + return newObj; + } +} + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +function _extends() { + _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; + }; + + return _extends.apply(this, arguments); +} + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} + +var propTypes = { + /** + * A render prop that returns the root dropdown element. The `props` + * argument should spread through to an element containing _both_ the + * menu and toggle in order to handle keyboard events for focus management. + * + * @type {Function ({ + * props: { + * onKeyDown: (SyntheticEvent) => void, + * }, + * }) => React.Element} + */ + children: _propTypes.default.func.isRequired, + + /** + * Determines the direction and location of the Menu in relation to it's Toggle. + */ + drop: _propTypes.default.oneOf(['up', 'left', 'right', 'down']), + + /** + * Controls the focus behavior for when the Dropdown is opened. Set to + * `true` to always focus the first menu item, `keyboard` to focus only when + * navigating via the keyboard, or `false` to disable completely + * + * The Default behavior is `false` **unless** the Menu has a `role="menu"` + * where it will default to `keyboard` to match the recommended [ARIA Authoring practices](https://www.w3.org/TR/wai-aria-practices-1.1/#menubutton). + */ + focusFirstItemOnShow: _propTypes.default.oneOf([false, true, 'keyboard']), + + /** + * A css slector string that will return __focusable__ menu items. + * Selectors should be relative to the menu component: + * e.g. ` > li:not('.disabled')` + */ + itemSelector: _propTypes.default.string.isRequired, + + /** + * Align the menu to the 'end' side of the placement side of the Dropdown toggle. The default placement is `top-start` or `bottom-start`. + */ + alignEnd: _propTypes.default.bool, + + /** + * Whether or not the Dropdown is visible. + * + * @controllable onToggle + */ + show: _propTypes.default.bool, + + /** + * A callback fired when the Dropdown wishes to change visibility. Called with the requested + * `show` value, the DOM event, and the source that fired it: `'click'`,`'keydown'`,`'rootClose'`, or `'select'`. + * + * ```js + * function( + * isOpen: boolean, + * event: SyntheticEvent, + * ): void + * ``` + * + * @controllable show + */ + onToggle: _propTypes.default.func +}; +var defaultProps = { + itemSelector: '* > *' +}; +/** + * `Dropdown` is set of structural components for building, accessible dropdown menus with close-on-click, + * keyboard navigation, and correct focus handling. As with all the react-overlay's + * components its BYOS (bring your own styles). Dropdown is primarily + * built from three base components, you should compose to build your Dropdowns. + * + * - `Dropdown`, which wraps the menu and toggle, and handles keyboard navigation + * - `Dropdown.Toggle` generally a button that triggers the menu opening + * - `Dropdown.Menu` The overlaid, menu, positioned to the toggle with PopperJs + */ + +var Dropdown = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Dropdown, _React$Component); + + Dropdown.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) { + var drop = _ref.drop, + alignEnd = _ref.alignEnd, + show = _ref.show; + var lastShow = prevState.context.show; + return { + lastShow: lastShow, + context: _extends({}, prevState.context, { + drop: drop, + show: show, + alignEnd: alignEnd + }) + }; + }; + + function Dropdown(props, context) { + var _this; + + _this = _React$Component.call(this, props, context) || this; + + _this.handleClick = function (event) { + _this.toggleOpen(event); + }; + + _this.handleKeyDown = function (event) { + var key = event.key, + target = event.target; // Second only to https://github.com/twbs/bootstrap/blob/8cfbf6933b8a0146ac3fbc369f19e520bd1ebdac/js/src/dropdown.js#L400 + // in inscrutability + + var isInput = /input|textarea/i.test(target.tagName); + + if (isInput && (key === ' ' || key !== 'Escape' && _this.menu.contains(target))) { + return; + } + + _this._lastSourceEvent = event.type; + + switch (key) { + case 'ArrowUp': + { + var next = _this.getNextFocusedChild(target, -1); + + if (next && next.focus) next.focus(); + event.preventDefault(); + return; + } + + case 'ArrowDown': + event.preventDefault(); + + if (!_this.props.show) { + _this.toggleOpen(event); + } else { + var _next = _this.getNextFocusedChild(target, 1); + + if (_next && _next.focus) _next.focus(); + } + + return; + + case 'Escape': + case 'Tab': + _this.props.onToggle(false, event); + + break; + + default: + } + }; + + _this._focusInDropdown = false; + _this.menu = null; + _this.state = { + context: { + close: _this.handleClose, + toggle: _this.handleClick, + menuRef: function menuRef(r) { + _this.menu = r; + }, + toggleRef: function toggleRef(r) { + var toggleNode = r && _reactDom.default.findDOMNode(r); + + _this.setState(function (_ref2) { + var context = _ref2.context; + return { + context: _extends({}, context, { + toggleNode: toggleNode + }) + }; + }); + } + } + }; + return _this; + } + + var _proto = Dropdown.prototype; + + _proto.componentDidUpdate = function componentDidUpdate(prevProps) { + var show = this.props.show; + var prevOpen = prevProps.show; + + if (show && !prevOpen) { + this.maybeFocusFirst(); + } + + this._lastSourceEvent = null; + + if (!show && prevOpen) { + // if focus hasn't already moved from the menu let's return it + // to the toggle + if (this._focusInDropdown) { + this._focusInDropdown = false; + this.focus(); + } + } + }; + + _proto.getNextFocusedChild = function getNextFocusedChild(current, offset) { + if (!this.menu) return null; + var itemSelector = this.props.itemSelector; + var items = (0, _querySelectorAll.default)(this.menu, itemSelector); + var index = items.indexOf(current) + offset; + index = Math.max(0, Math.min(index, items.length)); + return items[index]; + }; + + _proto.hasMenuRole = function hasMenuRole() { + return this.menu && (0, _matches.default)(this.menu, '[role=menu]'); + }; + + _proto.focus = function focus() { + var toggleNode = this.state.context.toggleNode; + + if (toggleNode && toggleNode.focus) { + toggleNode.focus(); + } + }; + + _proto.maybeFocusFirst = function maybeFocusFirst() { + var type = this._lastSourceEvent; + var focusFirstItemOnShow = this.props.focusFirstItemOnShow; + + if (focusFirstItemOnShow == null) { + focusFirstItemOnShow = this.hasMenuRole() ? 'keyboard' : false; + } + + if (focusFirstItemOnShow === false || focusFirstItemOnShow === 'keyboard' && !/^key.+$/.test(type)) { + return; + } + + var itemSelector = this.props.itemSelector; + var first = (0, _querySelectorAll.default)(this.menu, itemSelector)[0]; + if (first && first.focus) first.focus(); + }; + + _proto.toggleOpen = function toggleOpen(event) { + var show = !this.props.show; + this.props.onToggle(show, event); + }; + + _proto.render = function render() { + var _this$props = this.props, + children = _this$props.children, + props = _objectWithoutPropertiesLoose(_this$props, ["children"]); + + delete props.onToggle; + + if (this.menu && this.state.lastShow && !this.props.show) { + this._focusInDropdown = this.menu.contains(document.activeElement); + } + + return _react.default.createElement(_DropdownContext.default.Provider, { + value: this.state.context + }, _react.default.createElement(Popper.Manager, null, children({ + props: { + onKeyDown: this.handleKeyDown + } + }))); + }; + + return Dropdown; +}(_react.default.Component); + +Dropdown.displayName = 'ReactOverlaysDropdown'; +Dropdown.propTypes = propTypes; +Dropdown.defaultProps = defaultProps; +var UncontrolledDropdown = (0, _uncontrollable.default)(Dropdown, { + show: 'onToggle' +}); +UncontrolledDropdown.Menu = _DropdownMenu.default; +UncontrolledDropdown.Toggle = _DropdownToggle.default; +var _default = UncontrolledDropdown; +exports.default = _default; +module.exports = exports.default; + +/***/ }), +/* 53 */ +/***/ (function(module, exports) { + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +module.exports = _objectWithoutPropertiesLoose; + +/***/ }), +/* 54 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _react = __webpack_require__(1); + +var _react2 = _interopRequireDefault(_react); + +var _implementation = __webpack_require__(73); + +var _implementation2 = _interopRequireDefault(_implementation); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +exports.default = _react2.default.createContext || _implementation2.default; +module.exports = exports['default']; + +/***/ }), +/* 55 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = mapContextToProps; + +var _react = _interopRequireDefault(__webpack_require__(1)); + +var _forwardRef = _interopRequireDefault(__webpack_require__(32)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function _extends() { + _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; + }; + + return _extends.apply(this, arguments); +} + +var getDisplayName = function getDisplayName(Component) { + var name = typeof Component === 'string' ? Component : Component.name || Component.displayName; + return name ? "ContextTransform(" + name + ")" : 'ContextTransform'; +}; + +var ensureConsumer = function ensureConsumer(c) { + return c.Consumer || c; +}; + +function $mapContextToProps(_ref, Component) { + var maybeArrayOfConsumers = _ref.consumers, + mapToProps = _ref.mapToProps, + displayName = _ref.displayName, + _ref$forwardRefAs = _ref.forwardRefAs, + forwardRefAs = _ref$forwardRefAs === void 0 ? 'ref' : _ref$forwardRefAs; + var consumers = maybeArrayOfConsumers; + + if (!Array.isArray(maybeArrayOfConsumers)) { + consumers = [maybeArrayOfConsumers]; + } + + var SingleConsumer = ensureConsumer(consumers[0]); + + function singleRender(props, ref) { + var _extends2; + + var propsWithRef = _extends((_extends2 = {}, _extends2[forwardRefAs] = ref, _extends2), props); + + return _react.default.createElement(SingleConsumer, null, function (value) { + return _react.default.createElement(Component, _extends({}, propsWithRef, mapToProps(value, props))); + }); + } + + function multiRender(props, ref) { + var _extends3; + + var propsWithRef = _extends((_extends3 = {}, _extends3[forwardRefAs] = ref, _extends3), props); + + return consumers.reduceRight(function (inner, Context) { + return function () { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var Consumer = ensureConsumer(Context); + return _react.default.createElement(Consumer, null, function (value) { + return inner.apply(void 0, args.concat([value])); + }); + }; + }, function () { + for (var _len2 = arguments.length, contexts = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + contexts[_key2] = arguments[_key2]; + } + + return _react.default.createElement(Component, _extends({}, propsWithRef, mapToProps.apply(void 0, contexts.concat([props])))); + })(); + } + + var contextTransform = consumers.length === 1 ? singleRender : multiRender; + return (0, _forwardRef.default)(contextTransform, { + displayName: displayName || getDisplayName(Component) + }); +} + +function mapContextToProps(maybeOpts, mapToProps, Component) { + if (arguments.length === 2) return $mapContextToProps(maybeOpts, mapToProps); + return $mapContextToProps({ + consumers: maybeOpts, + mapToProps: mapToProps + }, Component); +} + +/***/ }), +/* 56 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = void 0; + +var _activeElement = _interopRequireDefault(__webpack_require__(79)); + +var _contains = _interopRequireDefault(__webpack_require__(22)); + +var _inDOM = _interopRequireDefault(__webpack_require__(10)); + +var _listen = _interopRequireDefault(__webpack_require__(30)); + +var _propTypes = _interopRequireDefault(__webpack_require__(0)); + +var _componentOrElement = _interopRequireDefault(__webpack_require__(20)); + +var _elementType = _interopRequireDefault(__webpack_require__(28)); + +var _react = _interopRequireDefault(__webpack_require__(1)); + +var _reactDom = _interopRequireDefault(__webpack_require__(6)); + +var _ModalManager = _interopRequireDefault(__webpack_require__(37)); + +var _Portal = _interopRequireDefault(__webpack_require__(48)); + +var _getContainer = _interopRequireDefault(__webpack_require__(50)); + +var _ownerDocument = _interopRequireDefault(__webpack_require__(45)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function _extends() { + _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; + }; + + return _extends.apply(this, arguments); +} + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} + +var modalManager = new _ModalManager.default(); + +function omitProps(props, propTypes) { + var keys = Object.keys(props); + var newProps = {}; + keys.map(function (prop) { + if (!Object.prototype.hasOwnProperty.call(propTypes, prop)) { + newProps[prop] = props[prop]; + } + }); + return newProps; +} +/** + * Love them or hate them, `<Modal />` provides a solid foundation for creating dialogs, lightboxes, or whatever else. + * The Modal component renders its `children` node in front of a backdrop component. + * + * The Modal offers a few helpful features over using just a `<Portal/>` component and some styles: + * + * - Manages dialog stacking when one-at-a-time just isn't enough. + * - Creates a backdrop, for disabling interaction below the modal. + * - It properly manages focus; moving to the modal content, and keeping it there until the modal is closed. + * - It disables scrolling of the page content while open. + * - Adds the appropriate ARIA roles are automatically. + * - Easily pluggable animations via a `<Transition/>` component. + * + * Note that, in the same way the backdrop element prevents users from clicking or interacting + * with the page content underneath the Modal, Screen readers also need to be signaled to not to + * interact with page content while the Modal is open. To do this, we use a common technique of applying + * the `aria-hidden='true'` attribute to the non-Modal elements in the Modal `container`. This means that for + * a Modal to be truly modal, it should have a `container` that is _outside_ your app's + * React hierarchy (such as the default: document.body). + */ + + +var Modal = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Modal, _React$Component); + + function Modal() { + var _this; + + for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) { + _args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this; + _this.state = { + exited: !_this.props.show + }; + + _this.onPortalRendered = function () { + if (_this.props.onShow) { + _this.props.onShow(); + } // autofocus after onShow, to not trigger a focus event for previous + // modals before this one is shown. + + + _this.autoFocus(); + }; + + _this.onShow = function () { + var doc = (0, _ownerDocument.default)(_assertThisInitialized(_assertThisInitialized(_this))); + var container = (0, _getContainer.default)(_this.props.container, doc.body); + + _this.props.manager.add(_assertThisInitialized(_assertThisInitialized(_this)), container, _this.props.containerClassName); + + _this.removeKeydownListener = (0, _listen.default)(doc, 'keydown', _this.handleDocumentKeyDown); + _this.removeFocusListener = (0, _listen.default)(doc, 'focus', // the timeout is necessary b/c this will run before the new modal is mounted + // and so steals focus from it + function () { + return setTimeout(_this.enforceFocus); + }, true); + }; + + _this.onHide = function () { + _this.props.manager.remove(_assertThisInitialized(_assertThisInitialized(_this))); + + _this.removeKeydownListener(); + + _this.removeFocusListener(); + + if (_this.props.restoreFocus) { + _this.restoreLastFocus(); + } + }; + + _this.setDialogRef = function (ref) { + _this.dialog = ref; + }; + + _this.setBackdropRef = function (ref) { + _this.backdrop = ref && _reactDom.default.findDOMNode(ref); + }; + + _this.handleHidden = function () { + _this.setState({ + exited: true + }); + + _this.onHide(); + + if (_this.props.onExited) { + var _this$props; + + (_this$props = _this.props).onExited.apply(_this$props, arguments); + } + }; + + _this.handleBackdropClick = function (e) { + if (e.target !== e.currentTarget) { + return; + } + + if (_this.props.onBackdropClick) { + _this.props.onBackdropClick(e); + } + + if (_this.props.backdrop === true) { + _this.props.onHide(); + } + }; + + _this.handleDocumentKeyDown = function (e) { + if (_this.props.keyboard && e.keyCode === 27 && _this.isTopModal()) { + if (_this.props.onEscapeKeyDown) { + _this.props.onEscapeKeyDown(e); + } + + _this.props.onHide(); + } + }; + + _this.enforceFocus = function () { + if (!_this.props.enforceFocus || !_this._isMounted || !_this.isTopModal()) { + return; + } + + var currentActiveElement = (0, _activeElement.default)((0, _ownerDocument.default)(_assertThisInitialized(_assertThisInitialized(_this)))); + + if (_this.dialog && !(0, _contains.default)(_this.dialog, currentActiveElement)) { + _this.dialog.focus(); + } + }; + + _this.renderBackdrop = function () { + var _this$props2 = _this.props, + renderBackdrop = _this$props2.renderBackdrop, + Transition = _this$props2.backdropTransition; + var backdrop = renderBackdrop({ + ref: _this.setBackdropRef, + onClick: _this.handleBackdropClick + }); + + if (Transition) { + backdrop = _react.default.createElement(Transition, { + appear: true, + in: _this.props.show + }, backdrop); + } + + return backdrop; + }; + + return _this; + } + + Modal.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) { + if (nextProps.show) { + return { + exited: false + }; + } else if (!nextProps.transition) { + // Otherwise let handleHidden take care of marking exited. + return { + exited: true + }; + } + + return null; + }; + + var _proto = Modal.prototype; + + _proto.getSnapshotBeforeUpdate = function getSnapshotBeforeUpdate(prevProps) { + if (_inDOM.default && !prevProps.show && this.props.show) { + this.lastFocus = (0, _activeElement.default)(); + } + + return null; + }; + + _proto.componentDidMount = function componentDidMount() { + this._isMounted = true; + + if (this.props.show) { + this.onShow(); + } + }; + + _proto.componentDidUpdate = function componentDidUpdate(prevProps) { + var transition = this.props.transition; + + if (prevProps.show && !this.props.show && !transition) { + // Otherwise handleHidden will call this. + this.onHide(); + } else if (!prevProps.show && this.props.show) { + this.onShow(); + } + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + var _this$props3 = this.props, + show = _this$props3.show, + transition = _this$props3.transition; + this._isMounted = false; + + if (show || transition && !this.state.exited) { + this.onHide(); + } + }; + + _proto.autoFocus = function autoFocus() { + if (!this.props.autoFocus) return; + var currentActiveElement = (0, _activeElement.default)((0, _ownerDocument.default)(this)); + + if (this.dialog && !(0, _contains.default)(this.dialog, currentActiveElement)) { + this.lastFocus = currentActiveElement; + this.dialog.focus(); + } + }; + + _proto.restoreLastFocus = function restoreLastFocus() { + // Support: <=IE11 doesn't support `focus()` on svg elements (RB: #917) + if (this.lastFocus && this.lastFocus.focus) { + this.lastFocus.focus(); + this.lastFocus = null; + } + }; + + _proto.isTopModal = function isTopModal() { + return this.props.manager.isTopModal(this); + }; + + _proto.render = function render() { + var _this$props4 = this.props, + show = _this$props4.show, + container = _this$props4.container, + children = _this$props4.children, + renderDialog = _this$props4.renderDialog, + _this$props4$role = _this$props4.role, + role = _this$props4$role === void 0 ? 'dialog' : _this$props4$role, + Transition = _this$props4.transition, + backdrop = _this$props4.backdrop, + className = _this$props4.className, + style = _this$props4.style, + onExit = _this$props4.onExit, + onExiting = _this$props4.onExiting, + onEnter = _this$props4.onEnter, + onEntering = _this$props4.onEntering, + onEntered = _this$props4.onEntered, + props = _objectWithoutPropertiesLoose(_this$props4, ["show", "container", "children", "renderDialog", "role", "transition", "backdrop", "className", "style", "onExit", "onExiting", "onEnter", "onEntering", "onEntered"]); + + if (!(show || Transition && !this.state.exited)) { + return null; + } + + var dialogProps = _extends({ + role: role, + ref: this.setDialogRef, + // apparently only works on the dialog role element + 'aria-modal': role === 'dialog' ? true : undefined + }, omitProps(props, Modal.propTypes), { + style: style, + className: className, + tabIndex: '-1' + }); + + var dialog = renderDialog ? renderDialog(dialogProps) : _react.default.createElement("div", dialogProps, _react.default.cloneElement(children, { + role: 'document' + })); + + if (Transition) { + dialog = _react.default.createElement(Transition, { + appear: true, + unmountOnExit: true, + in: show, + onExit: onExit, + onExiting: onExiting, + onExited: this.handleHidden, + onEnter: onEnter, + onEntering: onEntering, + onEntered: onEntered + }, dialog); + } + + return _react.default.createElement(_Portal.default, { + container: container, + onRendered: this.onPortalRendered + }, _react.default.createElement(_react.default.Fragment, null, backdrop && this.renderBackdrop(), dialog)); + }; + + return Modal; +}(_react.default.Component); + +Modal.propTypes = { + /** + * Set the visibility of the Modal + */ + show: _propTypes.default.bool, + + /** + * A Node, Component instance, or function that returns either. The Modal is appended to it's container element. + * + * For the sake of assistive technologies, the container should usually be the document body, so that the rest of the + * page content can be placed behind a virtual backdrop as well as a visual one. + */ + container: _propTypes.default.oneOfType([_componentOrElement.default, _propTypes.default.func]), + + /** + * A callback fired when the Modal is opening. + */ + onShow: _propTypes.default.func, + + /** + * A callback fired when either the backdrop is clicked, or the escape key is pressed. + * + * The `onHide` callback only signals intent from the Modal, + * you must actually set the `show` prop to `false` for the Modal to close. + */ + onHide: _propTypes.default.func, + + /** + * Include a backdrop component. + */ + backdrop: _propTypes.default.oneOfType([_propTypes.default.bool, _propTypes.default.oneOf(['static'])]), + + /** + * A function that returns the dialog component. Useful for custom + * rendering. **Note:** the component should make sure to apply the provided ref. + * + * ```js + * renderDialog={props => <MyDialog {...props} />} + * ``` + */ + renderDialog: _propTypes.default.func, + + /** + * A function that returns a backdrop component. Useful for custom + * backdrop rendering. + * + * ```js + * renderBackdrop={props => <MyBackdrop {...props} />} + * ``` + */ + renderBackdrop: _propTypes.default.func, + + /** + * A callback fired when the escape key, if specified in `keyboard`, is pressed. + */ + onEscapeKeyDown: _propTypes.default.func, + + /** + * A callback fired when the backdrop, if specified, is clicked. + */ + onBackdropClick: _propTypes.default.func, + + /** + * A css class or set of classes applied to the modal container when the modal is open, + * and removed when it is closed. + */ + containerClassName: _propTypes.default.string, + + /** + * Close the modal when escape key is pressed + */ + keyboard: _propTypes.default.bool, + + /** + * A `react-transition-group@2.0.0` `<Transition/>` component used + * to control animations for the dialog component. + */ + transition: _elementType.default, + + /** + * A `react-transition-group@2.0.0` `<Transition/>` component used + * to control animations for the backdrop components. + */ + backdropTransition: _elementType.default, + + /** + * When `true` The modal will automatically shift focus to itself when it opens, and + * replace it to the last focused element when it closes. This also + * works correctly with any Modal children that have the `autoFocus` prop. + * + * Generally this should never be set to `false` as it makes the Modal less + * accessible to assistive technologies, like screen readers. + */ + autoFocus: _propTypes.default.bool, + + /** + * When `true` The modal will prevent focus from leaving the Modal while open. + * + * Generally this should never be set to `false` as it makes the Modal less + * accessible to assistive technologies, like screen readers. + */ + enforceFocus: _propTypes.default.bool, + + /** + * When `true` The modal will restore focus to previously focused element once + * modal is hidden + */ + restoreFocus: _propTypes.default.bool, + + /** + * Callback fired before the Modal transitions in + */ + onEnter: _propTypes.default.func, + + /** + * Callback fired as the Modal begins to transition in + */ + onEntering: _propTypes.default.func, + + /** + * Callback fired after the Modal finishes transitioning in + */ + onEntered: _propTypes.default.func, + + /** + * Callback fired right before the Modal transitions out + */ + onExit: _propTypes.default.func, + + /** + * Callback fired as the Modal begins to transition out + */ + onExiting: _propTypes.default.func, + + /** + * Callback fired after the Modal finishes transitioning out + */ + onExited: _propTypes.default.func, + + /** + * A ModalManager instance used to track and manage the state of open + * Modals. Useful when customizing how modals interact within a container + */ + manager: _propTypes.default.object.isRequired +}; +Modal.defaultProps = { + show: false, + role: 'dialog', + backdrop: true, + keyboard: true, + autoFocus: true, + enforceFocus: true, + restoreFocus: true, + onHide: function onHide() {}, + manager: modalManager, + renderBackdrop: function renderBackdrop(props) { + return _react.default.createElement("div", props); + } +}; +Modal.Manager = _ModalManager.default; +var _default = Modal; +exports.default = _default; +module.exports = exports.default; + +/***/ }), +/* 57 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = void 0; + +var _propTypes = _interopRequireDefault(__webpack_require__(0)); + +var _elementType = _interopRequireDefault(__webpack_require__(28)); + +var _componentOrElement = _interopRequireDefault(__webpack_require__(20)); + +var _react = _interopRequireDefault(__webpack_require__(1)); + +var _reactDom = _interopRequireDefault(__webpack_require__(6)); + +var _Portal = _interopRequireDefault(__webpack_require__(48)); + +var _RootCloseWrapper = _interopRequireDefault(__webpack_require__(42)); + +var _reactPopper = __webpack_require__(31); + +var _forwardRef = _interopRequireDefault(__webpack_require__(46)); + +var _WaitForContainer = _interopRequireDefault(__webpack_require__(49)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function _extends() { + _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; + }; + + return _extends.apply(this, arguments); +} + +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} + +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} + +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} +/** + * Built on top of `<Position/>` and `<Portal/>`, the overlay component is + * great for custom tooltip overlays. + */ + + +var Overlay = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Overlay, _React$Component); + + function Overlay(props, context) { + var _this; + + _this = _React$Component.call(this, props, context) || this; + + _this.handleHidden = function () { + _this.setState({ + exited: true + }); + + if (_this.props.onExited) { + var _this$props; + + (_this$props = _this.props).onExited.apply(_this$props, arguments); + } + }; + + _this.state = { + exited: !props.show + }; + _this.onHiddenListener = _this.handleHidden.bind(_assertThisInitialized(_assertThisInitialized(_this))); + _this._lastTarget = null; + return _this; + } + + Overlay.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps) { + if (nextProps.show) { + return { + exited: false + }; + } else if (!nextProps.transition) { + // Otherwise let handleHidden take care of marking exited. + return { + exited: true + }; + } + + return null; + }; + + var _proto = Overlay.prototype; + + _proto.componentDidMount = function componentDidMount() { + this.setState({ + target: this.getTarget() + }); + }; + + _proto.componentDidUpdate = function componentDidUpdate(prevProps) { + if (this.props === prevProps) return; + var target = this.getTarget(); + + if (target !== this.state.target) { + this.setState({ + target: target + }); + } + }; + + _proto.getTarget = function getTarget() { + var target = this.props.target; + target = typeof target === 'function' ? target() : target; + return target && _reactDom.default.findDOMNode(target) || null; + }; + + _proto.render = function render() { + var _this2 = this; + + var _this$props2 = this.props, + _0 = _this$props2.target, + container = _this$props2.container, + containerPadding = _this$props2.containerPadding, + placement = _this$props2.placement, + rootClose = _this$props2.rootClose, + children = _this$props2.children, + flip = _this$props2.flip, + _this$props2$popperCo = _this$props2.popperConfig, + popperConfig = _this$props2$popperCo === void 0 ? {} : _this$props2$popperCo, + Transition = _this$props2.transition, + props = _objectWithoutPropertiesLoose(_this$props2, ["target", "container", "containerPadding", "placement", "rootClose", "children", "flip", "popperConfig", "transition"]); + + var target = this.state.target; // 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; + var _popperConfig$modifie = popperConfig.modifiers, + modifiers = _popperConfig$modifie === void 0 ? {} : _popperConfig$modifie; + + var popperProps = _extends({}, popperConfig, { + placement: placement, + referenceElement: target, + enableEvents: props.show, + modifiers: _extends({}, modifiers, { + preventOverflow: _extends({ + padding: containerPadding || 5 + }, modifiers.preventOverflow), + flip: _extends({ + enabled: !!flip + }, modifiers.preventOverflow) + }) + }); + + child = _react.default.createElement(_reactPopper.Popper, popperProps, function (_ref) { + var arrowProps = _ref.arrowProps, + style = _ref.style, + ref = _ref.ref, + popper = _objectWithoutPropertiesLoose(_ref, ["arrowProps", "style", "ref"]); + + _this2.popper = popper; + + var innerChild = _this2.props.children(_extends({}, popper, { + // popper doesn't set the initial placement + placement: popper.placement || placement, + show: props.show, + arrowProps: arrowProps, + props: { + ref: ref, + style: style + } + })); + + if (Transition) { + var onExit = props.onExit, + onExiting = props.onExiting, + onEnter = props.onEnter, + onEntering = props.onEntering, + onEntered = props.onEntered; + innerChild = _react.default.createElement(Transition, { + in: props.show, + appear: true, + onExit: onExit, + onExiting: onExiting, + onExited: _this2.onHiddenListener, + onEnter: onEnter, + onEntering: onEntering, + onEntered: onEntered + }, innerChild); + } + + return innerChild; + }); + + if (rootClose) { + child = _react.default.createElement(_RootCloseWrapper.default, { + onRootClose: props.onHide, + event: props.rootCloseEvent, + disabled: props.rootCloseDisabled + }, child); + } + + return _react.default.createElement(_Portal.default, { + container: container + }, child); + }; + + return Overlay; +}(_react.default.Component); + +Overlay.propTypes = _extends({}, _Portal.default.propTypes, { + /** + * Set the visibility of the Overlay + */ + show: _propTypes.default.bool, + + /** Specify where the overlay element is positioned in relation to the target element */ + placement: _propTypes.default.oneOf(_reactPopper.placements), + + /** + * A Node, Component instance, or function that returns either. The `container` will have the Portal children + * appended to it. + */ + container: _propTypes.default.oneOfType([_componentOrElement.default, _propTypes.default.func]), + + /** + * Enables the Popper.js `flip` modifier, allowing the Overlay to + * automatically adjust it's placement in case of overlap with the viewport or toggle. + * Refer to the [flip docs](https://popper.js.org/popper-documentation.html#modifiers..flip.enabled) for more info + */ + flip: _propTypes.default.bool, + + /** + * A render prop that returns an element to overlay and position. See + * the [react-popper documentation](https://github.com/FezVrasta/react-popper#children) for more info. + * + * @type {Function ({ + * show: boolean, + * placement: Placement, + * outOfBoundaries: ?boolean, + * scheduleUpdate: () => void, + * props: { + * ref: (?HTMLElement) => void, + * style: { [string]: string | number }, + * aria-labelledby: ?string + * }, + * arrowProps: { + * ref: (?HTMLElement) => void, + * style: { [string]: string | number }, + * }, + * }) => React.Element} + */ + children: _propTypes.default.func.isRequired, + + /** + * A set of popper options and props passed directly to react-popper's Popper component. + */ + popperConfig: _propTypes.default.object, + + /** + * Specify whether the overlay should trigger `onHide` when the user clicks outside the overlay + */ + rootClose: _propTypes.default.bool, + + /** + * Specify event for toggling overlay + */ + rootCloseEvent: _RootCloseWrapper.default.propTypes.event, + + /** + * Specify disabled for disable RootCloseWrapper + */ + rootCloseDisabled: _RootCloseWrapper.default.propTypes.disabled, + + /** + * A Callback fired by the Overlay when it wishes to be hidden. + * + * __required__ when `rootClose` is `true`. + * + * @type func + */ + onHide: function onHide(props) { + var propType = _propTypes.default.func; + + if (props.rootClose) { + propType = propType.isRequired; + } + + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + return propType.apply(void 0, [props].concat(args)); + }, + + /** + * A `react-transition-group@2.0.0` `<Transition/>` component + * used to animate the overlay as it changes visibility. + */ + transition: _elementType.default, + + /** + * Callback fired before the Overlay transitions in + */ + onEnter: _propTypes.default.func, + + /** + * Callback fired as the Overlay begins to transition in + */ + onEntering: _propTypes.default.func, + + /** + * Callback fired after the Overlay finishes transitioning in + */ + onEntered: _propTypes.default.func, + + /** + * Callback fired right before the Overlay transitions out + */ + onExit: _propTypes.default.func, + + /** + * Callback fired as the Overlay begins to transition out + */ + onExiting: _propTypes.default.func, + + /** + * Callback fired after the Overlay finishes transitioning out + */ + onExited: _propTypes.default.func +}); + +var _default = (0, _forwardRef.default)(function (props, ref) { + return (// eslint-disable-next-line react/prop-types + _react.default.createElement(_WaitForContainer.default, { + container: props.container + }, function (container) { + return _react.default.createElement(Overlay, _extends({}, props, { + ref: ref, + container: container + })); + }) + ); +}, { + displayName: 'withContainer(Overlay)' +}); + +exports.default = _default; +module.exports = exports.default; + +/***/ }), +/* 58 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + +var ReactPropTypesSecret = __webpack_require__(59); + +function emptyFunction() {} + +function emptyFunctionWithReset() {} + +emptyFunctionWithReset.resetWarningCache = emptyFunction; + +module.exports = function () { + function shim(props, propName, componentName, location, propFullName, secret) { + if (secret === ReactPropTypesSecret) { + // It is still safe when called from React. + return; + } + + var err = new Error('Calling PropTypes validators directly is not supported by the `prop-types` package. ' + 'Use PropTypes.checkPropTypes() to call them. ' + 'Read more at http://fb.me/use-check-prop-types'); + err.name = 'Invariant Violation'; + throw err; + } + + ; + shim.isRequired = shim; + + function getShim() { + return shim; + } + + ; // Important! + // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`. + + var ReactPropTypes = { + array: shim, + bool: shim, + func: shim, + number: shim, + object: shim, + string: shim, + symbol: shim, + any: shim, + arrayOf: getShim, + element: shim, + elementType: shim, + instanceOf: getShim, + node: shim, + objectOf: getShim, + oneOf: getShim, + oneOfType: getShim, + shape: getShim, + exact: getShim, + checkPropTypes: emptyFunctionWithReset, + resetWarningCache: emptyFunction + }; + ReactPropTypes.PropTypes = ReactPropTypes; + return ReactPropTypes; +}; + +/***/ }), +/* 59 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + +var ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED'; +module.exports = ReactPropTypesSecret; + +/***/ }), +/* 60 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = hyphenateStyleName; + +var _hyphenate = _interopRequireDefault(__webpack_require__(61)); +/** + * Copyright 2013-2014, Facebook, Inc. + * All rights reserved. + * https://github.com/facebook/react/blob/2aeb8a2a6beb00617a4217f7f8284924fa2ad819/src/vendor/core/hyphenateStyleName.js + */ + + +var msPattern = /^ms-/; + +function hyphenateStyleName(string) { + return (0, _hyphenate.default)(string).replace(msPattern, '-ms-'); +} + +module.exports = exports["default"]; + +/***/ }), +/* 61 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = hyphenate; +var rUpper = /([A-Z])/g; + +function hyphenate(string) { + return string.replace(rUpper, '-$1').toLowerCase(); +} + +module.exports = exports["default"]; + +/***/ }), +/* 62 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = _getComputedStyle; + +var _camelizeStyle = _interopRequireDefault(__webpack_require__(40)); + +var rposition = /^(top|right|bottom|left)$/; +var rnumnonpx = /^([+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|))(?!px)[a-z%]+$/i; + +function _getComputedStyle(node) { + if (!node) throw new TypeError('No Element passed to `getComputedStyle()`'); + var doc = node.ownerDocument; + return 'defaultView' in doc ? doc.defaultView.opener ? node.ownerDocument.defaultView.getComputedStyle(node, null) : window.getComputedStyle(node, null) : { + //ie 8 "magic" from: https://github.com/jquery/jquery/blob/1.11-stable/src/css/curCSS.js#L72 + getPropertyValue: function getPropertyValue(prop) { + var style = node.style; + prop = (0, _camelizeStyle.default)(prop); + if (prop == 'float') prop = 'styleFloat'; + var current = node.currentStyle[prop] || null; + if (current == null && style && style[prop]) current = style[prop]; + + if (rnumnonpx.test(current) && !rposition.test(prop)) { + // Remember the original values + var left = style.left; + var runStyle = node.runtimeStyle; + var rsLeft = runStyle && runStyle.left; // Put in the new values to get a computed value out + + if (rsLeft) runStyle.left = node.currentStyle.left; + style.left = prop === 'fontSize' ? '1em' : current; + current = style.pixelLeft + 'px'; // Revert the changed values + + style.left = left; + if (rsLeft) runStyle.left = rsLeft; + } + + return current; + } + }; +} + +module.exports = exports["default"]; + +/***/ }), +/* 63 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = removeStyle; + +function removeStyle(node, key) { + return 'removeProperty' in node.style ? node.style.removeProperty(key) : node.style.removeAttribute(key); +} + +module.exports = exports["default"]; + +/***/ }), +/* 64 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = isTransform; +var supportedTransforms = /^((translate|rotate|scale)(X|Y|Z|3d)?|matrix(3d)?|perspective|skew(X|Y)?)$/i; + +function isTransform(property) { + return !!(property && supportedTransforms.test(property)); +} + +module.exports = exports["default"]; + +/***/ }), +/* 65 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "polyfill", function() { return polyfill; }); +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ +function componentWillMount() { + // Call this.constructor.gDSFP to support sub-classes. + var state = this.constructor.getDerivedStateFromProps(this.props, this.state); + + if (state !== null && state !== undefined) { + this.setState(state); + } +} + +function componentWillReceiveProps(nextProps) { + // Call this.constructor.gDSFP to support sub-classes. + // Use the setState() updater to ensure state isn't stale in certain edge cases. + function updater(prevState) { + var state = this.constructor.getDerivedStateFromProps(nextProps, prevState); + return state !== null && state !== undefined ? state : null; + } // Binding "this" is important for shallow renderer support. + + + this.setState(updater.bind(this)); +} + +function componentWillUpdate(nextProps, nextState) { + try { + var prevProps = this.props; + var prevState = this.state; + this.props = nextProps; + this.state = nextState; + this.__reactInternalSnapshotFlag = true; + this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(prevProps, prevState); + } finally { + this.props = prevProps; + this.state = prevState; + } +} // React may warn about cWM/cWRP/cWU methods being deprecated. +// Add a flag to suppress these warnings for this special case. + + +componentWillMount.__suppressDeprecationWarning = true; +componentWillReceiveProps.__suppressDeprecationWarning = true; +componentWillUpdate.__suppressDeprecationWarning = true; + +function polyfill(Component) { + var prototype = Component.prototype; + + if (!prototype || !prototype.isReactComponent) { + throw new Error('Can only polyfill class components'); + } + + if (typeof Component.getDerivedStateFromProps !== 'function' && typeof prototype.getSnapshotBeforeUpdate !== 'function') { + return Component; + } // If new component APIs are defined, "unsafe" lifecycles won't be called. + // Error if any of these lifecycles are present, + // Because they would work differently between older and newer (16.3+) versions of React. + + + var foundWillMountName = null; + var foundWillReceivePropsName = null; + var foundWillUpdateName = null; + + if (typeof prototype.componentWillMount === 'function') { + foundWillMountName = 'componentWillMount'; + } else if (typeof prototype.UNSAFE_componentWillMount === 'function') { + foundWillMountName = 'UNSAFE_componentWillMount'; + } + + if (typeof prototype.componentWillReceiveProps === 'function') { + foundWillReceivePropsName = 'componentWillReceiveProps'; + } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') { + foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps'; + } + + if (typeof prototype.componentWillUpdate === 'function') { + foundWillUpdateName = 'componentWillUpdate'; + } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') { + foundWillUpdateName = 'UNSAFE_componentWillUpdate'; + } + + if (foundWillMountName !== null || foundWillReceivePropsName !== null || foundWillUpdateName !== null) { + var componentName = Component.displayName || Component.name; + var newApiName = typeof Component.getDerivedStateFromProps === 'function' ? 'getDerivedStateFromProps()' : 'getSnapshotBeforeUpdate()'; + throw Error('Unsafe legacy lifecycles will not be called for components using new component APIs.\n\n' + componentName + ' uses ' + newApiName + ' but also contains the following legacy lifecycles:' + (foundWillMountName !== null ? '\n ' + foundWillMountName : '') + (foundWillReceivePropsName !== null ? '\n ' + foundWillReceivePropsName : '') + (foundWillUpdateName !== null ? '\n ' + foundWillUpdateName : '') + '\n\nThe above lifecycles should be removed. Learn more about this warning here:\n' + 'https://fb.me/react-async-component-lifecycle-hooks'); + } // React <= 16.2 does not support static getDerivedStateFromProps. + // As a workaround, use cWM and cWRP to invoke the new static lifecycle. + // Newer versions of React will ignore these lifecycles if gDSFP exists. + + + if (typeof Component.getDerivedStateFromProps === 'function') { + prototype.componentWillMount = componentWillMount; + prototype.componentWillReceiveProps = componentWillReceiveProps; + } // React <= 16.2 does not support getSnapshotBeforeUpdate. + // As a workaround, use cWU to invoke the new lifecycle. + // Newer versions of React will ignore that lifecycle if gSBU exists. + + + if (typeof prototype.getSnapshotBeforeUpdate === 'function') { + if (typeof prototype.componentDidUpdate !== 'function') { + throw new Error('Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'); + } + + prototype.componentWillUpdate = componentWillUpdate; + var componentDidUpdate = prototype.componentDidUpdate; + + prototype.componentDidUpdate = function componentDidUpdatePolyfill(prevProps, prevState, maybeSnapshot) { + // 16.3+ will not execute our will-update method; + // It will pass a snapshot value to did-update though. + // Older versions will require our polyfilled will-update value. + // We need to handle both cases, but can't just check for the presence of "maybeSnapshot", + // Because for <= 15.x versions this might be a "prevContext" object. + // We also can't just check "__reactInternalSnapshot", + // Because get-snapshot might return a falsy value. + // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior. + var snapshot = this.__reactInternalSnapshotFlag ? this.__reactInternalSnapshot : maybeSnapshot; + componentDidUpdate.call(this, prevProps, prevState, snapshot); + }; + } + + return Component; +} + + + +/***/ }), +/* 66 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.classNamesShape = exports.timeoutsShape = void 0; + +var _propTypes = _interopRequireDefault(__webpack_require__(0)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +var timeoutsShape = false ? undefined : null; +exports.timeoutsShape = timeoutsShape; +var classNamesShape = false ? undefined : null; +exports.classNamesShape = classNamesShape; + +/***/ }), +/* 67 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +Object.defineProperty(exports, "__esModule", { + value: true +}); +exports.default = deprecated; + +var _warning = __webpack_require__(68); + +var _warning2 = _interopRequireDefault(_warning); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +var warned = {}; + +function deprecated(validator, reason) { + return function validate(props, propName, componentName, location, propFullName) { + var componentNameSafe = componentName || '<<anonymous>>'; + var propFullNameSafe = propFullName || propName; + + if (props[propName] != null) { + var messageKey = componentName + '.' + propName; + (0, _warning2.default)(warned[messageKey], 'The ' + location + ' `' + propFullNameSafe + '` of ' + ('`' + componentNameSafe + '` is deprecated. ' + reason + '.')); + warned[messageKey] = true; + } + + for (var _len = arguments.length, args = Array(_len > 5 ? _len - 5 : 0), _key = 5; _key < _len; _key++) { + args[_key - 5] = arguments[_key]; + } + + return validator.apply(undefined, [props, propName, componentName, location, propFullName].concat(args)); + }; +} +/* eslint-disable no-underscore-dangle */ + + +function _resetWarned() { + warned = {}; +} + +deprecated._resetWarned = _resetWarned; +/* eslint-enable no-underscore-dangle */ + +module.exports = exports['default']; + +/***/ }), +/* 68 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * 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. + */ + +/** + * 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 = function () {}; + +if (false) {} + +module.exports = warning; + +/***/ }), +/* 69 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +if (true) { + module.exports = __webpack_require__(70); +} else {} + +/***/ }), +/* 70 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** @license React v16.8.6 + * react-is.production.min.js + * + * Copyright (c) Facebook, Inc. and its affiliates. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + */ + + +Object.defineProperty(exports, "__esModule", { + value: !0 +}); +var b = "function" === typeof Symbol && Symbol.for, + c = b ? Symbol.for("react.element") : 60103, + d = b ? Symbol.for("react.portal") : 60106, + e = b ? Symbol.for("react.fragment") : 60107, + f = b ? Symbol.for("react.strict_mode") : 60108, + g = b ? Symbol.for("react.profiler") : 60114, + h = b ? Symbol.for("react.provider") : 60109, + k = b ? Symbol.for("react.context") : 60110, + l = b ? Symbol.for("react.async_mode") : 60111, + m = b ? Symbol.for("react.concurrent_mode") : 60111, + n = b ? Symbol.for("react.forward_ref") : 60112, + p = b ? Symbol.for("react.suspense") : 60113, + q = b ? Symbol.for("react.memo") : 60115, + r = b ? Symbol.for("react.lazy") : 60116; + +function t(a) { + if ("object" === typeof a && null !== a) { + var u = a.$$typeof; + + switch (u) { + case c: + switch (a = a.type, a) { + case l: + case m: + case e: + case g: + case f: + case p: + return a; + + default: + switch (a = a && a.$$typeof, a) { + case k: + case n: + case h: + return a; + + default: + return u; + } + + } + + case r: + case q: + case d: + return u; + } + } +} + +function v(a) { + return t(a) === m; +} + +exports.typeOf = t; +exports.AsyncMode = l; +exports.ConcurrentMode = m; +exports.ContextConsumer = k; +exports.ContextProvider = h; +exports.Element = c; +exports.ForwardRef = n; +exports.Fragment = e; +exports.Lazy = r; +exports.Memo = q; +exports.Portal = d; +exports.Profiler = g; +exports.StrictMode = f; +exports.Suspense = p; + +exports.isValidElementType = function (a) { + return "string" === typeof a || "function" === typeof a || a === e || a === m || a === g || a === f || a === p || "object" === typeof a && null !== a && (a.$$typeof === r || a.$$typeof === q || a.$$typeof === h || a.$$typeof === k || a.$$typeof === n); +}; + +exports.isAsyncMode = function (a) { + return v(a) || t(a) === l; +}; + +exports.isConcurrentMode = v; + +exports.isContextConsumer = function (a) { + return t(a) === k; +}; + +exports.isContextProvider = function (a) { + return t(a) === h; +}; + +exports.isElement = function (a) { + return "object" === typeof a && null !== a && a.$$typeof === c; +}; + +exports.isForwardRef = function (a) { + return t(a) === n; +}; + +exports.isFragment = function (a) { + return t(a) === e; +}; + +exports.isLazy = function (a) { + return t(a) === r; +}; + +exports.isMemo = function (a) { + return t(a) === q; +}; + +exports.isPortal = function (a) { + return t(a) === d; +}; + +exports.isProfiler = function (a) { + return t(a) === g; +}; + +exports.isStrictMode = function (a) { + return t(a) === f; +}; + +exports.isSuspense = function (a) { + return t(a) === p; +}; + +/***/ }), +/* 71 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = void 0; + +var _react = __webpack_require__(1); + +function useCommittedRef(value) { + var ref = (0, _react.useRef)(value); + (0, _react.useEffect)(function () { + ref.current = value; + }, [value]); + return ref; +} + +var _default = useCommittedRef; +exports.default = _default; + +/***/ }), +/* 72 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = matches; + +var _inDOM = _interopRequireDefault(__webpack_require__(10)); + +var _querySelectorAll = _interopRequireDefault(__webpack_require__(9)); + +var matchesCache; + +function matches(node, selector) { + if (!matchesCache && _inDOM.default) { + var body = document.body; + var nativeMatch = body.matches || body.matchesSelector || body.webkitMatchesSelector || body.mozMatchesSelector || body.msMatchesSelector; + matchesCache = nativeMatch ? function (node, selector) { + return nativeMatch.call(node, selector); + } : ie8MatchesSelector; + } + + return matchesCache ? matchesCache(node, selector) : null; +} + +function ie8MatchesSelector(node, selector) { + var matches = (0, _querySelectorAll.default)(node.document || node.ownerDocument, selector), + i = 0; + + while (matches[i] && matches[i] !== node) { + i++; + } + + return !!matches[i]; +} + +module.exports = exports["default"]; + +/***/ }), +/* 73 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; + +var _react = __webpack_require__(1); + +var _react2 = _interopRequireDefault(_react); + +var _propTypes = __webpack_require__(0); + +var _propTypes2 = _interopRequireDefault(_propTypes); + +var _gud = __webpack_require__(74); + +var _gud2 = _interopRequireDefault(_gud); + +var _warning = __webpack_require__(75); + +var _warning2 = _interopRequireDefault(_warning); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } +} + +function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return call && (typeof call === "object" || typeof call === "function") ? call : self; +} + +function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; +} + +var MAX_SIGNED_31_BIT_INT = 1073741823; // Inlined Object.is polyfill. +// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is + +function objectIs(x, y) { + if (x === y) { + return x !== 0 || 1 / x === 1 / y; + } else { + return x !== x && y !== y; + } +} + +function createEventEmitter(value) { + var handlers = []; + return { + on: function on(handler) { + handlers.push(handler); + }, + off: function off(handler) { + handlers = handlers.filter(function (h) { + return h !== handler; + }); + }, + get: function get() { + return value; + }, + set: function set(newValue, changedBits) { + value = newValue; + handlers.forEach(function (handler) { + return handler(value, changedBits); + }); + } + }; +} + +function onlyChild(children) { + return Array.isArray(children) ? children[0] : children; +} + +function createReactContext(defaultValue, calculateChangedBits) { + var _Provider$childContex, _Consumer$contextType; + + var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__'; + + var Provider = function (_Component) { + _inherits(Provider, _Component); + + function Provider() { + var _temp, _this, _ret; + + _classCallCheck(this, Provider); + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret); + } + + Provider.prototype.getChildContext = function getChildContext() { + var _ref; + + return _ref = {}, _ref[contextProp] = this.emitter, _ref; + }; + + Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + if (this.props.value !== nextProps.value) { + var oldValue = this.props.value; + var newValue = nextProps.value; + var changedBits = void 0; + + if (objectIs(oldValue, newValue)) { + changedBits = 0; // No change + } else { + changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT; + + if (false) {} + + changedBits |= 0; + + if (changedBits !== 0) { + this.emitter.set(nextProps.value, changedBits); + } + } + } + }; + + Provider.prototype.render = function render() { + return this.props.children; + }; + + return Provider; + }(_react.Component); + + Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex); + + var Consumer = function (_Component2) { + _inherits(Consumer, _Component2); + + function Consumer() { + var _temp2, _this2, _ret2; + + _classCallCheck(this, Consumer); + + for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = { + value: _this2.getValue() + }, _this2.onUpdate = function (newValue, changedBits) { + var observedBits = _this2.observedBits | 0; + + if ((observedBits & changedBits) !== 0) { + _this2.setState({ + value: _this2.getValue() + }); + } + }, _temp2), _possibleConstructorReturn(_this2, _ret2); + } + + Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) { + var observedBits = nextProps.observedBits; + this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default + : observedBits; + }; + + Consumer.prototype.componentDidMount = function componentDidMount() { + if (this.context[contextProp]) { + this.context[contextProp].on(this.onUpdate); + } + + var observedBits = this.props.observedBits; + this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default + : observedBits; + }; + + Consumer.prototype.componentWillUnmount = function componentWillUnmount() { + if (this.context[contextProp]) { + this.context[contextProp].off(this.onUpdate); + } + }; + + Consumer.prototype.getValue = function getValue() { + if (this.context[contextProp]) { + return this.context[contextProp].get(); + } else { + return defaultValue; + } + }; + + Consumer.prototype.render = function render() { + return onlyChild(this.props.children)(this.state.value); + }; + + return Consumer; + }(_react.Component); + + Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType); + return { + Provider: Provider, + Consumer: Consumer + }; +} + +exports.default = createReactContext; +module.exports = exports['default']; + +/***/ }), +/* 74 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/* WEBPACK VAR INJECTION */(function(global) {// @flow + + +var key = '__global_unique_id__'; + +module.exports = function () { + return global[key] = (global[key] || 0) + 1; +}; +/* WEBPACK VAR INJECTION */}.call(this, __webpack_require__(41))) + +/***/ }), +/* 75 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; +/** + * Copyright (c) 2014-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + */ + + +var emptyFunction = __webpack_require__(76); +/** + * 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 (false) { var printWarning; } + +module.exports = warning; + +/***/ }), +/* 76 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + +/** + * Copyright (c) 2013-present, Facebook, Inc. + * + * This source code is licensed under the MIT license found in the + * LICENSE file in the root directory of this source tree. + * + * + */ + +function makeEmptyFunction(arg) { + return function () { + return arg; + }; +} +/** + * This function accepts and discards inputs; it has no side effects. This is + * primarily useful idiomatically for overridable function endpoints which + * always need to be callable, since JS lacks a null-call idiom ala Cocoa. + */ + + +var emptyFunction = function emptyFunction() {}; + +emptyFunction.thatReturns = makeEmptyFunction; +emptyFunction.thatReturnsFalse = makeEmptyFunction(false); +emptyFunction.thatReturnsTrue = makeEmptyFunction(true); +emptyFunction.thatReturnsNull = makeEmptyFunction(null); + +emptyFunction.thatReturnsThis = function () { + return this; +}; + +emptyFunction.thatReturnsArgument = function (arg) { + return arg; +}; + +module.exports = emptyFunction; + +/***/ }), +/* 77 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = mapContextToProps; + +var _react = _interopRequireDefault(__webpack_require__(1)); + +var _forwardRef = _interopRequireDefault(__webpack_require__(46)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function _extends() { + _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; + }; + + return _extends.apply(this, arguments); +} + +var getDisplayName = function getDisplayName(Component) { + var name = typeof Component === 'string' ? Component : Component.name || Component.displayName; + return name ? "ContextTransform(" + name + ")" : 'ContextTransform'; +}; + +var ensureConsumer = function ensureConsumer(c) { + return c.Consumer || c; +}; + +function $mapContextToProps(_ref, Component) { + var maybeArrayOfConsumers = _ref.consumers, + mapToProps = _ref.mapToProps, + displayName = _ref.displayName, + _ref$forwardRefAs = _ref.forwardRefAs, + forwardRefAs = _ref$forwardRefAs === void 0 ? 'ref' : _ref$forwardRefAs; + var consumers = maybeArrayOfConsumers; + + if (!Array.isArray(maybeArrayOfConsumers)) { + consumers = [maybeArrayOfConsumers]; + } + + var SingleConsumer = ensureConsumer(consumers[0]); + + function singleRender(props, ref) { + var _extends2; + + var propsWithRef = _extends((_extends2 = {}, _extends2[forwardRefAs] = ref, _extends2), props); + + return _react.default.createElement(SingleConsumer, null, function (value) { + return _react.default.createElement(Component, _extends({}, propsWithRef, mapToProps(value, props))); + }); + } + + function multiRender(props, ref) { + var _extends3; + + var propsWithRef = _extends((_extends3 = {}, _extends3[forwardRefAs] = ref, _extends3), props); + + return consumers.reduceRight(function (inner, Context) { + return function () { + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + var Consumer = ensureConsumer(Context); + return _react.default.createElement(Consumer, null, function (value) { + return inner.apply(void 0, args.concat([value])); + }); + }; + }, function () { + for (var _len2 = arguments.length, contexts = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + contexts[_key2] = arguments[_key2]; + } + + return _react.default.createElement(Component, _extends({}, propsWithRef, mapToProps.apply(void 0, contexts.concat([props])))); + })(); + } + + var contextTransform = consumers.length === 1 ? singleRender : multiRender; + return (0, _forwardRef.default)(contextTransform, { + displayName: displayName || getDisplayName(Component) + }); +} + +function mapContextToProps(maybeOpts, mapToProps, Component) { + if (arguments.length === 2) return $mapContextToProps(maybeOpts, mapToProps); + return $mapContextToProps({ + consumers: maybeOpts, + mapToProps: mapToProps + }, Component); +} + +/***/ }), +/* 78 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = filterEvents; + +var _contains = _interopRequireDefault(__webpack_require__(22)); + +var _querySelectorAll = _interopRequireDefault(__webpack_require__(9)); + +function filterEvents(selector, handler) { + return function filterHandler(e) { + var top = e.currentTarget, + target = e.target, + matches = (0, _querySelectorAll.default)(top, selector); + if (matches.some(function (match) { + return (0, _contains.default)(match, target); + })) handler.call(this, e); + }; +} + +module.exports = exports["default"]; + +/***/ }), +/* 79 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = activeElement; + +var _ownerDocument = _interopRequireDefault(__webpack_require__(16)); + +function activeElement(doc) { + if (doc === void 0) { + doc = (0, _ownerDocument.default)(); + } + + try { + return doc.activeElement; + } catch (e) { + /* ie throws if no active element */ + } +} + +module.exports = exports["default"]; + +/***/ }), +/* 80 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = void 0; + +var _addClass = _interopRequireDefault(__webpack_require__(81)); + +exports.addClass = _addClass.default; + +var _removeClass = _interopRequireDefault(__webpack_require__(82)); + +exports.removeClass = _removeClass.default; + +var _hasClass = _interopRequireDefault(__webpack_require__(47)); + +exports.hasClass = _hasClass.default; +var _default = { + addClass: _addClass.default, + removeClass: _removeClass.default, + hasClass: _hasClass.default +}; +exports.default = _default; + +/***/ }), +/* 81 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +var _interopRequireDefault = __webpack_require__(5); + +exports.__esModule = true; +exports.default = addClass; + +var _hasClass = _interopRequireDefault(__webpack_require__(47)); + +function addClass(element, className) { + if (element.classList) element.classList.add(className);else if (!(0, _hasClass.default)(element, className)) if (typeof element.className === 'string') element.className = element.className + ' ' + className;else element.setAttribute('class', (element.className && element.className.baseVal || '') + ' ' + className); +} + +module.exports = exports["default"]; + +/***/ }), +/* 82 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +function replaceClassName(origClass, classToRemove) { + return origClass.replace(new RegExp('(^|\\s)' + classToRemove + '(?:\\s|$)', 'g'), '$1').replace(/\s+/g, ' ').replace(/^\s*|\s*$/g, ''); +} + +module.exports = function removeClass(element, className) { + if (element.classList) element.classList.remove(className);else if (typeof element.className === 'string') element.className = replaceClassName(element.className, className);else element.setAttribute('class', replaceClassName(element.className && element.className.baseVal || '', className)); +}; + +/***/ }), +/* 83 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = isOverflowing; + +var _isWindow = _interopRequireDefault(__webpack_require__(84)); + +var _ownerDocument = _interopRequireDefault(__webpack_require__(16)); + +function _interopRequireDefault(obj) { + return obj && obj.__esModule ? obj : { + default: obj + }; +} + +function isBody(node) { + return node && node.tagName.toLowerCase() === 'body'; +} + +function bodyIsOverflowing(node) { + var doc = (0, _ownerDocument.default)(node); + var win = (0, _isWindow.default)(doc); + return doc.body.clientWidth < win.innerWidth; +} + +function isOverflowing(container) { + var win = (0, _isWindow.default)(container); + return win || isBody(container) ? bodyIsOverflowing(container) : container.scrollHeight > container.clientHeight; +} + +module.exports = exports.default; + +/***/ }), +/* 84 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.default = getWindow; + +function getWindow(node) { + return node === node.window ? node : node.nodeType === 9 ? node.defaultView || node.parentWindow : false; +} + +module.exports = exports["default"]; + +/***/ }), +/* 85 */ +/***/ (function(module, exports, __webpack_require__) { + +"use strict"; + + +exports.__esModule = true; +exports.ariaHidden = ariaHidden; +exports.hideSiblings = hideSiblings; +exports.showSiblings = showSiblings; +var BLACKLIST = ['template', 'script', 'style']; + +var isHidable = function isHidable(_ref) { + var nodeType = _ref.nodeType, + tagName = _ref.tagName; + return nodeType === 1 && BLACKLIST.indexOf(tagName.toLowerCase()) === -1; +}; + +var siblings = function siblings(container, exclude, cb) { + exclude = [].concat(exclude); + [].forEach.call(container.children, function (node) { + if (exclude.indexOf(node) === -1 && isHidable(node)) { + cb(node); + } + }); +}; + +function ariaHidden(show, node) { + if (!node) return; + + if (show) { + node.setAttribute('aria-hidden', 'true'); + } else { + node.removeAttribute('aria-hidden'); + } +} + +function hideSiblings(container, _ref2) { + var root = _ref2.root, + backdrop = _ref2.backdrop; + siblings(container, [root, backdrop], function (node) { + return ariaHidden(true, node); + }); +} + +function showSiblings(container, _ref3) { + var root = _ref3.root, + backdrop = _ref3.backdrop; + siblings(container, [root, backdrop], function (node) { + return ariaHidden(false, node); + }); +} + +/***/ }), +/* 86 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); + +// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/extends.js +function _extends() { + _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; + }; + + return _extends.apply(this, arguments); +} +// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js +function _objectWithoutPropertiesLoose(source, excluded) { + if (source == null) return {}; + var target = {}; + var sourceKeys = Object.keys(source); + var key, i; + + for (i = 0; i < sourceKeys.length; i++) { + key = sourceKeys[i]; + if (excluded.indexOf(key) >= 0) continue; + target[key] = source[key]; + } + + return target; +} +// EXTERNAL MODULE: ./node_modules/classnames/index.js +var classnames = __webpack_require__(2); +var classnames_default = /*#__PURE__*/__webpack_require__.n(classnames); + +// EXTERNAL MODULE: external {"root":"React","commonjs2":"react","commonjs":"react","amd":"react"} +var external_root_React_commonjs2_react_commonjs_react_amd_react_ = __webpack_require__(1); +var external_root_React_commonjs2_react_commonjs_react_amd_react_default = /*#__PURE__*/__webpack_require__.n(external_root_React_commonjs2_react_commonjs_react_amd_react_); + +// EXTERNAL MODULE: ./node_modules/prop-types/index.js +var prop_types = __webpack_require__(0); +var prop_types_default = /*#__PURE__*/__webpack_require__.n(prop_types); + +// EXTERNAL MODULE: ./node_modules/uncontrollable/hook.js +var hook = __webpack_require__(15); +var hook_default = /*#__PURE__*/__webpack_require__.n(hook); + +// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js +function _inheritsLoose(subClass, superClass) { + subClass.prototype = Object.create(superClass.prototype); + subClass.prototype.constructor = subClass; + subClass.__proto__ = superClass; +} +// EXTERNAL MODULE: ./node_modules/@restart/context/forwardRef.js +var forwardRef = __webpack_require__(32); +var forwardRef_default = /*#__PURE__*/__webpack_require__.n(forwardRef); + +// CONCATENATED MODULE: ./src/ThemeProvider.js + + +var _jsxFileName = "/Users/jason/src/react-bootstrap/src/ThemeProvider.js"; + + + +var ThemeContext = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createContext(new Map()); +var Consumer = ThemeContext.Consumer, + Provider = ThemeContext.Provider; + +var ThemeProvider_ThemeProvider = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(ThemeProvider, _React$Component); + + function ThemeProvider() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.prefixes = new Map(); + Object.keys(_this.props.prefixes).forEach(function (key) { + _this.prefixes.set(key, _this.props.prefixes[key]); + }); + return _this; + } + + var _proto = ThemeProvider.prototype; + + _proto.render = function render() { + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Provider, { + value: this.prefixes, + __source: { + fileName: _jsxFileName, + lineNumber: 22 + }, + __self: this + }, this.props.children); + }; + + return ThemeProvider; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +ThemeProvider_ThemeProvider.propTypes = { + prefixes: prop_types_default.a.object.isRequired +}; +function useBootstrapPrefix(prefix, defaultPrefix) { + var prefixes = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(ThemeContext); + return prefix || prefixes.get(defaultPrefix) || defaultPrefix; +} + +function createBootstrapComponent(Component, opts) { + if (typeof opts === 'string') opts = { + prefix: opts + }; + var isClassy = Component.prototype && Component.prototype.isReactComponent; // If it's a functional component make sure we don't break it with a ref + + var _opts = opts, + prefix = _opts.prefix, + _opts$forwardRefAs = _opts.forwardRefAs, + forwardRefAs = _opts$forwardRefAs === void 0 ? isClassy ? 'ref' : 'innerRef' : _opts$forwardRefAs; + return forwardRef_default()(function (_ref, ref) { + var props = _extends({}, _ref); + + props[forwardRefAs] = ref; + var prefixes = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(ThemeContext); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + // eslint-disable-next-line react/prop-types + bsPrefix: props.bsPrefix || prefixes.get(prefix) || prefix, + __source: { + fileName: _jsxFileName, + lineNumber: 42 + }, + __self: this + })); + }, { + displayName: "Bootstrap(" + (Component.displayName || Component.name) + ")" + }); +} + + +/* harmony default export */ var src_ThemeProvider = (ThemeProvider_ThemeProvider); +// CONCATENATED MODULE: ./src/SelectableContext.js + +var SelectableContext = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createContext(); +var makeEventKey = function makeEventKey(eventKey, href) { + if (eventKey != null) return String(eventKey); + return href || null; +}; +/* harmony default export */ var src_SelectableContext = (SelectableContext); +// CONCATENATED MODULE: ./src/AccordionToggle.js + + +var AccordionToggle_jsxFileName = "/Users/jason/src/react-bootstrap/src/AccordionToggle.js"; + + + +var propTypes = { + /** Set a custom element for this component */ + as: prop_types_default.a.elementType, + + /** + * A key that corresponds to the collapse component that gets triggered + * when this has been clicked. + */ + eventKey: prop_types_default.a.string.isRequired, + + /** A callback function for when this component is clicked */ + onClick: prop_types_default.a.func, + + /** Children prop should only contain a single child, and is enforced as such */ + children: prop_types_default.a.element +}; +var AccordionToggle_defaultProps = { + as: 'button' +}; +var AccordionToggle = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var Component = _ref.as, + children = _ref.children, + eventKey = _ref.eventKey, + _onClick = _ref.onClick, + props = _objectWithoutPropertiesLoose(_ref, ["as", "children", "eventKey", "onClick"]); + + var onSelect = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(src_SelectableContext); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({ + ref: ref, + onClick: function onClick(e) { + onSelect(eventKey, e); + if (_onClick) _onClick(e); + } + }, props, { + __source: { + fileName: AccordionToggle_jsxFileName, + lineNumber: 31 + }, + __self: this + }), children); +}); +AccordionToggle.propTypes = propTypes; +AccordionToggle.defaultProps = AccordionToggle_defaultProps; +/* harmony default export */ var src_AccordionToggle = (AccordionToggle); +// EXTERNAL MODULE: ./node_modules/dom-helpers/style/index.js +var dom_helpers_style = __webpack_require__(11); +var style_default = /*#__PURE__*/__webpack_require__.n(dom_helpers_style); + +// EXTERNAL MODULE: ./node_modules/dom-helpers/transition/end.js +var end = __webpack_require__(23); +var end_default = /*#__PURE__*/__webpack_require__.n(end); + +// EXTERNAL MODULE: ./node_modules/react-transition-group/Transition.js +var react_transition_group_Transition = __webpack_require__(12); +var Transition_default = /*#__PURE__*/__webpack_require__.n(react_transition_group_Transition); + +// CONCATENATED MODULE: ./src/utils/triggerBrowserReflow.js +// reading a dimension prop will cause the browser to recalculate, +// which will let our animations work +function triggerBrowserReflow(node) { + node.offsetHeight; // eslint-disable-line no-unused-expressions +} +// CONCATENATED MODULE: ./src/utils/createChainedFunction.js +/** + * Safe chained function + * + * Will only create a new function if needed, + * otherwise will pass back existing functions or null. + * + * @param {function} functions to chain + * @returns {function|null} + */ +function createChainedFunction() { + for (var _len = arguments.length, funcs = new 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 = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; + } + + acc.apply(this, args); + f.apply(this, args); + }; + }, null); +} + +/* harmony default export */ var utils_createChainedFunction = (createChainedFunction); +// CONCATENATED MODULE: ./src/Collapse.js + + + + +var _collapseStyles, + Collapse_jsxFileName = "/Users/jason/src/react-bootstrap/src/Collapse.js"; + + + + + + + + + +var MARGINS = { + height: ['marginTop', 'marginBottom'], + width: ['marginLeft', 'marginRight'] +}; + +function getDimensionValue(dimension, elem) { + var offset = "offset" + dimension[0].toUpperCase() + dimension.slice(1); + var value = elem[offset]; + var margins = MARGINS[dimension]; + return value + parseInt(style_default()(elem, margins[0]), 10) + parseInt(style_default()(elem, margins[1]), 10); +} + +var collapseStyles = (_collapseStyles = {}, _collapseStyles[react_transition_group_Transition["EXITED"]] = 'collapse', _collapseStyles[react_transition_group_Transition["EXITING"]] = 'collapsing', _collapseStyles[react_transition_group_Transition["ENTERING"]] = 'collapsing', _collapseStyles[react_transition_group_Transition["ENTERED"]] = 'collapse show', _collapseStyles); +var Collapse_propTypes = { + /** + * Show the component; triggers the expand or collapse animation + */ + in: prop_types_default.a.bool, + + /** + * Wait until the first "enter" transition to mount the component (add it to the DOM) + */ + mountOnEnter: prop_types_default.a.bool, + + /** + * Unmount the component (remove it from the DOM) when it is collapsed + */ + unmountOnExit: prop_types_default.a.bool, + + /** + * Run the expand animation when the component mounts, if it is initially + * shown + */ + appear: prop_types_default.a.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: prop_types_default.a.number, + + /** + * Callback fired before the component expands + */ + onEnter: prop_types_default.a.func, + + /** + * Callback fired after the component starts to expand + */ + onEntering: prop_types_default.a.func, + + /** + * Callback fired after the component has expanded + */ + onEntered: prop_types_default.a.func, + + /** + * Callback fired before the component collapses + */ + onExit: prop_types_default.a.func, + + /** + * Callback fired after the component starts to collapse + */ + onExiting: prop_types_default.a.func, + + /** + * Callback fired after the component has collapsed + */ + onExited: prop_types_default.a.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: prop_types_default.a.oneOfType([prop_types_default.a.oneOf(['height', 'width']), prop_types_default.a.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. + * + * @default element.offsetWidth | element.offsetHeight + */ + getDimensionValue: prop_types_default.a.func, + + /** + * ARIA role of collapsible element + */ + role: prop_types_default.a.string +}; +var Collapse_defaultProps = { + in: false, + timeout: 300, + mountOnEnter: false, + unmountOnExit: false, + appear: false, + dimension: 'height', + getDimensionValue: getDimensionValue +}; + +var Collapse_Collapse = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Collapse, _React$Component); + + function Collapse() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + + _this.handleEnter = function (elem) { + elem.style[_this.getDimension()] = '0'; + }; + + _this.handleEntering = function (elem) { + var dimension = _this.getDimension(); + + elem.style[dimension] = _this._getScrollDimensionValue(elem, dimension); + }; + + _this.handleEntered = function (elem) { + elem.style[_this.getDimension()] = null; + }; + + _this.handleExit = function (elem) { + var dimension = _this.getDimension(); + + elem.style[dimension] = _this.props.getDimensionValue(dimension, elem) + "px"; + triggerBrowserReflow(elem); + }; + + _this.handleExiting = function (elem) { + elem.style[_this.getDimension()] = '0'; + }; + + return _this; + } + + var _proto = Collapse.prototype; + + _proto.getDimension = function getDimension() { + return typeof this.props.dimension === 'function' ? this.props.dimension() : this.props.dimension; + } + /* -- Expanding -- */ + ; + + // for testing + _proto._getScrollDimensionValue = function _getScrollDimensionValue(elem, dimension) { + var scroll = "scroll" + dimension[0].toUpperCase() + dimension.slice(1); + return elem[scroll] + "px"; + }; + + _proto.render = function render() { + var _this2 = this; + + var _this$props = this.props, + onEnter = _this$props.onEnter, + onEntering = _this$props.onEntering, + onEntered = _this$props.onEntered, + onExit = _this$props.onExit, + onExiting = _this$props.onExiting, + className = _this$props.className, + children = _this$props.children, + props = _objectWithoutPropertiesLoose(_this$props, ["onEnter", "onEntering", "onEntered", "onExit", "onExiting", "className", "children"]); + + delete props.dimension; + delete props.getDimensionValue; + var handleEnter = utils_createChainedFunction(this.handleEnter, onEnter); + var handleEntering = utils_createChainedFunction(this.handleEntering, onEntering); + var handleEntered = utils_createChainedFunction(this.handleEntered, onEntered); + var handleExit = utils_createChainedFunction(this.handleExit, onExit); + var handleExiting = utils_createChainedFunction(this.handleExiting, onExiting); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Transition_default.a, _extends({ + addEndListener: end_default.a + }, props, { + "aria-expanded": props.role ? props.in : null, + onEnter: handleEnter, + onEntering: handleEntering, + onEntered: handleEntered, + onExit: handleExit, + onExiting: handleExiting, + __source: { + fileName: Collapse_jsxFileName, + lineNumber: 200 + }, + __self: this + }), function (state, innerProps) { + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.cloneElement(children, _extends({}, innerProps, { + className: classnames_default()(className, children.props.className, collapseStyles[state], _this2.getDimension() === 'width' && 'width') + })); + }); + }; + + return Collapse; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +Collapse_Collapse.propTypes = Collapse_propTypes; +Collapse_Collapse.defaultProps = Collapse_defaultProps; +/* harmony default export */ var src_Collapse = (Collapse_Collapse); +// CONCATENATED MODULE: ./src/AccordionContext.js + +/* harmony default export */ var AccordionContext = (external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createContext(null)); +// CONCATENATED MODULE: ./src/AccordionCollapse.js + + +var AccordionCollapse_jsxFileName = "/Users/jason/src/react-bootstrap/src/AccordionCollapse.js"; + + + + +var AccordionCollapse_propTypes = { + /** + * A key that corresponds to the toggler that triggers this collapse's expand or collapse. + */ + eventKey: prop_types_default.a.string.isRequired, + children: prop_types_default.a.element.isRequired +}; +var AccordionCollapse = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var children = _ref.children, + eventKey = _ref.eventKey, + props = _objectWithoutPropertiesLoose(_ref, ["children", "eventKey"]); + + var contextEventKey = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(AccordionContext); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Collapse, _extends({ + ref: ref, + in: contextEventKey === eventKey + }, props, { + __source: { + fileName: AccordionCollapse_jsxFileName, + lineNumber: 21 + }, + __self: this + }), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", { + __source: { + fileName: AccordionCollapse_jsxFileName, + lineNumber: 22 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Children.only(children))); +}); +AccordionCollapse.propTypes = AccordionCollapse_propTypes; +/* harmony default export */ var src_AccordionCollapse = (AccordionCollapse); +// CONCATENATED MODULE: ./src/Accordion.js + + +var Accordion_jsxFileName = "/Users/jason/src/react-bootstrap/src/Accordion.js"; + + + + + + + + + +var Accordion_propTypes = { + /** Set a custom element for this component */ + as: prop_types_default.a.elementType, + + /** @default 'accordion' */ + bsPrefix: prop_types_default.a.string, + + /** The current active key that corresponds to the currently expanded card */ + activeKey: prop_types_default.a.string, + + /** The default active key that is expanded on start */ + defaultActiveKey: prop_types_default.a.string +}; +var Accordion_defaultProps = { + as: 'div' +}; +var Accordion = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (props, ref) { + var _useUncontrolled = hook_default()(props, { + activeKey: 'onSelect' + }), + Component = _useUncontrolled.as, + activeKey = _useUncontrolled.activeKey, + bsPrefix = _useUncontrolled.bsPrefix, + children = _useUncontrolled.children, + className = _useUncontrolled.className, + onSelect = _useUncontrolled.onSelect, + controlledProps = _objectWithoutPropertiesLoose(_useUncontrolled, ["as", "activeKey", "bsPrefix", "children", "className", "onSelect"]); + + bsPrefix = useBootstrapPrefix(bsPrefix, 'accordion'); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(AccordionContext.Provider, { + value: activeKey, + __source: { + fileName: Accordion_jsxFileName, + lineNumber: 45 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_SelectableContext.Provider, { + value: onSelect, + __source: { + fileName: Accordion_jsxFileName, + lineNumber: 46 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({ + ref: ref + }, controlledProps, { + className: classnames_default()(className, bsPrefix), + __source: { + fileName: Accordion_jsxFileName, + lineNumber: 47 + }, + __self: this + }), children))); +}); +Accordion.propTypes = Accordion_propTypes; +Accordion.defaultProps = Accordion_defaultProps; +Accordion.Toggle = src_AccordionToggle; +Accordion.Collapse = src_AccordionCollapse; +/* harmony default export */ var src_Accordion = (Accordion); +// EXTERNAL MODULE: ./node_modules/prop-types-extra/lib/index.js +var lib = __webpack_require__(19); + +// EXTERNAL MODULE: ./node_modules/@restart/hooks/useEventCallback.js +var useEventCallback = __webpack_require__(8); +var useEventCallback_default = /*#__PURE__*/__webpack_require__.n(useEventCallback); + +// EXTERNAL MODULE: ./node_modules/dom-helpers/util/camelize.js +var camelize = __webpack_require__(33); +var camelize_default = /*#__PURE__*/__webpack_require__.n(camelize); + +// CONCATENATED MODULE: ./src/utils/createWithBsPrefix.js + + +var createWithBsPrefix_jsxFileName = "/Users/jason/src/react-bootstrap/src/utils/createWithBsPrefix.js"; + + + + + +var createWithBsPrefix_pascalCase = function pascalCase(str) { + return str[0].toUpperCase() + camelize_default()(str).slice(1); +}; + +function createWithBsPrefix(prefix, _temp) { + var _ref = _temp === void 0 ? {} : _temp, + _ref$displayName = _ref.displayName, + displayName = _ref$displayName === void 0 ? createWithBsPrefix_pascalCase(prefix) : _ref$displayName, + _ref$Component = _ref.Component, + Component = _ref$Component === void 0 ? 'div' : _ref$Component, + defaultProps = _ref.defaultProps; + + var BsComponent = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef( // eslint-disable-next-line react/prop-types + function (_ref2, ref) { + var className = _ref2.className, + bsPrefix = _ref2.bsPrefix, + _ref2$as = _ref2.as, + Tag = _ref2$as === void 0 ? Component : _ref2$as, + props = _objectWithoutPropertiesLoose(_ref2, ["className", "bsPrefix", "as"]); + + var resolvedPrefix = useBootstrapPrefix(bsPrefix, prefix); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Tag, _extends({ + ref: ref, + className: classnames_default()(className, resolvedPrefix) + }, props, { + __source: { + fileName: createWithBsPrefix_jsxFileName, + lineNumber: 18 + }, + __self: this + })); + }); + BsComponent.defaultProps = defaultProps; + BsComponent.displayName = displayName; + return BsComponent; +} +// CONCATENATED MODULE: ./src/utils/divWithClassName.js + +var divWithClassName_jsxFileName = "/Users/jason/src/react-bootstrap/src/utils/divWithClassName.js"; + + +/* harmony default export */ var divWithClassName = (function (className) { + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (p, ref) { + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", _extends({}, p, { + ref: ref, + className: classnames_default()(p.className, className), + __source: { + fileName: divWithClassName_jsxFileName, + lineNumber: 6 + }, + __self: this + })); + }); +}); +// CONCATENATED MODULE: ./src/Fade.js + + + + +var _fadeStyles, + Fade_jsxFileName = "/Users/jason/src/react-bootstrap/src/Fade.js"; + + + + + + + +var Fade_propTypes = { + /** + * Show the component; triggers the fade in or fade out animation + */ + in: prop_types_default.a.bool, + + /** + * Wait until the first "enter" transition to mount the component (add it to the DOM) + */ + mountOnEnter: prop_types_default.a.bool, + + /** + * Unmount the component (remove it from the DOM) when it is faded out + */ + unmountOnExit: prop_types_default.a.bool, + + /** + * Run the fade in animation when the component mounts, if it is initially + * shown + */ + appear: prop_types_default.a.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: prop_types_default.a.number, + + /** + * Callback fired before the component fades in + */ + onEnter: prop_types_default.a.func, + + /** + * Callback fired after the component starts to fade in + */ + onEntering: prop_types_default.a.func, + + /** + * Callback fired after the has component faded in + */ + onEntered: prop_types_default.a.func, + + /** + * Callback fired before the component fades out + */ + onExit: prop_types_default.a.func, + + /** + * Callback fired after the component starts to fade out + */ + onExiting: prop_types_default.a.func, + + /** + * Callback fired after the component has faded out + */ + onExited: prop_types_default.a.func +}; +var Fade_defaultProps = { + in: false, + timeout: 300, + mountOnEnter: false, + unmountOnExit: false, + appear: false +}; +var fadeStyles = (_fadeStyles = {}, _fadeStyles[react_transition_group_Transition["ENTERING"]] = 'show', _fadeStyles[react_transition_group_Transition["ENTERED"]] = 'show', _fadeStyles); + +var Fade_Fade = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Fade, _React$Component); + + function Fade() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + + _this.handleEnter = function (node) { + triggerBrowserReflow(node); + if (_this.props.onEnter) _this.props.onEnter(node); + }; + + return _this; + } + + var _proto = Fade.prototype; + + _proto.render = function render() { + var _this$props = this.props, + className = _this$props.className, + children = _this$props.children, + props = _objectWithoutPropertiesLoose(_this$props, ["className", "children"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Transition_default.a, _extends({ + addEndListener: end_default.a + }, props, { + onEnter: this.handleEnter, + __source: { + fileName: Fade_jsxFileName, + lineNumber: 89 + }, + __self: this + }), function (status, innerProps) { + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.cloneElement(children, _extends({}, innerProps, { + className: classnames_default()('fade', className, children.props.className, fadeStyles[status]) + })); + }); + }; + + return Fade; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +Fade_Fade.propTypes = Fade_propTypes; +Fade_Fade.defaultProps = Fade_defaultProps; +/* harmony default export */ var src_Fade = (Fade_Fade); +// CONCATENATED MODULE: ./src/CloseButton.js +var CloseButton_jsxFileName = "/Users/jason/src/react-bootstrap/src/CloseButton.js"; + + +var CloseButton_propTypes = { + label: prop_types_default.a.string.isRequired, + onClick: prop_types_default.a.func +}; +var CloseButton_defaultProps = { + label: 'Close' +}; +var CloseButton = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var label = _ref.label, + onClick = _ref.onClick; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("button", { + ref: ref, + type: "button", + className: "close", + onClick: onClick, + __source: { + fileName: CloseButton_jsxFileName, + lineNumber: 14 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("span", { + "aria-hidden": "true", + __source: { + fileName: CloseButton_jsxFileName, + lineNumber: 15 + }, + __self: this + }, "\xD7"), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("span", { + className: "sr-only", + __source: { + fileName: CloseButton_jsxFileName, + lineNumber: 16 + }, + __self: this + }, label)); +}); +CloseButton.displayName = 'CloseButton'; +CloseButton.propTypes = CloseButton_propTypes; +CloseButton.defaultProps = CloseButton_defaultProps; +/* harmony default export */ var src_CloseButton = (CloseButton); +// CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js +function _assertThisInitialized(self) { + if (self === void 0) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return self; +} +// CONCATENATED MODULE: ./src/SafeAnchor.js + + + + +var SafeAnchor_jsxFileName = "/Users/jason/src/react-bootstrap/src/SafeAnchor.js"; + + + +var SafeAnchor_propTypes = { + href: prop_types_default.a.string, + onClick: prop_types_default.a.func, + onKeyDown: prop_types_default.a.func, + disabled: prop_types_default.a.bool, + role: prop_types_default.a.string, + tabIndex: prop_types_default.a.oneOfType([prop_types_default.a.number, prop_types_default.a.string]), + + /** + * this is sort of silly but needed for Button + */ + as: prop_types_default.a.elementType, + + /** @private */ + innerRef: prop_types_default.a.any +}; +var SafeAnchor_defaultProps = { + as: 'a' +}; + +function isTrivialHref(href) { + return !href || href.trim() === '#'; +} +/** + * There are situations due to browser quirks or Bootstrap CSS where + * an anchor tag is needed, when semantically a button tag is the + * better choice. SafeAnchor ensures that when an anchor is used like a + * button its accessible. It also emulates input `disabled` behavior for + * links, which is usually desirable for Buttons, NavItems, DropdownItems, etc. + */ + + +var SafeAnchor_SafeAnchor = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(SafeAnchor, _React$Component); + + function SafeAnchor(props, context) { + var _this; + + _this = _React$Component.call(this, props, context) || this; + _this.handleClick = _this.handleClick.bind(_assertThisInitialized(_this)); + _this.handleKeyDown = _this.handleKeyDown.bind(_assertThisInitialized(_this)); + return _this; + } + + var _proto = SafeAnchor.prototype; + + _proto.handleClick = function handleClick(event) { + var _this$props = this.props, + disabled = _this$props.disabled, + href = _this$props.href, + onClick = _this$props.onClick; + + if (disabled || isTrivialHref(href)) { + event.preventDefault(); + } + + if (disabled) { + event.stopPropagation(); + return; + } + + if (onClick) { + onClick(event); + } + }; + + _proto.handleKeyDown = function handleKeyDown(event) { + if (event.key === ' ') { + event.preventDefault(); + this.handleClick(event); + } + }; + + _proto.render = function render() { + var _this$props2 = this.props, + Component = _this$props2.as, + disabled = _this$props2.disabled, + onKeyDown = _this$props2.onKeyDown, + innerRef = _this$props2.innerRef, + props = _objectWithoutPropertiesLoose(_this$props2, ["as", "disabled", "onKeyDown", "innerRef"]); + + if (isTrivialHref(props.href)) { + props.role = props.role || 'button'; // we want to make sure there is a href attribute on the node + // otherwise, the cursor incorrectly styled (except with role='button') + + props.href = props.href || '#'; + } + + if (disabled) { + props.tabIndex = -1; + props['aria-disabled'] = true; + } + + if (innerRef) props.ref = innerRef; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + onClick: this.handleClick, + onKeyDown: utils_createChainedFunction(this.handleKeyDown, onKeyDown), + __source: { + fileName: SafeAnchor_jsxFileName, + lineNumber: 92 + }, + __self: this + })); + }; + + return SafeAnchor; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +SafeAnchor_SafeAnchor.propTypes = SafeAnchor_propTypes; +SafeAnchor_SafeAnchor.defaultProps = SafeAnchor_defaultProps; +/* harmony default export */ var src_SafeAnchor = (SafeAnchor_SafeAnchor); +// CONCATENATED MODULE: ./src/Alert.js + + +var Alert_jsxFileName = "/Users/jason/src/react-bootstrap/src/Alert.js"; + + + + + + + + + + + + +var Alert_propTypes = { + /** + * @default 'alert' + */ + bsPrefix: prop_types_default.a.string, + + /** + * The Alert visual variant + * + * @type {'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark' | 'light'} + */ + variant: prop_types_default.a.string, + + /** + * Renders a properly aligned dismiss button, as well as + * adding extra horizontal padding to the Alert. + */ + dismissible: prop_types_default.a.bool, + + /** + * Controls the visual state of the Alert. + * + * @controllable onClose + */ + show: prop_types_default.a.bool, + + /** + * Callback fired when alert is closed. + * + * @controllable show + */ + onClose: prop_types_default.a.func, + + /** + * Sets the text for alert close button. + */ + closeLabel: prop_types_default.a.string, + + /** A `react-transition-group` Transition component used to animate the Alert on dismissal. */ + transition: lib["elementType"] +}; +var Alert_defaultProps = { + show: true, + transition: src_Fade, + closeLabel: 'Close alert' +}; +var controllables = { + show: 'onClose' +}; +var Alert = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (uncontrolledProps, ref) { + var _useControllable = hook_default()(uncontrolledProps, controllables), + bsPrefix = _useControllable.bsPrefix, + show = _useControllable.show, + closeLabel = _useControllable.closeLabel, + className = _useControllable.className, + children = _useControllable.children, + variant = _useControllable.variant, + onClose = _useControllable.onClose, + dismissible = _useControllable.dismissible, + Transition = _useControllable.transition, + props = _objectWithoutPropertiesLoose(_useControllable, ["bsPrefix", "show", "closeLabel", "className", "children", "variant", "onClose", "dismissible", "transition"]); + + var prefix = useBootstrapPrefix(bsPrefix, 'alert'); + var handleClose = useEventCallback_default()(function (e) { + onClose(false, e); + }); + var alert = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", _extends({ + role: "alert" + }, Transition ? props : undefined, { + className: classnames_default()(className, prefix, variant && prefix + "-" + variant, dismissible && prefix + "-dismissible"), + __source: { + fileName: Alert_jsxFileName, + lineNumber: 87 + }, + __self: this + }), dismissible && external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_CloseButton, { + onClick: handleClose, + label: closeLabel, + __source: { + fileName: Alert_jsxFileName, + lineNumber: 97 + }, + __self: this + }), children); + if (!Transition) return show ? alert : null; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Transition, _extends({ + unmountOnExit: true, + ref: ref + }, props, { + in: show, + __source: { + fileName: Alert_jsxFileName, + lineNumber: 105 + }, + __self: this + }), alert); +}); +var DivStyledAsH4 = divWithClassName('h4'); +DivStyledAsH4.displayName = 'DivStyledAsH4'; +Alert.displayName = 'Alert'; +Alert.propTypes = Alert_propTypes; +Alert.defaultProps = Alert_defaultProps; +Alert.Link = createWithBsPrefix('alert-link', { + Component: src_SafeAnchor +}); +Alert.Heading = createWithBsPrefix('alert-heading', { + Component: DivStyledAsH4 +}); +/* harmony default export */ var src_Alert = (Alert); +// CONCATENATED MODULE: ./src/Badge.js + + +var Badge_jsxFileName = "/Users/jason/src/react-bootstrap/src/Badge.js"; + + + + +var Badge_propTypes = { + /** @default 'badge' */ + bsPrefix: prop_types_default.a.string, + + /** + * The visual style of the badge + * + * @type {('primary'|'secondary'|'success'|'danger'|'warning'|'info'|'light'|'dark')} + */ + variant: prop_types_default.a.string, + + /** + * Add the `pill` modifier to make badges more rounded with + * some additional horizontal padding + */ + pill: prop_types_default.a.bool.isRequired +}; +var Badge_defaultProps = { + pill: false +}; +var Badge = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + variant = _ref.variant, + pill = _ref.pill, + className = _ref.className, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "variant", "pill", "className"]); + + var prefix = useBootstrapPrefix(bsPrefix, 'badge'); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("span", _extends({ + ref: ref + }, props, { + className: classnames_default()(className, prefix, pill && prefix + "-pill", variant && prefix + "-" + variant), + __source: { + fileName: Badge_jsxFileName, + lineNumber: 33 + }, + __self: this + })); +}); +Badge.displayName = 'Badge'; +Badge.propTypes = Badge_propTypes; +Badge.defaultProps = Badge_defaultProps; +/* harmony default export */ var src_Badge = (Badge); +// CONCATENATED MODULE: ./src/BreadcrumbItem.js + + +var BreadcrumbItem_jsxFileName = "/Users/jason/src/react-bootstrap/src/BreadcrumbItem.js"; + + + + + +var BreadcrumbItem_propTypes = { + /** + * @default 'breadcrumb-item' + */ + bsPrefix: prop_types_default.a.string, + + /** + * Adds a visual "active" state to a Breadcrumb + * Item and disables the link. + */ + active: prop_types_default.a.bool, + + /** + * `href` attribute for the inner `a` element + */ + href: prop_types_default.a.string, + + /** + * `title` attribute for the inner `a` element + */ + title: prop_types_default.a.node, + + /** + * `target` attribute for the inner `a` element + */ + target: prop_types_default.a.string, + as: prop_types_default.a.elementType +}; +var BreadcrumbItem_defaultProps = { + active: false, + as: 'li' +}; +var BreadcrumbItem = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + active = _ref.active, + className = _ref.className, + Component = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "active", "className", "as"]); + + var prefix = useBootstrapPrefix(bsPrefix, 'breadcrumb-item'); + + var href = props.href, + title = props.title, + target = props.target, + elementProps = _objectWithoutPropertiesLoose(props, ["href", "title", "target"]); + + var linkProps = { + href: href, + title: title, + target: target + }; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, { + ref: ref, + className: classnames_default()(prefix, className, { + active: active + }), + "aria-current": active ? 'page' : undefined, + __source: { + fileName: BreadcrumbItem_jsxFileName, + lineNumber: 47 + }, + __self: this + }, active ? external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("span", _extends({}, elementProps, { + className: classnames_default()({ + active: active + }), + __source: { + fileName: BreadcrumbItem_jsxFileName, + lineNumber: 53 + }, + __self: this + })) : external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_SafeAnchor, _extends({}, elementProps, linkProps, { + __source: { + fileName: BreadcrumbItem_jsxFileName, + lineNumber: 55 + }, + __self: this + }))); +}); +BreadcrumbItem.displayName = 'BreadcrumbItem'; +BreadcrumbItem.propTypes = BreadcrumbItem_propTypes; +BreadcrumbItem.defaultProps = BreadcrumbItem_defaultProps; +/* harmony default export */ var src_BreadcrumbItem = (BreadcrumbItem); +// CONCATENATED MODULE: ./src/Breadcrumb.js + + +var Breadcrumb_jsxFileName = "/Users/jason/src/react-bootstrap/src/Breadcrumb.js"; + + + + + +var Breadcrumb_propTypes = { + /** + * @default 'breadcrumb' + */ + bsPrefix: prop_types_default.a.string, + + /** + * ARIA label for the nav element + * https://www.w3.org/TR/wai-aria-practices/#breadcrumb + */ + label: prop_types_default.a.string, + + /** + * Additional props passed as-is to the underlying `<ul>` element + */ + listProps: prop_types_default.a.object, + as: prop_types_default.a.elementType +}; +var Breadcrumb_defaultProps = { + label: 'breadcrumb', + listProps: {}, + as: 'nav' +}; +var Breadcrumb = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + className = _ref.className, + listProps = _ref.listProps, + children = _ref.children, + label = _ref.label, + Component = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "className", "listProps", "children", "label", "as"]); + + var prefix = useBootstrapPrefix(bsPrefix, 'breadcrumb'); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({ + "aria-label": label, + className: className, + ref: ref + }, props, { + __source: { + fileName: Breadcrumb_jsxFileName, + lineNumber: 48 + }, + __self: this + }), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("ol", _extends({}, listProps, { + className: classnames_default()(prefix, listProps.className), + __source: { + fileName: Breadcrumb_jsxFileName, + lineNumber: 49 + }, + __self: this + }), children)); +}); +Breadcrumb.displayName = 'Breadcrumb'; +Breadcrumb.propTypes = Breadcrumb_propTypes; +Breadcrumb.defaultProps = Breadcrumb_defaultProps; +Breadcrumb.Item = src_BreadcrumbItem; +/* harmony default export */ var src_Breadcrumb = (Breadcrumb); +// CONCATENATED MODULE: ./src/Button.js + + +var Button_jsxFileName = "/Users/jason/src/react-bootstrap/src/Button.js"; + + + + + +var Button_propTypes = { + /** + * @default 'btn' + */ + bsPrefix: prop_types_default.a.string, + + /** + * One or more button variant combinations + * + * buttons may be one of a variety of visual variants such as: + * + * `'primary', 'secondary', 'success', 'danger', 'warning', 'info', 'dark', 'light', 'link'` + * + * as well as "outline" versions (prefixed by 'outline-*') + * + * `'outline-primary', 'outline-secondary', 'outline-success', 'outline-danger', 'outline-warning', 'outline-info', 'outline-dark', 'outline-light'` + */ + variant: prop_types_default.a.string, + + /** + * Specifies a large or small button. + * + * @type ('sm'|'lg') + */ + size: prop_types_default.a.string, + + /** Spans the full width of the Button parent */ + block: prop_types_default.a.bool, + + /** Manually set the visual state of the button to `:active` */ + active: prop_types_default.a.bool, + + /** + * Disables the Button, preventing mouse events, + * even if the underlying component is an `<a>` element + */ + disabled: prop_types_default.a.bool, + + /** Providing a `href` will render an `<a>` element, _styled_ as a button. */ + href: prop_types_default.a.string, + + /** + * Defines HTML button type attribute. + * + * @default 'button' + */ + type: prop_types_default.a.oneOf(['button', 'reset', 'submit', null]), + as: prop_types_default.a.elementType +}; +var Button_defaultProps = { + variant: 'primary', + active: false, + disabled: false, + type: 'button' +}; +var Button = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + variant = _ref.variant, + size = _ref.size, + active = _ref.active, + className = _ref.className, + block = _ref.block, + type = _ref.type, + as = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "variant", "size", "active", "className", "block", "type", "as"]); + + var prefix = useBootstrapPrefix(bsPrefix, 'btn'); + var classes = classnames_default()(className, prefix, active && 'active', prefix + "-" + variant, block && prefix + "-block", size && prefix + "-" + size); + + if (props.href) { + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_SafeAnchor, _extends({}, props, { + as: as, + innerRef: ref, + className: classnames_default()(classes, props.disabled && 'disabled'), + __source: { + fileName: Button_jsxFileName, + lineNumber: 84 + }, + __self: this + })); + } + + var Component = as || 'button'; + if (ref) props.ref = ref; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + type: type, + className: classes, + __source: { + fileName: Button_jsxFileName, + lineNumber: 96 + }, + __self: this + })); +}); +Button.displayName = 'Button'; +Button.propTypes = Button_propTypes; +Button.defaultProps = Button_defaultProps; +/* harmony default export */ var src_Button = (Button); +// CONCATENATED MODULE: ./src/ButtonGroup.js + + +var ButtonGroup_jsxFileName = "/Users/jason/src/react-bootstrap/src/ButtonGroup.js"; + + + + +var ButtonGroup_propTypes = { + /** + * @default 'btn-group' + */ + bsPrefix: prop_types_default.a.string, + + /** + * Sets the size for all Buttons in the group. + * + * @type ('sm'|'lg') + */ + size: prop_types_default.a.string, + + /** Make the set of Buttons appear vertically stacked. */ + vertical: prop_types_default.a.bool, + + /** + * Display as a button toggle group. + * + * (Generally it's better to use `ToggleButtonGroup` directly) + */ + toggle: prop_types_default.a.bool, + + /** + * An ARIA role describing the button group. Usually the default + * "group" role is fine. An `aria-label` or `aria-labelledby` + * prop is also recommended. + */ + role: prop_types_default.a.string, + as: prop_types_default.a.elementType +}; +var ButtonGroup_defaultProps = { + vertical: false, + toggle: false, + role: 'group', + as: 'div' +}; +var ButtonGroup = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (props, ref) { + var bsPrefix = props.bsPrefix, + size = props.size, + toggle = props.toggle, + vertical = props.vertical, + className = props.className, + Component = props.as, + rest = _objectWithoutPropertiesLoose(props, ["bsPrefix", "size", "toggle", "vertical", "className", "as"]); + + var prefix = useBootstrapPrefix(bsPrefix, 'btn-group'); + var baseClass = prefix; + if (vertical) baseClass = prefix + "-vertical"; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, rest, { + ref: ref, + className: classnames_default()(className, baseClass, size && prefix + "-" + size, toggle && prefix + "-toggle"), + __source: { + fileName: ButtonGroup_jsxFileName, + lineNumber: 64 + }, + __self: this + })); +}); +ButtonGroup.displayName = 'ButtonGroup'; +ButtonGroup.propTypes = ButtonGroup_propTypes; +ButtonGroup.defaultProps = ButtonGroup_defaultProps; +/* harmony default export */ var src_ButtonGroup = (ButtonGroup); +// CONCATENATED MODULE: ./src/ButtonToolbar.js + + +var ButtonToolbar_jsxFileName = "/Users/jason/src/react-bootstrap/src/ButtonToolbar.js"; + + + + +var ButtonToolbar_propTypes = { + /** + * @default 'btn-toolbar' + */ + bsPrefix: prop_types_default.a.string, + + /** + * The ARIA role describing the button toolbar. Generally the default + * "toolbar" role is correct. An `aria-label` or `aria-labelledby` + * prop is also recommended. + */ + role: prop_types_default.a.string +}; +var ButtonToolbar_defaultProps = { + role: 'toolbar' +}; +var ButtonToolbar = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + className = _ref.className, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "className"]); + + var prefix = useBootstrapPrefix(bsPrefix, 'btn-toolbar'); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", _extends({}, props, { + ref: ref, + className: classnames_default()(className, prefix), + __source: { + fileName: ButtonToolbar_jsxFileName, + lineNumber: 30 + }, + __self: this + })); +}); +ButtonToolbar.displayName = 'ButtonToolbar'; +ButtonToolbar.propTypes = ButtonToolbar_propTypes; +ButtonToolbar.defaultProps = ButtonToolbar_defaultProps; +/* harmony default export */ var src_ButtonToolbar = (ButtonToolbar); +// CONCATENATED MODULE: ./src/CardContext.js + +/* harmony default export */ var CardContext = (external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createContext(null)); +// CONCATENATED MODULE: ./src/CardImg.js + + +var CardImg_jsxFileName = "/Users/jason/src/react-bootstrap/src/CardImg.js"; + + + + +var CardImg_propTypes = { + /** + * @default 'card-img' + */ + bsPrefix: prop_types_default.a.string, + + /** + * Defines image position inside + * the card. + * + * @type {('top'|'bottom')} + */ + variant: prop_types_default.a.oneOf(['top', 'bottom', null]), + as: prop_types_default.a.elementType +}; +var CardImg_defaultProps = { + as: 'img', + variant: null +}; +var CardImg = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + className = _ref.className, + variant = _ref.variant, + Component = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "className", "variant", "as"]); + + var prefix = useBootstrapPrefix(bsPrefix, 'card-img'); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({ + ref: ref, + className: classnames_default()(variant ? prefix + "-" + variant : prefix, className) + }, props, { + __source: { + fileName: CardImg_jsxFileName, + lineNumber: 34 + }, + __self: this + })); +}); +CardImg.displayName = 'CardImg'; +CardImg.propTypes = CardImg_propTypes; +CardImg.defaultProps = CardImg_defaultProps; +/* harmony default export */ var src_CardImg = (CardImg); +// CONCATENATED MODULE: ./src/Card.js + + +var Card_jsxFileName = "/Users/jason/src/react-bootstrap/src/Card.js"; + + + + + + + + +var DivStyledAsH5 = divWithClassName('h5'); +var DivStyledAsH6 = divWithClassName('h6'); +var CardBody = createWithBsPrefix('card-body'); +var Card_propTypes = { + /** + * @default 'card' + */ + bsPrefix: prop_types_default.a.string, + + /** + * Sets card background + * + * @type {('primary'|'secondary'|'success'|'danger'|'warning'|'info'|'dark'|'light')} + */ + bg: prop_types_default.a.string, + + /** + * Sets card text color + * + * @type {('primary'|'secondary'|'success'|'danger'|'warning'|'info'|'dark'|'light'|'white'|'muted')} + */ + text: prop_types_default.a.string, + + /** + * Sets card border color + * + * @type {('primary'|'secondary'|'success'|'danger'|'warning'|'info'|'dark'|'light')} + */ + border: prop_types_default.a.string, + + /** + * When this prop is set, it creates a Card with a Card.Body inside + * passing the children directly to it + */ + body: prop_types_default.a.bool, + as: prop_types_default.a.elementType +}; +var Card_defaultProps = { + as: 'div', + body: false +}; +var Card = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + className = _ref.className, + bg = _ref.bg, + text = _ref.text, + border = _ref.border, + body = _ref.body, + children = _ref.children, + Component = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "className", "bg", "text", "border", "body", "children", "as"]); + + var prefix = useBootstrapPrefix(bsPrefix, 'card'); + var cardContext = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useMemo"])(function () { + return { + cardHeaderBsPrefix: prefix + "-header" + }; + }, [prefix]); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(CardContext.Provider, { + value: cardContext, + __source: { + fileName: Card_jsxFileName, + lineNumber: 81 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({ + ref: ref + }, props, { + className: classnames_default()(className, prefix, bg && "bg-" + bg, text && "text-" + text, border && "border-" + border), + __source: { + fileName: Card_jsxFileName, + lineNumber: 82 + }, + __self: this + }), body ? external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(CardBody, { + __source: { + fileName: Card_jsxFileName, + lineNumber: 93 + }, + __self: this + }, children) : children)); +}); +Card.displayName = 'Card'; +Card.propTypes = Card_propTypes; +Card.defaultProps = Card_defaultProps; +Card.Img = src_CardImg; +Card.Title = createWithBsPrefix('card-title', { + Component: DivStyledAsH5 +}); +Card.Subtitle = createWithBsPrefix('card-subtitle', { + Component: DivStyledAsH6 +}); +Card.Body = CardBody; +Card.Link = createWithBsPrefix('card-link', { + Component: 'a' +}); +Card.Text = createWithBsPrefix('card-text', { + Component: 'p' +}); +Card.Header = createWithBsPrefix('card-header'); +Card.Footer = createWithBsPrefix('card-footer'); +Card.ImgOverlay = createWithBsPrefix('card-img-overlay'); +/* harmony default export */ var src_Card = (Card); +// CONCATENATED MODULE: ./src/CardColumns.js + +/* harmony default export */ var CardColumns = (createWithBsPrefix('card-columns')); +// CONCATENATED MODULE: ./src/CardDeck.js + +/* harmony default export */ var CardDeck = (createWithBsPrefix('card-deck')); +// CONCATENATED MODULE: ./src/CardGroup.js + +/* harmony default export */ var CardGroup = (createWithBsPrefix('card-group')); +// EXTERNAL MODULE: ./node_modules/dom-helpers/transition/index.js +var dom_helpers_transition = __webpack_require__(51); +var transition_default = /*#__PURE__*/__webpack_require__.n(dom_helpers_transition); + +// EXTERNAL MODULE: ./node_modules/uncontrollable/index.js +var uncontrollable = __webpack_require__(7); +var uncontrollable_default = /*#__PURE__*/__webpack_require__.n(uncontrollable); + +// CONCATENATED MODULE: ./src/CarouselCaption.js + +/* harmony default export */ var CarouselCaption = (createWithBsPrefix('carousel-caption', { + Component: 'div' +})); +// CONCATENATED MODULE: ./src/CarouselItem.js + +/* harmony default export */ var CarouselItem = (createWithBsPrefix('carousel-item')); +// CONCATENATED MODULE: ./src/utils/ElementChildren.js + +/** + * Iterates through children that are typically specified as `props.children`, + * but only maps over children that are "valid elements". + * + * The mapFunction provided index will be normalised to the components mapped, + * so an invalid component would not increase the index. + * + */ + +function map(children, func) { + var index = 0; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Children.map(children, function (child) { + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.isValidElement(child) ? func(child, index++) : child; + }); +} +/** + * Iterates through children that are "valid elements". + * + * The provided forEachFunc(child, index) will be called for each + * leaf child with the index reflecting the position relative to "valid components". + */ + + +function forEach(children, func) { + var index = 0; + external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Children.forEach(children, function (child) { + if (external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.isValidElement(child)) func(child, index++); + }); +} + + +// CONCATENATED MODULE: ./src/Carousel.js + + + +var Carousel_jsxFileName = "/Users/jason/src/react-bootstrap/src/Carousel.js"; + + + + + + + + + + + + + +var Carousel_countChildren = function countChildren(c) { + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Children.toArray(c).filter(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.isValidElement).length; +}; // TODO: `slide` should be `animate`. + + +var Carousel_propTypes = { + /** + * @default 'carousel' + */ + bsPrefix: prop_types_default.a.string, + as: prop_types_default.a.elementType, + + /** + * Enables animation on the Carousel as it transitions between slides. + */ + slide: prop_types_default.a.bool, + + /** Cross fade slides instead of the default slide animation */ + fade: prop_types_default.a.bool, + + /** Slides will loop to the start when the last one transitions */ + wrap: prop_types_default.a.bool, + + /** + * Show a set of slide position indicators + */ + indicators: prop_types_default.a.bool, + + /** + * The amount of time to delay between automatically cycling an item. + * If `null`, carousel will not automatically cycle. + */ + interval: prop_types_default.a.number, + + /** + * Show the Carousel previous and next arrows for changing the current slide + */ + controls: prop_types_default.a.bool, + + /** + * Temporarily puase the slide interval when the mouse hovers over a slide. + */ + pauseOnHover: prop_types_default.a.bool, + + /** Enable keyboard navigation via the Arrow keys for changing slides */ + keyboard: prop_types_default.a.bool, + + /** + * Callback fired when the active item changes. + * + * ```js + * (eventKey: any, direction: 'prev' | 'next', ?event: Object) => any + * ``` + * + * @controllable activeIndex + */ + onSelect: prop_types_default.a.func, + + /** A callback fired after a slide transitions in */ + onSlideEnd: prop_types_default.a.func, + + /** + * Controls the current visible slide + * + * @controllable onSelect + */ + activeIndex: prop_types_default.a.number, + + /** Override the default button icon for the "previous" control */ + prevIcon: prop_types_default.a.node, + + /** + * Label shown to screen readers only, can be used to show the previous element + * in the carousel. + * Set to null to deactivate. + */ + prevLabel: prop_types_default.a.string, + + /** Override the default button icon for the "next" control */ + nextIcon: prop_types_default.a.node, + + /** + * Label shown to screen readers only, can be used to show the next element + * in the carousel. + * Set to null to deactivate. + */ + nextLabel: prop_types_default.a.string +}; +var Carousel_defaultProps = { + as: 'div', + slide: true, + fade: false, + interval: 5000, + keyboard: true, + pauseOnHover: true, + wrap: true, + indicators: true, + controls: true, + activeIndex: 0, + prevIcon: external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("span", { + "aria-hidden": "true", + className: "carousel-control-prev-icon", + __source: { + fileName: Carousel_jsxFileName, + lineNumber: 116 + }, + __self: undefined + }), + prevLabel: 'Previous', + nextIcon: external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("span", { + "aria-hidden": "true", + className: "carousel-control-next-icon", + __source: { + fileName: Carousel_jsxFileName, + lineNumber: 119 + }, + __self: undefined + }), + nextLabel: 'Next' +}; + +var Carousel_Carousel = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Carousel, _React$Component); + + function Carousel(props, context) { + var _this; + + _this = _React$Component.call(this, props, context) || this; + + _this.handleSlideEnd = function () { + var pendingIndex = _this._pendingIndex; + _this._isSliding = false; + _this._pendingIndex = null; + if (pendingIndex != null) _this.to(pendingIndex);else _this.cycle(); + }; + + _this.handleMouseOut = function () { + _this.cycle(); + }; + + _this.handleMouseOver = function () { + if (_this.props.pauseOnHover) _this.pause(); + }; + + _this.handleKeyDown = function (event) { + if (/input|textarea/i.test(event.target.tagName)) return; + + switch (event.key) { + case 'ArrowLeft': + event.preventDefault(); + + _this.handlePrev(event); + + break; + + case 'ArrowRight': + event.preventDefault(); + + _this.handleNext(event); + + break; + + default: + break; + } + }; + + _this.handleNextWhenVisible = function () { + if (!_this.isUnmounted && !document.hidden && style_default()(_this.carousel.current, 'visibility') !== 'hidden') { + _this.handleNext(); + } + }; + + _this.handleNext = function (e) { + if (_this._isSliding) return; + var _this$props = _this.props, + wrap = _this$props.wrap, + activeIndex = _this$props.activeIndex; + var index = activeIndex + 1; + var count = Carousel_countChildren(_this.props.children); + + if (index > count - 1) { + if (!wrap) return; + index = 0; + } + + _this.select(index, e, 'next'); + }; + + _this.handlePrev = function (e) { + if (_this._isSliding) return; + var _this$props2 = _this.props, + wrap = _this$props2.wrap, + activeIndex = _this$props2.activeIndex; + var index = activeIndex - 1; + + if (index < 0) { + if (!wrap) return; + index = Carousel_countChildren(_this.props.children) - 1; + } + + _this.select(index, e, 'prev'); + }; + + _this.state = { + prevClasses: '', + currentClasses: 'active' + }; + _this.isUnmounted = false; + _this.carousel = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createRef(); + return _this; + } + + var _proto = Carousel.prototype; + + _proto.componentDidMount = function componentDidMount() { + this.cycle(); + }; + + Carousel.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) { + var previousActiveIndex = _ref.activeIndex; + + if (nextProps.activeIndex !== previousActiveIndex) { + var lastPossibleIndex = Carousel_countChildren(nextProps.children) - 1; + var nextIndex = Math.max(0, Math.min(nextProps.activeIndex, lastPossibleIndex)); + var direction; + + if (nextIndex === 0 && previousActiveIndex >= lastPossibleIndex || previousActiveIndex <= nextIndex) { + direction = 'next'; + } else { + direction = 'prev'; + } + + return { + direction: direction, + previousActiveIndex: previousActiveIndex, + activeIndex: nextIndex + }; + } + + return null; + }; + + _proto.componentDidUpdate = function componentDidUpdate(_, prevState) { + var _this2 = this; + + var _this$props3 = this.props, + bsPrefix = _this$props3.bsPrefix, + slide = _this$props3.slide, + onSlideEnd = _this$props3.onSlideEnd; + if (!slide || this.state.activeIndex === prevState.activeIndex || this._isSliding) return; + var _this$state = this.state, + activeIndex = _this$state.activeIndex, + direction = _this$state.direction; + var orderClassName, directionalClassName; + + if (direction === 'next') { + orderClassName = bsPrefix + "-item-next"; + directionalClassName = bsPrefix + "-item-left"; + } else if (direction === 'prev') { + orderClassName = bsPrefix + "-item-prev"; + directionalClassName = bsPrefix + "-item-right"; + } + + this._isSliding = true; + this.pause(); // eslint-disable-next-line react/no-did-update-set-state + + this.safeSetState({ + prevClasses: 'active', + currentClasses: orderClassName + }, function () { + var items = _this2.carousel.current.children; + var nextElement = items[activeIndex]; + triggerBrowserReflow(nextElement); + + _this2.safeSetState({ + prevClasses: classnames_default()('active', directionalClassName), + currentClasses: classnames_default()(orderClassName, directionalClassName) + }, function () { + return transition_default.a.end(nextElement, function () { + _this2.safeSetState({ + prevClasses: '', + currentClasses: 'active' + }, _this2.handleSlideEnd); + + if (onSlideEnd) { + onSlideEnd(); + } + }); + }); + }); + }; + + _proto.componentWillUnmount = function componentWillUnmount() { + clearTimeout(this.timeout); + this.isUnmounted = true; + }; + + _proto.safeSetState = function safeSetState(state, cb) { + var _this3 = this; + + if (this.isUnmounted) return; + this.setState(state, function () { + return !_this3.isUnmounted && cb(); + }); + } // This might be a public API. + ; + + _proto.pause = function pause() { + this._isPaused = true; + clearInterval(this._interval); + this._interval = null; + }; + + _proto.cycle = function cycle() { + this._isPaused = false; + clearInterval(this._interval); + this._interval = null; + + if (this.props.interval && !this._isPaused) { + this._interval = setInterval(document.visibilityState ? this.handleNextWhenVisible : this.handleNext, this.props.interval); + } + }; + + _proto.to = function to(index, event) { + var children = this.props.children; + + if (index < 0 || index > Carousel_countChildren(children) - 1) { + return; + } + + if (this._isSliding) { + this._pendingIndex = index; + return; + } + + this.select(index, event); + }; + + _proto.select = function select(index, event, direction) { + var _this4 = this; + + clearTimeout(this.selectThrottle); + if (event && event.persist) event.persist(); // The timeout throttles fast clicks, in order to give any pending state + // a chance to update and propagate back through props + + this.selectThrottle = setTimeout(function () { + clearTimeout(_this4.timeout); + var _this4$props = _this4.props, + activeIndex = _this4$props.activeIndex, + onSelect = _this4$props.onSelect; + if (index === activeIndex || _this4._isSliding || _this4.isUnmounted) return; + onSelect(index, direction || (index < activeIndex ? 'prev' : 'next'), event); + }, 50); + }; + + _proto.renderControls = function renderControls(properties) { + var bsPrefix = this.props.bsPrefix; + var wrap = properties.wrap, + children = properties.children, + activeIndex = properties.activeIndex, + prevIcon = properties.prevIcon, + nextIcon = properties.nextIcon, + prevLabel = properties.prevLabel, + nextLabel = properties.nextLabel; + var count = Carousel_countChildren(children); + return [(wrap || activeIndex !== 0) && external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_SafeAnchor, { + key: "prev", + className: bsPrefix + "-control-prev", + onClick: this.handlePrev, + __source: { + fileName: Carousel_jsxFileName, + lineNumber: 380 + }, + __self: this + }, prevIcon, prevLabel && external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("span", { + className: "sr-only", + __source: { + fileName: Carousel_jsxFileName, + lineNumber: 386 + }, + __self: this + }, prevLabel)), (wrap || activeIndex !== count - 1) && external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_SafeAnchor, { + key: "next", + className: bsPrefix + "-control-next", + onClick: this.handleNext, + __source: { + fileName: Carousel_jsxFileName, + lineNumber: 391 + }, + __self: this + }, nextIcon, nextLabel && external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("span", { + className: "sr-only", + __source: { + fileName: Carousel_jsxFileName, + lineNumber: 397 + }, + __self: this + }, nextLabel))]; + }; + + _proto.renderIndicators = function renderIndicators(children, activeIndex) { + var _this5 = this; + + var bsPrefix = this.props.bsPrefix; + var indicators = []; + forEach(children, function (child, index) { + indicators.push(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("li", { + key: index, + className: index === activeIndex ? 'active' : null, + onClick: function onClick(e) { + return _this5.to(index, e); + }, + __source: { + fileName: Carousel_jsxFileName, + lineNumber: 409 + }, + __self: this + }), // Force whitespace between indicator elements. Bootstrap requires + // this for correct spacing of elements. + ' '); + }); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("ol", { + className: bsPrefix + "-indicators", + __source: { + fileName: Carousel_jsxFileName, + lineNumber: 421 + }, + __self: this + }, indicators); + }; + + _proto.render = function render() { + var _this$props4 = this.props, + Component = _this$props4.as, + bsPrefix = _this$props4.bsPrefix, + slide = _this$props4.slide, + fade = _this$props4.fade, + indicators = _this$props4.indicators, + controls = _this$props4.controls, + wrap = _this$props4.wrap, + prevIcon = _this$props4.prevIcon, + prevLabel = _this$props4.prevLabel, + nextIcon = _this$props4.nextIcon, + nextLabel = _this$props4.nextLabel, + className = _this$props4.className, + children = _this$props4.children, + keyboard = _this$props4.keyboard, + _5 = _this$props4.activeIndex, + _4 = _this$props4.pauseOnHover, + _3 = _this$props4.interval, + _2 = _this$props4.onSelect, + _1 = _this$props4.onSlideEnd, + props = _objectWithoutPropertiesLoose(_this$props4, ["as", "bsPrefix", "slide", "fade", "indicators", "controls", "wrap", "prevIcon", "prevLabel", "nextIcon", "nextLabel", "className", "children", "keyboard", "activeIndex", "pauseOnHover", "interval", "onSelect", "onSlideEnd"]); + + var _this$state2 = this.state, + activeIndex = _this$state2.activeIndex, + previousActiveIndex = _this$state2.previousActiveIndex, + prevClasses = _this$state2.prevClasses, + currentClasses = _this$state2.currentClasses; + return (// eslint-disable-next-line jsx-a11y/no-static-element-interactions + external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + className: classnames_default()(className, bsPrefix, slide && 'slide', fade && bsPrefix + "-fade"), + onKeyDown: keyboard ? this.handleKeyDown : undefined, + onMouseOver: this.handleMouseOver, + onMouseOut: this.handleMouseOut, + __source: { + fileName: Carousel_jsxFileName, + lineNumber: 457 + }, + __self: this + }), indicators && this.renderIndicators(children, activeIndex), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", { + className: bsPrefix + "-inner", + ref: this.carousel, + __source: { + fileName: Carousel_jsxFileName, + lineNumber: 471 + }, + __self: this + }, map(children, function (child, index) { + var current = index === activeIndex; + var previous = index === previousActiveIndex; + return Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["cloneElement"])(child, { + className: classnames_default()(child.props.className, bsPrefix + "-item", current && currentClasses, previous && prevClasses) + }); + })), controls && this.renderControls({ + wrap: wrap, + children: children, + activeIndex: activeIndex, + prevIcon: prevIcon, + prevLabel: prevLabel, + nextIcon: nextIcon, + nextLabel: nextLabel + })) + ); + }; + + return Carousel; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +Carousel_Carousel.defaultProps = Carousel_defaultProps; +Carousel_Carousel.propTypes = Carousel_propTypes; +var DecoratedCarousel = createBootstrapComponent(uncontrollable_default()(Carousel_Carousel, { + activeIndex: 'onSelect' +}), 'carousel'); +DecoratedCarousel.Caption = CarouselCaption; +DecoratedCarousel.Item = CarouselItem; +/* harmony default export */ var src_Carousel = (DecoratedCarousel); +// CONCATENATED MODULE: ./src/Col.js + + +var Col_jsxFileName = "/Users/jason/src/react-bootstrap/src/Col.js"; + + + + +var DEVICE_SIZES = ['xl', 'lg', 'md', 'sm', 'xs']; +var colSize = prop_types_default.a.oneOfType([prop_types_default.a.bool, prop_types_default.a.number, prop_types_default.a.string, prop_types_default.a.oneOf(['auto'])]); +var stringOrNumber = prop_types_default.a.oneOfType([prop_types_default.a.number, prop_types_default.a.string]); +var Col_column = prop_types_default.a.oneOfType([colSize, prop_types_default.a.shape({ + size: colSize, + order: stringOrNumber, + offset: stringOrNumber +})]); +var Col_propTypes = { + /** + * @default 'col' + */ + bsPrefix: prop_types_default.a.string, + as: prop_types_default.a.elementType, + + /** + * The number of columns to span on sxtra small devices (<576px) + * + * @type {(true|"auto"|number|{ span: true|"auto"|number, offset: number, order: number })} + */ + xs: Col_column, + + /** + * The number of columns to span on small devices (≥576px) + * + * @type {(true|"auto"|number|{ span: true|"auto"|number, offset: number, order: number })} + */ + sm: Col_column, + + /** + * The number of columns to span on medium devices (≥768px) + * + * @type {(true|"auto"|number|{ span: true|"auto"|number, offset: number, order: number })} + */ + md: Col_column, + + /** + * The number of columns to span on large devices (≥992px) + * + * @type {(true|"auto"|number|{ span: true|"auto"|number, offset: number, order: number })} + */ + lg: Col_column, + + /** + * The number of columns to span on extra large devices (≥1200px) + * + * @type {(true|"auto"|number|{ span: true|"auto"|number, offset: number, order: number })} + */ + xl: Col_column +}; +var Col_defaultProps = { + as: 'div' +}; +var Col = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + className = _ref.className, + Component = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "className", "as"]); + + var prefix = useBootstrapPrefix(bsPrefix, 'col'); + var spans = []; + var classes = []; + DEVICE_SIZES.forEach(function (brkPoint) { + var propValue = props[brkPoint]; + delete props[brkPoint]; + var span, offset, order; + + if (propValue != null && typeof propValue === 'object') { + var _propValue$span = propValue.span; + span = _propValue$span === void 0 ? true : _propValue$span; + offset = propValue.offset; + order = propValue.order; + } else { + span = propValue; + } + + var infix = brkPoint !== 'xs' ? "-" + brkPoint : ''; + if (span != null) spans.push(span === true ? "" + prefix + infix : "" + prefix + infix + "-" + span); + if (order != null) classes.push("order" + infix + "-" + order); + if (offset != null) classes.push("offset" + infix + "-" + offset); + }); + + if (!spans.length) { + spans.push(prefix); // plain 'col' + } + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + ref: ref, + className: classnames_default.a.apply(void 0, [className].concat(spans, classes)), + __source: { + fileName: Col_jsxFileName, + lineNumber: 110 + }, + __self: this + })); +}); +Col.displayName = 'Col'; +Col.propTypes = Col_propTypes; +Col.defaultProps = Col_defaultProps; +/* harmony default export */ var src_Col = (Col); +// EXTERNAL MODULE: ./node_modules/react-overlays/Dropdown.js +var Dropdown = __webpack_require__(52); +var Dropdown_default = /*#__PURE__*/__webpack_require__.n(Dropdown); + +// EXTERNAL MODULE: external {"root":"ReactDOM","commonjs2":"react-dom","commonjs":"react-dom","amd":"react-dom"} +var external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_ = __webpack_require__(6); +var external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_default = /*#__PURE__*/__webpack_require__.n(external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_); + +// EXTERNAL MODULE: ./node_modules/react-overlays/DropdownMenu.js +var DropdownMenu = __webpack_require__(35); +var DropdownMenu_default = /*#__PURE__*/__webpack_require__.n(DropdownMenu); + +// CONCATENATED MODULE: ./src/NavbarContext.js + +/* harmony default export */ var NavbarContext = (external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createContext(null)); +// CONCATENATED MODULE: ./src/DropdownMenu.js + + +var DropdownMenu_jsxFileName = "/Users/jason/src/react-bootstrap/src/DropdownMenu.js"; + + + + + + + + +var DropdownMenu_wrapRef = function wrapRef(props) { + var ref = props.ref; + + props.ref = ref.__wrapped || (ref.__wrapped = function (r) { + return ref(Object(external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_["findDOMNode"])(r)); + }); + + return props; +}; + +var DropdownMenu_propTypes = { + /** + * @default 'dropdown-menu' + */ + bsPrefix: prop_types_default.a.string, + + /** Controls the visibility of the Dropdown menu */ + show: prop_types_default.a.bool, + + /** Have the dropdown switch to it's opposite placement when necessary to stay on screen. */ + flip: prop_types_default.a.bool, + + /** Aligns the Dropdown menu to the right of it's container. */ + alignRight: prop_types_default.a.bool, + onSelect: prop_types_default.a.func, + + /** + * Which event when fired outside the component will cause it to be closed + * + * *Note: For custom dropdown components, you will have to pass the + * `rootCloseEvent` to `<RootCloseWrapper>` in your custom dropdown menu + * component ([similarly to how it is implemented in `<Dropdown.Menu>`](https://github.com/react-bootstrap/react-bootstrap/blob/v0.31.5/src/DropdownMenu.js#L115-L119)).* + */ + rootCloseEvent: prop_types_default.a.oneOf(['click', 'mousedown']), + + /** + * Control the rendering of the DropdownMenu. All non-menu props + * (listed here) are passed through to the `as` Component. + * + * If providing a custom, non DOM, component. the `show`, `close` and `alignRight` props + * are also injected and should be handled appropriately. + */ + as: prop_types_default.a.elementType, + + /** + * A set of popper options and props passed directly to react-popper's Popper component. + */ + popperConfig: prop_types_default.a.object +}; +var DropdownMenu_defaultProps = { + alignRight: false, + as: 'div', + flip: true +}; +var DropdownMenu_DropdownMenu = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + className = _ref.className, + alignRight = _ref.alignRight, + rootCloseEvent = _ref.rootCloseEvent, + flip = _ref.flip, + popperConfig = _ref.popperConfig, + showProps = _ref.show, + Component = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "className", "alignRight", "rootCloseEvent", "flip", "popperConfig", "show", "as"]); + + var isNavbar = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(NavbarContext); + var prefix = useBootstrapPrefix(bsPrefix, 'dropdown-menu'); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(DropdownMenu_default.a, { + ref: ref // FIXME: the ref situation is out of hand here + , + flip: flip, + show: showProps, + alignEnd: alignRight, + usePopper: !isNavbar, + popperConfig: popperConfig, + rootCloseEvent: rootCloseEvent, + __source: { + fileName: DropdownMenu_jsxFileName, + lineNumber: 83 + }, + __self: this + }, function (_ref2) { + var placement = _ref2.placement, + show = _ref2.show, + alignEnd = _ref2.alignEnd, + close = _ref2.close, + menuProps = _ref2.props; + DropdownMenu_wrapRef(menuProps); // For custom components provide additional, non-DOM, props; + + if (typeof Component !== 'string') { + menuProps.show = show; + menuProps.close = close; + menuProps.alignRight = alignEnd; + } + + var style = props.style; + + if (placement) { + // we don't need the default popper style, + // menus are display: none when not shown. + style = _extends({}, style, menuProps.style); + props['x-placement'] = placement; + } + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, menuProps, { + style: style, + className: classnames_default()(className, prefix, show && 'show', alignEnd && prefix + "-right"), + __source: { + fileName: DropdownMenu_jsxFileName, + lineNumber: 108 + }, + __self: this + })); + }); +}); +DropdownMenu_DropdownMenu.displayName = 'DropdownMenu'; +DropdownMenu_DropdownMenu.propTypes = DropdownMenu_propTypes; +DropdownMenu_DropdownMenu.defaultProps = DropdownMenu_defaultProps; +/* harmony default export */ var src_DropdownMenu = (DropdownMenu_DropdownMenu); +// EXTERNAL MODULE: ./node_modules/prop-types-extra/lib/isRequiredForA11y.js +var isRequiredForA11y = __webpack_require__(13); +var isRequiredForA11y_default = /*#__PURE__*/__webpack_require__.n(isRequiredForA11y); + +// EXTERNAL MODULE: ./node_modules/react-overlays/DropdownToggle.js +var react_overlays_DropdownToggle = __webpack_require__(36); +var DropdownToggle_default = /*#__PURE__*/__webpack_require__.n(react_overlays_DropdownToggle); + +// CONCATENATED MODULE: ./src/DropdownToggle.js + + + +var DropdownToggle_jsxFileName = "/Users/jason/src/react-bootstrap/src/DropdownToggle.js"; + + + + + + + + + +var DropdownToggle_wrapRef = function wrapRef(props) { + var ref = props.ref; + + props.ref = ref.__wrapped || (ref.__wrapped = function (r) { + return ref(Object(external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_["findDOMNode"])(r)); + }); + + return props; +}; + +var DropdownToggle_DropdownToggle = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(DropdownToggle, _React$Component); + + function DropdownToggle() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = DropdownToggle.prototype; + + _proto.render = function render() { + var _this$props = this.props, + bsPrefix = _this$props.bsPrefix, + split = _this$props.split, + className = _this$props.className, + children = _this$props.children, + childBsPrefix = _this$props.childBsPrefix, + Component = _this$props.as, + props = _objectWithoutPropertiesLoose(_this$props, ["bsPrefix", "split", "className", "children", "childBsPrefix", "as"]); + + if (childBsPrefix !== undefined) { + props.bsPrefix = childBsPrefix; + } // This intentionally forwards size and variant (if set) to the + // underlying component, to allow it to render size and style variants. + + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(DropdownToggle_default.a, { + __source: { + fileName: DropdownToggle_jsxFileName, + lineNumber: 65 + }, + __self: this + }, function (_ref) { + var toggle = _ref.toggle, + toggleProps = _ref.props; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({ + onClick: toggle, + className: classnames_default()(className, bsPrefix, split && bsPrefix + "-split") + }, DropdownToggle_wrapRef(toggleProps), props, { + __source: { + fileName: DropdownToggle_jsxFileName, + lineNumber: 67 + }, + __self: this + }), children); + }); + }; + + return DropdownToggle; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); // Needs to be a class FTM, because it needs to accept a ref that can be used with findDOMNode + + +DropdownToggle_DropdownToggle.propTypes = { + /** + * @default 'dropdown-toggle' + */ + bsPrefix: prop_types_default.a.string, + + /** + * An html id attribute, necessary for assistive technologies, such as screen readers. + * @type {string|number} + * @required + */ + id: isRequiredForA11y_default()(prop_types_default.a.any), + split: prop_types_default.a.bool, + as: prop_types_default.a.elementType, + + /** + * to passthrough to the underlying button or whatever from DropdownButton + * @private + */ + childBsPrefix: prop_types_default.a.string +}; +DropdownToggle_DropdownToggle.defaultProps = { + as: src_Button +}; +/* harmony default export */ var src_DropdownToggle = (createBootstrapComponent(DropdownToggle_DropdownToggle, 'dropdown-toggle')); +// CONCATENATED MODULE: ./src/NavContext.js + +var NavContext = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createContext(null); +/* harmony default export */ var src_NavContext = (NavContext); +// CONCATENATED MODULE: ./src/DropdownItem.js + + +var DropdownItem_jsxFileName = "/Users/jason/src/react-bootstrap/src/DropdownItem.js"; + + + + + + + + +var DropdownItem_propTypes = { + /** @default 'dropdown' */ + bsPrefix: prop_types_default.a.string, + + /** + * Highlight the menu item as active. + */ + active: prop_types_default.a.bool, + + /** + * Disable the menu item, making it unselectable. + */ + disabled: prop_types_default.a.bool, + + /** + * Value passed to the `onSelect` handler, useful for identifying the selected menu item. + */ + eventKey: prop_types_default.a.any, + + /** + * HTML `href` attribute corresponding to `a.href`. + */ + href: prop_types_default.a.string, + + /** + * Callback fired when the menu item is clicked. + */ + onClick: prop_types_default.a.func, + + /** + * Callback fired when the menu item is selected. + * + * ```js + * (eventKey: any, event: Object) => any + * ``` + */ + onSelect: prop_types_default.a.func, + as: prop_types_default.a.elementType +}; +var DropdownItem_defaultProps = { + as: src_SafeAnchor, + disabled: false +}; +var DropdownItem = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + className = _ref.className, + children = _ref.children, + eventKey = _ref.eventKey, + disabled = _ref.disabled, + href = _ref.href, + onClick = _ref.onClick, + onSelect = _ref.onSelect, + propActive = _ref.active, + Component = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "className", "children", "eventKey", "disabled", "href", "onClick", "onSelect", "active", "as"]); + + var prefix = useBootstrapPrefix(bsPrefix, 'dropdown-item'); + var onSelectCtx = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(src_SelectableContext); + var navContext = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(src_NavContext); + + var _ref2 = navContext || {}, + activeKey = _ref2.activeKey; + + var key = makeEventKey(eventKey, href); + var active = propActive == null && key != null ? makeEventKey(activeKey) === key : propActive; + var handleClick = useEventCallback_default()(function (event) { + // SafeAnchor handles the disabled case, but we handle it here + // for other components + if (disabled) return; + if (onClick) onClick(event); + if (onSelectCtx) onSelectCtx(key, event); + if (onSelect) onSelect(key, event); + }); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + ref: ref, + href: href, + disabled: disabled, + className: classnames_default()(className, prefix, active && 'active', disabled && 'disabled'), + onClick: handleClick, + __source: { + fileName: DropdownItem_jsxFileName, + lineNumber: 96 + }, + __self: this + }), children); +}); +DropdownItem.displayName = 'DropdownItem'; +DropdownItem.propTypes = DropdownItem_propTypes; +DropdownItem.defaultProps = DropdownItem_defaultProps; +/* harmony default export */ var src_DropdownItem = (DropdownItem); +// CONCATENATED MODULE: ./src/Dropdown.js + + +var Dropdown_jsxFileName = "/Users/jason/src/react-bootstrap/src/Dropdown.js"; + + + + + + + + + + + + +var Dropdown_propTypes = { + /** @default 'dropdown' */ + bsPrefix: prop_types_default.a.string, + + /** + * Determines the direction and location of the Menu in relation to it's Toggle. + */ + drop: prop_types_default.a.oneOf(['up', 'left', 'right', 'down']), + as: prop_types_default.a.elementType, + + /** + * Align the menu to the right side of the Dropdown toggle + */ + alignRight: prop_types_default.a.bool, + + /** + * Whether or not the Dropdown is visible. + * + * @controllable onToggle + */ + show: prop_types_default.a.bool, + + /** + * Allow Dropdown to flip in case of an overlapping on the reference element. For more information refer to + * Popper.js's flip [docs](https://popper.js.org/popper-documentation.html#modifiers..flip.enabled). + * + */ + flip: prop_types_default.a.bool, + + /** + * A callback fired when the Dropdown wishes to change visibility. Called with the requested + * `show` value, the DOM event, and the source that fired it: `'click'`,`'keydown'`,`'rootClose'`, or `'select'`. + * + * ```js + * function( + * isOpen: boolean, + * event: SyntheticEvent, + * metadata: { + * source: 'select' | 'click' | 'rootClose' | 'keydown' + * } + * ): void + * ``` + * + * @controllable show + */ + onToggle: prop_types_default.a.func, + + /** + * A callback fired when a menu item is selected. + * + * ```js + * (eventKey: any, event: Object) => any + * ``` + */ + onSelect: prop_types_default.a.func, + + /** + * Controls the focus behavior for when the Dropdown is opened. Set to + * `true` to always focus the first menu item, `keyboard` to focus only when + * navigating via the keyboard, or `false` to disable completely + * + * The Default behavior is `false` **unless** the Menu has a `role="menu"` + * where it will default to `keyboard` to match the recommended [ARIA Authoring practices](https://www.w3.org/TR/wai-aria-practices-1.1/#menubutton). + */ + focusFirstItemOnShow: prop_types_default.a.oneOf([false, true, 'keyboard']), + + /** @private */ + navbar: prop_types_default.a.bool +}; +var Dropdown_defaultProps = { + as: 'div', + navbar: false +}; +var Dropdown_Dropdown = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (uncontrolledProps, ref) { + var _useUncontrolled = hook_default()(uncontrolledProps, { + show: 'onToggle' + }), + bsPrefix = _useUncontrolled.bsPrefix, + drop = _useUncontrolled.drop, + show = _useUncontrolled.show, + className = _useUncontrolled.className, + alignRight = _useUncontrolled.alignRight, + onSelect = _useUncontrolled.onSelect, + onToggle = _useUncontrolled.onToggle, + focusFirstItemOnShow = _useUncontrolled.focusFirstItemOnShow, + Component = _useUncontrolled.as, + _4 = _useUncontrolled.navbar, + props = _objectWithoutPropertiesLoose(_useUncontrolled, ["bsPrefix", "drop", "show", "className", "alignRight", "onSelect", "onToggle", "focusFirstItemOnShow", "as", "navbar"]); + + var onSelectCtx = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(src_SelectableContext); + var prefix = useBootstrapPrefix(bsPrefix, 'dropdown'); + var handleToggle = useEventCallback_default()(function (nextShow, event, source) { + if (source === void 0) { + source = event.type; + } + + if (event.currentTarget === document) source = 'rootClose'; + onToggle(nextShow, event, { + source: source + }); + }); + var handleSelect = useEventCallback_default()(function (key, event) { + if (onSelectCtx) onSelectCtx(key, event); + if (onSelect) onSelect(key, event); + handleToggle(false, event, 'select'); + }); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_SelectableContext.Provider, { + value: handleSelect, + __source: { + fileName: Dropdown_jsxFileName, + lineNumber: 122 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Dropdown_default.a.ControlledComponent, { + drop: drop, + show: show, + alignEnd: alignRight, + onToggle: handleToggle, + focusFirstItemOnShow: focusFirstItemOnShow, + itemSelector: "." + prefix + "-item:not(.disabled):not(:disabled)", + __source: { + fileName: Dropdown_jsxFileName, + lineNumber: 123 + }, + __self: this + }, function (_ref) { + var dropdownProps = _ref.props; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, dropdownProps, { + ref: ref, + className: classnames_default()(className, show && 'show', (!drop || drop === 'down') && prefix, drop === 'up' && 'dropup', drop === 'right' && 'dropright', drop === 'left' && 'dropleft'), + __source: { + fileName: Dropdown_jsxFileName, + lineNumber: 132 + }, + __self: this + })); + })); +}); +Dropdown_Dropdown.displayName = 'Dropdown'; +Dropdown_Dropdown.propTypes = Dropdown_propTypes; +Dropdown_Dropdown.defaultProps = Dropdown_defaultProps; +Dropdown_Dropdown.Toggle = src_DropdownToggle; +Dropdown_Dropdown.Menu = src_DropdownMenu; +Dropdown_Dropdown.Item = src_DropdownItem; +Dropdown_Dropdown.Header = createWithBsPrefix('dropdown-header', { + defaultProps: { + role: 'heading' + } +}); +Dropdown_Dropdown.Divider = createWithBsPrefix('dropdown-divider', { + defaultProps: { + role: 'separator' + } +}); +/* harmony default export */ var src_Dropdown = (Dropdown_Dropdown); +// CONCATENATED MODULE: ./src/DropdownButton.js + + +var DropdownButton_jsxFileName = "/Users/jason/src/react-bootstrap/src/DropdownButton.js"; + + + +var DropdownButton_propTypes = { + /** + * An html id attribute for the Toggle button, necessary for assistive technologies, such as screen readers. + * @type {string|number} + * @required + */ + id: prop_types_default.a.any, + + /** An `href` passed to the Toggle component */ + href: prop_types_default.a.string, + + /** An `onClick` handler passed to the Toggle component */ + onClick: prop_types_default.a.func, + + /** The content of the non-toggle Button. */ + title: prop_types_default.a.node.isRequired, + + /** Disables both Buttons */ + disabled: prop_types_default.a.bool, + + /** An ARIA accessible role applied to the Menu component. When set to 'menu', The dropdown */ + menuRole: prop_types_default.a.string, + + /** + * Which event when fired outside the component will cause it to be closed. + * + * _see [DropdownMenu](#menu-props) for more details_ + */ + rootCloseEvent: prop_types_default.a.string, + + /** @ignore */ + bsPrefix: prop_types_default.a.string, + + /** @ignore */ + variant: prop_types_default.a.string, + + /** @ignore */ + size: prop_types_default.a.string +}; +/** + * A convenience component for simple or general use dropdowns. Renders a `Button` toggle and all `children` + * are passed directly to the default `Dropdown.Menu`. + * + * _All unknown props are passed through to the `Dropdown` component._ Only + * the Button `variant`, `size` and `bsPrefix` props are passed to the toggle, + * along with menu related props are passed to the `Dropdown.Menu` + */ + +var DropdownButton = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var title = _ref.title, + children = _ref.children, + bsPrefix = _ref.bsPrefix, + rootCloseEvent = _ref.rootCloseEvent, + variant = _ref.variant, + size = _ref.size, + menuRole = _ref.menuRole, + disabled = _ref.disabled, + href = _ref.href, + id = _ref.id, + props = _objectWithoutPropertiesLoose(_ref, ["title", "children", "bsPrefix", "rootCloseEvent", "variant", "size", "menuRole", "disabled", "href", "id"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Dropdown, _extends({ + ref: ref + }, props, { + __source: { + fileName: DropdownButton_jsxFileName, + lineNumber: 69 + }, + __self: this + }), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Dropdown.Toggle, { + id: id, + href: href, + size: size, + variant: variant, + disabled: disabled, + childBsPrefix: bsPrefix, + __source: { + fileName: DropdownButton_jsxFileName, + lineNumber: 70 + }, + __self: this + }, title), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Dropdown.Menu, { + role: menuRole, + rootCloseEvent: rootCloseEvent, + __source: { + fileName: DropdownButton_jsxFileName, + lineNumber: 80 + }, + __self: this + }, children)); +}); +DropdownButton.displayName = 'DropdownButton'; +DropdownButton.propTypes = DropdownButton_propTypes; +/* harmony default export */ var src_DropdownButton = (DropdownButton); +// CONCATENATED MODULE: ./src/FormContext.js + +var FormContext = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createContext({ + controlId: undefined +}); +/* harmony default export */ var src_FormContext = (FormContext); +// CONCATENATED MODULE: ./src/FormGroup.js + + +var FormGroup_jsxFileName = "/Users/jason/src/react-bootstrap/src/FormGroup.js"; + + + + + +var FormGroup_propTypes = { + /** + * @default 'form-group' + */ + bsPrefix: prop_types_default.a.string, + as: prop_types_default.a.elementType, + + /** + * Sets `id` on `<FormControl>` and `htmlFor` on `<FormGroup.Label>`. + */ + controlId: prop_types_default.a.string, + + /** + * The FormGroup `ref` will be forwarded to the underlying element. + * Unless the FormGroup is rendered `as` a composite component, + * it will be a DOM node, when resolved. + * + * @type {ReactRef} + * @alias ref + */ + _ref: prop_types_default.a.any +}; +var FormGroup_defaultProps = { + as: 'div' +}; +var FormGroup = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + className = _ref.className, + children = _ref.children, + controlId = _ref.controlId, + Component = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "className", "children", "controlId", "as"]); + + bsPrefix = useBootstrapPrefix(bsPrefix, 'form-group'); + var context = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useMemo"])(function () { + return { + controlId: controlId + }; + }, [controlId]); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_FormContext.Provider, { + value: context, + __source: { + fileName: FormGroup_jsxFileName, + lineNumber: 45 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + ref: ref, + className: classnames_default()(className, bsPrefix), + __source: { + fileName: FormGroup_jsxFileName, + lineNumber: 46 + }, + __self: this + }), children)); +}); +FormGroup.displayName = 'FormGroup'; +FormGroup.propTypes = FormGroup_propTypes; +FormGroup.defaultProps = FormGroup_defaultProps; +/* harmony default export */ var src_FormGroup = (FormGroup); +// EXTERNAL MODULE: ./node_modules/warning/warning.js +var warning = __webpack_require__(21); + +// CONCATENATED MODULE: ./src/Feedback.js + + +var Feedback_jsxFileName = "/Users/jason/src/react-bootstrap/src/Feedback.js"; + + + +var Feedback_propTypes = { + /** + * Specify whether the feedback is for valid or invalid fields + * + * @type {('valid'|'invalid')} + */ + type: prop_types_default.a.string.isRequired, + as: prop_types_default.a.elementType +}; +var Feedback_defaultProps = { + type: 'valid', + as: 'div' +}; +var Feedback = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var Component = _ref.as, + className = _ref.className, + type = _ref.type, + props = _objectWithoutPropertiesLoose(_ref, ["as", "className", "type"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + ref: ref, + className: classnames_default()(className, type && type + "-feedback"), + __source: { + fileName: Feedback_jsxFileName, + lineNumber: 22 + }, + __self: this + })); +}); +Feedback.displayName = 'Feedback'; +Feedback.propTypes = Feedback_propTypes; +Feedback.defaultProps = Feedback_defaultProps; +/* harmony default export */ var src_Feedback = (Feedback); +// CONCATENATED MODULE: ./src/FormControl.js + + +var FormControl_jsxFileName = "/Users/jason/src/react-bootstrap/src/FormControl.js"; + + + + + + + +var FormControl_propTypes = { + /** + * @default {'form-control'} + */ + bsPrefix: prop_types_default.a.string, + + /** + * The FormControl `ref` will be forwarded to the underlying input element, + * which means unless `as` is a composite component, + * it will be a DOM node, when resolved. + * + * @type {ReactRef} + * @alias ref + */ + _ref: prop_types_default.a.any, + + /** + * Input size variants + * + * @type {('sm'|'lg')} + */ + size: prop_types_default.a.string, + + /** + * The underlying HTML element to use when rendering the FormControl. + * + * @type {('input'|'textarea'|elementType)} + */ + as: prop_types_default.a.elementType, + + /** + * Render the input as plain text. Generally used along side `readOnly`. + */ + plaintext: prop_types_default.a.bool, + + /** Make the control readonly */ + readOnly: prop_types_default.a.bool, + + /** Make the control disabled */ + disabled: prop_types_default.a.bool, + + /** + * The `value` attribute of underlying input + * + * @controllable onChange + * */ + value: prop_types_default.a.string, + + /** A callback fired when the `value` prop changes */ + onChange: prop_types_default.a.func, + + /** + * The HTML input `type`, which is only relevant if `as` is `'input'` (the default). + */ + type: prop_types_default.a.string, + + /** + * Uses `controlId` from `<FormGroup>` if not explicitly specified. + */ + id: prop_types_default.a.string, + + /** Add "valid" validation styles to the control */ + isValid: prop_types_default.a.bool, + + /** Add "invalid" validation styles to the control and accompanying label */ + isInvalid: prop_types_default.a.bool +}; +var FormControl_defaultProps = { + as: 'input' +}; +var FormControl = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + type = _ref.type, + size = _ref.size, + id = _ref.id, + className = _ref.className, + isValid = _ref.isValid, + isInvalid = _ref.isInvalid, + plaintext = _ref.plaintext, + readOnly = _ref.readOnly, + Component = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "type", "size", "id", "className", "isValid", "isInvalid", "plaintext", "readOnly", "as"]); + + var _useContext = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(src_FormContext), + controlId = _useContext.controlId; + + bsPrefix = useBootstrapPrefix(bsPrefix, 'form-control'); + var classes; + + if (plaintext) { + var _classes; + + classes = (_classes = {}, _classes[bsPrefix + "-plaintext"] = true, _classes); + } else if (type === 'file') { + var _classes2; + + classes = (_classes2 = {}, _classes2[bsPrefix + "-file"] = true, _classes2); + } else { + var _classes3; + + classes = (_classes3 = {}, _classes3[bsPrefix] = true, _classes3[bsPrefix + "-" + size] = size, _classes3); + } + + false ? undefined : void 0; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + type: type, + ref: ref, + readOnly: readOnly, + id: id || controlId, + className: classnames_default()(className, classes, isValid && "is-valid", isInvalid && "is-invalid"), + __source: { + fileName: FormControl_jsxFileName, + lineNumber: 120 + }, + __self: this + })); +}); +FormControl.displayName = 'FormControl'; +FormControl.propTypes = FormControl_propTypes; +FormControl.defaultProps = FormControl_defaultProps; +FormControl.Feedback = src_Feedback; +/* harmony default export */ var src_FormControl = (FormControl); +// CONCATENATED MODULE: ./src/FormCheckInput.js + + +var FormCheckInput_jsxFileName = "/Users/jason/src/react-bootstrap/src/FormCheckInput.js"; + + + + + +var FormCheckInput_propTypes = { + /** + * @default 'form-check-input' + */ + bsPrefix: prop_types_default.a.string, + + /** A HTML id attribute, necessary for proper form accessibility. */ + id: prop_types_default.a.string, + + /** The type of checkable. */ + type: prop_types_default.a.oneOf(['radio', 'checkbox']).isRequired, + + /** + * A convenience prop shortcut for adding `position-static` to the input, for + * correct styling when used without an FormCheckLabel + */ + isStatic: prop_types_default.a.bool, + + /** Manually style the input as valid */ + isValid: prop_types_default.a.bool.isRequired, + + /** Manually style the input as invalid */ + isInvalid: prop_types_default.a.bool.isRequired +}; +var FormCheckInput_defaultProps = { + type: 'checkbox' +}; +var FormCheckInput = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var id = _ref.id, + bsPrefix = _ref.bsPrefix, + className = _ref.className, + isValid = _ref.isValid, + isInvalid = _ref.isInvalid, + isStatic = _ref.isStatic, + props = _objectWithoutPropertiesLoose(_ref, ["id", "bsPrefix", "className", "isValid", "isInvalid", "isStatic"]); + + bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-input'); + + var _useContext = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(src_FormContext), + controlId = _useContext.controlId, + custom = _useContext.custom; + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("input", _extends({}, props, { + ref: ref, + id: id || controlId, + className: classnames_default()(className, !custom && bsPrefix, custom && 'custom-control-input', isValid && 'is-valid', isInvalid && 'is-invalid', isStatic && 'position-static'), + __source: { + fileName: FormCheckInput_jsxFileName, + lineNumber: 47 + }, + __self: this + })); +}); +FormCheckInput.displayName = 'FormCheckInput'; +FormCheckInput.propTypes = FormCheckInput_propTypes; +FormCheckInput.defaultProps = FormCheckInput_defaultProps; +/* harmony default export */ var src_FormCheckInput = (FormCheckInput); +// CONCATENATED MODULE: ./src/FormCheckLabel.js + + +var FormCheckLabel_jsxFileName = "/Users/jason/src/react-bootstrap/src/FormCheckLabel.js"; + + + + + +var FormCheckLabel_propTypes = { + /** + * @default 'form-check-input' + */ + bsPrefix: prop_types_default.a.string, + + /** The HTML for attribute for associating the label with an input */ + htmlFor: prop_types_default.a.string +}; +var FormCheckLabel_defaultProps = { + type: 'checkbox' +}; +var FormCheckLabel = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + className = _ref.className, + htmlFor = _ref.htmlFor, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "className", "htmlFor"]); + + bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check-label'); + + var _useContext = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(src_FormContext), + controlId = _useContext.controlId, + custom = _useContext.custom; + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("label", _extends({}, props, { + ref: ref, + htmlFor: htmlFor || controlId, + className: classnames_default()(className, !custom && bsPrefix, custom && 'custom-control-label'), + __source: { + fileName: FormCheckLabel_jsxFileName, + lineNumber: 29 + }, + __self: this + })); +}); +FormCheckLabel.displayName = 'FormCheckLabel'; +FormCheckLabel.propTypes = FormCheckLabel_propTypes; +FormCheckLabel.defaultProps = FormCheckLabel_defaultProps; +/* harmony default export */ var src_FormCheckLabel = (FormCheckLabel); +// CONCATENATED MODULE: ./src/FormCheck.js + + +var FormCheck_jsxFileName = "/Users/jason/src/react-bootstrap/src/FormCheck.js"; + + + + + + + + +var FormCheck_propTypes = { + /** + * @default 'form-check' + */ + bsPrefix: prop_types_default.a.string, + + /** + * The FormCheck `ref` will be forwarded to the underlying input element, + * which means it will be a DOM node, when resolved. + * + * @type {ReactRef} + * @alias ref + */ + _ref: prop_types_default.a.any, + + /** A HTML id attribute, necessary for proper form accessibility. */ + id: prop_types_default.a.string, + + /** + * Provide a function child to manually handle the layout of the FormCheck's inner components. + * + * ```` + * <FormCheck> + * <FormCheck.Input isInvalid type={radio} /> + * <FormCheck.Label>Allow us to contact you?</FormCheck.Label> + * <Feedback type="invalid">Yo this is required</Feedback> + * </FormCheck> + * ``` + */ + children: prop_types_default.a.node, + inline: prop_types_default.a.bool, + disabled: prop_types_default.a.bool, + title: prop_types_default.a.string, + label: prop_types_default.a.node, + + /** Use Bootstrap's custom form elements to replace the browser defaults */ + custom: prop_types_default.a.bool, + + /** The type of checkable. */ + type: prop_types_default.a.oneOf(['radio', 'checkbox']).isRequired, + + /** Manually style the input as valid */ + isValid: prop_types_default.a.bool.isRequired, + + /** Manually style the input as invalid */ + isInvalid: prop_types_default.a.bool.isRequired, + + /** A message to display when the input is in a validation state */ + feedback: prop_types_default.a.node +}; +var FormCheck_defaultProps = { + type: 'checkbox', + inline: false, + disabled: false, + isValid: false, + isInvalid: false, + title: '' +}; +var FormCheck = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var id = _ref.id, + bsPrefix = _ref.bsPrefix, + inline = _ref.inline, + disabled = _ref.disabled, + isValid = _ref.isValid, + isInvalid = _ref.isInvalid, + feedback = _ref.feedback, + className = _ref.className, + style = _ref.style, + title = _ref.title, + type = _ref.type, + label = _ref.label, + children = _ref.children, + custom = _ref.custom, + props = _objectWithoutPropertiesLoose(_ref, ["id", "bsPrefix", "inline", "disabled", "isValid", "isInvalid", "feedback", "className", "style", "title", "type", "label", "children", "custom"]); + + bsPrefix = useBootstrapPrefix(bsPrefix, 'form-check'); + + var _useContext = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(src_FormContext), + controlId = _useContext.controlId; + + var innerFormContext = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useMemo"])(function () { + return { + controlId: id || controlId, + custom: custom + }; + }, [controlId, custom, id]); + var hasLabel = label != null && label !== false && !children; + var input = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_FormCheckInput, _extends({}, props, { + type: type, + ref: ref, + isValid: isValid, + isInvalid: isInvalid, + isStatic: !hasLabel, + disabled: disabled, + __source: { + fileName: FormCheck_jsxFileName, + lineNumber: 107 + }, + __self: this + })); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_FormContext.Provider, { + value: innerFormContext, + __source: { + fileName: FormCheck_jsxFileName, + lineNumber: 119 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", { + style: style, + className: classnames_default()(className, !custom && bsPrefix, custom && "custom-control custom-" + type, inline && (custom ? 'custom-control' : bsPrefix) + "-inline"), + __source: { + fileName: FormCheck_jsxFileName, + lineNumber: 120 + }, + __self: this + }, children || external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Fragment, { + __source: { + fileName: FormCheck_jsxFileName, + lineNumber: 130 + }, + __self: this + }, input, hasLabel && external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_FormCheckLabel, { + title: title, + __source: { + fileName: FormCheck_jsxFileName, + lineNumber: 133 + }, + __self: this + }, label), (isValid || isInvalid) && external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Feedback, { + type: isValid ? 'valid' : 'invalid', + __source: { + fileName: FormCheck_jsxFileName, + lineNumber: 136 + }, + __self: this + }, feedback)))); +}); +FormCheck.displayName = 'FormCheck'; +FormCheck.propTypes = FormCheck_propTypes; +FormCheck.defaultProps = FormCheck_defaultProps; +FormCheck.Input = src_FormCheckInput; +FormCheck.Label = src_FormCheckLabel; +/* harmony default export */ var src_FormCheck = (FormCheck); +// CONCATENATED MODULE: ./src/FormLabel.js + + +var FormLabel_jsxFileName = "/Users/jason/src/react-bootstrap/src/FormLabel.js"; + + + + + + + +var FormLabel_propTypes = { + /** + * @default 'form-label' + */ + bsPrefix: prop_types_default.a.string, + + /** + * Uses `controlId` from `<FormGroup>` if not explicitly specified. + */ + htmlFor: prop_types_default.a.string, + + /** + * Renders the FormLabel as a `<Col>` component (accepting all the same props), + * as well as adding additional styling for horizontal forms. + */ + column: prop_types_default.a.bool, + + /** + * The FormLabel `ref` will be forwarded to the underlying element. + * Unless the FormLabel is rendered `as` a composite component, + * it will be a DOM node, when resolved. + * + * @type {ReactRef} + * @alias ref + */ + _ref: prop_types_default.a.any, + + /** + * Hides the label visually while still allowing it to be + * read by assistive technologies. + */ + srOnly: prop_types_default.a.bool +}; +var FormLabel_defaultProps = { + column: false, + srOnly: false +}; +var FormLabel = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + column = _ref.column, + srOnly = _ref.srOnly, + className = _ref.className, + htmlFor = _ref.htmlFor, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "column", "srOnly", "className", "htmlFor"]); + + var _useContext = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(src_FormContext), + controlId = _useContext.controlId; + + bsPrefix = useBootstrapPrefix(bsPrefix, 'form-label'); + var classes = classnames_default()(className, bsPrefix, srOnly && 'sr-only', column && 'col-form-label'); + if (column) return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Col, _extends({}, props, { + className: classes, + as: "label", + __source: { + fileName: FormLabel_jsxFileName, + lineNumber: 62 + }, + __self: this + })); + false ? undefined : void 0; + return (// eslint-disable-next-line jsx-a11y/label-has-for, jsx-a11y/label-has-associated-control + external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("label", _extends({}, props, { + htmlFor: htmlFor || controlId, + ref: ref, + className: classes, + __source: { + fileName: FormLabel_jsxFileName, + lineNumber: 70 + }, + __self: this + })) + ); +}); +FormLabel.displayName = 'FormLabel'; +FormLabel.propTypes = FormLabel_propTypes; +FormLabel.defaultProps = FormLabel_defaultProps; +/* harmony default export */ var src_FormLabel = (FormLabel); +// CONCATENATED MODULE: ./src/FormText.js + + +var FormText_jsxFileName = "/Users/jason/src/react-bootstrap/src/FormText.js"; + + + + +var FormText_propTypes = { + /** @default 'form-text' */ + bsPrefix: prop_types_default.a.string, + + /** + * The FormText `ref` will be forwarded to the underlying element. + * Unless the FormText is rendered `as` a composite component, + * it will be a DOM node, when resolved. + * + * @type {ReactRef} + * @alias ref + */ + _ref: prop_types_default.a.any, + + /** + * A convenience prop for add the `text-muted` class, + * since it's so commonly used here. + */ + muted: prop_types_default.a.bool, + as: prop_types_default.a.elementType +}; +var FormText_defaultProps = { + as: 'small' +}; +var FormText = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + className = _ref.className, + Component = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "className", "as"]); + + bsPrefix = useBootstrapPrefix(bsPrefix, 'form-text'); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + ref: ref, + className: classnames_default()(className, bsPrefix), + __source: { + fileName: FormText_jsxFileName, + lineNumber: 38 + }, + __self: this + })); +}); +FormText.displayName = 'FormText'; +FormText.propTypes = FormText_propTypes; +FormText.defaultProps = FormText_defaultProps; +/* harmony default export */ var src_FormText = (FormText); +// CONCATENATED MODULE: ./src/Form.js + + +var Form_jsxFileName = "/Users/jason/src/react-bootstrap/src/Form.js"; + + + + + + + + + + +var Form_propTypes = { + /** + * @default {'form'} + */ + bsPrefix: prop_types_default.a.string, + + /** + * The Form `ref` will be forwarded to the underlying element, + * which means, unless it's rendered `as` a composite component, + * it will be a DOM node, when resolved. + * + * @type {ReactRef} + * @alias ref + */ + _ref: prop_types_default.a.any, + + /** + * Display the series of labels, form controls, + * and buttons on a single horizontal row + */ + inline: prop_types_default.a.bool, + + /** + * Mark a form as having been validated. Setting it to `true` will + * toggle any validation styles on the forms elements. + */ + validated: prop_types_default.a.bool, + as: prop_types_default.a.elementType +}; +var Form_defaultProps = { + inline: false, + as: 'form' +}; +var Form = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + inline = _ref.inline, + className = _ref.className, + validated = _ref.validated, + Component = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "inline", "className", "validated", "as"]); + + bsPrefix = useBootstrapPrefix(bsPrefix, 'form'); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + ref: ref, + className: classnames_default()(className, validated && 'was-validated', inline && bsPrefix + "-inline"), + __source: { + fileName: Form_jsxFileName, + lineNumber: 55 + }, + __self: this + })); +}); +Form.displayName = 'Form'; +Form.propTypes = Form_propTypes; +Form.defaultProps = Form_defaultProps; +Form.Row = createWithBsPrefix('form-row'); +Form.Group = src_FormGroup; +Form.Control = src_FormControl; +Form.Check = src_FormCheck; +Form.Label = src_FormLabel; +Form.Text = src_FormText; +/* harmony default export */ var src_Form = (Form); +// CONCATENATED MODULE: ./src/Container.js + + +var Container_jsxFileName = "/Users/jason/src/react-bootstrap/src/Container.js"; + + + + +var Container_propTypes = { + /** + * @default 'container' + */ + bsPrefix: prop_types_default.a.string, + + /** + * Allow the Container to fill all of it's availble horizontal space. + */ + fluid: prop_types_default.a.bool, + + /** + * You can use a custom element for this component + */ + as: prop_types_default.a.elementType +}; +var Container_defaultProps = { + as: 'div', + fluid: false +}; +var Container = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + fluid = _ref.fluid, + Component = _ref.as, + className = _ref.className, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "fluid", "as", "className"]); + + var prefix = useBootstrapPrefix(bsPrefix, 'container'); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({ + ref: ref + }, props, { + className: classnames_default()(className, fluid ? prefix + "-fluid" : prefix), + __source: { + fileName: Container_jsxFileName, + lineNumber: 32 + }, + __self: this + })); +}); +Container.displayName = 'Container'; +Container.propTypes = Container_propTypes; +Container.defaultProps = Container_defaultProps; +/* harmony default export */ var src_Container = (Container); +// CONCATENATED MODULE: ./src/Image.js + + + +var Image_jsxFileName = "/Users/jason/src/react-bootstrap/src/Image.js"; + + + + + +var Image_Image = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Image, _React$Component); + + function Image() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Image.prototype; + + _proto.render = function render() { + var _this$props = this.props, + bsPrefix = _this$props.bsPrefix, + className = _this$props.className, + fluid = _this$props.fluid, + rounded = _this$props.rounded, + roundedCircle = _this$props.roundedCircle, + thumbnail = _this$props.thumbnail, + props = _objectWithoutPropertiesLoose(_this$props, ["bsPrefix", "className", "fluid", "rounded", "roundedCircle", "thumbnail"]); + + var classes = classnames_default()(fluid && bsPrefix + "-fluid", rounded && "rounded", roundedCircle && "rounded-circle", thumbnail && bsPrefix + "-thumbnail"); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("img", _extends({}, props, { + className: classnames_default()(className, classes), + __source: { + fileName: Image_jsxFileName, + lineNumber: 60 + }, + __self: this + })); + }; + + return Image; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +Image_Image.propTypes = { + /** + * @default 'img' + */ + bsPrefix: prop_types_default.a.string, + + /** + * Sets image as fluid image. + */ + fluid: prop_types_default.a.bool, + + /** + * Sets image shape as rounded. + */ + rounded: prop_types_default.a.bool, + + /** + * Sets image shape as circle. + */ + roundedCircle: prop_types_default.a.bool, + + /** + * Sets image shape as thumbnail. + */ + thumbnail: prop_types_default.a.bool +}; +Image_Image.defaultProps = { + fluid: false, + rounded: false, + roundedCircle: false, + thumbnail: false +}; +/* harmony default export */ var src_Image = (createBootstrapComponent(Image_Image, 'img')); +// CONCATENATED MODULE: ./src/FigureImage.js + + +var FigureImage_jsxFileName = "/Users/jason/src/react-bootstrap/src/FigureImage.js"; + + + + +var FigureImage_propTypes = { + /** + * @default 'img' + */ + bsPrefix: prop_types_default.a.string, + + /** + * Sets image as fluid image. + */ + fluid: prop_types_default.a.bool, + + /** + * Sets image shape as rounded. + */ + rounded: prop_types_default.a.bool, + + /** + * Sets image shape as circle. + */ + roundedCircle: prop_types_default.a.bool, + + /** + * Sets image shape as thumbnail. + */ + thumbnail: prop_types_default.a.bool +}; +var FigureImage_defaultProps = { + fluid: true +}; +var FigureImage = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var className = _ref.className, + props = _objectWithoutPropertiesLoose(_ref, ["className"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Image, _extends({ + ref: ref + }, props, { + className: classnames_default()(className, 'figure-img'), + __source: { + fileName: FigureImage_jsxFileName, + lineNumber: 37 + }, + __self: this + })); +}); +FigureImage.displayName = 'FigureImage'; +FigureImage.propTypes = FigureImage_propTypes; +FigureImage.defaultProps = FigureImage_defaultProps; +/* harmony default export */ var src_FigureImage = (FigureImage); +// CONCATENATED MODULE: ./src/FigureCaption.js + +var FigureCaption = createWithBsPrefix('figure-caption', { + Component: 'figcaption' +}); +/* harmony default export */ var src_FigureCaption = (FigureCaption); +// CONCATENATED MODULE: ./src/Figure.js + + + +var Figure = createWithBsPrefix('figure', { + Component: 'figure' +}); +Figure.Image = src_FigureImage; +Figure.Caption = src_FigureCaption; +/* harmony default export */ var src_Figure = (Figure); +// CONCATENATED MODULE: ./src/InputGroup.js + + + +var InputGroup_jsxFileName = "/Users/jason/src/react-bootstrap/src/InputGroup.js"; + + + + + +/** + * + * @property {InputGroupAppend} Append + * @property {InputGroupPrepend} Prepend + * @property {InputGroupText} Text + * @property {InputGroupRadio} Radio + * @property {InputGroupCheckbox} Checkbox + */ + +var InputGroup_InputGroup = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(InputGroup, _React$Component); + + function InputGroup() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = InputGroup.prototype; + + _proto.render = function render() { + var _this$props = this.props, + bsPrefix = _this$props.bsPrefix, + size = _this$props.size, + className = _this$props.className, + Component = _this$props.as, + props = _objectWithoutPropertiesLoose(_this$props, ["bsPrefix", "size", "className", "as"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + className: classnames_default()(className, bsPrefix, size && bsPrefix + "-" + size), + __source: { + fileName: InputGroup_jsxFileName, + lineNumber: 40 + }, + __self: this + })); + }; + + return InputGroup; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +InputGroup_InputGroup.propTypes = { + /** @default 'input-group' */ + bsPrefix: prop_types_default.a.string.isRequired, + + /** + * Control the size of buttons and form elements from the top-level . + * + * @type {('sm'|'lg')} + */ + size: prop_types_default.a.string, + as: prop_types_default.a.elementType +}; +InputGroup_InputGroup.defaultProps = { + as: 'div' +}; +var InputGroupAppend = createWithBsPrefix('input-group-append'); +var InputGroupPrepend = createWithBsPrefix('input-group-prepend'); +var InputGroupText = createWithBsPrefix('input-group-text', { + Component: 'span' +}); + +var InputGroup_InputGroupCheckbox = function InputGroupCheckbox(props) { + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(InputGroupText, { + __source: { + fileName: InputGroup_jsxFileName, + lineNumber: 61 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("input", _extends({ + type: "checkbox" + }, props, { + __source: { + fileName: InputGroup_jsxFileName, + lineNumber: 62 + }, + __self: this + }))); +}; + +var InputGroup_InputGroupRadio = function InputGroupRadio(props) { + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(InputGroupText, { + __source: { + fileName: InputGroup_jsxFileName, + lineNumber: 67 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("input", _extends({ + type: "radio" + }, props, { + __source: { + fileName: InputGroup_jsxFileName, + lineNumber: 68 + }, + __self: this + }))); +}; + +var DecoratedInputGroup = createBootstrapComponent(InputGroup_InputGroup, 'input-group'); +DecoratedInputGroup.Text = InputGroupText; +DecoratedInputGroup.Radio = InputGroup_InputGroupRadio; +DecoratedInputGroup.Checkbox = InputGroup_InputGroupCheckbox; +DecoratedInputGroup.Append = InputGroupAppend; +DecoratedInputGroup.Prepend = InputGroupPrepend; +/* harmony default export */ var src_InputGroup = (DecoratedInputGroup); +// CONCATENATED MODULE: ./src/Jumbotron.js + + + +var Jumbotron_jsxFileName = "/Users/jason/src/react-bootstrap/src/Jumbotron.js"; + + + + +var Jumbotron_propTypes = { + as: prop_types_default.a.elementType, + + /** Make the jumbotron full width, and without rounded corners */ + fluid: prop_types_default.a.bool, + + /** @default 'jumbotron' */ + bsPrefix: prop_types_default.a.string +}; +var Jumbotron_defaultProps = { + as: 'div', + fluid: false +}; + +var Jumbotron_Jumbotron = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Jumbotron, _React$Component); + + function Jumbotron() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Jumbotron.prototype; + + _proto.render = function render() { + var _classes; + + var _this$props = this.props, + Component = _this$props.as, + className = _this$props.className, + fluid = _this$props.fluid, + bsPrefix = _this$props.bsPrefix, + props = _objectWithoutPropertiesLoose(_this$props, ["as", "className", "fluid", "bsPrefix"]); + + var classes = (_classes = {}, _classes[bsPrefix] = true, _classes[bsPrefix + "-fluid"] = fluid, _classes); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + className: classnames_default()(className, classes), + __source: { + fileName: Jumbotron_jsxFileName, + lineNumber: 27 + }, + __self: this + })); + }; + + return Jumbotron; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +Jumbotron_Jumbotron.propTypes = Jumbotron_propTypes; +Jumbotron_Jumbotron.defaultProps = Jumbotron_defaultProps; +/* harmony default export */ var src_Jumbotron = (createBootstrapComponent(Jumbotron_Jumbotron, 'jumbotron')); +// EXTERNAL MODULE: ./node_modules/dom-helpers/query/querySelectorAll.js +var querySelectorAll = __webpack_require__(9); +var querySelectorAll_default = /*#__PURE__*/__webpack_require__.n(querySelectorAll); + +// EXTERNAL MODULE: ./node_modules/@restart/context/mapContextToProps.js +var mapContextToProps = __webpack_require__(55); +var mapContextToProps_default = /*#__PURE__*/__webpack_require__.n(mapContextToProps); + +// CONCATENATED MODULE: ./src/TabContext.js + +var TabContext = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createContext(null); +/* harmony default export */ var src_TabContext = (TabContext); +// CONCATENATED MODULE: ./src/AbstractNav.js + + + +var AbstractNav_jsxFileName = "/Users/jason/src/react-bootstrap/src/AbstractNav.js"; + + + + + + + + +var noop = function noop() {}; + +var AbstractNav_AbstractNav = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(AbstractNav, _React$Component); + + function AbstractNav() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + + _this.handleSelect = function (key, event) { + var _this$props = _this.props, + onSelect = _this$props.onSelect, + parentOnSelect = _this$props.parentOnSelect; + if (key == null) return; + if (onSelect) onSelect(key, event); + if (parentOnSelect) parentOnSelect(key, event); + }; + + _this.handleKeyDown = function (event) { + var onKeyDown = _this.props.onKeyDown; + if (onKeyDown) onKeyDown(event); + var nextActiveChild; + + switch (event.key) { + case 'ArrowLeft': + case 'ArrowUp': + nextActiveChild = _this.getNextActiveChild(-1); + break; + + case 'ArrowRight': + case 'ArrowDown': + nextActiveChild = _this.getNextActiveChild(1); + break; + + default: + return; + } + + if (!nextActiveChild) return; + event.preventDefault(); + + _this.handleSelect(nextActiveChild.dataset.rbEventKey, event); + + _this._needsRefocus = true; + }; + + _this.attachRef = function (ref) { + _this.listNode = ref; + }; + + _this.state = { + navContext: null + }; + return _this; + } + + AbstractNav.getDerivedStateFromProps = function getDerivedStateFromProps(_ref) { + var activeKey = _ref.activeKey, + getControlledId = _ref.getControlledId, + getControllerId = _ref.getControllerId, + role = _ref.role; + return { + navContext: { + role: role, + // used by NavLink to determine it's role + activeKey: makeEventKey(activeKey), + getControlledId: getControlledId || noop, + getControllerId: getControllerId || noop + } + }; + }; + + var _proto = AbstractNav.prototype; + + _proto.componentDidUpdate = function componentDidUpdate() { + if (!this._needsRefocus || !this.listNode) return; + var activeChild = this.listNode.querySelector('[data-rb-event-key].active'); + if (activeChild) activeChild.focus(); + }; + + _proto.getNextActiveChild = function getNextActiveChild(offset) { + if (!this.listNode) return null; + var items = querySelectorAll_default()(this.listNode, '[data-rb-event-key]:not(.disabled)'); + var activeChild = this.listNode.querySelector('.active'); + var index = items.indexOf(activeChild); + if (index === -1) return null; + var nextIndex = index + offset; + if (nextIndex >= items.length) nextIndex = 0; + if (nextIndex < 0) nextIndex = items.length - 1; + return items[nextIndex]; + }; + + _proto.render = function render() { + var _this$props2 = this.props, + Component = _this$props2.as, + _ = _this$props2.onSelect, + _0 = _this$props2.parentOnSelect, + _1 = _this$props2.getControlledId, + _2 = _this$props2.getControllerId, + _3 = _this$props2.activeKey, + props = _objectWithoutPropertiesLoose(_this$props2, ["as", "onSelect", "parentOnSelect", "getControlledId", "getControllerId", "activeKey"]); + + if (props.role === 'tablist') { + props.onKeyDown = this.handleKeyDown; + } + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_SelectableContext.Provider, { + value: this.handleSelect, + __source: { + fileName: AbstractNav_jsxFileName, + lineNumber: 129 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_NavContext.Provider, { + value: this.state.navContext, + __source: { + fileName: AbstractNav_jsxFileName, + lineNumber: 130 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + onKeyDown: this.handleKeyDown, + ref: this.attachRef, + __source: { + fileName: AbstractNav_jsxFileName, + lineNumber: 131 + }, + __self: this + })))); + }; + + return AbstractNav; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +AbstractNav_AbstractNav.propTypes = { + onSelect: prop_types_default.a.func.isRequired, + as: prop_types_default.a.elementType, + + /** @private */ + onKeyDown: prop_types_default.a.func, + + /** @private */ + parentOnSelect: prop_types_default.a.func, + + /** @private */ + getControlledId: prop_types_default.a.func, + + /** @private */ + getControllerId: prop_types_default.a.func, + + /** @private */ + activeKey: prop_types_default.a.any +}; +AbstractNav_AbstractNav.defaultProps = { + as: 'ul' +}; +/* harmony default export */ var src_AbstractNav = (mapContextToProps_default()([src_SelectableContext, src_TabContext], function (parentOnSelect, tabContext, _ref2) { + var role = _ref2.role; + if (!tabContext) return { + parentOnSelect: parentOnSelect + }; + var activeKey = tabContext.activeKey, + getControllerId = tabContext.getControllerId, + getControlledId = tabContext.getControlledId; + return { + activeKey: activeKey, + parentOnSelect: parentOnSelect, + role: role || 'tablist', + // pass these two through to avoid having to listen to + // both Tab and Nav contexts in NavLink + getControllerId: getControllerId, + getControlledId: getControlledId + }; +}, AbstractNav_AbstractNav)); +// CONCATENATED MODULE: ./src/AbstractNavItem.js + + +var AbstractNavItem_jsxFileName = "/Users/jason/src/react-bootstrap/src/AbstractNavItem.js"; + + + + + + +var AbstractNavItem_propTypes = { + active: prop_types_default.a.bool, + role: prop_types_default.a.string, + href: prop_types_default.a.string, + tabIndex: prop_types_default.a.string, + eventKey: prop_types_default.a.any, + onclick: prop_types_default.a.func, + as: prop_types_default.a.any, + onClick: prop_types_default.a.func, + onSelect: prop_types_default.a.func +}; +var AbstractNavItem_defaultProps = { + disabled: false +}; +var AbstractNavItem = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var active = _ref.active, + className = _ref.className, + tabIndex = _ref.tabIndex, + eventKey = _ref.eventKey, + onSelect = _ref.onSelect, + onClick = _ref.onClick, + Component = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["active", "className", "tabIndex", "eventKey", "onSelect", "onClick", "as"]); + + var navKey = makeEventKey(eventKey, props.href); + var parentOnSelect = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(src_SelectableContext); + var navContext = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(src_NavContext); + var isActive = active; + + if (navContext) { + if (!props.role && navContext.role === 'tablist') props.role = 'tab'; + props['data-rb-event-key'] = navKey; + props.id = navContext.getControllerId(navKey); + props['aria-controls'] = navContext.getControlledId(navKey); + isActive = active == null && navKey != null ? navContext.activeKey === navKey : active; + } + + if (props.role === 'tab') { + props.tabIndex = isActive ? tabIndex : -1; + props['aria-selected'] = isActive; + } + + var handleOnclick = useEventCallback_default()(function (e) { + if (onClick) onClick(e); + if (navKey == null) return; + if (onSelect) onSelect(navKey, e); + if (parentOnSelect) parentOnSelect(navKey, e); + }); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + ref: ref, + onClick: handleOnclick, + className: classnames_default()(className, isActive && 'active'), + __source: { + fileName: AbstractNavItem_jsxFileName, + lineNumber: 72 + }, + __self: this + })); +}); +AbstractNavItem.propTypes = AbstractNavItem_propTypes; +AbstractNavItem.defaultProps = AbstractNavItem_defaultProps; +/* harmony default export */ var src_AbstractNavItem = (AbstractNavItem); +// CONCATENATED MODULE: ./src/ListGroupItem.js + + + +var ListGroupItem_jsxFileName = "/Users/jason/src/react-bootstrap/src/ListGroupItem.js"; + + + + + + + +var ListGroupItem_ListGroupItem = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(ListGroupItem, _React$Component); + + function ListGroupItem() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + + _this.handleClick = function (event) { + var _this$props = _this.props, + onClick = _this$props.onClick, + disabled = _this$props.disabled; + + if (disabled) { + event.preventDefault(); + event.stopPropagation(); + return; + } + + if (onClick) onClick(event); + }; + + return _this; + } + + var _proto = ListGroupItem.prototype; + + _proto.render = function render() { + var _this$props2 = this.props, + bsPrefix = _this$props2.bsPrefix, + active = _this$props2.active, + disabled = _this$props2.disabled, + className = _this$props2.className, + variant = _this$props2.variant, + action = _this$props2.action, + as = _this$props2.as, + eventKey = _this$props2.eventKey, + props = _objectWithoutPropertiesLoose(_this$props2, ["bsPrefix", "active", "disabled", "className", "variant", "action", "as", "eventKey"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_AbstractNavItem, _extends({}, props, { + eventKey: makeEventKey(eventKey, props.href) // eslint-disable-next-line + , + as: as || (action ? props.href ? 'a' : 'button' : 'div'), + onClick: this.handleClick, + className: classnames_default()(className, bsPrefix, active && 'active', disabled && 'disabled', variant && bsPrefix + "-" + variant, action && bsPrefix + "-action"), + __source: { + fileName: ListGroupItem_jsxFileName, + lineNumber: 80 + }, + __self: this + })); + }; + + return ListGroupItem; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +ListGroupItem_ListGroupItem.propTypes = { + /** + * @default 'list-group-item' + */ + bsPrefix: prop_types_default.a.string.isRequired, + + /** + * Sets contextual classes for list item + * @type {('primary'|'secondary'|'success'|'danger'|'warning'|'info'|'dark'|'light')} + */ + variant: prop_types_default.a.string, + + /** + * Marks a ListGroupItem as actionable, applying additional hover, active and disabled styles + * for links and buttons. + */ + action: prop_types_default.a.bool, + + /** + * Sets list item as active + */ + active: prop_types_default.a.bool, + + /** + * Sets list item state as disabled + */ + disabled: prop_types_default.a.bool, + eventKey: prop_types_default.a.string, + onClick: prop_types_default.a.func, + + /** + * You can use a custom element type for this component. For none `action` items, items render as `li`. + * For actions the default is an achor or button element depending on whether a `href` is provided. + * + * @default {'div' | 'a' | 'button'} + */ + as: prop_types_default.a.elementType +}; +ListGroupItem_ListGroupItem.defaultProps = { + variant: null, + active: false, + disabled: false +}; +/* harmony default export */ var src_ListGroupItem = (createBootstrapComponent(ListGroupItem_ListGroupItem, 'list-group-item')); +// CONCATENATED MODULE: ./src/ListGroup.js + + + +var ListGroup_jsxFileName = "/Users/jason/src/react-bootstrap/src/ListGroup.js"; + + + + + + + + +var ListGroup_ListGroup = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(ListGroup, _React$Component); + + function ListGroup() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = ListGroup.prototype; + + _proto.render = function render() { + var _this$props = this.props, + className = _this$props.className, + bsPrefix = _this$props.bsPrefix, + variant = _this$props.variant, + props = _objectWithoutPropertiesLoose(_this$props, ["className", "bsPrefix", "variant"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_AbstractNav, _extends({}, props, { + className: classnames_default()(className, bsPrefix, variant && bsPrefix + "-" + variant), + __source: { + fileName: ListGroup_jsxFileName, + lineNumber: 40 + }, + __self: this + })); + }; + + return ListGroup; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +ListGroup_ListGroup.propTypes = { + /** + * @default 'list-group' + */ + bsPrefix: prop_types_default.a.string.isRequired, + + /** + * Adds a variant to the list-group + * + * @type {('flush')} + */ + variant: prop_types_default.a.oneOf(['flush', null]), + + /** + * You can use a custom element type for this component. + */ + as: prop_types_default.a.elementType +}; +ListGroup_ListGroup.defaultProps = { + as: 'div', + variant: null +}; +var DecoratedListGroup = uncontrollable_default()(createBootstrapComponent(ListGroup_ListGroup, 'list-group'), { + activeKey: 'onSelect' +}); +DecoratedListGroup.Item = src_ListGroupItem; +/* harmony default export */ var src_ListGroup = (DecoratedListGroup); +// CONCATENATED MODULE: ./src/Media.js + + +var Media_jsxFileName = "/Users/jason/src/react-bootstrap/src/Media.js"; + + + + + +var Media_propTypes = { + /** + * @default 'media' + */ + bsPrefix: prop_types_default.a.string, + as: prop_types_default.a.elementType +}; +var Media_defaultProps = { + as: 'div' +}; +var Media = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + className = _ref.className, + Component = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "className", "as"]); + + var prefix = useBootstrapPrefix(bsPrefix, 'media'); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + ref: ref, + className: classnames_default()(className, prefix), + __source: { + fileName: Media_jsxFileName, + lineNumber: 25 + }, + __self: this + })); +}); +Media.displayName = 'Media'; +Media.propTypes = Media_propTypes; +Media.defaultProps = Media_defaultProps; +Media.Body = createWithBsPrefix('media-body'); +/* harmony default export */ var src_Media = (Media); +// EXTERNAL MODULE: ./node_modules/dom-helpers/events/index.js +var events = __webpack_require__(25); +var events_default = /*#__PURE__*/__webpack_require__.n(events); + +// EXTERNAL MODULE: ./node_modules/dom-helpers/ownerDocument.js +var ownerDocument = __webpack_require__(16); +var ownerDocument_default = /*#__PURE__*/__webpack_require__.n(ownerDocument); + +// EXTERNAL MODULE: ./node_modules/dom-helpers/util/inDOM.js +var inDOM = __webpack_require__(10); +var inDOM_default = /*#__PURE__*/__webpack_require__.n(inDOM); + +// EXTERNAL MODULE: ./node_modules/dom-helpers/util/scrollbarSize.js +var scrollbarSize = __webpack_require__(18); +var scrollbarSize_default = /*#__PURE__*/__webpack_require__.n(scrollbarSize); + +// EXTERNAL MODULE: ./node_modules/react-overlays/Modal.js +var react_overlays_Modal = __webpack_require__(56); +var Modal_default = /*#__PURE__*/__webpack_require__.n(react_overlays_Modal); + +// CONCATENATED MODULE: ./src/ModalBody.js + +/* harmony default export */ var ModalBody = (createWithBsPrefix('modal-body')); +// CONCATENATED MODULE: ./src/ModalDialog.js + + +var ModalDialog_jsxFileName = "/Users/jason/src/react-bootstrap/src/ModalDialog.js"; + + + + +var ModalDialog_propTypes = { + /** @default 'modal' */ + bsPrefix: prop_types_default.a.string, + + /** + * Specifies a large or small modal. + * + * @type ('sm'|'lg') + */ + size: prop_types_default.a.string, + + /** + * Specify whether the Component should be vertically centered + */ + centered: prop_types_default.a.bool, + + /** + * Allows scrolling the `<Modal.Body>` instead of the entire Modal when overflowing. + */ + scrollable: prop_types_default.a.bool +}; +var ModalDialog = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + className = _ref.className, + centered = _ref.centered, + size = _ref.size, + children = _ref.children, + scrollable = _ref.scrollable, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "className", "centered", "size", "children", "scrollable"]); + + bsPrefix = useBootstrapPrefix(bsPrefix, 'modal'); + var dialogClass = bsPrefix + "-dialog"; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", _extends({}, props, { + ref: ref, + className: classnames_default()(dialogClass, className, size && bsPrefix + "-" + size, centered && dialogClass + "-centered", scrollable && dialogClass + "-scrollable"), + __source: { + fileName: ModalDialog_jsxFileName, + lineNumber: 38 + }, + __self: this + }), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", { + className: classnames_default()(bsPrefix + "-content"), + __source: { + fileName: ModalDialog_jsxFileName, + lineNumber: 49 + }, + __self: this + }, children)); +}); +ModalDialog.displayName = 'ModalDialog'; +ModalDialog.propTypes = ModalDialog_propTypes; +/* harmony default export */ var src_ModalDialog = (ModalDialog); +// CONCATENATED MODULE: ./src/ModalFooter.js + +/* harmony default export */ var ModalFooter = (createWithBsPrefix('modal-footer')); +// CONCATENATED MODULE: ./src/ModalContext.js + +var ModalContext = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createContext({ + onHide: function onHide() {} +}); +/* harmony default export */ var src_ModalContext = (ModalContext); +// CONCATENATED MODULE: ./src/ModalHeader.js + + +var ModalHeader_jsxFileName = "/Users/jason/src/react-bootstrap/src/ModalHeader.js"; + + + + + + + +var ModalHeader_propTypes = { + bsPrefix: prop_types_default.a.string, + + /** + * Provides an accessible label for the close + * button. It is used for Assistive Technology when the label text is not + * readable. + */ + closeLabel: prop_types_default.a.string, + + /** + * Specify whether the Component should contain a close button + */ + closeButton: prop_types_default.a.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: prop_types_default.a.func +}; +var ModalHeader_defaultProps = { + closeLabel: 'Close', + closeButton: false +}; +var ModalHeader = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + closeLabel = _ref.closeLabel, + closeButton = _ref.closeButton, + onHide = _ref.onHide, + className = _ref.className, + children = _ref.children, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "closeLabel", "closeButton", "onHide", "className", "children"]); + + bsPrefix = useBootstrapPrefix(bsPrefix, 'modal-header'); + var context = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(src_ModalContext); + var handleClick = useEventCallback_default()(function () { + if (context) context.onHide(); + if (onHide) onHide(); + }); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", _extends({ + ref: ref + }, props, { + className: classnames_default()(className, bsPrefix), + __source: { + fileName: ModalHeader_jsxFileName, + lineNumber: 61 + }, + __self: this + }), children, closeButton && external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_CloseButton, { + label: closeLabel, + onClick: handleClick, + __source: { + fileName: ModalHeader_jsxFileName, + lineNumber: 65 + }, + __self: this + })); +}); +ModalHeader.displayName = 'ModalHeader'; +ModalHeader.propTypes = ModalHeader_propTypes; +ModalHeader.defaultProps = ModalHeader_defaultProps; +/* harmony default export */ var src_ModalHeader = (ModalHeader); +// CONCATENATED MODULE: ./src/ModalTitle.js + + +var ModalTitle_DivStyledAsH4 = divWithClassName('h4'); +/* harmony default export */ var ModalTitle = (createWithBsPrefix('modal-title', { + Component: ModalTitle_DivStyledAsH4 +})); +// EXTERNAL MODULE: ./node_modules/react-overlays/ModalManager.js +var ModalManager = __webpack_require__(37); +var ModalManager_default = /*#__PURE__*/__webpack_require__.n(ModalManager); + +// CONCATENATED MODULE: ./src/utils/BootstrapModalManager.js + + + + + +var Selector = { + FIXED_CONTENT: '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top', + STICKY_CONTENT: '.sticky-top', + NAVBAR_TOGGLER: '.navbar-toggler' +}; + +var BootstrapModalManager_BootstrapModalManager = +/*#__PURE__*/ +function (_ModalManager) { + _inheritsLoose(BootstrapModalManager, _ModalManager); + + function BootstrapModalManager() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _ModalManager.call.apply(_ModalManager, [this].concat(args)) || this; + + _this.adjustAndStore = function (prop, element, adjust) { + var actual = element.style[prop]; + element.dataset[prop] = actual; + style_default()(element, prop, parseFloat(style_default()(element, prop)) + adjust + "px"); + }; + + _this.restore = function (prop, element) { + var value = element.dataset[prop]; + + if (value !== undefined) { + delete element.dataset[prop]; + style_default()(element, prop, value); + } + }; + + return _this; + } + + var _proto = BootstrapModalManager.prototype; + + _proto.setContainerStyle = function setContainerStyle(containerState, container) { + var _this2 = this; + + _ModalManager.prototype.setContainerStyle.call(this, containerState, container); + + if (!containerState.overflowing) return; + var size = scrollbarSize_default()(); + querySelectorAll_default()(container, Selector.FIXED_CONTENT).forEach(function (el) { + return _this2.adjustAndStore('paddingRight', el, size); + }); + querySelectorAll_default()(container, Selector.STICKY_CONTENT).forEach(function (el) { + return _this2.adjustAndStore('margingRight', el, -size); + }); + querySelectorAll_default()(container, Selector.NAVBAR_TOGGLER).forEach(function (el) { + return _this2.adjustAndStore('margingRight', el, size); + }); + }; + + _proto.removeContainerStyle = function removeContainerStyle(containerState, container) { + var _this3 = this; + + _ModalManager.prototype.removeContainerStyle.call(this, containerState, container); + + querySelectorAll_default()(container, Selector.FIXED_CONTENT).forEach(function (el) { + return _this3.restore('paddingRight', el); + }); + querySelectorAll_default()(container, Selector.STICKY_CONTENT).forEach(function (el) { + return _this3.restore('margingRight', el); + }); + querySelectorAll_default()(container, Selector.NAVBAR_TOGGLER).forEach(function (el) { + return _this3.restore('margingRight', el); + }); + }; + + return BootstrapModalManager; +}(ModalManager_default.a); + + +// CONCATENATED MODULE: ./src/Modal.js + + + +var Modal_jsxFileName = "/Users/jason/src/react-bootstrap/src/Modal.js"; + + + + + + + + + + + + + + + + + +var Modal_propTypes = { + /** + * @default 'modal' + */ + bsPrefix: prop_types_default.a.string, + + /** + * Render a large or small modal. + * + * @type ('sm'|'lg') + */ + size: prop_types_default.a.string, + + /** + * vertically center the Dialog in the window + */ + centered: prop_types_default.a.bool, + + /** + * Include a backdrop component. Specify 'static' for a backdrop that doesn't + * trigger an "onHide" when clicked. + */ + backdrop: prop_types_default.a.oneOf(['static', true, false]), + + /** + * Add an optional extra class name to .modal-backdrop + * It could end up looking like class="modal-backdrop foo-modal-backdrop in". + */ + backdropClassName: prop_types_default.a.string, + + /** + * Close the modal when escape key is pressed + */ + keyboard: prop_types_default.a.bool, + + /** + * Allows scrolling the `<Modal.Body>` instead of the entire Modal when overflowing. + */ + scrollable: prop_types_default.a.bool, + + /** + * Open and close the Modal with a slide and fade animation. + */ + animation: prop_types_default.a.bool, + + /** + * A css class to apply to the Modal dialog DOM node. + */ + dialogClassName: prop_types_default.a.string, + + /** + * 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. + */ + dialogAs: prop_types_default.a.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: prop_types_default.a.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: prop_types_default.a.bool, + + /** + * When `true` The modal will restore focus to previously focused element once + * modal is hidden + */ + restoreFocus: prop_types_default.a.bool, + + /** + * When `true` The modal will show itself. + */ + show: prop_types_default.a.bool, + + /** + * A callback fired when the Modal is opening. + */ + onShow: prop_types_default.a.func, + + /** + * A callback fired when the header closeButton or non-static backdrop is + * clicked. Required if either are specified. + */ + onHide: prop_types_default.a.func, + + /** + * A callback fired when the escape key, if specified in `keyboard`, is pressed. + */ + onEscapeKeyDown: prop_types_default.a.func, + + /** + * Callback fired before the Modal transitions in + */ + onEnter: prop_types_default.a.func, + + /** + * Callback fired as the Modal begins to transition in + */ + onEntering: prop_types_default.a.func, + + /** + * Callback fired after the Modal finishes transitioning in + */ + onEntered: prop_types_default.a.func, + + /** + * Callback fired right before the Modal transitions out + */ + onExit: prop_types_default.a.func, + + /** + * Callback fired as the Modal begins to transition out + */ + onExiting: prop_types_default.a.func, + + /** + * Callback fired after the Modal finishes transitioning out + */ + onExited: prop_types_default.a.func, + + /** + * A ModalManager instance used to track and manage the state of open + * Modals. Useful when customizing how modals interact within a container + */ + manager: prop_types_default.a.object.isRequired, + + /** + * @private + */ + container: prop_types_default.a.any +}; +var Modal_defaultProps = { + show: false, + backdrop: true, + keyboard: true, + autoFocus: true, + enforceFocus: true, + restoreFocus: true, + animation: true, + dialogAs: src_ModalDialog, + manager: new BootstrapModalManager_BootstrapModalManager() +}; +/* eslint-disable no-use-before-define, react/no-multi-comp */ + +function DialogTransition(props) { + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Fade, _extends({}, props, { + __source: { + fileName: Modal_jsxFileName, + lineNumber: 176 + }, + __self: this + })); +} + +function BackdropTransition(props) { + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Fade, _extends({}, props, { + __source: { + fileName: Modal_jsxFileName, + lineNumber: 180 + }, + __self: this + })); +} +/* eslint-enable no-use-before-define */ + + +var Modal_Modal = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Modal, _React$Component); + + function Modal(_props, context) { + var _this; + + _this = _React$Component.call(this, _props, context) || this; + + _this.setModalRef = function (ref) { + _this._modal = ref; + }; + + _this.handleDialogMouseDown = function () { + _this._waitingForMouseUp = true; + }; + + _this.handleMouseUp = function (e) { + if (_this._waitingForMouseUp && e.target === _this._modal.dialog) { + _this._ignoreBackdropClick = true; + } + + _this._waitingForMouseUp = false; + }; + + _this.handleClick = function (e) { + if (_this._ignoreBackdropClick || e.target !== e.currentTarget) { + _this._ignoreBackdropClick = false; + return; + } + + _this.props.onHide(); + }; + + _this.handleEnter = function (node) { + var _this$props; + + if (node) { + node.style.display = 'block'; + + _this.updateDialogStyle(node); + } + + for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + args[_key - 1] = arguments[_key]; + } + + if (_this.props.onEnter) (_this$props = _this.props).onEnter.apply(_this$props, [node].concat(args)); + }; + + _this.handleEntering = function (node) { + var _this$props2; + + for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + + if (_this.props.onEntering) (_this$props2 = _this.props).onEntering.apply(_this$props2, [node].concat(args)); // FIXME: This should work even when animation is disabled. + + events_default.a.on(window, 'resize', _this.handleWindowResize); + }; + + _this.handleExited = function (node) { + var _this$props3; + + if (node) node.style.display = ''; // RHL removes it sometimes + + for (var _len3 = arguments.length, args = new Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { + args[_key3 - 1] = arguments[_key3]; + } + + if (_this.props.onExited) (_this$props3 = _this.props).onExited.apply(_this$props3, args); // FIXME: This should work even when animation is disabled. + + events_default.a.off(window, 'resize', _this.handleWindowResize); + }; + + _this.handleWindowResize = function () { + _this.updateDialogStyle(_this._modal.dialog); + }; + + _this.renderBackdrop = function (props) { + var _this$props4 = _this.props, + bsPrefix = _this$props4.bsPrefix, + backdropClassName = _this$props4.backdropClassName; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", _extends({}, props, { + className: classnames_default()(bsPrefix + "-backdrop", backdropClassName), + __source: { + fileName: Modal_jsxFileName, + lineNumber: 282 + }, + __self: this + })); + }; + + _this.state = { + style: {} + }; + _this.modalContext = { + onHide: function onHide() { + return _this.props.onHide(); + } + }; + return _this; + } + + var _proto = Modal.prototype; + + _proto.componentWillUnmount = function componentWillUnmount() { + // Clean up the listener if we need to. + events_default.a.off(window, 'resize', this.handleWindowResize); + }; + + _proto.updateDialogStyle = function updateDialogStyle(node) { + if (!inDOM_default.a) return; + var manager = this.props.manager; + var containerIsOverflowing = manager.isContainerOverflowing(this._modal); + var modalIsOverflowing = node.scrollHeight > ownerDocument_default()(node).documentElement.clientHeight; + this.setState({ + style: { + paddingRight: containerIsOverflowing && !modalIsOverflowing ? scrollbarSize_default()() : undefined, + paddingLeft: !containerIsOverflowing && modalIsOverflowing ? scrollbarSize_default()() : undefined + } + }); + }; + + _proto.render = function render() { + var _this$props5 = this.props, + bsPrefix = _this$props5.bsPrefix, + className = _this$props5.className, + style = _this$props5.style, + dialogClassName = _this$props5.dialogClassName, + children = _this$props5.children, + Dialog = _this$props5.dialogAs, + show = _this$props5.show, + animation = _this$props5.animation, + backdrop = _this$props5.backdrop, + keyboard = _this$props5.keyboard, + manager = _this$props5.manager, + onEscapeKeyDown = _this$props5.onEscapeKeyDown, + onShow = _this$props5.onShow, + onHide = _this$props5.onHide, + container = _this$props5.container, + autoFocus = _this$props5.autoFocus, + enforceFocus = _this$props5.enforceFocus, + restoreFocus = _this$props5.restoreFocus, + onEntered = _this$props5.onEntered, + onExit = _this$props5.onExit, + onExiting = _this$props5.onExiting, + _ = _this$props5.onExited, + _1 = _this$props5.onEntering, + _6 = _this$props5.onEnter, + _4 = _this$props5.onEntering, + _2 = _this$props5.backdropClassName, + props = _objectWithoutPropertiesLoose(_this$props5, ["bsPrefix", "className", "style", "dialogClassName", "children", "dialogAs", "show", "animation", "backdrop", "keyboard", "manager", "onEscapeKeyDown", "onShow", "onHide", "container", "autoFocus", "enforceFocus", "restoreFocus", "onEntered", "onExit", "onExiting", "onExited", "onEntering", "onEnter", "onEntering", "backdropClassName"]); + + var clickHandler = backdrop === true ? this.handleClick : null; + + var baseModalStyle = _extends({}, style, this.state.style); // Sets `display` always block when `animation` is false + + + if (!animation) baseModalStyle.display = 'block'; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_ModalContext.Provider, { + value: this.modalContext, + __source: { + fileName: Modal_jsxFileName, + lineNumber: 332 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Modal_default.a, _extends({ + show: show, + backdrop: backdrop, + container: container, + keyboard: keyboard, + autoFocus: autoFocus, + enforceFocus: enforceFocus, + restoreFocus: restoreFocus, + onEscapeKeyDown: onEscapeKeyDown, + onShow: onShow, + onHide: onHide, + onEntered: onEntered, + onExit: onExit, + onExiting: onExiting, + manager: manager, + ref: this.setModalRef, + style: baseModalStyle, + className: classnames_default()(className, bsPrefix), + containerClassName: bsPrefix + "-open", + transition: animation ? DialogTransition : undefined, + backdropTransition: animation ? BackdropTransition : undefined, + renderBackdrop: this.renderBackdrop, + onClick: clickHandler, + onMouseUp: this.handleMouseUp, + onEnter: this.handleEnter, + onEntering: this.handleEntering, + onExited: this.handleExited + }, { + __source: { + fileName: Modal_jsxFileName, + lineNumber: 333 + }, + __self: this + }), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Dialog, _extends({}, props, { + onMouseDown: this.handleDialogMouseDown, + className: dialogClassName, + __source: { + fileName: Modal_jsxFileName, + lineNumber: 363 + }, + __self: this + }), children))); + }; + + return Modal; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +Modal_Modal.propTypes = Modal_propTypes; +Modal_Modal.defaultProps = Modal_defaultProps; +var DecoratedModal = createBootstrapComponent(Modal_Modal, 'modal'); +DecoratedModal.Body = ModalBody; +DecoratedModal.Header = src_ModalHeader; +DecoratedModal.Title = ModalTitle; +DecoratedModal.Footer = ModalFooter; +DecoratedModal.Dialog = src_ModalDialog; +DecoratedModal.TRANSITION_DURATION = 300; +DecoratedModal.BACKDROP_TRANSITION_DURATION = 150; +/* harmony default export */ var src_Modal = (DecoratedModal); +// EXTERNAL MODULE: ./node_modules/prop-types-extra/lib/all.js +var lib_all = __webpack_require__(34); +var all_default = /*#__PURE__*/__webpack_require__.n(lib_all); + +// CONCATENATED MODULE: ./src/NavItem.js + + +var NavItem_jsxFileName = "/Users/jason/src/react-bootstrap/src/NavItem.js"; + + + + +var NavItem_propTypes = { + /** + * @default 'nav-item' + */ + bsPrefix: prop_types_default.a.string, + + /** The ARIA role of the component */ + role: prop_types_default.a.string, + as: prop_types_default.a.elementType +}; +var NavItem_defaultProps = { + as: 'div' +}; +var NavItem = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + className = _ref.className, + children = _ref.children, + Component = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "className", "children", "as"]); + + bsPrefix = useBootstrapPrefix(bsPrefix, 'nav-item'); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + ref: ref, + className: classnames_default()(className, bsPrefix), + __source: { + fileName: NavItem_jsxFileName, + lineNumber: 27 + }, + __self: this + }), children); +}); +NavItem.displayName = 'NavItem'; +NavItem.propTypes = NavItem_propTypes; +NavItem.defaultProps = NavItem_defaultProps; +/* harmony default export */ var src_NavItem = (NavItem); +// CONCATENATED MODULE: ./src/NavLink.js + + +var NavLink_jsxFileName = "/Users/jason/src/react-bootstrap/src/NavLink.js"; + + + + + + +var NavLink_propTypes = { + /** + * @default 'nav-link' + */ + bsPrefix: prop_types_default.a.string, + + /** + * The active state of the NavItem item. + */ + active: prop_types_default.a.bool, + + /** + * The disabled state of the NavItem item. + */ + disabled: prop_types_default.a.bool, + + /** + * The ARIA role for the `NavLink`, In the context of a 'tablist' parent Nav, + * the role defaults to 'tab' + * */ + role: prop_types_default.a.string, + + /** The HTML href attribute for the `NavLink` */ + href: prop_types_default.a.string, + + /** A callback fired when the `NavLink` is selected. + * + * ```js + * function (eventKey: any, event: SyntheticEvent) {} + * ``` + */ + onSelect: prop_types_default.a.func, + + /** + * Uniquely idenifies the `NavItem` amoungst its siblings, + * used to determine and control the active state ofthe parent `Nav` + */ + eventKey: prop_types_default.a.any, + + /** @default 'a' */ + as: prop_types_default.a.elementType, + + /** @private */ + innerRef: prop_types_default.a.any +}; +var NavLink_defaultProps = { + disabled: false, + as: src_SafeAnchor +}; +var NavLink = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + disabled = _ref.disabled, + className = _ref.className, + href = _ref.href, + eventKey = _ref.eventKey, + onSelect = _ref.onSelect, + as = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "disabled", "className", "href", "eventKey", "onSelect", "as"]); + + bsPrefix = useBootstrapPrefix(bsPrefix, 'nav-link'); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_AbstractNavItem, _extends({}, props, { + href: href, + ref: ref, + eventKey: eventKey, + as: as, + disabled: disabled, + onSelect: onSelect, + className: classnames_default()(className, bsPrefix, disabled && 'disabled'), + __source: { + fileName: NavLink_jsxFileName, + lineNumber: 68 + }, + __self: this + })); +}); +NavLink.displayName = 'NavLink'; +NavLink.propTypes = NavLink_propTypes; +NavLink.defaultProps = NavLink_defaultProps; +/* harmony default export */ var src_NavLink = (NavLink); +// CONCATENATED MODULE: ./src/Nav.js + + +var Nav_jsxFileName = "/Users/jason/src/react-bootstrap/src/Nav.js"; + + + + + + + + + + + +var Nav_propTypes = { + /** + * @default 'nav' + */ + bsPrefix: prop_types_default.a.string, + + /** @private */ + navbarBsPrefix: prop_types_default.a.string, + + /** @private */ + cardHeaderBsPrefix: prop_types_default.a.string, + + /** + * The visual variant of the nav items. + * + * @type {('tabs'|'pills')} + */ + variant: prop_types_default.a.string, + + /** + * Marks the NavItem with a matching `eventKey` (or `href` if present) as active. + * + * @type {string} + */ + activeKey: prop_types_default.a.any, + + /** + * Have all `NavItem`s to proportionatly fill all available width. + */ + fill: prop_types_default.a.bool, + + /** + * Have all `NavItem`s to evenly fill all available width. + * + * @type {boolean} + */ + justify: all_default()(prop_types_default.a.bool, function (_ref) { + var justify = _ref.justify, + navbar = _ref.navbar; + return justify && navbar ? Error('justify navbar `Nav`s are not supported') : null; + }), + + /** + * A callback fired when a NavItem is selected. + * + * ```js + * function ( + * Any eventKey, + * SyntheticEvent event? + * ) + * ``` + */ + onSelect: prop_types_default.a.func, + + /** + * ARIA role for the Nav, in the context of a TabContainer, the default will + * be set to "tablist", but can be overridden by the Nav when set explicitly. + * + * When the role is "tablist", NavLink focus is managed according to + * the ARIA authoring practices for tabs: + * https://www.w3.org/TR/2013/WD-wai-aria-practices-20130307/#tabpanel + */ + role: prop_types_default.a.string, + + /** + * Apply styling an alignment for use in a Navbar. This prop will be set + * automatically when the Nav is used inside a Navbar. + */ + navbar: prop_types_default.a.bool, + as: prop_types_default.a.elementType, + + /** @private */ + onKeyDown: prop_types_default.a.func +}; +var Nav_defaultProps = { + justify: false, + fill: false, + as: 'div' +}; +var Nav = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (uncontrolledProps, ref) { + var _classNames; + + var _useUncontrolled = hook_default()(uncontrolledProps, { + activeKey: 'onSelect' + }), + as = _useUncontrolled.as, + bsPrefix = _useUncontrolled.bsPrefix, + variant = _useUncontrolled.variant, + fill = _useUncontrolled.fill, + justify = _useUncontrolled.justify, + navbar = _useUncontrolled.navbar, + className = _useUncontrolled.className, + children = _useUncontrolled.children, + activeKey = _useUncontrolled.activeKey, + props = _objectWithoutPropertiesLoose(_useUncontrolled, ["as", "bsPrefix", "variant", "fill", "justify", "navbar", "className", "children", "activeKey"]); + + bsPrefix = useBootstrapPrefix(bsPrefix, 'nav'); + var navbarBsPrefix, cardHeaderBsPrefix; + var navbarContext = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(NavbarContext); + var cardContext = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(CardContext); + + if (navbarContext) { + navbarBsPrefix = navbarContext.bsPrefix; + navbar = navbar == null ? true : navbar; + } else if (cardContext) { + cardHeaderBsPrefix = cardContext.cardHeaderBsPrefix; + } + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_AbstractNav, _extends({ + as: as, + ref: ref, + activeKey: activeKey, + className: classnames_default()(className, (_classNames = {}, _classNames[bsPrefix] = !navbar, _classNames[navbarBsPrefix + "-nav"] = navbar, _classNames[cardHeaderBsPrefix + "-" + variant] = !!cardHeaderBsPrefix, _classNames[bsPrefix + "-" + variant] = !!variant, _classNames[bsPrefix + "-fill"] = fill, _classNames[bsPrefix + "-justified"] = justify, _classNames)) + }, props, { + __source: { + fileName: Nav_jsxFileName, + lineNumber: 123 + }, + __self: this + }), children); +}); +Nav.displayName = 'Nav'; +Nav.propTypes = Nav_propTypes; +Nav.defaultProps = Nav_defaultProps; +Nav.Item = src_NavItem; +Nav.Link = src_NavLink; +Nav._Nav = Nav; // for Testing until enzyme is working with context + +/* harmony default export */ var src_Nav = (Nav); +// CONCATENATED MODULE: ./src/NavbarBrand.js + + +var NavbarBrand_jsxFileName = "/Users/jason/src/react-bootstrap/src/NavbarBrand.js"; + + + + +var NavbarBrand_propTypes = { + /** @default 'navbar' */ + bsPrefix: prop_types_default.a.string, + + /** + * An href, when provided the Brand will render as an `<a>` element (unless `as` is provided). + */ + href: prop_types_default.a.string, + + /** + * Set a custom element for this component. + */ + as: prop_types_default.a.elementType +}; +var NavbarBrand = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + className = _ref.className, + as = _ref.as, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "className", "as"]); + + bsPrefix = useBootstrapPrefix(bsPrefix, 'navbar-brand'); + var Component = as || (props.href ? 'a' : 'span'); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + ref: ref, + className: classnames_default()(className, bsPrefix), + __source: { + fileName: NavbarBrand_jsxFileName, + lineNumber: 29 + }, + __self: this + })); +}); +NavbarBrand.displayName = 'NavbarBrand'; +NavbarBrand.propTypes = NavbarBrand_propTypes; +/* harmony default export */ var src_NavbarBrand = (NavbarBrand); +// CONCATENATED MODULE: ./src/NavbarCollapse.js + + +var NavbarCollapse_jsxFileName = "/Users/jason/src/react-bootstrap/src/NavbarCollapse.js"; + + + + + +var NavbarCollapse_propTypes = { + /** @default 'navbar-collapse' */ + bsPrefix: prop_types_default.a.string +}; +var NavbarCollapse = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var children = _ref.children, + bsPrefix = _ref.bsPrefix, + props = _objectWithoutPropertiesLoose(_ref, ["children", "bsPrefix"]); + + bsPrefix = useBootstrapPrefix(bsPrefix, 'navbar-collapse'); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(NavbarContext.Consumer, { + __source: { + fileName: NavbarCollapse_jsxFileName, + lineNumber: 17 + }, + __self: this + }, function (context) { + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Collapse, _extends({ + in: !!(context && context.expanded) + }, props, { + __source: { + fileName: NavbarCollapse_jsxFileName, + lineNumber: 19 + }, + __self: this + }), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", { + ref: ref, + className: bsPrefix, + __source: { + fileName: NavbarCollapse_jsxFileName, + lineNumber: 20 + }, + __self: this + }, children)); + }); +}); +NavbarCollapse.displayName = 'NavbarCollapse'; +NavbarCollapse.propTypes = NavbarCollapse_propTypes; +/* harmony default export */ var src_NavbarCollapse = (NavbarCollapse); +// CONCATENATED MODULE: ./src/NavbarToggle.js + + +var NavbarToggle_jsxFileName = "/Users/jason/src/react-bootstrap/src/NavbarToggle.js"; + + + + + + +var NavbarToggle_propTypes = { + /** @default 'navbar-toggler' */ + bsPrefix: prop_types_default.a.string, + + /** An accessible ARIA label for the toggler button. */ + label: prop_types_default.a.string, + + /** @private */ + onClick: prop_types_default.a.func, + + /** + * The toggle content. When empty, the default toggle will be rendered. + */ + children: prop_types_default.a.node, + as: prop_types_default.a.elementType +}; +var NavbarToggle_defaultProps = { + label: 'Toggle navigation', + as: 'button' +}; +var NavbarToggle = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (_ref, ref) { + var bsPrefix = _ref.bsPrefix, + className = _ref.className, + children = _ref.children, + label = _ref.label, + Component = _ref.as, + onClick = _ref.onClick, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "className", "children", "label", "as", "onClick"]); + + bsPrefix = useBootstrapPrefix(bsPrefix, 'navbar-toggler'); + + var _ref2 = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(NavbarContext) || {}, + onToggle = _ref2.onToggle, + expanded = _ref2.expanded; + + var handleClick = useEventCallback_default()(function (e) { + if (onClick) onClick(e); + if (onToggle) onToggle(); + }); + + if (Component === 'button') { + props.type = 'button'; + } + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + ref: ref, + onClick: handleClick, + "aria-label": label, + className: classnames_default()(className, bsPrefix, !!expanded && 'collapsed'), + __source: { + fileName: NavbarToggle_jsxFileName, + lineNumber: 51 + }, + __self: this + }), children || external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("span", { + className: bsPrefix + "-icon", + __source: { + fileName: NavbarToggle_jsxFileName, + lineNumber: 58 + }, + __self: this + })); +}); +NavbarToggle.displayName = 'NavbarToggle'; +NavbarToggle.propTypes = NavbarToggle_propTypes; +NavbarToggle.defaultProps = NavbarToggle_defaultProps; +/* harmony default export */ var src_NavbarToggle = (NavbarToggle); +// CONCATENATED MODULE: ./src/Navbar.js + + + +var Navbar_jsxFileName = "/Users/jason/src/react-bootstrap/src/Navbar.js"; + + + + + + + + + + + +var Navbar_propTypes = { + /** @default 'navbar' */ + bsPrefix: prop_types_default.a.string.isRequired, + + /** + * The general visual variant a the Navbar. + * Use in combination with the `bg` prop, `background-color` utilities, + * or your own background styles. + * + * @type {('light'|'dark')} + */ + variant: prop_types_default.a.string, + + /** + * The breakpoint, below which, the Navbar will collapse. + * When `true` the Navbar will always be expanded regardless of screen size. + */ + expand: prop_types_default.a.oneOf([true, 'sm', 'md', 'lg', 'xl']).isRequired, + + /** + * A convenience prop for adding `bg-*` utility classes since they are so commonly used here. + * `light` and `dark` are common choices but any `bg-*` class is supported, including any custom ones you might define. + * + * Pairs nicely with the `variant` prop. + */ + bg: prop_types_default.a.string, + + /** + * Create a fixed navbar along the top or bottom of the screen, that scrolls with the + * page. A convenience prop for the `fixed-*` positioning classes. + */ + fixed: prop_types_default.a.oneOf(['top', 'bottom']), + + /** + * Position the navbar at the top or bottom of the viewport, + * but only after scrolling past it. . A convenience prop for the `sticky-*` positioning classes. + * + * __Not supported in <= IE11 and other older browsers without a polyfill__ + */ + sticky: prop_types_default.a.oneOf(['top', 'bottom']), + + /** + * Set a custom element for this component. + */ + as: prop_types_default.a.elementType, + + /** + * A callback fired when the `<Navbar>` body collapses or expands. Fired when + * a `<Navbar.Toggle>` is clicked and called with the new `expanded` + * boolean value. + * + * @controllable expanded + */ + onToggle: prop_types_default.a.func, + + /** + * A callback fired when a descendant of a child `<Nav>` is selected. Should + * be used to execute complex closing or other miscellaneous actions desired + * after selecting a descendant of `<Nav>`. Does nothing if no `<Nav>` or `<Nav>` + * descendants exist. The callback is called with an eventKey, which is a + * prop from the selected `<Nav>` descendant, and an event. + * + * ```js + * function ( + * eventKey: mixed, + * event?: SyntheticEvent + * ) + * ``` + * + * For basic closing behavior after all `<Nav>` descendant onSelect events in + * mobile viewports, try using collapseOnSelect. + * + * Note: If you are manually closing the navbar using this `OnSelect` prop, + * ensure that you are setting `expanded` to false and not *toggling* between + * true and false. + */ + onSelect: prop_types_default.a.func, + + /** + * Toggles `expanded` to `false` after the onSelect event of a descendant of a + * child `<Nav>` fires. Does nothing if no `<Nav>` or `<Nav>` descendants exist. + * + * Manually controlling `expanded` via the onSelect callback is recommended instead, + * for more complex operations that need to be executed after + * the `select` event of `<Nav>` descendants. + */ + collapseOnSelect: prop_types_default.a.bool, + + /** + * Controls the visiblity of the navbar body + * + * @controllable onToggle + */ + expanded: prop_types_default.a.bool, + + /** + * The ARIA role for the navbar, will default to 'navigation' for + * Navbars whose `as` is something other than `<nav>`. + * + * @default 'navigation' + */ + role: prop_types_default.a.string +}; +var Navbar_defaultProps = { + as: 'nav', + expand: true, + variant: 'light', + collapseOnSelect: false +}; + +var Navbar_Navbar = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Navbar, _React$Component); + + function Navbar() { + var _this; + + for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) { + _args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this; + + _this.handleCollapse = function () { + var _this$props = _this.props, + onToggle = _this$props.onToggle, + expanded = _this$props.expanded, + collapseOnSelect = _this$props.collapseOnSelect, + onSelect = _this$props.onSelect; + if (onSelect) onSelect.apply(void 0, arguments); + + if (collapseOnSelect && expanded) { + onToggle(false); + } + }; + + _this.handleToggle = function () { + var _this$props2 = _this.props, + onToggle = _this$props2.onToggle, + expanded = _this$props2.expanded; + onToggle(!expanded); + }; + + _this.state = { + navbarContext: { + onToggle: _this.handleToggle + } + }; + return _this; + } + + Navbar.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) { + var bsPrefix = _ref.bsPrefix, + expanded = _ref.expanded; + return { + navbarContext: _extends({}, prevState.navbarContext, { + bsPrefix: bsPrefix, + expanded: expanded + }) + }; + }; + + var _proto = Navbar.prototype; + + _proto.render = function render() { + var _this$props3 = this.props, + bsPrefix = _this$props3.bsPrefix, + expand = _this$props3.expand, + variant = _this$props3.variant, + bg = _this$props3.bg, + fixed = _this$props3.fixed, + sticky = _this$props3.sticky, + className = _this$props3.className, + children = _this$props3.children, + Component = _this$props3.as, + _1 = _this$props3.expanded, + _2 = _this$props3.onToggle, + _3 = _this$props3.onSelect, + _4 = _this$props3.collapseOnSelect, + props = _objectWithoutPropertiesLoose(_this$props3, ["bsPrefix", "expand", "variant", "bg", "fixed", "sticky", "className", "children", "as", "expanded", "onToggle", "onSelect", "collapseOnSelect"]); // will result in some false positives but that seems better + // than false negatives. strict `undefined` check allows explicit + // "nulling" of the role if the user really doesn't want one + + + if (props.role === undefined && Component !== 'nav') { + props.role = 'navigation'; + } + + var expandClass = bsPrefix + "-expand"; + if (typeof expand === 'string') expandClass = expandClass + "-" + expand; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(NavbarContext.Provider, { + value: this.state.navbarContext, + __source: { + fileName: Navbar_jsxFileName, + lineNumber: 190 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_SelectableContext.Provider, { + value: this.handleCollapse, + __source: { + fileName: Navbar_jsxFileName, + lineNumber: 191 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + className: classnames_default()(className, bsPrefix, expand && expandClass, variant && bsPrefix + "-" + variant, bg && "bg-" + bg, sticky && "sticky-" + sticky, fixed && "fixed-" + fixed), + __source: { + fileName: Navbar_jsxFileName, + lineNumber: 192 + }, + __self: this + }), children))); + }; + + return Navbar; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +Navbar_Navbar.propTypes = Navbar_propTypes; +Navbar_Navbar.defaultProps = Navbar_defaultProps; +var DecoratedNavbar = createBootstrapComponent(uncontrollable_default()(Navbar_Navbar, { + expanded: 'onToggle' +}), 'navbar'); +DecoratedNavbar.Brand = src_NavbarBrand; +DecoratedNavbar.Toggle = src_NavbarToggle; +DecoratedNavbar.Collapse = src_NavbarCollapse; +DecoratedNavbar.Text = createWithBsPrefix('navbar-text', { + Component: 'span' +}); +/* harmony default export */ var src_Navbar = (DecoratedNavbar); +// CONCATENATED MODULE: ./src/NavDropdown.js + + + +var NavDropdown_jsxFileName = "/Users/jason/src/react-bootstrap/src/NavDropdown.js"; + + + + + +var NavDropdown_propTypes = { + /** + * An html id attribute for the Toggle button, necessary for assistive technologies, such as screen readers. + * @type {string|number} + * @required + */ + id: prop_types_default.a.any, + + /** An `onClick` handler passed to the Toggle component */ + onClick: prop_types_default.a.func, + + /** The content of the non-toggle Button. */ + title: prop_types_default.a.node.isRequired, + + /** Disables the toggle NavLink */ + disabled: prop_types_default.a.bool, + + /** Style the toggle NavLink as active */ + active: prop_types_default.a.bool, + + /** An ARIA accessible role applied to the Menu component. When set to 'menu', The dropdown */ + menuRole: prop_types_default.a.string, + + /** + * Which event when fired outside the component will cause it to be closed. + * + * _see [DropdownMenu](#menu-props) for more details_ + */ + rootCloseEvent: prop_types_default.a.string, + + /** @ignore */ + bsPrefix: prop_types_default.a.string +}; + +var NavDropdown_NavDropdown = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(NavDropdown, _React$Component); + + function NavDropdown() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = NavDropdown.prototype; + + _proto.render = function render() { + var _this$props = this.props, + id = _this$props.id, + title = _this$props.title, + children = _this$props.children, + bsPrefix = _this$props.bsPrefix, + rootCloseEvent = _this$props.rootCloseEvent, + menuRole = _this$props.menuRole, + disabled = _this$props.disabled, + active = _this$props.active, + props = _objectWithoutPropertiesLoose(_this$props, ["id", "title", "children", "bsPrefix", "rootCloseEvent", "menuRole", "disabled", "active"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Dropdown, _extends({}, props, { + as: src_NavItem, + __source: { + fileName: NavDropdown_jsxFileName, + lineNumber: 57 + }, + __self: this + }), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Dropdown.Toggle, { + id: id, + eventKey: null, + active: active, + disabled: disabled, + childBsPrefix: bsPrefix, + as: src_NavLink, + __source: { + fileName: NavDropdown_jsxFileName, + lineNumber: 58 + }, + __self: this + }, title), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Dropdown.Menu, { + role: menuRole, + rootCloseEvent: rootCloseEvent, + __source: { + fileName: NavDropdown_jsxFileName, + lineNumber: 69 + }, + __self: this + }, children)); + }; + + return NavDropdown; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +NavDropdown_NavDropdown.propTypes = NavDropdown_propTypes; +NavDropdown_NavDropdown.Item = src_Dropdown.Item; +NavDropdown_NavDropdown.Divider = src_Dropdown.Divider; +NavDropdown_NavDropdown.Header = src_Dropdown.Header; +/* harmony default export */ var src_NavDropdown = (NavDropdown_NavDropdown); +// EXTERNAL MODULE: ./node_modules/react-overlays/Overlay.js +var Overlay = __webpack_require__(57); +var Overlay_default = /*#__PURE__*/__webpack_require__.n(Overlay); + +// CONCATENATED MODULE: ./src/Overlay.js + + +var Overlay_jsxFileName = "/Users/jason/src/react-bootstrap/src/Overlay.js"; + + + + + + + +var Overlay_propTypes = { + /** + * A component instance, DOM node, or function that returns either. + * The `container` element will have the Overlay appended to it via a React portal. + */ + container: prop_types_default.a.oneOfType([lib["componentOrElement"], prop_types_default.a.func]), + + /** + * A component instance, DOM node, or function that returns either. + * The overlay will be positioned in relation to the `target` + */ + target: prop_types_default.a.oneOfType([lib["componentOrElement"], prop_types_default.a.func]), + + /** + * Set the visibility of the Overlay + */ + show: prop_types_default.a.bool, + + /** + * A set of popper options and props passed directly to react-popper's Popper component. + */ + popperConfig: prop_types_default.a.object, + + /** + * Specify whether the overlay should trigger onHide when the user clicks outside the overlay + */ + rootClose: prop_types_default.a.bool, + + /** + * Specify event for triggering a "root close" toggle. + */ + rootCloseEvent: prop_types_default.a.oneOf(['click', 'mousedown']), + + /** + * A callback invoked by the overlay when it wishes to be hidden. Required if + * `rootClose` is specified. + */ + onHide: prop_types_default.a.func, + + /** + * Animate the entering and exiting of the Ovelay. `true` will use the `<Fade>` transition, + * or a custom react-transition-group `<Transition>` component can be provided. + */ + transition: prop_types_default.a.oneOfType([prop_types_default.a.bool, lib["elementType"]]), + + /** + * Callback fired before the Overlay transitions in + */ + onEnter: prop_types_default.a.func, + + /** + * Callback fired as the Overlay begins to transition in + */ + onEntering: prop_types_default.a.func, + + /** + * Callback fired after the Overlay finishes transitioning in + */ + onEntered: prop_types_default.a.func, + + /** + * Callback fired right before the Overlay transitions out + */ + onExit: prop_types_default.a.func, + + /** + * Callback fired as the Overlay begins to transition out + */ + onExiting: prop_types_default.a.func, + + /** + * Callback fired after the Overlay finishes transitioning out + */ + onExited: prop_types_default.a.func, + + /** + * The placement of the OVerlay in relation to it's `target`. + */ + placement: prop_types_default.a.oneOf(['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']) +}; +var Overlay_defaultProps = { + transition: src_Fade, + rootClose: false, + show: false, + placement: 'top' +}; + +function wrapRefs(props, arrowProps) { + var ref = props.ref; + var aRef = arrowProps.ref; + + props.ref = ref.__wrapped || (ref.__wrapped = function (r) { + return ref(Object(external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_["findDOMNode"])(r)); + }); + + arrowProps.ref = aRef.__wrapped || (aRef.__wrapped = function (r) { + return aRef(Object(external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_["findDOMNode"])(r)); + }); +} + +function Overlay_Overlay(_ref) { + var overlay = _ref.children, + transition = _ref.transition, + outerProps = _objectWithoutPropertiesLoose(_ref, ["children", "transition"]); + + transition = transition === true ? src_Fade : transition || null; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Overlay_default.a, _extends({}, outerProps, { + transition: transition, + __source: { + fileName: Overlay_jsxFileName, + lineNumber: 127 + }, + __self: this + }), function (_ref2) { + var overlayProps = _ref2.props, + arrowProps = _ref2.arrowProps, + show = _ref2.show, + props = _objectWithoutPropertiesLoose(_ref2, ["props", "arrowProps", "show"]); + + wrapRefs(overlayProps, arrowProps); + if (typeof overlay === 'function') return overlay(_extends({}, props, overlayProps, { + show: show, + arrowProps: arrowProps + })); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.cloneElement(overlay, _extends({}, props, overlayProps, { + arrowProps: arrowProps, + className: classnames_default()(overlay.props.className, !transition && show && 'show'), + style: _extends({}, overlay.props.style, overlayProps.style) + })); + }); +} + +Overlay_Overlay.propTypes = Overlay_propTypes; +Overlay_Overlay.defaultProps = Overlay_defaultProps; +/* harmony default export */ var src_Overlay = (Overlay_Overlay); +// EXTERNAL MODULE: ./node_modules/dom-helpers/query/contains.js +var contains = __webpack_require__(22); +var contains_default = /*#__PURE__*/__webpack_require__.n(contains); + +// CONCATENATED MODULE: ./src/OverlayTrigger.js + + + +var OverlayTrigger_jsxFileName = "/Users/jason/src/react-bootstrap/src/OverlayTrigger.js"; + + + + + + + +var OverlayTrigger_RefHolder = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(RefHolder, _React$Component); + + function RefHolder() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = RefHolder.prototype; + + _proto.render = function render() { + return this.props.children; + }; + + return RefHolder; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +var normalizeDelay = function normalizeDelay(delay) { + return delay && typeof delay === 'object' ? delay : { + show: delay, + hide: delay + }; +}; + +var triggerType = prop_types_default.a.oneOf(['click', 'hover', 'focus']); +var OverlayTrigger_propTypes = { + children: prop_types_default.a.element.isRequired, + + /** + * Specify which action or actions trigger Overlay visibility + * + * @type {'hover' | 'click' |'focus' | Array<'hover' | 'click' |'focus'>} + */ + trigger: prop_types_default.a.oneOfType([triggerType, prop_types_default.a.arrayOf(triggerType)]), + + /** + * A millisecond delay amount to show and hide the Overlay once triggered + */ + delay: prop_types_default.a.oneOfType([prop_types_default.a.number, prop_types_default.a.shape({ + show: prop_types_default.a.number, + hide: prop_types_default.a.number + })]), + + /** + * The initial visibility state of the Overlay. For more nuanced visibility + * control, consider using the Overlay component directly. + */ + defaultShow: prop_types_default.a.bool, + + /** + * An element or text to overlay next to the target. + */ + overlay: prop_types_default.a.oneOfType([prop_types_default.a.func, prop_types_default.a.element.isRequired]), + + /** + * A Popper.js config object passed to the the underlying popper instance. + */ + popperConfig: prop_types_default.a.object, + // Overridden props from `<Overlay>`. + + /** + * @private + */ + target: prop_types_default.a.oneOf([null]), + + /** + * @private + */ + onHide: prop_types_default.a.oneOf([null]), + + /** + * @private + */ + show: prop_types_default.a.oneOf([null]) +}; +var OverlayTrigger_defaultProps = { + defaultOverlayShown: false, + trigger: ['hover', 'focus'] +}; // eslint-disable-next-line react/no-multi-comp + +var OverlayTrigger_OverlayTrigger = +/*#__PURE__*/ +function (_React$Component2) { + _inheritsLoose(OverlayTrigger, _React$Component2); + + function OverlayTrigger(props, context) { + var _this; + + _this = _React$Component2.call(this, props, context) || this; + + _this.getTarget = function () { + return external_root_ReactDOM_commonjs2_react_dom_commonjs_react_dom_amd_react_dom_default.a.findDOMNode(_this.trigger.current); + }; + + _this.handleShow = function () { + clearTimeout(_this._timeout); + _this._hoverState = 'show'; + var delay = normalizeDelay(_this.props.delay); + + if (!delay.show) { + _this.show(); + + return; + } + + _this._timeout = setTimeout(function () { + if (_this._hoverState === 'show') _this.show(); + }, delay.show); + }; + + _this.handleHide = function () { + clearTimeout(_this._timeout); + _this._hoverState = 'hide'; + var delay = normalizeDelay(_this.props.delay); + + if (!delay.hide) { + _this.hide(); + + return; + } + + _this._timeout = setTimeout(function () { + if (_this._hoverState === 'hide') _this.hide(); + }, delay.hide); + }; + + _this.handleFocus = function (e) { + var _this$getChildProps = _this.getChildProps(), + onFocus = _this$getChildProps.onFocus; + + _this.handleShow(e); + + if (onFocus) onFocus(e); + }; + + _this.handleBlur = function (e) { + var _this$getChildProps2 = _this.getChildProps(), + onBlur = _this$getChildProps2.onBlur; + + _this.handleHide(e); + + if (onBlur) onBlur(e); + }; + + _this.handleClick = function (e) { + var _this$getChildProps3 = _this.getChildProps(), + onClick = _this$getChildProps3.onClick; + + if (_this.state.show) _this.hide();else _this.show(); + if (onClick) onClick(e); + }; + + _this.handleMouseOver = function (e) { + _this.handleMouseOverOut(_this.handleShow, e, 'fromElement'); + }; + + _this.handleMouseOut = function (e) { + return _this.handleMouseOverOut(_this.handleHide, e, 'toElement'); + }; + + _this.trigger = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createRef(); + _this.state = { + show: !!props.defaultShow + }; // We add aria-describedby in the case where the overlay is a role="tooltip" + // for other cases describedby isn't appropriate (e.g. a popover with inputs) so we don't add it. + + _this.ariaModifier = { + enabled: true, + order: 900, + fn: function fn(data) { + var popper = data.instance.popper; + + var target = _this.getTarget(); + + if (!_this.state.show || !target) return data; + var role = popper.getAttribute('role') || ''; + + if (popper.id && role.toLowerCase() === 'tooltip') { + target.setAttribute('aria-describedby', popper.id); + } + + return data; + } + }; + return _this; + } + + var _proto2 = OverlayTrigger.prototype; + + _proto2.componentWillUnmount = function componentWillUnmount() { + clearTimeout(this._timeout); + }; + + _proto2.getChildProps = function getChildProps() { + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Children.only(this.props.children).props; + }; + + // Simple implementation of mouseEnter and mouseLeave. + // React's built version is broken: https://github.com/facebook/react/issues/4251 + // for cases when the trigger is disabled and mouseOut/Over can cause flicker + // moving from one child element to another. + _proto2.handleMouseOverOut = function handleMouseOverOut(handler, e, relatedNative) { + var target = e.currentTarget; + var related = e.relatedTarget || e.nativeEvent[relatedNative]; + + if ((!related || related !== target) && !contains_default()(target, related)) { + handler(e); + } + }; + + _proto2.hide = function hide() { + this.setState({ + show: false + }); + }; + + _proto2.show = function show() { + this.setState({ + show: true + }); + }; + + _proto2.render = function render() { + var _this$props = this.props, + trigger = _this$props.trigger, + overlay = _this$props.overlay, + children = _this$props.children, + _this$props$popperCon = _this$props.popperConfig, + popperConfig = _this$props$popperCon === void 0 ? {} : _this$props$popperCon, + props = _objectWithoutPropertiesLoose(_this$props, ["trigger", "overlay", "children", "popperConfig"]); + + delete props.delay; + delete props.defaultShow; + var child = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Children.only(children); + var triggerProps = {}; + var triggers = trigger == null ? [] : [].concat(trigger); + + if (triggers.indexOf('click') !== -1) { + triggerProps.onClick = this.handleClick; + } + + if (triggers.indexOf('focus') !== -1) { + triggerProps.onFocus = this.handleShow; + triggerProps.onBlur = this.handleHide; + } + + if (triggers.indexOf('hover') !== -1) { + false ? undefined : void 0; + triggerProps.onMouseOver = this.handleMouseOver; + triggerProps.onMouseOut = this.handleMouseOut; + } + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Fragment, null, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(OverlayTrigger_RefHolder, { + ref: this.trigger, + __source: { + fileName: OverlayTrigger_jsxFileName, + lineNumber: 240 + }, + __self: this + }, Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["cloneElement"])(child, triggerProps)), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Overlay, _extends({}, props, { + popperConfig: _extends({}, popperConfig, { + modifiers: _extends({}, popperConfig.modifiers, { + ariaModifier: this.ariaModifier + }) + }), + show: this.state.show, + onHide: this.handleHide, + target: this.getTarget, + __source: { + fileName: OverlayTrigger_jsxFileName, + lineNumber: 243 + }, + __self: this + }), overlay)); + }; + + return OverlayTrigger; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +OverlayTrigger_OverlayTrigger.propTypes = OverlayTrigger_propTypes; +OverlayTrigger_OverlayTrigger.defaultProps = OverlayTrigger_defaultProps; +/* harmony default export */ var src_OverlayTrigger = (OverlayTrigger_OverlayTrigger); +// CONCATENATED MODULE: ./src/PageItem.js + + + +var PageItem_jsxFileName = "/Users/jason/src/react-bootstrap/src/PageItem.js"; + +/* eslint-disable react/no-multi-comp */ + + + + +var PageItem_propTypes = { + /** Disables the PageItem */ + disabled: prop_types_default.a.bool, + + /** Styles PageItem as active, and renders a `<span>` instead of an `<a>`. */ + active: prop_types_default.a.bool, + + /** An accessible label indicating the active state.. */ + activeLabel: prop_types_default.a.string +}; +var PageItem_defaultProps = { + active: false, + disabled: false, + activeLabel: '(current)' +}; +function PageItem(_ref) { + var active = _ref.active, + disabled = _ref.disabled, + className = _ref.className, + style = _ref.style, + activeLabel = _ref.activeLabel, + children = _ref.children, + props = _objectWithoutPropertiesLoose(_ref, ["active", "disabled", "className", "style", "activeLabel", "children"]); + + var Component = active || disabled ? 'span' : src_SafeAnchor; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("li", { + style: style, + className: classnames_default()(className, 'page-item', { + active: active, + disabled: disabled + }), + __source: { + fileName: PageItem_jsxFileName, + lineNumber: 36 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({ + className: "page-link", + disabled: disabled + }, props, { + __source: { + fileName: PageItem_jsxFileName, + lineNumber: 40 + }, + __self: this + }), children, active && activeLabel && external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("span", { + className: "sr-only", + __source: { + fileName: PageItem_jsxFileName, + lineNumber: 43 + }, + __self: this + }, activeLabel))); +} +PageItem.propTypes = PageItem_propTypes; +PageItem.defaultProps = PageItem_defaultProps; + +function createButton(name, defaultValue, label) { + var _class, _temp; + + if (label === void 0) { + label = name; + } + + return _temp = _class = + /*#__PURE__*/ + function (_React$Component) { + _inheritsLoose(_class, _React$Component); + + function _class() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = _class.prototype; + + _proto.render = function render() { + var _this$props = this.props, + children = _this$props.children, + props = _objectWithoutPropertiesLoose(_this$props, ["children"]); + + delete props.active; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(PageItem, _extends({}, props, { + __source: { + fileName: PageItem_jsxFileName, + lineNumber: 61 + }, + __self: this + }), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("span", { + "aria-hidden": "true", + __source: { + fileName: PageItem_jsxFileName, + lineNumber: 62 + }, + __self: this + }, children || defaultValue), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("span", { + className: "sr-only", + __source: { + fileName: PageItem_jsxFileName, + lineNumber: 63 + }, + __self: this + }, label)); + }; + + return _class; + }(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component), _class.displayName = name, _temp; +} + +var First = createButton('First', "\xAB"); +var Prev = createButton('Prev', "\u2039", 'Previous'); +var Ellipsis = createButton('Ellipsis', "\u2026", 'More'); +var Next = createButton('Next', "\u203A"); +var Last = createButton('Last', "\xBB"); +// CONCATENATED MODULE: ./src/Pagination.js + + + +var Pagination_jsxFileName = "/Users/jason/src/react-bootstrap/src/Pagination.js"; + + + + + +/** + * @property {PageItem} Item + * @property {PageItem} First + * @property {PageItem} Prev + * @property {PageItem} Ellipsis + * @property {PageItem} Next + * @property {PageItem} Last + */ + +var Pagination_Pagination = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Pagination, _React$Component); + + function Pagination() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Pagination.prototype; + + _proto.render = function render() { + var _this$props = this.props, + bsPrefix = _this$props.bsPrefix, + className = _this$props.className, + children = _this$props.children, + size = _this$props.size, + props = _objectWithoutPropertiesLoose(_this$props, ["bsPrefix", "className", "children", "size"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("ul", _extends({}, props, { + className: classnames_default()(className, bsPrefix, size && bsPrefix + "-" + size), + __source: { + fileName: Pagination_jsxFileName, + lineNumber: 33 + }, + __self: this + }), children); + }; + + return Pagination; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +Pagination_Pagination.propTypes = { + /** @default 'pagination' */ + bsPrefix: prop_types_default.a.string.isRequired, + + /** + * Set's the size of all PageItems. + * + * @type {('sm'|'lg')} + */ + size: prop_types_default.a.string +}; +var DecoratedPagination = createBootstrapComponent(Pagination_Pagination, 'pagination'); +DecoratedPagination.First = First; +DecoratedPagination.Prev = Prev; +DecoratedPagination.Ellipsis = Ellipsis; +DecoratedPagination.Item = PageItem; +DecoratedPagination.Next = Next; +DecoratedPagination.Last = Last; +/* harmony default export */ var src_Pagination = (DecoratedPagination); +// CONCATENATED MODULE: ./src/Popover.js + + +var Popover_jsxFileName = "/Users/jason/src/react-bootstrap/src/Popover.js"; + + + + + +var Popover_propTypes = { + /** + * @default 'popover' + */ + bsPrefix: prop_types_default.a.string, + + /** + * An html id attribute, necessary for accessibility + * @type {string|number} + * @required + */ + id: isRequiredForA11y_default()(prop_types_default.a.oneOfType([prop_types_default.a.string, prop_types_default.a.number])), + + /** + * Sets the direction the Popover is positioned towards. + * + * > This is generally provided by the `Overlay` component positioning the popover + */ + placement: prop_types_default.a.oneOf(['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']), + + /** + * An Overlay injected set of props for positioning the popover arrow. + * + * > This is generally provided by the `Overlay` component positioning the popover + */ + arrowProps: prop_types_default.a.shape({ + ref: prop_types_default.a.any, + style: prop_types_default.a.object + }), + + /** @private */ + innerRef: prop_types_default.a.any, + + /** @private */ + scheduleUpdate: prop_types_default.a.func, + + /** @private */ + outOfBoundaries: prop_types_default.a.bool, + + /** + * Title content + */ + title: prop_types_default.a.node +}; +var Popover_defaultProps = { + placement: 'right' +}; + +function Popover(_ref) { + var bsPrefix = _ref.bsPrefix, + innerRef = _ref.innerRef, + placement = _ref.placement, + className = _ref.className, + style = _ref.style, + title = _ref.title, + children = _ref.children, + arrowProps = _ref.arrowProps, + _ = _ref.scheduleUpdate, + _1 = _ref.outOfBoundaries, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "innerRef", "placement", "className", "style", "title", "children", "arrowProps", "scheduleUpdate", "outOfBoundaries"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", _extends({ + role: "tooltip", + ref: innerRef, + style: style, + "x-placement": placement, + className: classnames_default()(className, bsPrefix, "bs-popover-" + placement) + }, props, { + __source: { + fileName: Popover_jsxFileName, + lineNumber: 86 + }, + __self: this + }), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", _extends({ + className: "arrow" + }, arrowProps, { + __source: { + fileName: Popover_jsxFileName, + lineNumber: 94 + }, + __self: this + })), title && external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", { + className: bsPrefix + "-header h3", + __source: { + fileName: Popover_jsxFileName, + lineNumber: 96 + }, + __self: this + }, title), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", { + className: bsPrefix + "-body", + __source: { + fileName: Popover_jsxFileName, + lineNumber: 98 + }, + __self: this + }, children)); +} + +Popover.propTypes = Popover_propTypes; +Popover.defaultProps = Popover_defaultProps; +/* harmony default export */ var src_Popover = (createBootstrapComponent(Popover, 'popover')); +// CONCATENATED MODULE: ./src/ProgressBar.js + + + +var ProgressBar_jsxFileName = "/Users/jason/src/react-bootstrap/src/ProgressBar.js"; + + + + + +var ROUND_PRECISION = 1000; +/** + * Validate that children, if any, are instances of `<ProgressBar>`. + */ + +function onlyProgressBar(props, propName, componentName) { + var children = props[propName]; + + if (!children) { + return null; + } + + var error = null; + external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Children.forEach(children, function (child) { + if (error) { + return; + } + /** + * Compare types in a way that works with libraries that patch and proxy + * components like react-hot-loader. + * + * see https://github.com/gaearon/react-hot-loader#checking-element-types + */ + + + var element = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(DecoratedProgressBar, { + __source: { + fileName: ProgressBar_jsxFileName, + lineNumber: 33 + }, + __self: this + }); + if (child.type === element.type) return; + var childIdentifier = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.isValidElement(child) ? child.type.displayName || child.type.name || child.type : child; + error = new Error("Children of " + componentName + " can contain only ProgressBar " + ("components. Found " + childIdentifier + ".")); + }); + return error; +} + +var ProgressBar_propTypes = { + /** + * Minimum value progress can begin from + */ + min: prop_types_default.a.number, + + /** + * Current value of progress + */ + now: prop_types_default.a.number, + + /** + * Maximum value progress can reach + */ + max: prop_types_default.a.number, + + /** + * Show label that represents visual percentage. + * EG. 60% + */ + label: prop_types_default.a.node, + + /** + * Hide's the label visually. + */ + srOnly: prop_types_default.a.bool, + + /** + * Uses a gradient to create a striped effect. + */ + striped: prop_types_default.a.bool, + + /** + * Animate's the stripes from right to left + */ + animated: prop_types_default.a.bool, + + /** + * @private + * @default 'progress-bar' + */ + bsPrefix: prop_types_default.a.string, + + /** + * Sets the background class of the progress bar. + * + * @type ('success'|'danger'|'warning'|'info') + */ + variant: prop_types_default.a.string, + + /** + * Child elements (only allows elements of type <ProgressBar />) + */ + children: onlyProgressBar, + + /** + * @private + */ + isChild: prop_types_default.a.bool +}; +var ProgressBar_defaultProps = { + min: 0, + max: 100, + animated: false, + isChild: false, + srOnly: false, + striped: false +}; + +function getPercentage(now, min, max) { + var percentage = (now - min) / (max - min) * 100; + return Math.round(percentage * ROUND_PRECISION) / ROUND_PRECISION; +} + +var ProgressBar_ProgressBar = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(ProgressBar, _React$Component); + + function ProgressBar() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = ProgressBar.prototype; + + _proto.renderProgressBar = function renderProgressBar(_ref) { + var _classNames; + + var min = _ref.min, + now = _ref.now, + max = _ref.max, + label = _ref.label, + srOnly = _ref.srOnly, + striped = _ref.striped, + animated = _ref.animated, + className = _ref.className, + style = _ref.style, + variant = _ref.variant, + bsPrefix = _ref.bsPrefix, + props = _objectWithoutPropertiesLoose(_ref, ["min", "now", "max", "label", "srOnly", "striped", "animated", "className", "style", "variant", "bsPrefix"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", _extends({}, props, { + role: "progressbar", + className: classnames_default()(className, bsPrefix + "-bar", (_classNames = {}, _classNames["bg-" + variant] = variant, _classNames[bsPrefix + "-bar-animated"] = animated, _classNames[bsPrefix + "-bar-striped"] = animated || striped, _classNames)), + style: _extends({ + width: getPercentage(now, min, max) + "%" + }, style), + "aria-valuenow": now, + "aria-valuemin": min, + "aria-valuemax": max, + __source: { + fileName: ProgressBar_jsxFileName, + lineNumber: 139 + }, + __self: this + }), srOnly ? external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("span", { + className: "sr-only", + __source: { + fileName: ProgressBar_jsxFileName, + lineNumber: 152 + }, + __self: this + }, label) : label); + }; + + _proto.render = function render() { + var _this$props = this.props, + isChild = _this$props.isChild, + props = _objectWithoutPropertiesLoose(_this$props, ["isChild"]); + + if (isChild) { + return this.renderProgressBar(props); + } + + var min = props.min, + now = props.now, + max = props.max, + label = props.label, + srOnly = props.srOnly, + striped = props.striped, + animated = props.animated, + bsPrefix = props.bsPrefix, + variant = props.variant, + className = props.className, + children = props.children, + wrapperProps = _objectWithoutPropertiesLoose(props, ["min", "now", "max", "label", "srOnly", "striped", "animated", "bsPrefix", "variant", "className", "children"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", _extends({}, wrapperProps, { + className: classnames_default()(className, bsPrefix), + __source: { + fileName: ProgressBar_jsxFileName, + lineNumber: 180 + }, + __self: this + }), children ? map(children, function (child) { + return Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["cloneElement"])(child, { + isChild: true + }); + }) : this.renderProgressBar({ + min: min, + now: now, + max: max, + label: label, + srOnly: srOnly, + striped: striped, + animated: animated, + bsPrefix: bsPrefix, + variant: variant + })); + }; + + return ProgressBar; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +ProgressBar_ProgressBar.propTypes = ProgressBar_propTypes; +ProgressBar_ProgressBar.defaultProps = ProgressBar_defaultProps; +var DecoratedProgressBar = createBootstrapComponent(ProgressBar_ProgressBar, 'progress'); +/* harmony default export */ var src_ProgressBar = (DecoratedProgressBar); +// CONCATENATED MODULE: ./src/ResponsiveEmbed.js + + + +var ResponsiveEmbed_jsxFileName = "/Users/jason/src/react-bootstrap/src/ResponsiveEmbed.js"; + + + + +var ResponsiveEmbed_propTypes = { + /** + * @default 'embed-responsive' + */ + bsPrefix: prop_types_default.a.string, + + /** + * This component requires a single child element + */ + children: prop_types_default.a.element.isRequired, + + /** + * Set the aspect ration of the embed + */ + aspectRatio: prop_types_default.a.oneOf(['21by9', '16by9', '4by3', '1by1']) +}; +var ResponsiveEmbed_defaultProps = { + aspectRatio: '1by1' +}; + +var ResponsiveEmbed_ResponsiveEmbed = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(ResponsiveEmbed, _React$Component); + + function ResponsiveEmbed() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = ResponsiveEmbed.prototype; + + _proto.render = function render() { + var _this$props = this.props, + bsPrefix = _this$props.bsPrefix, + className = _this$props.className, + children = _this$props.children, + aspectRatio = _this$props.aspectRatio, + props = _objectWithoutPropertiesLoose(_this$props, ["bsPrefix", "className", "children", "aspectRatio"]); + + var child = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Children.only(children); + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", _extends({}, props, { + className: classnames_default()(bsPrefix, className, aspectRatio && bsPrefix + "-" + aspectRatio), + __source: { + fileName: ResponsiveEmbed_jsxFileName, + lineNumber: 33 + }, + __self: this + }), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.cloneElement(child, { + className: classnames_default()(child.props.className, bsPrefix + "-item") + })); + }; + + return ResponsiveEmbed; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +ResponsiveEmbed_ResponsiveEmbed.propTypes = ResponsiveEmbed_propTypes; +ResponsiveEmbed_ResponsiveEmbed.defaultProps = ResponsiveEmbed_defaultProps; +/* harmony default export */ var src_ResponsiveEmbed = (createBootstrapComponent(ResponsiveEmbed_ResponsiveEmbed, 'embed-responsive')); +// CONCATENATED MODULE: ./src/Row.js + + + +var Row_jsxFileName = "/Users/jason/src/react-bootstrap/src/Row.js"; + + + + + +var Row_Row = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Row, _React$Component); + + function Row() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Row.prototype; + + _proto.render = function render() { + var _this$props = this.props, + bsPrefix = _this$props.bsPrefix, + noGutters = _this$props.noGutters, + Component = _this$props.as, + className = _this$props.className, + props = _objectWithoutPropertiesLoose(_this$props, ["bsPrefix", "noGutters", "as", "className"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + className: classnames_default()(className, bsPrefix, noGutters && 'no-gutters'), + __source: { + fileName: Row_jsxFileName, + lineNumber: 35 + }, + __self: this + })); + }; + + return Row; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +Row_Row.propTypes = { + /** + * @default 'row' + */ + bsPrefix: prop_types_default.a.string.isRequired, + + /** Removes the gutter spacing between `Col`s as well as any added negative margins. */ + noGutters: prop_types_default.a.bool.isRequired, + as: prop_types_default.a.elementType +}; +Row_Row.defaultProps = { + as: 'div', + noGutters: false +}; +/* harmony default export */ var src_Row = (createBootstrapComponent(Row_Row, 'row')); +// CONCATENATED MODULE: ./src/Spinner.js + + + +var Spinner_jsxFileName = "/Users/jason/src/react-bootstrap/src/Spinner.js"; + + + + + +var Spinner_Spinner = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Spinner, _React$Component); + + function Spinner() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Spinner.prototype; + + _proto.render = function render() { + var _this$props = this.props, + bsPrefix = _this$props.bsPrefix, + variant = _this$props.variant, + animation = _this$props.animation, + size = _this$props.size, + children = _this$props.children, + as = _this$props.as, + className = _this$props.className, + props = _objectWithoutPropertiesLoose(_this$props, ["bsPrefix", "variant", "animation", "size", "children", "as", "className"]); + + var Component = as; + var bsSpinnerPrefix = bsPrefix + "-" + animation; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + className: classnames_default()(className, bsSpinnerPrefix, size && bsSpinnerPrefix + "-" + size, variant && "text-" + variant), + __source: { + fileName: Spinner_jsxFileName, + lineNumber: 71 + }, + __self: this + }), children); + }; + + return Spinner; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +Spinner_Spinner.propTypes = { + /** + * @default 'spinner' + */ + bsPrefix: prop_types_default.a.string.isRequired, + + /** + * The visual color style of the spinner + * + * @type {('primary'|'secondary'|'success'|'danger'|'warning'|'info'|'light'|'dark')} + */ + variant: prop_types_default.a.string, + + /** + * Changes the animation style of the spinner. + * + * @type {('border'|'grow')} + * @default true + */ + animation: prop_types_default.a.oneOf(['border', 'grow']).isRequired, + + /** + * Component size variations. + * + * @type {('sm')} + */ + size: prop_types_default.a.string, + + /** + * This component may be used to wrap child elements or components. + */ + children: prop_types_default.a.element, + + /** + * An ARIA accessible role applied to the Menu component. This should generally be set to 'status' + */ + role: prop_types_default.a.string, + + /** + * @default div + */ + as: prop_types_default.a.elementType +}; +Spinner_Spinner.defaultProps = { + as: 'div' +}; +/* harmony default export */ var src_Spinner = (createBootstrapComponent(Spinner_Spinner, 'spinner')); +// CONCATENATED MODULE: ./src/SplitButton.js + + + +var SplitButton_jsxFileName = "/Users/jason/src/react-bootstrap/src/SplitButton.js"; + + + + + +/** + * @inherits Button, Dropdown + */ + +var SplitButton_SplitButton = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(SplitButton, _React$Component); + + function SplitButton() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = SplitButton.prototype; + + _proto.render = function render() { + var _this$props = this.props, + id = _this$props.id, + bsPrefix = _this$props.bsPrefix, + size = _this$props.size, + variant = _this$props.variant, + title = _this$props.title, + toggleLabel = _this$props.toggleLabel, + children = _this$props.children, + onClick = _this$props.onClick, + href = _this$props.href, + target = _this$props.target, + menuRole = _this$props.menuRole, + rootCloseEvent = _this$props.rootCloseEvent, + props = _objectWithoutPropertiesLoose(_this$props, ["id", "bsPrefix", "size", "variant", "title", "toggleLabel", "children", "onClick", "href", "target", "menuRole", "rootCloseEvent"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Dropdown, _extends({}, props, { + as: src_ButtonGroup, + __source: { + fileName: SplitButton_jsxFileName, + lineNumber: 79 + }, + __self: this + }), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Button, { + size: size, + variant: variant, + disabled: props.disabled, + bsPrefix: bsPrefix, + href: href, + target: target, + onClick: onClick, + __source: { + fileName: SplitButton_jsxFileName, + lineNumber: 80 + }, + __self: this + }, title), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Dropdown.Toggle, { + split: true, + id: id, + size: size, + variant: variant, + disabled: props.disabled, + childBsPrefix: bsPrefix, + __source: { + fileName: SplitButton_jsxFileName, + lineNumber: 91 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("span", { + className: "sr-only", + __source: { + fileName: SplitButton_jsxFileName, + lineNumber: 99 + }, + __self: this + }, toggleLabel)), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Dropdown.Menu, { + role: menuRole, + rootCloseEvent: rootCloseEvent, + __source: { + fileName: SplitButton_jsxFileName, + lineNumber: 102 + }, + __self: this + }, children)); + }; + + return SplitButton; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +SplitButton_SplitButton.propTypes = { + /** + * An html id attribute for the Toggle button, necessary for assistive technologies, such as screen readers. + * @type {string|number} + * @required + */ + id: prop_types_default.a.any, + + /** + * Accessible label for the toggle; the value of `title` if not specified. + */ + toggleLabel: prop_types_default.a.string, + + /** An `href` passed to the non-toggle Button */ + href: prop_types_default.a.string, + + /** An anchor `target` passed to the non-toggle Button */ + target: prop_types_default.a.string, + + /** An `onClick` handler passed to the non-toggle Button */ + onClick: prop_types_default.a.func, + + /** The content of the non-toggle Button. */ + title: prop_types_default.a.node.isRequired, + + /** Disables both Buttons */ + disabled: prop_types_default.a.bool, + + /** An ARIA accessible role applied to the Menu component. When set to 'menu', The dropdown */ + menuRole: prop_types_default.a.string, + + /** + * Which event when fired outside the component will cause it to be closed. + * + * _see [DropdownMenu](#menu-props) for more details_ + */ + rootCloseEvent: prop_types_default.a.string, + + /** @ignore */ + bsPrefix: prop_types_default.a.string, + + /** @ignore */ + variant: prop_types_default.a.string, + + /** @ignore */ + size: prop_types_default.a.string +}; +SplitButton_SplitButton.defaultProps = { + toggleLabel: 'Toggle dropdown' +}; +/* harmony default export */ var src_SplitButton = (SplitButton_SplitButton); +// CONCATENATED MODULE: ./src/TabContainer.js + + +var TabContainer_jsxFileName = "/Users/jason/src/react-bootstrap/src/TabContainer.js"; + + + + + + +var TabContainer_TabContainer = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(TabContainer, _React$Component); + + function TabContainer() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + + _this.getControlledId = function (key) { + return _this.getKey(key, 'tabpane'); + }; + + _this.getControllerId = function (key) { + return _this.getKey(key, 'tab'); + }; + + _this.state = { + tabContext: { + onSelect: _this.props.onSelect, + activeKey: _this.props.activeKey, + transition: _this.props.transition, + mountOnEnter: _this.props.mountOnEnter, + unmountOnExit: _this.props.unmountOnExit, + getControlledId: _this.getControlledId, + getControllerId: _this.getControllerId + } + }; + return _this; + } + + TabContainer.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) { + var activeKey = _ref.activeKey, + mountOnEnter = _ref.mountOnEnter, + unmountOnExit = _ref.unmountOnExit, + transition = _ref.transition; + return { + tabContext: _extends({}, prevState.tabContext, { + activeKey: activeKey, + mountOnEnter: mountOnEnter, + unmountOnExit: unmountOnExit, + transition: transition + }) + }; + }; + + var _proto = TabContainer.prototype; + + _proto.getKey = function getKey(key, type) { + var _this$props = this.props, + generateChildId = _this$props.generateChildId, + id = _this$props.id; + if (generateChildId) return generateChildId(key, type); + return id ? id + "-" + type + "-" + key : null; + }; + + _proto.render = function render() { + var _this$props2 = this.props, + children = _this$props2.children, + onSelect = _this$props2.onSelect; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_TabContext.Provider, { + value: this.state.tabContext, + __source: { + fileName: TabContainer_jsxFileName, + lineNumber: 129 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_SelectableContext.Provider, { + value: onSelect, + __source: { + fileName: TabContainer_jsxFileName, + lineNumber: 130 + }, + __self: this + }, children)); + }; + + return TabContainer; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +TabContainer_TabContainer.propTypes = { + /** + * HTML id attribute, required if no `generateChildId` prop + * is specified. + * + * @type {string} + */ + id: function id(props) { + var error = null; + + if (!props.generateChildId) { + for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + args[_key2 - 1] = arguments[_key2]; + } + + error = prop_types_default.a.string.apply(prop_types_default.a, [props].concat(args)); + + if (!error && !props.id) { + error = new Error('In order to properly initialize Tabs in a way that is accessible ' + 'to assistive technologies (such as screen readers) an `id` or a ' + '`generateChildId` prop to TabContainer is required'); + } + } + + return error; + }, + + /** + * Sets a default animation strategy for all children `<TabPane>`s. Use + * `false` to disable, `true` to enable the default `<Fade>` animation or + * a react-transition-group v2 `<Transition/>` component. + * + * @type {{Transition | false}} + * @default {Fade} + */ + transition: prop_types_default.a.oneOfType([prop_types_default.a.oneOf([false]), prop_types_default.a.elementType]), + + /** + * Wait until the first "enter" transition to mount tabs (add them to the DOM) + */ + mountOnEnter: prop_types_default.a.bool, + + /** + * Unmount tabs (remove it from the DOM) when they are no longer visible + */ + unmountOnExit: prop_types_default.a.bool, + + /** + * A function that takes an `eventKey` and `type` and returns a unique id for + * child tab `<NavItem>`s and `<TabPane>`s. The function _must_ be a pure + * function, meaning it should always return the _same_ id for the same set + * of inputs. The default value requires that an `id` to be set for the + * `<TabContainer>`. + * + * The `type` argument will either be `"tab"` or `"pane"`. + * + * @defaultValue (eventKey, type) => `${this.props.id}-${type}-${eventKey}` + */ + generateChildId: prop_types_default.a.func, + + /** + * A callback fired when a tab is selected. + * + * @controllable activeKey + */ + onSelect: prop_types_default.a.func, + + /** + * The `eventKey` of the currently active tab. + * + * @controllable onSelect + */ + activeKey: prop_types_default.a.any +}; +/* harmony default export */ var src_TabContainer = (uncontrollable_default()(TabContainer_TabContainer, { + activeKey: 'onSelect' +})); +// CONCATENATED MODULE: ./src/TabContent.js + + + +var TabContent_jsxFileName = "/Users/jason/src/react-bootstrap/src/TabContent.js"; + + + + + +var TabContent_TabContent = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(TabContent, _React$Component); + + function TabContent() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = TabContent.prototype; + + _proto.render = function render() { + var _this$props = this.props, + bsPrefix = _this$props.bsPrefix, + Component = _this$props.as, + className = _this$props.className, + props = _objectWithoutPropertiesLoose(_this$props, ["bsPrefix", "as", "className"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, props, { + className: classnames_default()(className, bsPrefix), + __source: { + fileName: TabContent_jsxFileName, + lineNumber: 24 + }, + __self: this + })); + }; + + return TabContent; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +TabContent_TabContent.propTypes = { + /** + * @default 'tab-content' + */ + bsPrefix: prop_types_default.a.string, + as: prop_types_default.a.elementType +}; +TabContent_TabContent.defaultProps = { + as: 'div' +}; +/* harmony default export */ var src_TabContent = (createBootstrapComponent(TabContent_TabContent, 'tab-content')); +// CONCATENATED MODULE: ./src/TabPane.js + + +var TabPane_jsxFileName = "/Users/jason/src/react-bootstrap/src/TabPane.js"; + + + + + + + +var TabPane_propTypes = { + /** + * @default 'tab-pane' + */ + bsPrefix: prop_types_default.a.string, + as: prop_types_default.a.elementType, + + /** + * A key that associates the `TabPane` with it's controlling `NavLink`. + */ + eventKey: prop_types_default.a.any, + + /** + * Toggles the active state of the TabPane, this is generally controlled by a + * TabContainer. + */ + active: prop_types_default.a.bool, + + /** + * Use animation when showing or hiding `<TabPane>`s. Use `false` to disable, + * `true` to enable the default `<Fade>` animation or + * a react-transition-group v2 `<Transition/>` component. + */ + transition: prop_types_default.a.oneOfType([prop_types_default.a.bool, prop_types_default.a.elementType]), + + /** + * + * @default 'tab-pane' + */ + bsClass: prop_types_default.a.string, + + /** + * Transition onEnter callback when animation is not `false` + */ + onEnter: prop_types_default.a.func, + + /** + * Transition onEntering callback when animation is not `false` + */ + onEntering: prop_types_default.a.func, + + /** + * Transition onEntered callback when animation is not `false` + */ + onEntered: prop_types_default.a.func, + + /** + * Transition onExit callback when animation is not `false` + */ + onExit: prop_types_default.a.func, + + /** + * Transition onExiting callback when animation is not `false` + */ + onExiting: prop_types_default.a.func, + + /** + * Transition onExited callback when animation is not `false` + */ + onExited: prop_types_default.a.func, + + /** + * Wait until the first "enter" transition to mount the tab (add it to the DOM) + */ + mountOnEnter: prop_types_default.a.bool, + + /** + * Unmount the tab (remove it from the DOM) when it is no longer visible + */ + unmountOnExit: prop_types_default.a.bool, + + /** @ignore * */ + id: prop_types_default.a.string, + + /** @ignore * */ + 'aria-labelledby': prop_types_default.a.string +}; + +function useTabContext(props) { + var context = Object(external_root_React_commonjs2_react_commonjs_react_amd_react_["useContext"])(src_TabContext); + if (!context) return props; + + var activeKey = context.activeKey, + getControlledId = context.getControlledId, + getControllerId = context.getControllerId, + rest = _objectWithoutPropertiesLoose(context, ["activeKey", "getControlledId", "getControllerId"]); + + var shouldTransition = props.transition !== false && rest.transition !== false; + var key = makeEventKey(props.eventKey); + return _extends({}, props, { + active: props.active == null && key != null ? makeEventKey(activeKey) === key : props.active, + id: getControlledId(props.eventKey), + 'aria-labelledby': getControllerId(props.eventKey), + transition: shouldTransition && (props.transition || rest.transition || src_Fade), + mountOnEnter: props.mountOnEnter != null ? props.mountOnEnter : rest.mountOnEnter, + unmountOnExit: props.unmountOnExit != null ? props.unmountOnExit : rest.unmountOnExit + }); +} + +var TabPane = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (props, ref) { + var _useTabContext = useTabContext(props), + bsPrefix = _useTabContext.bsPrefix, + className = _useTabContext.className, + active = _useTabContext.active, + onEnter = _useTabContext.onEnter, + onEntering = _useTabContext.onEntering, + onEntered = _useTabContext.onEntered, + onExit = _useTabContext.onExit, + onExiting = _useTabContext.onExiting, + onExited = _useTabContext.onExited, + mountOnEnter = _useTabContext.mountOnEnter, + unmountOnExit = _useTabContext.unmountOnExit, + Transition = _useTabContext.transition, + _useTabContext$as = _useTabContext.as, + Component = _useTabContext$as === void 0 ? 'div' : _useTabContext$as, + _ = _useTabContext.eventKey, + rest = _objectWithoutPropertiesLoose(_useTabContext, ["bsPrefix", "className", "active", "onEnter", "onEntering", "onEntered", "onExit", "onExiting", "onExited", "mountOnEnter", "unmountOnExit", "transition", "as", "eventKey"]); + + var prefix = useBootstrapPrefix(bsPrefix, 'tab-pane'); + if (!active && unmountOnExit) return null; + var pane = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Component, _extends({}, rest, { + ref: ref, + role: "tabpanel", + "aria-hidden": !active, + className: classnames_default()(className, prefix, { + active: active + }), + __source: { + fileName: TabPane_jsxFileName, + lineNumber: 141 + }, + __self: this + })); + if (Transition) pane = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Transition, { + in: active, + onEnter: onEnter, + onEntering: onEntering, + onEntered: onEntered, + onExit: onExit, + onExiting: onExiting, + onExited: onExited, + mountOnEnter: mountOnEnter, + unmountOnExit: mountOnEnter, + __source: { + fileName: TabPane_jsxFileName, + lineNumber: 152 + }, + __self: this + }, pane); // We provide an empty the TabContext so `<Nav>`s in `<TabPane>`s don't + // conflict with the top level one. + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_TabContext.Provider, { + value: null, + __source: { + fileName: TabPane_jsxFileName, + lineNumber: 170 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_SelectableContext.Provider, { + value: null, + __source: { + fileName: TabPane_jsxFileName, + lineNumber: 171 + }, + __self: this + }, pane)); +}); +TabPane.displayName = 'TabPane'; +TabPane.propTypes = TabPane_propTypes; +/* harmony default export */ var src_TabPane = (TabPane); +// CONCATENATED MODULE: ./src/Tab.js + + + + + + +/* eslint-disable react/require-render-return, react/no-unused-prop-types */ + +var Tab_Tab = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Tab, _React$Component); + + function Tab() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Tab.prototype; + + _proto.render = function render() { + throw new Error('ReactBootstrap: The `Tab` component is not meant to be rendered! ' + "It's an abstract component that is only valid as a direct Child of the `Tabs` Component. " + 'For custom tabs components use TabPane and TabsContainer directly'); + }; + + return Tab; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +Tab_Tab.propTypes = { + title: prop_types_default.a.node.isRequired +}; +Tab_Tab.Container = src_TabContainer; +Tab_Tab.Content = src_TabContent; +Tab_Tab.Pane = src_TabPane; +/* harmony default export */ var src_Tab = (Tab_Tab); +// CONCATENATED MODULE: ./src/Table.js + + + +var Table_jsxFileName = "/Users/jason/src/react-bootstrap/src/Table.js"; + + + + + +var Table_Table = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Table, _React$Component); + + function Table() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Table.prototype; + + _proto.render = function render() { + var _this$props = this.props, + bsPrefix = _this$props.bsPrefix, + className = _this$props.className, + striped = _this$props.striped, + bordered = _this$props.bordered, + borderless = _this$props.borderless, + hover = _this$props.hover, + size = _this$props.size, + variant = _this$props.variant, + responsive = _this$props.responsive, + props = _objectWithoutPropertiesLoose(_this$props, ["bsPrefix", "className", "striped", "bordered", "borderless", "hover", "size", "variant", "responsive"]); + + var classes = classnames_default()(bsPrefix, className, variant && bsPrefix + "-" + variant, size && bsPrefix + "-" + size, striped && bsPrefix + "-striped", bordered && bsPrefix + "-bordered", borderless && bsPrefix + "-borderless", hover && bsPrefix + "-hover"); + var table = external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("table", _extends({}, props, { + className: classes, + __source: { + fileName: Table_jsxFileName, + lineNumber: 83 + }, + __self: this + })); + + if (responsive) { + var responsiveClass = bsPrefix + "-responsive"; + + if (typeof responsive === 'string') { + responsiveClass = responsiveClass + "-" + responsive; + } + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", { + className: responsiveClass, + __source: { + fileName: Table_jsxFileName, + lineNumber: 91 + }, + __self: this + }, table); + } + + return table; + }; + + return Table; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +Table_Table.propTypes = { + /** + * @default 'table' + */ + bsPrefix: prop_types_default.a.string, + + /** + * Adds zebra-striping to any table row within the `<tbody>`. + */ + striped: prop_types_default.a.bool, + + /** + * Adds borders on all sides of the table and cells. + */ + bordered: prop_types_default.a.bool, + + /** + * Removes all borders on the table and cells, including table header. + */ + borderless: prop_types_default.a.bool, + + /** + * Enable a hover state on table rows within a `<tbody>`. + */ + hover: prop_types_default.a.bool, + + /** + * Make tables more compact by cutting cell padding in half by setting + * size as `sm`. + */ + size: prop_types_default.a.string, + + /** + * Invert the colors of the table — with light text on dark backgrounds + * by setting variant as `dark`. + */ + variant: prop_types_default.a.string, + + /** + * Responsive tables allow tables to be scrolled horizontally with ease. + * Across every breakpoint, use `responsive` for horizontally + * scrolling tables. Responsive tables are wrapped automatically in a `div`. + * Use `responsive="sm"`, `responsive="md"`, `responsive="lg"`, or + * `responsive="xl"` as needed to create responsive tables up to + * a particular breakpoint. From that breakpoint and up, the table will + * behave normally and not scroll horizontally. + */ + responsive: prop_types_default.a.oneOfType([prop_types_default.a.bool, prop_types_default.a.string]) +}; +/* harmony default export */ var src_Table = (createBootstrapComponent(Table_Table, 'table')); +// CONCATENATED MODULE: ./src/Tabs.js + + + +var Tabs_jsxFileName = "/Users/jason/src/react-bootstrap/src/Tabs.js"; + + + + + + + + + + + +var Tabs_TabContainer = src_TabContainer.ControlledComponent; +var Tabs_propTypes = { + /** + * Mark the Tab with a matching `eventKey` as active. + * + * @controllable onSelect + */ + activeKey: prop_types_default.a.any, + + /** + * Navigation style + * + * @type {('tabs'| 'pills')} + */ + variant: prop_types_default.a.string, + + /** + * Sets a default animation strategy for all children `<TabPane>`s. Use + * `false` to disable, `true` to enable the default `<Fade>` animation or + * a react-transition-group v2 `<Transition/>` component. + * + * @type {Transition | false} + * @default {Fade} + */ + transition: prop_types_default.a.oneOfType([prop_types_default.a.oneOf([false]), prop_types_default.a.elementType]), + + /** + * HTML id attribute, required if no `generateChildId` prop + * is specified. + * + * @type {string} + */ + id: isRequiredForA11y_default()(prop_types_default.a.string), + + /** + * Callback fired when a Tab is selected. + * + * ```js + * function ( + * Any eventKey, + * SyntheticEvent event? + * ) + * ``` + * + * @controllable activeKey + */ + onSelect: prop_types_default.a.func, + + /** + * Wait until the first "enter" transition to mount tabs (add them to the DOM) + */ + mountOnEnter: prop_types_default.a.bool, + + /** + * Unmount tabs (remove it from the DOM) when it is no longer visible + */ + unmountOnExit: prop_types_default.a.bool +}; +var Tabs_defaultProps = { + variant: 'tabs', + mountOnEnter: false, + unmountOnExit: false +}; + +function getDefaultActiveKey(children) { + var defaultActiveKey; + forEach(children, function (child) { + if (defaultActiveKey == null) { + defaultActiveKey = child.props.eventKey; + } + }); + return defaultActiveKey; +} + +var Tabs_Tabs = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(Tabs, _React$Component); + + function Tabs() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = Tabs.prototype; + + _proto.renderTab = function renderTab(child) { + var _child$props = child.props, + title = _child$props.title, + eventKey = _child$props.eventKey, + disabled = _child$props.disabled, + tabClassName = _child$props.tabClassName; + + if (title == null) { + return null; + } + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_NavItem, { + as: src_NavLink, + eventKey: eventKey, + disabled: disabled, + className: tabClassName, + __source: { + fileName: Tabs_jsxFileName, + lineNumber: 104 + }, + __self: this + }, title); + }; + + _proto.render = function render() { + var _this$props = this.props, + id = _this$props.id, + onSelect = _this$props.onSelect, + transition = _this$props.transition, + mountOnEnter = _this$props.mountOnEnter, + unmountOnExit = _this$props.unmountOnExit, + children = _this$props.children, + _this$props$activeKey = _this$props.activeKey, + activeKey = _this$props$activeKey === void 0 ? getDefaultActiveKey(children) : _this$props$activeKey, + props = _objectWithoutPropertiesLoose(_this$props, ["id", "onSelect", "transition", "mountOnEnter", "unmountOnExit", "children", "activeKey"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(Tabs_TabContainer, { + id: id, + activeKey: activeKey, + onSelect: onSelect, + transition: transition, + mountOnEnter: mountOnEnter, + unmountOnExit: unmountOnExit, + __source: { + fileName: Tabs_jsxFileName, + lineNumber: 128 + }, + __self: this + }, external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Nav, _extends({}, props, { + role: "tablist", + as: "nav", + __source: { + fileName: Tabs_jsxFileName, + lineNumber: 136 + }, + __self: this + }), map(children, this.renderTab)), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_TabContent, { + __source: { + fileName: Tabs_jsxFileName, + lineNumber: 140 + }, + __self: this + }, map(children, function (child) { + var childProps = _extends({}, child.props); + + delete childProps.title; + delete childProps.disabled; + delete childProps.tabClassName; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_TabPane, _extends({}, childProps, { + __source: { + fileName: Tabs_jsxFileName, + lineNumber: 147 + }, + __self: this + })); + }))); + }; + + return Tabs; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +Tabs_Tabs.propTypes = Tabs_propTypes; +Tabs_Tabs.defaultProps = Tabs_defaultProps; +/* harmony default export */ var src_Tabs = (uncontrollable_default()(Tabs_Tabs, { + activeKey: 'onSelect' +})); +// CONCATENATED MODULE: ./src/ToggleButton.js + + + +var ToggleButton_jsxFileName = "/Users/jason/src/react-bootstrap/src/ToggleButton.js"; + + + + + +var ToggleButton_noop = function noop() {}; + +var ToggleButton_propTypes = { + /** + * The `<input>` element `type` + */ + type: prop_types_default.a.oneOf(['checkbox', 'radio']), + + /** + * The HTML input name, used to group like checkboxes or radio buttons together + * semantically + */ + name: prop_types_default.a.string, + + /** + * The checked state of the input, managed by `<ToggleButtonGroup>` automatically + */ + checked: prop_types_default.a.bool, + + /** + * The disabled state of both the label and input + */ + disabled: prop_types_default.a.bool, + + /** + * A callback fired when the underlying input element changes. This is passed + * directly to the `<input>` so shares the same signature as a native `onChange` event. + */ + onChange: prop_types_default.a.func, + + /** + * The value of the input, should be unique amoungst it's siblings when nested in a + * `ToggleButtonGroup`. + */ + value: prop_types_default.a.any.isRequired, + + /** + * A ref attached to the `<input>` element + * @type {ReactRef} + */ + inputRef: prop_types_default.a.any, + + /** @ignore */ + innerRef: prop_types_default.a.any +}; + +var ToggleButton_ToggleButton = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(ToggleButton, _React$Component); + + function ToggleButton() { + var _this; + + for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this; + _this.state = { + focused: false + }; + + _this.handleFocus = function (e) { + if (e.target.tagName === 'INPUT') _this.setState({ + focused: true + }); + }; + + _this.handleBlur = function (e) { + if (e.target.tagName === 'INPUT') _this.setState({ + focused: false + }); + }; + + return _this; + } + + var _proto = ToggleButton.prototype; + + _proto.render = function render() { + var _this$props = this.props, + children = _this$props.children, + name = _this$props.name, + className = _this$props.className, + checked = _this$props.checked, + type = _this$props.type, + onChange = _this$props.onChange, + value = _this$props.value, + disabled = _this$props.disabled, + inputRef = _this$props.inputRef, + innerRef = _this$props.innerRef, + props = _objectWithoutPropertiesLoose(_this$props, ["children", "name", "className", "checked", "type", "onChange", "value", "disabled", "inputRef", "innerRef"]); + + var focused = this.state.focused; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_Button, _extends({}, props, { + ref: innerRef, + className: classnames_default()(className, focused && 'focus', disabled && 'disabled'), + type: null, + active: !!checked, + as: "label", + __source: { + fileName: ToggleButton_jsxFileName, + lineNumber: 80 + }, + __self: this + }), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("input", { + name: name, + type: type, + value: value, + ref: inputRef, + autoComplete: "off", + checked: !!checked, + disabled: !!disabled, + onFocus: this.handleFocus, + onBlur: this.handleBlur, + onChange: onChange || ToggleButton_noop, + __source: { + fileName: ToggleButton_jsxFileName, + lineNumber: 92 + }, + __self: this + }), children); + }; + + return ToggleButton; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +ToggleButton_ToggleButton.propTypes = ToggleButton_propTypes; +/* harmony default export */ var src_ToggleButton = (external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.forwardRef(function (props, ref) { + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(ToggleButton_ToggleButton, _extends({ + innerRef: ref + }, props, { + __source: { + fileName: ToggleButton_jsxFileName, + lineNumber: 114 + }, + __self: this + })); +})); +// EXTERNAL MODULE: ./node_modules/invariant/browser.js +var browser = __webpack_require__(24); +var browser_default = /*#__PURE__*/__webpack_require__.n(browser); + +// CONCATENATED MODULE: ./src/ToggleButtonGroup.js + + + +var ToggleButtonGroup_jsxFileName = "/Users/jason/src/react-bootstrap/src/ToggleButtonGroup.js"; + + + + + + + + +var ToggleButtonGroup_propTypes = { + /** + * An HTML `<input>` name for each child button. + * + * __Required if `type` is set to `'radio'`__ + */ + name: prop_types_default.a.string, + + /** + * The value, or array of values, of the active (pressed) buttons + * + * @controllable onChange + */ + value: prop_types_default.a.any, + + /** + * Callback fired when a button is pressed, depending on whether the `type` + * is `'radio'` or `'checkbox'`, `onChange` will be called with the value or + * array of active values + * + * @controllable values + */ + onChange: prop_types_default.a.func, + + /** + * The input `type` of the rendered buttons, determines the toggle behavior + * of the buttons + */ + type: prop_types_default.a.oneOf(['checkbox', 'radio']).isRequired +}; +var ToggleButtonGroup_defaultProps = { + type: 'radio' +}; + +var ToggleButtonGroup_ToggleButtonGroup = +/*#__PURE__*/ +function (_React$Component) { + _inheritsLoose(ToggleButtonGroup, _React$Component); + + function ToggleButtonGroup() { + return _React$Component.apply(this, arguments) || this; + } + + var _proto = ToggleButtonGroup.prototype; + + _proto.getValues = function getValues() { + var value = this.props.value; + return value == null ? [] : [].concat(value); + }; + + _proto.handleToggle = function handleToggle(value, event) { + var _this$props = this.props, + type = _this$props.type, + onChange = _this$props.onChange; + var values = this.getValues(); + var isActive = values.indexOf(value) !== -1; + + if (type === 'radio') { + if (!isActive) onChange(value, event); + return; + } + + if (isActive) { + onChange(values.filter(function (n) { + return n !== value; + }), event); + } else { + onChange([].concat(values, [value]), event); + } + }; + + _proto.render = function render() { + var _this = this; + + var _this$props2 = this.props, + children = _this$props2.children, + type = _this$props2.type, + name = _this$props2.name, + props = _objectWithoutPropertiesLoose(_this$props2, ["children", "type", "name"]); + + delete props.onChange; + delete props.value; + var values = this.getValues(); + !(type !== 'radio' || !!name) ? false ? undefined : browser_default()(false) : void 0; + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement(src_ButtonGroup, _extends({}, props, { + toggle: true, + __source: { + fileName: ToggleButtonGroup_jsxFileName, + lineNumber: 84 + }, + __self: this + }), map(children, function (child) { + var _child$props = child.props, + value = _child$props.value, + onChange = _child$props.onChange; + + var handler = function handler(e) { + return _this.handleToggle(value, e); + }; + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.cloneElement(child, { + type: type, + name: child.name || name, + checked: values.indexOf(value) !== -1, + onChange: utils_createChainedFunction(onChange, handler) + }); + })); + }; + + return ToggleButtonGroup; +}(external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.Component); + +ToggleButtonGroup_ToggleButtonGroup.propTypes = ToggleButtonGroup_propTypes; +ToggleButtonGroup_ToggleButtonGroup.defaultProps = ToggleButtonGroup_defaultProps; +var UncontrolledToggleButtonGroup = uncontrollable_default()(ToggleButtonGroup_ToggleButtonGroup, { + value: 'onChange' +}); +UncontrolledToggleButtonGroup.Button = src_ToggleButton; +/* harmony default export */ var src_ToggleButtonGroup = (UncontrolledToggleButtonGroup); +// CONCATENATED MODULE: ./src/Tooltip.js + + +var Tooltip_jsxFileName = "/Users/jason/src/react-bootstrap/src/Tooltip.js"; + + + + + +var Tooltip_propTypes = { + /** + * @default 'tooltip' + */ + bsPrefix: prop_types_default.a.string, + + /** + * An html id attribute, necessary for accessibility + * @type {string|number} + * @required + */ + id: isRequiredForA11y_default()(prop_types_default.a.oneOfType([prop_types_default.a.string, prop_types_default.a.number])), + + /** + * Sets the direction the Tooltip is positioned towards. + * + * > This is generally provided by the `Overlay` component positioning the tooltip + */ + placement: prop_types_default.a.oneOf(['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']), + + /** + * An Overlay injected set of props for positioning the tooltip arrow. + * + * > This is generally provided by the `Overlay` component positioning the tooltip + * + * @type {{ ref: ReactRef, style: Object }} + */ + arrowProps: prop_types_default.a.shape({ + ref: prop_types_default.a.any, + style: prop_types_default.a.object + }), + + /** @private */ + innerRef: prop_types_default.a.any, + + /** @private */ + scheduleUpdate: prop_types_default.a.func, + + /** @private */ + outOfBoundaries: prop_types_default.a.any +}; +var Tooltip_defaultProps = { + placement: 'right' +}; + +function Tooltip(_ref) { + var bsPrefix = _ref.bsPrefix, + innerRef = _ref.innerRef, + placement = _ref.placement, + className = _ref.className, + style = _ref.style, + children = _ref.children, + arrowProps = _ref.arrowProps, + _ = _ref.scheduleUpdate, + _1 = _ref.outOfBoundaries, + props = _objectWithoutPropertiesLoose(_ref, ["bsPrefix", "innerRef", "placement", "className", "style", "children", "arrowProps", "scheduleUpdate", "outOfBoundaries"]); + + return external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", _extends({ + ref: innerRef, + style: style, + role: "tooltip", + "x-placement": placement, + className: classnames_default()(className, bsPrefix, "bs-tooltip-" + placement) + }, props, { + __source: { + fileName: Tooltip_jsxFileName, + lineNumber: 84 + }, + __self: this + }), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", _extends({ + className: "arrow" + }, arrowProps, { + __source: { + fileName: Tooltip_jsxFileName, + lineNumber: 92 + }, + __self: this + })), external_root_React_commonjs2_react_commonjs_react_amd_react_default.a.createElement("div", { + className: bsPrefix + "-inner", + __source: { + fileName: Tooltip_jsxFileName, + lineNumber: 93 + }, + __self: this + }, children)); +} + +Tooltip.propTypes = Tooltip_propTypes; +Tooltip.defaultProps = Tooltip_defaultProps; +/* harmony default export */ var src_Tooltip = (createBootstrapComponent(Tooltip, 'tooltip')); +// CONCATENATED MODULE: ./src/index.js +/* concated harmony reexport Accordion */__webpack_require__.d(__webpack_exports__, "Accordion", function() { return src_Accordion; }); +/* concated harmony reexport Alert */__webpack_require__.d(__webpack_exports__, "Alert", function() { return src_Alert; }); +/* concated harmony reexport Badge */__webpack_require__.d(__webpack_exports__, "Badge", function() { return src_Badge; }); +/* concated harmony reexport Breadcrumb */__webpack_require__.d(__webpack_exports__, "Breadcrumb", function() { return src_Breadcrumb; }); +/* concated harmony reexport BreadcrumbItem */__webpack_require__.d(__webpack_exports__, "BreadcrumbItem", function() { return src_BreadcrumbItem; }); +/* concated harmony reexport Button */__webpack_require__.d(__webpack_exports__, "Button", function() { return src_Button; }); +/* concated harmony reexport ButtonGroup */__webpack_require__.d(__webpack_exports__, "ButtonGroup", function() { return src_ButtonGroup; }); +/* concated harmony reexport ButtonToolbar */__webpack_require__.d(__webpack_exports__, "ButtonToolbar", function() { return src_ButtonToolbar; }); +/* concated harmony reexport Card */__webpack_require__.d(__webpack_exports__, "Card", function() { return src_Card; }); +/* concated harmony reexport CardColumns */__webpack_require__.d(__webpack_exports__, "CardColumns", function() { return CardColumns; }); +/* concated harmony reexport CardDeck */__webpack_require__.d(__webpack_exports__, "CardDeck", function() { return CardDeck; }); +/* concated harmony reexport CardImg */__webpack_require__.d(__webpack_exports__, "CardImg", function() { return src_CardImg; }); +/* concated harmony reexport CardGroup */__webpack_require__.d(__webpack_exports__, "CardGroup", function() { return CardGroup; }); +/* concated harmony reexport Carousel */__webpack_require__.d(__webpack_exports__, "Carousel", function() { return src_Carousel; }); +/* concated harmony reexport CarouselItem */__webpack_require__.d(__webpack_exports__, "CarouselItem", function() { return CarouselItem; }); +/* concated harmony reexport CloseButton */__webpack_require__.d(__webpack_exports__, "CloseButton", function() { return src_CloseButton; }); +/* concated harmony reexport Col */__webpack_require__.d(__webpack_exports__, "Col", function() { return src_Col; }); +/* concated harmony reexport Collapse */__webpack_require__.d(__webpack_exports__, "Collapse", function() { return src_Collapse; }); +/* concated harmony reexport Dropdown */__webpack_require__.d(__webpack_exports__, "Dropdown", function() { return src_Dropdown; }); +/* concated harmony reexport DropdownButton */__webpack_require__.d(__webpack_exports__, "DropdownButton", function() { return src_DropdownButton; }); +/* concated harmony reexport DropdownItem */__webpack_require__.d(__webpack_exports__, "DropdownItem", function() { return src_DropdownItem; }); +/* concated harmony reexport Fade */__webpack_require__.d(__webpack_exports__, "Fade", function() { return src_Fade; }); +/* concated harmony reexport Form */__webpack_require__.d(__webpack_exports__, "Form", function() { return src_Form; }); +/* concated harmony reexport FormControl */__webpack_require__.d(__webpack_exports__, "FormControl", function() { return src_FormControl; }); +/* concated harmony reexport FormCheck */__webpack_require__.d(__webpack_exports__, "FormCheck", function() { return src_FormCheck; }); +/* concated harmony reexport FormGroup */__webpack_require__.d(__webpack_exports__, "FormGroup", function() { return src_FormGroup; }); +/* concated harmony reexport FormLabel */__webpack_require__.d(__webpack_exports__, "FormLabel", function() { return src_FormLabel; }); +/* concated harmony reexport FormText */__webpack_require__.d(__webpack_exports__, "FormText", function() { return src_FormText; }); +/* concated harmony reexport Container */__webpack_require__.d(__webpack_exports__, "Container", function() { return src_Container; }); +/* concated harmony reexport Image */__webpack_require__.d(__webpack_exports__, "Image", function() { return src_Image; }); +/* concated harmony reexport Figure */__webpack_require__.d(__webpack_exports__, "Figure", function() { return src_Figure; }); +/* concated harmony reexport InputGroup */__webpack_require__.d(__webpack_exports__, "InputGroup", function() { return src_InputGroup; }); +/* concated harmony reexport Jumbotron */__webpack_require__.d(__webpack_exports__, "Jumbotron", function() { return src_Jumbotron; }); +/* concated harmony reexport ListGroup */__webpack_require__.d(__webpack_exports__, "ListGroup", function() { return src_ListGroup; }); +/* concated harmony reexport ListGroupItem */__webpack_require__.d(__webpack_exports__, "ListGroupItem", function() { return src_ListGroupItem; }); +/* concated harmony reexport Media */__webpack_require__.d(__webpack_exports__, "Media", function() { return src_Media; }); +/* concated harmony reexport Modal */__webpack_require__.d(__webpack_exports__, "Modal", function() { return src_Modal; }); +/* concated harmony reexport ModalBody */__webpack_require__.d(__webpack_exports__, "ModalBody", function() { return ModalBody; }); +/* concated harmony reexport ModalDialog */__webpack_require__.d(__webpack_exports__, "ModalDialog", function() { return src_ModalDialog; }); +/* concated harmony reexport ModalFooter */__webpack_require__.d(__webpack_exports__, "ModalFooter", function() { return ModalFooter; }); +/* concated harmony reexport ModalTitle */__webpack_require__.d(__webpack_exports__, "ModalTitle", function() { return ModalTitle; }); +/* concated harmony reexport Nav */__webpack_require__.d(__webpack_exports__, "Nav", function() { return src_Nav; }); +/* concated harmony reexport Navbar */__webpack_require__.d(__webpack_exports__, "Navbar", function() { return src_Navbar; }); +/* concated harmony reexport NavbarBrand */__webpack_require__.d(__webpack_exports__, "NavbarBrand", function() { return src_NavbarBrand; }); +/* concated harmony reexport NavDropdown */__webpack_require__.d(__webpack_exports__, "NavDropdown", function() { return src_NavDropdown; }); +/* concated harmony reexport NavItem */__webpack_require__.d(__webpack_exports__, "NavItem", function() { return src_NavItem; }); +/* concated harmony reexport Overlay */__webpack_require__.d(__webpack_exports__, "Overlay", function() { return src_Overlay; }); +/* concated harmony reexport OverlayTrigger */__webpack_require__.d(__webpack_exports__, "OverlayTrigger", function() { return src_OverlayTrigger; }); +/* concated harmony reexport PageItem */__webpack_require__.d(__webpack_exports__, "PageItem", function() { return PageItem; }); +/* concated harmony reexport Pagination */__webpack_require__.d(__webpack_exports__, "Pagination", function() { return src_Pagination; }); +/* concated harmony reexport Popover */__webpack_require__.d(__webpack_exports__, "Popover", function() { return src_Popover; }); +/* concated harmony reexport ProgressBar */__webpack_require__.d(__webpack_exports__, "ProgressBar", function() { return src_ProgressBar; }); +/* concated harmony reexport ResponsiveEmbed */__webpack_require__.d(__webpack_exports__, "ResponsiveEmbed", function() { return src_ResponsiveEmbed; }); +/* concated harmony reexport Row */__webpack_require__.d(__webpack_exports__, "Row", function() { return src_Row; }); +/* concated harmony reexport SafeAnchor */__webpack_require__.d(__webpack_exports__, "SafeAnchor", function() { return src_SafeAnchor; }); +/* concated harmony reexport Spinner */__webpack_require__.d(__webpack_exports__, "Spinner", function() { return src_Spinner; }); +/* concated harmony reexport SplitButton */__webpack_require__.d(__webpack_exports__, "SplitButton", function() { return src_SplitButton; }); +/* concated harmony reexport Tab */__webpack_require__.d(__webpack_exports__, "Tab", function() { return src_Tab; }); +/* concated harmony reexport TabContainer */__webpack_require__.d(__webpack_exports__, "TabContainer", function() { return src_TabContainer; }); +/* concated harmony reexport TabContent */__webpack_require__.d(__webpack_exports__, "TabContent", function() { return src_TabContent; }); +/* concated harmony reexport Table */__webpack_require__.d(__webpack_exports__, "Table", function() { return src_Table; }); +/* concated harmony reexport TabPane */__webpack_require__.d(__webpack_exports__, "TabPane", function() { return src_TabPane; }); +/* concated harmony reexport Tabs */__webpack_require__.d(__webpack_exports__, "Tabs", function() { return src_Tabs; }); +/* concated harmony reexport ThemeProvider */__webpack_require__.d(__webpack_exports__, "ThemeProvider", function() { return src_ThemeProvider; }); +/* concated harmony reexport ToggleButton */__webpack_require__.d(__webpack_exports__, "ToggleButton", function() { return src_ToggleButton; }); +/* concated harmony reexport ToggleButtonGroup */__webpack_require__.d(__webpack_exports__, "ToggleButtonGroup", function() { return src_ToggleButtonGroup; }); +/* concated harmony reexport Tooltip */__webpack_require__.d(__webpack_exports__, "Tooltip", function() { return src_Tooltip; }); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +/***/ }) +/******/ ]); +});
\ No newline at end of file |