{"version":3,"file":"main.min.js","mappings":"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","sources":["webpack://RadioSelection/./node_modules/@hypnosphi/create-react-context/lib/implementation.js","webpack://RadioSelection/./node_modules/@hypnosphi/create-react-context/lib/index.js","webpack://RadioSelection/./node_modules/batch-processor/src/batch-processor.js","webpack://RadioSelection/./node_modules/batch-processor/src/utils.js","webpack://RadioSelection/./node_modules/call-bind/callBound.js","webpack://RadioSelection/./node_modules/call-bind/index.js","webpack://RadioSelection/./node_modules/classnames/index.js","webpack://RadioSelection/./node_modules/deep-equal/index.js","webpack://RadioSelection/./node_modules/define-properties/index.js","webpack://RadioSelection/./node_modules/dom-helpers/class/addClass.js","webpack://RadioSelection/./node_modules/dom-helpers/class/hasClass.js","webpack://RadioSelection/./node_modules/dom-helpers/class/removeClass.js","webpack://RadioSelection/./node_modules/element-resize-detector/src/browser-detector.js","webpack://RadioSelection/./node_modules/element-resize-detector/src/collection-utils.js","webpack://RadioSelection/./node_modules/element-resize-detector/src/detection-strategy/object.js","webpack://RadioSelection/./node_modules/element-resize-detector/src/detection-strategy/scroll.js","webpack://RadioSelection/./node_modules/element-resize-detector/src/element-resize-detector.js","webpack://RadioSelection/./node_modules/element-resize-detector/src/element-utils.js","webpack://RadioSelection/./node_modules/element-resize-detector/src/id-generator.js","webpack://RadioSelection/./node_modules/element-resize-detector/src/id-handler.js","webpack://RadioSelection/./node_modules/element-resize-detector/src/listener-handler.js","webpack://RadioSelection/./node_modules/element-resize-detector/src/reporter.js","webpack://RadioSelection/./node_modules/element-resize-detector/src/state-handler.js","webpack://RadioSelection/./node_modules/function-bind/implementation.js","webpack://RadioSelection/./node_modules/function-bind/index.js","webpack://RadioSelection/./node_modules/functions-have-names/index.js","webpack://RadioSelection/./node_modules/get-intrinsic/index.js","webpack://RadioSelection/./node_modules/gud/index.js","webpack://RadioSelection/./node_modules/has-property-descriptors/index.js","webpack://RadioSelection/./node_modules/has-symbols/index.js","webpack://RadioSelection/./node_modules/has-symbols/shams.js","webpack://RadioSelection/./node_modules/has-tostringtag/shams.js","webpack://RadioSelection/./node_modules/has/src/index.js","webpack://RadioSelection/./node_modules/invariant/browser.js","webpack://RadioSelection/./node_modules/is-arguments/index.js","webpack://RadioSelection/./node_modules/is-date-object/index.js","webpack://RadioSelection/./node_modules/is-regex/index.js","webpack://RadioSelection/./node_modules/object-is/implementation.js","webpack://RadioSelection/./node_modules/object-is/index.js","webpack://RadioSelection/./node_modules/object-is/polyfill.js","webpack://RadioSelection/./node_modules/object-is/shim.js","webpack://RadioSelection/./node_modules/object-keys/implementation.js","webpack://RadioSelection/./node_modules/object-keys/index.js","webpack://RadioSelection/./node_modules/object-keys/isArguments.js","webpack://RadioSelection/./node_modules/react-lifecycles-compat/react-lifecycles-compat.es.js","webpack://RadioSelection/../src/resize-detector.js","webpack://RadioSelection/../src/with-size.js","webpack://RadioSelection/../src/component.js","webpack://RadioSelection/../src/index.js","webpack://RadioSelection/./node_modules/react-transition-group/CSSTransition.js","webpack://RadioSelection/./node_modules/react-transition-group/ReplaceTransition.js","webpack://RadioSelection/./node_modules/react-transition-group/Transition.js","webpack://RadioSelection/./node_modules/react-transition-group/TransitionGroup.js","webpack://RadioSelection/./node_modules/react-transition-group/TransitionGroupContext.js","webpack://RadioSelection/./node_modules/react-transition-group/index.js","webpack://RadioSelection/./node_modules/react-transition-group/utils/ChildMapping.js","webpack://RadioSelection/./node_modules/react-transition-group/utils/PropTypes.js","webpack://RadioSelection/./node_modules/regexp.prototype.flags/implementation.js","webpack://RadioSelection/./node_modules/regexp.prototype.flags/index.js","webpack://RadioSelection/./node_modules/regexp.prototype.flags/polyfill.js","webpack://RadioSelection/./node_modules/regexp.prototype.flags/shim.js","webpack://RadioSelection/./node_modules/shallowequal/index.js","webpack://RadioSelection/./node_modules/warning/warning.js","webpack://RadioSelection/external var \"PropTypes\"","webpack://RadioSelection/external var \"React\"","webpack://RadioSelection/external var \"ReactDOM\"","webpack://RadioSelection/./node_modules/@babel/runtime/helpers/interopRequireDefault.js","webpack://RadioSelection/../throttle.js","webpack://RadioSelection/../debounce.js","webpack://RadioSelection/webpack/bootstrap","webpack://RadioSelection/webpack/runtime/compat get default export","webpack://RadioSelection/webpack/runtime/define property getters","webpack://RadioSelection/webpack/runtime/global","webpack://RadioSelection/webpack/runtime/hasOwnProperty shorthand","webpack://RadioSelection/webpack/runtime/make namespace object","webpack://RadioSelection/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://RadioSelection/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://RadioSelection/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://RadioSelection/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://RadioSelection/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://RadioSelection/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://RadioSelection/../../src/utils/isBrowser.js","webpack://RadioSelection/../../src/utils/debounce.js","webpack://RadioSelection/../../src/utils/isFunction.js","webpack://RadioSelection/../../src/utils/getStyleComputedProperty.js","webpack://RadioSelection/../../src/utils/getParentNode.js","webpack://RadioSelection/../../src/utils/getScrollParent.js","webpack://RadioSelection/../../src/utils/getReferenceNode.js","webpack://RadioSelection/../../src/utils/isIE.js","webpack://RadioSelection/../../src/utils/getOffsetParent.js","webpack://RadioSelection/../../src/utils/getRoot.js","webpack://RadioSelection/../../src/utils/findCommonOffsetParent.js","webpack://RadioSelection/../../src/utils/isOffsetContainer.js","webpack://RadioSelection/../../src/utils/getScroll.js","webpack://RadioSelection/../../src/utils/includeScroll.js","webpack://RadioSelection/../../src/utils/getBordersSize.js","webpack://RadioSelection/../../src/utils/getWindowSizes.js","webpack://RadioSelection/../../src/utils/getClientRect.js","webpack://RadioSelection/../../src/utils/getBoundingClientRect.js","webpack://RadioSelection/../../src/utils/getOffsetRectRelativeToArbitraryNode.js","webpack://RadioSelection/../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","webpack://RadioSelection/../../src/utils/isFixed.js","webpack://RadioSelection/../../src/utils/getFixedPositionOffsetParent.js","webpack://RadioSelection/../../src/utils/getBoundaries.js","webpack://RadioSelection/../../src/utils/computeAutoPlacement.js","webpack://RadioSelection/../../src/utils/getReferenceOffsets.js","webpack://RadioSelection/../../src/utils/getOuterSizes.js","webpack://RadioSelection/../../src/utils/getOppositePlacement.js","webpack://RadioSelection/../../src/utils/getPopperOffsets.js","webpack://RadioSelection/../../src/utils/find.js","webpack://RadioSelection/../../src/utils/runModifiers.js","webpack://RadioSelection/../../src/utils/findIndex.js","webpack://RadioSelection/../../src/methods/update.js","webpack://RadioSelection/../../src/utils/isModifierEnabled.js","webpack://RadioSelection/../../src/utils/getSupportedPropertyName.js","webpack://RadioSelection/../../src/methods/destroy.js","webpack://RadioSelection/../../src/utils/getWindow.js","webpack://RadioSelection/../../src/utils/setupEventListeners.js","webpack://RadioSelection/../../src/methods/enableEventListeners.js","webpack://RadioSelection/../../src/methods/disableEventListeners.js","webpack://RadioSelection/../../src/utils/removeEventListeners.js","webpack://RadioSelection/../../src/utils/isNumeric.js","webpack://RadioSelection/../../src/utils/setStyles.js","webpack://RadioSelection/../../src/modifiers/computeStyle.js","webpack://RadioSelection/../../src/utils/isModifierRequired.js","webpack://RadioSelection/../../src/methods/placements.js","webpack://RadioSelection/../../src/utils/clockwise.js","webpack://RadioSelection/../../src/modifiers/index.js","webpack://RadioSelection/../../src/modifiers/shift.js","webpack://RadioSelection/../../src/modifiers/offset.js","webpack://RadioSelection/../../src/modifiers/preventOverflow.js","webpack://RadioSelection/../../src/modifiers/keepTogether.js","webpack://RadioSelection/../../src/modifiers/arrow.js","webpack://RadioSelection/../../src/modifiers/flip.js","webpack://RadioSelection/../../src/utils/getOppositeVariation.js","webpack://RadioSelection/../../src/modifiers/inner.js","webpack://RadioSelection/../../src/modifiers/hide.js","webpack://RadioSelection/../../src/utils/getRoundedOffsets.js","webpack://RadioSelection/../../src/modifiers/applyStyle.js","webpack://RadioSelection/../../src/utils/setAttributes.js","webpack://RadioSelection/../../src/methods/defaults.js","webpack://RadioSelection/../../src/index.js","webpack://RadioSelection/./node_modules/reactstrap/node_modules/react-popper/lib/esm/Manager.js","webpack://RadioSelection/./node_modules/reactstrap/node_modules/react-popper/lib/esm/utils.js","webpack://RadioSelection/./node_modules/reactstrap/node_modules/react-popper/lib/esm/Popper.js","webpack://RadioSelection/./node_modules/reactstrap/es/utils.js","webpack://RadioSelection/./node_modules/reactstrap/es/Fade.js","webpack://RadioSelection/./node_modules/reactstrap/es/PopperContent.js","webpack://RadioSelection/./node_modules/reactstrap/es/TooltipPopoverWrapper.js","webpack://RadioSelection/./node_modules/reactstrap/es/Tooltip.js","webpack://RadioSelection/./uiComponents/Tooltip/Tooltip.js","webpack://RadioSelection/./RadioSelection.duc.js","webpack://RadioSelection/./utils/isTextEllipsisShown.js"],"sourcesContent":["'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nvar _gud = require('gud');\n\nvar _gud2 = _interopRequireDefault(_gud);\n\nvar _warning = require('warning');\n\nvar _warning2 = _interopRequireDefault(_warning);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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; }\n\nfunction _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; }\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\n\n// Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = '__create-react-context-' + (0, _gud2.default)() + '__';\n\n var Provider = function (_Component) {\n _inherits(Provider, _Component);\n\n function Provider() {\n var _temp, _this, _ret;\n\n _classCallCheck(this, Provider);\n\n for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return _ret = (_temp = (_this = _possibleConstructorReturn(this, _Component.call.apply(_Component, [this].concat(args))), _this), _this.emitter = createEventEmitter(_this.props.value), _temp), _possibleConstructorReturn(_this, _ret);\n }\n\n Provider.prototype.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n Provider.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits = void 0;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === 'function' ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n if (process.env.NODE_ENV !== 'production') {\n (0, _warning2.default)((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, 'calculateChangedBits: Expected the return value to be a ' + '31-bit integer. Instead received: %s', changedBits);\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n Provider.prototype.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(_react.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = _propTypes2.default.object.isRequired, _Provider$childContex);\n\n var Consumer = function (_Component2) {\n _inherits(Consumer, _Component2);\n\n function Consumer() {\n var _temp2, _this2, _ret2;\n\n _classCallCheck(this, Consumer);\n\n for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _ret2 = (_temp2 = (_this2 = _possibleConstructorReturn(this, _Component2.call.apply(_Component2, [this].concat(args))), _this2), _this2.state = {\n value: _this2.getValue()\n }, _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({ value: _this2.getValue() });\n }\n }, _temp2), _possibleConstructorReturn(_this2, _ret2);\n }\n\n Consumer.prototype.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n var observedBits = this.props.observedBits;\n\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n Consumer.prototype.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n Consumer.prototype.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n Consumer.prototype.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(_react.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = _propTypes2.default.object, _Consumer$contextType);\n\n\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\nexports.default = createReactContext;\nmodule.exports = exports['default'];","'use strict';\n\nexports.__esModule = true;\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _implementation = require('./implementation');\n\nvar _implementation2 = _interopRequireDefault(_implementation);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = _react2.default.createContext || _implementation2.default;\nmodule.exports = exports['default'];","\"use strict\";\n\nvar utils = require(\"./utils\");\n\nmodule.exports = function batchProcessorMaker(options) {\n options = options || {};\n var reporter = options.reporter;\n var asyncProcess = utils.getOption(options, \"async\", true);\n var autoProcess = utils.getOption(options, \"auto\", true);\n\n if(autoProcess && !asyncProcess) {\n reporter && reporter.warn(\"Invalid options combination. auto=true and async=false is invalid. Setting async=true.\");\n asyncProcess = true;\n }\n\n var batch = Batch();\n var asyncFrameHandler;\n var isProcessing = false;\n\n function addFunction(level, fn) {\n if(!isProcessing && autoProcess && asyncProcess && batch.size() === 0) {\n // Since this is async, it is guaranteed to be executed after that the fn is added to the batch.\n // This needs to be done before, since we're checking the size of the batch to be 0.\n processBatchAsync();\n }\n\n batch.add(level, fn);\n }\n\n function processBatch() {\n // Save the current batch, and create a new batch so that incoming functions are not added into the currently processing batch.\n // Continue processing until the top-level batch is empty (functions may be added to the new batch while processing, and so on).\n isProcessing = true;\n while (batch.size()) {\n var processingBatch = batch;\n batch = Batch();\n processingBatch.process();\n }\n isProcessing = false;\n }\n\n function forceProcessBatch(localAsyncProcess) {\n if (isProcessing) {\n return;\n }\n\n if(localAsyncProcess === undefined) {\n localAsyncProcess = asyncProcess;\n }\n\n if(asyncFrameHandler) {\n cancelFrame(asyncFrameHandler);\n asyncFrameHandler = null;\n }\n\n if(localAsyncProcess) {\n processBatchAsync();\n } else {\n processBatch();\n }\n }\n\n function processBatchAsync() {\n asyncFrameHandler = requestFrame(processBatch);\n }\n\n function clearBatch() {\n batch = {};\n batchSize = 0;\n topLevel = 0;\n bottomLevel = 0;\n }\n\n function cancelFrame(listener) {\n // var cancel = window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.clearTimeout;\n var cancel = clearTimeout;\n return cancel(listener);\n }\n\n function requestFrame(callback) {\n // var raf = window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function(fn) { return window.setTimeout(fn, 20); };\n var raf = function(fn) { return setTimeout(fn, 0); };\n return raf(callback);\n }\n\n return {\n add: addFunction,\n force: forceProcessBatch\n };\n};\n\nfunction Batch() {\n var batch = {};\n var size = 0;\n var topLevel = 0;\n var bottomLevel = 0;\n\n function add(level, fn) {\n if(!fn) {\n fn = level;\n level = 0;\n }\n\n if(level > topLevel) {\n topLevel = level;\n } else if(level < bottomLevel) {\n bottomLevel = level;\n }\n\n if(!batch[level]) {\n batch[level] = [];\n }\n\n batch[level].push(fn);\n size++;\n }\n\n function process() {\n for(var level = bottomLevel; level <= topLevel; level++) {\n var fns = batch[level];\n\n for(var i = 0; i < fns.length; i++) {\n var fn = fns[i];\n fn();\n }\n }\n }\n\n function getSize() {\n return size;\n }\n\n return {\n add: add,\n process: process,\n size: getSize\n };\n}\n","\"use strict\";\n\nvar utils = module.exports = {};\n\nutils.getOption = getOption;\n\nfunction getOption(options, name, defaultValue) {\n var value = options[name];\n\n if((value === undefined || value === null) && defaultValue !== undefined) {\n return defaultValue;\n }\n\n return value;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = $reflectApply(bind, $call, arguments);\n\tif ($gOPD && $defineProperty) {\n\t\tvar desc = $gOPD(func, 'length');\n\t\tif (desc.configurable) {\n\t\t\t// original length, plus the receiver, minus any additional arguments (after the receiver)\n\t\t\t$defineProperty(\n\t\t\t\tfunc,\n\t\t\t\t'length',\n\t\t\t\t{ value: 1 + $max(0, originalFunction.length - (arguments.length - 1)) }\n\t\t\t);\n\t\t}\n\t}\n\treturn func;\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\tvar nativeCodeString = '[native code]';\n\n\tfunction classNames() {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\tif (arg.length) {\n\t\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\t\tif (inner) {\n\t\t\t\t\t\tclasses.push(inner);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\t\t\tclasses.push(arg.toString());\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","var objectKeys = require('object-keys');\nvar isArguments = require('is-arguments');\nvar is = require('object-is');\nvar isRegex = require('is-regex');\nvar flags = require('regexp.prototype.flags');\nvar isDate = require('is-date-object');\n\nvar getTime = Date.prototype.getTime;\n\nfunction deepEqual(actual, expected, options) {\n var opts = options || {};\n\n // 7.1. All identical values are equivalent, as determined by ===.\n if (opts.strict ? is(actual, expected) : actual === expected) {\n return true;\n }\n\n // 7.3. Other pairs that do not both pass typeof value == 'object', equivalence is determined by ==.\n if (!actual || !expected || (typeof actual !== 'object' && typeof expected !== 'object')) {\n return opts.strict ? is(actual, expected) : actual == expected;\n }\n\n /*\n * 7.4. For all other Object pairs, including Array objects, equivalence is\n * determined by having the same number of owned properties (as verified\n * with Object.prototype.hasOwnProperty.call), the same set of keys\n * (although not necessarily the same order), equivalent values for every\n * corresponding key, and an identical 'prototype' property. Note: this\n * accounts for both named and indexed properties on Arrays.\n */\n // eslint-disable-next-line no-use-before-define\n return objEquiv(actual, expected, opts);\n}\n\nfunction isUndefinedOrNull(value) {\n return value === null || value === undefined;\n}\n\nfunction isBuffer(x) {\n if (!x || typeof x !== 'object' || typeof x.length !== 'number') {\n return false;\n }\n if (typeof x.copy !== 'function' || typeof x.slice !== 'function') {\n return false;\n }\n if (x.length > 0 && typeof x[0] !== 'number') {\n return false;\n }\n return true;\n}\n\nfunction objEquiv(a, b, opts) {\n /* eslint max-statements: [2, 50] */\n var i, key;\n if (typeof a !== typeof b) { return false; }\n if (isUndefinedOrNull(a) || isUndefinedOrNull(b)) { return false; }\n\n // an identical 'prototype' property.\n if (a.prototype !== b.prototype) { return false; }\n\n if (isArguments(a) !== isArguments(b)) { return false; }\n\n var aIsRegex = isRegex(a);\n var bIsRegex = isRegex(b);\n if (aIsRegex !== bIsRegex) { return false; }\n if (aIsRegex || bIsRegex) {\n return a.source === b.source && flags(a) === flags(b);\n }\n\n if (isDate(a) && isDate(b)) {\n return getTime.call(a) === getTime.call(b);\n }\n\n var aIsBuffer = isBuffer(a);\n var bIsBuffer = isBuffer(b);\n if (aIsBuffer !== bIsBuffer) { return false; }\n if (aIsBuffer || bIsBuffer) { // && would work too, because both are true or both false here\n if (a.length !== b.length) { return false; }\n for (i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) { return false; }\n }\n return true;\n }\n\n if (typeof a !== typeof b) { return false; }\n\n try {\n var ka = objectKeys(a);\n var kb = objectKeys(b);\n } catch (e) { // happens when one is a string literal and the other isn't\n return false;\n }\n // having the same number of owned properties (keys incorporates hasOwnProperty)\n if (ka.length !== kb.length) { return false; }\n\n // the same set of keys (although not necessarily the same order),\n ka.sort();\n kb.sort();\n // ~~~cheap key test\n for (i = ka.length - 1; i >= 0; i--) {\n if (ka[i] != kb[i]) { return false; }\n }\n // equivalent values for every corresponding key, and ~~~possibly expensive deep test\n for (i = ka.length - 1; i >= 0; i--) {\n key = ka[i];\n if (!deepEqual(a[key], b[key], opts)) { return false; }\n }\n\n return true;\n}\n\nmodule.exports = deepEqual;\n","'use strict';\n\nvar keys = require('object-keys');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\n\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar supportsDescriptors = origDefineProperty && hasPropertyDescriptors;\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\torigDefineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tvalue: value,\n\t\t\twritable: true\n\t\t});\n\t} else {\n\t\tobject[name] = value; // eslint-disable-line no-param-reassign\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = concat.call(props, Object.getOwnPropertySymbols(map));\n\t}\n\tfor (var i = 0; i < props.length; i += 1) {\n\t\tdefineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n\t}\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nexports.__esModule = true;\nexports.default = addClass;\n\nvar _hasClass = _interopRequireDefault(require(\"./hasClass\"));\n\nfunction addClass(element, className) {\n 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);\n}\n\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = hasClass;\n\nfunction hasClass(element, className) {\n if (element.classList) return !!className && element.classList.contains(className);else return (\" \" + (element.className.baseVal || element.className) + \" \").indexOf(\" \" + className + \" \") !== -1;\n}\n\nmodule.exports = exports[\"default\"];","'use strict';\n\nfunction replaceClassName(origClass, classToRemove) {\n return origClass.replace(new RegExp('(^|\\\\s)' + classToRemove + '(?:\\\\s|$)', 'g'), '$1').replace(/\\s+/g, ' ').replace(/^\\s*|\\s*$/g, '');\n}\n\nmodule.exports = function removeClass(element, className) {\n 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));\n};","\"use strict\";\n\nvar detector = module.exports = {};\n\ndetector.isIE = function(version) {\n function isAnyIeVersion() {\n var agent = navigator.userAgent.toLowerCase();\n return agent.indexOf(\"msie\") !== -1 || agent.indexOf(\"trident\") !== -1 || agent.indexOf(\" edge/\") !== -1;\n }\n\n if(!isAnyIeVersion()) {\n return false;\n }\n\n if(!version) {\n return true;\n }\n\n //Shamelessly stolen from https://gist.github.com/padolsey/527683\n var ieVersion = (function(){\n var undef,\n v = 3,\n div = document.createElement(\"div\"),\n all = div.getElementsByTagName(\"i\");\n\n do {\n div.innerHTML = \"\";\n }\n while (all[0]);\n\n return v > 4 ? v : undef;\n }());\n\n return version === ieVersion;\n};\n\ndetector.isLegacyOpera = function() {\n return !!window.opera;\n};\n","\"use strict\";\n\nvar utils = module.exports = {};\n\n/**\n * Loops through the collection and calls the callback for each element. if the callback returns truthy, the loop is broken and returns the same value.\n * @public\n * @param {*} collection The collection to loop through. Needs to have a length property set and have indices set from 0 to length - 1.\n * @param {function} callback The callback to be called for each element. The element will be given as a parameter to the callback. If this callback returns truthy, the loop is broken and the same value is returned.\n * @returns {*} The value that a callback has returned (if truthy). Otherwise nothing.\n */\nutils.forEach = function(collection, callback) {\n for(var i = 0; i < collection.length; i++) {\n var result = callback(collection[i]);\n if(result) {\n return result;\n }\n }\n};\n","/**\n * Resize detection strategy that injects objects to elements in order to detect resize events.\n * Heavily inspired by: http://www.backalleycoder.com/2013/03/18/cross-browser-event-based-element-resize-detection/\n */\n\n\"use strict\";\n\nvar browserDetector = require(\"../browser-detector\");\n\nmodule.exports = function(options) {\n options = options || {};\n var reporter = options.reporter;\n var batchProcessor = options.batchProcessor;\n var getState = options.stateHandler.getState;\n\n if(!reporter) {\n throw new Error(\"Missing required dependency: reporter.\");\n }\n\n /**\n * Adds a resize event listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The listener callback to be called for each resize event of the element. The element will be given as a parameter to the listener callback.\n */\n function addListener(element, listener) {\n function listenerProxy() {\n listener(element);\n }\n\n if(browserDetector.isIE(8)) {\n //IE 8 does not support object, but supports the resize event directly on elements.\n getState(element).object = {\n proxy: listenerProxy\n };\n element.attachEvent(\"onresize\", listenerProxy);\n } else {\n var object = getObject(element);\n\n if(!object) {\n throw new Error(\"Element is not detectable by this strategy.\");\n }\n\n object.contentDocument.defaultView.addEventListener(\"resize\", listenerProxy);\n }\n }\n\n function buildCssTextString(rules) {\n var seperator = options.important ? \" !important; \" : \"; \";\n\n return (rules.join(seperator) + seperator).trim();\n }\n\n /**\n * Makes an element detectable and ready to be listened for resize events. Will call the callback when the element is ready to be listened for resize changes.\n * @private\n * @param {object} options Optional options object.\n * @param {element} element The element to make detectable\n * @param {function} callback The callback to be called when the element is ready to be listened for resize changes. Will be called with the element as first parameter.\n */\n function makeDetectable(options, element, callback) {\n if (!callback) {\n callback = element;\n element = options;\n options = null;\n }\n\n options = options || {};\n var debug = options.debug;\n\n function injectObject(element, callback) {\n var OBJECT_STYLE = buildCssTextString([\"display: block\", \"position: absolute\", \"top: 0\", \"left: 0\", \"width: 100%\", \"height: 100%\", \"border: none\", \"padding: 0\", \"margin: 0\", \"opacity: 0\", \"z-index: -1000\", \"pointer-events: none\"]);\n\n //The target element needs to be positioned (everything except static) so the absolute positioned object will be positioned relative to the target element.\n\n // Position altering may be performed directly or on object load, depending on if style resolution is possible directly or not.\n var positionCheckPerformed = false;\n\n // The element may not yet be attached to the DOM, and therefore the style object may be empty in some browsers.\n // Since the style object is a reference, it will be updated as soon as the element is attached to the DOM.\n var style = window.getComputedStyle(element);\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n getState(element).startSize = {\n width: width,\n height: height\n };\n\n function mutateDom() {\n function alterPositionStyles() {\n if(style.position === \"static\") {\n element.style.setProperty(\"position\", \"relative\", options.important ? \"important\" : \"\");\n\n var removeRelativeStyles = function(reporter, element, style, property) {\n function getNumericalValue(value) {\n return value.replace(/[^-\\d\\.]/g, \"\");\n }\n\n var value = style[property];\n\n if(value !== \"auto\" && getNumericalValue(value) !== \"0\") {\n reporter.warn(\"An element that is positioned static has style.\" + property + \"=\" + value + \" which is ignored due to the static positioning. The element will need to be positioned relative, so the style.\" + property + \" will be set to 0. Element: \", element);\n element.style.setProperty(property, \"0\", options.important ? \"important\" : \"\");\n }\n };\n\n //Check so that there are no accidental styles that will make the element styled differently now that is is relative.\n //If there are any, set them to 0 (this should be okay with the user since the style properties did nothing before [since the element was positioned static] anyway).\n removeRelativeStyles(reporter, element, style, \"top\");\n removeRelativeStyles(reporter, element, style, \"right\");\n removeRelativeStyles(reporter, element, style, \"bottom\");\n removeRelativeStyles(reporter, element, style, \"left\");\n }\n }\n\n function onObjectLoad() {\n // The object has been loaded, which means that the element now is guaranteed to be attached to the DOM.\n if (!positionCheckPerformed) {\n alterPositionStyles();\n }\n\n /*jshint validthis: true */\n\n function getDocument(element, callback) {\n //Opera 12 seem to call the object.onload before the actual document has been created.\n //So if it is not present, poll it with an timeout until it is present.\n //TODO: Could maybe be handled better with object.onreadystatechange or similar.\n if(!element.contentDocument) {\n var state = getState(element);\n if (state.checkForObjectDocumentTimeoutId) {\n window.clearTimeout(state.checkForObjectDocumentTimeoutId);\n }\n state.checkForObjectDocumentTimeoutId = setTimeout(function checkForObjectDocument() {\n state.checkForObjectDocumentTimeoutId = 0;\n getDocument(element, callback);\n }, 100);\n\n return;\n }\n\n callback(element.contentDocument);\n }\n\n //Mutating the object element here seems to fire another load event.\n //Mutating the inner document of the object element is fine though.\n var objectElement = this;\n\n //Create the style element to be added to the object.\n getDocument(objectElement, function onObjectDocumentReady(objectDocument) {\n //Notify that the element is ready to be listened to.\n callback(element);\n });\n }\n\n // The element may be detached from the DOM, and some browsers does not support style resolving of detached elements.\n // The alterPositionStyles needs to be delayed until we know the element has been attached to the DOM (which we are sure of when the onObjectLoad has been fired), if style resolution is not possible.\n if (style.position !== \"\") {\n alterPositionStyles(style);\n positionCheckPerformed = true;\n }\n\n //Add an object element as a child to the target element that will be listened to for resize events.\n var object = document.createElement(\"object\");\n object.style.cssText = OBJECT_STYLE;\n object.tabIndex = -1;\n object.type = \"text/html\";\n object.setAttribute(\"aria-hidden\", \"true\");\n object.onload = onObjectLoad;\n\n //Safari: This must occur before adding the object to the DOM.\n //IE: Does not like that this happens before, even if it is also added after.\n if(!browserDetector.isIE()) {\n object.data = \"about:blank\";\n }\n\n if (!getState(element)) {\n // The element has been uninstalled before the actual loading happened.\n return;\n }\n\n element.appendChild(object);\n getState(element).object = object;\n\n //IE: This must occur after adding the object to the DOM.\n if(browserDetector.isIE()) {\n object.data = \"about:blank\";\n }\n }\n\n if(batchProcessor) {\n batchProcessor.add(mutateDom);\n } else {\n mutateDom();\n }\n }\n\n if(browserDetector.isIE(8)) {\n //IE 8 does not support objects properly. Luckily they do support the resize event.\n //So do not inject the object and notify that the element is already ready to be listened to.\n //The event handler for the resize event is attached in the utils.addListener instead.\n callback(element);\n } else {\n injectObject(element, callback);\n }\n }\n\n /**\n * Returns the child object of the target element.\n * @private\n * @param {element} element The target element.\n * @returns The object element of the target.\n */\n function getObject(element) {\n return getState(element).object;\n }\n\n function uninstall(element) {\n if (!getState(element)) {\n return;\n }\n\n var object = getObject(element);\n\n if (!object) {\n return;\n }\n\n if (browserDetector.isIE(8)) {\n element.detachEvent(\"onresize\", object.proxy);\n } else {\n element.removeChild(object);\n }\n\n if (getState(element).checkForObjectDocumentTimeoutId) {\n window.clearTimeout(getState(element).checkForObjectDocumentTimeoutId);\n }\n\n delete getState(element).object;\n }\n\n return {\n makeDetectable: makeDetectable,\n addListener: addListener,\n uninstall: uninstall\n };\n};\n","/**\n * Resize detection strategy that injects divs to elements in order to detect resize events on scroll events.\n * Heavily inspired by: https://github.com/marcj/css-element-queries/blob/master/src/ResizeSensor.js\n */\n\n\"use strict\";\n\nvar forEach = require(\"../collection-utils\").forEach;\n\nmodule.exports = function(options) {\n options = options || {};\n var reporter = options.reporter;\n var batchProcessor = options.batchProcessor;\n var getState = options.stateHandler.getState;\n var hasState = options.stateHandler.hasState;\n var idHandler = options.idHandler;\n\n if (!batchProcessor) {\n throw new Error(\"Missing required dependency: batchProcessor\");\n }\n\n if (!reporter) {\n throw new Error(\"Missing required dependency: reporter.\");\n }\n\n //TODO: Could this perhaps be done at installation time?\n var scrollbarSizes = getScrollbarSizes();\n\n var styleId = \"erd_scroll_detection_scrollbar_style\";\n var detectionContainerClass = \"erd_scroll_detection_container\";\n\n function initDocument(targetDocument) {\n // Inject the scrollbar styling that prevents them from appearing sometimes in Chrome.\n // The injected container needs to have a class, so that it may be styled with CSS (pseudo elements).\n injectScrollStyle(targetDocument, styleId, detectionContainerClass);\n }\n\n initDocument(window.document);\n\n function buildCssTextString(rules) {\n var seperator = options.important ? \" !important; \" : \"; \";\n\n return (rules.join(seperator) + seperator).trim();\n }\n\n function getScrollbarSizes() {\n var width = 500;\n var height = 500;\n\n var child = document.createElement(\"div\");\n child.style.cssText = buildCssTextString([\"position: absolute\", \"width: \" + width*2 + \"px\", \"height: \" + height*2 + \"px\", \"visibility: hidden\", \"margin: 0\", \"padding: 0\"]);\n\n var container = document.createElement(\"div\");\n container.style.cssText = buildCssTextString([\"position: absolute\", \"width: \" + width + \"px\", \"height: \" + height + \"px\", \"overflow: scroll\", \"visibility: none\", \"top: \" + -width*3 + \"px\", \"left: \" + -height*3 + \"px\", \"visibility: hidden\", \"margin: 0\", \"padding: 0\"]);\n\n container.appendChild(child);\n\n document.body.insertBefore(container, document.body.firstChild);\n\n var widthSize = width - container.clientWidth;\n var heightSize = height - container.clientHeight;\n\n document.body.removeChild(container);\n\n return {\n width: widthSize,\n height: heightSize\n };\n }\n\n function injectScrollStyle(targetDocument, styleId, containerClass) {\n function injectStyle(style, method) {\n method = method || function (element) {\n targetDocument.head.appendChild(element);\n };\n\n var styleElement = targetDocument.createElement(\"style\");\n styleElement.innerHTML = style;\n styleElement.id = styleId;\n method(styleElement);\n return styleElement;\n }\n\n if (!targetDocument.getElementById(styleId)) {\n var containerAnimationClass = containerClass + \"_animation\";\n var containerAnimationActiveClass = containerClass + \"_animation_active\";\n var style = \"/* Created by the element-resize-detector library. */\\n\";\n style += \".\" + containerClass + \" > div::-webkit-scrollbar { \" + buildCssTextString([\"display: none\"]) + \" }\\n\\n\";\n style += \".\" + containerAnimationActiveClass + \" { \" + buildCssTextString([\"-webkit-animation-duration: 0.1s\", \"animation-duration: 0.1s\", \"-webkit-animation-name: \" + containerAnimationClass, \"animation-name: \" + containerAnimationClass]) + \" }\\n\";\n style += \"@-webkit-keyframes \" + containerAnimationClass + \" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\\n\";\n style += \"@keyframes \" + containerAnimationClass + \" { 0% { opacity: 1; } 50% { opacity: 0; } 100% { opacity: 1; } }\";\n injectStyle(style);\n }\n }\n\n function addAnimationClass(element) {\n element.className += \" \" + detectionContainerClass + \"_animation_active\";\n }\n\n function addEvent(el, name, cb) {\n if (el.addEventListener) {\n el.addEventListener(name, cb);\n } else if(el.attachEvent) {\n el.attachEvent(\"on\" + name, cb);\n } else {\n return reporter.error(\"[scroll] Don't know how to add event listeners.\");\n }\n }\n\n function removeEvent(el, name, cb) {\n if (el.removeEventListener) {\n el.removeEventListener(name, cb);\n } else if(el.detachEvent) {\n el.detachEvent(\"on\" + name, cb);\n } else {\n return reporter.error(\"[scroll] Don't know how to remove event listeners.\");\n }\n }\n\n function getExpandElement(element) {\n return getState(element).container.childNodes[0].childNodes[0].childNodes[0];\n }\n\n function getShrinkElement(element) {\n return getState(element).container.childNodes[0].childNodes[0].childNodes[1];\n }\n\n /**\n * Adds a resize event listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The listener callback to be called for each resize event of the element. The element will be given as a parameter to the listener callback.\n */\n function addListener(element, listener) {\n var listeners = getState(element).listeners;\n\n if (!listeners.push) {\n throw new Error(\"Cannot add listener to an element that is not detectable.\");\n }\n\n getState(element).listeners.push(listener);\n }\n\n /**\n * Makes an element detectable and ready to be listened for resize events. Will call the callback when the element is ready to be listened for resize changes.\n * @private\n * @param {object} options Optional options object.\n * @param {element} element The element to make detectable\n * @param {function} callback The callback to be called when the element is ready to be listened for resize changes. Will be called with the element as first parameter.\n */\n function makeDetectable(options, element, callback) {\n if (!callback) {\n callback = element;\n element = options;\n options = null;\n }\n\n options = options || {};\n\n function debug() {\n if (options.debug) {\n var args = Array.prototype.slice.call(arguments);\n args.unshift(idHandler.get(element), \"Scroll: \");\n if (reporter.log.apply) {\n reporter.log.apply(null, args);\n } else {\n for (var i = 0; i < args.length; i++) {\n reporter.log(args[i]);\n }\n }\n }\n }\n\n function isDetached(element) {\n function isInDocument(element) {\n var isInShadowRoot = element.getRootNode && element.getRootNode().contains(element);\n return element === element.ownerDocument.body || element.ownerDocument.body.contains(element) || isInShadowRoot;\n }\n\n if (!isInDocument(element)) {\n return true;\n }\n\n // FireFox returns null style in hidden iframes. See https://github.com/wnr/element-resize-detector/issues/68 and https://bugzilla.mozilla.org/show_bug.cgi?id=795520\n if (window.getComputedStyle(element) === null) {\n return true;\n }\n\n return false;\n }\n\n function isUnrendered(element) {\n // Check the absolute positioned container since the top level container is display: inline.\n var container = getState(element).container.childNodes[0];\n var style = window.getComputedStyle(container);\n return !style.width || style.width.indexOf(\"px\") === -1; //Can only compute pixel value when rendered.\n }\n\n function getStyle() {\n // Some browsers only force layouts when actually reading the style properties of the style object, so make sure that they are all read here,\n // so that the user of the function can be sure that it will perform the layout here, instead of later (important for batching).\n var elementStyle = window.getComputedStyle(element);\n var style = {};\n style.position = elementStyle.position;\n style.width = element.offsetWidth;\n style.height = element.offsetHeight;\n style.top = elementStyle.top;\n style.right = elementStyle.right;\n style.bottom = elementStyle.bottom;\n style.left = elementStyle.left;\n style.widthCSS = elementStyle.width;\n style.heightCSS = elementStyle.height;\n return style;\n }\n\n function storeStartSize() {\n var style = getStyle();\n getState(element).startSize = {\n width: style.width,\n height: style.height\n };\n debug(\"Element start size\", getState(element).startSize);\n }\n\n function initListeners() {\n getState(element).listeners = [];\n }\n\n function storeStyle() {\n debug(\"storeStyle invoked.\");\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n var style = getStyle();\n getState(element).style = style;\n }\n\n function storeCurrentSize(element, width, height) {\n getState(element).lastWidth = width;\n getState(element).lastHeight = height;\n }\n\n function getExpandChildElement(element) {\n return getExpandElement(element).childNodes[0];\n }\n\n function getWidthOffset() {\n return 2 * scrollbarSizes.width + 1;\n }\n\n function getHeightOffset() {\n return 2 * scrollbarSizes.height + 1;\n }\n\n function getExpandWidth(width) {\n return width + 10 + getWidthOffset();\n }\n\n function getExpandHeight(height) {\n return height + 10 + getHeightOffset();\n }\n\n function getShrinkWidth(width) {\n return width * 2 + getWidthOffset();\n }\n\n function getShrinkHeight(height) {\n return height * 2 + getHeightOffset();\n }\n\n function positionScrollbars(element, width, height) {\n var expand = getExpandElement(element);\n var shrink = getShrinkElement(element);\n var expandWidth = getExpandWidth(width);\n var expandHeight = getExpandHeight(height);\n var shrinkWidth = getShrinkWidth(width);\n var shrinkHeight = getShrinkHeight(height);\n expand.scrollLeft = expandWidth;\n expand.scrollTop = expandHeight;\n shrink.scrollLeft = shrinkWidth;\n shrink.scrollTop = shrinkHeight;\n }\n\n function injectContainerElement() {\n var container = getState(element).container;\n\n if (!container) {\n container = document.createElement(\"div\");\n container.className = detectionContainerClass;\n container.style.cssText = buildCssTextString([\"visibility: hidden\", \"display: inline\", \"width: 0px\", \"height: 0px\", \"z-index: -1\", \"overflow: hidden\", \"margin: 0\", \"padding: 0\"]);\n getState(element).container = container;\n addAnimationClass(container);\n element.appendChild(container);\n\n var onAnimationStart = function () {\n getState(element).onRendered && getState(element).onRendered();\n };\n\n addEvent(container, \"animationstart\", onAnimationStart);\n\n // Store the event handler here so that they may be removed when uninstall is called.\n // See uninstall function for an explanation why it is needed.\n getState(element).onAnimationStart = onAnimationStart;\n }\n\n return container;\n }\n\n function injectScrollElements() {\n function alterPositionStyles() {\n var style = getState(element).style;\n\n if(style.position === \"static\") {\n element.style.setProperty(\"position\", \"relative\",options.important ? \"important\" : \"\");\n\n var removeRelativeStyles = function(reporter, element, style, property) {\n function getNumericalValue(value) {\n return value.replace(/[^-\\d\\.]/g, \"\");\n }\n\n var value = style[property];\n\n if(value !== \"auto\" && getNumericalValue(value) !== \"0\") {\n reporter.warn(\"An element that is positioned static has style.\" + property + \"=\" + value + \" which is ignored due to the static positioning. The element will need to be positioned relative, so the style.\" + property + \" will be set to 0. Element: \", element);\n element.style[property] = 0;\n }\n };\n\n //Check so that there are no accidental styles that will make the element styled differently now that is is relative.\n //If there are any, set them to 0 (this should be okay with the user since the style properties did nothing before [since the element was positioned static] anyway).\n removeRelativeStyles(reporter, element, style, \"top\");\n removeRelativeStyles(reporter, element, style, \"right\");\n removeRelativeStyles(reporter, element, style, \"bottom\");\n removeRelativeStyles(reporter, element, style, \"left\");\n }\n }\n\n function getLeftTopBottomRightCssText(left, top, bottom, right) {\n left = (!left ? \"0\" : (left + \"px\"));\n top = (!top ? \"0\" : (top + \"px\"));\n bottom = (!bottom ? \"0\" : (bottom + \"px\"));\n right = (!right ? \"0\" : (right + \"px\"));\n\n return [\"left: \" + left, \"top: \" + top, \"right: \" + right, \"bottom: \" + bottom];\n }\n\n debug(\"Injecting elements\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n alterPositionStyles();\n\n var rootContainer = getState(element).container;\n\n if (!rootContainer) {\n rootContainer = injectContainerElement();\n }\n\n // Due to this WebKit bug https://bugs.webkit.org/show_bug.cgi?id=80808 (currently fixed in Blink, but still present in WebKit browsers such as Safari),\n // we need to inject two containers, one that is width/height 100% and another that is left/top -1px so that the final container always is 1x1 pixels bigger than\n // the targeted element.\n // When the bug is resolved, \"containerContainer\" may be removed.\n\n // The outer container can occasionally be less wide than the targeted when inside inline elements element in WebKit (see https://bugs.webkit.org/show_bug.cgi?id=152980).\n // This should be no problem since the inner container either way makes sure the injected scroll elements are at least 1x1 px.\n\n var scrollbarWidth = scrollbarSizes.width;\n var scrollbarHeight = scrollbarSizes.height;\n var containerContainerStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: hidden\", \"z-index: -1\", \"visibility: hidden\", \"width: 100%\", \"height: 100%\", \"left: 0px\", \"top: 0px\"]);\n var containerStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: hidden\", \"z-index: -1\", \"visibility: hidden\"].concat(getLeftTopBottomRightCssText(-(1 + scrollbarWidth), -(1 + scrollbarHeight), -scrollbarHeight, -scrollbarWidth)));\n var expandStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: scroll\", \"z-index: -1\", \"visibility: hidden\", \"width: 100%\", \"height: 100%\"]);\n var shrinkStyle = buildCssTextString([\"position: absolute\", \"flex: none\", \"overflow: scroll\", \"z-index: -1\", \"visibility: hidden\", \"width: 100%\", \"height: 100%\"]);\n var expandChildStyle = buildCssTextString([\"position: absolute\", \"left: 0\", \"top: 0\"]);\n var shrinkChildStyle = buildCssTextString([\"position: absolute\", \"width: 200%\", \"height: 200%\"]);\n\n var containerContainer = document.createElement(\"div\");\n var container = document.createElement(\"div\");\n var expand = document.createElement(\"div\");\n var expandChild = document.createElement(\"div\");\n var shrink = document.createElement(\"div\");\n var shrinkChild = document.createElement(\"div\");\n\n // Some browsers choke on the resize system being rtl, so force it to ltr. https://github.com/wnr/element-resize-detector/issues/56\n // However, dir should not be set on the top level container as it alters the dimensions of the target element in some browsers.\n containerContainer.dir = \"ltr\";\n\n containerContainer.style.cssText = containerContainerStyle;\n containerContainer.className = detectionContainerClass;\n container.className = detectionContainerClass;\n container.style.cssText = containerStyle;\n expand.style.cssText = expandStyle;\n expandChild.style.cssText = expandChildStyle;\n shrink.style.cssText = shrinkStyle;\n shrinkChild.style.cssText = shrinkChildStyle;\n\n expand.appendChild(expandChild);\n shrink.appendChild(shrinkChild);\n container.appendChild(expand);\n container.appendChild(shrink);\n containerContainer.appendChild(container);\n rootContainer.appendChild(containerContainer);\n\n function onExpandScroll() {\n var state = getState(element);\n if (state && state.onExpand) {\n state.onExpand();\n } else {\n debug(\"Aborting expand scroll handler: element has been uninstalled\");\n }\n }\n\n function onShrinkScroll() {\n var state = getState(element);\n if (state && state.onShrink) {\n state.onShrink();\n } else {\n debug(\"Aborting shrink scroll handler: element has been uninstalled\");\n }\n }\n\n addEvent(expand, \"scroll\", onExpandScroll);\n addEvent(shrink, \"scroll\", onShrinkScroll);\n\n // Store the event handlers here so that they may be removed when uninstall is called.\n // See uninstall function for an explanation why it is needed.\n getState(element).onExpandScroll = onExpandScroll;\n getState(element).onShrinkScroll = onShrinkScroll;\n }\n\n function registerListenersAndPositionElements() {\n function updateChildSizes(element, width, height) {\n var expandChild = getExpandChildElement(element);\n var expandWidth = getExpandWidth(width);\n var expandHeight = getExpandHeight(height);\n expandChild.style.setProperty(\"width\", expandWidth + \"px\", options.important ? \"important\" : \"\");\n expandChild.style.setProperty(\"height\", expandHeight + \"px\", options.important ? \"important\" : \"\");\n }\n\n function updateDetectorElements(done) {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n\n // Check whether the size has actually changed since last time the algorithm ran. If not, some steps may be skipped.\n var sizeChanged = width !== getState(element).lastWidth || height !== getState(element).lastHeight;\n\n debug(\"Storing current size\", width, height);\n\n // Store the size of the element sync here, so that multiple scroll events may be ignored in the event listeners.\n // Otherwise the if-check in handleScroll is useless.\n storeCurrentSize(element, width, height);\n\n // Since we delay the processing of the batch, there is a risk that uninstall has been called before the batch gets to execute.\n // Since there is no way to cancel the fn executions, we need to add an uninstall guard to all fns of the batch.\n\n batchProcessor.add(0, function performUpdateChildSizes() {\n if (!sizeChanged) {\n return;\n }\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n if (options.debug) {\n var w = element.offsetWidth;\n var h = element.offsetHeight;\n\n if (w !== width || h !== height) {\n reporter.warn(idHandler.get(element), \"Scroll: Size changed before updating detector elements.\");\n }\n }\n\n updateChildSizes(element, width, height);\n });\n\n batchProcessor.add(1, function updateScrollbars() {\n // This function needs to be invoked event though the size is unchanged. The element could have been resized very quickly and then\n // been restored to the original size, which will have changed the scrollbar positions.\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n positionScrollbars(element, width, height);\n });\n\n if (sizeChanged && done) {\n batchProcessor.add(2, function () {\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n if (!areElementsInjected()) {\n debug(\"Aborting because element container has not been initialized\");\n return;\n }\n\n done();\n });\n }\n }\n\n function areElementsInjected() {\n return !!getState(element).container;\n }\n\n function notifyListenersIfNeeded() {\n function isFirstNotify() {\n return getState(element).lastNotifiedWidth === undefined;\n }\n\n debug(\"notifyListenersIfNeeded invoked\");\n\n var state = getState(element);\n\n // Don't notify if the current size is the start size, and this is the first notification.\n if (isFirstNotify() && state.lastWidth === state.startSize.width && state.lastHeight === state.startSize.height) {\n return debug(\"Not notifying: Size is the same as the start size, and there has been no notification yet.\");\n }\n\n // Don't notify if the size already has been notified.\n if (state.lastWidth === state.lastNotifiedWidth && state.lastHeight === state.lastNotifiedHeight) {\n return debug(\"Not notifying: Size already notified\");\n }\n\n\n debug(\"Current size not notified, notifying...\");\n state.lastNotifiedWidth = state.lastWidth;\n state.lastNotifiedHeight = state.lastHeight;\n forEach(getState(element).listeners, function (listener) {\n listener(element);\n });\n }\n\n function handleRender() {\n debug(\"startanimation triggered.\");\n\n if (isUnrendered(element)) {\n debug(\"Ignoring since element is still unrendered...\");\n return;\n }\n\n debug(\"Element rendered.\");\n var expand = getExpandElement(element);\n var shrink = getShrinkElement(element);\n if (expand.scrollLeft === 0 || expand.scrollTop === 0 || shrink.scrollLeft === 0 || shrink.scrollTop === 0) {\n debug(\"Scrollbars out of sync. Updating detector elements...\");\n updateDetectorElements(notifyListenersIfNeeded);\n }\n }\n\n function handleScroll() {\n debug(\"Scroll detected.\");\n\n if (isUnrendered(element)) {\n // Element is still unrendered. Skip this scroll event.\n debug(\"Scroll event fired while unrendered. Ignoring...\");\n return;\n }\n\n updateDetectorElements(notifyListenersIfNeeded);\n }\n\n debug(\"registerListenersAndPositionElements invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n getState(element).onRendered = handleRender;\n getState(element).onExpand = handleScroll;\n getState(element).onShrink = handleScroll;\n\n var style = getState(element).style;\n updateChildSizes(element, style.width, style.height);\n }\n\n function finalizeDomMutation() {\n debug(\"finalizeDomMutation invoked.\");\n\n if (!getState(element)) {\n debug(\"Aborting because element has been uninstalled\");\n return;\n }\n\n var style = getState(element).style;\n storeCurrentSize(element, style.width, style.height);\n positionScrollbars(element, style.width, style.height);\n }\n\n function ready() {\n callback(element);\n }\n\n function install() {\n debug(\"Installing...\");\n initListeners();\n storeStartSize();\n\n batchProcessor.add(0, storeStyle);\n batchProcessor.add(1, injectScrollElements);\n batchProcessor.add(2, registerListenersAndPositionElements);\n batchProcessor.add(3, finalizeDomMutation);\n batchProcessor.add(4, ready);\n }\n\n debug(\"Making detectable...\");\n\n if (isDetached(element)) {\n debug(\"Element is detached\");\n\n injectContainerElement();\n\n debug(\"Waiting until element is attached...\");\n\n getState(element).onRendered = function () {\n debug(\"Element is now attached\");\n install();\n };\n } else {\n install();\n }\n }\n\n function uninstall(element) {\n var state = getState(element);\n\n if (!state) {\n // Uninstall has been called on a non-erd element.\n return;\n }\n\n // Uninstall may have been called in the following scenarios:\n // (1) Right between the sync code and async batch (here state.busy = true, but nothing have been registered or injected).\n // (2) In the ready callback of the last level of the batch by another element (here, state.busy = true, but all the stuff has been injected).\n // (3) After the installation process (here, state.busy = false and all the stuff has been injected).\n // So to be on the safe side, let's check for each thing before removing.\n\n // We need to remove the event listeners, because otherwise the event might fire on an uninstall element which results in an error when trying to get the state of the element.\n state.onExpandScroll && removeEvent(getExpandElement(element), \"scroll\", state.onExpandScroll);\n state.onShrinkScroll && removeEvent(getShrinkElement(element), \"scroll\", state.onShrinkScroll);\n state.onAnimationStart && removeEvent(state.container, \"animationstart\", state.onAnimationStart);\n\n state.container && element.removeChild(state.container);\n }\n\n return {\n makeDetectable: makeDetectable,\n addListener: addListener,\n uninstall: uninstall,\n initDocument: initDocument\n };\n};\n","\"use strict\";\n\nvar forEach = require(\"./collection-utils\").forEach;\nvar elementUtilsMaker = require(\"./element-utils\");\nvar listenerHandlerMaker = require(\"./listener-handler\");\nvar idGeneratorMaker = require(\"./id-generator\");\nvar idHandlerMaker = require(\"./id-handler\");\nvar reporterMaker = require(\"./reporter\");\nvar browserDetector = require(\"./browser-detector\");\nvar batchProcessorMaker = require(\"batch-processor\");\nvar stateHandler = require(\"./state-handler\");\n\n//Detection strategies.\nvar objectStrategyMaker = require(\"./detection-strategy/object.js\");\nvar scrollStrategyMaker = require(\"./detection-strategy/scroll.js\");\n\nfunction isCollection(obj) {\n return Array.isArray(obj) || obj.length !== undefined;\n}\n\nfunction toArray(collection) {\n if (!Array.isArray(collection)) {\n var array = [];\n forEach(collection, function (obj) {\n array.push(obj);\n });\n return array;\n } else {\n return collection;\n }\n}\n\nfunction isElement(obj) {\n return obj && obj.nodeType === 1;\n}\n\n/**\n * @typedef idHandler\n * @type {object}\n * @property {function} get Gets the resize detector id of the element.\n * @property {function} set Generate and sets the resize detector id of the element.\n */\n\n/**\n * @typedef Options\n * @type {object}\n * @property {boolean} callOnAdd Determines if listeners should be called when they are getting added.\n Default is true. If true, the listener is guaranteed to be called when it has been added.\n If false, the listener will not be guarenteed to be called when it has been added (does not prevent it from being called).\n * @property {idHandler} idHandler A custom id handler that is responsible for generating, setting and retrieving id's for elements.\n If not provided, a default id handler will be used.\n * @property {reporter} reporter A custom reporter that handles reporting logs, warnings and errors.\n If not provided, a default id handler will be used.\n If set to false, then nothing will be reported.\n * @property {boolean} debug If set to true, the the system will report debug messages as default for the listenTo method.\n */\n\n/**\n * Creates an element resize detector instance.\n * @public\n * @param {Options?} options Optional global options object that will decide how this instance will work.\n */\nmodule.exports = function(options) {\n options = options || {};\n\n //idHandler is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var idHandler;\n\n if (options.idHandler) {\n // To maintain compatability with idHandler.get(element, readonly), make sure to wrap the given idHandler\n // so that readonly flag always is true when it's used here. This may be removed next major version bump.\n idHandler = {\n get: function (element) { return options.idHandler.get(element, true); },\n set: options.idHandler.set\n };\n } else {\n var idGenerator = idGeneratorMaker();\n var defaultIdHandler = idHandlerMaker({\n idGenerator: idGenerator,\n stateHandler: stateHandler\n });\n idHandler = defaultIdHandler;\n }\n\n //reporter is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var reporter = options.reporter;\n\n if(!reporter) {\n //If options.reporter is false, then the reporter should be quiet.\n var quiet = reporter === false;\n reporter = reporterMaker(quiet);\n }\n\n //batchProcessor is currently not an option to the listenTo function, so it should not be added to globalOptions.\n var batchProcessor = getOption(options, \"batchProcessor\", batchProcessorMaker({ reporter: reporter }));\n\n //Options to be used as default for the listenTo function.\n var globalOptions = {};\n globalOptions.callOnAdd = !!getOption(options, \"callOnAdd\", true);\n globalOptions.debug = !!getOption(options, \"debug\", false);\n\n var eventListenerHandler = listenerHandlerMaker(idHandler);\n var elementUtils = elementUtilsMaker({\n stateHandler: stateHandler\n });\n\n //The detection strategy to be used.\n var detectionStrategy;\n var desiredStrategy = getOption(options, \"strategy\", \"object\");\n var importantCssRules = getOption(options, \"important\", false);\n var strategyOptions = {\n reporter: reporter,\n batchProcessor: batchProcessor,\n stateHandler: stateHandler,\n idHandler: idHandler,\n important: importantCssRules\n };\n\n if(desiredStrategy === \"scroll\") {\n if (browserDetector.isLegacyOpera()) {\n reporter.warn(\"Scroll strategy is not supported on legacy Opera. Changing to object strategy.\");\n desiredStrategy = \"object\";\n } else if (browserDetector.isIE(9)) {\n reporter.warn(\"Scroll strategy is not supported on IE9. Changing to object strategy.\");\n desiredStrategy = \"object\";\n }\n }\n\n if(desiredStrategy === \"scroll\") {\n detectionStrategy = scrollStrategyMaker(strategyOptions);\n } else if(desiredStrategy === \"object\") {\n detectionStrategy = objectStrategyMaker(strategyOptions);\n } else {\n throw new Error(\"Invalid strategy name: \" + desiredStrategy);\n }\n\n //Calls can be made to listenTo with elements that are still being installed.\n //Also, same elements can occur in the elements list in the listenTo function.\n //With this map, the ready callbacks can be synchronized between the calls\n //so that the ready callback can always be called when an element is ready - even if\n //it wasn't installed from the function itself.\n var onReadyCallbacks = {};\n\n /**\n * Makes the given elements resize-detectable and starts listening to resize events on the elements. Calls the event callback for each event for each element.\n * @public\n * @param {Options?} options Optional options object. These options will override the global options. Some options may not be overriden, such as idHandler.\n * @param {element[]|element} elements The given array of elements to detect resize events of. Single element is also valid.\n * @param {function} listener The callback to be executed for each resize event for each element.\n */\n function listenTo(options, elements, listener) {\n function onResizeCallback(element) {\n var listeners = eventListenerHandler.get(element);\n forEach(listeners, function callListenerProxy(listener) {\n listener(element);\n });\n }\n\n function addListener(callOnAdd, element, listener) {\n eventListenerHandler.add(element, listener);\n\n if(callOnAdd) {\n listener(element);\n }\n }\n\n //Options object may be omitted.\n if(!listener) {\n listener = elements;\n elements = options;\n options = {};\n }\n\n if(!elements) {\n throw new Error(\"At least one element required.\");\n }\n\n if(!listener) {\n throw new Error(\"Listener required.\");\n }\n\n if (isElement(elements)) {\n // A single element has been passed in.\n elements = [elements];\n } else if (isCollection(elements)) {\n // Convert collection to array for plugins.\n // TODO: May want to check so that all the elements in the collection are valid elements.\n elements = toArray(elements);\n } else {\n return reporter.error(\"Invalid arguments. Must be a DOM element or a collection of DOM elements.\");\n }\n\n var elementsReady = 0;\n\n var callOnAdd = getOption(options, \"callOnAdd\", globalOptions.callOnAdd);\n var onReadyCallback = getOption(options, \"onReady\", function noop() {});\n var debug = getOption(options, \"debug\", globalOptions.debug);\n\n forEach(elements, function attachListenerToElement(element) {\n if (!stateHandler.getState(element)) {\n stateHandler.initState(element);\n idHandler.set(element);\n }\n\n var id = idHandler.get(element);\n\n debug && reporter.log(\"Attaching listener to element\", id, element);\n\n if(!elementUtils.isDetectable(element)) {\n debug && reporter.log(id, \"Not detectable.\");\n if(elementUtils.isBusy(element)) {\n debug && reporter.log(id, \"System busy making it detectable\");\n\n //The element is being prepared to be detectable. Do not make it detectable.\n //Just add the listener, because the element will soon be detectable.\n addListener(callOnAdd, element, listener);\n onReadyCallbacks[id] = onReadyCallbacks[id] || [];\n onReadyCallbacks[id].push(function onReady() {\n elementsReady++;\n\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n });\n return;\n }\n\n debug && reporter.log(id, \"Making detectable...\");\n //The element is not prepared to be detectable, so do prepare it and add a listener to it.\n elementUtils.markBusy(element, true);\n return detectionStrategy.makeDetectable({ debug: debug, important: importantCssRules }, element, function onElementDetectable(element) {\n debug && reporter.log(id, \"onElementDetectable\");\n\n if (stateHandler.getState(element)) {\n elementUtils.markAsDetectable(element);\n elementUtils.markBusy(element, false);\n detectionStrategy.addListener(element, onResizeCallback);\n addListener(callOnAdd, element, listener);\n\n // Since the element size might have changed since the call to \"listenTo\", we need to check for this change,\n // so that a resize event may be emitted.\n // Having the startSize object is optional (since it does not make sense in some cases such as unrendered elements), so check for its existance before.\n // Also, check the state existance before since the element may have been uninstalled in the installation process.\n var state = stateHandler.getState(element);\n if (state && state.startSize) {\n var width = element.offsetWidth;\n var height = element.offsetHeight;\n if (state.startSize.width !== width || state.startSize.height !== height) {\n onResizeCallback(element);\n }\n }\n\n if(onReadyCallbacks[id]) {\n forEach(onReadyCallbacks[id], function(callback) {\n callback();\n });\n }\n } else {\n // The element has been unisntalled before being detectable.\n debug && reporter.log(id, \"Element uninstalled before being detectable.\");\n }\n\n delete onReadyCallbacks[id];\n\n elementsReady++;\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n });\n }\n\n debug && reporter.log(id, \"Already detecable, adding listener.\");\n\n //The element has been prepared to be detectable and is ready to be listened to.\n addListener(callOnAdd, element, listener);\n elementsReady++;\n });\n\n if(elementsReady === elements.length) {\n onReadyCallback();\n }\n }\n\n function uninstall(elements) {\n if(!elements) {\n return reporter.error(\"At least one element is required.\");\n }\n\n if (isElement(elements)) {\n // A single element has been passed in.\n elements = [elements];\n } else if (isCollection(elements)) {\n // Convert collection to array for plugins.\n // TODO: May want to check so that all the elements in the collection are valid elements.\n elements = toArray(elements);\n } else {\n return reporter.error(\"Invalid arguments. Must be a DOM element or a collection of DOM elements.\");\n }\n\n forEach(elements, function (element) {\n eventListenerHandler.removeAllListeners(element);\n detectionStrategy.uninstall(element);\n stateHandler.cleanState(element);\n });\n }\n\n function initDocument(targetDocument) {\n detectionStrategy.initDocument && detectionStrategy.initDocument(targetDocument);\n }\n\n return {\n listenTo: listenTo,\n removeListener: eventListenerHandler.removeListener,\n removeAllListeners: eventListenerHandler.removeAllListeners,\n uninstall: uninstall,\n initDocument: initDocument\n };\n};\n\nfunction getOption(options, name, defaultValue) {\n var value = options[name];\n\n if((value === undefined || value === null) && defaultValue !== undefined) {\n return defaultValue;\n }\n\n return value;\n}\n","\"use strict\";\n\nmodule.exports = function(options) {\n var getState = options.stateHandler.getState;\n\n /**\n * Tells if the element has been made detectable and ready to be listened for resize events.\n * @public\n * @param {element} The element to check.\n * @returns {boolean} True or false depending on if the element is detectable or not.\n */\n function isDetectable(element) {\n var state = getState(element);\n return state && !!state.isDetectable;\n }\n\n /**\n * Marks the element that it has been made detectable and ready to be listened for resize events.\n * @public\n * @param {element} The element to mark.\n */\n function markAsDetectable(element) {\n getState(element).isDetectable = true;\n }\n\n /**\n * Tells if the element is busy or not.\n * @public\n * @param {element} The element to check.\n * @returns {boolean} True or false depending on if the element is busy or not.\n */\n function isBusy(element) {\n return !!getState(element).busy;\n }\n\n /**\n * Marks the object is busy and should not be made detectable.\n * @public\n * @param {element} element The element to mark.\n * @param {boolean} busy If the element is busy or not.\n */\n function markBusy(element, busy) {\n getState(element).busy = !!busy;\n }\n\n return {\n isDetectable: isDetectable,\n markAsDetectable: markAsDetectable,\n isBusy: isBusy,\n markBusy: markBusy\n };\n};\n","\"use strict\";\n\nmodule.exports = function() {\n var idCount = 1;\n\n /**\n * Generates a new unique id in the context.\n * @public\n * @returns {number} A unique id in the context.\n */\n function generate() {\n return idCount++;\n }\n\n return {\n generate: generate\n };\n};\n","\"use strict\";\n\nmodule.exports = function(options) {\n var idGenerator = options.idGenerator;\n var getState = options.stateHandler.getState;\n\n /**\n * Gets the resize detector id of the element.\n * @public\n * @param {element} element The target element to get the id of.\n * @returns {string|number|null} The id of the element. Null if it has no id.\n */\n function getId(element) {\n var state = getState(element);\n\n if (state && state.id !== undefined) {\n return state.id;\n }\n\n return null;\n }\n\n /**\n * Sets the resize detector id of the element. Requires the element to have a resize detector state initialized.\n * @public\n * @param {element} element The target element to set the id of.\n * @returns {string|number|null} The id of the element.\n */\n function setId(element) {\n var state = getState(element);\n\n if (!state) {\n throw new Error(\"setId required the element to have a resize detection state.\");\n }\n\n var id = idGenerator.generate();\n\n state.id = id;\n\n return id;\n }\n\n return {\n get: getId,\n set: setId\n };\n};\n","\"use strict\";\n\nmodule.exports = function(idHandler) {\n var eventListeners = {};\n\n /**\n * Gets all listeners for the given element.\n * @public\n * @param {element} element The element to get all listeners for.\n * @returns All listeners for the given element.\n */\n function getListeners(element) {\n var id = idHandler.get(element);\n\n if (id === undefined) {\n return [];\n }\n\n return eventListeners[id] || [];\n }\n\n /**\n * Stores the given listener for the given element. Will not actually add the listener to the element.\n * @public\n * @param {element} element The element that should have the listener added.\n * @param {function} listener The callback that the element has added.\n */\n function addListener(element, listener) {\n var id = idHandler.get(element);\n\n if(!eventListeners[id]) {\n eventListeners[id] = [];\n }\n\n eventListeners[id].push(listener);\n }\n\n function removeListener(element, listener) {\n var listeners = getListeners(element);\n for (var i = 0, len = listeners.length; i < len; ++i) {\n if (listeners[i] === listener) {\n listeners.splice(i, 1);\n break;\n }\n }\n }\n\n function removeAllListeners(element) {\n var listeners = getListeners(element);\n if (!listeners) { return; }\n listeners.length = 0;\n }\n\n return {\n get: getListeners,\n add: addListener,\n removeListener: removeListener,\n removeAllListeners: removeAllListeners\n };\n};\n","\"use strict\";\n\n/* global console: false */\n\n/**\n * Reporter that handles the reporting of logs, warnings and errors.\n * @public\n * @param {boolean} quiet Tells if the reporter should be quiet or not.\n */\nmodule.exports = function(quiet) {\n function noop() {\n //Does nothing.\n }\n\n var reporter = {\n log: noop,\n warn: noop,\n error: noop\n };\n\n if(!quiet && window.console) {\n var attachFunction = function(reporter, name) {\n //The proxy is needed to be able to call the method with the console context,\n //since we cannot use bind.\n reporter[name] = function reporterProxy() {\n var f = console[name];\n if (f.apply) { //IE9 does not support console.log.apply :)\n f.apply(console, arguments);\n } else {\n for (var i = 0; i < arguments.length; i++) {\n f(arguments[i]);\n }\n }\n };\n };\n\n attachFunction(reporter, \"log\");\n attachFunction(reporter, \"warn\");\n attachFunction(reporter, \"error\");\n }\n\n return reporter;\n};","\"use strict\";\n\nvar prop = \"_erd\";\n\nfunction initState(element) {\n element[prop] = {};\n return getState(element);\n}\n\nfunction getState(element) {\n return element[prop];\n}\n\nfunction cleanState(element) {\n delete element[prop];\n}\n\nmodule.exports = {\n initState: initState,\n getState: getState,\n cleanState: cleanState\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar slice = Array.prototype.slice;\nvar toStr = Object.prototype.toString;\nvar funcType = '[object Function]';\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slice.call(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n args.concat(slice.call(arguments))\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n } else {\n return target.apply(\n that,\n args.concat(slice.call(arguments))\n );\n }\n };\n\n var boundLength = Math.max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs.push('$' + i);\n }\n\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar functionsHaveNames = function functionsHaveNames() {\n\treturn typeof function f() {}.name === 'string';\n};\n\nvar gOPD = Object.getOwnPropertyDescriptor;\nif (gOPD) {\n\ttry {\n\t\tgOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\tgOPD = null;\n\t}\n}\n\nfunctionsHaveNames.functionsHaveConfigurableNames = function functionsHaveConfigurableNames() {\n\tif (!functionsHaveNames() || !gOPD) {\n\t\treturn false;\n\t}\n\tvar desc = gOPD(function () {}, 'name');\n\treturn !!desc && !!desc.configurable;\n};\n\nvar $bind = Function.prototype.bind;\n\nfunctionsHaveNames.boundFunctionsHaveNames = function boundFunctionsHaveNames() {\n\treturn functionsHaveNames() && typeof $bind === 'function' && function f() {}.bind().name !== '';\n};\n\nmodule.exports = functionsHaveNames;\n","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = Object.getPrototypeOf || function (x) { return x.__proto__; }; // eslint-disable-line no-proto\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('has');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","// @flow\n'use strict';\n\nvar key = '__global_unique_id__';\n\nmodule.exports = function() {\n return global[key] = (global[key] || 0) + 1;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar bind = require('function-bind');\n\nmodule.exports = bind.call(Function.call, Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nvar invariant = function(condition, format, a, b, c, d, e, f) {\n if (process.env.NODE_ENV !== 'production') {\n if (format === undefined) {\n throw new Error('invariant requires an error message argument');\n }\n }\n\n if (!condition) {\n var error;\n if (format === undefined) {\n error = new Error(\n 'Minified exception occurred; use the non-minified dev environment ' +\n 'for the full error message and additional helpful warnings.'\n );\n } else {\n var args = [a, b, c, d, e, f];\n var argIndex = 0;\n error = new Error(\n format.replace(/%s/g, function() { return args[argIndex++]; })\n );\n error.name = 'Invariant Violation';\n }\n\n error.framesToPop = 1; // we don't care about invariant's own frame\n throw error;\n }\n};\n\nmodule.exports = invariant;\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n\tif (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null &&\n\t\ttypeof value === 'object' &&\n\t\ttypeof value.length === 'number' &&\n\t\tvalue.length >= 0 &&\n\t\t$toString(value) !== '[object Array]' &&\n\t\t$toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar getDay = Date.prototype.getDay;\nvar tryDateObject = function tryDateGetDayCall(value) {\n\ttry {\n\t\tgetDay.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar toStr = Object.prototype.toString;\nvar dateClass = '[object Date]';\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nmodule.exports = function isDateObject(value) {\n\tif (typeof value !== 'object' || value === null) {\n\t\treturn false;\n\t}\n\treturn hasToStringTag ? tryDateObject(value) : toStr.call(value) === dateClass;\n};\n","'use strict';\n\nvar callBound = require('call-bind/callBound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar has;\nvar $exec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n\thas = callBound('Object.prototype.hasOwnProperty');\n\t$exec = callBound('RegExp.prototype.exec');\n\tisRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\tbadStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n}\n\nvar $toString = callBound('Object.prototype.toString');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\n\nmodule.exports = hasToStringTag\n\t// eslint-disable-next-line consistent-return\n\t? function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\tvar descriptor = gOPD(value, 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && has(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t$exec(value, badStringifier);\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t}\n\t: function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n","'use strict';\n\nvar numberIsNaN = function (value) {\n\treturn value !== value;\n};\n\nmodule.exports = function is(a, b) {\n\tif (a === 0 && b === 0) {\n\t\treturn 1 / a === 1 / b;\n\t}\n\tif (a === b) {\n\t\treturn true;\n\t}\n\tif (numberIsNaN(a) && numberIsNaN(b)) {\n\t\treturn true;\n\t}\n\treturn false;\n};\n\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar polyfill = callBind(getPolyfill(), Object);\n\ndefine(polyfill, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = polyfill;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = function getPolyfill() {\n\treturn typeof Object.is === 'function' ? Object.is : implementation;\n};\n","'use strict';\n\nvar getPolyfill = require('./polyfill');\nvar define = require('define-properties');\n\nmodule.exports = function shimObjectIs() {\n\tvar polyfill = getPolyfill();\n\tdefine(Object, { is: polyfill }, {\n\t\tis: function testObjectIs() {\n\t\t\treturn Object.is !== polyfill;\n\t\t}\n\t});\n\treturn polyfill;\n};\n","'use strict';\n\nvar keysShim;\nif (!Object.keys) {\n\t// modified from https://github.com/es-shims/es5-shim\n\tvar has = Object.prototype.hasOwnProperty;\n\tvar toStr = Object.prototype.toString;\n\tvar isArgs = require('./isArguments'); // eslint-disable-line global-require\n\tvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\tvar hasDontEnumBug = !isEnumerable.call({ toString: null }, 'toString');\n\tvar hasProtoEnumBug = isEnumerable.call(function () {}, 'prototype');\n\tvar dontEnums = [\n\t\t'toString',\n\t\t'toLocaleString',\n\t\t'valueOf',\n\t\t'hasOwnProperty',\n\t\t'isPrototypeOf',\n\t\t'propertyIsEnumerable',\n\t\t'constructor'\n\t];\n\tvar equalsConstructorPrototype = function (o) {\n\t\tvar ctor = o.constructor;\n\t\treturn ctor && ctor.prototype === o;\n\t};\n\tvar excludedKeys = {\n\t\t$applicationCache: true,\n\t\t$console: true,\n\t\t$external: true,\n\t\t$frame: true,\n\t\t$frameElement: true,\n\t\t$frames: true,\n\t\t$innerHeight: true,\n\t\t$innerWidth: true,\n\t\t$onmozfullscreenchange: true,\n\t\t$onmozfullscreenerror: true,\n\t\t$outerHeight: true,\n\t\t$outerWidth: true,\n\t\t$pageXOffset: true,\n\t\t$pageYOffset: true,\n\t\t$parent: true,\n\t\t$scrollLeft: true,\n\t\t$scrollTop: true,\n\t\t$scrollX: true,\n\t\t$scrollY: true,\n\t\t$self: true,\n\t\t$webkitIndexedDB: true,\n\t\t$webkitStorageInfo: true,\n\t\t$window: true\n\t};\n\tvar hasAutomationEqualityBug = (function () {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined') { return false; }\n\t\tfor (var k in window) {\n\t\t\ttry {\n\t\t\t\tif (!excludedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn false;\n\t}());\n\tvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t\t/* global window */\n\t\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t}\n\t\ttry {\n\t\t\treturn equalsConstructorPrototype(o);\n\t\t} catch (e) {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\tkeysShim = function keys(object) {\n\t\tvar isObject = object !== null && typeof object === 'object';\n\t\tvar isFunction = toStr.call(object) === '[object Function]';\n\t\tvar isArguments = isArgs(object);\n\t\tvar isString = isObject && toStr.call(object) === '[object String]';\n\t\tvar theKeys = [];\n\n\t\tif (!isObject && !isFunction && !isArguments) {\n\t\t\tthrow new TypeError('Object.keys called on a non-object');\n\t\t}\n\n\t\tvar skipProto = hasProtoEnumBug && isFunction;\n\t\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\t\ttheKeys.push(String(i));\n\t\t\t}\n\t\t}\n\n\t\tif (isArguments && object.length > 0) {\n\t\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\t\ttheKeys.push(String(j));\n\t\t\t}\n\t\t} else {\n\t\t\tfor (var name in object) {\n\t\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\t\ttheKeys.push(String(name));\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (hasDontEnumBug) {\n\t\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn theKeys;\n\t};\n}\nmodule.exports = keysShim;\n","'use strict';\n\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) { return origKeys(o); } : require('./implementation');\n\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (Object.keys) {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\tvar args = Object.keys(arguments);\n\t\t\treturn args && args.length === arguments.length;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tObject.keys = function keys(object) { // eslint-disable-line func-name-matching\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t}\n\t\t\t\treturn originalKeys(object);\n\t\t\t};\n\t\t}\n\t} else {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nfunction componentWillMount() {\n // Call this.constructor.gDSFP to support sub-classes.\n var state = this.constructor.getDerivedStateFromProps(this.props, this.state);\n if (state !== null && state !== undefined) {\n this.setState(state);\n }\n}\n\nfunction componentWillReceiveProps(nextProps) {\n // Call this.constructor.gDSFP to support sub-classes.\n // Use the setState() updater to ensure state isn't stale in certain edge cases.\n function updater(prevState) {\n var state = this.constructor.getDerivedStateFromProps(nextProps, prevState);\n return state !== null && state !== undefined ? state : null;\n }\n // Binding \"this\" is important for shallow renderer support.\n this.setState(updater.bind(this));\n}\n\nfunction componentWillUpdate(nextProps, nextState) {\n try {\n var prevProps = this.props;\n var prevState = this.state;\n this.props = nextProps;\n this.state = nextState;\n this.__reactInternalSnapshotFlag = true;\n this.__reactInternalSnapshot = this.getSnapshotBeforeUpdate(\n prevProps,\n prevState\n );\n } finally {\n this.props = prevProps;\n this.state = prevState;\n }\n}\n\n// React may warn about cWM/cWRP/cWU methods being deprecated.\n// Add a flag to suppress these warnings for this special case.\ncomponentWillMount.__suppressDeprecationWarning = true;\ncomponentWillReceiveProps.__suppressDeprecationWarning = true;\ncomponentWillUpdate.__suppressDeprecationWarning = true;\n\nfunction polyfill(Component) {\n var prototype = Component.prototype;\n\n if (!prototype || !prototype.isReactComponent) {\n throw new Error('Can only polyfill class components');\n }\n\n if (\n typeof Component.getDerivedStateFromProps !== 'function' &&\n typeof prototype.getSnapshotBeforeUpdate !== 'function'\n ) {\n return Component;\n }\n\n // If new component APIs are defined, \"unsafe\" lifecycles won't be called.\n // Error if any of these lifecycles are present,\n // Because they would work differently between older and newer (16.3+) versions of React.\n var foundWillMountName = null;\n var foundWillReceivePropsName = null;\n var foundWillUpdateName = null;\n if (typeof prototype.componentWillMount === 'function') {\n foundWillMountName = 'componentWillMount';\n } else if (typeof prototype.UNSAFE_componentWillMount === 'function') {\n foundWillMountName = 'UNSAFE_componentWillMount';\n }\n if (typeof prototype.componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'componentWillReceiveProps';\n } else if (typeof prototype.UNSAFE_componentWillReceiveProps === 'function') {\n foundWillReceivePropsName = 'UNSAFE_componentWillReceiveProps';\n }\n if (typeof prototype.componentWillUpdate === 'function') {\n foundWillUpdateName = 'componentWillUpdate';\n } else if (typeof prototype.UNSAFE_componentWillUpdate === 'function') {\n foundWillUpdateName = 'UNSAFE_componentWillUpdate';\n }\n if (\n foundWillMountName !== null ||\n foundWillReceivePropsName !== null ||\n foundWillUpdateName !== null\n ) {\n var componentName = Component.displayName || Component.name;\n var newApiName =\n typeof Component.getDerivedStateFromProps === 'function'\n ? 'getDerivedStateFromProps()'\n : 'getSnapshotBeforeUpdate()';\n\n throw Error(\n 'Unsafe legacy lifecycles will not be called for components using new component APIs.\\n\\n' +\n componentName +\n ' uses ' +\n newApiName +\n ' but also contains the following legacy lifecycles:' +\n (foundWillMountName !== null ? '\\n ' + foundWillMountName : '') +\n (foundWillReceivePropsName !== null\n ? '\\n ' + foundWillReceivePropsName\n : '') +\n (foundWillUpdateName !== null ? '\\n ' + foundWillUpdateName : '') +\n '\\n\\nThe above lifecycles should be removed. Learn more about this warning here:\\n' +\n 'https://fb.me/react-async-component-lifecycle-hooks'\n );\n }\n\n // React <= 16.2 does not support static getDerivedStateFromProps.\n // As a workaround, use cWM and cWRP to invoke the new static lifecycle.\n // Newer versions of React will ignore these lifecycles if gDSFP exists.\n if (typeof Component.getDerivedStateFromProps === 'function') {\n prototype.componentWillMount = componentWillMount;\n prototype.componentWillReceiveProps = componentWillReceiveProps;\n }\n\n // React <= 16.2 does not support getSnapshotBeforeUpdate.\n // As a workaround, use cWU to invoke the new lifecycle.\n // Newer versions of React will ignore that lifecycle if gSBU exists.\n if (typeof prototype.getSnapshotBeforeUpdate === 'function') {\n if (typeof prototype.componentDidUpdate !== 'function') {\n throw new Error(\n 'Cannot polyfill getSnapshotBeforeUpdate() for components that do not define componentDidUpdate() on the prototype'\n );\n }\n\n prototype.componentWillUpdate = componentWillUpdate;\n\n var componentDidUpdate = prototype.componentDidUpdate;\n\n prototype.componentDidUpdate = function componentDidUpdatePolyfill(\n prevProps,\n prevState,\n maybeSnapshot\n ) {\n // 16.3+ will not execute our will-update method;\n // It will pass a snapshot value to did-update though.\n // Older versions will require our polyfilled will-update value.\n // We need to handle both cases, but can't just check for the presence of \"maybeSnapshot\",\n // Because for <= 15.x versions this might be a \"prevContext\" object.\n // We also can't just check \"__reactInternalSnapshot\",\n // Because get-snapshot might return a falsy value.\n // So check for the explicit __reactInternalSnapshotFlag flag to determine behavior.\n var snapshot = this.__reactInternalSnapshotFlag\n ? this.__reactInternalSnapshot\n : maybeSnapshot;\n\n componentDidUpdate.call(this, prevProps, prevState, snapshot);\n };\n }\n\n return Component;\n}\n\nexport { polyfill };\n","import createResizeDetector from 'element-resize-detector'\n\nconst instances = {}\n\n// Lazily require to not cause bug\n// https://github.com/ctrlplusb/react-sizeme/issues/6\nfunction resizeDetector(strategy = 'scroll') {\n if (!instances[strategy]) {\n instances[strategy] = createResizeDetector({\n strategy,\n })\n }\n\n return instances[strategy]\n}\n\nexport default resizeDetector\n","/* eslint-disable react/no-multi-comp */\n/* eslint-disable react/prop-types */\n/* eslint-disable react/require-default-props */\n/* eslint-disable react/no-find-dom-node */\n\nimport React, { Children, Component } from 'react'\nimport ReactDOM from 'react-dom'\nimport invariant from 'invariant'\nimport { debounce, throttle } from 'throttle-debounce'\nimport resizeDetector from './resize-detector'\n\nconst errMsg =\n 'react-sizeme: an error occurred whilst stopping to listen to node size changes'\n\nconst defaultConfig = {\n monitorWidth: true,\n monitorHeight: false,\n refreshRate: 16,\n refreshMode: 'throttle',\n noPlaceholder: false,\n resizeDetectorStrategy: 'scroll',\n}\n\nfunction getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component'\n}\n\n/**\n * This is a utility wrapper component that will allow our higher order\n * component to get a ref handle on our wrapped components html.\n * @see https://gist.github.com/jimfb/32b587ee6177665fb4cf\n */\nclass ReferenceWrapper extends Component {\n static displayName = 'SizeMeReferenceWrapper'\n\n render() {\n return Children.only(this.props.children)\n }\n}\n\nfunction Placeholder({ className, style }) {\n // Lets create the props for the temp element.\n const phProps = {}\n\n // We will use any provided className/style or else make the temp\n // container take the full available space.\n if (!className && !style) {\n phProps.style = { width: '100%', height: '100%' }\n } else {\n if (className) {\n phProps.className = className\n }\n if (style) {\n phProps.style = style\n }\n }\n\n return
\n}\nPlaceholder.displayName = 'SizeMePlaceholder'\n\n/**\n * As we need to maintain a ref on the root node that is rendered within our\n * SizeMe component we need to wrap our entire render in a sub component.\n * Without this, we lose the DOM ref after the placeholder is removed from\n * the render and the actual component is rendered.\n * It took me forever to figure this out, so tread extra careful on this one!\n */\nconst renderWrapper = (WrappedComponent) => {\n function SizeMeRenderer(props) {\n const {\n explicitRef,\n className,\n style,\n size,\n disablePlaceholder,\n onSize,\n ...restProps\n } = props\n\n const noSizeData =\n size == null || (size.width == null && size.height == null)\n\n const renderPlaceholder = noSizeData && !disablePlaceholder\n\n const renderProps = {\n className,\n style,\n }\n\n if (size != null) {\n renderProps.size = size\n }\n\n const toRender = renderPlaceholder ? (\n \n ) : (\n \n )\n\n return {toRender}\n }\n\n SizeMeRenderer.displayName = `SizeMeRenderer(${getDisplayName(\n WrappedComponent,\n )})`\n\n return SizeMeRenderer\n}\n\n/**\n * :: config -> Component -> WrappedComponent\n *\n * Higher order component that allows the wrapped component to become aware\n * of it's size, by receiving it as an object within it's props.\n *\n * @param monitorWidth\n * Default true, whether changes in the element's width should be monitored,\n * causing a size property to be broadcast.\n * @param monitorHeight\n * Default false, whether changes in the element's height should be monitored,\n * causing a size property to be broadcast.\n *\n * @return The wrapped component.\n */\nfunction withSize(config = defaultConfig) {\n const {\n monitorWidth = defaultConfig.monitorWidth,\n monitorHeight = defaultConfig.monitorHeight,\n refreshRate = defaultConfig.refreshRate,\n refreshMode = defaultConfig.refreshMode,\n noPlaceholder = defaultConfig.noPlaceholder,\n resizeDetectorStrategy = defaultConfig.resizeDetectorStrategy,\n } = config\n\n invariant(\n monitorWidth || monitorHeight,\n 'You have to monitor at least one of the width or height when using \"sizeMe\"',\n )\n\n invariant(\n refreshRate >= 16,\n \"It is highly recommended that you don't put your refreshRate lower than \" +\n '16 as this may cause layout thrashing.',\n )\n\n invariant(\n refreshMode === 'throttle' || refreshMode === 'debounce',\n 'The refreshMode should have a value of \"throttle\" or \"debounce\"',\n )\n\n const refreshDelayStrategy = refreshMode === 'throttle' ? throttle : debounce\n\n return function WrapComponent(WrappedComponent) {\n const SizeMeRenderWrapper = renderWrapper(WrappedComponent)\n\n class SizeAwareComponent extends React.Component {\n static displayName = `SizeMe(${getDisplayName(WrappedComponent)})`\n\n domEl = null\n\n state = {\n width: undefined,\n height: undefined,\n }\n\n componentDidMount() {\n this.detector = resizeDetector(resizeDetectorStrategy)\n this.determineStrategy(this.props)\n this.handleDOMNode()\n }\n\n componentDidUpdate() {\n this.determineStrategy(this.props)\n this.handleDOMNode()\n }\n\n componentWillUnmount() {\n // Change our size checker to a noop just in case we have some\n // late running events.\n this.hasSizeChanged = () => undefined\n this.checkIfSizeChanged = () => undefined\n this.uninstall()\n }\n\n uninstall = () => {\n if (this.domEl) {\n try {\n this.detector.uninstall(this.domEl)\n } catch (err) {\n // eslint-disable-next-line no-console\n console.warn(errMsg)\n }\n this.domEl = null\n }\n }\n\n determineStrategy = (props) => {\n if (props.onSize) {\n if (!this.callbackState) {\n this.callbackState = {\n ...this.state,\n }\n }\n this.strategy = 'callback'\n } else {\n this.strategy = 'render'\n }\n }\n\n strategisedSetState = (state) => {\n if (this.strategy === 'callback') {\n this.callbackState = state\n this.props.onSize(state)\n }\n this.setState(state)\n }\n\n strategisedGetState = () =>\n this.strategy === 'callback' ? this.callbackState : this.state\n\n handleDOMNode() {\n const found = this.element && ReactDOM.findDOMNode(this.element)\n\n if (!found) {\n // If we previously had a dom node then we need to ensure that\n // we remove any existing listeners to avoid memory leaks.\n this.uninstall()\n return\n }\n\n if (!this.domEl) {\n this.domEl = found\n this.detector.listenTo(this.domEl, this.checkIfSizeChanged)\n } else if (\n (this.domEl.isSameNode && !this.domEl.isSameNode(found)) ||\n this.domEl !== found\n ) {\n this.uninstall()\n this.domEl = found\n this.detector.listenTo(this.domEl, this.checkIfSizeChanged)\n } else {\n // Do nothing 👍\n }\n }\n\n refCallback = (element) => {\n this.element = element\n }\n\n hasSizeChanged = (current, next) => {\n const c = current\n const n = next\n\n return (\n (monitorWidth && c.width !== n.width) ||\n (monitorHeight && c.height !== n.height)\n )\n }\n\n checkIfSizeChanged = refreshDelayStrategy(refreshRate, (el) => {\n const { width, height } = el.getBoundingClientRect()\n\n const next = {\n width: monitorWidth ? width : null,\n height: monitorHeight ? height : null,\n }\n\n if (this.hasSizeChanged(this.strategisedGetState(), next)) {\n this.strategisedSetState(next)\n }\n })\n\n render() {\n const disablePlaceholder =\n withSize.enableSSRBehaviour ||\n withSize.noPlaceholders ||\n noPlaceholder ||\n this.strategy === 'callback'\n\n const size = { ...this.state }\n\n return (\n \n )\n }\n }\n\n SizeAwareComponent.WrappedComponent = WrappedComponent\n\n return SizeAwareComponent\n }\n}\n\n/**\n * Allow SizeMe to run within SSR environments. This is a \"global\" behaviour\n * flag that should be set within the initialisation phase of your application.\n *\n * Warning: don't set this flag unless you need to as using it may cause\n * extra render cycles to happen within your components depending on the logic\n * contained within them around the usage of the `size` data.\n *\n * DEPRECATED: Please use the global noPlaceholders\n */\nwithSize.enableSSRBehaviour = false\n\n/**\n * Global configuration allowing to disable placeholder rendering for all\n * sizeMe components.\n */\nwithSize.noPlaceholders = false\n\nexport default withSize\n","/* eslint-disable react/prop-types */\n\nimport React, { Component } from 'react'\nimport isShallowEqual from 'shallowequal'\nimport withSize from './with-size'\n\nexport default class SizeMe extends Component {\n static defaultProps = {\n children: undefined,\n render: undefined,\n }\n\n constructor(props) {\n super(props)\n const { children, render, ...sizeMeConfig } = props\n this.createComponent(sizeMeConfig)\n this.state = {\n size: {\n width: undefined,\n height: undefined,\n },\n }\n }\n\n componentDidUpdate(prevProps) {\n const {\n children: prevChildren,\n render: prevRender,\n ...currentSizeMeConfig\n } = this.props\n const {\n children: nextChildren,\n render: nextRender,\n ...prevSizeMeConfig\n } = prevProps\n if (!isShallowEqual(currentSizeMeConfig, prevSizeMeConfig)) {\n this.createComponent(currentSizeMeConfig)\n }\n }\n\n createComponent = (config) => {\n this.SizeAware = withSize(config)(({ children }) => children)\n }\n\n onSize = (size) => this.setState({ size })\n\n render() {\n const { SizeAware } = this\n const render = this.props.children || this.props.render\n return (\n \n {render({ size: this.state.size })}\n \n )\n }\n}\n","import withSize from './with-size'\nimport SizeMe from './component'\n\nwithSize.SizeMe = SizeMe\nwithSize.withSize = withSize\n\nexport default withSize\n","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _addClass = _interopRequireDefault(require(\"dom-helpers/class/addClass\"));\n\nvar _removeClass = _interopRequireDefault(require(\"dom-helpers/class/removeClass\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; } }\n\nfunction _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); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar addClass = function addClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _addClass.default)(node, c);\n });\n};\n\nvar removeClass = function removeClass(node, classes) {\n return node && classes && classes.split(' ').forEach(function (c) {\n return (0, _removeClass.default)(node, c);\n });\n};\n/**\n * A transition component inspired by the excellent\n * [ng-animate](http://www.nganimate.org/) library, you should use it if you're\n * using CSS transitions or animations. It's built upon the\n * [`Transition`](https://reactcommunity.org/react-transition-group/transition)\n * component, so it inherits all of its props.\n *\n * `CSSTransition` applies a pair of class names during the `appear`, `enter`,\n * and `exit` states of the transition. The first class is applied and then a\n * second `*-active` class in order to activate the CSSS transition. After the\n * transition, matching `*-done` class names are applied to persist the\n * transition state.\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n *
\n * {\"I'll receive my-node-* classes\"}\n *
\n *
\n * \n *
\n * );\n * }\n * ```\n *\n * When the `in` prop is set to `true`, the child component will first receive\n * the class `example-enter`, then the `example-enter-active` will be added in\n * the next tick. `CSSTransition` [forces a\n * reflow](https://github.com/reactjs/react-transition-group/blob/5007303e729a74be66a21c3e2205e4916821524b/src/CSSTransition.js#L208-L215)\n * between before adding the `example-enter-active`. This is an important trick\n * because it allows us to transition between `example-enter` and\n * `example-enter-active` even though they were added immediately one after\n * another. Most notably, this is what makes it possible for us to animate\n * _appearance_.\n *\n * ```css\n * .my-node-enter {\n * opacity: 0;\n * }\n * .my-node-enter-active {\n * opacity: 1;\n * transition: opacity 200ms;\n * }\n * .my-node-exit {\n * opacity: 1;\n * }\n * .my-node-exit-active {\n * opacity: 0;\n * transition: opacity 200ms;\n * }\n * ```\n *\n * `*-active` classes represent which styles you want to animate **to**.\n */\n\n\nvar CSSTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(CSSTransition, _React$Component);\n\n function CSSTransition() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.onEnter = function (node, appearing) {\n var _this$getClassNames = _this.getClassNames(appearing ? 'appear' : 'enter'),\n className = _this$getClassNames.className;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, className);\n\n if (_this.props.onEnter) {\n _this.props.onEnter(node, appearing);\n }\n };\n\n _this.onEntering = function (node, appearing) {\n var _this$getClassNames2 = _this.getClassNames(appearing ? 'appear' : 'enter'),\n activeClassName = _this$getClassNames2.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onEntering) {\n _this.props.onEntering(node, appearing);\n }\n };\n\n _this.onEntered = function (node, appearing) {\n var appearClassName = _this.getClassNames('appear').doneClassName;\n\n var enterClassName = _this.getClassNames('enter').doneClassName;\n\n var doneClassName = appearing ? appearClassName + \" \" + enterClassName : enterClassName;\n\n _this.removeClasses(node, appearing ? 'appear' : 'enter');\n\n addClass(node, doneClassName);\n\n if (_this.props.onEntered) {\n _this.props.onEntered(node, appearing);\n }\n };\n\n _this.onExit = function (node) {\n var _this$getClassNames3 = _this.getClassNames('exit'),\n className = _this$getClassNames3.className;\n\n _this.removeClasses(node, 'appear');\n\n _this.removeClasses(node, 'enter');\n\n addClass(node, className);\n\n if (_this.props.onExit) {\n _this.props.onExit(node);\n }\n };\n\n _this.onExiting = function (node) {\n var _this$getClassNames4 = _this.getClassNames('exit'),\n activeClassName = _this$getClassNames4.activeClassName;\n\n _this.reflowAndAddClass(node, activeClassName);\n\n if (_this.props.onExiting) {\n _this.props.onExiting(node);\n }\n };\n\n _this.onExited = function (node) {\n var _this$getClassNames5 = _this.getClassNames('exit'),\n doneClassName = _this$getClassNames5.doneClassName;\n\n _this.removeClasses(node, 'exit');\n\n addClass(node, doneClassName);\n\n if (_this.props.onExited) {\n _this.props.onExited(node);\n }\n };\n\n _this.getClassNames = function (type) {\n var classNames = _this.props.classNames;\n var isStringClassNames = typeof classNames === 'string';\n var prefix = isStringClassNames && classNames ? classNames + '-' : '';\n var className = isStringClassNames ? prefix + type : classNames[type];\n var activeClassName = isStringClassNames ? className + '-active' : classNames[type + 'Active'];\n var doneClassName = isStringClassNames ? className + '-done' : classNames[type + 'Done'];\n return {\n className: className,\n activeClassName: activeClassName,\n doneClassName: doneClassName\n };\n };\n\n return _this;\n }\n\n var _proto = CSSTransition.prototype;\n\n _proto.removeClasses = function removeClasses(node, type) {\n var _this$getClassNames6 = this.getClassNames(type),\n className = _this$getClassNames6.className,\n activeClassName = _this$getClassNames6.activeClassName,\n doneClassName = _this$getClassNames6.doneClassName;\n\n className && removeClass(node, className);\n activeClassName && removeClass(node, activeClassName);\n doneClassName && removeClass(node, doneClassName);\n };\n\n _proto.reflowAndAddClass = function reflowAndAddClass(node, className) {\n // This is for to force a repaint,\n // which is necessary in order to transition styles when adding a class name.\n if (className) {\n /* eslint-disable no-unused-expressions */\n node && node.scrollTop;\n /* eslint-enable no-unused-expressions */\n\n addClass(node, className);\n }\n };\n\n _proto.render = function render() {\n var props = _extends({}, this.props);\n\n delete props.classNames;\n return _react.default.createElement(_Transition.default, _extends({}, props, {\n onEnter: this.onEnter,\n onEntered: this.onEntered,\n onEntering: this.onEntering,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }));\n };\n\n return CSSTransition;\n}(_react.default.Component);\n\nCSSTransition.defaultProps = {\n classNames: ''\n};\nCSSTransition.propTypes = process.env.NODE_ENV !== \"production\" ? _extends({}, _Transition.default.propTypes, {\n /**\n * The animation classNames applied to the component as it enters, exits or\n * has finished the transition. A single name can be provided and it will be\n * suffixed for each stage: e.g.\n *\n * `classNames=\"fade\"` applies `fade-enter`, `fade-enter-active`,\n * `fade-enter-done`, `fade-exit`, `fade-exit-active`, `fade-exit-done`,\n * `fade-appear`, `fade-appear-active`, and `fade-appear-done`.\n *\n * **Note**: `fade-appear-done` and `fade-enter-done` will _both_ be applied.\n * This allows you to define different behavior for when appearing is done and\n * when regular entering is done, using selectors like\n * `.fade-enter-done:not(.fade-appear-done)`. For example, you could apply an\n * epic entrance animation when element first appears in the DOM using\n * [Animate.css](https://daneden.github.io/animate.css/). Otherwise you can\n * simply use `fade-enter-done` for defining both cases.\n *\n * Each individual classNames can also be specified independently like:\n *\n * ```js\n * classNames={{\n * appear: 'my-appear',\n * appearActive: 'my-active-appear',\n * appearDone: 'my-done-appear',\n * enter: 'my-enter',\n * enterActive: 'my-active-enter',\n * enterDone: 'my-done-enter',\n * exit: 'my-exit',\n * exitActive: 'my-active-exit',\n * exitDone: 'my-done-exit',\n * }}\n * ```\n *\n * If you want to set these classes using CSS Modules:\n *\n * ```js\n * import styles from './styles.css';\n * ```\n *\n * you might want to use camelCase in your CSS file, that way could simply\n * spread them instead of listing them one by one:\n *\n * ```js\n * classNames={{ ...styles }}\n * ```\n *\n * @type {string | {\n * appear?: string,\n * appearActive?: string,\n * appearDone?: string,\n * enter?: string,\n * enterActive?: string,\n * enterDone?: string,\n * exit?: string,\n * exitActive?: string,\n * exitDone?: string,\n * }}\n */\n classNames: _PropTypes.classNamesShape,\n\n /**\n * A `` callback fired immediately after the 'enter' or 'appear' class is\n * applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEnter: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter-active' or\n * 'appear-active' class is applied.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'enter' or\n * 'appear' classes are **removed** and the `done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntered: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' class is\n * applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExit: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit-active' is applied.\n *\n * @type Function(node: HtmlElement)\n */\n onExiting: PropTypes.func,\n\n /**\n * A `` callback fired immediately after the 'exit' classes\n * are **removed** and the `exit-done` class is added to the DOM node.\n *\n * @type Function(node: HtmlElement)\n */\n onExited: PropTypes.func\n}) : {};\nvar _default = CSSTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = require(\"react-dom\");\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\n/**\n * The `` component is a specialized `Transition` component\n * that animates between two children.\n *\n * ```jsx\n * \n *
I appear first
\n *
I replace the above
\n *
\n * ```\n */\nvar ReplaceTransition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(ReplaceTransition, _React$Component);\n\n function ReplaceTransition() {\n var _this;\n\n for (var _len = arguments.length, _args = new Array(_len), _key = 0; _key < _len; _key++) {\n _args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(_args)) || this;\n\n _this.handleEnter = function () {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return _this.handleLifecycle('onEnter', 0, args);\n };\n\n _this.handleEntering = function () {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n return _this.handleLifecycle('onEntering', 0, args);\n };\n\n _this.handleEntered = function () {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n\n return _this.handleLifecycle('onEntered', 0, args);\n };\n\n _this.handleExit = function () {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n return _this.handleLifecycle('onExit', 1, args);\n };\n\n _this.handleExiting = function () {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n return _this.handleLifecycle('onExiting', 1, args);\n };\n\n _this.handleExited = function () {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n return _this.handleLifecycle('onExited', 1, args);\n };\n\n return _this;\n }\n\n var _proto = ReplaceTransition.prototype;\n\n _proto.handleLifecycle = function handleLifecycle(handler, idx, originalArgs) {\n var _child$props;\n\n var children = this.props.children;\n\n var child = _react.default.Children.toArray(children)[idx];\n\n if (child.props[handler]) (_child$props = child.props)[handler].apply(_child$props, originalArgs);\n if (this.props[handler]) this.props[handler]((0, _reactDom.findDOMNode)(this));\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n children = _this$props.children,\n inProp = _this$props.in,\n props = _objectWithoutPropertiesLoose(_this$props, [\"children\", \"in\"]);\n\n var _React$Children$toArr = _react.default.Children.toArray(children),\n first = _React$Children$toArr[0],\n second = _React$Children$toArr[1];\n\n delete props.onEnter;\n delete props.onEntering;\n delete props.onEntered;\n delete props.onExit;\n delete props.onExiting;\n delete props.onExited;\n return _react.default.createElement(_TransitionGroup.default, props, inProp ? _react.default.cloneElement(first, {\n key: 'first',\n onEnter: this.handleEnter,\n onEntering: this.handleEntering,\n onEntered: this.handleEntered\n }) : _react.default.cloneElement(second, {\n key: 'second',\n onEnter: this.handleExit,\n onEntering: this.handleExiting,\n onEntered: this.handleExited\n }));\n };\n\n return ReplaceTransition;\n}(_react.default.Component);\n\nReplaceTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n in: _propTypes.default.bool.isRequired,\n children: function children(props, propName) {\n if (_react.default.Children.count(props[propName]) !== 2) return new Error(\"\\\"\" + propName + \"\\\" must be exactly two transition components.\");\n return null;\n }\n} : {};\nvar _default = ReplaceTransition;\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = exports.EXITING = exports.ENTERED = exports.ENTERING = exports.EXITED = exports.UNMOUNTED = void 0;\n\nvar PropTypes = _interopRequireWildcard(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactDom = _interopRequireDefault(require(\"react-dom\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _PropTypes = require(\"./utils/PropTypes\");\n\nvar _TransitionGroupContext = _interopRequireDefault(require(\"./TransitionGroupContext\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; } }\n\nfunction _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; }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar UNMOUNTED = 'unmounted';\nexports.UNMOUNTED = UNMOUNTED;\nvar EXITED = 'exited';\nexports.EXITED = EXITED;\nvar ENTERING = 'entering';\nexports.ENTERING = ENTERING;\nvar ENTERED = 'entered';\nexports.ENTERED = ENTERED;\nvar EXITING = 'exiting';\n/**\n * The Transition component lets you describe a transition from one component\n * state to another _over time_ with a simple declarative API. Most commonly\n * it's used to animate the mounting and unmounting of a component, but can also\n * be used to describe in-place transition states as well.\n *\n * ---\n *\n * **Note**: `Transition` is a platform-agnostic base component. If you're using\n * transitions in CSS, you'll probably want to use\n * [`CSSTransition`](https://reactcommunity.org/react-transition-group/css-transition)\n * instead. It inherits all the features of `Transition`, but contains\n * additional features necessary to play nice with CSS transitions (hence the\n * name of the component).\n *\n * ---\n *\n * By default the `Transition` component does not alter the behavior of the\n * component it renders, it only tracks \"enter\" and \"exit\" states for the\n * components. It's up to you to give meaning and effect to those states. For\n * example we can add styles to a component when it enters or exits:\n *\n * ```jsx\n * import { Transition } from 'react-transition-group';\n *\n * const duration = 300;\n *\n * const defaultStyle = {\n * transition: `opacity ${duration}ms ease-in-out`,\n * opacity: 0,\n * }\n *\n * const transitionStyles = {\n * entering: { opacity: 1 },\n * entered: { opacity: 1 },\n * exiting: { opacity: 0 },\n * exited: { opacity: 0 },\n * };\n *\n * const Fade = ({ in: inProp }) => (\n * \n * {state => (\n *
\n * I'm a fade Transition!\n *
\n * )}\n *
\n * );\n * ```\n *\n * There are 4 main states a Transition can be in:\n * - `'entering'`\n * - `'entered'`\n * - `'exiting'`\n * - `'exited'`\n *\n * Transition state is toggled via the `in` prop. When `true` the component\n * begins the \"Enter\" stage. During this stage, the component will shift from\n * its current transition state, to `'entering'` for the duration of the\n * transition and then to the `'entered'` stage once it's complete. Let's take\n * the following example (we'll use the\n * [useState](https://reactjs.org/docs/hooks-reference.html#usestate) hook):\n *\n * ```jsx\n * function App() {\n * const [inProp, setInProp] = useState(false);\n * return (\n *
\n * \n * {state => (\n * // ...\n * )}\n * \n * \n *
\n * );\n * }\n * ```\n *\n * When the button is clicked the component will shift to the `'entering'` state\n * and stay there for 500ms (the value of `timeout`) before it finally switches\n * to `'entered'`.\n *\n * When `in` is `false` the same thing happens except the state moves from\n * `'exiting'` to `'exited'`.\n */\n\nexports.EXITING = EXITING;\n\nvar Transition =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Transition, _React$Component);\n\n function Transition(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n var parentGroup = context; // In the context of a TransitionGroup all enters are really appears\n\n var appear = parentGroup && !parentGroup.isMounting ? props.enter : props.appear;\n var initialStatus;\n _this.appearStatus = null;\n\n if (props.in) {\n if (appear) {\n initialStatus = EXITED;\n _this.appearStatus = ENTERING;\n } else {\n initialStatus = ENTERED;\n }\n } else {\n if (props.unmountOnExit || props.mountOnEnter) {\n initialStatus = UNMOUNTED;\n } else {\n initialStatus = EXITED;\n }\n }\n\n _this.state = {\n status: initialStatus\n };\n _this.nextCallback = null;\n return _this;\n }\n\n Transition.getDerivedStateFromProps = function getDerivedStateFromProps(_ref, prevState) {\n var nextIn = _ref.in;\n\n if (nextIn && prevState.status === UNMOUNTED) {\n return {\n status: EXITED\n };\n }\n\n return null;\n }; // getSnapshotBeforeUpdate(prevProps) {\n // let nextStatus = null\n // if (prevProps !== this.props) {\n // const { status } = this.state\n // if (this.props.in) {\n // if (status !== ENTERING && status !== ENTERED) {\n // nextStatus = ENTERING\n // }\n // } else {\n // if (status === ENTERING || status === ENTERED) {\n // nextStatus = EXITING\n // }\n // }\n // }\n // return { nextStatus }\n // }\n\n\n var _proto = Transition.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.updateStatus(true, this.appearStatus);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n var nextStatus = null;\n\n if (prevProps !== this.props) {\n var status = this.state.status;\n\n if (this.props.in) {\n if (status !== ENTERING && status !== ENTERED) {\n nextStatus = ENTERING;\n }\n } else {\n if (status === ENTERING || status === ENTERED) {\n nextStatus = EXITING;\n }\n }\n }\n\n this.updateStatus(false, nextStatus);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.cancelNextCallback();\n };\n\n _proto.getTimeouts = function getTimeouts() {\n var timeout = this.props.timeout;\n var exit, enter, appear;\n exit = enter = appear = timeout;\n\n if (timeout != null && typeof timeout !== 'number') {\n exit = timeout.exit;\n enter = timeout.enter; // TODO: remove fallback for next major\n\n appear = timeout.appear !== undefined ? timeout.appear : enter;\n }\n\n return {\n exit: exit,\n enter: enter,\n appear: appear\n };\n };\n\n _proto.updateStatus = function updateStatus(mounting, nextStatus) {\n if (mounting === void 0) {\n mounting = false;\n }\n\n if (nextStatus !== null) {\n // nextStatus will always be ENTERING or EXITING.\n this.cancelNextCallback();\n\n var node = _reactDom.default.findDOMNode(this);\n\n if (nextStatus === ENTERING) {\n this.performEnter(node, mounting);\n } else {\n this.performExit(node);\n }\n } else if (this.props.unmountOnExit && this.state.status === EXITED) {\n this.setState({\n status: UNMOUNTED\n });\n }\n };\n\n _proto.performEnter = function performEnter(node, mounting) {\n var _this2 = this;\n\n var enter = this.props.enter;\n var appearing = this.context ? this.context.isMounting : mounting;\n var timeouts = this.getTimeouts();\n var enterTimeout = appearing ? timeouts.appear : timeouts.enter; // no enter animation skip right to ENTERED\n // if we are mounting and running this it means appear _must_ be set\n\n if (!mounting && !enter) {\n this.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node);\n });\n return;\n }\n\n this.props.onEnter(node, appearing);\n this.safeSetState({\n status: ENTERING\n }, function () {\n _this2.props.onEntering(node, appearing);\n\n _this2.onTransitionEnd(node, enterTimeout, function () {\n _this2.safeSetState({\n status: ENTERED\n }, function () {\n _this2.props.onEntered(node, appearing);\n });\n });\n });\n };\n\n _proto.performExit = function performExit(node) {\n var _this3 = this;\n\n var exit = this.props.exit;\n var timeouts = this.getTimeouts(); // no exit animation skip right to EXITED\n\n if (!exit) {\n this.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n return;\n }\n\n this.props.onExit(node);\n this.safeSetState({\n status: EXITING\n }, function () {\n _this3.props.onExiting(node);\n\n _this3.onTransitionEnd(node, timeouts.exit, function () {\n _this3.safeSetState({\n status: EXITED\n }, function () {\n _this3.props.onExited(node);\n });\n });\n });\n };\n\n _proto.cancelNextCallback = function cancelNextCallback() {\n if (this.nextCallback !== null) {\n this.nextCallback.cancel();\n this.nextCallback = null;\n }\n };\n\n _proto.safeSetState = function safeSetState(nextState, callback) {\n // This shouldn't be necessary, but there are weird race conditions with\n // setState callbacks and unmounting in testing, so always make sure that\n // we can cancel any pending setState callbacks after we unmount.\n callback = this.setNextCallback(callback);\n this.setState(nextState, callback);\n };\n\n _proto.setNextCallback = function setNextCallback(callback) {\n var _this4 = this;\n\n var active = true;\n\n this.nextCallback = function (event) {\n if (active) {\n active = false;\n _this4.nextCallback = null;\n callback(event);\n }\n };\n\n this.nextCallback.cancel = function () {\n active = false;\n };\n\n return this.nextCallback;\n };\n\n _proto.onTransitionEnd = function onTransitionEnd(node, timeout, handler) {\n this.setNextCallback(handler);\n var doesNotHaveTimeoutOrListener = timeout == null && !this.props.addEndListener;\n\n if (!node || doesNotHaveTimeoutOrListener) {\n setTimeout(this.nextCallback, 0);\n return;\n }\n\n if (this.props.addEndListener) {\n this.props.addEndListener(node, this.nextCallback);\n }\n\n if (timeout != null) {\n setTimeout(this.nextCallback, timeout);\n }\n };\n\n _proto.render = function render() {\n var status = this.state.status;\n\n if (status === UNMOUNTED) {\n return null;\n }\n\n var _this$props = this.props,\n children = _this$props.children,\n childProps = _objectWithoutPropertiesLoose(_this$props, [\"children\"]); // filter props for Transtition\n\n\n delete childProps.in;\n delete childProps.mountOnEnter;\n delete childProps.unmountOnExit;\n delete childProps.appear;\n delete childProps.enter;\n delete childProps.exit;\n delete childProps.timeout;\n delete childProps.addEndListener;\n delete childProps.onEnter;\n delete childProps.onEntering;\n delete childProps.onEntered;\n delete childProps.onExit;\n delete childProps.onExiting;\n delete childProps.onExited;\n\n if (typeof children === 'function') {\n // allows for nested Transitions\n return _react.default.createElement(_TransitionGroupContext.default.Provider, {\n value: null\n }, children(status, childProps));\n }\n\n var child = _react.default.Children.only(children);\n\n return (// allows for nested Transitions\n _react.default.createElement(_TransitionGroupContext.default.Provider, {\n value: null\n }, _react.default.cloneElement(child, childProps))\n );\n };\n\n return Transition;\n}(_react.default.Component);\n\nTransition.contextType = _TransitionGroupContext.default;\nTransition.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * A `function` child can be used instead of a React element. This function is\n * called with the current transition status (`'entering'`, `'entered'`,\n * `'exiting'`, `'exited'`, `'unmounted'`), which can be used to apply context\n * specific props to a component.\n *\n * ```jsx\n * \n * {state => (\n * \n * )}\n * \n * ```\n */\n children: PropTypes.oneOfType([PropTypes.func.isRequired, PropTypes.element.isRequired]).isRequired,\n\n /**\n * Show the component; triggers the enter or exit states\n */\n in: PropTypes.bool,\n\n /**\n * By default the child component is mounted immediately along with\n * the parent `Transition` component. If you want to \"lazy mount\" the component on the\n * first `in={true}` you can set `mountOnEnter`. After the first enter transition the component will stay\n * mounted, even on \"exited\", unless you also specify `unmountOnExit`.\n */\n mountOnEnter: PropTypes.bool,\n\n /**\n * By default the child component stays mounted after it reaches the `'exited'` state.\n * Set `unmountOnExit` if you'd prefer to unmount the component after it finishes exiting.\n */\n unmountOnExit: PropTypes.bool,\n\n /**\n * Normally a component is not transitioned if it is shown when the `` component mounts.\n * If you want to transition on the first mount set `appear` to `true`, and the\n * component will transition in as soon as the `` mounts.\n *\n * > Note: there are no specific \"appear\" states. `appear` only adds an additional `enter` transition.\n */\n appear: PropTypes.bool,\n\n /**\n * Enable or disable enter transitions.\n */\n enter: PropTypes.bool,\n\n /**\n * Enable or disable exit transitions.\n */\n exit: PropTypes.bool,\n\n /**\n * The duration of the transition, in milliseconds.\n * Required unless `addEndListener` is provided.\n *\n * You may specify a single timeout for all transitions:\n *\n * ```jsx\n * timeout={500}\n * ```\n *\n * or individually:\n *\n * ```jsx\n * timeout={{\n * appear: 500,\n * enter: 300,\n * exit: 500,\n * }}\n * ```\n *\n * - `appear` defaults to the value of `enter`\n * - `enter` defaults to `0`\n * - `exit` defaults to `0`\n *\n * @type {number | { enter?: number, exit?: number, appear?: number }}\n */\n timeout: function timeout(props) {\n var pt = _PropTypes.timeoutsShape;\n if (!props.addEndListener) pt = pt.isRequired;\n\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return pt.apply(void 0, [props].concat(args));\n },\n\n /**\n * Add a custom transition end trigger. Called with the transitioning\n * DOM node and a `done` callback. Allows for more fine grained transition end\n * logic. **Note:** Timeouts are still used as a fallback if provided.\n *\n * ```jsx\n * addEndListener={(node, done) => {\n * // use the css transitionend event to mark the finish of a transition\n * node.addEventListener('transitionend', done, false);\n * }}\n * ```\n */\n addEndListener: PropTypes.func,\n\n /**\n * Callback fired before the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEnter: PropTypes.func,\n\n /**\n * Callback fired after the \"entering\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool)\n */\n onEntering: PropTypes.func,\n\n /**\n * Callback fired after the \"entered\" status is applied. An extra parameter\n * `isAppearing` is supplied to indicate if the enter stage is occurring on the initial mount\n *\n * @type Function(node: HtmlElement, isAppearing: bool) -> void\n */\n onEntered: PropTypes.func,\n\n /**\n * Callback fired before the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExit: PropTypes.func,\n\n /**\n * Callback fired after the \"exiting\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExiting: PropTypes.func,\n\n /**\n * Callback fired after the \"exited\" status is applied.\n *\n * @type Function(node: HtmlElement) -> void\n */\n onExited: PropTypes.func // Name the function so it is clearer in the documentation\n\n} : {};\n\nfunction noop() {}\n\nTransition.defaultProps = {\n in: false,\n mountOnEnter: false,\n unmountOnExit: false,\n appear: false,\n enter: true,\n exit: true,\n onEnter: noop,\n onEntering: noop,\n onEntered: noop,\n onExit: noop,\n onExiting: noop,\n onExited: noop\n};\nTransition.UNMOUNTED = 0;\nTransition.EXITED = 1;\nTransition.ENTERING = 2;\nTransition.ENTERED = 3;\nTransition.EXITING = 4;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(Transition);\n\nexports.default = _default;","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nvar _reactLifecyclesCompat = require(\"react-lifecycles-compat\");\n\nvar _TransitionGroupContext = _interopRequireDefault(require(\"./TransitionGroupContext\"));\n\nvar _ChildMapping = require(\"./utils/ChildMapping\");\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction _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; }\n\nfunction _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); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nvar values = Object.values || function (obj) {\n return Object.keys(obj).map(function (k) {\n return obj[k];\n });\n};\n\nvar defaultProps = {\n component: 'div',\n childFactory: function childFactory(child) {\n return child;\n }\n /**\n * The `` component manages a set of transition components\n * (`` and ``) in a list. Like with the transition\n * components, `` is a state machine for managing the mounting\n * and unmounting of components over time.\n *\n * Consider the example below. As items are removed or added to the TodoList the\n * `in` prop is toggled automatically by the ``.\n *\n * Note that `` does not define any animation behavior!\n * Exactly _how_ a list item animates is up to the individual transition\n * component. This means you can mix and match animations across different list\n * items.\n */\n\n};\n\nvar TransitionGroup =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(TransitionGroup, _React$Component);\n\n function TransitionGroup(props, context) {\n var _this;\n\n _this = _React$Component.call(this, props, context) || this;\n\n var handleExited = _this.handleExited.bind(_assertThisInitialized(_assertThisInitialized(_this))); // Initial children should all be entering, dependent on appear\n\n\n _this.state = {\n contextValue: {\n isMounting: true\n },\n handleExited: handleExited,\n firstRender: true\n };\n return _this;\n }\n\n var _proto = TransitionGroup.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this.mounted = true;\n this.setState({\n contextValue: {\n isMounting: false\n }\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.mounted = false;\n };\n\n TransitionGroup.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, _ref) {\n var prevChildMapping = _ref.children,\n handleExited = _ref.handleExited,\n firstRender = _ref.firstRender;\n return {\n children: firstRender ? (0, _ChildMapping.getInitialChildMapping)(nextProps, handleExited) : (0, _ChildMapping.getNextChildMapping)(nextProps, prevChildMapping, handleExited),\n firstRender: false\n };\n };\n\n _proto.handleExited = function handleExited(child, node) {\n var currentChildMapping = (0, _ChildMapping.getChildMapping)(this.props.children);\n if (child.key in currentChildMapping) return;\n\n if (child.props.onExited) {\n child.props.onExited(node);\n }\n\n if (this.mounted) {\n this.setState(function (state) {\n var children = _extends({}, state.children);\n\n delete children[child.key];\n return {\n children: children\n };\n });\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n Component = _this$props.component,\n childFactory = _this$props.childFactory,\n props = _objectWithoutPropertiesLoose(_this$props, [\"component\", \"childFactory\"]);\n\n var contextValue = this.state.contextValue;\n var children = values(this.state.children).map(childFactory);\n delete props.appear;\n delete props.enter;\n delete props.exit;\n\n if (Component === null) {\n return _react.default.createElement(_TransitionGroupContext.default.Provider, {\n value: contextValue\n }, children);\n }\n\n return _react.default.createElement(_TransitionGroupContext.default.Provider, {\n value: contextValue\n }, _react.default.createElement(Component, props, children));\n };\n\n return TransitionGroup;\n}(_react.default.Component);\n\nTransitionGroup.propTypes = process.env.NODE_ENV !== \"production\" ? {\n /**\n * `` renders a `
` by default. You can change this\n * behavior by providing a `component` prop.\n * If you use React v16+ and would like to avoid a wrapping `
` element\n * you can pass in `component={null}`. This is useful if the wrapping div\n * borks your css styles.\n */\n component: _propTypes.default.any,\n\n /**\n * A set of `` components, that are toggled `in` and out as they\n * leave. the `` will inject specific transition props, so\n * remember to spread them through if you are wrapping the `` as\n * with our `` example.\n *\n * While this component is meant for multiple `Transition` or `CSSTransition`\n * children, sometimes you may want to have a single transition child with\n * content that you want to be transitioned out and in when you change it\n * (e.g. routes, images etc.) In that case you can change the `key` prop of\n * the transition child as you change its content, this will cause\n * `TransitionGroup` to transition the child out and back in.\n */\n children: _propTypes.default.node,\n\n /**\n * A convenience prop that enables or disables appear animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n appear: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables enter animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n enter: _propTypes.default.bool,\n\n /**\n * A convenience prop that enables or disables exit animations\n * for all children. Note that specifying this will override any defaults set\n * on individual children Transitions.\n */\n exit: _propTypes.default.bool,\n\n /**\n * You may need to apply reactive updates to a child as it is exiting.\n * This is generally done by using `cloneElement` however in the case of an exiting\n * child the element has already been removed and not accessible to the consumer.\n *\n * If you do need to update a child as it leaves you can provide a `childFactory`\n * to wrap every child, even the ones that are leaving.\n *\n * @type Function(child: ReactElement) -> ReactElement\n */\n childFactory: _propTypes.default.func\n} : {};\nTransitionGroup.defaultProps = defaultProps;\n\nvar _default = (0, _reactLifecyclesCompat.polyfill)(TransitionGroup);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nexports.__esModule = true;\nexports.default = void 0;\n\nvar _react = _interopRequireDefault(require(\"react\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar _default = _react.default.createContext(null);\n\nexports.default = _default;\nmodule.exports = exports[\"default\"];","\"use strict\";\n\nvar _CSSTransition = _interopRequireDefault(require(\"./CSSTransition\"));\n\nvar _ReplaceTransition = _interopRequireDefault(require(\"./ReplaceTransition\"));\n\nvar _TransitionGroup = _interopRequireDefault(require(\"./TransitionGroup\"));\n\nvar _Transition = _interopRequireDefault(require(\"./Transition\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","\"use strict\";\n\nexports.__esModule = true;\nexports.getChildMapping = getChildMapping;\nexports.mergeChildMappings = mergeChildMappings;\nexports.getInitialChildMapping = getInitialChildMapping;\nexports.getNextChildMapping = getNextChildMapping;\n\nvar _react = require(\"react\");\n\n/**\n * Given `this.props.children`, return an object mapping key to child.\n *\n * @param {*} children `this.props.children`\n * @return {object} Mapping of key to child\n */\nfunction getChildMapping(children, mapFn) {\n var mapper = function mapper(child) {\n return mapFn && (0, _react.isValidElement)(child) ? mapFn(child) : child;\n };\n\n var result = Object.create(null);\n if (children) _react.Children.map(children, function (c) {\n return c;\n }).forEach(function (child) {\n // run the map function here instead so that the key is the computed one\n result[child.key] = mapper(child);\n });\n return result;\n}\n/**\n * When you're adding or removing children some may be added or removed in the\n * same render pass. We want to show *both* since we want to simultaneously\n * animate elements in and out. This function takes a previous set of keys\n * and a new set of keys and merges them with its best guess of the correct\n * ordering. In the future we may expose some of the utilities in\n * ReactMultiChild to make this easy, but for now React itself does not\n * directly have this concept of the union of prevChildren and nextChildren\n * so we implement it here.\n *\n * @param {object} prev prev children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @param {object} next next children as returned from\n * `ReactTransitionChildMapping.getChildMapping()`.\n * @return {object} a key set that contains all keys in `prev` and all keys\n * in `next` in a reasonable order.\n */\n\n\nfunction mergeChildMappings(prev, next) {\n prev = prev || {};\n next = next || {};\n\n function getValueForKey(key) {\n return key in next ? next[key] : prev[key];\n } // For each key of `next`, the list of keys to insert before that key in\n // the combined list\n\n\n var nextKeysPending = Object.create(null);\n var pendingKeys = [];\n\n for (var prevKey in prev) {\n if (prevKey in next) {\n if (pendingKeys.length) {\n nextKeysPending[prevKey] = pendingKeys;\n pendingKeys = [];\n }\n } else {\n pendingKeys.push(prevKey);\n }\n }\n\n var i;\n var childMapping = {};\n\n for (var nextKey in next) {\n if (nextKeysPending[nextKey]) {\n for (i = 0; i < nextKeysPending[nextKey].length; i++) {\n var pendingNextKey = nextKeysPending[nextKey][i];\n childMapping[nextKeysPending[nextKey][i]] = getValueForKey(pendingNextKey);\n }\n }\n\n childMapping[nextKey] = getValueForKey(nextKey);\n } // Finally, add the keys which didn't appear before any key in `next`\n\n\n for (i = 0; i < pendingKeys.length; i++) {\n childMapping[pendingKeys[i]] = getValueForKey(pendingKeys[i]);\n }\n\n return childMapping;\n}\n\nfunction getProp(child, prop, props) {\n return props[prop] != null ? props[prop] : child.props[prop];\n}\n\nfunction getInitialChildMapping(props, onExited) {\n return getChildMapping(props.children, function (child) {\n return (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n appear: getProp(child, 'appear', props),\n enter: getProp(child, 'enter', props),\n exit: getProp(child, 'exit', props)\n });\n });\n}\n\nfunction getNextChildMapping(nextProps, prevChildMapping, onExited) {\n var nextChildMapping = getChildMapping(nextProps.children);\n var children = mergeChildMappings(prevChildMapping, nextChildMapping);\n Object.keys(children).forEach(function (key) {\n var child = children[key];\n if (!(0, _react.isValidElement)(child)) return;\n var hasPrev = key in prevChildMapping;\n var hasNext = key in nextChildMapping;\n var prevChild = prevChildMapping[key];\n var isLeaving = (0, _react.isValidElement)(prevChild) && !prevChild.props.in; // item is new (entering)\n\n if (hasNext && (!hasPrev || isLeaving)) {\n // console.log('entering', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: true,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n } else if (!hasNext && hasPrev && !isLeaving) {\n // item is old (exiting)\n // console.log('leaving', key)\n children[key] = (0, _react.cloneElement)(child, {\n in: false\n });\n } else if (hasNext && hasPrev && (0, _react.isValidElement)(prevChild)) {\n // item hasn't changed transition states\n // copy over the last transition props;\n // console.log('unchanged', key)\n children[key] = (0, _react.cloneElement)(child, {\n onExited: onExited.bind(null, child),\n in: prevChild.props.in,\n exit: getProp(child, 'exit', nextProps),\n enter: getProp(child, 'enter', nextProps)\n });\n }\n });\n return children;\n}","\"use strict\";\n\nexports.__esModule = true;\nexports.classNamesShape = exports.timeoutsShape = void 0;\n\nvar _propTypes = _interopRequireDefault(require(\"prop-types\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nvar timeoutsShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.shape({\n enter: _propTypes.default.number,\n exit: _propTypes.default.number,\n appear: _propTypes.default.number\n}).isRequired]) : null;\nexports.timeoutsShape = timeoutsShape;\nvar classNamesShape = process.env.NODE_ENV !== 'production' ? _propTypes.default.oneOfType([_propTypes.default.string, _propTypes.default.shape({\n enter: _propTypes.default.string,\n exit: _propTypes.default.string,\n active: _propTypes.default.string\n}), _propTypes.default.shape({\n enter: _propTypes.default.string,\n enterDone: _propTypes.default.string,\n enterActive: _propTypes.default.string,\n exit: _propTypes.default.string,\n exitDone: _propTypes.default.string,\n exitActive: _propTypes.default.string\n})]) : null;\nexports.classNamesShape = classNamesShape;","'use strict';\n\nvar functionsHaveConfigurableNames = require('functions-have-names').functionsHaveConfigurableNames();\n\nvar $Object = Object;\nvar $TypeError = TypeError;\n\nmodule.exports = function flags() {\n\tif (this != null && this !== $Object(this)) {\n\t\tthrow new $TypeError('RegExp.prototype.flags getter called on non-object');\n\t}\n\tvar result = '';\n\tif (this.hasIndices) {\n\t\tresult += 'd';\n\t}\n\tif (this.global) {\n\t\tresult += 'g';\n\t}\n\tif (this.ignoreCase) {\n\t\tresult += 'i';\n\t}\n\tif (this.multiline) {\n\t\tresult += 'm';\n\t}\n\tif (this.dotAll) {\n\t\tresult += 's';\n\t}\n\tif (this.unicode) {\n\t\tresult += 'u';\n\t}\n\tif (this.sticky) {\n\t\tresult += 'y';\n\t}\n\treturn result;\n};\n\nif (functionsHaveConfigurableNames && Object.defineProperty) {\n\tObject.defineProperty(module.exports, 'name', { value: 'get flags' });\n}\n","'use strict';\n\nvar define = require('define-properties');\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\nvar getPolyfill = require('./polyfill');\nvar shim = require('./shim');\n\nvar flagsBound = callBind(getPolyfill());\n\ndefine(flagsBound, {\n\tgetPolyfill: getPolyfill,\n\timplementation: implementation,\n\tshim: shim\n});\n\nmodule.exports = flagsBound;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar $gOPD = Object.getOwnPropertyDescriptor;\n\nmodule.exports = function getPolyfill() {\n\tif (supportsDescriptors && (/a/mig).flags === 'gim') {\n\t\tvar descriptor = $gOPD(RegExp.prototype, 'flags');\n\t\tif (\n\t\t\tdescriptor\n\t\t\t&& typeof descriptor.get === 'function'\n\t\t\t&& typeof RegExp.prototype.dotAll === 'boolean'\n\t\t\t&& typeof RegExp.prototype.hasIndices === 'boolean'\n\t\t) {\n\t\t\t/* eslint getter-return: 0 */\n\t\t\tvar calls = '';\n\t\t\tvar o = {};\n\t\t\tObject.defineProperty(o, 'hasIndices', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'd';\n\t\t\t\t}\n\t\t\t});\n\t\t\tObject.defineProperty(o, 'sticky', {\n\t\t\t\tget: function () {\n\t\t\t\t\tcalls += 'y';\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (calls === 'dy') {\n\t\t\t\treturn descriptor.get;\n\t\t\t}\n\t\t}\n\t}\n\treturn implementation;\n};\n","'use strict';\n\nvar supportsDescriptors = require('define-properties').supportsDescriptors;\nvar getPolyfill = require('./polyfill');\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar defineProperty = Object.defineProperty;\nvar TypeErr = TypeError;\nvar getProto = Object.getPrototypeOf;\nvar regex = /a/;\n\nmodule.exports = function shimFlags() {\n\tif (!supportsDescriptors || !getProto) {\n\t\tthrow new TypeErr('RegExp.prototype.flags requires a true ES5 environment that supports property descriptors');\n\t}\n\tvar polyfill = getPolyfill();\n\tvar proto = getProto(regex);\n\tvar descriptor = gOPD(proto, 'flags');\n\tif (!descriptor || descriptor.get !== polyfill) {\n\t\tdefineProperty(proto, 'flags', {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\tget: polyfill\n\t\t});\n\t}\n\treturn polyfill;\n};\n","//\n\nmodule.exports = function shallowEqual(objA, objB, compare, compareContext) {\n var ret = compare ? compare.call(compareContext, objA, objB) : void 0;\n\n if (ret !== void 0) {\n return !!ret;\n }\n\n if (objA === objB) {\n return true;\n }\n\n if (typeof objA !== \"object\" || !objA || typeof objB !== \"object\" || !objB) {\n return false;\n }\n\n var keysA = Object.keys(objA);\n var keysB = Object.keys(objB);\n\n if (keysA.length !== keysB.length) {\n return false;\n }\n\n var bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB);\n\n // Test for A's keys different from B.\n for (var idx = 0; idx < keysA.length; idx++) {\n var key = keysA[idx];\n\n if (!bHasOwnProperty(key)) {\n return false;\n }\n\n var valueA = objA[key];\n var valueB = objB[key];\n\n ret = compare ? compare.call(compareContext, valueA, valueB, key) : void 0;\n\n if (ret === false || (ret === void 0 && valueA !== valueB)) {\n return false;\n }\n }\n\n return true;\n};\n","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n/**\n * Similar to invariant but only logs a warning if the condition is not met.\n * This can be used to log issues in development environments in critical\n * paths. Removing the logging code for production environments will keep the\n * same logic and follow the same code paths.\n */\n\nvar __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar warning = function() {};\n\nif (__DEV__) {\n var printWarning = function printWarning(format, args) {\n var len = arguments.length;\n args = new Array(len > 1 ? len - 1 : 0);\n for (var key = 1; key < len; key++) {\n args[key - 1] = arguments[key];\n }\n var argIndex = 0;\n var message = 'Warning: ' +\n format.replace(/%s/g, function() {\n return args[argIndex++];\n });\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n }\n\n warning = function(condition, format, args) {\n var len = arguments.length;\n args = new Array(len > 2 ? len - 2 : 0);\n for (var key = 2; key < len; key++) {\n args[key - 2] = arguments[key];\n }\n if (format === undefined) {\n throw new Error(\n '`warning(condition, format, ...args)` requires a warning ' +\n 'message argument'\n );\n }\n if (!condition) {\n printWarning.apply(null, [format].concat(args));\n }\n };\n}\n\nmodule.exports = warning;\n","module.exports = PropTypes;","module.exports = React;","module.exports = ReactDOM;","function _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n \"default\": obj\n };\n}\nmodule.exports = _interopRequireDefault, module.exports.__esModule = true, module.exports[\"default\"] = module.exports;","/* eslint-disable no-undefined,no-param-reassign,no-shadow */\n\n/**\n * Throttle execution of a function. Especially useful for rate limiting\n * execution of handlers on events like resize and scroll.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {boolean} [noTrailing] - Optional, defaults to false. If noTrailing is true, callback will only execute every `delay` milliseconds while the\n * throttled-function is being called. If noTrailing is false or unspecified, callback will be executed one final time\n * after the last throttled-function call. (After the throttled-function has not been called for `delay` milliseconds,\n * the internal counter is reset).\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the throttled-function is executed.\n * @param {boolean} [debounceMode] - If `debounceMode` is true (at begin), schedule `clear` to execute after `delay` ms. If `debounceMode` is false (at end),\n * schedule `callback` to execute after `delay` ms.\n *\n * @returns {Function} A new, throttled, function.\n */\nexport default function (delay, noTrailing, callback, debounceMode) {\n\t/*\n\t * After wrapper has stopped being called, this timeout ensures that\n\t * `callback` is executed at the proper times in `throttle` and `end`\n\t * debounce modes.\n\t */\n\tlet timeoutID;\n\tlet cancelled = false;\n\n\t// Keep track of the last time `callback` was executed.\n\tlet lastExec = 0;\n\n\t// Function to clear existing timeout\n\tfunction clearExistingTimeout() {\n\t\tif (timeoutID) {\n\t\t\tclearTimeout(timeoutID);\n\t\t}\n\t}\n\n\t// Function to cancel next exec\n\tfunction cancel() {\n\t\tclearExistingTimeout();\n\t\tcancelled = true;\n\t}\n\n\t// `noTrailing` defaults to falsy.\n\tif (typeof noTrailing !== 'boolean') {\n\t\tdebounceMode = callback;\n\t\tcallback = noTrailing;\n\t\tnoTrailing = undefined;\n\t}\n\n\t/*\n\t * The `wrapper` function encapsulates all of the throttling / debouncing\n\t * functionality and when executed will limit the rate at which `callback`\n\t * is executed.\n\t */\n\tfunction wrapper(...arguments_) {\n\t\tlet self = this;\n\t\tlet elapsed = Date.now() - lastExec;\n\n\t\tif (cancelled) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Execute `callback` and update the `lastExec` timestamp.\n\t\tfunction exec() {\n\t\t\tlastExec = Date.now();\n\t\t\tcallback.apply(self, arguments_);\n\t\t}\n\n\t\t/*\n\t\t * If `debounceMode` is true (at begin) this is used to clear the flag\n\t\t * to allow future `callback` executions.\n\t\t */\n\t\tfunction clear() {\n\t\t\ttimeoutID = undefined;\n\t\t}\n\n\t\tif (debounceMode && !timeoutID) {\n\t\t\t/*\n\t\t\t * Since `wrapper` is being called for the first time and\n\t\t\t * `debounceMode` is true (at begin), execute `callback`.\n\t\t\t */\n\t\t\texec();\n\t\t}\n\n\t\tclearExistingTimeout();\n\n\t\tif (debounceMode === undefined && elapsed > delay) {\n\t\t\t/*\n\t\t\t * In throttle mode, if `delay` time has been exceeded, execute\n\t\t\t * `callback`.\n\t\t\t */\n\t\t\texec();\n\t\t} else if (noTrailing !== true) {\n\t\t\t/*\n\t\t\t * In trailing throttle mode, since `delay` time has not been\n\t\t\t * exceeded, schedule `callback` to execute `delay` ms after most\n\t\t\t * recent execution.\n\t\t\t *\n\t\t\t * If `debounceMode` is true (at begin), schedule `clear` to execute\n\t\t\t * after `delay` ms.\n\t\t\t *\n\t\t\t * If `debounceMode` is false (at end), schedule `callback` to\n\t\t\t * execute after `delay` ms.\n\t\t\t */\n\t\t\ttimeoutID = setTimeout(\n\t\t\t\tdebounceMode ? clear : exec,\n\t\t\t\tdebounceMode === undefined ? delay - elapsed : delay\n\t\t\t);\n\t\t}\n\t}\n\n\twrapper.cancel = cancel;\n\n\t// Return the wrapper function.\n\treturn wrapper;\n}\n","/* eslint-disable no-undefined */\n\nimport throttle from './throttle';\n\n/**\n * Debounce execution of a function. Debouncing, unlike throttling,\n * guarantees that a function is only executed a single time, either at the\n * very beginning of a series of calls, or at the very end.\n *\n * @param {number} delay - A zero-or-greater delay in milliseconds. For event callbacks, values around 100 or 250 (or even higher) are most useful.\n * @param {boolean} [atBegin] - Optional, defaults to false. If atBegin is false or unspecified, callback will only be executed `delay` milliseconds\n * after the last debounced-function call. If atBegin is true, callback will be executed only at the first debounced-function call.\n * (After the throttled-function has not been called for `delay` milliseconds, the internal counter is reset).\n * @param {Function} callback - A function to be executed after delay milliseconds. The `this` context and all arguments are passed through, as-is,\n * to `callback` when the debounced-function is executed.\n *\n * @returns {Function} A new, debounced function.\n */\nexport default function (delay, atBegin, callback) {\n\treturn callback === undefined\n\t\t? throttle(delay, atBegin, false)\n\t\t: throttle(delay, callback, atBegin !== false);\n}\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n return self;\n}","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","export default function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","export default typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst timeoutDuration = (function(){\n const longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n for (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n return 0;\n}());\n\nexport function microtaskDebounce(fn) {\n let called = false\n return () => {\n if (called) {\n return\n }\n called = true\n window.Promise.resolve().then(() => {\n called = false\n fn()\n })\n }\n}\n\nexport function taskDebounce(fn) {\n let scheduled = false;\n return () => {\n if (!scheduled) {\n scheduled = true;\n setTimeout(() => {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n ? microtaskDebounce\n : taskDebounce);\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n const getType = {};\n return (\n functionToCheck &&\n getType.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body\n case '#document':\n return element.body\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nexport default function getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order =\n element1.compareDocumentPosition(element2) &\n Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n const { commonAncestorContainer } = range;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n const modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat(styles[`border${sideA}Width`]) +\n parseFloat(styles[`border${sideB}Width`])\n );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(\n body[`offset${axis}`],\n body[`scroll${axis}`],\n html[`client${axis}`],\n html[`offset${axis}`],\n html[`scroll${axis}`],\n isIE(10)\n ? (parseInt(html[`offset${axis}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n : 0 \n );\n}\n\nexport default function getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle),\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n return {\n ...offsets,\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height,\n };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n let rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n }\n catch(e){}\n\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n const width =\n sizes.width || element.clientWidth || result.width;\n const height =\n sizes.height || element.clientHeight || result.height;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n const isIE10 = runIsIE(10);\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if(fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n let offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height,\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n const marginTop = parseFloat(styles.marginTop);\n const marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (\n isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n ) {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width,\n height,\n };\n\n return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n const parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport getReferenceNode from './getReferenceNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement,\n fixedPosition = false\n) {\n // NOTE: 1 DOM access here\n\n let boundaries = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport' ) {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n\n else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(popper.ownerDocument);\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n const isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n return boundaries;\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n placement,\n refRect,\n popper,\n reference,\n boundariesElement,\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement\n );\n\n const rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top,\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height,\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom,\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height,\n },\n };\n\n const sortedAreas = Object.keys(rects)\n .map(key => ({\n key,\n ...rects[key],\n area: getArea(rects[key]),\n }))\n .sort((a, b) => b.area - a.area);\n\n const filteredAreas = sortedAreas.filter(\n ({ width, height }) =>\n width >= popper.clientWidth && height >= popper.clientHeight\n );\n\n const computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n\n const variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\nimport getReferenceNode from './getReferenceNode';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window.getComputedStyle(element);\n const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n const result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x,\n };\n return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n const popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n const popperOffsets = {\n width: popperRect.width,\n height: popperRect.height,\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] =\n referenceOffsets[mainSide] +\n referenceOffsets[measurement] / 2 -\n popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] =\n referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] =\n referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n const modifiersToRun = ends === undefined\n ? modifiers\n : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(modifier => {\n if (modifier['function']) { // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(cur => cur[prop] === value);\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n const match = find(arr, obj => obj[prop] === value);\n return arr.indexOf(match);\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n let data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {},\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(\n this.state,\n this.popper,\n this.reference,\n this.options.positionFixed\n );\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(\n this.options.placement,\n data.offsets.reference,\n this.popper,\n this.reference,\n this.options.modifiers.flip.boundariesElement,\n this.options.modifiers.flip.padding\n );\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(\n this.popper,\n data.offsets.reference,\n data.placement\n );\n\n data.offsets.popper.position = this.options.positionFixed\n ? 'fixed'\n : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(\n ({ name, enabled }) => enabled && name === modifierName\n );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (let i = 0; i < prefixes.length; i++) {\n const prefix = prefixes[i];\n const toCheck = prefix ? `${prefix}${upperProp}` : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n const ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n const isBody = scrollParent.nodeName === 'BODY';\n const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(\n getScrollParent(target.parentNode),\n event,\n callback,\n scrollParents\n );\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n reference,\n options,\n state,\n updateBound\n) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n const scrollElement = getScrollParent(reference);\n attachToScrollParents(\n scrollElement,\n 'scroll',\n state.updateBound,\n state.scrollParents\n );\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(\n this.reference,\n this.options,\n this.state,\n this.scheduleUpdate\n );\n }\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(target => {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n Object.keys(styles).forEach(prop => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (\n ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n -1 &&\n isNumeric(styles[prop])\n ) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\nimport getRoundedOffsets from '../utils/getRoundedOffsets';\nimport isBrowser from '../utils/isBrowser';\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n const { x, y } = options;\n const { popper } = data.offsets;\n\n // Remove this legacy support in Popper.js v2\n const legacyGpuAccelerationOption = find(\n data.instance.modifiers,\n modifier => modifier.name === 'applyStyle'\n ).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn(\n 'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n );\n }\n const gpuAcceleration =\n legacyGpuAccelerationOption !== undefined\n ? legacyGpuAccelerationOption\n : options.gpuAcceleration;\n\n const offsetParent = getOffsetParent(data.instance.popper);\n const offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n const styles = {\n position: popper.position,\n };\n\n const offsets = getRoundedOffsets(\n data,\n window.devicePixelRatio < 2 || !isFirefox\n );\n\n const sideA = x === 'bottom' ? 'top' : 'bottom';\n const sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n const prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n let left, top;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n const invertTop = sideA === 'bottom' ? -1 : 1;\n const invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = `${sideA}, ${sideB}`;\n }\n\n // Attributes\n const attributes = {\n 'x-placement': data.placement,\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = { ...attributes, ...data.attributes };\n data.styles = { ...styles, ...data.styles };\n data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n return data;\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n modifiers,\n requestingName,\n requestedName\n) {\n const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n const isRequired =\n !!requesting &&\n modifiers.some(modifier => {\n return (\n modifier.name === requestedName &&\n modifier.enabled &&\n modifier.order < requesting.order\n );\n });\n\n if (!isRequired) {\n const requesting = `\\`${requestingName}\\``;\n const requested = `\\`${requestedName}\\``;\n console.warn(\n `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n );\n }\n return isRequired;\n}\n","/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nexport default [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n const index = validPlacements.indexOf(placement);\n const arr = validPlacements\n .slice(index + 1)\n .concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift,\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0,\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent',\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether,\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]',\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false,\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner,\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide,\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right',\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined,\n },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n const { reference, popper } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: reference[side] },\n end: {\n [side]: reference[side] + reference[measurement] - popper[measurement],\n },\n };\n\n data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n }\n\n return data;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n const value = +split[1];\n const unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n let element;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n const rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n let size;\n if (unit === 'vh') {\n size = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n );\n } else {\n size = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n offset,\n popperOffsets,\n referenceOffsets,\n basePlacement\n) {\n const offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n const divider = fragments.indexOf(\n find(fragments, frag => frag.search(/,|\\s/) !== -1)\n );\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn(\n 'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n );\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n const splitRegex = /\\s*,\\s*|\\s+/;\n let ops = divider !== -1\n ? [\n fragments\n .slice(0, divider)\n .concat([fragments[divider].split(splitRegex)[0]]),\n [fragments[divider].split(splitRegex)[1]].concat(\n fragments.slice(divider + 1)\n ),\n ]\n : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map((op, index) => {\n // Most of the units rely on the orientation of the popper\n const measurement = (index === 1 ? !useHeight : useHeight)\n ? 'height'\n : 'width';\n let mergeWithPrevious = false;\n return (\n op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce((a, b) => {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n );\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach((op, index) => {\n op.forEach((frag, index2) => {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n const { placement, offsets: { popper, reference } } = data;\n const basePlacement = placement.split('-')[0];\n\n let offsets;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n let boundariesElement =\n options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n const transformProp = getSupportedPropertyName('transform');\n const popperStyles = data.instance.popper.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = popperStyles;\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n boundariesElement,\n data.positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n const order = options.priority;\n let popper = data.offsets.popper;\n\n const check = {\n primary(placement) {\n let value = popper[placement];\n if (\n popper[placement] < boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return { [placement]: value };\n },\n secondary(placement) {\n const mainSide = placement === 'right' ? 'left' : 'top';\n let value = popper[mainSide];\n if (\n popper[placement] > boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.min(\n popper[mainSide],\n boundaries[placement] -\n (placement === 'right' ? popper.width : popper.height)\n );\n }\n return { [mainSide]: value };\n },\n };\n\n order.forEach(placement => {\n const side =\n ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = { ...popper, ...check[side](placement) };\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n const { popper, reference } = data.offsets;\n const placement = data.placement.split('-')[0];\n const floor = Math.floor;\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const side = isVertical ? 'right' : 'bottom';\n const opSide = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] =\n floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n let arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn(\n 'WARNING: `arrow.element` must be child of its popper element!'\n );\n return data;\n }\n }\n\n const placement = data.placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -=\n popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] +=\n reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.popper);\n const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`]);\n const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`]);\n let sideValue =\n center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n };\n\n return data;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n options.boundariesElement,\n data.positionFixed\n );\n\n let placement = data.placement.split('-')[0];\n let placementOpposite = getOppositePlacement(placement);\n let variation = data.placement.split('-')[1] || '';\n\n let flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n const popperOffsets = data.offsets.popper;\n const refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n const floor = Math.floor;\n const overlapsRef =\n (placement === 'left' &&\n floor(popperOffsets.right) > floor(refOffsets.left)) ||\n (placement === 'right' &&\n floor(popperOffsets.left) < floor(refOffsets.right)) ||\n (placement === 'top' &&\n floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n (placement === 'bottom' &&\n floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n const overflowsBottom =\n floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n const flippedVariationByRef =\n !!options.flipVariations &&\n ((isVertical && variation === 'start' && overflowsLeft) ||\n (isVertical && variation === 'end' && overflowsRight) ||\n (!isVertical && variation === 'start' && overflowsTop) ||\n (!isVertical && variation === 'end' && overflowsBottom));\n\n // flips variation if popper content overflows boundaries\n const flippedVariationByContent =\n !!options.flipVariationsByContent &&\n ((isVertical && variation === 'start' && overflowsRight) ||\n (isVertical && variation === 'end' && overflowsLeft) ||\n (!isVertical && variation === 'start' && overflowsBottom) ||\n (!isVertical && variation === 'end' && overflowsTop));\n\n const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = {\n ...data.offsets.popper,\n ...getPopperOffsets(\n data.instance.popper,\n data.offsets.reference,\n data.placement\n ),\n };\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] =\n reference[basePlacement] -\n (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n const refRect = data.offsets.reference;\n const bound = find(\n data.instance.modifiers,\n modifier => modifier.name === 'preventOverflow'\n ).boundaries;\n\n if (\n refRect.bottom < bound.top ||\n refRect.left > bound.right ||\n refRect.top > bound.bottom ||\n refRect.right < bound.left\n ) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n","/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nexport default function getRoundedOffsets(data, shouldRound) {\n const { popper, reference } = data.offsets;\n const { round, floor } = Math;\n const noRound = v => v;\n \n const referenceWidth = round(reference.width);\n const popperWidth = round(popper.width);\n \n const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n const isVariation = data.placement.indexOf('-') !== -1;\n const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n const horizontalToInteger = !shouldRound\n ? noRound\n : isVertical || isVariation || sameWidthParity\n ? round\n : floor;\n const verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(\n bothOddWidth && !isVariation && shouldRound\n ? popper.left - 1\n : popper.left\n ),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right),\n };\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n reference,\n popper,\n options,\n modifierOptions,\n state\n) {\n // compute reference element offsets\n const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n const placement = computeAutoPlacement(\n options.placement,\n referenceOffsets,\n popper,\n reference,\n options.modifiers.flip.boundariesElement,\n options.modifiers.flip.padding\n );\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function(prop) {\n const value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: () => {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: () => {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n constructor(reference, popper, options = {}) {\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = { ...Popper.Defaults, ...options };\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: [],\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys({\n ...Popper.Defaults.modifiers,\n ...options.modifiers,\n }).forEach(name => {\n this.options.modifiers[name] = {\n // If it's a built-in modifier, use it as base\n ...(Popper.Defaults.modifiers[name] || {}),\n // If there are custom options, override and merge with default ones\n ...(options.modifiers ? options.modifiers[name] : {}),\n };\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers)\n .map(name => ({\n name,\n ...this.options.modifiers[name],\n }))\n // sort the modifiers by order\n .sort((a, b) => a.order - b.order);\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(modifierOptions => {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(\n this.reference,\n this.popper,\n this.options,\n modifierOptions,\n this.state\n );\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n const eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n update() {\n return update.call(this);\n }\n destroy() {\n return destroy.call(this);\n }\n enableEventListeners() {\n return enableEventListeners.call(this);\n }\n disableEventListeners() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n scheduleUpdate = () => requestAnimationFrame(this.update);\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n static placements = placements;\n\n static Defaults = Defaults;\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n","import _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport createContext from '@hypnosphi/create-react-context';\nexport var ManagerReferenceNodeContext = createContext();\nexport var ManagerReferenceNodeSetterContext = createContext();\n\nvar Manager =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(Manager, _React$Component);\n\n function Manager() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"referenceNode\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setReferenceNode\", function (newReferenceNode) {\n if (newReferenceNode && _this.referenceNode !== newReferenceNode) {\n _this.referenceNode = newReferenceNode;\n\n _this.forceUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = Manager.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.referenceNode = null;\n };\n\n _proto.render = function render() {\n return React.createElement(ManagerReferenceNodeContext.Provider, {\n value: this.referenceNode\n }, React.createElement(ManagerReferenceNodeSetterContext.Provider, {\n value: this.setReferenceNode\n }, this.props.children));\n };\n\n return Manager;\n}(React.Component);\n\nexport { Manager as default };","/**\n * Takes an argument and if it's an array, returns the first item in the array,\n * otherwise returns the argument. Used for Preact compatibility.\n */\nexport var unwrapArray = function unwrapArray(arg) {\n return Array.isArray(arg) ? arg[0] : arg;\n};\n/**\n * Takes a maybe-undefined function and arbitrary args and invokes the function\n * only if it is defined.\n */\n\nexport var safeInvoke = function safeInvoke(fn) {\n if (typeof fn === \"function\") {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n return fn.apply(void 0, args);\n }\n};\n/**\n * Does a shallow equality check of two objects by comparing the reference\n * equality of each value.\n */\n\nexport var shallowEqual = function shallowEqual(objA, objB) {\n var aKeys = Object.keys(objA);\n var bKeys = Object.keys(objB);\n\n if (bKeys.length !== aKeys.length) {\n return false;\n }\n\n for (var i = 0; i < bKeys.length; i++) {\n var key = aKeys[i];\n\n if (objA[key] !== objB[key]) {\n return false;\n }\n }\n\n return true;\n};\n/**\n * Sets a ref using either a ref callback or a ref object\n */\n\nexport var setRef = function setRef(ref, node) {\n // if its a function call it\n if (typeof ref === \"function\") {\n return safeInvoke(ref, node);\n } // otherwise we should treat it as a ref object\n else if (ref != null) {\n ref.current = node;\n }\n};","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport deepEqual from \"deep-equal\";\nimport * as React from 'react';\nimport PopperJS from 'popper.js';\nimport { ManagerReferenceNodeContext } from './Manager';\nimport { unwrapArray, setRef, shallowEqual } from './utils';\nvar initialStyle = {\n position: 'absolute',\n top: 0,\n left: 0,\n opacity: 0,\n pointerEvents: 'none'\n};\nvar initialArrowStyle = {};\nexport var InnerPopper =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inheritsLoose(InnerPopper, _React$Component);\n\n function InnerPopper() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"state\", {\n data: undefined,\n placement: undefined\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"popperInstance\", void 0);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"popperNode\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"arrowNode\", null);\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setPopperNode\", function (popperNode) {\n if (!popperNode || _this.popperNode === popperNode) return;\n setRef(_this.props.innerRef, popperNode);\n _this.popperNode = popperNode;\n\n _this.updatePopperInstance();\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"setArrowNode\", function (arrowNode) {\n _this.arrowNode = arrowNode;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updateStateModifier\", {\n enabled: true,\n order: 900,\n fn: function fn(data) {\n var placement = data.placement;\n\n _this.setState({\n data: data,\n placement: placement\n });\n\n return data;\n }\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getOptions\", function () {\n return {\n placement: _this.props.placement,\n eventsEnabled: _this.props.eventsEnabled,\n positionFixed: _this.props.positionFixed,\n modifiers: _extends({}, _this.props.modifiers, {\n arrow: _extends({}, _this.props.modifiers && _this.props.modifiers.arrow, {\n enabled: !!_this.arrowNode,\n element: _this.arrowNode\n }),\n applyStyle: {\n enabled: false\n },\n updateStateModifier: _this.updateStateModifier\n })\n };\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getPopperStyle\", function () {\n return !_this.popperNode || !_this.state.data ? initialStyle : _extends({\n position: _this.state.data.offsets.popper.position\n }, _this.state.data.styles);\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getPopperPlacement\", function () {\n return !_this.state.data ? undefined : _this.state.placement;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getArrowStyle\", function () {\n return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"getOutOfBoundariesState\", function () {\n return _this.state.data ? _this.state.data.hide : undefined;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"destroyPopperInstance\", function () {\n if (!_this.popperInstance) return;\n\n _this.popperInstance.destroy();\n\n _this.popperInstance = null;\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"updatePopperInstance\", function () {\n _this.destroyPopperInstance();\n\n var _assertThisInitialize = _assertThisInitialized(_assertThisInitialized(_this)),\n popperNode = _assertThisInitialize.popperNode;\n\n var referenceElement = _this.props.referenceElement;\n if (!referenceElement || !popperNode) return;\n _this.popperInstance = new PopperJS(referenceElement, popperNode, _this.getOptions());\n });\n\n _defineProperty(_assertThisInitialized(_assertThisInitialized(_this)), \"scheduleUpdate\", function () {\n if (_this.popperInstance) {\n _this.popperInstance.scheduleUpdate();\n }\n });\n\n return _this;\n }\n\n var _proto = InnerPopper.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps, prevState) {\n // If the Popper.js options have changed, update the instance (destroy + create)\n if (this.props.placement !== prevProps.placement || this.props.referenceElement !== prevProps.referenceElement || this.props.positionFixed !== prevProps.positionFixed || !deepEqual(this.props.modifiers, prevProps.modifiers, {\n strict: true\n })) {\n // develop only check that modifiers isn't being updated needlessly\n if (process.env.NODE_ENV === \"development\") {\n if (this.props.modifiers !== prevProps.modifiers && this.props.modifiers != null && prevProps.modifiers != null && shallowEqual(this.props.modifiers, prevProps.modifiers)) {\n console.warn(\"'modifiers' prop reference updated even though all values appear the same.\\nConsider memoizing the 'modifiers' object to avoid needless rendering.\");\n }\n }\n\n this.updatePopperInstance();\n } else if (this.props.eventsEnabled !== prevProps.eventsEnabled && this.popperInstance) {\n this.props.eventsEnabled ? this.popperInstance.enableEventListeners() : this.popperInstance.disableEventListeners();\n } // A placement difference in state means popper determined a new placement\n // apart from the props value. By the time the popper element is rendered with\n // the new position Popper has already measured it, if the place change triggers\n // a size change it will result in a misaligned popper. So we schedule an update to be sure.\n\n\n if (prevState.placement !== this.state.placement) {\n this.scheduleUpdate();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n setRef(this.props.innerRef, null);\n this.destroyPopperInstance();\n };\n\n _proto.render = function render() {\n return unwrapArray(this.props.children)({\n ref: this.setPopperNode,\n style: this.getPopperStyle(),\n placement: this.getPopperPlacement(),\n outOfBoundaries: this.getOutOfBoundariesState(),\n scheduleUpdate: this.scheduleUpdate,\n arrowProps: {\n ref: this.setArrowNode,\n style: this.getArrowStyle()\n }\n });\n };\n\n return InnerPopper;\n}(React.Component);\n\n_defineProperty(InnerPopper, \"defaultProps\", {\n placement: 'bottom',\n eventsEnabled: true,\n referenceElement: undefined,\n positionFixed: false\n});\n\nvar placements = PopperJS.placements;\nexport { placements };\nexport default function Popper(_ref) {\n var referenceElement = _ref.referenceElement,\n props = _objectWithoutPropertiesLoose(_ref, [\"referenceElement\"]);\n\n return React.createElement(ManagerReferenceNodeContext.Consumer, null, function (referenceNode) {\n return React.createElement(InnerPopper, _extends({\n referenceElement: referenceElement !== undefined ? referenceElement : referenceNode\n }, props));\n });\n}","import PropTypes from 'prop-types'; // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/js/src/modal.js#L436-L443\n\nexport function getScrollbarWidth() {\n var scrollDiv = document.createElement('div'); // .modal-scrollbar-measure styles // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.4/scss/_modal.scss#L106-L113\n\n scrollDiv.style.position = 'absolute';\n scrollDiv.style.top = '-9999px';\n scrollDiv.style.width = '50px';\n scrollDiv.style.height = '50px';\n scrollDiv.style.overflow = 'scroll';\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.offsetWidth - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n}\nexport function setScrollbarWidth(padding) {\n document.body.style.paddingRight = padding > 0 ? padding + \"px\" : null;\n}\nexport function isBodyOverflowing() {\n return document.body.clientWidth < window.innerWidth;\n}\nexport function getOriginalBodyPadding() {\n var style = window.getComputedStyle(document.body, null);\n return parseInt(style && style.getPropertyValue('padding-right') || 0, 10);\n}\nexport function conditionallyUpdateScrollbar() {\n var scrollbarWidth = getScrollbarWidth(); // https://github.com/twbs/bootstrap/blob/v4.0.0-alpha.6/js/src/modal.js#L433\n\n var fixedContent = document.querySelectorAll('.fixed-top, .fixed-bottom, .is-fixed, .sticky-top')[0];\n var bodyPadding = fixedContent ? parseInt(fixedContent.style.paddingRight || 0, 10) : 0;\n\n if (isBodyOverflowing()) {\n setScrollbarWidth(bodyPadding + scrollbarWidth);\n }\n}\nvar globalCssModule;\nexport function setGlobalCssModule(cssModule) {\n globalCssModule = cssModule;\n}\nexport function mapToCssModules(className, cssModule) {\n if (className === void 0) {\n className = '';\n }\n\n if (cssModule === void 0) {\n cssModule = globalCssModule;\n }\n\n if (!cssModule) return className;\n return className.split(' ').map(function (c) {\n return cssModule[c] || c;\n }).join(' ');\n}\n/**\n * Returns a new object with the key/value pairs from `obj` that are not in the array `omitKeys`.\n */\n\nexport function omit(obj, omitKeys) {\n var result = {};\n Object.keys(obj).forEach(function (key) {\n if (omitKeys.indexOf(key) === -1) {\n result[key] = obj[key];\n }\n });\n return result;\n}\n/**\n * Returns a filtered copy of an object with only the specified keys.\n */\n\nexport function pick(obj, keys) {\n var pickKeys = Array.isArray(keys) ? keys : [keys];\n var length = pickKeys.length;\n var key;\n var result = {};\n\n while (length > 0) {\n length -= 1;\n key = pickKeys[length];\n result[key] = obj[key];\n }\n\n return result;\n}\nvar warned = {};\nexport function warnOnce(message) {\n if (!warned[message]) {\n /* istanbul ignore else */\n if (typeof console !== 'undefined') {\n console.error(message); // eslint-disable-line no-console\n }\n\n warned[message] = true;\n }\n}\nexport function deprecated(propType, explanation) {\n return function validate(props, propName, componentName) {\n if (props[propName] !== null && typeof props[propName] !== 'undefined') {\n warnOnce(\"\\\"\" + propName + \"\\\" property of \\\"\" + componentName + \"\\\" has been deprecated.\\n\" + explanation);\n }\n\n for (var _len = arguments.length, rest = new Array(_len > 3 ? _len - 3 : 0), _key = 3; _key < _len; _key++) {\n rest[_key - 3] = arguments[_key];\n }\n\n return propType.apply(void 0, [props, propName, componentName].concat(rest));\n };\n} // Shim Element if needed (e.g. in Node environment)\n\nvar Element = typeof window === 'object' && window.Element || function () {};\n\nexport function DOMElement(props, propName, componentName) {\n if (!(props[propName] instanceof Element)) {\n return new Error('Invalid prop `' + propName + '` supplied to `' + componentName + '`. Expected prop to be an instance of Element. Validation failed.');\n }\n}\nexport var targetPropType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, DOMElement, PropTypes.shape({\n current: PropTypes.any\n})]);\nexport var tagPropType = PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n}), PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.shape({\n $$typeof: PropTypes.symbol,\n render: PropTypes.func\n})]))]);\n/* eslint key-spacing: [\"error\", { afterColon: true, align: \"value\" }] */\n// These are all setup to match what is in the bootstrap _variables.scss\n// https://github.com/twbs/bootstrap/blob/v4-dev/scss/_variables.scss\n\nexport var TransitionTimeouts = {\n Fade: 150,\n // $transition-fade\n Collapse: 350,\n // $transition-collapse\n Modal: 300,\n // $modal-transition\n Carousel: 600 // $carousel-transition\n\n}; // Duplicated Transition.propType keys to ensure that Reactstrap builds\n// for distribution properly exclude these keys for nested child HTML attributes\n// since `react-transition-group` removes propTypes in production builds.\n\nexport var TransitionPropTypeKeys = ['in', 'mountOnEnter', 'unmountOnExit', 'appear', 'enter', 'exit', 'timeout', 'onEnter', 'onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'];\nexport var TransitionStatuses = {\n ENTERING: 'entering',\n ENTERED: 'entered',\n EXITING: 'exiting',\n EXITED: 'exited'\n};\nexport var keyCodes = {\n esc: 27,\n space: 32,\n enter: 13,\n tab: 9,\n up: 38,\n down: 40,\n home: 36,\n end: 35,\n n: 78,\n p: 80\n};\nexport var PopperPlacements = ['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'];\nexport var canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nexport function isReactRefObj(target) {\n if (target && typeof target === 'object') {\n return 'current' in target;\n }\n\n return false;\n}\n\nfunction getTag(value) {\n if (value == null) {\n return value === undefined ? '[object Undefined]' : '[object Null]';\n }\n\n return Object.prototype.toString.call(value);\n}\n\nexport function toNumber(value) {\n var type = typeof value;\n var NAN = 0 / 0;\n\n if (type === 'number') {\n return value;\n }\n\n if (type === 'symbol' || type === 'object' && getTag(value) === '[object Symbol]') {\n return NAN;\n }\n\n if (isObject(value)) {\n var other = typeof value.valueOf === 'function' ? value.valueOf() : value;\n value = isObject(other) ? \"\" + other : other;\n }\n\n if (type !== 'string') {\n return value === 0 ? value : +value;\n }\n\n value = value.replace(/^\\s+|\\s+$/g, '');\n var isBinary = /^0b[01]+$/i.test(value);\n return isBinary || /^0o[0-7]+$/i.test(value) ? parseInt(value.slice(2), isBinary ? 2 : 8) : /^[-+]0x[0-9a-f]+$/i.test(value) ? NAN : +value;\n}\nexport function isObject(value) {\n var type = typeof value;\n return value != null && (type === 'object' || type === 'function');\n}\nexport function isFunction(value) {\n if (!isObject(value)) {\n return false;\n }\n\n var tag = getTag(value);\n return tag === '[object Function]' || tag === '[object AsyncFunction]' || tag === '[object GeneratorFunction]' || tag === '[object Proxy]';\n}\nexport function findDOMElements(target) {\n if (isReactRefObj(target)) {\n return target.current;\n }\n\n if (isFunction(target)) {\n return target();\n }\n\n if (typeof target === 'string' && canUseDOM) {\n var selection = document.querySelectorAll(target);\n\n if (!selection.length) {\n selection = document.querySelectorAll(\"#\" + target);\n }\n\n if (!selection.length) {\n throw new Error(\"The target '\" + target + \"' could not be identified in the dom, tip: check spelling\");\n }\n\n return selection;\n }\n\n return target;\n}\nexport function isArrayOrNodeList(els) {\n if (els === null) {\n return false;\n }\n\n return Array.isArray(els) || canUseDOM && typeof els.length === 'number';\n}\nexport function getTarget(target, allElements) {\n var els = findDOMElements(target);\n\n if (allElements) {\n if (isArrayOrNodeList(els)) {\n return els;\n }\n\n if (els === null) {\n return [];\n }\n\n return [els];\n } else {\n if (isArrayOrNodeList(els)) {\n return els[0];\n }\n\n return els;\n }\n}\nexport var defaultToggleEvents = ['touchstart', 'click'];\nexport function addMultipleEventListeners(_els, handler, _events, useCapture) {\n var els = _els;\n\n if (!isArrayOrNodeList(els)) {\n els = [els];\n }\n\n var events = _events;\n\n if (typeof events === 'string') {\n events = events.split(/\\s+/);\n }\n\n if (!isArrayOrNodeList(els) || typeof handler !== 'function' || !Array.isArray(events)) {\n throw new Error(\"\\n The first argument of this function must be DOM node or an array on DOM nodes or NodeList.\\n The second must be a function.\\n The third is a string or an array of strings that represents DOM events\\n \");\n }\n\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.addEventListener(event, handler, useCapture);\n });\n });\n return function removeEvents() {\n Array.prototype.forEach.call(events, function (event) {\n Array.prototype.forEach.call(els, function (el) {\n el.removeEventListener(event, handler, useCapture);\n });\n });\n };\n}\nexport var focusableElements = ['a[href]', 'area[href]', 'input:not([disabled]):not([type=hidden])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'object', 'embed', '[tabindex]:not(.modal)', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'];","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"tag\", \"baseClass\", \"baseClassActive\", \"className\", \"cssModule\", \"children\", \"innerRef\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport classNames from 'classnames';\nimport { Transition } from 'react-transition-group';\nimport { mapToCssModules, omit, pick, TransitionPropTypeKeys, TransitionTimeouts, tagPropType } from './utils';\n\nvar propTypes = _objectSpread(_objectSpread({}, Transition.propTypes), {}, {\n children: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.node), PropTypes.node]),\n tag: tagPropType,\n baseClass: PropTypes.string,\n baseClassActive: PropTypes.string,\n className: PropTypes.string,\n cssModule: PropTypes.object,\n innerRef: PropTypes.oneOfType([PropTypes.object, PropTypes.string, PropTypes.func])\n});\n\nvar defaultProps = _objectSpread(_objectSpread({}, Transition.defaultProps), {}, {\n tag: 'div',\n baseClass: 'fade',\n baseClassActive: 'show',\n timeout: TransitionTimeouts.Fade,\n appear: true,\n enter: true,\n exit: true,\n in: true\n});\n\nfunction Fade(props) {\n var Tag = props.tag,\n baseClass = props.baseClass,\n baseClassActive = props.baseClassActive,\n className = props.className,\n cssModule = props.cssModule,\n children = props.children,\n innerRef = props.innerRef,\n otherProps = _objectWithoutPropertiesLoose(props, _excluded);\n\n var transitionProps = pick(otherProps, TransitionPropTypeKeys);\n var childProps = omit(otherProps, TransitionPropTypeKeys);\n return /*#__PURE__*/React.createElement(Transition, transitionProps, function (status) {\n var isActive = status === 'entered';\n var classes = mapToCssModules(classNames(className, baseClass, isActive && baseClassActive), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({\n className: classes\n }, childProps, {\n ref: innerRef\n }), children);\n });\n}\n\nFade.propTypes = propTypes;\nFade.defaultProps = defaultProps;\nexport default Fade;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nvar _excluded = [\"cssModule\", \"children\", \"isOpen\", \"flip\", \"target\", \"offset\", \"fallbackPlacement\", \"placementPrefix\", \"arrowClassName\", \"hideArrow\", \"popperClassName\", \"tag\", \"container\", \"modifiers\", \"positionFixed\", \"boundariesElement\", \"onClosed\", \"fade\", \"transition\", \"placement\"];\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) { symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); } keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { Popper as ReactPopper } from 'react-popper';\nimport { getTarget, targetPropType, mapToCssModules, DOMElement, tagPropType } from './utils';\nimport Fade from './Fade';\n\nfunction noop() {}\n\nvar propTypes = {\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]).isRequired,\n popperClassName: PropTypes.string,\n placement: PropTypes.string,\n placementPrefix: PropTypes.string,\n arrowClassName: PropTypes.string,\n hideArrow: PropTypes.bool,\n tag: tagPropType,\n isOpen: PropTypes.bool.isRequired,\n cssModule: PropTypes.object,\n offset: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n fallbackPlacement: PropTypes.oneOfType([PropTypes.string, PropTypes.array]),\n flip: PropTypes.bool,\n container: targetPropType,\n target: targetPropType.isRequired,\n modifiers: PropTypes.object,\n positionFixed: PropTypes.bool,\n boundariesElement: PropTypes.oneOfType([PropTypes.string, DOMElement]),\n onClosed: PropTypes.func,\n fade: PropTypes.bool,\n transition: PropTypes.shape(Fade.propTypes)\n};\nvar defaultProps = {\n boundariesElement: 'scrollParent',\n placement: 'auto',\n hideArrow: false,\n isOpen: false,\n offset: 0,\n fallbackPlacement: 'flip',\n flip: true,\n container: 'body',\n modifiers: {},\n onClosed: noop,\n fade: true,\n transition: _objectSpread({}, Fade.defaultProps)\n};\n\nvar PopperContent = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(PopperContent, _React$Component);\n\n function PopperContent(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.setTargetNode = _this.setTargetNode.bind(_assertThisInitialized(_this));\n _this.getTargetNode = _this.getTargetNode.bind(_assertThisInitialized(_this));\n _this.getRef = _this.getRef.bind(_assertThisInitialized(_this));\n _this.onClosed = _this.onClosed.bind(_assertThisInitialized(_this));\n _this.state = {\n isOpen: props.isOpen\n };\n return _this;\n }\n\n PopperContent.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (props.isOpen && !state.isOpen) {\n return {\n isOpen: props.isOpen\n };\n } else return null;\n };\n\n var _proto = PopperContent.prototype;\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n if (this._element && this._element.childNodes && this._element.childNodes[0] && this._element.childNodes[0].focus) {\n this._element.childNodes[0].focus();\n }\n };\n\n _proto.setTargetNode = function setTargetNode(node) {\n this.targetNode = typeof node === 'string' ? getTarget(node) : node;\n };\n\n _proto.getTargetNode = function getTargetNode() {\n return this.targetNode;\n };\n\n _proto.getContainerNode = function getContainerNode() {\n return getTarget(this.props.container);\n };\n\n _proto.getRef = function getRef(ref) {\n this._element = ref;\n };\n\n _proto.onClosed = function onClosed() {\n this.props.onClosed();\n this.setState({\n isOpen: false\n });\n };\n\n _proto.renderChildren = function renderChildren() {\n var _this$props = this.props,\n cssModule = _this$props.cssModule,\n children = _this$props.children,\n isOpen = _this$props.isOpen,\n flip = _this$props.flip,\n target = _this$props.target,\n offset = _this$props.offset,\n fallbackPlacement = _this$props.fallbackPlacement,\n placementPrefix = _this$props.placementPrefix,\n _arrowClassName = _this$props.arrowClassName,\n hideArrow = _this$props.hideArrow,\n _popperClassName = _this$props.popperClassName,\n tag = _this$props.tag,\n container = _this$props.container,\n modifiers = _this$props.modifiers,\n positionFixed = _this$props.positionFixed,\n boundariesElement = _this$props.boundariesElement,\n onClosed = _this$props.onClosed,\n fade = _this$props.fade,\n transition = _this$props.transition,\n placement = _this$props.placement,\n attrs = _objectWithoutPropertiesLoose(_this$props, _excluded);\n\n var arrowClassName = mapToCssModules(classNames('arrow', _arrowClassName), cssModule);\n var popperClassName = mapToCssModules(classNames(_popperClassName, placementPrefix ? placementPrefix + \"-auto\" : ''), this.props.cssModule);\n\n var extendedModifiers = _objectSpread({\n offset: {\n offset: offset\n },\n flip: {\n enabled: flip,\n behavior: fallbackPlacement\n },\n preventOverflow: {\n boundariesElement: boundariesElement\n }\n }, modifiers);\n\n var popperTransition = _objectSpread(_objectSpread(_objectSpread({}, Fade.defaultProps), transition), {}, {\n baseClass: fade ? transition.baseClass : '',\n timeout: fade ? transition.timeout : 0\n });\n\n return /*#__PURE__*/React.createElement(Fade, _extends({}, popperTransition, attrs, {\n in: isOpen,\n onExited: this.onClosed,\n tag: tag\n }), /*#__PURE__*/React.createElement(ReactPopper, {\n referenceElement: this.targetNode,\n modifiers: extendedModifiers,\n placement: placement,\n positionFixed: positionFixed\n }, function (_ref) {\n var ref = _ref.ref,\n style = _ref.style,\n placement = _ref.placement,\n outOfBoundaries = _ref.outOfBoundaries,\n arrowProps = _ref.arrowProps,\n scheduleUpdate = _ref.scheduleUpdate;\n return /*#__PURE__*/React.createElement(\"div\", {\n ref: ref,\n style: style,\n className: popperClassName,\n \"x-placement\": placement,\n \"x-out-of-boundaries\": outOfBoundaries ? 'true' : undefined\n }, typeof children === 'function' ? children({\n scheduleUpdate: scheduleUpdate\n }) : children, !hideArrow && /*#__PURE__*/React.createElement(\"span\", {\n ref: arrowProps.ref,\n className: arrowClassName,\n style: arrowProps.style\n }));\n }));\n };\n\n _proto.render = function render() {\n this.setTargetNode(this.props.target);\n\n if (this.state.isOpen) {\n return this.props.container === 'inline' ? this.renderChildren() : /*#__PURE__*/ReactDOM.createPortal( /*#__PURE__*/React.createElement(\"div\", {\n ref: this.getRef\n }, this.renderChildren()), this.getContainerNode());\n }\n\n return null;\n };\n\n return PopperContent;\n}(React.Component);\n\nPopperContent.propTypes = propTypes;\nPopperContent.defaultProps = defaultProps;\nexport default PopperContent;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport PopperContent from './PopperContent';\nimport { getTarget, targetPropType, omit, PopperPlacements, mapToCssModules, DOMElement } from './utils';\nexport var propTypes = {\n children: PropTypes.oneOfType([PropTypes.node, PropTypes.func]),\n placement: PropTypes.oneOf(PopperPlacements),\n target: targetPropType.isRequired,\n container: targetPropType,\n isOpen: PropTypes.bool,\n disabled: PropTypes.bool,\n hideArrow: PropTypes.bool,\n boundariesElement: PropTypes.oneOfType([PropTypes.string, DOMElement]),\n className: PropTypes.string,\n innerClassName: PropTypes.string,\n arrowClassName: PropTypes.string,\n popperClassName: PropTypes.string,\n cssModule: PropTypes.object,\n toggle: PropTypes.func,\n autohide: PropTypes.bool,\n placementPrefix: PropTypes.string,\n delay: PropTypes.oneOfType([PropTypes.shape({\n show: PropTypes.number,\n hide: PropTypes.number\n }), PropTypes.number]),\n modifiers: PropTypes.object,\n positionFixed: PropTypes.bool,\n offset: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n innerRef: PropTypes.oneOfType([PropTypes.func, PropTypes.string, PropTypes.object]),\n trigger: PropTypes.string,\n fade: PropTypes.bool,\n flip: PropTypes.bool\n};\nvar DEFAULT_DELAYS = {\n show: 0,\n hide: 50\n};\nvar defaultProps = {\n isOpen: false,\n hideArrow: false,\n autohide: false,\n delay: DEFAULT_DELAYS,\n toggle: function toggle() {},\n trigger: 'click',\n fade: true\n};\n\nfunction isInDOMSubtree(element, subtreeRoot) {\n return subtreeRoot && (element === subtreeRoot || subtreeRoot.contains(element));\n}\n\nfunction isInDOMSubtrees(element, subtreeRoots) {\n if (subtreeRoots === void 0) {\n subtreeRoots = [];\n }\n\n return subtreeRoots && subtreeRoots.length && subtreeRoots.filter(function (subTreeRoot) {\n return isInDOMSubtree(element, subTreeRoot);\n })[0];\n}\n\nvar TooltipPopoverWrapper = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(TooltipPopoverWrapper, _React$Component);\n\n function TooltipPopoverWrapper(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this._targets = [];\n _this.currentTargetElement = null;\n _this.addTargetEvents = _this.addTargetEvents.bind(_assertThisInitialized(_this));\n _this.handleDocumentClick = _this.handleDocumentClick.bind(_assertThisInitialized(_this));\n _this.removeTargetEvents = _this.removeTargetEvents.bind(_assertThisInitialized(_this));\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n _this.showWithDelay = _this.showWithDelay.bind(_assertThisInitialized(_this));\n _this.hideWithDelay = _this.hideWithDelay.bind(_assertThisInitialized(_this));\n _this.onMouseOverTooltipContent = _this.onMouseOverTooltipContent.bind(_assertThisInitialized(_this));\n _this.onMouseLeaveTooltipContent = _this.onMouseLeaveTooltipContent.bind(_assertThisInitialized(_this));\n _this.show = _this.show.bind(_assertThisInitialized(_this));\n _this.hide = _this.hide.bind(_assertThisInitialized(_this));\n _this.onEscKeyDown = _this.onEscKeyDown.bind(_assertThisInitialized(_this));\n _this.getRef = _this.getRef.bind(_assertThisInitialized(_this));\n _this.state = {\n isOpen: props.isOpen\n };\n _this._isMounted = false;\n return _this;\n }\n\n var _proto = TooltipPopoverWrapper.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n this._isMounted = true;\n this.updateTarget();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this._isMounted = false;\n this.removeTargetEvents();\n this._targets = null;\n this.clearShowTimeout();\n this.clearHideTimeout();\n };\n\n TooltipPopoverWrapper.getDerivedStateFromProps = function getDerivedStateFromProps(props, state) {\n if (props.isOpen && !state.isOpen) {\n return {\n isOpen: props.isOpen\n };\n } else return null;\n };\n\n _proto.onMouseOverTooltipContent = function onMouseOverTooltipContent() {\n if (this.props.trigger.indexOf('hover') > -1 && !this.props.autohide) {\n if (this._hideTimeout) {\n this.clearHideTimeout();\n }\n\n if (this.state.isOpen && !this.props.isOpen) {\n this.toggle();\n }\n }\n };\n\n _proto.onMouseLeaveTooltipContent = function onMouseLeaveTooltipContent(e) {\n if (this.props.trigger.indexOf('hover') > -1 && !this.props.autohide) {\n if (this._showTimeout) {\n this.clearShowTimeout();\n }\n\n e.persist();\n this._hideTimeout = setTimeout(this.hide.bind(this, e), this.getDelay('hide'));\n }\n };\n\n _proto.onEscKeyDown = function onEscKeyDown(e) {\n if (e.key === 'Escape') {\n this.hide(e);\n }\n };\n\n _proto.getRef = function getRef(ref) {\n var innerRef = this.props.innerRef;\n\n if (innerRef) {\n if (typeof innerRef === 'function') {\n innerRef(ref);\n } else if (typeof innerRef === 'object') {\n innerRef.current = ref;\n }\n }\n\n this._popover = ref;\n };\n\n _proto.getDelay = function getDelay(key) {\n var delay = this.props.delay;\n\n if (typeof delay === 'object') {\n return isNaN(delay[key]) ? DEFAULT_DELAYS[key] : delay[key];\n }\n\n return delay;\n };\n\n _proto.getCurrentTarget = function getCurrentTarget(target) {\n if (!target) return null;\n\n var index = this._targets.indexOf(target);\n\n if (index >= 0) return this._targets[index];\n return this.getCurrentTarget(target.parentElement);\n };\n\n _proto.show = function show(e) {\n if (!this.props.isOpen) {\n this.clearShowTimeout();\n this.currentTargetElement = e ? e.currentTarget || this.getCurrentTarget(e.target) : null;\n\n if (e && e.composedPath && typeof e.composedPath === 'function') {\n var path = e.composedPath();\n this.currentTargetElement = path && path[0] || this.currentTargetElement;\n }\n\n this.toggle(e);\n }\n };\n\n _proto.showWithDelay = function showWithDelay(e) {\n if (this._hideTimeout) {\n this.clearHideTimeout();\n }\n\n this._showTimeout = setTimeout(this.show.bind(this, e), this.getDelay('show'));\n };\n\n _proto.hide = function hide(e) {\n if (this.props.isOpen) {\n this.clearHideTimeout();\n this.currentTargetElement = null;\n this.toggle(e);\n }\n };\n\n _proto.hideWithDelay = function hideWithDelay(e) {\n if (this._showTimeout) {\n this.clearShowTimeout();\n }\n\n this._hideTimeout = setTimeout(this.hide.bind(this, e), this.getDelay('hide'));\n };\n\n _proto.clearShowTimeout = function clearShowTimeout() {\n clearTimeout(this._showTimeout);\n this._showTimeout = undefined;\n };\n\n _proto.clearHideTimeout = function clearHideTimeout() {\n clearTimeout(this._hideTimeout);\n this._hideTimeout = undefined;\n };\n\n _proto.handleDocumentClick = function handleDocumentClick(e) {\n var triggers = this.props.trigger.split(' ');\n\n if (triggers.indexOf('legacy') > -1 && (this.props.isOpen || isInDOMSubtrees(e.target, this._targets))) {\n if (this._hideTimeout) {\n this.clearHideTimeout();\n }\n\n if (this.props.isOpen && !isInDOMSubtree(e.target, this._popover)) {\n this.hideWithDelay(e);\n } else if (!this.props.isOpen) {\n this.showWithDelay(e);\n }\n } else if (triggers.indexOf('click') > -1 && isInDOMSubtrees(e.target, this._targets)) {\n if (this._hideTimeout) {\n this.clearHideTimeout();\n }\n\n if (!this.props.isOpen) {\n this.showWithDelay(e);\n } else {\n this.hideWithDelay(e);\n }\n }\n };\n\n _proto.addEventOnTargets = function addEventOnTargets(type, handler, isBubble) {\n this._targets.forEach(function (target) {\n target.addEventListener(type, handler, isBubble);\n });\n };\n\n _proto.removeEventOnTargets = function removeEventOnTargets(type, handler, isBubble) {\n this._targets.forEach(function (target) {\n target.removeEventListener(type, handler, isBubble);\n });\n };\n\n _proto.addTargetEvents = function addTargetEvents() {\n if (this.props.trigger) {\n var triggers = this.props.trigger.split(' ');\n\n if (triggers.indexOf('manual') === -1) {\n if (triggers.indexOf('click') > -1 || triggers.indexOf('legacy') > -1) {\n document.addEventListener('click', this.handleDocumentClick, true);\n }\n\n if (this._targets && this._targets.length) {\n if (triggers.indexOf('hover') > -1) {\n this.addEventOnTargets('mouseover', this.showWithDelay, true);\n this.addEventOnTargets('mouseout', this.hideWithDelay, true);\n }\n\n if (triggers.indexOf('focus') > -1) {\n this.addEventOnTargets('focusin', this.show, true);\n this.addEventOnTargets('focusout', this.hide, true);\n }\n\n this.addEventOnTargets('keydown', this.onEscKeyDown, true);\n }\n }\n }\n };\n\n _proto.removeTargetEvents = function removeTargetEvents() {\n if (this._targets) {\n this.removeEventOnTargets('mouseover', this.showWithDelay, true);\n this.removeEventOnTargets('mouseout', this.hideWithDelay, true);\n this.removeEventOnTargets('keydown', this.onEscKeyDown, true);\n this.removeEventOnTargets('focusin', this.show, true);\n this.removeEventOnTargets('focusout', this.hide, true);\n }\n\n document.removeEventListener('click', this.handleDocumentClick, true);\n };\n\n _proto.updateTarget = function updateTarget() {\n var newTarget = getTarget(this.props.target, true);\n\n if (newTarget !== this._targets) {\n this.removeTargetEvents();\n this._targets = newTarget ? Array.from(newTarget) : [];\n this.currentTargetElement = this.currentTargetElement || this._targets[0];\n this.addTargetEvents();\n }\n };\n\n _proto.toggle = function toggle(e) {\n if (this.props.disabled || !this._isMounted) {\n return e && e.preventDefault();\n }\n\n return this.props.toggle(e);\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n if (this.props.isOpen) {\n this.updateTarget();\n }\n\n var target = this.currentTargetElement || this._targets[0];\n\n if (!target) {\n return null;\n }\n\n var _this$props = this.props,\n className = _this$props.className,\n cssModule = _this$props.cssModule,\n innerClassName = _this$props.innerClassName,\n isOpen = _this$props.isOpen,\n hideArrow = _this$props.hideArrow,\n boundariesElement = _this$props.boundariesElement,\n placement = _this$props.placement,\n placementPrefix = _this$props.placementPrefix,\n arrowClassName = _this$props.arrowClassName,\n popperClassName = _this$props.popperClassName,\n container = _this$props.container,\n modifiers = _this$props.modifiers,\n positionFixed = _this$props.positionFixed,\n offset = _this$props.offset,\n fade = _this$props.fade,\n flip = _this$props.flip,\n children = _this$props.children;\n var attributes = omit(this.props, Object.keys(propTypes));\n var popperClasses = mapToCssModules(popperClassName, cssModule);\n var classes = mapToCssModules(innerClassName, cssModule);\n return /*#__PURE__*/React.createElement(PopperContent, {\n className: className,\n target: target,\n isOpen: isOpen,\n hideArrow: hideArrow,\n boundariesElement: boundariesElement,\n placement: placement,\n placementPrefix: placementPrefix,\n arrowClassName: arrowClassName,\n popperClassName: popperClasses,\n container: container,\n modifiers: modifiers,\n positionFixed: positionFixed,\n offset: offset,\n cssModule: cssModule,\n fade: fade,\n flip: flip\n }, function (_ref) {\n var scheduleUpdate = _ref.scheduleUpdate;\n return /*#__PURE__*/React.createElement(\"div\", _extends({}, attributes, {\n ref: _this2.getRef,\n className: classes,\n role: \"tooltip\",\n onMouseOver: _this2.onMouseOverTooltipContent,\n onMouseLeave: _this2.onMouseLeaveTooltipContent,\n onKeyDown: _this2.onEscKeyDown\n }), typeof children === 'function' ? children({\n scheduleUpdate: scheduleUpdate\n }) : children);\n });\n };\n\n return TooltipPopoverWrapper;\n}(React.Component);\n\nTooltipPopoverWrapper.propTypes = propTypes;\nTooltipPopoverWrapper.defaultProps = defaultProps;\nexport default TooltipPopoverWrapper;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport TooltipPopoverWrapper, { propTypes } from './TooltipPopoverWrapper';\nvar defaultProps = {\n placement: 'top',\n autohide: true,\n placementPrefix: 'bs-tooltip',\n trigger: 'hover focus'\n};\n\nvar Tooltip = function Tooltip(props) {\n var popperClasses = classNames('tooltip', 'show', props.popperClassName);\n var classes = classNames('tooltip-inner', props.innerClassName);\n return /*#__PURE__*/React.createElement(TooltipPopoverWrapper, _extends({}, props, {\n popperClassName: popperClasses,\n innerClassName: classes\n }));\n};\n\nTooltip.propTypes = propTypes;\nTooltip.defaultProps = defaultProps;\nexport default Tooltip;","import React from 'react'\nimport PropTypes from 'prop-types'\nimport { Tooltip as ReactstrapTooltip } from 'reactstrap'\n\nimport './tooltipStyles.scss'\n\nconst Tooltip = (props) => {\n const {\n target = null,\n text = '',\n isOpen = false,\n className = '',\n placement = 'auto',\n hideArrow = false\n } = props\n\n if (!target) {\n return null\n }\n\n return \n {text}\n \n}\n\nTooltip.defaultProps = {\n target: null,\n text: '',\n isOpen: false,\n className: '',\n placement: 'auto',\n hideArrow: false\n}\n\nTooltip.propTypes = {\n target: PropTypes.element,\n text: PropTypes.string,\n isOpen: PropTypes.bool,\n className: PropTypes.string,\n placement: PropTypes.string,\n hideArrow: PropTypes.bool\n}\n\nexport default Tooltip\n","import React, { useState, useEffect, useCallback } from 'react';\nimport { SizeMe } from 'react-sizeme'\nimport isTextEllipsisShown from \"./utils/isTextEllipsisShown\"\nimport Tooltip from \"./uiComponents/Tooltip/Tooltip\"\n\n\nconst RadioSelection = (props) => {\n const { schema, value, uiSchema, readonly, onChange } = props\n\n const [listData, setListData] = useState([])\n const [selected, setSelected] = useState('')\n const [type, setType] = useState('')\n const [tooltipTarget, setTooltipTarget] = useState(null)\n const [height, setHeight] = useState('')\n\n useEffect(() => { setSelected(value) }, [value])\n\n useEffect(() => {\n const isRadioButtonList = uiSchema['ui:widgetSubType'] !== \"radioButtonList\"\n\n const data = schema?.enum?.map((value, index) => {\n const radioButtonListOptions = isRadioButtonList ? {\n description: schema.enumDescriptions ? schema.enumDescriptions[index] : '',\n image: schema.icons ? schema.icons[index] : ''\n } : {}\n\n return {\n value: value,\n name: schema.enumNames[index],\n ...radioButtonListOptions\n }\n })\n\n setListData(data)\n setSelected(value)\n setType(uiSchema['ui:widgetSubType'])\n }, [schema])\n\n const handleSelect = (e) => {\n const selectedValue = e.currentTarget.dataset.value\n setSelected(selectedValue)\n onChange(selectedValue)\n }\n\n const keyPress = (e) => {\n if(e.key === 'Enter' || e.keyCode === 13) {\n handleSelect(e)\n }\n }\n\n const hideTooltip = () => () => {\n setTooltipTarget(null)\n }\n\n const showTooltip = (itemID, itemName, className) => () => {\n setTooltipTarget({\n id: itemID,\n name: itemName,\n className\n })\n }\n\n const ellipsisIsShown = () => {\n return tooltipTarget && isTextEllipsisShown(\n `.gallery-item .${tooltipTarget.className}[data-valuetooltip=\"${tooltipTarget.id}\"]`\n )\n }\n\n const getFinalSize = useCallback((heights, listData) => {\n let height\n if(listData.length === heights.length) {\n height = Math.max(...heights)\n setHeight(height)\n }\n }, [])\n\n const includesImage = listData?.some((item) => item.image)\n\n let heights = []\n return (\n
\n {\n listData?.length > 0 && listData?.map((item, index) => {\n const itemValue = item.value.replaceAll(/[`'\"/\\\\]+/g, '')\n return (\n \n {({ size }) => {\n if(size.height && size.height > 0) {\n heights = heights.concat(size.height)\n getFinalSize(heights, listData)\n }\n return (\n \n {type !== 'radioButtonList' && includesImage &&\n
\n {item.image && \"\"}\n
\n }\n
\n \n {item.name}\n \n \n {item.description}\n \n {\n tooltipTarget && ellipsisIsShown()\n && \n }\n
\n
\n )\n }}\n \n )\n })\n }\n
\n )\n}\n\nif (typeof window !== 'undefined') {\n window.uStoreDucs = window.uStoreDucs || []\n window.uStoreDucs.push({ name: 'radioButtonList', component: RadioSelection, displayNames: ['Gallery Grid View', 'Gallery List View', 'Radio Button List'] })\n}\n\nexport default RadioSelection\n","const isTextEllipsisShown = (elementQuerySelector) => {\n const tooltipTargetElement = document.querySelector(elementQuerySelector)\n\n return tooltipTargetElement && (tooltipTargetElement.offsetWidth < tooltipTargetElement.scrollWidth ||\n tooltipTargetElement.offsetHeight < tooltipTargetElement.scrollHeight)\n}\n\nexport default isTextEllipsisShown\n"],"names":["exports","__esModule","_react","require","_propTypes2","_interopRequireDefault","_gud2","obj","default","_classCallCheck","instance","Constructor","TypeError","_possibleConstructorReturn","self","call","ReferenceError","_inherits","subClass","superClass","prototype","Object","create","constructor","value","enumerable","writable","configurable","setPrototypeOf","__proto__","MAX_SIGNED_31_BIT_INT","createEventEmitter","handlers","on","handler","push","off","filter","h","get","set","newValue","changedBits","forEach","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","Provider","_Component","_temp","_this","this","_len","arguments","length","args","Array","_key","apply","concat","emitter","props","getChildContext","_ref","componentWillReceiveProps","nextProps","oldValue","x","y","render","children","Component","childContextTypes","object","isRequired","Consumer","_Component2","_temp2","_this2","_len2","_key2","state","getValue","onUpdate","observedBits","setState","componentDidMount","context","componentWillUnmount","isArray","contextTypes","module","_react2","_implementation2","createContext","utils","Batch","batch","size","topLevel","bottomLevel","add","level","fn","process","fns","i","options","reporter","asyncProcess","getOption","autoProcess","warn","asyncFrameHandler","isProcessing","processBatch","processingBatch","processBatchAsync","setTimeout","force","localAsyncProcess","undefined","clearTimeout","name","GetIntrinsic","callBind","$indexOf","allowMissing","intrinsic","bind","$apply","$call","$reflectApply","$gOPD","$defineProperty","$max","e","originalFunction","func","desc","applyBind","hasOwn","hasOwnProperty","classNames","classes","arg","argType","inner","toString","includes","key","join","objectKeys","isArguments","is","isRegex","flags","isDate","getTime","Date","isUndefinedOrNull","isBuffer","copy","slice","deepEqual","actual","expected","opts","strict","a","b","aIsRegex","bIsRegex","source","aIsBuffer","bIsBuffer","ka","kb","sort","objEquiv","keys","hasSymbols","Symbol","toStr","origDefineProperty","defineProperty","hasPropertyDescriptors","supportsDescriptors","predicate","defineProperties","map","predicates","getOwnPropertySymbols","element","className","classList","_hasClass","setAttribute","baseVal","contains","indexOf","replaceClassName","origClass","classToRemove","replace","RegExp","remove","detector","isIE","version","agent","navigator","userAgent","toLowerCase","v","div","document","createElement","all","getElementsByTagName","innerHTML","undef","isLegacyOpera","window","opera","collection","callback","result","browserDetector","batchProcessor","getState","stateHandler","Error","buildCssTextString","rules","seperator","important","trim","getObject","makeDetectable","debug","OBJECT_STYLE","positionCheckPerformed","style","getComputedStyle","width","offsetWidth","height","offsetHeight","mutateDom","alterPositionStyles","position","setProperty","removeRelativeStyles","property","getNumericalValue","cssText","tabIndex","type","onload","getDocument","contentDocument","checkForObjectDocumentTimeoutId","objectDocument","data","appendChild","startSize","injectObject","addListener","listener","listenerProxy","proxy","attachEvent","defaultView","addEventListener","uninstall","detachEvent","removeChild","idHandler","hasState","scrollbarSizes","child","container","body","insertBefore","firstChild","widthSize","clientWidth","heightSize","clientHeight","getScrollbarSizes","detectionContainerClass","initDocument","targetDocument","styleId","containerClass","getElementById","containerAnimationClass","method","head","styleElement","id","injectStyle","injectScrollStyle","addEvent","el","cb","error","removeEvent","removeEventListener","getExpandElement","childNodes","getShrinkElement","unshift","log","isUnrendered","getStyle","elementStyle","top","right","bottom","left","widthCSS","heightCSS","storeStyle","storeCurrentSize","lastWidth","lastHeight","getWidthOffset","getHeightOffset","getExpandWidth","getExpandHeight","positionScrollbars","expand","shrink","expandWidth","expandHeight","shrinkWidth","getShrinkWidth","shrinkHeight","getShrinkHeight","scrollLeft","scrollTop","injectContainerElement","addAnimationClass","onAnimationStart","onRendered","injectScrollElements","rootContainer","scrollbarWidth","scrollbarHeight","containerContainerStyle","containerStyle","expandStyle","shrinkStyle","expandChildStyle","shrinkChildStyle","containerContainer","expandChild","shrinkChild","dir","onExpandScroll","onShrinkScroll","onExpand","onShrink","registerListenersAndPositionElements","updateChildSizes","getExpandChildElement","updateDetectorElements","done","sizeChanged","areElementsInjected","w","notifyListenersIfNeeded","lastNotifiedWidth","lastNotifiedHeight","listeners","handleScroll","finalizeDomMutation","ready","install","isInShadowRoot","getRootNode","ownerDocument","isInDocument","isDetached","elementUtilsMaker","listenerHandlerMaker","idGeneratorMaker","idHandlerMaker","reporterMaker","batchProcessorMaker","objectStrategyMaker","scrollStrategyMaker","isCollection","toArray","array","isElement","nodeType","idGenerator","defaultIdHandler","globalOptions","callOnAdd","detectionStrategy","eventListenerHandler","elementUtils","desiredStrategy","importantCssRules","strategyOptions","onReadyCallbacks","listenTo","elements","onResizeCallback","elementsReady","onReadyCallback","initState","isDetectable","isBusy","markBusy","markAsDetectable","removeListener","removeAllListeners","cleanState","busy","idCount","generate","eventListeners","getListeners","len","splice","quiet","noop","console","attachFunction","f","ERROR_MESSAGE","funcType","that","target","bound","binder","boundLength","Math","max","boundArgs","Function","Empty","implementation","functionsHaveNames","gOPD","getOwnPropertyDescriptor","functionsHaveConfigurableNames","$bind","boundFunctionsHaveNames","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","getProto","getPrototypeOf","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","ArrayBuffer","iterator","Atomics","BigInt","Boolean","DataView","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","JSON","Map","Number","parseFloat","parseInt","Promise","Proxy","RangeError","Reflect","Set","SharedArrayBuffer","String","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakRef","WeakSet","doEval","gen","LEGACY_ALIASES","$concat","$spliceApply","$replace","$strSlice","$exec","exec","rePropName","reEscapeChar","stringToPath","string","first","last","match","number","quote","subString","getBaseIntrinsic","alias","intrinsicName","parts","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","global","hasArrayLengthDefineBug","origSymbol","hasSymbolSham","sym","symObj","getOwnPropertyNames","syms","propertyIsEnumerable","descriptor","toStringTag","condition","format","c","d","argIndex","framesToPop","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","getDay","tryDateObject","has","isRegexMarker","badStringifier","throwRegexMarker","valueOf","toPrimitive","numberIsNaN","define","getPolyfill","shim","polyfill","keysShim","isArgs","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","o","ctor","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","k","isObject","isFunction","isString","theKeys","skipProto","j","skipConstructor","equalsConstructorPrototypeIfNotBuggy","origKeys","originalKeys","keysWorksWithArguments","str","componentWillMount","getDerivedStateFromProps","prevState","componentWillUpdate","nextState","prevProps","__reactInternalSnapshotFlag","__reactInternalSnapshot","getSnapshotBeforeUpdate","isReactComponent","foundWillMountName","foundWillReceivePropsName","foundWillUpdateName","UNSAFE_componentWillMount","UNSAFE_componentWillReceiveProps","UNSAFE_componentWillUpdate","componentName","displayName","newApiName","componentDidUpdate","maybeSnapshot","snapshot","__suppressDeprecationWarning","instances","resizeDetector","strategy","createResizeDetector","errMsg","defaultConfig","monitorWidth","monitorHeight","refreshRate","refreshMode","noPlaceholder","resizeDetectorStrategy","getDisplayName","WrappedComponent","ReferenceWrapper","Children","only","Placeholder","phProps","React","renderWrapper","SizeMeRenderer","explicitRef","disablePlaceholder","onSize","restProps","renderPlaceholder","renderProps","toRender","ref","withSize","config","_config$monitorHeight","_config$refreshRate","_config$refreshMode","_config$noPlaceholder","_config$resizeDetecto","invariant","refreshDelayStrategy","throttle","debounce","SizeMeRenderWrapper","SizeAwareComponent","_defineProperty","domEl","err","callbackState","current","next","n","getBoundingClientRect","hasSizeChanged","strategisedGetState","strategisedSetState","_createClass","determineStrategy","handleDOMNode","checkIfSizeChanged","found","ReactDOM","findDOMNode","isSameNode","enableSSRBehaviour","noPlaceholders","refCallback","SizeMe","SizeAware","sizeMeConfig","createComponent","_this$props","currentSizeMeConfig","prevSizeMeConfig","isShallowEqual","newObj","_interopRequireWildcard","_addClass","_removeClass","_Transition","_extends","assign","addClass","node","split","removeClass","CSSTransition","_React$Component","onEnter","appearing","getClassNames","removeClasses","onEntering","activeClassName","reflowAndAddClass","onEntered","appearClassName","doneClassName","enterClassName","onExit","onExiting","onExited","isStringClassNames","_proto","_this$getClassNames6","defaultProps","propTypes","_default","_reactDom","_TransitionGroup","ReplaceTransition","_args","handleEnter","handleLifecycle","handleEntering","_len3","_key3","handleEntered","_len4","_key4","handleExit","_len5","_key5","handleExiting","_len6","_key6","handleExited","_len7","_key7","idx","originalArgs","_child$props","inProp","in","excluded","sourceKeys","_objectWithoutPropertiesLoose","_React$Children$toArr","second","cloneElement","EXITING","ENTERED","ENTERING","EXITED","UNMOUNTED","_reactLifecyclesCompat","_TransitionGroupContext","Transition","initialStatus","appear","isMounting","enter","appearStatus","unmountOnExit","mountOnEnter","status","nextCallback","updateStatus","nextStatus","cancelNextCallback","getTimeouts","exit","timeout","mounting","performEnter","performExit","timeouts","enterTimeout","safeSetState","onTransitionEnd","_this3","cancel","setNextCallback","_this4","active","event","doesNotHaveTimeoutOrListener","addEndListener","childProps","contextType","_ChildMapping","_assertThisInitialized","values","TransitionGroup","contextValue","firstRender","mounted","prevChildMapping","getInitialChildMapping","getNextChildMapping","currentChildMapping","getChildMapping","component","childFactory","_CSSTransition","_ReplaceTransition","mergeChildMappings","getProp","nextChildMapping","isValidElement","hasPrev","hasNext","prevChild","isLeaving","mapFn","mapper","prev","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","prop","classNamesShape","timeoutsShape","$Object","hasIndices","ignoreCase","multiline","dotAll","unicode","sticky","flagsBound","calls","TypeErr","regex","proto","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","valueA","valueB","PropTypes","delay","noTrailing","debounceMode","timeoutID","cancelled","lastExec","clearExistingTimeout","wrapper","arguments_","elapsed","now","clear","atBegin","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","getter","definition","g","globalThis","r","_setPrototypeOf","p","_inheritsLoose","timeoutDuration","longerTimeoutBrowsers","isBrowser","called","resolve","then","scheduled","functionToCheck","getStyleComputedProperty","css","getParentNode","nodeName","parentNode","host","getScrollParent","overflow","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","side","upperSide","html","scrollingElement","includeScroll","rect","subtract","modifier","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","getClientRect","offsets","sizes","horizScrollbar","vertScrollbar","getOffsetRectRelativeToArbitraryNode","parent","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","marginRight","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","runModifiers","modifiers","ends","findIndex","cur","enabled","update","isDestroyed","positionFixed","flip","originalPlacement","isCreated","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","isNumeric","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","requested","validPlacements","placements","clockwise","counter","index","reverse","basePlacement","shiftvariation","isVertical","shiftOffsets","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","toValue","index2","parseOffset","transformProp","popperStyles","transform","priority","escapeWithReference","min","floor","opSide","arrowElement","querySelector","sideCapitalized","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","arrow","round","flipped","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","subtractLength","hide","attributes","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","arrowStyles","modifierOptions","Popper","requestAnimationFrame","Defaults","jquery","onLoad","Utils","PopperUtils","ManagerReferenceNodeContext","setRef","safeInvoke","initialStyle","opacity","pointerEvents","initialArrowStyle","InnerPopper","popperNode","innerRef","updatePopperInstance","arrowNode","applyStyle","updateStateModifier","popperInstance","destroyPopperInstance","referenceElement","PopperJS","getOptions","setPopperNode","getPopperStyle","getPopperPlacement","outOfBoundaries","getOutOfBoundariesState","arrowProps","setArrowNode","getArrowStyle","mapToCssModules","cssModule","globalCssModule","omit","omitKeys","Element","DOMElement","propName","targetPropType","tagPropType","$$typeof","TransitionPropTypeKeys","canUseDOM","findDOMElements","isReactRefObj","tag","getTag","selection","querySelectorAll","isArrayOrNodeList","els","getTarget","allElements","_excluded","ownKeys","enumerableOnly","symbols","_objectSpread","getOwnPropertyDescriptors","baseClass","baseClassActive","Fade","Tag","otherProps","transitionProps","pickKeys","pick","isActive","popperClassName","placementPrefix","arrowClassName","hideArrow","isOpen","fallbackPlacement","onClosed","fade","transition","PopperContent","setTargetNode","getTargetNode","getRef","_element","focus","targetNode","getContainerNode","renderChildren","_arrowClassName","_popperClassName","attrs","extendedModifiers","preventOverflow","popperTransition","ReactPopper","disabled","innerClassName","toggle","autohide","show","trigger","DEFAULT_DELAYS","isInDOMSubtree","subtreeRoot","isInDOMSubtrees","subtreeRoots","subTreeRoot","TooltipPopoverWrapper","_targets","currentTargetElement","addTargetEvents","handleDocumentClick","removeTargetEvents","showWithDelay","hideWithDelay","onMouseOverTooltipContent","onMouseLeaveTooltipContent","onEscKeyDown","_isMounted","updateTarget","clearShowTimeout","clearHideTimeout","_hideTimeout","_showTimeout","persist","getDelay","_popover","getCurrentTarget","currentTarget","composedPath","path","triggers","addEventOnTargets","isBubble","removeEventOnTargets","newTarget","from","preventDefault","popperClasses","role","onMouseOver","onMouseLeave","onKeyDown","Tooltip","text","RadioSelection","schema","uiSchema","readonly","onChange","listData","setListData","useState","selected","setSelected","setType","tooltipTarget","setTooltipTarget","setHeight","useEffect","isRadioButtonList","enum","radioButtonListOptions","description","enumDescriptions","image","icons","enumNames","handleSelect","selectedValue","dataset","keyPress","keyCode","hideTooltip","showTooltip","itemID","itemName","getFinalSize","useCallback","heights","includesImage","item","itemValue","replaceAll","minHeight","onClick","onKeyPress","alt","src","onMouseEnter","elementQuerySelector","tooltipTargetElement","scrollWidth","scrollHeight","isTextEllipsisShown","uStoreDucs","displayNames"],"sourceRoot":""}