{"version":3,"sources":["webpack:///./node_modules/object-keys/isArguments.js","webpack:///./node_modules/reactstrap/es/Container.js","webpack:///./node_modules/object-keys/index.js","webpack:///./node_modules/object-is/implementation.js","webpack:///./node_modules/react-transition-group/index.js","webpack:///./node_modules/is-regex/index.js","webpack:///./node_modules/warning/warning.js","webpack:///./node_modules/reactstrap/es/utils.js","webpack:///./node_modules/is-arguments/index.js","webpack:///./node_modules/regexp.prototype.flags/index.js","webpack:///./node_modules/react-side-effect/lib/index.js","webpack:///./node_modules/define-properties/index.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/react-transition-group/utils/ChildMapping.js","webpack:///./node_modules/reactstrap/es/Navbar.js","webpack:///./node_modules/reactstrap/es/Collapse.js","webpack:///./node_modules/reactstrap/es/Nav.js","webpack:///./node_modules/react-popper/lib/esm/Manager.js","webpack:///./node_modules/reactstrap/es/DropdownContext.js","webpack:///./node_modules/reactstrap/es/Dropdown.js","webpack:///./node_modules/reactstrap/es/UncontrolledDropdown.js","webpack:///./node_modules/react-popper/lib/esm/utils.js","webpack:///./node_modules/react-popper/lib/esm/Reference.js","webpack:///./node_modules/reactstrap/es/Button.js","webpack:///./node_modules/reactstrap/es/DropdownToggle.js","webpack:///./node_modules/react-popper/lib/esm/Popper.js","webpack:///./node_modules/reactstrap/es/DropdownMenu.js","webpack:///./node_modules/reactstrap/es/DropdownItem.js","webpack:///./src/components/layout/navbar/navitem.js","webpack:///./src/components/layout/navbar/navbar.js","webpack:///./src/components/layout/footer/footer.js","webpack:///./src/components/layout/layout.js","webpack:///./node_modules/get-intrinsic/index.js","webpack:///./node_modules/function-bind/index.js","webpack:///./node_modules/is-date-object/index.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/shallowequal/index.js","webpack:///./node_modules/regexp.prototype.flags/shim.js","webpack:///./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack:///./node_modules/react-icons/lib/esm/iconsManifest.js","webpack:///./node_modules/react-icons/lib/esm/iconContext.js","webpack:///./node_modules/react-icons/lib/esm/iconBase.js","webpack:///./node_modules/react-transition-group/ReplaceTransition.js","webpack:///./node_modules/call-bind/index.js","webpack:///./node_modules/react-transition-group/Transition.js","webpack:///./node_modules/react-transition-group/CSSTransition.js","webpack:///./node_modules/react-helmet/lib/Helmet.js","webpack:///./node_modules/classnames/index.js","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/react-transition-group/TransitionGroup.js","webpack:///./node_modules/regexp.prototype.flags/polyfill.js","webpack:///./node_modules/call-bind/callBound.js","webpack:///./node_modules/dom-helpers/class/removeClass.js","webpack:///./node_modules/regexp.prototype.flags/implementation.js","webpack:///./node_modules/object-is/polyfill.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/object-is/index.js","webpack:///./node_modules/react-fast-compare/index.js","webpack:///./src/images/icons/ribslogo.png","webpack:///./node_modules/deep-equal/index.js","webpack:///./node_modules/react-helmet/lib/HelmetConstants.js","webpack:///./node_modules/@babel/runtime/helpers/defineProperty.js","webpack:///./node_modules/has/src/index.js","webpack:///./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack:///./node_modules/object-keys/implementation.js","webpack:///./node_modules/react-helmet/lib/HelmetUtils.js","webpack:///./node_modules/global/window.js","webpack:///./src/components/seo.js","webpack:///./node_modules/object-is/shim.js","webpack:///./node_modules/@babel/runtime/helpers/esm/extends.js","webpack:///./node_modules/react-transition-group/utils/PropTypes.js","webpack:///./node_modules/dom-helpers/class/hasClass.js","webpack:///./node_modules/dom-helpers/class/addClass.js","webpack:///./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js"],"names":["toStr","Object","prototype","toString","module","exports","value","str","call","isArgs","length","callee","Container","props","className","cssModule","fluid","Tag","tag","attributes","containerClass","classes","createElement","defaultProps","slice","Array","origKeys","keys","keysShim","o","originalKeys","shim","args","arguments","object","numberIsNaN","a","b","_CSSTransition","_interopRequireDefault","_ReplaceTransition","_TransitionGroup","_Transition","obj","__esModule","default","Transition","TransitionGroup","ReplaceTransition","CSSTransition","hasOwnProperty","regexExec","isRegexMarker","badStringifier","hasToStringTag","Symbol","toStringTag","Function","bind","RegExp","exec","throwRegexMarker","valueOf","toPrimitive","gOPD","getOwnPropertyDescriptor","descriptor","e","warning","globalCssModule","setScrollbarWidth","padding","document","body","style","paddingRight","getOriginalBodyPadding","window","getComputedStyle","parseInt","getPropertyValue","conditionallyUpdateScrollbar","scrollbarWidth","scrollDiv","position","top","width","height","overflow","appendChild","offsetWidth","clientWidth","removeChild","getScrollbarWidth","fixedContent","querySelectorAll","bodyPadding","innerWidth","mapToCssModules","split","map","c","join","omit","omitKeys","result","forEach","key","indexOf","pick","pickKeys","isArray","Element","targetPropType","oneOfType","string","func","propName","componentName","Error","shape","current","any","TransitionTimeouts","$$typeof","symbol","render","arrayOf","Fade","Collapse","Modal","Carousel","TransitionPropTypeKeys","TransitionStatuses","ENTERING","ENTERED","EXITING","EXITED","keyCodes","esc","space","enter","tab","up","down","home","end","n","p","canUseDOM","getTag","undefined","isObject","type","findDOMElements","target","isReactRefObj","isFunction","selection","isArrayOrNodeList","els","getTarget","allElements","focusableElements","$toString","callBound","isStandardArguments","isLegacyArguments","supportsStandardArguments","define","callBind","implementation","getPolyfill","flagsBound","_interopDefault","ex","React","React__default","shallowEqual","_defineProperty","defineProperty","enumerable","configurable","writable","reducePropsToState","handleStateChangeOnClient","mapStateOnServer","WrappedComponent","state","mountedInstances","emitChange","instance","SideEffect","_Component","subClass","superClass","apply","this","create","constructor","__proto__","peek","rewind","recordedState","_proto","shouldComponentUpdate","nextProps","componentWillMount","push","componentDidUpdate","componentWillUnmount","index","splice","Component","displayName","name","getDisplayName","hasSymbols","concat","origDefineProperty","supportsDescriptors","_","x","arePropertyDescriptorsSupported","predicate","fn","defineProperties","predicates","getOwnPropertySymbols","i","isBrowser","navigator","timeoutDuration","longerTimeoutBrowsers","userAgent","debounce","Promise","called","resolve","then","scheduled","setTimeout","functionToCheck","getStyleComputedProperty","element","property","nodeType","css","ownerDocument","defaultView","getParentNode","nodeName","parentNode","host","getScrollParent","_getStyleComputedProp","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","element1root","getScroll","side","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","Math","max","getWindowSizes","classCallCheck","Constructor","TypeError","createClass","protoProps","staticProps","_extends","assign","source","getClientRect","offsets","getBoundingClientRect","sizes","clientHeight","horizScrollbar","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","area","sort","filteredAreas","filter","_ref2","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","y","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","runModifiers","modifiers","data","ends","prop","findIndex","cur","match","console","warn","enabled","update","isDestroyed","arrowStyles","flipped","options","positionFixed","flip","originalPlacement","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","getWindow","setupEventListeners","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","event","callback","scrollParents","isBody","eventsEnabled","enableEventListeners","scheduleUpdate","cancelAnimationFrame","removeEventListener","isNumeric","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","toValue","index2","Defaults","shift","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","setAttribute","onLoad","modifierOptions","Popper","_this","requestAnimationFrame","jquery","Utils","global","PopperUtils","getChildMapping","mergeChildMappings","getInitialChildMapping","onExited","child","_react","cloneElement","in","appear","getProp","exit","getNextChildMapping","prevChildMapping","nextChildMapping","isValidElement","hasPrev","hasNext","prevChild","isLeaving","mapFn","Children","mapper","prev","next","getValueForKey","nextKeysPending","pendingKeys","prevKey","childMapping","nextKey","pendingNextKey","_classNames","expand","light","dark","fixed","sticky","color","getExpandClass","_transitionStatusToCl","ownKeys","enumerableOnly","symbols","sym","_objectSpread","getOwnPropertyDescriptors","isOpen","timeout","transitionStatusToClassHash","getHeight","scrollHeight","onEntering","isAppearing","setState","onEntered","onExit","onExiting","_this2","_this$props","navbar","otherProps","innerRef","transitionProps","childProps","status","collapseClass","getTransitionClass","ref","tabs","pills","vertical","horizontal","justified","fill","card","getVerticalClass","ManagerReferenceNodeContext","ManagerReferenceNodeSetterContext","_React$Component","Manager","_len","_key","newReferenceNode","forceUpdate","Provider","setReferenceNode","DropdownContext","createContext","preventDefaultKeys","Dropdown","addEvents","handleDocumentClick","handleKeyDown","removeEvents","toggle","handleMenuRef","containerRef","createRef","menuRef","getContextValue","direction","dropup","inNavbar","disabled","onMenuRef","componentDidMount","handleProps","prevProps","getContainer","getMenu","getMenuCtrl","_$menuCtrl","getMenuItems","menuContainer","_this3","which","container","menu","clickIsInContainer","clickIsInMenu","_this4","isTargetMenuItem","getAttribute","isTargetMenuCtrl","isTab","tagName","a11y","preventDefault","focus","click","ctrlKey","$menuitems","_$menuitems","_$menuitems3","charPressed","String","fromCharCode","textContent","_omit","group","size","nav","setActiveFromChild","active","addonType","attrs","subItemIsActive","dropdownItem","dropdown","show","onKeyDown","UncontrolledDropdown","defaultOpen","onToggle","unwrapArray","arg","safeInvoke","setRef","InnerReference","Boolean","refHandler","Reference","Consumer","Button","onClick","ariaLabel","block","close","outline","btnOutlineColor","href","defaultAriaLabel","DropdownToggle","context","caret","contextType","initialStyle","opacity","pointerEvents","initialArrowStyle","InnerPopper","popperNode","updatePopperInstance","arrowNode","updateStateModifier","popperInstance","destroyPopperInstance","referenceElement","getOptions","prevState","strict","setPopperNode","getPopperStyle","getPopperPlacement","outOfBoundaries","getOutOfBoundariesState","arrowProps","setArrowNode","getArrowStyle","noFlipModifier","directionPositionMap","DropdownMenu","persist","poperPlacement","poperModifiers","popperPositionFixed","combinedStyle","tabIndex","role","tagRef","createPortal","DropdownItem","getTabIndex","header","text","_this$props2","Navitem","to","url","MyNav","useState","setIsOpen","onscroll","scrollNav","bodyOrder","scrollY","classList","add","remove","query","id","site","siteMetadata","tel","email","rel","twitter","facebook","instagram","src","Logo","alt","aria-label","Footer","Layout","$SyntaxError","SyntaxError","$Function","$TypeError","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","get","gOPDthrows","getProto","getPrototypeOf","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","ArrayBuffer","iterator","Atomics","BigInt","DataView","Date","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","JSON","Map","Number","Proxy","RangeError","ReferenceError","Reflect","Set","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakRef","WeakSet","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","$replace","$strSlice","rePropName","reEscapeChar","stringToPath","first","last","number","quote","subString","getBaseIntrinsic","allowMissing","alias","intrinsicName","doEval","gen","parts","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","desc","getDay","tryDateObject","symObj","getOwnPropertyNames","syms","propertyIsEnumerable","objA","objB","compare","compareContext","ret","keysA","keysB","bHasOwnProperty","idx","valueA","valueB","TypeErr","regex","polyfill","proto","_assertThisInitialized","self","DefaultContext","attr","IconContext","__assign","t","s","__rest","GenIcon","IconBase","Tree2Element","tree","elem","conf","computedSize","title","svgProps","stroke","strokeWidth","xmlns","_reactDom","_args","handleEnter","_len2","_key2","handleLifecycle","handleEntering","_len3","_key3","handleEntered","_len4","_key4","handleExit","_len5","_key5","handleExiting","_len6","_key6","handleExited","_len7","_key7","handler","originalArgs","_child$props","toArray","findDOMNode","inProp","excluded","sourceKeys","_objectWithoutPropertiesLoose","_React$Children$toArr","second","onEnter","propTypes","_default","GetIntrinsic","$apply","$call","$reflectApply","$defineProperty","$max","originalFunction","applyBind","UNMOUNTED","PropTypes","newObj","set","_interopRequireWildcard","_reactLifecyclesCompat","initialStatus","parentGroup","transitionGroup","isMounting","appearStatus","unmountOnExit","mountOnEnter","nextCallback","getChildContext","getDerivedStateFromProps","updateStatus","nextStatus","cancelNextCallback","getTimeouts","mounting","performEnter","performExit","appearing","timeouts","enterTimeout","safeSetState","onTransitionEnd","cancel","nextState","setNextCallback","doesNotHaveTimeoutOrListener","addEndListener","only","noop","contextTypes","childContextTypes","_addClass","_removeClass","addClass","removeClass","getClassNames","removeClasses","activeClassName","reflowAndAddClass","appearClassName","doneClassName","enterClassName","classNames","isStringClassNames","_this$getClassNames6","Helmet","_createClass","_react2","_propTypes2","_reactSideEffect2","_reactFastCompare2","_HelmetUtils","_HelmetConstants","_objectWithoutProperties","_classCallCheck","_possibleConstructorReturn","_class","_temp","HelmetSideEffects","handleClientStateChange","HelmetExport","HelmetWrapper","setPrototypeOf","_inherits","mapNestedChildrenToProps","nestedChildren","TAG_NAMES","SCRIPT","NOSCRIPT","innerHTML","STYLE","cssText","flattenArrayTypeChildren","_extends2","arrayTypeChildren","newChildProps","mapObjectTypeChildren","_extends3","_extends4","newProps","TITLE","titleAttributes","BODY","bodyAttributes","HTML","htmlAttributes","mapArrayTypeChildrenToProps","newFlattenedProps","arrayChildName","_extends5","warnOnInvalidChildren","mapChildrenToProps","convertReactPropstoHtmlAttributes","LINK","META","_props","base","defaultTitle","defer","bool","encodeSpecialCharacters","link","meta","noscript","onChangeClientState","script","titleTemplate","mappedState","baseTag","linkTags","metaTags","noscriptTags","scriptTags","styleTags","renderStatic","argType","origSymbol","hasSymbolSham","_propTypes","_ChildMapping","values","k","firstRender","appeared","mounted","currentChildMapping","component","childFactory","flags","dotAll","$indexOf","replaceClassName","origClass","classToRemove","baseVal","$Object","ignoreCase","multiline","unicode","is","ERROR_MESSAGE","that","binder","boundLength","boundArgs","Empty","keyList","hasProp","hasElementType","equal","arrA","arrB","dateA","dateB","getTime","regexpA","regexpB","error","message","objectKeys","isArguments","isRegex","isDate","deepEqual","actual","expected","opts","isUndefinedOrNull","aIsRegex","bIsRegex","aIsBuffer","isBuffer","bIsBuffer","ka","kb","objEquiv","copy","ATTRIBUTE_NAMES","BASE","HEAD","REACT_TAG_MAP","VALID_TAG_NAMES","TAG_PROPERTIES","CHARSET","CSS_TEXT","HREF","HTTPEQUIV","INNER_HTML","ITEM_PROP","NAME","PROPERTY","REL","SRC","accesskey","charset","class","contenteditable","contextmenu","itemprop","tabindex","HELMET_PROPS","DEFAULT_TITLE","DEFER","ENCODE_SPECIAL_CHARACTERS","ON_CHANGE_CLIENT_STATE","TITLE_TEMPLATE","HTML_TAG_MAP","SELF_CLOSING_TAGS","HELMET_ATTRIBUTE","has","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","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","isString","theKeys","skipProto","j","skipConstructor","equalsConstructorPrototypeIfNotBuggy","_typeof","_objectAssign2","clock","encode","getTitleFromPropsList","propsList","innermostTitle","getInnermostProperty","innermostTemplate","innermostDefaultTitle","getOnChangeClientState","getAttributesFromPropsList","tagType","tagAttrs","getBaseTagFromPropsList","primaryAttributes","innermostBaseTag","lowerCaseAttributeKey","getTagsFromPropsList","approvedSeenTags","approvedTags","instanceTags","instanceSeenTags","primaryAttributeKey","attributeKey","tagUnion","rafPolyfill","now","currentTime","cafPolyfill","clearTimeout","webkitRequestAnimationFrame","mozRequestAnimationFrame","webkitCancelAnimationFrame","mozCancelAnimationFrame","msg","_helmetCallback","commitTagChanges","newState","cb","updateAttributes","updateTitle","tagUpdates","updateTags","addedTags","removedTags","_tagUpdates$tagType","newTags","oldTags","flattenArray","possibleArray","elementTag","getElementsByTagName","helmetAttributeString","helmetAttributes","attributesToRemove","attributeKeys","attribute","indexToSave","_i","tags","headElement","head","tagNodes","indexToDelete","newElement","styleSheet","createTextNode","existingTag","isEqualNode","generateElementAttributesAsString","convertElementAttributestoReactProps","initProps","getMethodsForTag","toComponent","_initProps","attributeString","flattenedTitle","generateTitleAsString","_mappedTag","mappedTag","mappedAttribute","content","dangerouslySetInnerHTML","__html","generateTagsAsReactComponent","attributeHtml","tagContent","isSelfClosing","generateTagsAsString","initAttributes","_ref$title","win","SEO","description","keywords","image","schemaMarkup","defaultDescription","defaultImage","defaultKeywords","seo","Image","lang","stringify","classNamesShape","timeoutsShape","_hasClass"],"mappings":"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","file":"commons-702267da1ca7af9198e5.js","sourcesContent":["'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n var str = toStr.call(value);\n var isArgs = str === '[object Arguments]';\n\n if (!isArgs) {\n isArgs = str !== '[object Array]' && value !== null && typeof value === 'object' && typeof value.length === 'number' && value.length >= 0 && toStr.call(value.callee) === '[object Function]';\n }\n\n return isArgs;\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar defaultProps = {\n tag: 'div'\n};\n\nvar Container = function Container(props) {\n var className = props.className,\n cssModule = props.cssModule,\n fluid = props.fluid,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"fluid\", \"tag\"]);\n\n var containerClass = 'container';\n\n if (fluid === true) {\n containerClass = 'container-fluid';\n } else if (fluid) {\n containerClass = \"container-\" + fluid;\n }\n\n var classes = mapToCssModules(classNames(className, containerClass), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nContainer.defaultProps = defaultProps;\nexport default Container;","'use strict';\n\nvar slice = Array.prototype.slice;\n\nvar isArgs = require('./isArguments');\n\nvar origKeys = Object.keys;\nvar keysShim = origKeys ? function keys(o) {\n return origKeys(o);\n} : require('./implementation');\nvar originalKeys = Object.keys;\n\nkeysShim.shim = function shimObjectKeys() {\n if (Object.keys) {\n var keysWorksWithArguments = function () {\n // Safari 5.0 bug\n var args = Object.keys(arguments);\n return args && args.length === arguments.length;\n }(1, 2);\n\n if (!keysWorksWithArguments) {\n Object.keys = function keys(object) {\n // eslint-disable-line func-name-matching\n if (isArgs(object)) {\n return originalKeys(slice.call(object));\n }\n\n return originalKeys(object);\n };\n }\n } else {\n Object.keys = keysShim;\n }\n\n return Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;","'use strict';\n\nvar numberIsNaN = function numberIsNaN(value) {\n return value !== value;\n};\n\nmodule.exports = function is(a, b) {\n if (a === 0 && b === 0) {\n return 1 / a === 1 / b;\n }\n\n if (a === b) {\n return true;\n }\n\n if (numberIsNaN(a) && numberIsNaN(b)) {\n return true;\n }\n\n return false;\n};","\"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) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nmodule.exports = {\n Transition: _Transition.default,\n TransitionGroup: _TransitionGroup.default,\n ReplaceTransition: _ReplaceTransition.default,\n CSSTransition: _CSSTransition.default\n};","'use strict';\n\nvar hasSymbols = require('has-symbols')();\n\nvar hasToStringTag = hasSymbols && typeof Symbol.toStringTag === 'symbol';\nvar hasOwnProperty;\nvar regexExec;\nvar isRegexMarker;\nvar badStringifier;\n\nif (hasToStringTag) {\n hasOwnProperty = Function.call.bind(Object.prototype.hasOwnProperty);\n regexExec = Function.call.bind(RegExp.prototype.exec);\n isRegexMarker = {};\n\n var throwRegexMarker = function throwRegexMarker() {\n throw isRegexMarker;\n };\n\n badStringifier = {\n toString: throwRegexMarker,\n valueOf: throwRegexMarker\n };\n\n if (typeof Symbol.toPrimitive === 'symbol') {\n badStringifier[Symbol.toPrimitive] = throwRegexMarker;\n }\n}\n\nvar toStr = Object.prototype.toString;\nvar gOPD = Object.getOwnPropertyDescriptor;\nvar regexClass = '[object RegExp]';\nmodule.exports = hasToStringTag // eslint-disable-next-line consistent-return\n? function isRegex(value) {\n if (!value || typeof value !== 'object') {\n return false;\n }\n\n var descriptor = gOPD(value, 'lastIndex');\n var hasLastIndexDataProperty = descriptor && hasOwnProperty(descriptor, 'value');\n\n if (!hasLastIndexDataProperty) {\n return false;\n }\n\n try {\n regexExec(value, badStringifier);\n } catch (e) {\n return e === isRegexMarker;\n }\n} : function isRegex(value) {\n // In older browsers, typeof regex incorrectly returns 'function'\n if (!value || typeof value !== 'object' && typeof value !== 'function') {\n return false;\n }\n\n return toStr.call(value) === regexClass;\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","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\"])'];","'use strict';\n\nvar hasToStringTag = typeof Symbol === 'function' && typeof Symbol.toStringTag === 'symbol';\n\nvar callBound = require('call-bind/callBound');\n\nvar $toString = callBound('Object.prototype.toString');\n\nvar isStandardArguments = function isArguments(value) {\n if (hasToStringTag && value && typeof value === 'object' && Symbol.toStringTag in value) {\n return false;\n }\n\n return $toString(value) === '[object Arguments]';\n};\n\nvar isLegacyArguments = function isArguments(value) {\n if (isStandardArguments(value)) {\n return true;\n }\n\n return value !== null && typeof value === 'object' && typeof value.length === 'number' && value.length >= 0 && $toString(value) !== '[object Array]' && $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = function () {\n return isStandardArguments(arguments);\n}();\n\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;","'use strict';\n\nvar define = require('define-properties');\n\nvar callBind = require('call-bind');\n\nvar implementation = require('./implementation');\n\nvar getPolyfill = require('./polyfill');\n\nvar shim = require('./shim');\n\nvar flagsBound = callBind(implementation);\ndefine(flagsBound, {\n getPolyfill: getPolyfill,\n implementation: implementation,\n shim: shim\n});\nmodule.exports = flagsBound;","'use strict';\n\nfunction _interopDefault(ex) {\n return ex && typeof ex === 'object' && 'default' in ex ? ex['default'] : ex;\n}\n\nvar React = require('react');\n\nvar React__default = _interopDefault(React);\n\nvar shallowEqual = _interopDefault(require('shallowequal'));\n\nfunction _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\n return obj;\n}\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\n\nfunction withSideEffect(reducePropsToState, handleStateChangeOnClient, mapStateOnServer) {\n if (typeof reducePropsToState !== 'function') {\n throw new Error('Expected reducePropsToState to be a function.');\n }\n\n if (typeof handleStateChangeOnClient !== 'function') {\n throw new Error('Expected handleStateChangeOnClient to be a function.');\n }\n\n if (typeof mapStateOnServer !== 'undefined' && typeof mapStateOnServer !== 'function') {\n throw new Error('Expected mapStateOnServer to either be undefined or a function.');\n }\n\n function getDisplayName(WrappedComponent) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n }\n\n return function wrap(WrappedComponent) {\n if (typeof WrappedComponent !== 'function') {\n throw new Error('Expected WrappedComponent to be a React component.');\n }\n\n var mountedInstances = [];\n var state;\n\n function emitChange() {\n state = reducePropsToState(mountedInstances.map(function (instance) {\n return instance.props;\n }));\n\n if (SideEffect.canUseDOM) {\n handleStateChangeOnClient(state);\n } else if (mapStateOnServer) {\n state = mapStateOnServer(state);\n }\n }\n\n var SideEffect = /*#__PURE__*/function (_Component) {\n _inheritsLoose(SideEffect, _Component);\n\n function SideEffect() {\n return _Component.apply(this, arguments) || this;\n } // Try to use displayName of wrapped component\n // Expose canUseDOM so tests can monkeypatch it\n\n\n SideEffect.peek = function peek() {\n return state;\n };\n\n SideEffect.rewind = function rewind() {\n if (SideEffect.canUseDOM) {\n throw new Error('You may only call rewind() on the server. Call peek() to read the current state.');\n }\n\n var recordedState = state;\n state = undefined;\n mountedInstances = [];\n return recordedState;\n };\n\n var _proto = SideEffect.prototype;\n\n _proto.shouldComponentUpdate = function shouldComponentUpdate(nextProps) {\n return !shallowEqual(nextProps, this.props);\n };\n\n _proto.componentWillMount = function componentWillMount() {\n mountedInstances.push(this);\n emitChange();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate() {\n emitChange();\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n var index = mountedInstances.indexOf(this);\n mountedInstances.splice(index, 1);\n emitChange();\n };\n\n _proto.render = function render() {\n return React__default.createElement(WrappedComponent, this.props);\n };\n\n return SideEffect;\n }(React.Component);\n\n _defineProperty(SideEffect, \"displayName\", \"SideEffect(\" + getDisplayName(WrappedComponent) + \")\");\n\n _defineProperty(SideEffect, \"canUseDOM\", canUseDOM);\n\n return SideEffect;\n };\n}\n\nmodule.exports = withSideEffect;","'use strict';\n\nvar keys = require('object-keys');\n\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol('foo') === 'symbol';\nvar toStr = Object.prototype.toString;\nvar concat = Array.prototype.concat;\nvar origDefineProperty = Object.defineProperty;\n\nvar isFunction = function isFunction(fn) {\n return typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function arePropertyDescriptorsSupported() {\n var obj = {};\n\n try {\n origDefineProperty(obj, 'x', {\n enumerable: false,\n value: obj\n }); // eslint-disable-next-line no-unused-vars, no-restricted-syntax\n\n for (var _ in obj) {\n // jscs:ignore disallowUnusedVariables\n return false;\n }\n\n return obj.x === obj;\n } catch (e) {\n /* this is IE 8. */\n return false;\n }\n};\n\nvar supportsDescriptors = origDefineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function defineProperty(object, name, value, predicate) {\n if (name in object && (!isFunction(predicate) || !predicate())) {\n return;\n }\n\n if (supportsDescriptors) {\n origDefineProperty(object, name, {\n configurable: true,\n enumerable: false,\n value: value,\n writable: true\n });\n } else {\n object[name] = value;\n }\n};\n\nvar defineProperties = function defineProperties(object, map) {\n var predicates = arguments.length > 2 ? arguments[2] : {};\n var props = keys(map);\n\n if (hasSymbols) {\n props = concat.call(props, Object.getOwnPropertySymbols(map));\n }\n\n for (var i = 0; i < props.length; i += 1) {\n defineProperty(object, props[i], map[props[i]], predicates[props[i]]);\n }\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\nmodule.exports = defineProperties;","import \"core-js/modules/es.array.reduce.js\";\n\n/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\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*/\n\nvar debounce = supportsMicroTasks ? microtaskDebounce : 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 */\n\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\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 */\n\n\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n } // NOTE: 1 DOM access here\n\n\n var window = element.ownerDocument.defaultView;\n var 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 */\n\n\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n\n return element.parentNode || element.host;\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 */\n\n\nfunction 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\n case '#document':\n return element.body;\n } // Firefox want us to check `-x` and `-y` variations as well\n\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\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 */\n\n\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\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 */\n\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n\n if (version === 10) {\n return isIE10;\n }\n\n return isIE11 || isIE10;\n}\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 */\n\n\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null; // NOTE: 1 DOM access here\n\n var offsetParent = element.offsetParent || null; // Skip hidden elements which don't have an offsetParent\n\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n } // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n\n\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\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 */\n\n\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\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 */\n\n\nfunction 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 } // Here we make sure to give as \"start\" the element that comes first in the DOM\n\n\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1; // Get common ancestor container\n\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer; // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n } // one of the nodes is inside shadowDOM, find which one\n\n\n var element1root = getRoot(element1);\n\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\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 */\n\n\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\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 */\n\n\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var 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\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty = 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\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\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 */\n\n\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\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 */\n\n\nfunction getBoundingClientRect(element) {\n var rect = {}; // 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\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n }; // subtract scrollbar size from sizes\n\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height; // 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\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth); // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n\n var 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; // 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\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft; // Attach marginTop and marginLeft because in some circumstances we may need them\n\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n return getClientRect(offset);\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 */\n\n\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n\n var parentNode = getParentNode(element);\n\n if (!parentNode) {\n return false;\n }\n\n return isFixed(parentNode);\n}\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\n\nfunction 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\n var el = element.parentElement;\n\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n\n return el || document.documentElement;\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 */\n\n\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; // NOTE: 1 DOM access here\n\n var boundaries = {\n top: 0,\n left: 0\n };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); // Handle viewport case\n\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n\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 var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); // In case of HTML, we need a different computation\n\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\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 } // Add paddings\n\n\n padding = padding || 0;\n var 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 return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n return width * height;\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 */\n\n\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n var 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 var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n var variation = placement.split('-')[1];\n return computedPlacement + (variation ? '-' + variation : '');\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 */\n\n\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var 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 */\n\n\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var 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 */\n\n\nfunction getOppositePlacement(placement) {\n var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\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 */\n\n\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0]; // Get popper node sizes\n\n var popperRect = getOuterSizes(popper); // Add position, width and height to our offsets object\n\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n }; // depending by the popper placement we have to compute its offsets slightly differently\n\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = 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 */\n\n\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n } // use `filter` to obtain the same behavior of `find`\n\n\n return arr.filter(check)[0];\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 */\n\n\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n } // use `find` + `indexOf` if `findIndex` isn't supported\n\n\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\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 */\n\n\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n\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 data = fn(data, modifier);\n }\n });\n return data;\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 */\n\n\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n }; // compute reference element offsets\n\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); // 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\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); // store the computed placement inside `originalPlacement`\n\n data.originalPlacement = data.placement;\n data.positionFixed = this.options.positionFixed; // compute the popper offsets\n\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; // run the modifiers\n\n data = runModifiers(this.modifiers, data); // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n\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 */\n\n\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return 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 */\n\n\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n\n return null;\n}\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\n\n\nfunction destroy() {\n this.state.isDestroyed = true; // touch DOM only if `applyStyle` modifier is enabled\n\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(); // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n\n return this;\n}\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\n\n\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, {\n passive: true\n });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n\n scrollParents.push(target);\n}\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, {\n passive: true\n }); // Scroll event listener on scroll parents\n\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n return state;\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 */\n\n\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound); // Remove scroll event listener on scroll parents\n\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n }); // Reset state\n\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\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 */\n\n\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\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 */\n\n\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\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 */\n\n\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = ''; // add unit if the value is numeric and is one of the following\n\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n\n element.style[prop] = styles[prop] + unit;\n });\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 */\n\n\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\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 */\n\n\nfunction 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); // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n\n setAttributes(data.instance.popper, data.attributes); // if arrowElement is defined and arrowStyles has some properties\n\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\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 */\n\n\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); // 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\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n popper.setAttribute('x-placement', placement); // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n\n setStyles(popper, {\n position: options.positionFixed ? 'fixed' : 'absolute'\n });\n return options;\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 */\n\n\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\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 */\n\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper; // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent); // Styles\n\n var styles = {\n position: popper.position\n };\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right'; // 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\n var prefixedProperty = getSupportedPropertyName('transform'); // 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\n var left = void 0,\n top = void 0;\n\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\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\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 var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n } // Attributes\n\n\n var attributes = {\n 'x-placement': data.placement\n }; // Update `data` attributes, styles and arrowStyles\n\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n return data;\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 */\n\n\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n\n var requested = '`' + requestedName + '`';\n console.warn(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 * @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 */\n\n\nfunction arrow(data, options) {\n var _data$offsets$arrow; // arrow depends on keepTogether in order to work\n\n\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element; // if arrowElement is a string, suppose it's a CSS selector\n\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement); // if arrowElement is not found, don't run the modifier\n\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('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len]; //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n // top/left side\n\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n } // bottom/right side\n\n\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n\n data.offsets.popper = getClientRect(data.offsets.popper); // compute center of the popper\n\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; // prevent arrowElement from being placed not contiguously to its popper\n\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\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 */\n\n\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n\n return variation;\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 */\n\n\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; // Get rid of `auto` `auto-start` and `auto-end`\n\nvar validPlacements = placements.slice(3);\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 */\n\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\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 */\n\nfunction 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 var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (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 var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference; // using floor because the reference offsets may contain decimals we are not going to consider here\n\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; // flip the variation if required\n\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; // flips variation if reference element overflows boundaries\n\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); // flips variation if popper content overflows boundaries\n\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n var 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 : ''); // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\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 */\n\n\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\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 */\n\n\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2]; // If it's not a number it's an operator, I guess\n\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var 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 var size = void 0;\n\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, 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 * 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 */\n\n\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0]; // 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\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; // 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\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\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\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n } // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n\n\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; // Convert the values with units to absolute pixels to allow our computations\n\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (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 }, []) // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n }); // Loop trough the offsets arrays and execute the operations\n\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\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 */\n\n\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var basePlacement = placement.split('-')[0];\n var offsets = void 0;\n\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/**\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 */\n\n\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); // 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\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\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\n\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n options.boundaries = boundaries;\n var order = options.priority;\n var popper = data.offsets.popper;\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n\n return defineProperty({}, mainSide, value);\n }\n };\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n data.offsets.popper = popper;\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 */\n\n\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1]; // if shift shiftvariation is specified, run the modifier\n\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\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 */\n\n\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\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 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 */\n\n\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n return data;\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 */\n\n\nvar modifiers = {\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: offset,\n\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n\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 /**\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 /**\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: arrow,\n\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: flip,\n\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 /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n\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 /**\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 /**\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\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: computeStyle,\n\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 /**\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 /**\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\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: applyStyle,\n\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n\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 * 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/**\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 */\n\nvar Defaults = {\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: function 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: function 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: modifiers\n};\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n// Utils\n// Methods\n\nvar Popper = function () {\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 function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n }; // make update() debounced, so that it only runs at most once-per-tick\n\n\n this.update = debounce(this.update.bind(this)); // with {} we create a new object with the options inside it\n\n this.options = _extends({}, Popper.Defaults, options); // init state\n\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n }; // get reference and popper elements (allow jQuery wrappers)\n\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper; // Deep merge modifiers options\n\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n }); // Refactoring modifiers' list (Object => Array)\n\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n }) // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\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\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n }); // fire the first update to position the popper in the right place\n\n this.update();\n var eventsEnabled = this.options.eventsEnabled;\n\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 } // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\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\n }]);\n return Popper;\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\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\nexport default Popper;","\"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 * 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 */\n\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}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar defaultProps = {\n tag: 'nav',\n expand: false\n};\n\nvar getExpandClass = function getExpandClass(expand) {\n if (expand === false) {\n return false;\n } else if (expand === true || expand === 'xs') {\n return 'navbar-expand';\n }\n\n return \"navbar-expand-\" + expand;\n};\n\nvar Navbar = function Navbar(props) {\n var _classNames;\n\n var expand = props.expand,\n className = props.className,\n cssModule = props.cssModule,\n light = props.light,\n dark = props.dark,\n fixed = props.fixed,\n sticky = props.sticky,\n color = props.color,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"expand\", \"className\", \"cssModule\", \"light\", \"dark\", \"fixed\", \"sticky\", \"color\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, 'navbar', getExpandClass(expand), (_classNames = {\n 'navbar-light': light,\n 'navbar-dark': dark\n }, _classNames[\"bg-\" + color] = color, _classNames[\"fixed-\" + fixed] = fixed, _classNames[\"sticky-\" + sticky] = sticky, _classNames)), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nNavbar.defaultProps = defaultProps;\nexport default Navbar;","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\";\n\nvar _transitionStatusToCl;\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nimport React, { Component } from 'react';\nimport classNames from 'classnames';\nimport { Transition } from 'react-transition-group';\nimport { mapToCssModules, omit, pick, TransitionTimeouts, TransitionPropTypeKeys, TransitionStatuses, tagPropType } from './utils';\n\nvar defaultProps = _objectSpread(_objectSpread({}, Transition.defaultProps), {}, {\n isOpen: false,\n appear: false,\n enter: true,\n exit: true,\n tag: 'div',\n timeout: TransitionTimeouts.Collapse\n});\n\nvar transitionStatusToClassHash = (_transitionStatusToCl = {}, _transitionStatusToCl[TransitionStatuses.ENTERING] = 'collapsing', _transitionStatusToCl[TransitionStatuses.ENTERED] = 'collapse show', _transitionStatusToCl[TransitionStatuses.EXITING] = 'collapsing', _transitionStatusToCl[TransitionStatuses.EXITED] = 'collapse', _transitionStatusToCl);\n\nfunction getTransitionClass(status) {\n return transitionStatusToClassHash[status] || 'collapse';\n}\n\nfunction getHeight(node) {\n return node.scrollHeight;\n}\n\nvar Collapse = /*#__PURE__*/function (_Component) {\n _inheritsLoose(Collapse, _Component);\n\n function Collapse(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.state = {\n height: null\n };\n ['onEntering', 'onEntered', 'onExit', 'onExiting', 'onExited'].forEach(function (name) {\n _this[name] = _this[name].bind(_assertThisInitialized(_this));\n });\n return _this;\n }\n\n var _proto = Collapse.prototype;\n\n _proto.onEntering = function onEntering(node, isAppearing) {\n this.setState({\n height: getHeight(node)\n });\n this.props.onEntering(node, isAppearing);\n };\n\n _proto.onEntered = function onEntered(node, isAppearing) {\n this.setState({\n height: null\n });\n this.props.onEntered(node, isAppearing);\n };\n\n _proto.onExit = function onExit(node) {\n this.setState({\n height: getHeight(node)\n });\n this.props.onExit(node);\n };\n\n _proto.onExiting = function onExiting(node) {\n // getting this variable triggers a reflow\n var _unused = node.offsetHeight; // eslint-disable-line no-unused-vars\n\n this.setState({\n height: 0\n });\n this.props.onExiting(node);\n };\n\n _proto.onExited = function onExited(node) {\n this.setState({\n height: null\n });\n this.props.onExited(node);\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n Tag = _this$props.tag,\n isOpen = _this$props.isOpen,\n className = _this$props.className,\n navbar = _this$props.navbar,\n cssModule = _this$props.cssModule,\n children = _this$props.children,\n innerRef = _this$props.innerRef,\n otherProps = _objectWithoutPropertiesLoose(_this$props, [\"tag\", \"isOpen\", \"className\", \"navbar\", \"cssModule\", \"children\", \"innerRef\"]);\n\n var height = this.state.height;\n var transitionProps = pick(otherProps, TransitionPropTypeKeys);\n var childProps = omit(otherProps, TransitionPropTypeKeys);\n return /*#__PURE__*/React.createElement(Transition, _extends({}, transitionProps, {\n in: isOpen,\n onEntering: this.onEntering,\n onEntered: this.onEntered,\n onExit: this.onExit,\n onExiting: this.onExiting,\n onExited: this.onExited\n }), function (status) {\n var collapseClass = getTransitionClass(status);\n var classes = mapToCssModules(classNames(className, collapseClass, navbar && 'navbar-collapse'), cssModule);\n var style = height === null ? null : {\n height: height\n };\n return /*#__PURE__*/React.createElement(Tag, _extends({}, childProps, {\n style: _objectSpread(_objectSpread({}, childProps.style), style),\n className: classes,\n ref: _this2.props.innerRef\n }), children);\n });\n };\n\n return Collapse;\n}(Component);\n\nCollapse.defaultProps = defaultProps;\nexport default Collapse;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport React from 'react';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar defaultProps = {\n tag: 'ul',\n vertical: false\n};\n\nvar getVerticalClass = function getVerticalClass(vertical) {\n if (vertical === false) {\n return false;\n } else if (vertical === true || vertical === 'xs') {\n return 'flex-column';\n }\n\n return \"flex-\" + vertical + \"-column\";\n};\n\nvar Nav = function Nav(props) {\n var className = props.className,\n cssModule = props.cssModule,\n tabs = props.tabs,\n pills = props.pills,\n vertical = props.vertical,\n horizontal = props.horizontal,\n justified = props.justified,\n fill = props.fill,\n navbar = props.navbar,\n card = props.card,\n Tag = props.tag,\n attributes = _objectWithoutPropertiesLoose(props, [\"className\", \"cssModule\", \"tabs\", \"pills\", \"vertical\", \"horizontal\", \"justified\", \"fill\", \"navbar\", \"card\", \"tag\"]);\n\n var classes = mapToCssModules(classNames(className, navbar ? 'navbar-nav' : 'nav', horizontal ? \"justify-content-\" + horizontal : false, getVerticalClass(vertical), {\n 'nav-tabs': tabs,\n 'card-header-tabs': card && tabs,\n 'nav-pills': pills,\n 'card-header-pills': card && pills,\n 'nav-justified': justified,\n 'nav-fill': fill\n }), cssModule);\n return /*#__PURE__*/React.createElement(Tag, _extends({}, attributes, {\n className: classes\n }));\n};\n\nNav.defaultProps = defaultProps;\nexport default Nav;","import _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport createContext from 'create-react-context';\nexport var ManagerReferenceNodeContext = createContext();\nexport var ManagerReferenceNodeSetterContext = createContext();\n\nvar Manager = /*#__PURE__*/function (_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(_this), \"referenceNode\", void 0);\n\n _defineProperty(_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 };","import React from 'react';\n/**\n * DropdownContext\n * {\n * toggle: PropTypes.func.isRequired,\n * isOpen: PropTypes.bool.isRequired,\n * direction: PropTypes.oneOf(['up', 'down', 'left', 'right']).isRequired,\n * inNavbar: PropTypes.bool.isRequired,\n * disabled: PropTypes.bool\n * }\n */\n\nexport var DropdownContext = /*#__PURE__*/React.createContext({});","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\";\n/* eslint react/no-find-dom-node: 0 */\n// https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-find-dom-node.md\n\nimport React from 'react';\nimport { Manager } from 'react-popper';\nimport classNames from 'classnames';\nimport { DropdownContext } from './DropdownContext';\nimport { mapToCssModules, omit, keyCodes, tagPropType } from './utils';\nvar defaultProps = {\n a11y: true,\n isOpen: false,\n direction: 'down',\n nav: false,\n active: false,\n addonType: false,\n inNavbar: false,\n setActiveFromChild: false\n};\nvar preventDefaultKeys = [keyCodes.space, keyCodes.enter, keyCodes.up, keyCodes.down, keyCodes.end, keyCodes.home];\n\nvar Dropdown = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Dropdown, _React$Component);\n\n function Dropdown(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.addEvents = _this.addEvents.bind(_assertThisInitialized(_this));\n _this.handleDocumentClick = _this.handleDocumentClick.bind(_assertThisInitialized(_this));\n _this.handleKeyDown = _this.handleKeyDown.bind(_assertThisInitialized(_this));\n _this.removeEvents = _this.removeEvents.bind(_assertThisInitialized(_this));\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n _this.handleMenuRef = _this.handleMenuRef.bind(_assertThisInitialized(_this));\n _this.containerRef = /*#__PURE__*/React.createRef();\n _this.menuRef = /*#__PURE__*/React.createRef();\n return _this;\n }\n\n var _proto = Dropdown.prototype;\n\n _proto.handleMenuRef = function handleMenuRef(menuRef) {\n this.menuRef.current = menuRef;\n };\n\n _proto.getContextValue = function getContextValue() {\n return {\n toggle: this.toggle,\n isOpen: this.props.isOpen,\n direction: this.props.direction === 'down' && this.props.dropup ? 'up' : this.props.direction,\n inNavbar: this.props.inNavbar,\n disabled: this.props.disabled,\n // Callback that should be called by DropdownMenu to provide a ref to\n // a HTML tag that's used for the DropdownMenu\n onMenuRef: this.handleMenuRef\n };\n };\n\n _proto.componentDidMount = function componentDidMount() {\n this.handleProps();\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.isOpen !== prevProps.isOpen) {\n this.handleProps();\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n this.removeEvents();\n };\n\n _proto.getContainer = function getContainer() {\n return this.containerRef.current;\n };\n\n _proto.getMenu = function getMenu() {\n return this.menuRef.current;\n };\n\n _proto.getMenuCtrl = function getMenuCtrl() {\n if (this._$menuCtrl) return this._$menuCtrl;\n this._$menuCtrl = this.getContainer().querySelector('[aria-expanded]');\n return this._$menuCtrl;\n };\n\n _proto.getMenuItems = function getMenuItems() {\n // In a real menu with a child DropdownMenu, `this.getMenu()` should never\n // be null, but it is sometimes null in tests. To mitigate that, we just\n // use `this.getContainer()` as the fallback `menuContainer`.\n var menuContainer = this.getMenu() || this.getContainer();\n return [].slice.call(menuContainer.querySelectorAll('[role=\"menuitem\"]'));\n };\n\n _proto.addEvents = function addEvents() {\n var _this2 = this;\n\n ['click', 'touchstart', 'keyup'].forEach(function (event) {\n return document.addEventListener(event, _this2.handleDocumentClick, true);\n });\n };\n\n _proto.removeEvents = function removeEvents() {\n var _this3 = this;\n\n ['click', 'touchstart', 'keyup'].forEach(function (event) {\n return document.removeEventListener(event, _this3.handleDocumentClick, true);\n });\n };\n\n _proto.handleDocumentClick = function handleDocumentClick(e) {\n if (e && (e.which === 3 || e.type === 'keyup' && e.which !== keyCodes.tab)) return;\n var container = this.getContainer();\n var menu = this.getMenu();\n var clickIsInContainer = container.contains(e.target) && container !== e.target;\n var clickIsInMenu = menu && menu.contains(e.target) && menu !== e.target;\n\n if ((clickIsInContainer || clickIsInMenu) && (e.type !== 'keyup' || e.which === keyCodes.tab)) {\n return;\n }\n\n this.toggle(e);\n };\n\n _proto.handleKeyDown = function handleKeyDown(e) {\n var _this4 = this;\n\n var isTargetMenuItem = e.target.getAttribute('role') === 'menuitem';\n var isTargetMenuCtrl = this.getMenuCtrl() === e.target;\n var isTab = keyCodes.tab === e.which;\n\n if (/input|textarea/i.test(e.target.tagName) || isTab && !this.props.a11y || isTab && !(isTargetMenuItem || isTargetMenuCtrl)) {\n return;\n }\n\n if (preventDefaultKeys.indexOf(e.which) !== -1 || e.which >= 48 && e.which <= 90) {\n e.preventDefault();\n }\n\n if (this.props.disabled) return;\n\n if (isTargetMenuCtrl) {\n if ([keyCodes.space, keyCodes.enter, keyCodes.up, keyCodes.down].indexOf(e.which) > -1) {\n // Open the menu (if not open) and focus the first menu item\n if (!this.props.isOpen) {\n this.toggle(e);\n }\n\n setTimeout(function () {\n return _this4.getMenuItems()[0].focus();\n });\n } else if (this.props.isOpen && isTab) {\n // Focus the first menu item if tabbing from an open menu. We need this\n // for cases where the DropdownMenu sets a custom container, which may\n // not be the natural next item to tab to from the DropdownToggle.\n e.preventDefault();\n this.getMenuItems()[0].focus();\n } else if (this.props.isOpen && e.which === keyCodes.esc) {\n this.toggle(e);\n }\n }\n\n if (this.props.isOpen && e.target.getAttribute('role') === 'menuitem') {\n if ([keyCodes.tab, keyCodes.esc].indexOf(e.which) > -1) {\n this.toggle(e);\n this.getMenuCtrl().focus();\n } else if ([keyCodes.space, keyCodes.enter].indexOf(e.which) > -1) {\n e.target.click();\n this.getMenuCtrl().focus();\n } else if ([keyCodes.down, keyCodes.up].indexOf(e.which) > -1 || [keyCodes.n, keyCodes.p].indexOf(e.which) > -1 && e.ctrlKey) {\n var $menuitems = this.getMenuItems();\n var index = $menuitems.indexOf(e.target);\n\n if (keyCodes.up === e.which || keyCodes.p === e.which && e.ctrlKey) {\n index = index !== 0 ? index - 1 : $menuitems.length - 1;\n } else if (keyCodes.down === e.which || keyCodes.n === e.which && e.ctrlKey) {\n index = index === $menuitems.length - 1 ? 0 : index + 1;\n }\n\n $menuitems[index].focus();\n } else if (keyCodes.end === e.which) {\n var _$menuitems = this.getMenuItems();\n\n _$menuitems[_$menuitems.length - 1].focus();\n } else if (keyCodes.home === e.which) {\n var _$menuitems2 = this.getMenuItems();\n\n _$menuitems2[0].focus();\n } else if (e.which >= 48 && e.which <= 90) {\n var _$menuitems3 = this.getMenuItems();\n\n var charPressed = String.fromCharCode(e.which).toLowerCase();\n\n for (var i = 0; i < _$menuitems3.length; i += 1) {\n var firstLetter = _$menuitems3[i].textContent && _$menuitems3[i].textContent[0].toLowerCase();\n\n if (firstLetter === charPressed) {\n _$menuitems3[i].focus();\n\n break;\n }\n }\n }\n }\n };\n\n _proto.handleProps = function handleProps() {\n if (this.props.isOpen) {\n this.addEvents();\n } else {\n this.removeEvents();\n }\n };\n\n _proto.toggle = function toggle(e) {\n if (this.props.disabled) {\n return e && e.preventDefault();\n }\n\n return this.props.toggle(e);\n };\n\n _proto.render = function render() {\n var _classNames, _ref;\n\n var _omit = omit(this.props, ['toggle', 'disabled', 'inNavbar', 'a11y']),\n className = _omit.className,\n cssModule = _omit.cssModule,\n direction = _omit.direction,\n isOpen = _omit.isOpen,\n group = _omit.group,\n size = _omit.size,\n nav = _omit.nav,\n setActiveFromChild = _omit.setActiveFromChild,\n active = _omit.active,\n addonType = _omit.addonType,\n tag = _omit.tag,\n attrs = _objectWithoutPropertiesLoose(_omit, [\"className\", \"cssModule\", \"direction\", \"isOpen\", \"group\", \"size\", \"nav\", \"setActiveFromChild\", \"active\", \"addonType\", \"tag\"]);\n\n var Tag = tag || (nav ? 'li' : 'div');\n var subItemIsActive = false;\n\n if (setActiveFromChild) {\n React.Children.map(this.props.children[1].props.children, function (dropdownItem) {\n if (dropdownItem && dropdownItem.props.active) subItemIsActive = true;\n });\n }\n\n var classes = mapToCssModules(classNames(className, direction !== 'down' && \"drop\" + direction, nav && active ? 'active' : false, setActiveFromChild && subItemIsActive ? 'active' : false, (_classNames = {}, _classNames[\"input-group-\" + addonType] = addonType, _classNames['btn-group'] = group, _classNames[\"btn-group-\" + size] = !!size, _classNames.dropdown = !group && !addonType, _classNames.show = isOpen, _classNames['nav-item'] = nav, _classNames)), cssModule);\n return /*#__PURE__*/React.createElement(DropdownContext.Provider, {\n value: this.getContextValue()\n }, /*#__PURE__*/React.createElement(Manager, null, /*#__PURE__*/React.createElement(Tag, _extends({}, attrs, (_ref = {}, _ref[typeof Tag === 'string' ? 'ref' : 'innerRef'] = this.containerRef, _ref), {\n onKeyDown: this.handleKeyDown,\n className: classes\n }))));\n };\n\n return Dropdown;\n}(React.Component);\n\nDropdown.defaultProps = defaultProps;\nexport default Dropdown;","import _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/esm/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nimport React, { Component } from 'react';\nimport Dropdown from './Dropdown';\nimport { omit } from './utils';\nvar omitKeys = ['defaultOpen'];\n\nvar UncontrolledDropdown = /*#__PURE__*/function (_Component) {\n _inheritsLoose(UncontrolledDropdown, _Component);\n\n function UncontrolledDropdown(props) {\n var _this;\n\n _this = _Component.call(this, props) || this;\n _this.state = {\n isOpen: props.defaultOpen || false\n };\n _this.toggle = _this.toggle.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = UncontrolledDropdown.prototype;\n\n _proto.toggle = function toggle(e) {\n this.setState({\n isOpen: !this.state.isOpen\n });\n\n if (this.props.onToggle) {\n this.props.onToggle(e, !this.state.isOpen);\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Dropdown, _extends({\n isOpen: this.state.isOpen,\n toggle: this.toggle\n }, omit(this.props, omitKeys)));\n };\n\n return UncontrolledDropdown;\n}(Component);\n\nexport { UncontrolledDropdown 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 _extends from \"@babel/runtime/helpers/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\nimport _defineProperty from \"@babel/runtime/helpers/defineProperty\";\nimport * as React from 'react';\nimport warning from 'warning';\nimport { ManagerReferenceNodeSetterContext } from './Manager';\nimport { safeInvoke, unwrapArray, setRef } from './utils';\n\nvar InnerReference = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(InnerReference, _React$Component);\n\n function InnerReference() {\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(_this), \"refHandler\", function (node) {\n setRef(_this.props.innerRef, node);\n safeInvoke(_this.props.setReferenceNode, node);\n });\n\n return _this;\n }\n\n var _proto = InnerReference.prototype;\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n setRef(this.props.innerRef, null);\n };\n\n _proto.render = function render() {\n warning(Boolean(this.props.setReferenceNode), '`Reference` should not be used outside of a `Manager` component.');\n return unwrapArray(this.props.children)({\n ref: this.refHandler\n });\n };\n\n return InnerReference;\n}(React.Component);\n\nexport default function Reference(props) {\n return React.createElement(ManagerReferenceNodeSetterContext.Consumer, null, function (setReferenceNode) {\n return React.createElement(InnerReference, _extends({\n setReferenceNode: setReferenceNode\n }, props));\n });\n}","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 React from 'react';\nimport classNames from 'classnames';\nimport { mapToCssModules, tagPropType } from './utils';\nvar defaultProps = {\n color: 'secondary',\n tag: 'button'\n};\n\nvar Button = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Button, _React$Component);\n\n function Button(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = Button.prototype;\n\n _proto.onClick = function onClick(e) {\n if (this.props.disabled) {\n e.preventDefault();\n return;\n }\n\n if (this.props.onClick) {\n return this.props.onClick(e);\n }\n };\n\n _proto.render = function render() {\n var _this$props = this.props,\n active = _this$props.active,\n ariaLabel = _this$props['aria-label'],\n block = _this$props.block,\n className = _this$props.className,\n close = _this$props.close,\n cssModule = _this$props.cssModule,\n color = _this$props.color,\n outline = _this$props.outline,\n size = _this$props.size,\n Tag = _this$props.tag,\n innerRef = _this$props.innerRef,\n attributes = _objectWithoutPropertiesLoose(_this$props, [\"active\", \"aria-label\", \"block\", \"className\", \"close\", \"cssModule\", \"color\", \"outline\", \"size\", \"tag\", \"innerRef\"]);\n\n if (close && typeof attributes.children === 'undefined') {\n attributes.children = /*#__PURE__*/React.createElement(\"span\", {\n \"aria-hidden\": true\n }, \"\\xD7\");\n }\n\n var btnOutlineColor = \"btn\" + (outline ? '-outline' : '') + \"-\" + color;\n var classes = mapToCssModules(classNames(className, {\n close: close\n }, close || 'btn', close || btnOutlineColor, size ? \"btn-\" + size : false, block ? 'btn-block' : false, {\n active: active,\n disabled: this.props.disabled\n }), cssModule);\n\n if (attributes.href && Tag === 'button') {\n Tag = 'a';\n }\n\n var defaultAriaLabel = close ? 'Close' : null;\n return /*#__PURE__*/React.createElement(Tag, _extends({\n type: Tag === 'button' && attributes.onClick ? 'button' : undefined\n }, attributes, {\n className: classes,\n ref: innerRef,\n onClick: this.onClick,\n \"aria-label\": ariaLabel || defaultAriaLabel\n }));\n };\n\n return Button;\n}(React.Component);\n\nButton.defaultProps = defaultProps;\nexport default Button;","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 React from 'react';\nimport classNames from 'classnames';\nimport { Reference } from 'react-popper';\nimport { DropdownContext } from './DropdownContext';\nimport { mapToCssModules, tagPropType } from './utils';\nimport Button from './Button';\nvar defaultProps = {\n 'aria-haspopup': true,\n color: 'secondary'\n};\n\nvar DropdownToggle = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DropdownToggle, _React$Component);\n\n function DropdownToggle(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = DropdownToggle.prototype;\n\n _proto.onClick = function onClick(e) {\n if (this.props.disabled || this.context.disabled) {\n e.preventDefault();\n return;\n }\n\n if (this.props.nav && !this.props.tag) {\n e.preventDefault();\n }\n\n if (this.props.onClick) {\n this.props.onClick(e);\n }\n\n this.context.toggle(e);\n };\n\n _proto.render = function render() {\n var _this2 = this;\n\n var _this$props = this.props,\n className = _this$props.className,\n color = _this$props.color,\n cssModule = _this$props.cssModule,\n caret = _this$props.caret,\n split = _this$props.split,\n nav = _this$props.nav,\n tag = _this$props.tag,\n innerRef = _this$props.innerRef,\n props = _objectWithoutPropertiesLoose(_this$props, [\"className\", \"color\", \"cssModule\", \"caret\", \"split\", \"nav\", \"tag\", \"innerRef\"]);\n\n var ariaLabel = props['aria-label'] || 'Toggle Dropdown';\n var classes = mapToCssModules(classNames(className, {\n 'dropdown-toggle': caret || split,\n 'dropdown-toggle-split': split,\n 'nav-link': nav\n }), cssModule);\n var children = typeof props.children !== 'undefined' ? props.children : /*#__PURE__*/React.createElement(\"span\", {\n className: \"sr-only\"\n }, ariaLabel);\n var Tag;\n\n if (nav && !tag) {\n Tag = 'a';\n props.href = '#';\n } else if (!tag) {\n Tag = Button;\n props.color = color;\n props.cssModule = cssModule;\n } else {\n Tag = tag;\n }\n\n if (this.context.inNavbar) {\n return /*#__PURE__*/React.createElement(Tag, _extends({}, props, {\n className: classes,\n onClick: this.onClick,\n \"aria-expanded\": this.context.isOpen,\n children: children\n }));\n }\n\n return /*#__PURE__*/React.createElement(Reference, {\n innerRef: innerRef\n }, function (_ref) {\n var _ref2;\n\n var ref = _ref.ref;\n return /*#__PURE__*/React.createElement(Tag, _extends({}, props, (_ref2 = {}, _ref2[typeof Tag === 'string' ? 'ref' : 'innerRef'] = ref, _ref2), {\n className: classes,\n onClick: _this2.onClick,\n \"aria-expanded\": _this2.context.isOpen,\n children: children\n }));\n });\n };\n\n return DropdownToggle;\n}(React.Component);\n\nDropdownToggle.defaultProps = defaultProps;\nDropdownToggle.contextType = DropdownContext;\nexport default DropdownToggle;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/extends\";\nimport _assertThisInitialized from \"@babel/runtime/helpers/assertThisInitialized\";\nimport _inheritsLoose from \"@babel/runtime/helpers/inheritsLoose\";\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 = /*#__PURE__*/function (_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(_this), \"state\", {\n data: undefined,\n placement: undefined\n });\n\n _defineProperty(_assertThisInitialized(_this), \"popperInstance\", void 0);\n\n _defineProperty(_assertThisInitialized(_this), \"popperNode\", null);\n\n _defineProperty(_assertThisInitialized(_this), \"arrowNode\", null);\n\n _defineProperty(_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(_this), \"setArrowNode\", function (arrowNode) {\n _this.arrowNode = arrowNode;\n });\n\n _defineProperty(_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(_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(_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(_this), \"getPopperPlacement\", function () {\n return !_this.state.data ? undefined : _this.state.placement;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getArrowStyle\", function () {\n return !_this.arrowNode || !_this.state.data ? initialArrowStyle : _this.state.data.arrowStyles;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"getOutOfBoundariesState\", function () {\n return _this.state.data ? _this.state.data.hide : undefined;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"destroyPopperInstance\", function () {\n if (!_this.popperInstance) return;\n\n _this.popperInstance.destroy();\n\n _this.popperInstance = null;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"updatePopperInstance\", function () {\n _this.destroyPopperInstance();\n\n var _assertThisInitialize = _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(_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 _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _defineProperty from \"@babel/runtime/helpers/esm/defineProperty\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _inheritsLoose from \"@babel/runtime/helpers/esm/inheritsLoose\";\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nimport React from 'react';\nimport ReactDOM from 'react-dom';\nimport classNames from 'classnames';\nimport { Popper } from 'react-popper';\nimport { DropdownContext } from './DropdownContext';\nimport { mapToCssModules, tagPropType, targetPropType, getTarget } from './utils';\nvar defaultProps = {\n tag: 'div',\n flip: true\n};\nvar noFlipModifier = {\n flip: {\n enabled: false\n }\n};\nvar directionPositionMap = {\n up: 'top',\n left: 'left',\n right: 'right',\n down: 'bottom'\n};\n\nvar DropdownMenu = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DropdownMenu, _React$Component);\n\n function DropdownMenu() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = DropdownMenu.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n var _this$props = this.props,\n className = _this$props.className,\n cssModule = _this$props.cssModule,\n right = _this$props.right,\n tag = _this$props.tag,\n flip = _this$props.flip,\n modifiers = _this$props.modifiers,\n persist = _this$props.persist,\n positionFixed = _this$props.positionFixed,\n container = _this$props.container,\n attrs = _objectWithoutPropertiesLoose(_this$props, [\"className\", \"cssModule\", \"right\", \"tag\", \"flip\", \"modifiers\", \"persist\", \"positionFixed\", \"container\"]);\n\n var classes = mapToCssModules(classNames(className, 'dropdown-menu', {\n 'dropdown-menu-right': right,\n show: this.context.isOpen\n }), cssModule);\n var Tag = tag;\n\n if (persist || this.context.isOpen && !this.context.inNavbar) {\n var position1 = directionPositionMap[this.context.direction] || 'bottom';\n var position2 = right ? 'end' : 'start';\n var poperPlacement = position1 + \"-\" + position2;\n var poperModifiers = !flip ? _objectSpread(_objectSpread({}, modifiers), noFlipModifier) : modifiers;\n var popperPositionFixed = !!positionFixed;\n var popper = /*#__PURE__*/React.createElement(Popper, {\n placement: poperPlacement,\n modifiers: poperModifiers,\n positionFixed: popperPositionFixed\n }, function (_ref) {\n var ref = _ref.ref,\n style = _ref.style,\n placement = _ref.placement;\n\n var combinedStyle = _objectSpread(_objectSpread({}, _this.props.style), style);\n\n var handleRef = function handleRef(tagRef) {\n // Send the ref to `react-popper`\n ref(tagRef); // Send the ref to the parent Dropdown so that clicks outside\n // it will cause it to close\n\n var onMenuRef = _this.context.onMenuRef;\n if (onMenuRef) onMenuRef(tagRef);\n };\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n tabIndex: \"-1\",\n role: \"menu\",\n ref: handleRef\n }, attrs, {\n style: combinedStyle,\n \"aria-hidden\": !_this.context.isOpen,\n className: classes,\n \"x-placement\": placement\n }));\n });\n\n if (container) {\n return /*#__PURE__*/ReactDOM.createPortal(popper, getTarget(container));\n } else {\n return popper;\n }\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n tabIndex: \"-1\",\n role: \"menu\"\n }, attrs, {\n \"aria-hidden\": !this.context.isOpen,\n className: classes,\n \"x-placement\": attrs.placement\n }));\n };\n\n return DropdownMenu;\n}(React.Component);\n\n;\nDropdownMenu.defaultProps = defaultProps;\nDropdownMenu.contextType = DropdownContext;\nexport default DropdownMenu;","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 React from 'react';\nimport classNames from 'classnames';\nimport { DropdownContext } from './DropdownContext';\nimport { mapToCssModules, omit, tagPropType } from './utils';\nvar defaultProps = {\n tag: 'button',\n toggle: true\n};\n\nvar DropdownItem = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(DropdownItem, _React$Component);\n\n function DropdownItem(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.onClick = _this.onClick.bind(_assertThisInitialized(_this));\n _this.getTabIndex = _this.getTabIndex.bind(_assertThisInitialized(_this));\n return _this;\n }\n\n var _proto = DropdownItem.prototype;\n\n _proto.onClick = function onClick(e) {\n var _this$props = this.props,\n disabled = _this$props.disabled,\n header = _this$props.header,\n divider = _this$props.divider,\n text = _this$props.text;\n\n if (disabled || header || divider || text) {\n e.preventDefault();\n return;\n }\n\n if (this.props.onClick) {\n this.props.onClick(e);\n }\n\n if (this.props.toggle) {\n this.context.toggle(e);\n }\n };\n\n _proto.getTabIndex = function getTabIndex() {\n var _this$props2 = this.props,\n disabled = _this$props2.disabled,\n header = _this$props2.header,\n divider = _this$props2.divider,\n text = _this$props2.text;\n\n if (disabled || header || divider || text) {\n return '-1';\n }\n\n return '0';\n };\n\n _proto.render = function render() {\n var tabIndex = this.getTabIndex();\n var role = tabIndex > -1 ? 'menuitem' : undefined;\n\n var _omit = omit(this.props, ['toggle']),\n className = _omit.className,\n cssModule = _omit.cssModule,\n divider = _omit.divider,\n Tag = _omit.tag,\n header = _omit.header,\n active = _omit.active,\n text = _omit.text,\n props = _objectWithoutPropertiesLoose(_omit, [\"className\", \"cssModule\", \"divider\", \"tag\", \"header\", \"active\", \"text\"]);\n\n var classes = mapToCssModules(classNames(className, {\n disabled: props.disabled,\n 'dropdown-item': !divider && !header && !text,\n active: active,\n 'dropdown-header': header,\n 'dropdown-divider': divider,\n 'dropdown-item-text': text\n }), cssModule);\n\n if (Tag === 'button') {\n if (header) {\n Tag = 'h6';\n } else if (divider) {\n Tag = 'div';\n } else if (props.href) {\n Tag = 'a';\n } else if (text) {\n Tag = 'span';\n }\n }\n\n return /*#__PURE__*/React.createElement(Tag, _extends({\n type: Tag === 'button' && (props.onClick || this.props.toggle) ? 'button' : undefined\n }, props, {\n tabIndex: tabIndex,\n role: role,\n className: classes,\n onClick: this.onClick\n }));\n };\n\n return DropdownItem;\n}(React.Component);\n\nDropdownItem.defaultProps = defaultProps;\nDropdownItem.contextType = DropdownContext;\nexport default DropdownItem;","import React from \"react\"\nimport { Link } from \"gatsby\"\n\nconst Navitem = props => {\n return (\n