{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///../../js/src/util.js","webpack:///../../js/src/alert.js","webpack:///../../js/src/button.js","webpack:///../../js/src/carousel.js","webpack:///../../js/src/collapse.js","webpack:///../../js/src/dropdown.js","webpack:///../../js/src/modal.js","webpack:///../../js/src/tools/sanitizer.js","webpack:///../../js/src/tooltip.js","webpack:///../../js/src/popover.js","webpack:///../../js/src/scrollspy.js","webpack:///../../js/src/tab.js","webpack:///../../js/src/toast.js","webpack:///../../js/src/index.js","webpack:///../src/parsley/utils.js","webpack:///../src/parsley/defaults.js","webpack:///../src/parsley/base.js","webpack:///../src/parsley/validator.js","webpack:///../src/parsley/validator_registry.js","webpack:///../src/parsley/ui.js","webpack:///../src/parsley/form.js","webpack:///../src/parsley/constraint.js","webpack:///../src/parsley/field.js","webpack:///../src/parsley/multiple.js","webpack:///../src/parsley/factory.js","webpack:///../src/parsley/main.js","webpack:///../src/parsley/pubsub.js","webpack:///../src/parsley/remote.js","webpack:///../src/i18n/en.js","webpack:///../src/vendor/inputevent.js","webpack:///../src/parsley.js","webpack:///../../src/utils/isBrowser.js","webpack:///../../src/utils/debounce.js","webpack:///../../src/utils/isFunction.js","webpack:///../../src/utils/getStyleComputedProperty.js","webpack:///../../src/utils/getParentNode.js","webpack:///../../src/utils/getScrollParent.js","webpack:///../../src/utils/isIE.js","webpack:///../../src/utils/getOffsetParent.js","webpack:///../../src/utils/isOffsetContainer.js","webpack:///../../src/utils/getRoot.js","webpack:///../../src/utils/findCommonOffsetParent.js","webpack:///../../src/utils/getScroll.js","webpack:///../../src/utils/includeScroll.js","webpack:///../../src/utils/getBordersSize.js","webpack:///../../src/utils/getWindowSizes.js","webpack:///../../src/utils/getClientRect.js","webpack:///../../src/utils/getBoundingClientRect.js","webpack:///../../src/utils/getOffsetRectRelativeToArbitraryNode.js","webpack:///../../src/utils/getViewportOffsetRectRelativeToArtbitraryNode.js","webpack:///../../src/utils/isFixed.js","webpack:///../../src/utils/getFixedPositionOffsetParent.js","webpack:///../../src/utils/getBoundaries.js","webpack:///../../src/utils/computeAutoPlacement.js","webpack:///../../src/utils/getReferenceOffsets.js","webpack:///../../src/utils/getOuterSizes.js","webpack:///../../src/utils/getOppositePlacement.js","webpack:///../../src/utils/getPopperOffsets.js","webpack:///../../src/utils/find.js","webpack:///../../src/utils/findIndex.js","webpack:///../../src/utils/runModifiers.js","webpack:///../../src/methods/update.js","webpack:///../../src/utils/isModifierEnabled.js","webpack:///../../src/utils/getSupportedPropertyName.js","webpack:///../../src/methods/destroy.js","webpack:///../../src/utils/getWindow.js","webpack:///../../src/utils/setupEventListeners.js","webpack:///../../src/methods/enableEventListeners.js","webpack:///../../src/utils/removeEventListeners.js","webpack:///../../src/methods/disableEventListeners.js","webpack:///../../src/utils/isNumeric.js","webpack:///../../src/utils/setStyles.js","webpack:///../../src/utils/setAttributes.js","webpack:///../../src/modifiers/applyStyle.js","webpack:///../../src/utils/getRoundedOffsets.js","webpack:///../../src/modifiers/computeStyle.js","webpack:///../../src/utils/isModifierRequired.js","webpack:///../../src/modifiers/arrow.js","webpack:///../../src/utils/getOppositeVariation.js","webpack:///../../src/methods/placements.js","webpack:///../../src/utils/clockwise.js","webpack:///../../src/modifiers/flip.js","webpack:///../../src/modifiers/keepTogether.js","webpack:///../../src/modifiers/offset.js","webpack:///../../src/modifiers/preventOverflow.js","webpack:///../../src/modifiers/shift.js","webpack:///../../src/modifiers/hide.js","webpack:///../../src/modifiers/inner.js","webpack:///../../src/modifiers/index.js","webpack:///../../src/methods/defaults.js","webpack:///../../src/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./src/index.js","webpack:///external {\"this\":\"jQuery\"}"],"names":["TRANSITION_END","MAX_UID","MILLISECONDS_MULTIPLIER","toType","obj","toString","call","match","toLowerCase","getSpecialTransitionEndEvent","bindType","delegateType","handle","event","$","target","is","handleObj","handler","apply","arguments","undefined","transitionEndEmulator","duration","called","one","Util","setTimeout","triggerTransitionEnd","setTransitionEndSupport","fn","emulateTransitionEnd","special","getUID","prefix","Math","random","document","getElementById","getSelectorFromElement","element","selector","getAttribute","hrefAttr","trim","querySelector","err","getTransitionDurationFromElement","transitionDuration","css","transitionDelay","floatTransitionDuration","parseFloat","floatTransitionDelay","split","reflow","offsetHeight","trigger","supportsTransitionEnd","Boolean","isElement","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","expectedTypes","value","valueType","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","root","ShadowRoot","parentNode","NAME","VERSION","DATA_KEY","EVENT_KEY","DATA_API_KEY","JQUERY_NO_CONFLICT","Selector","DISMISS","Event","CLOSE","CLOSED","CLICK_DATA_API","ClassName","ALERT","FADE","SHOW","Alert","_element","close","rootElement","_getRootElement","customEvent","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","ACTIVE","BUTTON","FOCUS","DATA_TOGGLE_CARROT","DATA_TOGGLE","INPUT","FOCUS_BLUR_DATA_API","Button","toggle","triggerChangeEvent","addAriaPressed","input","type","checked","classList","contains","activeElement","hasAttribute","focus","setAttribute","toggleClass","button","ARROW_LEFT_KEYCODE","ARROW_RIGHT_KEYCODE","TOUCHEVENT_COMPAT_WAIT","SWIPE_THRESHOLD","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","NEXT","PREV","LEFT","RIGHT","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","CAROUSEL","ITEM","POINTER_EVENT","ACTIVE_ITEM","ITEM_IMG","NEXT_PREV","INDICATORS","DATA_SLIDE","DATA_RIDE","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","navigator","maxTouchPoints","_pointerEvent","window","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","setInterval","visibilityState","bind","to","index","activeIndex","_getItemIndex","length","direction","off","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","start","originalEvent","pointerType","clientX","touches","move","end","clearTimeout","querySelectorAll","e","add","tagName","which","slice","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","isGoingToWrap","delta","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","activeElementIndex","nextElement","nextElementIndex","isCycling","directionalClassName","orderClassName","slidEvent","nextElementInterval","parseInt","defaultInterval","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","i","len","$carousel","SHOWN","HIDE","HIDDEN","COLLAPSE","COLLAPSING","COLLAPSED","Dimension","WIDTH","HEIGHT","ACTIVES","Collapse","_isTransitioning","_triggerArray","id","toggleList","elem","filterElement","filter","foundElem","_selector","push","_parent","_getParent","_addAriaAndCollapsedClass","hide","show","actives","activesData","not","startEvent","dimension","_getDimension","style","attr","setTransitioning","complete","capitalizedDimension","scrollSize","getBoundingClientRect","triggerArrayLength","$elem","isTransitioning","hasWidth","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","selectors","$target","ESCAPE_KEYCODE","SPACE_KEYCODE","TAB_KEYCODE","ARROW_UP_KEYCODE","ARROW_DOWN_KEYCODE","RIGHT_MOUSE_BUTTON_WHICH","REGEXP_KEYDOWN","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","DISABLED","DROPUP","DROPRIGHT","DROPLEFT","MENURIGHT","MENULEFT","POSITION_STATIC","FORM_CHILD","MENU","NAVBAR_NAV","VISIBLE_ITEMS","AttachmentMap","TOP","TOPEND","BOTTOM","BOTTOMEND","RIGHTEND","LEFTEND","offset","flip","boundary","reference","display","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","body","noop","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","SCROLLABLE","SCROLLBAR_MEASURER","BACKDROP","OPEN","DIALOG","MODAL_BODY","DATA_DISMISS","FIXED_CONTENT","STICKY_CONTENT","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","forEach","htmlElement","handleUpdate","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","_resetAdjustments","_resetScrollbar","_removeBackdrop","callback","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","isModalOverflowing","scrollHeight","clientHeight","paddingLeft","paddingRight","rect","left","right","innerWidth","_getScrollbarWidth","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","marginRight","calculatedMargin","padding","elements","margin","scrollDiv","scrollbarWidth","width","clientWidth","removeChild","uriAttrs","ARIA_ATTRIBUTE_PATTERN","DefaultWhitelist","a","area","b","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","p","pre","s","small","span","sub","sup","strong","u","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","allowedAttribute","allowedAttributeList","attrName","nodeName","nodeValue","regExp","attrRegex","l","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","domParser","DOMParser","createdDocument","parseFromString","whitelistKeys","keys","el","elName","attributeList","attributes","whitelistedAttributes","concat","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","container","fallbackPlacement","sanitize","AUTO","HoverState","OUT","INSERTED","FOCUSOUT","TOOLTIP","TOOLTIP_INNER","ARROW","Trigger","HOVER","MANUAL","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","isWithContent","shadowRoot","isInTheDom","ownerDocument","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","empty","append","text","find","triggers","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","key","$tip","tabClass","join","popperData","popperInstance","instance","popper","initConfigAnimation","TITLE","CONTENT","Popover","_getContent","method","ACTIVATE","SCROLL","DROPDOWN_ITEM","DROPDOWN_MENU","DATA_SPY","NAV_LIST_GROUP","NAV_LINKS","NAV_ITEMS","LIST_ITEMS","DROPDOWN","DROPDOWN_ITEMS","DROPDOWN_TOGGLE","OffsetMethod","OFFSET","POSITION","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targets","map","targetSelector","targetBCR","height","top","item","sort","pageYOffset","max","_getOffsetHeight","innerHeight","maxScroll","_activate","_clear","offsetLength","isActiveTarget","queries","$link","parents","node","scrollSpys","scrollSpysLength","$spy","ACTIVE_UL","DROPDOWN_ACTIVE_CHILD","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","activeElements","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","SHOWING","autohide","Toast","withoutTimeout","_close","version","minMajor","ltMajor","minMinor","minPatch","maxMajor","globalID","pastWarnings","Utils","namespace","attribute","regex","specified","name","camelize","deserializeValue","checkAttr","setAttr","dasherize","String","getType","generateID","num","isNaN","Number","JSON","parse","str","replace","chr","warn","console","warnOnce","msg","_resetWarnings","trimString","string","date","parsed","x","_","year","month","day","Date","getFullYear","getMonth","getDate","integer","number","_boolean","object","regexp","flags","parseRequirement","requirementType","converter","converted","namespaceEvents","events","evt","difference","array","result","all","promises","when","objectCreate","create","_SubmitSelector","Defaults","inputs","excluded","priorityEnabled","multiple","group","uiEnabled","validationThreshold","triggerAfterFailure","errorClass","successClass","classHandler","Field","errorsContainer","errorsWrapper","errorTemplate","Base","__id__","asyncSupport","_pipeAccordingToValidationResult","pipe","r","Deferred","validationResult","reject","resolve","promise","actualizeOptions","options","domOptions","_resetOptions","initOptions","_listeners","queue","subscribe","listenTo","splice","unsubscribe","unsubscribeTo","extraArg","asyncIsValid","force","whenValid","_findRelated","convertArrayRequirement","m","values","convertExtraOptionRequirement","requirementSpec","extraOptionReader","main","extra","Validator","spec","extend","validate","requirementFirstArg","Array","isArray","validateMultiple","validateDate","_isDateInput","validateNumber","validateString","parseRequirements","requirements","isPlainObject","priority","ValidatorRegistry","validators","catalog","__class__","locale","init","typeTesters","email","digits","alphanum","url","range","decimalPlaces","parseArguments","args","operatorToValidator","operator","requirementsAndInput","pop","comparisonOperator","addValidator","Parsley","setLocale","addCatalog","messages","set","addMessage","message","addMessages","nameMessageObject","arg1","arg2","_setValidator","hasValidator","updateValidator","removeValidator","validator","getErrorMessage","constraint","typeMessages","formatMessage","defaultMessage","en","parameters","notblank","required","step","base","tester","nb","decimals","toInt","f","round","pow","pattern","minlength","requirement","maxlength","min","mincheck","maxcheck","check","equalto","refOrValue","$reference","val","euvatin","re","UI","diffResults","newResult","oldResult","deep","added","kept","found","j","assert","removed","Form","_actualizeTriggers","onSubmitValidate","onSubmitButton","_focusedField","fields","field","noFocus","_destroyUI","_reflowUI","_buildUI","_ui","diff","lastValidationResult","_manageStatusClass","_manageErrorsMessages","_failedOnce","getErrorsMessages","errorMessage","_getErrorMessage","addError","updateClass","_addError","_errorClass","updateError","_updateError","removeError","_removeError","hasConstraints","needsValidation","_successClass","_resetClass","errorsMessagesDisabled","_insertErrorWrapper","$errorsWrapper","$errorClassHandler","errorsWrapperId","removeAttr","customConstraintErrorMessage","_manageClassHandler","validationInformationVisible","$handlerFunction","$handler","jQuery","_inputHolder","$errorsContainer","after","$toBind","_validateIfNeeded","getValue","debounce","_debounced","_resetUI","statusMapping","pending","resolved","rejected","parsley","submitSource","_submitSource","prop","_remoteCache","whenValidate","state","_trigger","stopImmediatePropagation","done","_submit","$synthetic","submitEvent","_refreshFields","_withoutReactualizingFormOptions","fail","always","isValid","reset","_bindFields","oldFields","fieldsMappedById","fieldInstance","Factory","uniqueId","oldActualizeOptions","eventName","Constraint","parsleyField","isDomConstraint","validatorSpec","_validatorRegistry","_parseRequirements","capitalize","cap","requirementList","parsleyFormInstance","constraints","constraintsByName","_bindConstraints","_isInGroup","_refreshed","_isRequired","validateIfEmpty","inArray","groupedConstraints","_getGroupedConstraints","_validateConstraint","_handleWhitespace","_refreshConstraints","refreshConstraints","addConstraint","removeConstraint","updateConstraint","_bindHtml5Constraints","trimValue","whitespace","c","Multiple","addElement","$elements","fieldConstraints","_init","savedparsleyFormInstance","__version__","isMultiple","handleMultiple","parsleyMultipleInstance","$previouslyRelated","get","doNotStore","parsleyInstance","ParsleyExtend","vernums","psly","instances","ParsleyConfig","ParsleyUtils","registry","i18n","ParsleyValidator","ParsleyUI","doNotUpdateClass","autoBind","o","deprecated","adapt","parsleyAdaptedCallback","unshift","eventPrefix","lastIndexOf","substr","listen","unsubscribeAll","emit","instanceGiven","asyncValidators","xhr","status","reverse","addAsyncValidator","ajaxOptions","csr","encodeURIComponent","remoteOptions","param","ajax","handleXhr","then","InputEvent","globals","global","isNativeEvent","isTrusted","fakeInputEvent","misbehaves","behavesOk","install","inputEventPatched","uninstall","inputevent","longerTimeoutBrowsers","timeoutDuration","isBrowser","userAgent","microtaskDebounce","Promise","taskDebounce","scheduled","supportsMicroTasks","isFunction","functionToCheck","getStyleComputedProperty","defaultView","getComputedStyle","getParentNode","host","getScrollParent","overflow","overflowX","overflowY","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","isOffsetContainer","firstElementChild","getRoot","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","DOCUMENT_POSITION_FOLLOWING","createRange","setStart","setEnd","commonAncestorContainer","element1root","getScroll","side","upperSide","scrollingElement","includeScroll","subtract","scrollLeft","modifier","bottom","getBordersSize","styles","axis","sideA","sideB","getSize","computedStyle","getWindowSizes","getClientRect","sizes","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","fixedPosition","runIsIE","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","isFixed","getFixedPositionOffsetParent","parentElement","getBoundaries","boundaries","boundariesNode","isPaddingNumber","getArea","computeAutoPlacement","refRect","rects","sortedAreas","filteredAreas","computedPlacement","variation","getReferenceOffsets","commonOffsetParent","getOuterSizes","marginBottom","y","getOppositePlacement","hash","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","arr","findIndex","cur","runModifiers","ends","modifiersToRun","isDestroyed","positionFixed","position","isCreated","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","toCheck","willChange","disableEventListeners","removeOnDestroy","getWindow","attachToScrollParents","scrollParents","isBody","addEventListener","passive","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","removeEventListeners","removeEventListener","isNumeric","n","isFinite","setStyles","unit","setAttributes","arrowElement","arrowStyles","applyStyleOnLoad","modifierOptions","getRoundedOffsets","shouldRound","floor","noRound","v","referenceWidth","popperWidth","isVertical","isVariation","sameWidthParity","bothOddWidth","horizontalToInteger","verticalToInteger","isFirefox","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","devicePixelRatio","prefixedProperty","invertTop","invertLeft","isModifierRequired","requestingName","requestedName","requesting","isRequired","requested","sideCapitalized","altSide","opSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","getOppositeVariation","validPlacements","placements","clockwise","counter","BEHAVIORS","flipped","placementOpposite","flipOrder","FLIP","CLOCKWISE","COUNTERCLOCKWISE","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","keepTogether","toValue","size","parseOffset","basePlacement","useHeight","fragments","frag","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","index2","transformProp","popperStyles","transform","escapeWithReference","shift","shiftvariation","shiftOffsets","bound","inner","subtractLength","requestAnimationFrame","onLoad","PopperUtils","tooltip"],"mappings":"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","file":"index.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = \"./src/index.js\");\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\nconst TRANSITION_END = 'transitionend'\nconst MAX_UID = 1000000\nconst MILLISECONDS_MULTIPLIER = 1000\n\n// Shoutout AngusCroll (https://goo.gl/pxwQGp)\nfunction toType(obj) {\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase()\n}\n\nfunction getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle(event) {\n if ($(event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments) // eslint-disable-line prefer-rest-params\n }\n return undefined // eslint-disable-line no-undefined\n }\n }\n}\n\nfunction transitionEndEmulator(duration) {\n let called = false\n\n $(this).one(Util.TRANSITION_END, () => {\n called = true\n })\n\n setTimeout(() => {\n if (!called) {\n Util.triggerTransitionEnd(this)\n }\n }, duration)\n\n return this\n}\n\nfunction setTransitionEndSupport() {\n $.fn.emulateTransitionEnd = transitionEndEmulator\n $.event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent()\n}\n\n/**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\nconst Util = {\n\n TRANSITION_END: 'bsTransitionEnd',\n\n getUID(prefix) {\n do {\n // eslint-disable-next-line no-bitwise\n prefix += ~~(Math.random() * MAX_UID) // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix))\n return prefix\n },\n\n getSelectorFromElement(element) {\n let selector = element.getAttribute('data-target')\n\n if (!selector || selector === '#') {\n const hrefAttr = element.getAttribute('href')\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : ''\n }\n\n try {\n return document.querySelector(selector) ? selector : null\n } catch (err) {\n return null\n }\n },\n\n getTransitionDurationFromElement(element) {\n if (!element) {\n return 0\n }\n\n // Get transition-duration of the element\n let transitionDuration = $(element).css('transition-duration')\n let transitionDelay = $(element).css('transition-delay')\n\n const floatTransitionDuration = parseFloat(transitionDuration)\n const floatTransitionDelay = parseFloat(transitionDelay)\n\n // Return 0 if element or transition duration is not found\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0\n }\n\n // If multiple durations are defined, take the first\n transitionDuration = transitionDuration.split(',')[0]\n transitionDelay = transitionDelay.split(',')[0]\n\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER\n },\n\n reflow(element) {\n return element.offsetHeight\n },\n\n triggerTransitionEnd(element) {\n $(element).trigger(TRANSITION_END)\n },\n\n // TODO: Remove in v5\n supportsTransitionEnd() {\n return Boolean(TRANSITION_END)\n },\n\n isElement(obj) {\n return (obj[0] || obj).nodeType\n },\n\n typeCheckConfig(componentName, config, configTypes) {\n for (const property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n const expectedTypes = configTypes[property]\n const value = config[property]\n const valueType = value && Util.isElement(value)\n ? 'element' : toType(value)\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(\n `${componentName.toUpperCase()}: ` +\n `Option \"${property}\" provided type \"${valueType}\" ` +\n `but expected type \"${expectedTypes}\".`)\n }\n }\n }\n },\n\n findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null\n }\n\n // Can find the shadow root otherwise it'll return the document\n if (typeof element.getRootNode === 'function') {\n const root = element.getRootNode()\n return root instanceof ShadowRoot ? root : null\n }\n\n if (element instanceof ShadowRoot) {\n return element\n }\n\n // when we don't find a shadow root\n if (!element.parentNode) {\n return null\n }\n\n return Util.findShadowRoot(element.parentNode)\n }\n}\n\nsetTransitionEndSupport()\n\nexport default Util\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): alert.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'alert'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.alert'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Selector = {\n DISMISS : '[data-dismiss=\"alert\"]'\n}\n\nconst Event = {\n CLOSE : `close${EVENT_KEY}`,\n CLOSED : `closed${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ALERT : 'alert',\n FADE : 'fade',\n SHOW : 'show'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Alert {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n close(element) {\n let rootElement = this._element\n if (element) {\n rootElement = this._getRootElement(element)\n }\n\n const customEvent = this._triggerCloseEvent(rootElement)\n\n if (customEvent.isDefaultPrevented()) {\n return\n }\n\n this._removeElement(rootElement)\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _getRootElement(element) {\n const selector = Util.getSelectorFromElement(element)\n let parent = false\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n if (!parent) {\n parent = $(element).closest(`.${ClassName.ALERT}`)[0]\n }\n\n return parent\n }\n\n _triggerCloseEvent(element) {\n const closeEvent = $.Event(Event.CLOSE)\n\n $(element).trigger(closeEvent)\n return closeEvent\n }\n\n _removeElement(element) {\n $(element).removeClass(ClassName.SHOW)\n\n if (!$(element).hasClass(ClassName.FADE)) {\n this._destroyElement(element)\n return\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(element)\n\n $(element)\n .one(Util.TRANSITION_END, (event) => this._destroyElement(element, event))\n .emulateTransitionEnd(transitionDuration)\n }\n\n _destroyElement(element) {\n $(element)\n .detach()\n .trigger(Event.CLOSED)\n .remove()\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n\n if (!data) {\n data = new Alert(this)\n $element.data(DATA_KEY, data)\n }\n\n if (config === 'close') {\n data[config](this)\n }\n })\n }\n\n static _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault()\n }\n\n alertInstance.close(this)\n }\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(\n Event.CLICK_DATA_API,\n Selector.DISMISS,\n Alert._handleDismiss(new Alert())\n)\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Alert._jQueryInterface\n$.fn[NAME].Constructor = Alert\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Alert._jQueryInterface\n}\n\nexport default Alert\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): button.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'button'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.button'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst ClassName = {\n ACTIVE : 'active',\n BUTTON : 'btn',\n FOCUS : 'focus'\n}\n\nconst Selector = {\n DATA_TOGGLE_CARROT : '[data-toggle^=\"button\"]',\n DATA_TOGGLE : '[data-toggle=\"buttons\"]',\n INPUT : 'input:not([type=\"hidden\"])',\n ACTIVE : '.active',\n BUTTON : '.btn'\n}\n\nconst Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n FOCUS_BLUR_DATA_API : `focus${EVENT_KEY}${DATA_API_KEY} ` +\n `blur${EVENT_KEY}${DATA_API_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Button {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n toggle() {\n let triggerChangeEvent = true\n let addAriaPressed = true\n const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n if (rootElement) {\n const input = this._element.querySelector(Selector.INPUT)\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked &&\n this._element.classList.contains(ClassName.ACTIVE)) {\n triggerChangeEvent = false\n } else {\n const activeElement = rootElement.querySelector(Selector.ACTIVE)\n\n if (activeElement) {\n $(activeElement).removeClass(ClassName.ACTIVE)\n }\n }\n }\n\n if (triggerChangeEvent) {\n if (input.hasAttribute('disabled') ||\n rootElement.hasAttribute('disabled') ||\n input.classList.contains('disabled') ||\n rootElement.classList.contains('disabled')) {\n return\n }\n input.checked = !this._element.classList.contains(ClassName.ACTIVE)\n $(input).trigger('change')\n }\n\n input.focus()\n addAriaPressed = false\n }\n }\n\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed',\n !this._element.classList.contains(ClassName.ACTIVE))\n }\n\n if (triggerChangeEvent) {\n $(this._element).toggleClass(ClassName.ACTIVE)\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new Button(this)\n $(this).data(DATA_KEY, data)\n }\n\n if (config === 'toggle') {\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n event.preventDefault()\n\n let button = event.target\n\n if (!$(button).hasClass(ClassName.BUTTON)) {\n button = $(button).closest(Selector.BUTTON)\n }\n\n Button._jQueryInterface.call($(button), 'toggle')\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Button._jQueryInterface\n$.fn[NAME].Constructor = Button\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Button._jQueryInterface\n}\n\nexport default Button\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): carousel.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'carousel'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.carousel'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst TOUCHEVENT_COMPAT_WAIT = 500 // Time for mouse compat events to fire after touch\nconst SWIPE_THRESHOLD = 40\n\nconst Default = {\n interval : 5000,\n keyboard : true,\n slide : false,\n pause : 'hover',\n wrap : true,\n touch : true\n}\n\nconst DefaultType = {\n interval : '(number|boolean)',\n keyboard : 'boolean',\n slide : '(boolean|string)',\n pause : '(string|boolean)',\n wrap : 'boolean',\n touch : 'boolean'\n}\n\nconst Direction = {\n NEXT : 'next',\n PREV : 'prev',\n LEFT : 'left',\n RIGHT : 'right'\n}\n\nconst Event = {\n SLIDE : `slide${EVENT_KEY}`,\n SLID : `slid${EVENT_KEY}`,\n KEYDOWN : `keydown${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`,\n TOUCHSTART : `touchstart${EVENT_KEY}`,\n TOUCHMOVE : `touchmove${EVENT_KEY}`,\n TOUCHEND : `touchend${EVENT_KEY}`,\n POINTERDOWN : `pointerdown${EVENT_KEY}`,\n POINTERUP : `pointerup${EVENT_KEY}`,\n DRAG_START : `dragstart${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n CAROUSEL : 'carousel',\n ACTIVE : 'active',\n SLIDE : 'slide',\n RIGHT : 'carousel-item-right',\n LEFT : 'carousel-item-left',\n NEXT : 'carousel-item-next',\n PREV : 'carousel-item-prev',\n ITEM : 'carousel-item',\n POINTER_EVENT : 'pointer-event'\n}\n\nconst Selector = {\n ACTIVE : '.active',\n ACTIVE_ITEM : '.active.carousel-item',\n ITEM : '.carousel-item',\n ITEM_IMG : '.carousel-item img',\n NEXT_PREV : '.carousel-item-next, .carousel-item-prev',\n INDICATORS : '.carousel-indicators',\n DATA_SLIDE : '[data-slide], [data-slide-to]',\n DATA_RIDE : '[data-ride=\"carousel\"]'\n}\n\nconst PointerType = {\n TOUCH : 'touch',\n PEN : 'pen'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\nclass Carousel {\n constructor(element, config) {\n this._items = null\n this._interval = null\n this._activeElement = null\n this._isPaused = false\n this._isSliding = false\n this.touchTimeout = null\n this.touchStartX = 0\n this.touchDeltaX = 0\n\n this._config = this._getConfig(config)\n this._element = element\n this._indicatorsElement = this._element.querySelector(Selector.INDICATORS)\n this._touchSupported = 'ontouchstart' in document.documentElement || navigator.maxTouchPoints > 0\n this._pointerEvent = Boolean(window.PointerEvent || window.MSPointerEvent)\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n next() {\n if (!this._isSliding) {\n this._slide(Direction.NEXT)\n }\n }\n\n nextWhenVisible() {\n // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n if (!document.hidden &&\n ($(this._element).is(':visible') && $(this._element).css('visibility') !== 'hidden')) {\n this.next()\n }\n }\n\n prev() {\n if (!this._isSliding) {\n this._slide(Direction.PREV)\n }\n }\n\n pause(event) {\n if (!event) {\n this._isPaused = true\n }\n\n if (this._element.querySelector(Selector.NEXT_PREV)) {\n Util.triggerTransitionEnd(this._element)\n this.cycle(true)\n }\n\n clearInterval(this._interval)\n this._interval = null\n }\n\n cycle(event) {\n if (!event) {\n this._isPaused = false\n }\n\n if (this._interval) {\n clearInterval(this._interval)\n this._interval = null\n }\n\n if (this._config.interval && !this._isPaused) {\n this._interval = setInterval(\n (document.visibilityState ? this.nextWhenVisible : this.next).bind(this),\n this._config.interval\n )\n }\n }\n\n to(index) {\n this._activeElement = this._element.querySelector(Selector.ACTIVE_ITEM)\n\n const activeIndex = this._getItemIndex(this._activeElement)\n\n if (index > this._items.length - 1 || index < 0) {\n return\n }\n\n if (this._isSliding) {\n $(this._element).one(Event.SLID, () => this.to(index))\n return\n }\n\n if (activeIndex === index) {\n this.pause()\n this.cycle()\n return\n }\n\n const direction = index > activeIndex\n ? Direction.NEXT\n : Direction.PREV\n\n this._slide(direction, this._items[index])\n }\n\n dispose() {\n $(this._element).off(EVENT_KEY)\n $.removeData(this._element, DATA_KEY)\n\n this._items = null\n this._config = null\n this._element = null\n this._interval = null\n this._isPaused = null\n this._isSliding = null\n this._activeElement = null\n this._indicatorsElement = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _handleSwipe() {\n const absDeltax = Math.abs(this.touchDeltaX)\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return\n }\n\n const direction = absDeltax / this.touchDeltaX\n\n // swipe left\n if (direction > 0) {\n this.prev()\n }\n\n // swipe right\n if (direction < 0) {\n this.next()\n }\n }\n\n _addEventListeners() {\n if (this._config.keyboard) {\n $(this._element)\n .on(Event.KEYDOWN, (event) => this._keydown(event))\n }\n\n if (this._config.pause === 'hover') {\n $(this._element)\n .on(Event.MOUSEENTER, (event) => this.pause(event))\n .on(Event.MOUSELEAVE, (event) => this.cycle(event))\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners()\n }\n }\n\n _addTouchEventListeners() {\n if (!this._touchSupported) {\n return\n }\n\n const start = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchStartX = event.originalEvent.clientX\n } else if (!this._pointerEvent) {\n this.touchStartX = event.originalEvent.touches[0].clientX\n }\n }\n\n const move = (event) => {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n this.touchDeltaX = 0\n } else {\n this.touchDeltaX = event.originalEvent.touches[0].clientX - this.touchStartX\n }\n }\n\n const end = (event) => {\n if (this._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n this.touchDeltaX = event.originalEvent.clientX - this.touchStartX\n }\n\n this._handleSwipe()\n if (this._config.pause === 'hover') {\n // If it's a touch-enabled device, mouseenter/leave are fired as\n // part of the mouse compatibility events on first tap - the carousel\n // would stop cycling until user tapped out of it;\n // here, we listen for touchend, explicitly pause the carousel\n // (as if it's the second time we tap on it, mouseenter compat event\n // is NOT fired) and after a timeout (to allow for mouse compatibility\n // events to fire) we explicitly restart cycling\n\n this.pause()\n if (this.touchTimeout) {\n clearTimeout(this.touchTimeout)\n }\n this.touchTimeout = setTimeout((event) => this.cycle(event), TOUCHEVENT_COMPAT_WAIT + this._config.interval)\n }\n }\n\n $(this._element.querySelectorAll(Selector.ITEM_IMG)).on(Event.DRAG_START, (e) => e.preventDefault())\n if (this._pointerEvent) {\n $(this._element).on(Event.POINTERDOWN, (event) => start(event))\n $(this._element).on(Event.POINTERUP, (event) => end(event))\n\n this._element.classList.add(ClassName.POINTER_EVENT)\n } else {\n $(this._element).on(Event.TOUCHSTART, (event) => start(event))\n $(this._element).on(Event.TOUCHMOVE, (event) => move(event))\n $(this._element).on(Event.TOUCHEND, (event) => end(event))\n }\n }\n\n _keydown(event) {\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n event.preventDefault()\n this.prev()\n break\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault()\n this.next()\n break\n default:\n }\n }\n\n _getItemIndex(element) {\n this._items = element && element.parentNode\n ? [].slice.call(element.parentNode.querySelectorAll(Selector.ITEM))\n : []\n return this._items.indexOf(element)\n }\n\n _getItemByDirection(direction, activeElement) {\n const isNextDirection = direction === Direction.NEXT\n const isPrevDirection = direction === Direction.PREV\n const activeIndex = this._getItemIndex(activeElement)\n const lastItemIndex = this._items.length - 1\n const isGoingToWrap = isPrevDirection && activeIndex === 0 ||\n isNextDirection && activeIndex === lastItemIndex\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement\n }\n\n const delta = direction === Direction.PREV ? -1 : 1\n const itemIndex = (activeIndex + delta) % this._items.length\n\n return itemIndex === -1\n ? this._items[this._items.length - 1] : this._items[itemIndex]\n }\n\n _triggerSlideEvent(relatedTarget, eventDirectionName) {\n const targetIndex = this._getItemIndex(relatedTarget)\n const fromIndex = this._getItemIndex(this._element.querySelector(Selector.ACTIVE_ITEM))\n const slideEvent = $.Event(Event.SLIDE, {\n relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n })\n\n $(this._element).trigger(slideEvent)\n\n return slideEvent\n }\n\n _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n const indicators = [].slice.call(this._indicatorsElement.querySelectorAll(Selector.ACTIVE))\n $(indicators)\n .removeClass(ClassName.ACTIVE)\n\n const nextIndicator = this._indicatorsElement.children[\n this._getItemIndex(element)\n ]\n\n if (nextIndicator) {\n $(nextIndicator).addClass(ClassName.ACTIVE)\n }\n }\n }\n\n _slide(direction, element) {\n const activeElement = this._element.querySelector(Selector.ACTIVE_ITEM)\n const activeElementIndex = this._getItemIndex(activeElement)\n const nextElement = element || activeElement &&\n this._getItemByDirection(direction, activeElement)\n const nextElementIndex = this._getItemIndex(nextElement)\n const isCycling = Boolean(this._interval)\n\n let directionalClassName\n let orderClassName\n let eventDirectionName\n\n if (direction === Direction.NEXT) {\n directionalClassName = ClassName.LEFT\n orderClassName = ClassName.NEXT\n eventDirectionName = Direction.LEFT\n } else {\n directionalClassName = ClassName.RIGHT\n orderClassName = ClassName.PREV\n eventDirectionName = Direction.RIGHT\n }\n\n if (nextElement && $(nextElement).hasClass(ClassName.ACTIVE)) {\n this._isSliding = false\n return\n }\n\n const slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName)\n if (slideEvent.isDefaultPrevented()) {\n return\n }\n\n if (!activeElement || !nextElement) {\n // Some weirdness is happening, so we bail\n return\n }\n\n this._isSliding = true\n\n if (isCycling) {\n this.pause()\n }\n\n this._setActiveIndicatorElement(nextElement)\n\n const slidEvent = $.Event(Event.SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n })\n\n if ($(this._element).hasClass(ClassName.SLIDE)) {\n $(nextElement).addClass(orderClassName)\n\n Util.reflow(nextElement)\n\n $(activeElement).addClass(directionalClassName)\n $(nextElement).addClass(directionalClassName)\n\n const nextElementInterval = parseInt(nextElement.getAttribute('data-interval'), 10)\n if (nextElementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval\n this._config.interval = nextElementInterval\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval\n }\n\n const transitionDuration = Util.getTransitionDurationFromElement(activeElement)\n\n $(activeElement)\n .one(Util.TRANSITION_END, () => {\n $(nextElement)\n .removeClass(`${directionalClassName} ${orderClassName}`)\n .addClass(ClassName.ACTIVE)\n\n $(activeElement).removeClass(`${ClassName.ACTIVE} ${orderClassName} ${directionalClassName}`)\n\n this._isSliding = false\n\n setTimeout(() => $(this._element).trigger(slidEvent), 0)\n })\n .emulateTransitionEnd(transitionDuration)\n } else {\n $(activeElement).removeClass(ClassName.ACTIVE)\n $(nextElement).addClass(ClassName.ACTIVE)\n\n this._isSliding = false\n $(this._element).trigger(slidEvent)\n }\n\n if (isCycling) {\n this.cycle()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n let _config = {\n ...Default,\n ...$(this).data()\n }\n\n if (typeof config === 'object') {\n _config = {\n ..._config,\n ...config\n }\n }\n\n const action = typeof config === 'string' ? config : _config.slide\n\n if (!data) {\n data = new Carousel(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'number') {\n data.to(config)\n } else if (typeof action === 'string') {\n if (typeof data[action] === 'undefined') {\n throw new TypeError(`No method named \"${action}\"`)\n }\n data[action]()\n } else if (_config.interval && _config.ride) {\n data.pause()\n data.cycle()\n }\n })\n }\n\n static _dataApiClickHandler(event) {\n const selector = Util.getSelectorFromElement(this)\n\n if (!selector) {\n return\n }\n\n const target = $(selector)[0]\n\n if (!target || !$(target).hasClass(ClassName.CAROUSEL)) {\n return\n }\n\n const config = {\n ...$(target).data(),\n ...$(this).data()\n }\n const slideIndex = this.getAttribute('data-slide-to')\n\n if (slideIndex) {\n config.interval = false\n }\n\n Carousel._jQueryInterface.call($(target), config)\n\n if (slideIndex) {\n $(target).data(DATA_KEY).to(slideIndex)\n }\n\n event.preventDefault()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_SLIDE, Carousel._dataApiClickHandler)\n\n$(window).on(Event.LOAD_DATA_API, () => {\n const carousels = [].slice.call(document.querySelectorAll(Selector.DATA_RIDE))\n for (let i = 0, len = carousels.length; i < len; i++) {\n const $carousel = $(carousels[i])\n Carousel._jQueryInterface.call($carousel, $carousel.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Carousel._jQueryInterface\n$.fn[NAME].Constructor = Carousel\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Carousel._jQueryInterface\n}\n\nexport default Carousel\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): collapse.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'collapse'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.collapse'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n toggle : true,\n parent : ''\n}\n\nconst DefaultType = {\n toggle : 'boolean',\n parent : '(string|element)'\n}\n\nconst Event = {\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SHOW : 'show',\n COLLAPSE : 'collapse',\n COLLAPSING : 'collapsing',\n COLLAPSED : 'collapsed'\n}\n\nconst Dimension = {\n WIDTH : 'width',\n HEIGHT : 'height'\n}\n\nconst Selector = {\n ACTIVES : '.show, .collapsing',\n DATA_TOGGLE : '[data-toggle=\"collapse\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Collapse {\n constructor(element, config) {\n this._isTransitioning = false\n this._element = element\n this._config = this._getConfig(config)\n this._triggerArray = [].slice.call(document.querySelectorAll(\n `[data-toggle=\"collapse\"][href=\"#${element.id}\"],` +\n `[data-toggle=\"collapse\"][data-target=\"#${element.id}\"]`\n ))\n\n const toggleList = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE))\n for (let i = 0, len = toggleList.length; i < len; i++) {\n const elem = toggleList[i]\n const selector = Util.getSelectorFromElement(elem)\n const filterElement = [].slice.call(document.querySelectorAll(selector))\n .filter((foundElem) => foundElem === element)\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector\n this._triggerArray.push(elem)\n }\n }\n\n this._parent = this._config.parent ? this._getParent() : null\n\n if (!this._config.parent) {\n this._addAriaAndCollapsedClass(this._element, this._triggerArray)\n }\n\n if (this._config.toggle) {\n this.toggle()\n }\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle() {\n if ($(this._element).hasClass(ClassName.SHOW)) {\n this.hide()\n } else {\n this.show()\n }\n }\n\n show() {\n if (this._isTransitioning ||\n $(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n let actives\n let activesData\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(Selector.ACTIVES))\n .filter((elem) => {\n if (typeof this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === this._config.parent\n }\n\n return elem.classList.contains(ClassName.COLLAPSE)\n })\n\n if (actives.length === 0) {\n actives = null\n }\n }\n\n if (actives) {\n activesData = $(actives).not(this._selector).data(DATA_KEY)\n if (activesData && activesData._isTransitioning) {\n return\n }\n }\n\n const startEvent = $.Event(Event.SHOW)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($(actives).not(this._selector), 'hide')\n if (!activesData) {\n $(actives).data(DATA_KEY, null)\n }\n }\n\n const dimension = this._getDimension()\n\n $(this._element)\n .removeClass(ClassName.COLLAPSE)\n .addClass(ClassName.COLLAPSING)\n\n this._element.style[dimension] = 0\n\n if (this._triggerArray.length) {\n $(this._triggerArray)\n .removeClass(ClassName.COLLAPSED)\n .attr('aria-expanded', true)\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .addClass(ClassName.SHOW)\n\n this._element.style[dimension] = ''\n\n this.setTransitioning(false)\n\n $(this._element).trigger(Event.SHOWN)\n }\n\n const capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1)\n const scrollSize = `scroll${capitalizedDimension}`\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n\n this._element.style[dimension] = `${this._element[scrollSize]}px`\n }\n\n hide() {\n if (this._isTransitioning ||\n !$(this._element).hasClass(ClassName.SHOW)) {\n return\n }\n\n const startEvent = $.Event(Event.HIDE)\n $(this._element).trigger(startEvent)\n if (startEvent.isDefaultPrevented()) {\n return\n }\n\n const dimension = this._getDimension()\n\n this._element.style[dimension] = `${this._element.getBoundingClientRect()[dimension]}px`\n\n Util.reflow(this._element)\n\n $(this._element)\n .addClass(ClassName.COLLAPSING)\n .removeClass(ClassName.COLLAPSE)\n .removeClass(ClassName.SHOW)\n\n const triggerArrayLength = this._triggerArray.length\n if (triggerArrayLength > 0) {\n for (let i = 0; i < triggerArrayLength; i++) {\n const trigger = this._triggerArray[i]\n const selector = Util.getSelectorFromElement(trigger)\n\n if (selector !== null) {\n const $elem = $([].slice.call(document.querySelectorAll(selector)))\n if (!$elem.hasClass(ClassName.SHOW)) {\n $(trigger).addClass(ClassName.COLLAPSED)\n .attr('aria-expanded', false)\n }\n }\n }\n }\n\n this.setTransitioning(true)\n\n const complete = () => {\n this.setTransitioning(false)\n $(this._element)\n .removeClass(ClassName.COLLAPSING)\n .addClass(ClassName.COLLAPSE)\n .trigger(Event.HIDDEN)\n }\n\n this._element.style[dimension] = ''\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n }\n\n setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._parent = null\n this._element = null\n this._triggerArray = null\n this._isTransitioning = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n config.toggle = Boolean(config.toggle) // Coerce string values\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _getDimension() {\n const hasWidth = $(this._element).hasClass(Dimension.WIDTH)\n return hasWidth ? Dimension.WIDTH : Dimension.HEIGHT\n }\n\n _getParent() {\n let parent\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent\n\n // It's a jQuery object\n if (typeof this._config.parent.jquery !== 'undefined') {\n parent = this._config.parent[0]\n }\n } else {\n parent = document.querySelector(this._config.parent)\n }\n\n const selector =\n `[data-toggle=\"collapse\"][data-parent=\"${this._config.parent}\"]`\n\n const children = [].slice.call(parent.querySelectorAll(selector))\n $(children).each((i, element) => {\n this._addAriaAndCollapsedClass(\n Collapse._getTargetFromElement(element),\n [element]\n )\n })\n\n return parent\n }\n\n _addAriaAndCollapsedClass(element, triggerArray) {\n const isOpen = $(element).hasClass(ClassName.SHOW)\n\n if (triggerArray.length) {\n $(triggerArray)\n .toggleClass(ClassName.COLLAPSED, !isOpen)\n .attr('aria-expanded', isOpen)\n }\n }\n\n // Static\n\n static _getTargetFromElement(element) {\n const selector = Util.getSelectorFromElement(element)\n return selector ? document.querySelector(selector) : null\n }\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n const _config = {\n ...Default,\n ...$this.data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data && _config.toggle && /show|hide/.test(config)) {\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n // preventDefault only for <a> elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault()\n }\n\n const $trigger = $(this)\n const selector = Util.getSelectorFromElement(this)\n const selectors = [].slice.call(document.querySelectorAll(selector))\n\n $(selectors).each(function () {\n const $target = $(this)\n const data = $target.data(DATA_KEY)\n const config = data ? 'toggle' : $trigger.data()\n Collapse._jQueryInterface.call($target, config)\n })\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Collapse._jQueryInterface\n$.fn[NAME].Constructor = Collapse\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Collapse._jQueryInterface\n}\n\nexport default Collapse\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): dropdown.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'dropdown'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.dropdown'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\nconst SPACE_KEYCODE = 32 // KeyboardEvent.which value for space key\nconst TAB_KEYCODE = 9 // KeyboardEvent.which value for tab key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst RIGHT_MOUSE_BUTTON_WHICH = 3 // MouseEvent.which value for the right button (assuming a right-handed mouse)\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_UP_KEYCODE}|${ARROW_DOWN_KEYCODE}|${ESCAPE_KEYCODE}`)\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`,\n KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}`,\n KEYUP_DATA_API : `keyup${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DISABLED : 'disabled',\n SHOW : 'show',\n DROPUP : 'dropup',\n DROPRIGHT : 'dropright',\n DROPLEFT : 'dropleft',\n MENURIGHT : 'dropdown-menu-right',\n MENULEFT : 'dropdown-menu-left',\n POSITION_STATIC : 'position-static'\n}\n\nconst Selector = {\n DATA_TOGGLE : '[data-toggle=\"dropdown\"]',\n FORM_CHILD : '.dropdown form',\n MENU : '.dropdown-menu',\n NAVBAR_NAV : '.navbar-nav',\n VISIBLE_ITEMS : '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)'\n}\n\nconst AttachmentMap = {\n TOP : 'top-start',\n TOPEND : 'top-end',\n BOTTOM : 'bottom-start',\n BOTTOMEND : 'bottom-end',\n RIGHT : 'right-start',\n RIGHTEND : 'right-end',\n LEFT : 'left-start',\n LEFTEND : 'left-end'\n}\n\nconst Default = {\n offset : 0,\n flip : true,\n boundary : 'scrollParent',\n reference : 'toggle',\n display : 'dynamic'\n}\n\nconst DefaultType = {\n offset : '(number|string|function)',\n flip : 'boolean',\n boundary : '(string|element)',\n reference : '(string|element)',\n display : 'string'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Dropdown {\n constructor(element, config) {\n this._element = element\n this._popper = null\n this._config = this._getConfig(config)\n this._menu = this._getMenuElement()\n this._inNavbar = this._detectNavbar()\n\n this._addEventListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n toggle() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this._element)\n const isActive = $(this._menu).hasClass(ClassName.SHOW)\n\n Dropdown._clearMenus()\n\n if (isActive) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n // Disable totally Popper.js for Dropdown in Navbar\n if (!this._inNavbar) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper.js (https://popper.js.org/)')\n }\n\n let referenceElement = this._element\n\n if (this._config.reference === 'parent') {\n referenceElement = parent\n } else if (Util.isElement(this._config.reference)) {\n referenceElement = this._config.reference\n\n // Check if it's jQuery element\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0]\n }\n }\n\n // If boundary is not `scrollParent`, then set position to `static`\n // to allow the menu to \"escape\" the scroll parent's boundaries\n // https://github.com/twbs/bootstrap/issues/24251\n if (this._config.boundary !== 'scrollParent') {\n $(parent).addClass(ClassName.POSITION_STATIC)\n }\n this._popper = new Popper(referenceElement, this._menu, this._getPopperConfig())\n }\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement &&\n $(parent).closest(Selector.NAVBAR_NAV).length === 0) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n this._element.focus()\n this._element.setAttribute('aria-expanded', true)\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n show() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || $(this._menu).hasClass(ClassName.SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const showEvent = $.Event(Event.SHOW, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented()) {\n return\n }\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.SHOWN, relatedTarget))\n }\n\n hide() {\n if (this._element.disabled || $(this._element).hasClass(ClassName.DISABLED) || !$(this._menu).hasClass(ClassName.SHOW)) {\n return\n }\n\n const relatedTarget = {\n relatedTarget: this._element\n }\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n const parent = Dropdown._getParentFromElement(this._element)\n\n $(parent).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(this._menu).toggleClass(ClassName.SHOW)\n $(parent)\n .toggleClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._element).off(EVENT_KEY)\n this._element = null\n this._menu = null\n if (this._popper !== null) {\n this._popper.destroy()\n this._popper = null\n }\n }\n\n update() {\n this._inNavbar = this._detectNavbar()\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Private\n\n _addEventListeners() {\n $(this._element).on(Event.CLICK, (event) => {\n event.preventDefault()\n event.stopPropagation()\n this.toggle()\n })\n }\n\n _getConfig(config) {\n config = {\n ...this.constructor.Default,\n ...$(this._element).data(),\n ...config\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _getMenuElement() {\n if (!this._menu) {\n const parent = Dropdown._getParentFromElement(this._element)\n\n if (parent) {\n this._menu = parent.querySelector(Selector.MENU)\n }\n }\n return this._menu\n }\n\n _getPlacement() {\n const $parentDropdown = $(this._element.parentNode)\n let placement = AttachmentMap.BOTTOM\n\n // Handle dropup\n if ($parentDropdown.hasClass(ClassName.DROPUP)) {\n placement = AttachmentMap.TOP\n if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.TOPEND\n }\n } else if ($parentDropdown.hasClass(ClassName.DROPRIGHT)) {\n placement = AttachmentMap.RIGHT\n } else if ($parentDropdown.hasClass(ClassName.DROPLEFT)) {\n placement = AttachmentMap.LEFT\n } else if ($(this._menu).hasClass(ClassName.MENURIGHT)) {\n placement = AttachmentMap.BOTTOMEND\n }\n return placement\n }\n\n _detectNavbar() {\n return $(this._element).closest('.navbar').length > 0\n }\n\n _getOffset() {\n const offset = {}\n\n if (typeof this._config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this._config.offset(data.offsets, this._element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this._config.offset\n }\n\n return offset\n }\n\n _getPopperConfig() {\n const popperConfig = {\n placement: this._getPlacement(),\n modifiers: {\n offset: this._getOffset(),\n flip: {\n enabled: this._config.flip\n },\n preventOverflow: {\n boundariesElement: this._config.boundary\n }\n }\n }\n\n // Disable Popper.js if we have a static display\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n }\n }\n\n return popperConfig\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data) {\n data = new Dropdown(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n\n static _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH ||\n event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return\n }\n\n const toggles = [].slice.call(document.querySelectorAll(Selector.DATA_TOGGLE))\n\n for (let i = 0, len = toggles.length; i < len; i++) {\n const parent = Dropdown._getParentFromElement(toggles[i])\n const context = $(toggles[i]).data(DATA_KEY)\n const relatedTarget = {\n relatedTarget: toggles[i]\n }\n\n if (event && event.type === 'click') {\n relatedTarget.clickEvent = event\n }\n\n if (!context) {\n continue\n }\n\n const dropdownMenu = context._menu\n if (!$(parent).hasClass(ClassName.SHOW)) {\n continue\n }\n\n if (event && (event.type === 'click' &&\n /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) &&\n $.contains(parent, event.target)) {\n continue\n }\n\n const hideEvent = $.Event(Event.HIDE, relatedTarget)\n $(parent).trigger(hideEvent)\n if (hideEvent.isDefaultPrevented()) {\n continue\n }\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n toggles[i].setAttribute('aria-expanded', 'false')\n\n $(dropdownMenu).removeClass(ClassName.SHOW)\n $(parent)\n .removeClass(ClassName.SHOW)\n .trigger($.Event(Event.HIDDEN, relatedTarget))\n }\n }\n\n static _getParentFromElement(element) {\n let parent\n const selector = Util.getSelectorFromElement(element)\n\n if (selector) {\n parent = document.querySelector(selector)\n }\n\n return parent || element.parentNode\n }\n\n // eslint-disable-next-line complexity\n static _dataApiKeydownHandler(event) {\n // If not input/textarea:\n // - And not a key in REGEXP_KEYDOWN => not a dropdown command\n // If input/textarea:\n // - If space key => not a dropdown command\n // - If key is other than escape\n // - If key is not up or down => not a dropdown command\n // - If trigger inside the menu => not a dropdown command\n if (/input|textarea/i.test(event.target.tagName)\n ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE &&\n (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE ||\n $(event.target).closest(Selector.MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n\n event.preventDefault()\n event.stopPropagation()\n\n if (this.disabled || $(this).hasClass(ClassName.DISABLED)) {\n return\n }\n\n const parent = Dropdown._getParentFromElement(this)\n const isActive = $(parent).hasClass(ClassName.SHOW)\n\n if (!isActive || isActive && (event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE)) {\n if (event.which === ESCAPE_KEYCODE) {\n const toggle = parent.querySelector(Selector.DATA_TOGGLE)\n $(toggle).trigger('focus')\n }\n\n $(this).trigger('click')\n return\n }\n\n const items = [].slice.call(parent.querySelectorAll(Selector.VISIBLE_ITEMS))\n\n if (items.length === 0) {\n return\n }\n\n let index = items.indexOf(event.target)\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) { // Up\n index--\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) { // Down\n index++\n }\n\n if (index < 0) {\n index = 0\n }\n\n items[index].focus()\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, Dropdown._dataApiKeydownHandler)\n .on(Event.KEYDOWN_DATA_API, Selector.MENU, Dropdown._dataApiKeydownHandler)\n .on(`${Event.CLICK_DATA_API} ${Event.KEYUP_DATA_API}`, Dropdown._clearMenus)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n event.stopPropagation()\n Dropdown._jQueryInterface.call($(this), 'toggle')\n })\n .on(Event.CLICK_DATA_API, Selector.FORM_CHILD, (e) => {\n e.stopPropagation()\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Dropdown._jQueryInterface\n$.fn[NAME].Constructor = Dropdown\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Dropdown._jQueryInterface\n}\n\n\nexport default Dropdown\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): modal.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'modal'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.modal'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst ESCAPE_KEYCODE = 27 // KeyboardEvent.which value for Escape (Esc) key\n\nconst Default = {\n backdrop : true,\n keyboard : true,\n focus : true,\n show : true\n}\n\nconst DefaultType = {\n backdrop : '(boolean|string)',\n keyboard : 'boolean',\n focus : 'boolean',\n show : 'boolean'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n RESIZE : `resize${EVENT_KEY}`,\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n KEYDOWN_DISMISS : `keydown.dismiss${EVENT_KEY}`,\n MOUSEUP_DISMISS : `mouseup.dismiss${EVENT_KEY}`,\n MOUSEDOWN_DISMISS : `mousedown.dismiss${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLLABLE : 'modal-dialog-scrollable',\n SCROLLBAR_MEASURER : 'modal-scrollbar-measure',\n BACKDROP : 'modal-backdrop',\n OPEN : 'modal-open',\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n DIALOG : '.modal-dialog',\n MODAL_BODY : '.modal-body',\n DATA_TOGGLE : '[data-toggle=\"modal\"]',\n DATA_DISMISS : '[data-dismiss=\"modal\"]',\n FIXED_CONTENT : '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top',\n STICKY_CONTENT : '.sticky-top'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Modal {\n constructor(element, config) {\n this._config = this._getConfig(config)\n this._element = element\n this._dialog = element.querySelector(Selector.DIALOG)\n this._backdrop = null\n this._isShown = false\n this._isBodyOverflowing = false\n this._ignoreBackdropClick = false\n this._isTransitioning = false\n this._scrollbarWidth = 0\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget)\n }\n\n show(relatedTarget) {\n if (this._isShown || this._isTransitioning) {\n return\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n this._isTransitioning = true\n }\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget\n })\n\n $(this._element).trigger(showEvent)\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = true\n\n this._checkScrollbar()\n this._setScrollbar()\n\n this._adjustDialog()\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n (event) => this.hide(event)\n )\n\n $(this._dialog).on(Event.MOUSEDOWN_DISMISS, () => {\n $(this._element).one(Event.MOUSEUP_DISMISS, (event) => {\n if ($(event.target).is(this._element)) {\n this._ignoreBackdropClick = true\n }\n })\n })\n\n this._showBackdrop(() => this._showElement(relatedTarget))\n }\n\n hide(event) {\n if (event) {\n event.preventDefault()\n }\n\n if (!this._isShown || this._isTransitioning) {\n return\n }\n\n const hideEvent = $.Event(Event.HIDE)\n\n $(this._element).trigger(hideEvent)\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return\n }\n\n this._isShown = false\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (transition) {\n this._isTransitioning = true\n }\n\n this._setEscapeEvent()\n this._setResizeEvent()\n\n $(document).off(Event.FOCUSIN)\n\n $(this._element).removeClass(ClassName.SHOW)\n\n $(this._element).off(Event.CLICK_DISMISS)\n $(this._dialog).off(Event.MOUSEDOWN_DISMISS)\n\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, (event) => this._hideModal(event))\n .emulateTransitionEnd(transitionDuration)\n } else {\n this._hideModal()\n }\n }\n\n dispose() {\n [window, this._element, this._dialog]\n .forEach((htmlElement) => $(htmlElement).off(EVENT_KEY))\n\n /**\n * `document` has 2 events `Event.FOCUSIN` and `Event.CLICK_DATA_API`\n * Do not move `document` in `htmlElements` array\n * It will remove `Event.CLICK_DATA_API` event that should remain\n */\n $(document).off(Event.FOCUSIN)\n\n $.removeData(this._element, DATA_KEY)\n\n this._config = null\n this._element = null\n this._dialog = null\n this._backdrop = null\n this._isShown = null\n this._isBodyOverflowing = null\n this._ignoreBackdropClick = null\n this._isTransitioning = null\n this._scrollbarWidth = null\n }\n\n handleUpdate() {\n this._adjustDialog()\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...config\n }\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _showElement(relatedTarget) {\n const transition = $(this._element).hasClass(ClassName.FADE)\n\n if (!this._element.parentNode ||\n this._element.parentNode.nodeType !== Node.ELEMENT_NODE) {\n // Don't move modal's DOM position\n document.body.appendChild(this._element)\n }\n\n this._element.style.display = 'block'\n this._element.removeAttribute('aria-hidden')\n this._element.setAttribute('aria-modal', true)\n\n if ($(this._dialog).hasClass(ClassName.SCROLLABLE)) {\n this._dialog.querySelector(Selector.MODAL_BODY).scrollTop = 0\n } else {\n this._element.scrollTop = 0\n }\n\n if (transition) {\n Util.reflow(this._element)\n }\n\n $(this._element).addClass(ClassName.SHOW)\n\n if (this._config.focus) {\n this._enforceFocus()\n }\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget\n })\n\n const transitionComplete = () => {\n if (this._config.focus) {\n this._element.focus()\n }\n this._isTransitioning = false\n $(this._element).trigger(shownEvent)\n }\n\n if (transition) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._dialog)\n\n $(this._dialog)\n .one(Util.TRANSITION_END, transitionComplete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n transitionComplete()\n }\n }\n\n _enforceFocus() {\n $(document)\n .off(Event.FOCUSIN) // Guard against infinite focus loop\n .on(Event.FOCUSIN, (event) => {\n if (document !== event.target &&\n this._element !== event.target &&\n $(this._element).has(event.target).length === 0) {\n this._element.focus()\n }\n })\n }\n\n _setEscapeEvent() {\n if (this._isShown && this._config.keyboard) {\n $(this._element).on(Event.KEYDOWN_DISMISS, (event) => {\n if (event.which === ESCAPE_KEYCODE) {\n event.preventDefault()\n this.hide()\n }\n })\n } else if (!this._isShown) {\n $(this._element).off(Event.KEYDOWN_DISMISS)\n }\n }\n\n _setResizeEvent() {\n if (this._isShown) {\n $(window).on(Event.RESIZE, (event) => this.handleUpdate(event))\n } else {\n $(window).off(Event.RESIZE)\n }\n }\n\n _hideModal() {\n this._element.style.display = 'none'\n this._element.setAttribute('aria-hidden', true)\n this._element.removeAttribute('aria-modal')\n this._isTransitioning = false\n this._showBackdrop(() => {\n $(document.body).removeClass(ClassName.OPEN)\n this._resetAdjustments()\n this._resetScrollbar()\n $(this._element).trigger(Event.HIDDEN)\n })\n }\n\n _removeBackdrop() {\n if (this._backdrop) {\n $(this._backdrop).remove()\n this._backdrop = null\n }\n }\n\n _showBackdrop(callback) {\n const animate = $(this._element).hasClass(ClassName.FADE)\n ? ClassName.FADE : ''\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div')\n this._backdrop.className = ClassName.BACKDROP\n\n if (animate) {\n this._backdrop.classList.add(animate)\n }\n\n $(this._backdrop).appendTo(document.body)\n\n $(this._element).on(Event.CLICK_DISMISS, (event) => {\n if (this._ignoreBackdropClick) {\n this._ignoreBackdropClick = false\n return\n }\n if (event.target !== event.currentTarget) {\n return\n }\n if (this._config.backdrop === 'static') {\n this._element.focus()\n } else {\n this.hide()\n }\n })\n\n if (animate) {\n Util.reflow(this._backdrop)\n }\n\n $(this._backdrop).addClass(ClassName.SHOW)\n\n if (!callback) {\n return\n }\n\n if (!animate) {\n callback()\n return\n }\n\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callback)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else if (!this._isShown && this._backdrop) {\n $(this._backdrop).removeClass(ClassName.SHOW)\n\n const callbackRemove = () => {\n this._removeBackdrop()\n if (callback) {\n callback()\n }\n }\n\n if ($(this._element).hasClass(ClassName.FADE)) {\n const backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop)\n\n $(this._backdrop)\n .one(Util.TRANSITION_END, callbackRemove)\n .emulateTransitionEnd(backdropTransitionDuration)\n } else {\n callbackRemove()\n }\n } else if (callback) {\n callback()\n }\n }\n\n // ----------------------------------------------------------------------\n // the following methods are used to handle overflowing modals\n // todo (fat): these should probably be refactored out of modal.js\n // ----------------------------------------------------------------------\n\n _adjustDialog() {\n const isModalOverflowing =\n this._element.scrollHeight > document.documentElement.clientHeight\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = `${this._scrollbarWidth}px`\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = `${this._scrollbarWidth}px`\n }\n }\n\n _resetAdjustments() {\n this._element.style.paddingLeft = ''\n this._element.style.paddingRight = ''\n }\n\n _checkScrollbar() {\n const rect = document.body.getBoundingClientRect()\n this._isBodyOverflowing = rect.left + rect.right < window.innerWidth\n this._scrollbarWidth = this._getScrollbarWidth()\n }\n\n _setScrollbar() {\n if (this._isBodyOverflowing) {\n // Note: DOMNode.style.paddingRight returns the actual value or '' if not set\n // while $(DOMNode).css('padding-right') returns the calculated value or 0 if not set\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT))\n const stickyContent = [].slice.call(document.querySelectorAll(Selector.STICKY_CONTENT))\n\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualPadding = element.style.paddingRight\n const calculatedPadding = $(element).css('padding-right')\n $(element)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n })\n\n // Adjust sticky content margin\n $(stickyContent).each((index, element) => {\n const actualMargin = element.style.marginRight\n const calculatedMargin = $(element).css('margin-right')\n $(element)\n .data('margin-right', actualMargin)\n .css('margin-right', `${parseFloat(calculatedMargin) - this._scrollbarWidth}px`)\n })\n\n // Adjust body padding\n const actualPadding = document.body.style.paddingRight\n const calculatedPadding = $(document.body).css('padding-right')\n $(document.body)\n .data('padding-right', actualPadding)\n .css('padding-right', `${parseFloat(calculatedPadding) + this._scrollbarWidth}px`)\n }\n\n $(document.body).addClass(ClassName.OPEN)\n }\n\n _resetScrollbar() {\n // Restore fixed content padding\n const fixedContent = [].slice.call(document.querySelectorAll(Selector.FIXED_CONTENT))\n $(fixedContent).each((index, element) => {\n const padding = $(element).data('padding-right')\n $(element).removeData('padding-right')\n element.style.paddingRight = padding ? padding : ''\n })\n\n // Restore sticky content\n const elements = [].slice.call(document.querySelectorAll(`${Selector.STICKY_CONTENT}`))\n $(elements).each((index, element) => {\n const margin = $(element).data('margin-right')\n if (typeof margin !== 'undefined') {\n $(element).css('margin-right', margin).removeData('margin-right')\n }\n })\n\n // Restore body padding\n const padding = $(document.body).data('padding-right')\n $(document.body).removeData('padding-right')\n document.body.style.paddingRight = padding ? padding : ''\n }\n\n _getScrollbarWidth() { // thx d.walsh\n const scrollDiv = document.createElement('div')\n scrollDiv.className = ClassName.SCROLLBAR_MEASURER\n document.body.appendChild(scrollDiv)\n const scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth\n document.body.removeChild(scrollDiv)\n return scrollbarWidth\n }\n\n // Static\n\n static _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = {\n ...Default,\n ...$(this).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (!data) {\n data = new Modal(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config](relatedTarget)\n } else if (_config.show) {\n data.show(relatedTarget)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document).on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n let target\n const selector = Util.getSelectorFromElement(this)\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n const config = $(target).data(DATA_KEY)\n ? 'toggle' : {\n ...$(target).data(),\n ...$(this).data()\n }\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault()\n }\n\n const $target = $(target).one(Event.SHOW, (showEvent) => {\n if (showEvent.isDefaultPrevented()) {\n // Only register focus restorer if modal will actually get shown\n return\n }\n\n $target.one(Event.HIDDEN, () => {\n if ($(this).is(':visible')) {\n this.focus()\n }\n })\n })\n\n Modal._jQueryInterface.call($(target), config, this)\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Modal._jQueryInterface\n$.fn[NAME].Constructor = Modal\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Modal._jQueryInterface\n}\n\nexport default Modal\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nconst uriAttrs = [\n 'background',\n 'cite',\n 'href',\n 'itemtype',\n 'longdesc',\n 'poster',\n 'src',\n 'xlink:href'\n]\n\nconst ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i\n\nexport const DefaultWhitelist = {\n // Global attributes allowed on any supplied element below.\n '*': ['class', 'dir', 'id', 'lang', 'role', ARIA_ATTRIBUTE_PATTERN],\n a: ['target', 'href', 'title', 'rel'],\n area: [],\n b: [],\n br: [],\n col: [],\n code: [],\n div: [],\n em: [],\n hr: [],\n h1: [],\n h2: [],\n h3: [],\n h4: [],\n h5: [],\n h6: [],\n i: [],\n img: ['src', 'alt', 'title', 'width', 'height'],\n li: [],\n ol: [],\n p: [],\n pre: [],\n s: [],\n small: [],\n span: [],\n sub: [],\n sup: [],\n strong: [],\n u: [],\n ul: []\n}\n\n/**\n * A pattern that recognizes a commonly useful subset of URLs that are safe.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^&:/?#]*(?:[/?#]|$))/gi\n\n/**\n * A pattern that matches safe data URLs. Only matches image, video and audio types.\n *\n * Shoutout to Angular 7 https://github.com/angular/angular/blob/7.2.4/packages/core/src/sanitization/url_sanitizer.ts\n */\nconst DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[a-z0-9+/]+=*$/i\n\nfunction allowedAttribute(attr, allowedAttributeList) {\n const attrName = attr.nodeName.toLowerCase()\n\n if (allowedAttributeList.indexOf(attrName) !== -1) {\n if (uriAttrs.indexOf(attrName) !== -1) {\n return Boolean(attr.nodeValue.match(SAFE_URL_PATTERN) || attr.nodeValue.match(DATA_URL_PATTERN))\n }\n\n return true\n }\n\n const regExp = allowedAttributeList.filter((attrRegex) => attrRegex instanceof RegExp)\n\n // Check if a regular expression validates the attribute.\n for (let i = 0, l = regExp.length; i < l; i++) {\n if (attrName.match(regExp[i])) {\n return true\n }\n }\n\n return false\n}\n\nexport function sanitizeHtml(unsafeHtml, whiteList, sanitizeFn) {\n if (unsafeHtml.length === 0) {\n return unsafeHtml\n }\n\n if (sanitizeFn && typeof sanitizeFn === 'function') {\n return sanitizeFn(unsafeHtml)\n }\n\n const domParser = new window.DOMParser()\n const createdDocument = domParser.parseFromString(unsafeHtml, 'text/html')\n const whitelistKeys = Object.keys(whiteList)\n const elements = [].slice.call(createdDocument.body.querySelectorAll('*'))\n\n for (let i = 0, len = elements.length; i < len; i++) {\n const el = elements[i]\n const elName = el.nodeName.toLowerCase()\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el)\n\n continue\n }\n\n const attributeList = [].slice.call(el.attributes)\n const whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || [])\n\n attributeList.forEach((attr) => {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName)\n }\n })\n }\n\n return createdDocument.body.innerHTML\n}\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tooltip.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport {\n DefaultWhitelist,\n sanitizeHtml\n} from './tools/sanitizer'\nimport $ from 'jquery'\nimport Popper from 'popper.js'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tooltip'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tooltip'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-tooltip'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\nconst DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn']\n\nconst DefaultType = {\n animation : 'boolean',\n template : 'string',\n title : '(string|element|function)',\n trigger : 'string',\n delay : '(number|object)',\n html : 'boolean',\n selector : '(string|boolean)',\n placement : '(string|function)',\n offset : '(number|string|function)',\n container : '(string|element|boolean)',\n fallbackPlacement : '(string|array)',\n boundary : '(string|element)',\n sanitize : 'boolean',\n sanitizeFn : '(null|function)',\n whiteList : 'object'\n}\n\nconst AttachmentMap = {\n AUTO : 'auto',\n TOP : 'top',\n RIGHT : 'right',\n BOTTOM : 'bottom',\n LEFT : 'left'\n}\n\nconst Default = {\n animation : true,\n template : '<div class=\"tooltip\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<div class=\"tooltip-inner\"></div></div>',\n trigger : 'hover focus',\n title : '',\n delay : 0,\n html : false,\n selector : false,\n placement : 'top',\n offset : 0,\n container : false,\n fallbackPlacement : 'flip',\n boundary : 'scrollParent',\n sanitize : true,\n sanitizeFn : null,\n whiteList : DefaultWhitelist\n}\n\nconst HoverState = {\n SHOW : 'show',\n OUT : 'out'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n TOOLTIP : '.tooltip',\n TOOLTIP_INNER : '.tooltip-inner',\n ARROW : '.arrow'\n}\n\nconst Trigger = {\n HOVER : 'hover',\n FOCUS : 'focus',\n CLICK : 'click',\n MANUAL : 'manual'\n}\n\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tooltip {\n constructor(element, config) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper.js (https://popper.js.org/)')\n }\n\n // private\n this._isEnabled = true\n this._timeout = 0\n this._hoverState = ''\n this._activeTrigger = {}\n this._popper = null\n\n // Protected\n this.element = element\n this.config = this._getConfig(config)\n this.tip = null\n\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Public\n\n enable() {\n this._isEnabled = true\n }\n\n disable() {\n this._isEnabled = false\n }\n\n toggleEnabled() {\n this._isEnabled = !this._isEnabled\n }\n\n toggle(event) {\n if (!this._isEnabled) {\n return\n }\n\n if (event) {\n const dataKey = this.constructor.DATA_KEY\n let context = $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n context._activeTrigger.click = !context._activeTrigger.click\n\n if (context._isWithActiveTrigger()) {\n context._enter(null, context)\n } else {\n context._leave(null, context)\n }\n } else {\n if ($(this.getTipElement()).hasClass(ClassName.SHOW)) {\n this._leave(null, this)\n return\n }\n\n this._enter(null, this)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n\n $.removeData(this.element, this.constructor.DATA_KEY)\n\n $(this.element).off(this.constructor.EVENT_KEY)\n $(this.element).closest('.modal').off('hide.bs.modal')\n\n if (this.tip) {\n $(this.tip).remove()\n }\n\n this._isEnabled = null\n this._timeout = null\n this._hoverState = null\n this._activeTrigger = null\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n this._popper = null\n this.element = null\n this.config = null\n this.tip = null\n }\n\n show() {\n if ($(this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements')\n }\n\n const showEvent = $.Event(this.constructor.Event.SHOW)\n if (this.isWithContent() && this._isEnabled) {\n $(this.element).trigger(showEvent)\n\n const shadowRoot = Util.findShadowRoot(this.element)\n const isInTheDom = $.contains(\n shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement,\n this.element\n )\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return\n }\n\n const tip = this.getTipElement()\n const tipId = Util.getUID(this.constructor.NAME)\n\n tip.setAttribute('id', tipId)\n this.element.setAttribute('aria-describedby', tipId)\n\n this.setContent()\n\n if (this.config.animation) {\n $(tip).addClass(ClassName.FADE)\n }\n\n const placement = typeof this.config.placement === 'function'\n ? this.config.placement.call(this, tip, this.element)\n : this.config.placement\n\n const attachment = this._getAttachment(placement)\n this.addAttachmentClass(attachment)\n\n const container = this._getContainer()\n $(tip).data(this.constructor.DATA_KEY, this)\n\n if (!$.contains(this.element.ownerDocument.documentElement, this.tip)) {\n $(tip).appendTo(container)\n }\n\n $(this.element).trigger(this.constructor.Event.INSERTED)\n\n this._popper = new Popper(this.element, tip, {\n placement: attachment,\n modifiers: {\n offset: this._getOffset(),\n flip: {\n behavior: this.config.fallbackPlacement\n },\n arrow: {\n element: Selector.ARROW\n },\n preventOverflow: {\n boundariesElement: this.config.boundary\n }\n },\n onCreate: (data) => {\n if (data.originalPlacement !== data.placement) {\n this._handlePopperPlacementChange(data)\n }\n },\n onUpdate: (data) => this._handlePopperPlacementChange(data)\n })\n\n $(tip).addClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we add extra\n // empty mouseover listeners to the body's immediate children;\n // only needed because of broken event delegation on iOS\n // https://www.quirksmode.org/blog/archives/2014/02/mouse_event_bub.html\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().on('mouseover', null, $.noop)\n }\n\n const complete = () => {\n if (this.config.animation) {\n this._fixTransition()\n }\n const prevHoverState = this._hoverState\n this._hoverState = null\n\n $(this.element).trigger(this.constructor.Event.SHOWN)\n\n if (prevHoverState === HoverState.OUT) {\n this._leave(null, this)\n }\n }\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(this.tip)\n\n $(this.tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n }\n\n hide(callback) {\n const tip = this.getTipElement()\n const hideEvent = $.Event(this.constructor.Event.HIDE)\n const complete = () => {\n if (this._hoverState !== HoverState.SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip)\n }\n\n this._cleanTipClass()\n this.element.removeAttribute('aria-describedby')\n $(this.element).trigger(this.constructor.Event.HIDDEN)\n if (this._popper !== null) {\n this._popper.destroy()\n }\n\n if (callback) {\n callback()\n }\n }\n\n $(this.element).trigger(hideEvent)\n\n if (hideEvent.isDefaultPrevented()) {\n return\n }\n\n $(tip).removeClass(ClassName.SHOW)\n\n // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n if ('ontouchstart' in document.documentElement) {\n $(document.body).children().off('mouseover', null, $.noop)\n }\n\n this._activeTrigger[Trigger.CLICK] = false\n this._activeTrigger[Trigger.FOCUS] = false\n this._activeTrigger[Trigger.HOVER] = false\n\n if ($(this.tip).hasClass(ClassName.FADE)) {\n const transitionDuration = Util.getTransitionDurationFromElement(tip)\n\n $(tip)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n\n this._hoverState = ''\n }\n\n update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate()\n }\n }\n\n // Protected\n\n isWithContent() {\n return Boolean(this.getTitle())\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const tip = this.getTipElement()\n this.setElementContent($(tip.querySelectorAll(Selector.TOOLTIP_INNER)), this.getTitle())\n $(tip).removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n setElementContent($element, content) {\n if (typeof content === 'object' && (content.nodeType || content.jquery)) {\n // Content is a DOM node or a jQuery\n if (this.config.html) {\n if (!$(content).parent().is($element)) {\n $element.empty().append(content)\n }\n } else {\n $element.text($(content).text())\n }\n\n return\n }\n\n if (this.config.html) {\n if (this.config.sanitize) {\n content = sanitizeHtml(content, this.config.whiteList, this.config.sanitizeFn)\n }\n\n $element.html(content)\n } else {\n $element.text(content)\n }\n }\n\n getTitle() {\n let title = this.element.getAttribute('data-original-title')\n\n if (!title) {\n title = typeof this.config.title === 'function'\n ? this.config.title.call(this.element)\n : this.config.title\n }\n\n return title\n }\n\n // Private\n\n _getOffset() {\n const offset = {}\n\n if (typeof this.config.offset === 'function') {\n offset.fn = (data) => {\n data.offsets = {\n ...data.offsets,\n ...this.config.offset(data.offsets, this.element) || {}\n }\n\n return data\n }\n } else {\n offset.offset = this.config.offset\n }\n\n return offset\n }\n\n _getContainer() {\n if (this.config.container === false) {\n return document.body\n }\n\n if (Util.isElement(this.config.container)) {\n return $(this.config.container)\n }\n\n return $(document).find(this.config.container)\n }\n\n _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()]\n }\n\n _setListeners() {\n const triggers = this.config.trigger.split(' ')\n\n triggers.forEach((trigger) => {\n if (trigger === 'click') {\n $(this.element).on(\n this.constructor.Event.CLICK,\n this.config.selector,\n (event) => this.toggle(event)\n )\n } else if (trigger !== Trigger.MANUAL) {\n const eventIn = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSEENTER\n : this.constructor.Event.FOCUSIN\n const eventOut = trigger === Trigger.HOVER\n ? this.constructor.Event.MOUSELEAVE\n : this.constructor.Event.FOCUSOUT\n\n $(this.element)\n .on(\n eventIn,\n this.config.selector,\n (event) => this._enter(event)\n )\n .on(\n eventOut,\n this.config.selector,\n (event) => this._leave(event)\n )\n }\n })\n\n $(this.element).closest('.modal').on(\n 'hide.bs.modal',\n () => {\n if (this.element) {\n this.hide()\n }\n }\n )\n\n if (this.config.selector) {\n this.config = {\n ...this.config,\n trigger: 'manual',\n selector: ''\n }\n } else {\n this._fixTitle()\n }\n }\n\n _fixTitle() {\n const titleType = typeof this.element.getAttribute('data-original-title')\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute(\n 'data-original-title',\n this.element.getAttribute('title') || ''\n )\n\n this.element.setAttribute('title', '')\n }\n }\n\n _enter(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusin' ? Trigger.FOCUS : Trigger.HOVER\n ] = true\n }\n\n if ($(context.getTipElement()).hasClass(ClassName.SHOW) || context._hoverState === HoverState.SHOW) {\n context._hoverState = HoverState.SHOW\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.SHOW\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.SHOW) {\n context.show()\n }\n }, context.config.delay.show)\n }\n\n _leave(event, context) {\n const dataKey = this.constructor.DATA_KEY\n context = context || $(event.currentTarget).data(dataKey)\n\n if (!context) {\n context = new this.constructor(\n event.currentTarget,\n this._getDelegateConfig()\n )\n $(event.currentTarget).data(dataKey, context)\n }\n\n if (event) {\n context._activeTrigger[\n event.type === 'focusout' ? Trigger.FOCUS : Trigger.HOVER\n ] = false\n }\n\n if (context._isWithActiveTrigger()) {\n return\n }\n\n clearTimeout(context._timeout)\n\n context._hoverState = HoverState.OUT\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide()\n return\n }\n\n context._timeout = setTimeout(() => {\n if (context._hoverState === HoverState.OUT) {\n context.hide()\n }\n }, context.config.delay.hide)\n }\n\n _isWithActiveTrigger() {\n for (const trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true\n }\n }\n\n return false\n }\n\n _getConfig(config) {\n const dataAttributes = $(this.element).data()\n\n Object.keys(dataAttributes)\n .forEach((dataAttr) => {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr]\n }\n })\n\n config = {\n ...this.constructor.Default,\n ...dataAttributes,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.delay === 'number') {\n config.delay = {\n show: config.delay,\n hide: config.delay\n }\n }\n\n if (typeof config.title === 'number') {\n config.title = config.title.toString()\n }\n\n if (typeof config.content === 'number') {\n config.content = config.content.toString()\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn)\n }\n\n return config\n }\n\n _getDelegateConfig() {\n const config = {}\n\n if (this.config) {\n for (const key in this.config) {\n if (this.constructor.Default[key] !== this.config[key]) {\n config[key] = this.config[key]\n }\n }\n }\n\n return config\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n _handlePopperPlacementChange(popperData) {\n const popperInstance = popperData.instance\n this.tip = popperInstance.popper\n this._cleanTipClass()\n this.addAttachmentClass(this._getAttachment(popperData.placement))\n }\n\n _fixTransition() {\n const tip = this.getTipElement()\n const initConfigAnimation = this.config.animation\n\n if (tip.getAttribute('x-placement') !== null) {\n return\n }\n\n $(tip).removeClass(ClassName.FADE)\n this.config.animation = false\n this.hide()\n this.show()\n this.config.animation = initConfigAnimation\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Tooltip(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tooltip._jQueryInterface\n$.fn[NAME].Constructor = Tooltip\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tooltip._jQueryInterface\n}\n\nexport default Tooltip\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): popover.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Tooltip from './tooltip'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'popover'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.popover'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst CLASS_PREFIX = 'bs-popover'\nconst BSCLS_PREFIX_REGEX = new RegExp(`(^|\\\\s)${CLASS_PREFIX}\\\\S+`, 'g')\n\nconst Default = {\n ...Tooltip.Default,\n placement : 'right',\n trigger : 'click',\n content : '',\n template : '<div class=\"popover\" role=\"tooltip\">' +\n '<div class=\"arrow\"></div>' +\n '<h3 class=\"popover-header\"></h3>' +\n '<div class=\"popover-body\"></div></div>'\n}\n\nconst DefaultType = {\n ...Tooltip.DefaultType,\n content : '(string|element|function)'\n}\n\nconst ClassName = {\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n TITLE : '.popover-header',\n CONTENT : '.popover-body'\n}\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n INSERTED : `inserted${EVENT_KEY}`,\n CLICK : `click${EVENT_KEY}`,\n FOCUSIN : `focusin${EVENT_KEY}`,\n FOCUSOUT : `focusout${EVENT_KEY}`,\n MOUSEENTER : `mouseenter${EVENT_KEY}`,\n MOUSELEAVE : `mouseleave${EVENT_KEY}`\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Popover extends Tooltip {\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n static get NAME() {\n return NAME\n }\n\n static get DATA_KEY() {\n return DATA_KEY\n }\n\n static get Event() {\n return Event\n }\n\n static get EVENT_KEY() {\n return EVENT_KEY\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n // Overrides\n\n isWithContent() {\n return this.getTitle() || this._getContent()\n }\n\n addAttachmentClass(attachment) {\n $(this.getTipElement()).addClass(`${CLASS_PREFIX}-${attachment}`)\n }\n\n getTipElement() {\n this.tip = this.tip || $(this.config.template)[0]\n return this.tip\n }\n\n setContent() {\n const $tip = $(this.getTipElement())\n\n // We use append for html objects to maintain js events\n this.setElementContent($tip.find(Selector.TITLE), this.getTitle())\n let content = this._getContent()\n if (typeof content === 'function') {\n content = content.call(this.element)\n }\n this.setElementContent($tip.find(Selector.CONTENT), content)\n\n $tip.removeClass(`${ClassName.FADE} ${ClassName.SHOW}`)\n }\n\n // Private\n\n _getContent() {\n return this.element.getAttribute('data-content') ||\n this.config.content\n }\n\n _cleanTipClass() {\n const $tip = $(this.getTipElement())\n const tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX)\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''))\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' ? config : null\n\n if (!data && /dispose|hide/.test(config)) {\n return\n }\n\n if (!data) {\n data = new Popover(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Popover._jQueryInterface\n$.fn[NAME].Constructor = Popover\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Popover._jQueryInterface\n}\n\nexport default Popover\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): scrollspy.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollspy'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollspy'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst DefaultType = {\n offset : 'number',\n method : 'string',\n target : '(string|element)'\n}\n\nconst Event = {\n ACTIVATE : `activate${EVENT_KEY}`,\n SCROLL : `scroll${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_ITEM : 'dropdown-item',\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active'\n}\n\nconst Selector = {\n DATA_SPY : '[data-spy=\"scroll\"]',\n ACTIVE : '.active',\n NAV_LIST_GROUP : '.nav, .list-group',\n NAV_LINKS : '.nav-link',\n NAV_ITEMS : '.nav-item',\n LIST_ITEMS : '.list-group-item',\n DROPDOWN : '.dropdown',\n DROPDOWN_ITEMS : '.dropdown-item',\n DROPDOWN_TOGGLE : '.dropdown-toggle'\n}\n\nconst OffsetMethod = {\n OFFSET : 'offset',\n POSITION : 'position'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollSpy {\n constructor(element, config) {\n this._element = element\n this._scrollElement = element.tagName === 'BODY' ? window : element\n this._config = this._getConfig(config)\n this._selector = `${this._config.target} ${Selector.NAV_LINKS},` +\n `${this._config.target} ${Selector.LIST_ITEMS},` +\n `${this._config.target} ${Selector.DROPDOWN_ITEMS}`\n this._offsets = []\n this._targets = []\n this._activeTarget = null\n this._scrollHeight = 0\n\n $(this._scrollElement).on(Event.SCROLL, (event) => this._process(event))\n\n this.refresh()\n this._process()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n refresh() {\n const autoMethod = this._scrollElement === this._scrollElement.window\n ? OffsetMethod.OFFSET : OffsetMethod.POSITION\n\n const offsetMethod = this._config.method === 'auto'\n ? autoMethod : this._config.method\n\n const offsetBase = offsetMethod === OffsetMethod.POSITION\n ? this._getScrollTop() : 0\n\n this._offsets = []\n this._targets = []\n\n this._scrollHeight = this._getScrollHeight()\n\n const targets = [].slice.call(document.querySelectorAll(this._selector))\n\n targets\n .map((element) => {\n let target\n const targetSelector = Util.getSelectorFromElement(element)\n\n if (targetSelector) {\n target = document.querySelector(targetSelector)\n }\n\n if (target) {\n const targetBCR = target.getBoundingClientRect()\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [\n $(target)[offsetMethod]().top + offsetBase,\n targetSelector\n ]\n }\n }\n return null\n })\n .filter((item) => item)\n .sort((a, b) => a[0] - b[0])\n .forEach((item) => {\n this._offsets.push(item[0])\n this._targets.push(item[1])\n })\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n $(this._scrollElement).off(EVENT_KEY)\n\n this._element = null\n this._scrollElement = null\n this._config = null\n this._selector = null\n this._offsets = null\n this._targets = null\n this._activeTarget = null\n this._scrollHeight = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...typeof config === 'object' && config ? config : {}\n }\n\n if (typeof config.target !== 'string') {\n let id = $(config.target).attr('id')\n if (!id) {\n id = Util.getUID(NAME)\n $(config.target).attr('id', id)\n }\n config.target = `#${id}`\n }\n\n Util.typeCheckConfig(NAME, config, DefaultType)\n\n return config\n }\n\n _getScrollTop() {\n return this._scrollElement === window\n ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop\n }\n\n _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(\n document.body.scrollHeight,\n document.documentElement.scrollHeight\n )\n }\n\n _getOffsetHeight() {\n return this._scrollElement === window\n ? window.innerHeight : this._scrollElement.getBoundingClientRect().height\n }\n\n _process() {\n const scrollTop = this._getScrollTop() + this._config.offset\n const scrollHeight = this._getScrollHeight()\n const maxScroll = this._config.offset +\n scrollHeight -\n this._getOffsetHeight()\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh()\n }\n\n if (scrollTop >= maxScroll) {\n const target = this._targets[this._targets.length - 1]\n\n if (this._activeTarget !== target) {\n this._activate(target)\n }\n return\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null\n this._clear()\n return\n }\n\n const offsetLength = this._offsets.length\n for (let i = offsetLength; i--;) {\n const isActiveTarget = this._activeTarget !== this._targets[i] &&\n scrollTop >= this._offsets[i] &&\n (typeof this._offsets[i + 1] === 'undefined' ||\n scrollTop < this._offsets[i + 1])\n\n if (isActiveTarget) {\n this._activate(this._targets[i])\n }\n }\n }\n\n _activate(target) {\n this._activeTarget = target\n\n this._clear()\n\n const queries = this._selector\n .split(',')\n .map((selector) => `${selector}[data-target=\"${target}\"],${selector}[href=\"${target}\"]`)\n\n const $link = $([].slice.call(document.querySelectorAll(queries.join(','))))\n\n if ($link.hasClass(ClassName.DROPDOWN_ITEM)) {\n $link.closest(Selector.DROPDOWN).find(Selector.DROPDOWN_TOGGLE).addClass(ClassName.ACTIVE)\n $link.addClass(ClassName.ACTIVE)\n } else {\n // Set triggered link as active\n $link.addClass(ClassName.ACTIVE)\n // Set triggered links parents as active\n // With both <ul> and <nav> markup a parent is the previous sibling of any nav ancestor\n $link.parents(Selector.NAV_LIST_GROUP).prev(`${Selector.NAV_LINKS}, ${Selector.LIST_ITEMS}`).addClass(ClassName.ACTIVE)\n // Handle special case when .nav-link is inside .nav-item\n $link.parents(Selector.NAV_LIST_GROUP).prev(Selector.NAV_ITEMS).children(Selector.NAV_LINKS).addClass(ClassName.ACTIVE)\n }\n\n $(this._scrollElement).trigger(Event.ACTIVATE, {\n relatedTarget: target\n })\n }\n\n _clear() {\n [].slice.call(document.querySelectorAll(this._selector))\n .filter((node) => node.classList.contains(ClassName.ACTIVE))\n .forEach((node) => node.classList.remove(ClassName.ACTIVE))\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new ScrollSpy(this, _config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(window).on(Event.LOAD_DATA_API, () => {\n const scrollSpys = [].slice.call(document.querySelectorAll(Selector.DATA_SPY))\n const scrollSpysLength = scrollSpys.length\n\n for (let i = scrollSpysLength; i--;) {\n const $spy = $(scrollSpys[i])\n ScrollSpy._jQueryInterface.call($spy, $spy.data())\n }\n})\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = ScrollSpy._jQueryInterface\n$.fn[NAME].Constructor = ScrollSpy\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollSpy._jQueryInterface\n}\n\nexport default ScrollSpy\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): tab.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'tab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.tab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Event = {\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`,\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n DROPDOWN_MENU : 'dropdown-menu',\n ACTIVE : 'active',\n DISABLED : 'disabled',\n FADE : 'fade',\n SHOW : 'show'\n}\n\nconst Selector = {\n DROPDOWN : '.dropdown',\n NAV_LIST_GROUP : '.nav, .list-group',\n ACTIVE : '.active',\n ACTIVE_UL : '> li > .active',\n DATA_TOGGLE : '[data-toggle=\"tab\"], [data-toggle=\"pill\"], [data-toggle=\"list\"]',\n DROPDOWN_TOGGLE : '.dropdown-toggle',\n DROPDOWN_ACTIVE_CHILD : '> .dropdown-menu .active'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Tab {\n constructor(element) {\n this._element = element\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n // Public\n\n show() {\n if (this._element.parentNode &&\n this._element.parentNode.nodeType === Node.ELEMENT_NODE &&\n $(this._element).hasClass(ClassName.ACTIVE) ||\n $(this._element).hasClass(ClassName.DISABLED)) {\n return\n }\n\n let target\n let previous\n const listElement = $(this._element).closest(Selector.NAV_LIST_GROUP)[0]\n const selector = Util.getSelectorFromElement(this._element)\n\n if (listElement) {\n const itemSelector = listElement.nodeName === 'UL' || listElement.nodeName === 'OL' ? Selector.ACTIVE_UL : Selector.ACTIVE\n previous = $.makeArray($(listElement).find(itemSelector))\n previous = previous[previous.length - 1]\n }\n\n const hideEvent = $.Event(Event.HIDE, {\n relatedTarget: this._element\n })\n\n const showEvent = $.Event(Event.SHOW, {\n relatedTarget: previous\n })\n\n if (previous) {\n $(previous).trigger(hideEvent)\n }\n\n $(this._element).trigger(showEvent)\n\n if (showEvent.isDefaultPrevented() ||\n hideEvent.isDefaultPrevented()) {\n return\n }\n\n if (selector) {\n target = document.querySelector(selector)\n }\n\n this._activate(\n this._element,\n listElement\n )\n\n const complete = () => {\n const hiddenEvent = $.Event(Event.HIDDEN, {\n relatedTarget: this._element\n })\n\n const shownEvent = $.Event(Event.SHOWN, {\n relatedTarget: previous\n })\n\n $(previous).trigger(hiddenEvent)\n $(this._element).trigger(shownEvent)\n }\n\n if (target) {\n this._activate(target, target.parentNode, complete)\n } else {\n complete()\n }\n }\n\n dispose() {\n $.removeData(this._element, DATA_KEY)\n this._element = null\n }\n\n // Private\n\n _activate(element, container, callback) {\n const activeElements = container && (container.nodeName === 'UL' || container.nodeName === 'OL')\n ? $(container).find(Selector.ACTIVE_UL)\n : $(container).children(Selector.ACTIVE)\n\n const active = activeElements[0]\n const isTransitioning = callback && (active && $(active).hasClass(ClassName.FADE))\n const complete = () => this._transitionComplete(\n element,\n active,\n callback\n )\n\n if (active && isTransitioning) {\n const transitionDuration = Util.getTransitionDurationFromElement(active)\n\n $(active)\n .removeClass(ClassName.SHOW)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n _transitionComplete(element, active, callback) {\n if (active) {\n $(active).removeClass(ClassName.ACTIVE)\n\n const dropdownChild = $(active.parentNode).find(\n Selector.DROPDOWN_ACTIVE_CHILD\n )[0]\n\n if (dropdownChild) {\n $(dropdownChild).removeClass(ClassName.ACTIVE)\n }\n\n if (active.getAttribute('role') === 'tab') {\n active.setAttribute('aria-selected', false)\n }\n }\n\n $(element).addClass(ClassName.ACTIVE)\n if (element.getAttribute('role') === 'tab') {\n element.setAttribute('aria-selected', true)\n }\n\n Util.reflow(element)\n\n if (element.classList.contains(ClassName.FADE)) {\n element.classList.add(ClassName.SHOW)\n }\n\n if (element.parentNode && $(element.parentNode).hasClass(ClassName.DROPDOWN_MENU)) {\n const dropdownElement = $(element).closest(Selector.DROPDOWN)[0]\n\n if (dropdownElement) {\n const dropdownToggleList = [].slice.call(dropdownElement.querySelectorAll(Selector.DROPDOWN_TOGGLE))\n\n $(dropdownToggleList).addClass(ClassName.ACTIVE)\n }\n\n element.setAttribute('aria-expanded', true)\n }\n\n if (callback) {\n callback()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $this = $(this)\n let data = $this.data(DATA_KEY)\n\n if (!data) {\n data = new Tab(this)\n $this.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n data[config]()\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(document)\n .on(Event.CLICK_DATA_API, Selector.DATA_TOGGLE, function (event) {\n event.preventDefault()\n Tab._jQueryInterface.call($(this), 'show')\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Tab._jQueryInterface\n$.fn[NAME].Constructor = Tab\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Tab._jQueryInterface\n}\n\nexport default Tab\n","/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): toast.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'toast'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.toast'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst Event = {\n CLICK_DISMISS : `click.dismiss${EVENT_KEY}`,\n HIDE : `hide${EVENT_KEY}`,\n HIDDEN : `hidden${EVENT_KEY}`,\n SHOW : `show${EVENT_KEY}`,\n SHOWN : `shown${EVENT_KEY}`\n}\n\nconst ClassName = {\n FADE : 'fade',\n HIDE : 'hide',\n SHOW : 'show',\n SHOWING : 'showing'\n}\n\nconst DefaultType = {\n animation : 'boolean',\n autohide : 'boolean',\n delay : 'number'\n}\n\nconst Default = {\n animation : true,\n autohide : true,\n delay : 500\n}\n\nconst Selector = {\n DATA_DISMISS : '[data-dismiss=\"toast\"]'\n}\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Toast {\n constructor(element, config) {\n this._element = element\n this._config = this._getConfig(config)\n this._timeout = null\n this._setListeners()\n }\n\n // Getters\n\n static get VERSION() {\n return VERSION\n }\n\n static get DefaultType() {\n return DefaultType\n }\n\n static get Default() {\n return Default\n }\n\n // Public\n\n show() {\n $(this._element).trigger(Event.SHOW)\n\n if (this._config.animation) {\n this._element.classList.add(ClassName.FADE)\n }\n\n const complete = () => {\n this._element.classList.remove(ClassName.SHOWING)\n this._element.classList.add(ClassName.SHOW)\n\n $(this._element).trigger(Event.SHOWN)\n\n if (this._config.autohide) {\n this.hide()\n }\n }\n\n this._element.classList.remove(ClassName.HIDE)\n this._element.classList.add(ClassName.SHOWING)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n hide(withoutTimeout) {\n if (!this._element.classList.contains(ClassName.SHOW)) {\n return\n }\n\n $(this._element).trigger(Event.HIDE)\n\n if (withoutTimeout) {\n this._close()\n } else {\n this._timeout = setTimeout(() => {\n this._close()\n }, this._config.delay)\n }\n }\n\n dispose() {\n clearTimeout(this._timeout)\n this._timeout = null\n\n if (this._element.classList.contains(ClassName.SHOW)) {\n this._element.classList.remove(ClassName.SHOW)\n }\n\n $(this._element).off(Event.CLICK_DISMISS)\n\n $.removeData(this._element, DATA_KEY)\n this._element = null\n this._config = null\n }\n\n // Private\n\n _getConfig(config) {\n config = {\n ...Default,\n ...$(this._element).data(),\n ...typeof config === 'object' && config ? config : {}\n }\n\n Util.typeCheckConfig(\n NAME,\n config,\n this.constructor.DefaultType\n )\n\n return config\n }\n\n _setListeners() {\n $(this._element).on(\n Event.CLICK_DISMISS,\n Selector.DATA_DISMISS,\n () => this.hide(true)\n )\n }\n\n _close() {\n const complete = () => {\n this._element.classList.add(ClassName.HIDE)\n $(this._element).trigger(Event.HIDDEN)\n }\n\n this._element.classList.remove(ClassName.SHOW)\n if (this._config.animation) {\n const transitionDuration = Util.getTransitionDurationFromElement(this._element)\n\n $(this._element)\n .one(Util.TRANSITION_END, complete)\n .emulateTransitionEnd(transitionDuration)\n } else {\n complete()\n }\n }\n\n // Static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n const $element = $(this)\n let data = $element.data(DATA_KEY)\n const _config = typeof config === 'object' && config\n\n if (!data) {\n data = new Toast(this, _config)\n $element.data(DATA_KEY, data)\n }\n\n if (typeof config === 'string') {\n if (typeof data[config] === 'undefined') {\n throw new TypeError(`No method named \"${config}\"`)\n }\n\n data[config](this)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Toast._jQueryInterface\n$.fn[NAME].Constructor = Toast\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Toast._jQueryInterface\n}\n\nexport default Toast\n","import $ from 'jquery'\nimport Alert from './alert'\nimport Button from './button'\nimport Carousel from './carousel'\nimport Collapse from './collapse'\nimport Dropdown from './dropdown'\nimport Modal from './modal'\nimport Popover from './popover'\nimport Scrollspy from './scrollspy'\nimport Tab from './tab'\nimport Toast from './toast'\nimport Tooltip from './tooltip'\nimport Util from './util'\n\n/**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.3.1): index.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\n(() => {\n if (typeof $ === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.')\n }\n\n const version = $.fn.jquery.split(' ')[0].split('.')\n const minMajor = 1\n const ltMajor = 2\n const minMinor = 9\n const minPatch = 1\n const maxMajor = 4\n\n if (version[0] < ltMajor && version[1] < minMinor || version[0] === minMajor && version[1] === minMinor && version[2] < minPatch || version[0] >= maxMajor) {\n throw new Error('Bootstrap\\'s JavaScript requires at least jQuery v1.9.1 but less than v4.0.0')\n }\n})()\n\nexport {\n Util,\n Alert,\n Button,\n Carousel,\n Collapse,\n Dropdown,\n Modal,\n Popover,\n Scrollspy,\n Tab,\n Toast,\n Tooltip\n}\n","import $ from 'jquery';\n\nvar globalID = 1;\nvar pastWarnings = {};\n\nvar Utils = {\n // Parsley DOM-API\n // returns object from dom attributes and values\n attr: function (element, namespace, obj) {\n var i;\n var attribute;\n var attributes;\n var regex = new RegExp('^' + namespace, 'i');\n\n if ('undefined' === typeof obj)\n obj = {};\n else {\n // Clear all own properties. This won't affect prototype's values\n for (i in obj) {\n if (obj.hasOwnProperty(i))\n delete obj[i];\n }\n }\n\n if (!element)\n return obj;\n\n attributes = element.attributes;\n for (i = attributes.length; i--; ) {\n attribute = attributes[i];\n\n if (attribute && attribute.specified && regex.test(attribute.name)) {\n obj[this.camelize(attribute.name.slice(namespace.length))] = this.deserializeValue(attribute.value);\n }\n }\n\n return obj;\n },\n\n checkAttr: function (element, namespace, checkAttr) {\n return element.hasAttribute(namespace + checkAttr);\n },\n\n setAttr: function (element, namespace, attr, value) {\n element.setAttribute(this.dasherize(namespace + attr), String(value));\n },\n\n getType: function(element) {\n return element.getAttribute('type') || 'text';\n },\n\n generateID: function () {\n return '' + globalID++;\n },\n\n /** Third party functions **/\n deserializeValue: function (value) {\n var num;\n\n try {\n return value ?\n value == \"true\" ||\n (value == \"false\" ? false :\n value == \"null\" ? null :\n !isNaN(num = Number(value)) ? num :\n /^[\\[\\{]/.test(value) ? JSON.parse(value) :\n value)\n : value;\n } catch (e) { return value; }\n },\n\n // Zepto camelize function\n camelize: function (str) {\n return str.replace(/-+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n });\n },\n\n // Zepto dasherize function\n dasherize: function (str) {\n return str.replace(/::/g, '/')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')\n .replace(/([a-z\\d])([A-Z])/g, '$1_$2')\n .replace(/_/g, '-')\n .toLowerCase();\n },\n\n warn: function () {\n if (window.console && 'function' === typeof window.console.warn)\n window.console.warn(...arguments);\n },\n\n warnOnce: function(msg) {\n if (!pastWarnings[msg]) {\n pastWarnings[msg] = true;\n this.warn(...arguments);\n }\n },\n\n _resetWarnings: function () {\n pastWarnings = {};\n },\n\n trimString: function(string) {\n return string.replace(/^\\s+|\\s+$/g, '');\n },\n\n parse: {\n date: function(string) {\n let parsed = string.match(/^(\\d{4,})-(\\d\\d)-(\\d\\d)$/);\n if (!parsed)\n return null;\n let [_, year, month, day] = parsed.map(x => parseInt(x, 10));\n let date = new Date(year, month - 1, day);\n if (date.getFullYear() !== year || date.getMonth() + 1 !== month || date.getDate() !== day)\n return null;\n return date;\n },\n string: function(string) {\n return string;\n },\n integer: function(string) {\n if (isNaN(string))\n return null;\n return parseInt(string, 10);\n },\n number: function(string) {\n if (isNaN(string))\n throw null;\n return parseFloat(string);\n },\n 'boolean': function _boolean(string) {\n return !(/^\\s*false\\s*$/i.test(string));\n },\n object: function(string) {\n return Utils.deserializeValue(string);\n },\n regexp: function(regexp) {\n var flags = '';\n\n // Test if RegExp is literal, if not, nothing to be done, otherwise, we need to isolate flags and pattern\n if (/^\\/.*\\/(?:[gimy]*)$/.test(regexp)) {\n // Replace the regexp literal string with the first match group: ([gimy]*)\n // If no flag is present, this will be a blank string\n flags = regexp.replace(/.*\\/([gimy]*)$/, '$1');\n // Again, replace the regexp literal string with the first match group:\n // everything excluding the opening and closing slashes and the flags\n regexp = regexp.replace(new RegExp('^/(.*?)/' + flags + '$'), '$1');\n } else {\n // Anchor regexp:\n regexp = '^' + regexp + '$';\n }\n return new RegExp(regexp, flags);\n }\n },\n\n parseRequirement: function(requirementType, string) {\n var converter = this.parse[requirementType || 'string'];\n if (!converter)\n throw 'Unknown requirement specification: \"' + requirementType + '\"';\n let converted = converter(string);\n if (converted === null)\n throw `Requirement is not a ${requirementType}: \"${string}\"`;\n return converted;\n },\n\n namespaceEvents: function(events, namespace) {\n events = this.trimString(events || '').split(/\\s+/);\n if (!events[0])\n return '';\n return $.map(events, evt => `${evt}.${namespace}`).join(' ');\n },\n\n difference: function(array, remove) {\n // This is O(N^2), should be optimized\n let result = [];\n $.each(array, (_, elem) => {\n if (remove.indexOf(elem) == -1)\n result.push(elem);\n });\n return result;\n },\n\n // Alter-ego to native Promise.all, but for jQuery\n all: function(promises) {\n // jQuery treats $.when() and $.when(singlePromise) differently; let's avoid that and add spurious elements\n return $.when(...promises, 42, 42);\n },\n\n // Object.create polyfill, see https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create#Polyfill\n objectCreate: Object.create || (function () {\n var Object = function () {};\n return function (prototype) {\n if (arguments.length > 1) {\n throw Error('Second argument not supported');\n }\n if (typeof prototype != 'object') {\n throw TypeError('Argument must be an object');\n }\n Object.prototype = prototype;\n var result = new Object();\n Object.prototype = null;\n return result;\n };\n })(),\n\n _SubmitSelector: 'input[type=\"submit\"], button:submit'\n};\n\nexport default Utils;\n","// All these options could be overriden and specified directly in DOM using\n// `data-parsley-` default DOM-API\n// eg: `inputs` can be set in DOM using `data-parsley-inputs=\"input, textarea\"`\n// eg: `data-parsley-stop-on-first-failing-constraint=\"false\"`\n\nvar Defaults = {\n // ### General\n\n // Default data-namespace for DOM API\n namespace: 'data-parsley-',\n\n // Supported inputs by default\n inputs: 'input, textarea, select',\n\n // Excluded inputs by default\n excluded: 'input[type=button], input[type=submit], input[type=reset], input[type=hidden]',\n\n // Stop validating field on highest priority failing constraint\n priorityEnabled: true,\n\n // ### Field only\n\n // identifier used to group together inputs (e.g. radio buttons...)\n multiple: null,\n\n // identifier (or array of identifiers) used to validate only a select group of inputs\n group: null,\n\n // ### UI\n // Enable\\Disable error messages\n uiEnabled: true,\n\n // Key events threshold before validation\n validationThreshold: 3,\n\n // Focused field on form validation error. 'first'|'last'|'none'\n focus: 'first',\n\n // event(s) that will trigger validation before first failure. eg: `input`...\n trigger: false,\n\n // event(s) that will trigger validation after first failure.\n triggerAfterFailure: 'input',\n\n // Class that would be added on every failing validation Parsley field\n errorClass: 'parsley-error',\n\n // Same for success validation\n successClass: 'parsley-success',\n\n // Return the `$element` that will receive these above success or error classes\n // Could also be (and given directly from DOM) a valid selector like `'#div'`\n classHandler: function (Field) {},\n\n // Return the `$element` where errors will be appended\n // Could also be (and given directly from DOM) a valid selector like `'#div'`\n errorsContainer: function (Field) {},\n\n // ul elem that would receive errors' list\n errorsWrapper: '<ul class=\"parsley-errors-list\"></ul>',\n\n // li elem that would receive error message\n errorTemplate: '<li></li>'\n};\n\nexport default Defaults;\n","import $ from 'jquery';\nimport Utils from './utils';\n\nvar Base = function () {\n this.__id__ = Utils.generateID();\n};\n\nBase.prototype = {\n asyncSupport: true, // Deprecated\n\n _pipeAccordingToValidationResult: function () {\n var pipe = () => {\n var r = $.Deferred();\n if (true !== this.validationResult)\n r.reject();\n return r.resolve().promise();\n };\n return [pipe, pipe];\n },\n\n actualizeOptions: function () {\n Utils.attr(this.element, this.options.namespace, this.domOptions);\n if (this.parent && this.parent.actualizeOptions)\n this.parent.actualizeOptions();\n return this;\n },\n\n _resetOptions: function (initOptions) {\n this.domOptions = Utils.objectCreate(this.parent.options);\n this.options = Utils.objectCreate(this.domOptions);\n // Shallow copy of ownProperties of initOptions:\n for (var i in initOptions) {\n if (initOptions.hasOwnProperty(i))\n this.options[i] = initOptions[i];\n }\n this.actualizeOptions();\n },\n\n _listeners: null,\n\n // Register a callback for the given event name\n // Callback is called with context as the first argument and the `this`\n // The context is the current parsley instance, or window.Parsley if global\n // A return value of `false` will interrupt the calls\n on: function (name, fn) {\n this._listeners = this._listeners || {};\n var queue = this._listeners[name] = this._listeners[name] || [];\n queue.push(fn);\n\n return this;\n },\n\n // Deprecated. Use `on` instead\n subscribe: function(name, fn) {\n $.listenTo(this, name.toLowerCase(), fn);\n },\n\n // Unregister a callback (or all if none is given) for the given event name\n off: function (name, fn) {\n var queue = this._listeners && this._listeners[name];\n if (queue) {\n if (!fn) {\n delete this._listeners[name];\n } else {\n for (var i = queue.length; i--; )\n if (queue[i] === fn)\n queue.splice(i, 1);\n }\n }\n return this;\n },\n\n // Deprecated. Use `off`\n unsubscribe: function(name, fn) {\n $.unsubscribeTo(this, name.toLowerCase());\n },\n\n // Trigger an event of the given name\n // A return value of `false` interrupts the callback chain\n // Returns false if execution was interrupted\n trigger: function (name, target, extraArg) {\n target = target || this;\n var queue = this._listeners && this._listeners[name];\n var result;\n var parentResult;\n if (queue) {\n for (var i = queue.length; i--; ) {\n result = queue[i].call(target, target, extraArg);\n if (result === false) return result;\n }\n }\n if (this.parent) {\n return this.parent.trigger(name, target, extraArg);\n }\n return true;\n },\n\n asyncIsValid: function (group, force) {\n Utils.warnOnce(\"asyncIsValid is deprecated; please use whenValid instead\");\n return this.whenValid({group, force});\n },\n\n _findRelated: function () {\n return this.options.multiple ?\n $(this.parent.element.querySelectorAll(`[${this.options.namespace}multiple=\"${this.options.multiple}\"]`))\n : this.$element;\n }\n};\n\nexport default Base;\n","import $ from 'jquery';\nimport Utils from './utils';\n\nvar convertArrayRequirement = function(string, length) {\n var m = string.match(/^\\s*\\[(.*)\\]\\s*$/);\n if (!m)\n throw 'Requirement is not an array: \"' + string + '\"';\n var values = m[1].split(',').map(Utils.trimString);\n if (values.length !== length)\n throw 'Requirement has ' + values.length + ' values when ' + length + ' are needed';\n return values;\n};\n\nvar convertExtraOptionRequirement = function(requirementSpec, string, extraOptionReader) {\n var main = null;\n var extra = {};\n for (var key in requirementSpec) {\n if (key) {\n var value = extraOptionReader(key);\n if ('string' === typeof value)\n value = Utils.parseRequirement(requirementSpec[key], value);\n extra[key] = value;\n } else {\n main = Utils.parseRequirement(requirementSpec[key], string);\n }\n }\n return [main, extra];\n};\n\n// A Validator needs to implement the methods `validate` and `parseRequirements`\n\nvar Validator = function(spec) {\n $.extend(true, this, spec);\n};\n\nValidator.prototype = {\n // Returns `true` iff the given `value` is valid according the given requirements.\n validate: function(value, requirementFirstArg) {\n if (this.fn) { // Legacy style validator\n\n if (arguments.length > 3) // If more args then value, requirement, instance...\n requirementFirstArg = [].slice.call(arguments, 1, -1); // Skip first arg (value) and last (instance), combining the rest\n return this.fn(value, requirementFirstArg);\n }\n\n if (Array.isArray(value)) {\n if (!this.validateMultiple)\n throw 'Validator `' + this.name + '` does not handle multiple values';\n return this.validateMultiple(...arguments);\n } else {\n let instance = arguments[arguments.length - 1];\n if (this.validateDate && instance._isDateInput()) {\n arguments[0] = Utils.parse.date(arguments[0]);\n if (arguments[0] === null)\n return false;\n return this.validateDate(...arguments);\n }\n if (this.validateNumber) {\n if (!value) // Builtin validators all accept empty strings, except `required` of course\n return true;\n if (isNaN(value))\n return false;\n arguments[0] = parseFloat(arguments[0]);\n return this.validateNumber(...arguments);\n }\n if (this.validateString) {\n return this.validateString(...arguments);\n }\n throw 'Validator `' + this.name + '` only handles multiple values';\n }\n },\n\n // Parses `requirements` into an array of arguments,\n // according to `this.requirementType`\n parseRequirements: function(requirements, extraOptionReader) {\n if ('string' !== typeof requirements) {\n // Assume requirement already parsed\n // but make sure we return an array\n return Array.isArray(requirements) ? requirements : [requirements];\n }\n var type = this.requirementType;\n if (Array.isArray(type)) {\n var values = convertArrayRequirement(requirements, type.length);\n for (var i = 0; i < values.length; i++)\n values[i] = Utils.parseRequirement(type[i], values[i]);\n return values;\n } else if ($.isPlainObject(type)) {\n return convertExtraOptionRequirement(type, requirements, extraOptionReader);\n } else {\n return [Utils.parseRequirement(type, requirements)];\n }\n },\n // Defaults:\n requirementType: 'string',\n\n priority: 2\n\n};\n\nexport default Validator;\n","import $ from 'jquery';\nimport Utils from './utils';\nimport Defaults from './defaults';\nimport Validator from './validator';\n\nvar ValidatorRegistry = function (validators, catalog) {\n this.__class__ = 'ValidatorRegistry';\n\n // Default Parsley locale is en\n this.locale = 'en';\n\n this.init(validators || {}, catalog || {});\n};\n\nvar typeTesters = {\n email: /^((([a-zA-Z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+(\\.([a-zA-Z]|\\d|[!#\\$%&'\\*\\+\\-\\/=\\?\\^_`{\\|}~]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])+)*)|((\\x22)((((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(([\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x7f]|\\x21|[\\x23-\\x5b]|[\\x5d-\\x7e]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(\\\\([\\x01-\\x09\\x0b\\x0c\\x0d-\\x7f]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF]))))*(((\\x20|\\x09)*(\\x0d\\x0a))?(\\x20|\\x09)+)?(\\x22)))@((([a-zA-Z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-zA-Z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-zA-Z]|\\d|-|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-zA-Z]|\\d|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))\\.)+(([a-zA-Z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])|(([a-zA-Z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])([a-zA-Z]|\\d|-|_|~|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])*([a-zA-Z]|[\\u00A0-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFEF])))$/,\n\n // Follow https://www.w3.org/TR/html5/infrastructure.html#floating-point-numbers\n number: /^-?(\\d*\\.)?\\d+(e[-+]?\\d+)?$/i,\n\n integer: /^-?\\d+$/,\n\n digits: /^\\d+$/,\n\n alphanum: /^\\w+$/i,\n\n date: {\n test: value => Utils.parse.date(value) !== null\n },\n\n url: new RegExp(\n \"^\" +\n // protocol identifier\n \"(?:(?:https?|ftp)://)?\" + // ** mod: make scheme optional\n // user:pass authentication\n \"(?:\\\\S+(?::\\\\S*)?@)?\" +\n \"(?:\" +\n // IP address exclusion\n // private & local networks\n // \"(?!(?:10|127)(?:\\\\.\\\\d{1,3}){3})\" + // ** mod: allow local networks\n // \"(?!(?:169\\\\.254|192\\\\.168)(?:\\\\.\\\\d{1,3}){2})\" + // ** mod: allow local networks\n // \"(?!172\\\\.(?:1[6-9]|2\\\\d|3[0-1])(?:\\\\.\\\\d{1,3}){2})\" + // ** mod: allow local networks\n // IP address dotted notation octets\n // excludes loopback network 0.0.0.0\n // excludes reserved space >= 224.0.0.0\n // excludes network & broacast addresses\n // (first & last IP address of each class)\n \"(?:[1-9]\\\\d?|1\\\\d\\\\d|2[01]\\\\d|22[0-3])\" +\n \"(?:\\\\.(?:1?\\\\d{1,2}|2[0-4]\\\\d|25[0-5])){2}\" +\n \"(?:\\\\.(?:[1-9]\\\\d?|1\\\\d\\\\d|2[0-4]\\\\d|25[0-4]))\" +\n \"|\" +\n // host name\n \"(?:(?:[a-zA-Z\\\\u00a1-\\\\uffff0-9]-*)*[a-zA-Z\\\\u00a1-\\\\uffff0-9]+)\" +\n // domain name\n \"(?:\\\\.(?:[a-zA-Z\\\\u00a1-\\\\uffff0-9]-*)*[a-zA-Z\\\\u00a1-\\\\uffff0-9]+)*\" +\n // TLD identifier\n \"(?:\\\\.(?:[a-zA-Z\\\\u00a1-\\\\uffff]{2,}))\" +\n \")\" +\n // port number\n \"(?::\\\\d{2,5})?\" +\n // resource path\n \"(?:/\\\\S*)?\" +\n \"$\"\n )\n};\ntypeTesters.range = typeTesters.number;\n\n// See http://stackoverflow.com/a/10454560/8279\nvar decimalPlaces = num => {\n var match = ('' + num).match(/(?:\\.(\\d+))?(?:[eE]([+-]?\\d+))?$/);\n if (!match) { return 0; }\n return Math.max(\n 0,\n // Number of digits right of decimal point.\n (match[1] ? match[1].length : 0) -\n // Adjust for scientific notation.\n (match[2] ? +match[2] : 0));\n};\n\n// parseArguments('number', ['1', '2']) => [1, 2]\nlet parseArguments = (type, args) => args.map(Utils.parse[type]);\n// operatorToValidator returns a validating function for an operator function, applied to the given type\nlet operatorToValidator = (type, operator) => {\n return (value, ...requirementsAndInput) => {\n requirementsAndInput.pop(); // Get rid of `input` argument\n return operator(value, ...parseArguments(type, requirementsAndInput));\n };\n};\n\nlet comparisonOperator = operator => ({\n validateDate: operatorToValidator('date', operator),\n validateNumber: operatorToValidator('number', operator),\n requirementType: operator.length <= 2 ? 'string' : ['string', 'string'], // Support operators with a 1 or 2 requirement(s)\n priority: 30\n});\n\nValidatorRegistry.prototype = {\n init: function (validators, catalog) {\n this.catalog = catalog;\n // Copy prototype's validators:\n this.validators = Object.assign({}, this.validators);\n\n for (var name in validators)\n this.addValidator(name, validators[name].fn, validators[name].priority);\n\n window.Parsley.trigger('parsley:validator:init');\n },\n\n // Set new messages locale if we have dictionary loaded in ParsleyConfig.i18n\n setLocale: function (locale) {\n if ('undefined' === typeof this.catalog[locale])\n throw new Error(locale + ' is not available in the catalog');\n\n this.locale = locale;\n\n return this;\n },\n\n // Add a new messages catalog for a given locale. Set locale for this catalog if set === `true`\n addCatalog: function (locale, messages, set) {\n if ('object' === typeof messages)\n this.catalog[locale] = messages;\n\n if (true === set)\n return this.setLocale(locale);\n\n return this;\n },\n\n // Add a specific message for a given constraint in a given locale\n addMessage: function (locale, name, message) {\n if ('undefined' === typeof this.catalog[locale])\n this.catalog[locale] = {};\n\n this.catalog[locale][name] = message;\n\n return this;\n },\n\n // Add messages for a given locale\n addMessages: function (locale, nameMessageObject) {\n for (var name in nameMessageObject)\n this.addMessage(locale, name, nameMessageObject[name]);\n\n return this;\n },\n\n // Add a new validator\n //\n // addValidator('custom', {\n // requirementType: ['integer', 'integer'],\n // validateString: function(value, from, to) {},\n // priority: 22,\n // messages: {\n // en: \"Hey, that's no good\",\n // fr: \"Aye aye, pas bon du tout\",\n // }\n // })\n //\n // Old API was addValidator(name, function, priority)\n //\n addValidator: function (name, arg1, arg2) {\n if (this.validators[name])\n Utils.warn('Validator \"' + name + '\" is already defined.');\n else if (Defaults.hasOwnProperty(name)) {\n Utils.warn('\"' + name + '\" is a restricted keyword and is not a valid validator name.');\n return;\n }\n return this._setValidator(...arguments);\n },\n\n hasValidator: function (name) {\n return !!this.validators[name];\n },\n\n updateValidator: function (name, arg1, arg2) {\n if (!this.validators[name]) {\n Utils.warn('Validator \"' + name + '\" is not already defined.');\n return this.addValidator(...arguments);\n }\n return this._setValidator(...arguments);\n },\n\n removeValidator: function (name) {\n if (!this.validators[name])\n Utils.warn('Validator \"' + name + '\" is not defined.');\n\n delete this.validators[name];\n\n return this;\n },\n\n _setValidator: function (name, validator, priority) {\n if ('object' !== typeof validator) {\n // Old style validator, with `fn` and `priority`\n validator = {\n fn: validator,\n priority: priority\n };\n }\n if (!validator.validate) {\n validator = new Validator(validator);\n }\n this.validators[name] = validator;\n\n for (var locale in validator.messages || {})\n this.addMessage(locale, name, validator.messages[locale]);\n\n return this;\n },\n\n getErrorMessage: function (constraint) {\n var message;\n\n // Type constraints are a bit different, we have to match their requirements too to find right error message\n if ('type' === constraint.name) {\n var typeMessages = this.catalog[this.locale][constraint.name] || {};\n message = typeMessages[constraint.requirements];\n } else\n message = this.formatMessage(this.catalog[this.locale][constraint.name], constraint.requirements);\n\n return message || this.catalog[this.locale].defaultMessage || this.catalog.en.defaultMessage;\n },\n\n // Kind of light `sprintf()` implementation\n formatMessage: function (string, parameters) {\n if ('object' === typeof parameters) {\n for (var i in parameters)\n string = this.formatMessage(string, parameters[i]);\n\n return string;\n }\n\n return 'string' === typeof string ? string.replace(/%s/i, parameters) : '';\n },\n\n // Here is the Parsley default validators list.\n // A validator is an object with the following key values:\n // - priority: an integer\n // - requirement: 'string' (default), 'integer', 'number', 'regexp' or an Array of these\n // - validateString, validateMultiple, validateNumber: functions returning `true`, `false` or a promise\n // Alternatively, a validator can be a function that returns such an object\n //\n validators: {\n notblank: {\n validateString: function(value) {\n return /\\S/.test(value);\n },\n priority: 2\n },\n required: {\n validateMultiple: function(values) {\n return values.length > 0;\n },\n validateString: function(value) {\n return /\\S/.test(value);\n },\n priority: 512\n },\n type: {\n validateString: function(value, type, {step = 'any', base = 0} = {}) {\n var tester = typeTesters[type];\n if (!tester) {\n throw new Error('validator type `' + type + '` is not supported');\n }\n if (!value)\n return true; // Builtin validators all accept empty strings, except `required` of course\n if (!tester.test(value))\n return false;\n if ('number' === type) {\n if (!/^any$/i.test(step || '')) {\n var nb = Number(value);\n var decimals = Math.max(decimalPlaces(step), decimalPlaces(base));\n if (decimalPlaces(nb) > decimals) // Value can't have too many decimals\n return false;\n // Be careful of rounding errors by using integers.\n var toInt = f => Math.round(f * Math.pow(10, decimals));\n if ((toInt(nb) - toInt(base)) % toInt(step) != 0)\n return false;\n }\n }\n return true;\n },\n requirementType: {\n '': 'string',\n step: 'string',\n base: 'number'\n },\n priority: 256\n },\n pattern: {\n validateString: function(value, regexp) {\n if (!value)\n return true; // Builtin validators all accept empty strings, except `required` of course\n return regexp.test(value);\n },\n requirementType: 'regexp',\n priority: 64\n },\n minlength: {\n validateString: function (value, requirement) {\n if (!value)\n return true; // Builtin validators all accept empty strings, except `required` of course\n return value.length >= requirement;\n },\n requirementType: 'integer',\n priority: 30\n },\n maxlength: {\n validateString: function (value, requirement) {\n return value.length <= requirement;\n },\n requirementType: 'integer',\n priority: 30\n },\n length: {\n validateString: function (value, min, max) {\n if (!value)\n return true; // Builtin validators all accept empty strings, except `required` of course\n return value.length >= min && value.length <= max;\n },\n requirementType: ['integer', 'integer'],\n priority: 30\n },\n mincheck: {\n validateMultiple: function (values, requirement) {\n return values.length >= requirement;\n },\n requirementType: 'integer',\n priority: 30\n },\n maxcheck: {\n validateMultiple: function (values, requirement) {\n return values.length <= requirement;\n },\n requirementType: 'integer',\n priority: 30\n },\n check: {\n validateMultiple: function (values, min, max) {\n return values.length >= min && values.length <= max;\n },\n requirementType: ['integer', 'integer'],\n priority: 30\n },\n min: comparisonOperator((value, requirement) => value >= requirement),\n max: comparisonOperator((value, requirement) => value <= requirement),\n range: comparisonOperator((value, min, max) => value >= min && value <= max),\n equalto: {\n validateString: function (value, refOrValue) {\n if (!value)\n return true; // Builtin validators all accept empty strings, except `required` of course\n var $reference = $(refOrValue);\n if ($reference.length)\n return value === $reference.val();\n else\n return value === refOrValue;\n },\n priority: 256\n },\n euvatin: {\n validateString: function (value, refOrValue) {\n if (!value) {\n return true; // Builtin validators all accept empty strings, except `required` of course\n }\n\n var re = /^[A-Z][A-Z][A-Za-z0-9 -]{2,}$/;\n return re.test(value);\n },\n priority: 30,\n },\n }\n};\n\nexport default ValidatorRegistry;\n","import $ from 'jquery';\nimport Utils from './utils';\n\nvar UI = {};\n\nvar diffResults = function (newResult, oldResult, deep) {\n var added = [];\n var kept = [];\n\n for (var i = 0; i < newResult.length; i++) {\n var found = false;\n\n for (var j = 0; j < oldResult.length; j++)\n if (newResult[i].assert.name === oldResult[j].assert.name) {\n found = true;\n break;\n }\n\n if (found)\n kept.push(newResult[i]);\n else\n added.push(newResult[i]);\n }\n\n return {\n kept: kept,\n added: added,\n removed: !deep ? diffResults(oldResult, newResult, true).added : []\n };\n};\n\nUI.Form = {\n\n _actualizeTriggers: function () {\n this.$element.on('submit.Parsley', evt => { this.onSubmitValidate(evt); });\n this.$element.on('click.Parsley', Utils._SubmitSelector, evt => { this.onSubmitButton(evt); });\n\n // UI could be disabled\n if (false === this.options.uiEnabled)\n return;\n\n this.element.setAttribute('novalidate', '');\n },\n\n focus: function () {\n this._focusedField = null;\n\n if (true === this.validationResult || 'none' === this.options.focus)\n return null;\n\n for (var i = 0; i < this.fields.length; i++) {\n var field = this.fields[i];\n if (true !== field.validationResult && field.validationResult.length > 0 && 'undefined' === typeof field.options.noFocus) {\n this._focusedField = field.$element;\n if ('first' === this.options.focus)\n break;\n }\n }\n\n if (null === this._focusedField)\n return null;\n\n return this._focusedField.focus();\n },\n\n _destroyUI: function () {\n // Reset all event listeners\n this.$element.off('.Parsley');\n }\n\n};\n\nUI.Field = {\n\n _reflowUI: function () {\n this._buildUI();\n\n // If this field doesn't have an active UI don't bother doing something\n if (!this._ui)\n return;\n\n // Diff between two validation results\n var diff = diffResults(this.validationResult, this._ui.lastValidationResult);\n\n // Then store current validation result for next reflow\n this._ui.lastValidationResult = this.validationResult;\n\n // Handle valid / invalid / none field class\n this._manageStatusClass();\n\n // Add, remove, updated errors messages\n this._manageErrorsMessages(diff);\n\n // Triggers impl\n this._actualizeTriggers();\n\n // If field is not valid for the first time, bind keyup trigger to ease UX and quickly inform user\n if ((diff.kept.length || diff.added.length) && !this._failedOnce) {\n this._failedOnce = true;\n this._actualizeTriggers();\n }\n },\n\n // Returns an array of field's error message(s)\n getErrorsMessages: function () {\n // No error message, field is valid\n if (true === this.validationResult)\n return [];\n\n var messages = [];\n\n for (var i = 0; i < this.validationResult.length; i++)\n messages.push(this.validationResult[i].errorMessage ||\n this._getErrorMessage(this.validationResult[i].assert));\n\n return messages;\n },\n\n // It's a goal of Parsley that this method is no longer required [#1073]\n addError: function (name, {message, assert, updateClass = true} = {}) {\n this._buildUI();\n this._addError(name, {message, assert});\n\n if (updateClass)\n this._errorClass();\n },\n\n // It's a goal of Parsley that this method is no longer required [#1073]\n updateError: function (name, {message, assert, updateClass = true} = {}) {\n this._buildUI();\n this._updateError(name, {message, assert});\n\n if (updateClass)\n this._errorClass();\n },\n\n // It's a goal of Parsley that this method is no longer required [#1073]\n removeError: function (name, {updateClass = true} = {}) {\n this._buildUI();\n this._removeError(name);\n\n // edge case possible here: remove a standard Parsley error that is still failing in this.validationResult\n // but highly improbable cuz' manually removing a well Parsley handled error makes no sense.\n if (updateClass)\n this._manageStatusClass();\n },\n\n _manageStatusClass: function () {\n if (this.hasConstraints() && this.needsValidation() && true === this.validationResult)\n this._successClass();\n else if (this.validationResult.length > 0)\n this._errorClass();\n else\n this._resetClass();\n },\n\n _manageErrorsMessages: function (diff) {\n if ('undefined' !== typeof this.options.errorsMessagesDisabled)\n return;\n\n // Case where we have errorMessage option that configure an unique field error message, regardless failing validators\n if ('undefined' !== typeof this.options.errorMessage) {\n if ((diff.added.length || diff.kept.length)) {\n this._insertErrorWrapper();\n\n if (0 === this._ui.$errorsWrapper.find('.parsley-custom-error-message').length)\n this._ui.$errorsWrapper\n .append(\n $(this.options.errorTemplate)\n .addClass('parsley-custom-error-message')\n );\n\n return this._ui.$errorsWrapper\n .addClass('filled')\n .find('.parsley-custom-error-message')\n .html(this.options.errorMessage);\n }\n\n return this._ui.$errorsWrapper\n .removeClass('filled')\n .find('.parsley-custom-error-message')\n .remove();\n }\n\n // Show, hide, update failing constraints messages\n for (var i = 0; i < diff.removed.length; i++)\n this._removeError(diff.removed[i].assert.name);\n\n for (i = 0; i < diff.added.length; i++)\n this._addError(diff.added[i].assert.name, {message: diff.added[i].errorMessage, assert: diff.added[i].assert});\n\n for (i = 0; i < diff.kept.length; i++)\n this._updateError(diff.kept[i].assert.name, {message: diff.kept[i].errorMessage, assert: diff.kept[i].assert});\n },\n\n\n _addError: function (name, {message, assert}) {\n this._insertErrorWrapper();\n this._ui.$errorClassHandler\n .attr('aria-describedby', this._ui.errorsWrapperId);\n this._ui.$errorsWrapper\n .addClass('filled')\n .append(\n $(this.options.errorTemplate)\n .addClass('parsley-' + name)\n .html(message || this._getErrorMessage(assert))\n );\n },\n\n _updateError: function (name, {message, assert}) {\n this._ui.$errorsWrapper\n .addClass('filled')\n .find('.parsley-' + name)\n .html(message || this._getErrorMessage(assert));\n },\n\n _removeError: function (name) {\n this._ui.$errorClassHandler\n .removeAttr('aria-describedby');\n this._ui.$errorsWrapper\n .removeClass('filled')\n .find('.parsley-' + name)\n .remove();\n },\n\n _getErrorMessage: function (constraint) {\n var customConstraintErrorMessage = constraint.name + 'Message';\n\n if ('undefined' !== typeof this.options[customConstraintErrorMessage])\n return window.Parsley.formatMessage(this.options[customConstraintErrorMessage], constraint.requirements);\n\n return window.Parsley.getErrorMessage(constraint);\n },\n\n _buildUI: function () {\n // UI could be already built or disabled\n if (this._ui || false === this.options.uiEnabled)\n return;\n\n var _ui = {};\n\n // Give field its Parsley id in DOM\n this.element.setAttribute(this.options.namespace + 'id', this.__id__);\n\n /** Generate important UI elements and store them in this **/\n // $errorClassHandler is the $element that woul have parsley-error and parsley-success classes\n _ui.$errorClassHandler = this._manageClassHandler();\n\n // $errorsWrapper is a div that would contain the various field errors, it will be appended into $errorsContainer\n _ui.errorsWrapperId = 'parsley-id-' + (this.options.multiple ? 'multiple-' + this.options.multiple : this.__id__);\n _ui.$errorsWrapper = $(this.options.errorsWrapper).attr('id', _ui.errorsWrapperId);\n\n // ValidationResult UI storage to detect what have changed bwt two validations, and update DOM accordingly\n _ui.lastValidationResult = [];\n _ui.validationInformationVisible = false;\n\n // Store it in this for later\n this._ui = _ui;\n },\n\n // Determine which element will have `parsley-error` and `parsley-success` classes\n _manageClassHandler: function () {\n // Class handled could also be determined by function given in Parsley options\n if ('string' === typeof this.options.classHandler && $(this.options.classHandler).length)\n return $(this.options.classHandler);\n\n // Class handled could also be determined by function given in Parsley options\n var $handlerFunction = this.options.classHandler;\n\n // It might also be the function name of a global function\n if ('string' === typeof this.options.classHandler && 'function' === typeof window[this.options.classHandler])\n $handlerFunction = window[this.options.classHandler];\n\n if ('function' === typeof $handlerFunction) {\n var $handler = $handlerFunction.call(this, this);\n\n // If this function returned a valid existing DOM element, go for it\n if ('undefined' !== typeof $handler && $handler.length)\n return $handler;\n } else if ('object' === typeof $handlerFunction && $handlerFunction instanceof jQuery && $handlerFunction.length) {\n return $handlerFunction;\n } else if ($handlerFunction) {\n Utils.warn('The class handler `' + $handlerFunction + '` does not exist in DOM nor as a global JS function');\n }\n\n return this._inputHolder();\n },\n\n _inputHolder: function() {\n // if simple element (input, texatrea, select...) it will perfectly host the classes and precede the error container\n if (!this.options.multiple || this.element.nodeName === 'SELECT')\n return this.$element;\n\n // But if multiple element (radio, checkbox), that would be their parent\n return this.$element.parent();\n },\n\n _insertErrorWrapper: function () {\n var $errorsContainer = this.options.errorsContainer;\n\n // Nothing to do if already inserted\n if (0 !== this._ui.$errorsWrapper.parent().length)\n return this._ui.$errorsWrapper.parent();\n\n if ('string' === typeof $errorsContainer) {\n if ($($errorsContainer).length)\n return $($errorsContainer).append(this._ui.$errorsWrapper);\n else if ('function' === typeof window[$errorsContainer])\n $errorsContainer = window[$errorsContainer];\n else\n Utils.warn('The errors container `' + $errorsContainer + '` does not exist in DOM nor as a global JS function');\n }\n\n if ('function' === typeof $errorsContainer)\n $errorsContainer = $errorsContainer.call(this, this);\n\n if ('object' === typeof $errorsContainer && $errorsContainer.length)\n return $errorsContainer.append(this._ui.$errorsWrapper);\n\n return this._inputHolder().after(this._ui.$errorsWrapper);\n },\n\n _actualizeTriggers: function () {\n var $toBind = this._findRelated();\n var trigger;\n\n // Remove Parsley events already bound on this field\n $toBind.off('.Parsley');\n if (this._failedOnce)\n $toBind.on(Utils.namespaceEvents(this.options.triggerAfterFailure, 'Parsley'), () => {\n this._validateIfNeeded();\n });\n else if (trigger = Utils.namespaceEvents(this.options.trigger, 'Parsley')) {\n $toBind.on(trigger, event => {\n this._validateIfNeeded(event);\n });\n }\n },\n\n _validateIfNeeded: function (event) {\n // For keyup, keypress, keydown, input... events that could be a little bit obstrusive\n // do not validate if val length < min threshold on first validation. Once field have been validated once and info\n // about success or failure have been displayed, always validate with this trigger to reflect every yalidation change.\n if (event && /key|input/.test(event.type))\n if (!(this._ui && this._ui.validationInformationVisible) && this.getValue().length <= this.options.validationThreshold)\n return;\n\n if (this.options.debounce) {\n window.clearTimeout(this._debounced);\n this._debounced = window.setTimeout(() => this.validate(), this.options.debounce);\n } else\n this.validate();\n },\n\n _resetUI: function () {\n // Reset all event listeners\n this._failedOnce = false;\n this._actualizeTriggers();\n\n // Nothing to do if UI never initialized for this field\n if ('undefined' === typeof this._ui)\n return;\n\n // Reset all errors' li\n this._ui.$errorsWrapper\n .removeClass('filled')\n .children()\n .remove();\n\n // Reset validation class\n this._resetClass();\n\n // Reset validation flags and last validation result\n this._ui.lastValidationResult = [];\n this._ui.validationInformationVisible = false;\n },\n\n _destroyUI: function () {\n this._resetUI();\n\n if ('undefined' !== typeof this._ui)\n this._ui.$errorsWrapper.remove();\n\n delete this._ui;\n },\n\n _successClass: function () {\n this._ui.validationInformationVisible = true;\n this._ui.$errorClassHandler.removeClass(this.options.errorClass).addClass(this.options.successClass);\n },\n _errorClass: function () {\n this._ui.validationInformationVisible = true;\n this._ui.$errorClassHandler.removeClass(this.options.successClass).addClass(this.options.errorClass);\n },\n _resetClass: function () {\n this._ui.$errorClassHandler.removeClass(this.options.successClass).removeClass(this.options.errorClass);\n }\n};\n\nexport default UI;\n","import $ from 'jquery';\nimport Base from './base';\nimport Utils from './utils';\n\nvar Form = function (element, domOptions, options) {\n this.__class__ = 'Form';\n\n this.element = element;\n this.$element = $(element);\n this.domOptions = domOptions;\n this.options = options;\n this.parent = window.Parsley;\n\n this.fields = [];\n this.validationResult = null;\n};\n\nvar statusMapping = {pending: null, resolved: true, rejected: false};\n\nForm.prototype = {\n onSubmitValidate: function (event) {\n // This is a Parsley generated submit event, do not validate, do not prevent, simply exit and keep normal behavior\n if (true === event.parsley)\n return;\n\n // If we didn't come here through a submit button, use the first one in the form\n var submitSource = this._submitSource || this.$element.find(Utils._SubmitSelector)[0];\n this._submitSource = null;\n this.$element.find('.parsley-synthetic-submit-button').prop('disabled', true);\n if (submitSource && null !== submitSource.getAttribute('formnovalidate'))\n return;\n\n window.Parsley._remoteCache = {};\n\n var promise = this.whenValidate({event});\n\n if ('resolved' === promise.state() && false !== this._trigger('submit')) {\n // All good, let event go through. We make this distinction because browsers\n // differ in their handling of `submit` being called from inside a submit event [#1047]\n } else {\n // Rejected or pending: cancel this submit\n event.stopImmediatePropagation();\n event.preventDefault();\n if ('pending' === promise.state())\n promise.done(() => { this._submit(submitSource); });\n }\n },\n\n onSubmitButton: function(event) {\n this._submitSource = event.currentTarget;\n },\n // internal\n // _submit submits the form, this time without going through the validations.\n // Care must be taken to \"fake\" the actual submit button being clicked.\n _submit: function (submitSource) {\n if (false === this._trigger('submit'))\n return;\n // Add submit button's data\n if (submitSource) {\n var $synthetic = this.$element.find('.parsley-synthetic-submit-button').prop('disabled', false);\n if (0 === $synthetic.length)\n $synthetic = $('<input class=\"parsley-synthetic-submit-button\" type=\"hidden\">').appendTo(this.$element);\n $synthetic.attr({\n name: submitSource.getAttribute('name'),\n value: submitSource.getAttribute('value')\n });\n }\n\n this.$element.trigger(Object.assign($.Event('submit'), {parsley: true}));\n },\n\n // Performs validation on fields while triggering events.\n // @returns `true` if all validations succeeds, `false`\n // if a failure is immediately detected, or `null`\n // if dependant on a promise.\n // Consider using `whenValidate` instead.\n validate: function (options) {\n if (arguments.length >= 1 && !$.isPlainObject(options)) {\n Utils.warnOnce('Calling validate on a parsley form without passing arguments as an object is deprecated.');\n var [group, force, event] = arguments;\n options = {group, force, event};\n }\n return statusMapping[ this.whenValidate(options).state() ];\n },\n\n whenValidate: function ({group, force, event} = {}) {\n this.submitEvent = event;\n if (event) {\n this.submitEvent = Object.assign({}, event, {preventDefault: () => {\n Utils.warnOnce(\"Using `this.submitEvent.preventDefault()` is deprecated; instead, call `this.validationResult = false`\");\n this.validationResult = false;\n }});\n }\n this.validationResult = true;\n\n // fire validate event to eventually modify things before every validation\n this._trigger('validate');\n\n // Refresh form DOM options and form's fields that could have changed\n this._refreshFields();\n\n var promises = this._withoutReactualizingFormOptions(() => {\n return $.map(this.fields, field => field.whenValidate({force, group}));\n });\n\n return Utils.all(promises)\n .done( () => { this._trigger('success'); })\n .fail( () => {\n this.validationResult = false;\n this.focus();\n this._trigger('error');\n })\n .always(() => { this._trigger('validated'); })\n .pipe(...this._pipeAccordingToValidationResult());\n },\n\n // Iterate over refreshed fields, and stop on first failure.\n // Returns `true` if all fields are valid, `false` if a failure is detected\n // or `null` if the result depends on an unresolved promise.\n // Prefer using `whenValid` instead.\n isValid: function (options) {\n if (arguments.length >= 1 && !$.isPlainObject(options)) {\n Utils.warnOnce('Calling isValid on a parsley form without passing arguments as an object is deprecated.');\n var [group, force] = arguments;\n options = {group, force};\n }\n return statusMapping[ this.whenValid(options).state() ];\n },\n\n // Iterate over refreshed fields and validate them.\n // Returns a promise.\n // A validation that immediately fails will interrupt the validations.\n whenValid: function ({group, force} = {}) {\n this._refreshFields();\n\n var promises = this._withoutReactualizingFormOptions(() => {\n return $.map(this.fields, field => field.whenValid({group, force}));\n });\n return Utils.all(promises);\n },\n\n refresh: function() {\n this._refreshFields();\n return this;\n },\n\n // Reset UI\n reset: function () {\n // Form case: emit a reset event for each field\n for (var i = 0; i < this.fields.length; i++)\n this.fields[i].reset();\n\n this._trigger('reset');\n },\n\n // Destroy Parsley instance (+ UI)\n destroy: function () {\n // Field case: emit destroy event to clean UI and then destroy stored instance\n this._destroyUI();\n\n // Form case: destroy all its fields and then destroy stored instance\n for (var i = 0; i < this.fields.length; i++)\n this.fields[i].destroy();\n\n this.$element.removeData('Parsley');\n this._trigger('destroy');\n },\n\n _refreshFields: function () {\n return this.actualizeOptions()._bindFields();\n },\n\n _bindFields: function () {\n var oldFields = this.fields;\n\n this.fields = [];\n this.fieldsMappedById = {};\n\n this._withoutReactualizingFormOptions(() => {\n this.$element\n .find(this.options.inputs)\n .not(this.options.excluded)\n .not(`[${this.options.namespace}excluded=true]`)\n .each((_, element) => {\n var fieldInstance = new window.Parsley.Factory(element, {}, this);\n\n // Only add valid and not excluded `Field` and `FieldMultiple` children\n if ('Field' === fieldInstance.__class__ || 'FieldMultiple' === fieldInstance.__class__) {\n let uniqueId = fieldInstance.__class__ + '-' + fieldInstance.__id__;\n if ('undefined' === typeof this.fieldsMappedById[uniqueId]) {\n this.fieldsMappedById[uniqueId] = fieldInstance;\n this.fields.push(fieldInstance);\n }\n }\n });\n\n $.each(Utils.difference(oldFields, this.fields), (_, field) => {\n field.reset();\n });\n });\n return this;\n },\n\n // Internal only.\n // Looping on a form's fields to do validation or similar\n // will trigger reactualizing options on all of them, which\n // in turn will reactualize the form's options.\n // To avoid calling actualizeOptions so many times on the form\n // for nothing, _withoutReactualizingFormOptions temporarily disables\n // the method actualizeOptions on this form while `fn` is called.\n _withoutReactualizingFormOptions: function (fn) {\n var oldActualizeOptions = this.actualizeOptions;\n this.actualizeOptions = function () { return this; };\n var result = fn();\n this.actualizeOptions = oldActualizeOptions;\n return result;\n },\n\n // Internal only.\n // Shortcut to trigger an event\n // Returns true iff event is not interrupted and default not prevented.\n _trigger: function (eventName) {\n return this.trigger('form:' + eventName);\n }\n\n};\n\nexport default Form;\n","import Utils from './utils';\nimport Validator from './validator';\n\nconst Constraint = function(parsleyField, name, requirements, priority, isDomConstraint) {\n const validatorSpec = window.Parsley._validatorRegistry.validators[name];\n const validator = new Validator(validatorSpec);\n priority = priority || parsleyField.options[name + 'Priority'] || validator.priority;\n isDomConstraint = (true === isDomConstraint);\n\n Object.assign(this, {\n validator,\n name,\n requirements,\n priority,\n isDomConstraint\n });\n this._parseRequirements(parsleyField.options);\n};\n\nconst capitalize = function(str) {\n const cap = str[0].toUpperCase();\n return cap + str.slice(1);\n};\n\nConstraint.prototype = {\n validate: function(value, instance) {\n return this.validator.validate(value, ...this.requirementList, instance);\n },\n\n _parseRequirements: function(options) {\n this.requirementList = this.validator.parseRequirements(this.requirements,\n key => options[this.name + capitalize(key)]\n );\n }\n};\n\nexport default Constraint;\n","import $ from 'jquery';\nimport Constraint from './constraint';\nimport UI from './ui';\nimport Utils from './utils';\n\nvar Field = function (field, domOptions, options, parsleyFormInstance) {\n this.__class__ = 'Field';\n\n this.element = field;\n this.$element = $(field);\n\n // Set parent if we have one\n if ('undefined' !== typeof parsleyFormInstance) {\n this.parent = parsleyFormInstance;\n }\n\n this.options = options;\n this.domOptions = domOptions;\n\n // Initialize some properties\n this.constraints = [];\n this.constraintsByName = {};\n this.validationResult = true;\n\n // Bind constraints\n this._bindConstraints();\n};\n\nvar statusMapping = {pending: null, resolved: true, rejected: false};\n\nField.prototype = {\n // # Public API\n // Validate field and trigger some events for mainly `UI`\n // @returns `true`, an array of the validators that failed, or\n // `null` if validation is not finished. Prefer using whenValidate\n validate: function (options) {\n if (arguments.length >= 1 && !$.isPlainObject(options)) {\n Utils.warnOnce('Calling validate on a parsley field without passing arguments as an object is deprecated.');\n options = {options};\n }\n var promise = this.whenValidate(options);\n if (!promise) // If excluded with `group` option\n return true;\n switch (promise.state()) {\n case 'pending': return null;\n case 'resolved': return true;\n case 'rejected': return this.validationResult;\n }\n },\n\n // Validate field and trigger some events for mainly `UI`\n // @returns a promise that succeeds only when all validations do\n // or `undefined` if field is not in the given `group`.\n whenValidate: function ({force, group} = {}) {\n // do not validate a field if not the same as given validation group\n this.refresh();\n if (group && !this._isInGroup(group))\n return;\n\n this.value = this.getValue();\n\n // Field Validate event. `this.value` could be altered for custom needs\n this._trigger('validate');\n\n return this.whenValid({force, value: this.value, _refreshed: true})\n .always(() => { this._reflowUI(); })\n .done(() => { this._trigger('success'); })\n .fail(() => { this._trigger('error'); })\n .always(() => { this._trigger('validated'); })\n .pipe(...this._pipeAccordingToValidationResult());\n },\n\n hasConstraints: function () {\n return 0 !== this.constraints.length;\n },\n\n // An empty optional field does not need validation\n needsValidation: function (value) {\n if ('undefined' === typeof value)\n value = this.getValue();\n\n // If a field is empty and not required, it is valid\n // Except if `data-parsley-validate-if-empty` explicitely added, useful for some custom validators\n if (!value.length && !this._isRequired() && 'undefined' === typeof this.options.validateIfEmpty)\n return false;\n\n return true;\n },\n\n _isInGroup: function (group) {\n if (Array.isArray(this.options.group))\n return -1 !== $.inArray(group, this.options.group);\n return this.options.group === group;\n },\n\n // Just validate field. Do not trigger any event.\n // Returns `true` iff all constraints pass, `false` if there are failures,\n // or `null` if the result can not be determined yet (depends on a promise)\n // See also `whenValid`.\n isValid: function (options) {\n if (arguments.length >= 1 && !$.isPlainObject(options)) {\n Utils.warnOnce('Calling isValid on a parsley field without passing arguments as an object is deprecated.');\n var [force, value] = arguments;\n options = {force, value};\n }\n var promise = this.whenValid(options);\n if (!promise) // Excluded via `group`\n return true;\n return statusMapping[promise.state()];\n },\n\n // Just validate field. Do not trigger any event.\n // @returns a promise that succeeds only when all validations do\n // or `undefined` if the field is not in the given `group`.\n // The argument `force` will force validation of empty fields.\n // If a `value` is given, it will be validated instead of the value of the input.\n whenValid: function ({force = false, value, group, _refreshed} = {}) {\n // Recompute options and rebind constraints to have latest changes\n if (!_refreshed)\n this.refresh();\n // do not validate a field if not the same as given validation group\n if (group && !this._isInGroup(group))\n return;\n\n this.validationResult = true;\n\n // A field without constraint is valid\n if (!this.hasConstraints())\n return $.when();\n\n // Value could be passed as argument, needed to add more power to 'field:validate'\n if ('undefined' === typeof value || null === value)\n value = this.getValue();\n\n if (!this.needsValidation(value) && true !== force)\n return $.when();\n\n var groupedConstraints = this._getGroupedConstraints();\n var promises = [];\n $.each(groupedConstraints, (_, constraints) => {\n // Process one group of constraints at a time, we validate the constraints\n // and combine the promises together.\n var promise = Utils.all(\n $.map(constraints, constraint => this._validateConstraint(value, constraint))\n );\n promises.push(promise);\n if (promise.state() === 'rejected')\n return false; // Interrupt processing if a group has already failed\n });\n return Utils.all(promises);\n },\n\n // @returns a promise\n _validateConstraint: function(value, constraint) {\n var result = constraint.validate(value, this);\n // Map false to a failed promise\n if (false === result)\n result = $.Deferred().reject();\n // Make sure we return a promise and that we record failures\n return Utils.all([result]).fail(errorMessage => {\n if (!(this.validationResult instanceof Array))\n this.validationResult = [];\n this.validationResult.push({\n assert: constraint,\n errorMessage: 'string' === typeof errorMessage && errorMessage\n });\n });\n },\n\n // @returns Parsley field computed value that could be overrided or configured in DOM\n getValue: function () {\n var value;\n\n // Value could be overriden in DOM or with explicit options\n if ('function' === typeof this.options.value)\n value = this.options.value(this);\n else if ('undefined' !== typeof this.options.value)\n value = this.options.value;\n else\n value = this.$element.val();\n\n // Handle wrong DOM or configurations\n if ('undefined' === typeof value || null === value)\n return '';\n\n return this._handleWhitespace(value);\n },\n\n // Reset UI\n reset: function () {\n this._resetUI();\n return this._trigger('reset');\n },\n\n // Destroy Parsley instance (+ UI)\n destroy: function () {\n // Field case: emit destroy event to clean UI and then destroy stored instance\n this._destroyUI();\n this.$element.removeData('Parsley');\n this.$element.removeData('FieldMultiple');\n this._trigger('destroy');\n },\n\n // Actualize options and rebind constraints\n refresh: function () {\n this._refreshConstraints();\n return this;\n },\n\n _refreshConstraints: function () {\n return this.actualizeOptions()._bindConstraints();\n },\n\n refreshConstraints: function() {\n Utils.warnOnce(\"Parsley's refreshConstraints is deprecated. Please use refresh\");\n return this.refresh();\n },\n\n /**\n * Add a new constraint to a field\n *\n * @param {String} name\n * @param {Mixed} requirements optional\n * @param {Number} priority optional\n * @param {Boolean} isDomConstraint optional\n */\n addConstraint: function (name, requirements, priority, isDomConstraint) {\n\n if (window.Parsley._validatorRegistry.validators[name]) {\n var constraint = new Constraint(this, name, requirements, priority, isDomConstraint);\n\n // if constraint already exist, delete it and push new version\n if ('undefined' !== this.constraintsByName[constraint.name])\n this.removeConstraint(constraint.name);\n\n this.constraints.push(constraint);\n this.constraintsByName[constraint.name] = constraint;\n }\n\n return this;\n },\n\n // Remove a constraint\n removeConstraint: function (name) {\n for (var i = 0; i < this.constraints.length; i++)\n if (name === this.constraints[i].name) {\n this.constraints.splice(i, 1);\n break;\n }\n delete this.constraintsByName[name];\n return this;\n },\n\n // Update a constraint (Remove + re-add)\n updateConstraint: function (name, parameters, priority) {\n return this.removeConstraint(name)\n .addConstraint(name, parameters, priority);\n },\n\n // # Internals\n\n // Internal only.\n // Bind constraints from config + options + DOM\n _bindConstraints: function () {\n var constraints = [];\n var constraintsByName = {};\n\n // clean all existing DOM constraints to only keep javascript user constraints\n for (var i = 0; i < this.constraints.length; i++)\n if (false === this.constraints[i].isDomConstraint) {\n constraints.push(this.constraints[i]);\n constraintsByName[this.constraints[i].name] = this.constraints[i];\n }\n\n this.constraints = constraints;\n this.constraintsByName = constraintsByName;\n\n // then re-add Parsley DOM-API constraints\n for (var name in this.options)\n this.addConstraint(name, this.options[name], undefined, true);\n\n // finally, bind special HTML5 constraints\n return this._bindHtml5Constraints();\n },\n\n // Internal only.\n // Bind specific HTML5 constraints to be HTML5 compliant\n _bindHtml5Constraints: function () {\n // html5 required\n if (null !== this.element.getAttribute('required'))\n this.addConstraint('required', true, undefined, true);\n\n // html5 pattern\n if (null !== this.element.getAttribute('pattern'))\n this.addConstraint('pattern', this.element.getAttribute('pattern'), undefined, true);\n\n // range\n let min = this.element.getAttribute('min');\n let max = this.element.getAttribute('max');\n if (null !== min && null !== max)\n this.addConstraint('range', [min, max], undefined, true);\n\n // HTML5 min\n else if (null !== min)\n this.addConstraint('min', min, undefined, true);\n\n // HTML5 max\n else if (null !== max)\n this.addConstraint('max', max, undefined, true);\n\n\n // length\n if (null !== this.element.getAttribute('minlength') && null !== this.element.getAttribute('maxlength'))\n this.addConstraint('length', [this.element.getAttribute('minlength'), this.element.getAttribute('maxlength')], undefined, true);\n\n // HTML5 minlength\n else if (null !== this.element.getAttribute('minlength'))\n this.addConstraint('minlength', this.element.getAttribute('minlength'), undefined, true);\n\n // HTML5 maxlength\n else if (null !== this.element.getAttribute('maxlength'))\n this.addConstraint('maxlength', this.element.getAttribute('maxlength'), undefined, true);\n\n\n // html5 types\n var type = Utils.getType(this.element);\n\n // Small special case here for HTML5 number: integer validator if step attribute is undefined or an integer value, number otherwise\n if ('number' === type) {\n return this.addConstraint('type', ['number', {\n step: this.element.getAttribute('step') || '1',\n base: min || this.element.getAttribute('value')\n }], undefined, true);\n // Regular other HTML5 supported types\n } else if (/^(email|url|range|date)$/i.test(type)) {\n return this.addConstraint('type', type, undefined, true);\n }\n return this;\n },\n\n // Internal only.\n // Field is required if have required constraint without `false` value\n _isRequired: function () {\n if ('undefined' === typeof this.constraintsByName.required)\n return false;\n\n return false !== this.constraintsByName.required.requirements;\n },\n\n // Internal only.\n // Shortcut to trigger an event\n _trigger: function (eventName) {\n return this.trigger('field:' + eventName);\n },\n\n // Internal only\n // Handles whitespace in a value\n // Use `data-parsley-whitespace=\"squish\"` to auto squish input value\n // Use `data-parsley-whitespace=\"trim\"` to auto trim input value\n _handleWhitespace: function (value) {\n if (true === this.options.trimValue)\n Utils.warnOnce('data-parsley-trim-value=\"true\" is deprecated, please use data-parsley-whitespace=\"trim\"');\n\n if ('squish' === this.options.whitespace)\n value = value.replace(/\\s{2,}/g, ' ');\n\n if (('trim' === this.options.whitespace) || ('squish' === this.options.whitespace) || (true === this.options.trimValue))\n value = Utils.trimString(value);\n\n return value;\n },\n\n _isDateInput: function() {\n var c = this.constraintsByName.type;\n return c && c.requirements === 'date';\n },\n\n // Internal only.\n // Returns the constraints, grouped by descending priority.\n // The result is thus an array of arrays of constraints.\n _getGroupedConstraints: function () {\n if (false === this.options.priorityEnabled)\n return [this.constraints];\n\n var groupedConstraints = [];\n var index = {};\n\n // Create array unique of priorities\n for (var i = 0; i < this.constraints.length; i++) {\n var p = this.constraints[i].priority;\n if (!index[p])\n groupedConstraints.push(index[p] = []);\n index[p].push(this.constraints[i]);\n }\n // Sort them by priority DESC\n groupedConstraints.sort(function (a, b) { return b[0].priority - a[0].priority; });\n\n return groupedConstraints;\n }\n\n};\n\nexport default Field;\n","import $ from 'jquery';\nimport Utils from './utils';\n\nvar Multiple = function () {\n this.__class__ = 'FieldMultiple';\n};\n\nMultiple.prototype = {\n // Add new `$element` sibling for multiple field\n addElement: function ($element) {\n this.$elements.push($element);\n\n return this;\n },\n\n // See `Field._refreshConstraints()`\n _refreshConstraints: function () {\n var fieldConstraints;\n\n this.constraints = [];\n\n // Select multiple special treatment\n if (this.element.nodeName === 'SELECT') {\n this.actualizeOptions()._bindConstraints();\n\n return this;\n }\n\n // Gather all constraints for each input in the multiple group\n for (var i = 0; i < this.$elements.length; i++) {\n\n // Check if element have not been dynamically removed since last binding\n if (!$('html').has(this.$elements[i]).length) {\n this.$elements.splice(i, 1);\n continue;\n }\n\n fieldConstraints = this.$elements[i].data('FieldMultiple')._refreshConstraints().constraints;\n\n for (var j = 0; j < fieldConstraints.length; j++)\n this.addConstraint(fieldConstraints[j].name, fieldConstraints[j].requirements, fieldConstraints[j].priority, fieldConstraints[j].isDomConstraint);\n }\n\n return this;\n },\n\n // See `Field.getValue()`\n getValue: function () {\n // Value could be overriden in DOM\n if ('function' === typeof this.options.value)\n return this.options.value(this);\n else if ('undefined' !== typeof this.options.value)\n return this.options.value;\n\n // Radio input case\n if (this.element.nodeName === 'INPUT') {\n var type = Utils.getType(this.element);\n if (type === 'radio')\n return this._findRelated().filter(':checked').val() || '';\n\n // checkbox input case\n if (type === 'checkbox') {\n var values = [];\n\n this._findRelated().filter(':checked').each(function () {\n values.push($(this).val());\n });\n\n return values;\n }\n }\n\n // Select multiple case\n if (this.element.nodeName === 'SELECT' && null === this.$element.val())\n return [];\n\n // Default case that should never happen\n return this.$element.val();\n },\n\n _init: function () {\n this.$elements = [this.$element];\n\n return this;\n }\n};\n\nexport default Multiple;\n","import $ from 'jquery';\nimport Utils from './utils';\nimport Base from './base';\nimport Form from './form';\nimport Field from './field';\nimport Multiple from './multiple';\n\nvar Factory = function (element, options, parsleyFormInstance) {\n this.element = element;\n this.$element = $(element);\n\n // If the element has already been bound, returns its saved Parsley instance\n var savedparsleyFormInstance = this.$element.data('Parsley');\n if (savedparsleyFormInstance) {\n\n // If the saved instance has been bound without a Form parent and there is one given in this call, add it\n if ('undefined' !== typeof parsleyFormInstance && savedparsleyFormInstance.parent === window.Parsley) {\n savedparsleyFormInstance.parent = parsleyFormInstance;\n savedparsleyFormInstance._resetOptions(savedparsleyFormInstance.options);\n }\n\n if ('object' === typeof options) {\n Object.assign(savedparsleyFormInstance.options, options);\n }\n\n return savedparsleyFormInstance;\n }\n\n // Parsley must be instantiated with a DOM element or jQuery $element\n if (!this.$element.length)\n throw new Error('You must bind Parsley on an existing element.');\n\n if ('undefined' !== typeof parsleyFormInstance && 'Form' !== parsleyFormInstance.__class__)\n throw new Error('Parent instance must be a Form instance');\n\n this.parent = parsleyFormInstance || window.Parsley;\n return this.init(options);\n};\n\nFactory.prototype = {\n init: function (options) {\n this.__class__ = 'Parsley';\n this.__version__ = 'VERSION';\n this.__id__ = Utils.generateID();\n\n // Pre-compute options\n this._resetOptions(options);\n\n // A Form instance is obviously a `<form>` element but also every node that is not an input and has the `data-parsley-validate` attribute\n if (this.element.nodeName === 'FORM' || (Utils.checkAttr(this.element, this.options.namespace, 'validate') && !this.$element.is(this.options.inputs)))\n return this.bind('parsleyForm');\n\n // Every other element is bound as a `Field` or `FieldMultiple`\n return this.isMultiple() ? this.handleMultiple() : this.bind('parsleyField');\n },\n\n isMultiple: function () {\n var type = Utils.getType(this.element);\n return ((type === 'radio' || type === 'checkbox') ||\n (this.element.nodeName === 'SELECT' && null !== this.element.getAttribute('multiple')));\n },\n\n // Multiples fields are a real nightmare :(\n // Maybe some refactoring would be appreciated here...\n handleMultiple: function () {\n var name;\n var multiple;\n var parsleyMultipleInstance;\n\n // Handle multiple name\n this.options.multiple = this.options.multiple ||\n (name = this.element.getAttribute('name')) ||\n this.element.getAttribute('id');\n\n // Special select multiple input\n if (this.element.nodeName === 'SELECT' && null !== this.element.getAttribute('multiple')) {\n this.options.multiple = this.options.multiple || this.__id__;\n return this.bind('parsleyFieldMultiple');\n\n // Else for radio / checkboxes, we need a `name` or `data-parsley-multiple` to properly bind it\n } else if (!this.options.multiple) {\n Utils.warn('To be bound by Parsley, a radio, a checkbox and a multiple select input must have either a name or a multiple option.', this.$element);\n return this;\n }\n\n // Remove special chars\n this.options.multiple = this.options.multiple.replace(/(:|\\.|\\[|\\]|\\{|\\}|\\$)/g, '');\n\n // Add proper `data-parsley-multiple` to siblings if we have a valid multiple name\n if (name) {\n $('input[name=\"' + name + '\"]').each((i, input) => {\n var type = Utils.getType(input);\n if ((type === 'radio' || type === 'checkbox'))\n input.setAttribute(this.options.namespace + 'multiple', this.options.multiple);\n });\n }\n\n // Check here if we don't already have a related multiple instance saved\n var $previouslyRelated = this._findRelated();\n for (var i = 0; i < $previouslyRelated.length; i++) {\n parsleyMultipleInstance = $($previouslyRelated.get(i)).data('Parsley');\n if ('undefined' !== typeof parsleyMultipleInstance) {\n\n if (!this.$element.data('FieldMultiple')) {\n parsleyMultipleInstance.addElement(this.$element);\n }\n\n break;\n }\n }\n\n // Create a secret Field instance for every multiple field. It will be stored in `data('FieldMultiple')`\n // And will be useful later to access classic `Field` stuff while being in a `FieldMultiple` instance\n this.bind('parsleyField', true);\n\n return parsleyMultipleInstance || this.bind('parsleyFieldMultiple');\n },\n\n // Return proper `Form`, `Field` or `FieldMultiple`\n bind: function (type, doNotStore) {\n var parsleyInstance;\n\n switch (type) {\n case 'parsleyForm':\n parsleyInstance = $.extend(\n new Form(this.element, this.domOptions, this.options),\n new Base(),\n window.ParsleyExtend\n )._bindFields();\n break;\n case 'parsleyField':\n parsleyInstance = $.extend(\n new Field(this.element, this.domOptions, this.options, this.parent),\n new Base(),\n window.ParsleyExtend\n );\n break;\n case 'parsleyFieldMultiple':\n parsleyInstance = $.extend(\n new Field(this.element, this.domOptions, this.options, this.parent),\n new Multiple(),\n new Base(),\n window.ParsleyExtend\n )._init();\n break;\n default:\n throw new Error(type + 'is not a supported Parsley type');\n }\n\n if (this.options.multiple)\n Utils.setAttr(this.element, this.options.namespace, 'multiple', this.options.multiple);\n\n if ('undefined' !== typeof doNotStore) {\n this.$element.data('FieldMultiple', parsleyInstance);\n\n return parsleyInstance;\n }\n\n // Store the freshly bound instance in a DOM element for later access using jQuery `data()`\n this.$element.data('Parsley', parsleyInstance);\n\n // Tell the world we have a new Form or Field instance!\n parsleyInstance._actualizeTriggers();\n parsleyInstance._trigger('init');\n\n return parsleyInstance;\n }\n};\n\nexport default Factory;\n","import $ from 'jquery';\nimport Utils from './utils';\nimport Defaults from './defaults';\nimport Base from './base';\nimport ValidatorRegistry from './validator_registry';\nimport UI from './ui';\nimport Form from './form';\nimport Field from './field';\nimport Multiple from './multiple';\nimport Factory from './factory';\n\nvar vernums = $.fn.jquery.split('.');\nif (parseInt(vernums[0]) <= 1 && parseInt(vernums[1]) < 8) {\n throw \"The loaded version of jQuery is too old. Please upgrade to 1.8.x or better.\";\n}\nif (!vernums.forEach) {\n Utils.warn('Parsley requires ES5 to run properly. Please include https://github.com/es-shims/es5-shim');\n}\n// Inherit `on`, `off` & `trigger` to Parsley:\nvar Parsley = Object.assign(new Base(), {\n element: document,\n $element: $(document),\n actualizeOptions: null,\n _resetOptions: null,\n Factory: Factory,\n version: 'VERSION'\n });\n\n// Supplement Field and Form with Base\n// This way, the constructors will have access to those methods\nObject.assign(Field.prototype, UI.Field, Base.prototype);\nObject.assign(Form.prototype, UI.Form, Base.prototype);\n// Inherit actualizeOptions and _resetOptions:\nObject.assign(Factory.prototype, Base.prototype);\n\n// ### jQuery API\n// `$('.elem').parsley(options)` or `$('.elem').psly(options)`\n$.fn.parsley = $.fn.psly = function (options) {\n if (this.length > 1) {\n var instances = [];\n\n this.each(function () {\n instances.push($(this).parsley(options));\n });\n\n return instances;\n }\n\n // Return undefined if applied to non existing DOM element\n if (this.length == 0) {\n return;\n }\n\n return new Factory(this[0], options);\n};\n\n// ### Field and Form extension\n// Ensure the extension is now defined if it wasn't previously\nif ('undefined' === typeof window.ParsleyExtend)\n window.ParsleyExtend = {};\n\n// ### Parsley config\n// Inherit from ParsleyDefault, and copy over any existing values\nParsley.options = Object.assign(Utils.objectCreate(Defaults), window.ParsleyConfig);\nwindow.ParsleyConfig = Parsley.options; // Old way of accessing global options\n\n// ### Globals\nwindow.Parsley = window.psly = Parsley;\nParsley.Utils = Utils;\nwindow.ParsleyUtils = {};\n$.each(Utils, (key, value) => {\n if ('function' === typeof value) {\n window.ParsleyUtils[key] = (...args) => {\n Utils.warnOnce('Accessing `window.ParsleyUtils` is deprecated. Use `window.Parsley.Utils` instead.');\n return Utils[key](...args);\n };\n }\n});\n\n// ### Define methods that forward to the registry, and deprecate all access except through window.Parsley\nvar registry = window.Parsley._validatorRegistry = new ValidatorRegistry(window.ParsleyConfig.validators, window.ParsleyConfig.i18n);\nwindow.ParsleyValidator = {};\n$.each('setLocale addCatalog addMessage addMessages getErrorMessage formatMessage addValidator updateValidator removeValidator hasValidator'.split(' '), function (i, method) {\n window.Parsley[method] = (...args) => registry[method](...args);\n window.ParsleyValidator[method] = function () {\n Utils.warnOnce(`Accessing the method '${method}' through Validator is deprecated. Simply call 'window.Parsley.${method}(...)'`);\n return window.Parsley[method](...arguments);\n };\n});\n\n// ### UI\n// Deprecated global object\nwindow.Parsley.UI = UI;\nwindow.ParsleyUI = {\n removeError: function (instance, name, doNotUpdateClass) {\n var updateClass = true !== doNotUpdateClass;\n Utils.warnOnce(`Accessing UI is deprecated. Call 'removeError' on the instance directly. Please comment in issue 1073 as to your need to call this method.`);\n return instance.removeError(name, {updateClass});\n },\n getErrorsMessages: function (instance) {\n Utils.warnOnce(`Accessing UI is deprecated. Call 'getErrorsMessages' on the instance directly.`);\n return instance.getErrorsMessages();\n }\n};\n$.each('addError updateError'.split(' '), function (i, method) {\n window.ParsleyUI[method] = function (instance, name, message, assert, doNotUpdateClass) {\n var updateClass = true !== doNotUpdateClass;\n Utils.warnOnce(`Accessing UI is deprecated. Call '${method}' on the instance directly. Please comment in issue 1073 as to your need to call this method.`);\n return instance[method](name, {message, assert, updateClass});\n };\n});\n\n// ### PARSLEY auto-binding\n// Prevent it by setting `ParsleyConfig.autoBind` to `false`\nif (false !== window.ParsleyConfig.autoBind) {\n $(function () {\n // Works only on `data-parsley-validate`.\n if ($('[data-parsley-validate]').length)\n $('[data-parsley-validate]').parsley();\n });\n}\n\nexport default Parsley;\n","import $ from 'jquery';\nimport Field from './field';\nimport Form from './form';\nimport Utils from './utils';\n\nvar o = $({});\nvar deprecated = function () {\n Utils.warnOnce(\"Parsley's pubsub module is deprecated; use the 'on' and 'off' methods on parsley instances or window.Parsley\");\n};\n\n// Returns an event handler that calls `fn` with the arguments it expects\nfunction adapt(fn, context) {\n // Store to allow unbinding\n if (!fn.parsleyAdaptedCallback) {\n fn.parsleyAdaptedCallback = function () {\n var args = Array.prototype.slice.call(arguments, 0);\n args.unshift(this);\n fn.apply(context || o, args);\n };\n }\n return fn.parsleyAdaptedCallback;\n}\n\nvar eventPrefix = 'parsley:';\n// Converts 'parsley:form:validate' into 'form:validate'\nfunction eventName(name) {\n if (name.lastIndexOf(eventPrefix, 0) === 0)\n return name.substr(eventPrefix.length);\n return name;\n}\n\n// $.listen is deprecated. Use Parsley.on instead.\n$.listen = function (name, callback) {\n var context;\n deprecated();\n if ('object' === typeof arguments[1] && 'function' === typeof arguments[2]) {\n context = arguments[1];\n callback = arguments[2];\n }\n\n if ('function' !== typeof callback)\n throw new Error('Wrong parameters');\n\n window.Parsley.on(eventName(name), adapt(callback, context));\n};\n\n$.listenTo = function (instance, name, fn) {\n deprecated();\n if (!(instance instanceof Field) && !(instance instanceof Form))\n throw new Error('Must give Parsley instance');\n\n if ('string' !== typeof name || 'function' !== typeof fn)\n throw new Error('Wrong parameters');\n\n instance.on(eventName(name), adapt(fn));\n};\n\n$.unsubscribe = function (name, fn) {\n deprecated();\n if ('string' !== typeof name || 'function' !== typeof fn)\n throw new Error('Wrong arguments');\n window.Parsley.off(eventName(name), fn.parsleyAdaptedCallback);\n};\n\n$.unsubscribeTo = function (instance, name) {\n deprecated();\n if (!(instance instanceof Field) && !(instance instanceof Form))\n throw new Error('Must give Parsley instance');\n instance.off(eventName(name));\n};\n\n$.unsubscribeAll = function (name) {\n deprecated();\n window.Parsley.off(eventName(name));\n $('form,input,textarea,select').each(function () {\n var instance = $(this).data('Parsley');\n if (instance) {\n instance.off(eventName(name));\n }\n });\n};\n\n// $.emit is deprecated. Use jQuery events instead.\n$.emit = function (name, instance) {\n deprecated();\n var instanceGiven = (instance instanceof Field) || (instance instanceof Form);\n var args = Array.prototype.slice.call(arguments, instanceGiven ? 2 : 1);\n args.unshift(eventName(name));\n if (!instanceGiven) {\n instance = window.Parsley;\n }\n instance.trigger(...args);\n};\n\nexport default {};\n","import $ from 'jquery';\nimport Utils from './utils';\nimport Base from './base';\n\nimport Parsley from './main';\n\n$.extend(true, Parsley, {\n asyncValidators: {\n 'default': {\n fn: function (xhr) {\n // By default, only status 2xx are deemed successful.\n // Note: we use status instead of state() because responses with status 200\n // but invalid messages (e.g. an empty body for content type set to JSON) will\n // result in state() === 'rejected'.\n return xhr.status >= 200 && xhr.status < 300;\n },\n url: false\n },\n reverse: {\n fn: function (xhr) {\n // If reverse option is set, a failing ajax request is considered successful\n return xhr.status < 200 || xhr.status >= 300;\n },\n url: false\n }\n },\n\n addAsyncValidator: function (name, fn, url, options) {\n Parsley.asyncValidators[name] = {\n fn: fn,\n url: url || false,\n options: options || {}\n };\n\n return this;\n }\n\n});\n\nParsley.addValidator('remote', {\n requirementType: {\n '': 'string',\n 'validator': 'string',\n 'reverse': 'boolean',\n 'options': 'object'\n },\n\n validateString: function (value, url, options, instance) {\n var data = {};\n var ajaxOptions;\n var csr;\n var validator = options.validator || (true === options.reverse ? 'reverse' : 'default');\n\n if ('undefined' === typeof Parsley.asyncValidators[validator])\n throw new Error('Calling an undefined async validator: `' + validator + '`');\n\n url = Parsley.asyncValidators[validator].url || url;\n\n // Fill current value\n if (url.indexOf('{value}') > -1) {\n url = url.replace('{value}', encodeURIComponent(value));\n } else {\n data[instance.element.getAttribute('name') || instance.element.getAttribute('id')] = value;\n }\n\n // Merge options passed in from the function with the ones in the attribute\n var remoteOptions = $.extend(true, options.options || {} , Parsley.asyncValidators[validator].options);\n\n // All `$.ajax(options)` could be overridden or extended directly from DOM in `data-parsley-remote-options`\n ajaxOptions = $.extend(true, {}, {\n url: url,\n data: data,\n type: 'GET'\n }, remoteOptions);\n\n // Generate store key based on ajax options\n instance.trigger('field:ajaxoptions', instance, ajaxOptions);\n\n csr = $.param(ajaxOptions);\n\n // Initialise querry cache\n if ('undefined' === typeof Parsley._remoteCache)\n Parsley._remoteCache = {};\n\n // Try to retrieve stored xhr\n var xhr = Parsley._remoteCache[csr] = Parsley._remoteCache[csr] || $.ajax(ajaxOptions);\n\n var handleXhr = function () {\n var result = Parsley.asyncValidators[validator].fn.call(instance, xhr, url, options);\n if (!result) // Map falsy results to rejected promise\n result = $.Deferred().reject();\n return $.when(result);\n };\n\n return xhr.then(handleXhr, handleXhr);\n },\n\n priority: -1\n});\n\nParsley.on('form:submit', function () {\n Parsley._remoteCache = {};\n});\n\nBase.prototype.addAsyncValidator = function () {\n Utils.warnOnce('Accessing the method `addAsyncValidator` through an instance is deprecated. Simply call `Parsley.addAsyncValidator(...)`');\n return Parsley.addAsyncValidator(...arguments);\n};\n","// This is included with the Parsley library itself,\n// thus there is no use in adding it to your project.\nimport Parsley from '../parsley/main';\n\nParsley.addMessages('en', {\n defaultMessage: \"This value seems to be invalid.\",\n type: {\n email: \"This value should be a valid email.\",\n url: \"This value should be a valid url.\",\n number: \"This value should be a valid number.\",\n integer: \"This value should be a valid integer.\",\n digits: \"This value should be digits.\",\n alphanum: \"This value should be alphanumeric.\"\n },\n notblank: \"This value should not be blank.\",\n required: \"This value is required.\",\n pattern: \"This value seems to be invalid.\",\n min: \"This value should be greater than or equal to %s.\",\n max: \"This value should be lower than or equal to %s.\",\n range: \"This value should be between %s and %s.\",\n minlength: \"This value is too short. It should have %s characters or more.\",\n maxlength: \"This value is too long. It should have %s characters or fewer.\",\n length: \"This value length is invalid. It should be between %s and %s characters long.\",\n mincheck: \"You must select at least %s choices.\",\n maxcheck: \"You must select %s choices or fewer.\",\n check: \"You must select between %s and %s choices.\",\n equalto: \"This value should be the same.\",\n euvatin: \"It's not a valid VAT Identification Number.\",\n});\n\nParsley.setLocale('en');\n","/**\n * inputevent - Alleviate browser bugs for input events\n * https://github.com/marcandre/inputevent\n * @version v0.0.3 - (built Thu, Apr 14th 2016, 5:58 pm)\n * @author Marc-Andre Lafortune <github@marc-andre.ca>\n * @license MIT\n */\n\nimport $ from 'jquery';\n\nfunction InputEvent() {\n let globals = window || global;\n\n // Slightly odd way construct our object. This way methods are force bound.\n // Used to test for duplicate library.\n Object.assign(this, {\n\n // For browsers that do not support isTrusted, assumes event is native.\n isNativeEvent: evt => {\n return evt.originalEvent && evt.originalEvent.isTrusted !== false;\n },\n\n fakeInputEvent: evt => {\n if (this.isNativeEvent(evt)) {\n $(evt.target).trigger('input');\n }\n },\n\n misbehaves: evt => {\n if (this.isNativeEvent(evt)) {\n this.behavesOk(evt);\n $(document)\n .on('change.inputevent', evt.data.selector, this.fakeInputEvent);\n this.fakeInputEvent(evt);\n }\n },\n\n behavesOk: evt => {\n if (this.isNativeEvent(evt)) {\n $(document) // Simply unbinds the testing handler\n .off('input.inputevent', evt.data.selector, this.behavesOk)\n .off('change.inputevent', evt.data.selector, this.misbehaves);\n }\n },\n\n // Bind the testing handlers\n install: () => {\n if (globals.inputEventPatched) {\n return;\n }\n globals.inputEventPatched = '0.0.3';\n for (let selector of ['select', 'input[type=\"checkbox\"]', 'input[type=\"radio\"]', 'input[type=\"file\"]']) {\n $(document)\n .on('input.inputevent', selector, {selector}, this.behavesOk)\n .on('change.inputevent', selector, {selector}, this.misbehaves);\n }\n },\n\n uninstall: () => {\n delete globals.inputEventPatched;\n $(document).off('.inputevent');\n }\n\n });\n};\n\nexport default new InputEvent();\n","import $ from 'jquery';\nimport Parsley from './parsley/main';\nimport './parsley/pubsub';\nimport './parsley/remote';\nimport './i18n/en';\nimport inputevent from './vendor/inputevent';\n\ninputevent.install();\n\nexport default Parsley;\n","export default typeof window !== 'undefined' && typeof document !== 'undefined';\n","import isBrowser from './isBrowser';\n\nconst longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\nlet timeoutDuration = 0;\nfor (let i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n timeoutDuration = 1;\n break;\n }\n}\n\nexport function microtaskDebounce(fn) {\n let called = false\n return () => {\n if (called) {\n return\n }\n called = true\n window.Promise.resolve().then(() => {\n called = false\n fn()\n })\n }\n}\n\nexport function taskDebounce(fn) {\n let scheduled = false;\n return () => {\n if (!scheduled) {\n scheduled = true;\n setTimeout(() => {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nconst supportsMicroTasks = isBrowser && window.Promise\n\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nexport default (supportsMicroTasks\n ? microtaskDebounce\n : taskDebounce);\n","/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nexport default function isFunction(functionToCheck) {\n const getType = {};\n return (\n functionToCheck &&\n getType.toString.call(functionToCheck) === '[object Function]'\n );\n}\n","/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nexport default function getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n const window = element.ownerDocument.defaultView;\n const css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n","/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nexport default function getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nexport default function getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body\n case '#document':\n return element.body\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n const { overflow, overflowX, overflowY } = getStyleComputedProperty(element);\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n","import isBrowser from './isBrowser';\n\nconst isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nconst isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nexport default function isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nexport default function getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n const noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n let offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n const nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (\n ['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 &&\n getStyleComputedProperty(offsetParent, 'position') === 'static'\n ) {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n","import getOffsetParent from './getOffsetParent';\n\nexport default function isOffsetContainer(element) {\n const { nodeName } = element;\n if (nodeName === 'BODY') {\n return false;\n }\n return (\n nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element\n );\n}\n","/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nexport default function getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n","import isOffsetContainer from './isOffsetContainer';\nimport getRoot from './getRoot';\nimport getOffsetParent from './getOffsetParent';\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nexport default function findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n const order =\n element1.compareDocumentPosition(element2) &\n Node.DOCUMENT_POSITION_FOLLOWING;\n const start = order ? element1 : element2;\n const end = order ? element2 : element1;\n\n // Get common ancestor container\n const range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n const { commonAncestorContainer } = range;\n\n // Both nodes are inside #document\n if (\n (element1 !== commonAncestorContainer &&\n element2 !== commonAncestorContainer) ||\n start.contains(end)\n ) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n const element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n","/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nexport default function getScroll(element, side = 'top') {\n const upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n const nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n const html = element.ownerDocument.documentElement;\n const scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n","import getScroll from './getScroll';\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nexport default function includeScroll(rect, element, subtract = false) {\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n const modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n","/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nexport default function getBordersSize(styles, axis) {\n const sideA = axis === 'x' ? 'Left' : 'Top';\n const sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return (\n parseFloat(styles[`border${sideA}Width`], 10) +\n parseFloat(styles[`border${sideB}Width`], 10)\n );\n}\n","import isIE from './isIE';\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(\n body[`offset${axis}`],\n body[`scroll${axis}`],\n html[`client${axis}`],\n html[`offset${axis}`],\n html[`scroll${axis}`],\n isIE(10)\n ? (parseInt(html[`offset${axis}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Top' : 'Left'}`]) + \n parseInt(computedStyle[`margin${axis === 'Height' ? 'Bottom' : 'Right'}`]))\n : 0 \n );\n}\n\nexport default function getWindowSizes(document) {\n const body = document.body;\n const html = document.documentElement;\n const computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle),\n };\n}\n","/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nexport default function getClientRect(offsets) {\n return {\n ...offsets,\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height,\n };\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getBordersSize from './getBordersSize';\nimport getWindowSizes from './getWindowSizes';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\nimport isIE from './isIE';\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nexport default function getBoundingClientRect(element) {\n let rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n const scrollTop = getScroll(element, 'top');\n const scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n }\n else {\n rect = element.getBoundingClientRect();\n }\n }\n catch(e){}\n\n const result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top,\n };\n\n // subtract scrollbar size from sizes\n const sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n const width =\n sizes.width || element.clientWidth || result.right - result.left;\n const height =\n sizes.height || element.clientHeight || result.bottom - result.top;\n\n let horizScrollbar = element.offsetWidth - width;\n let vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n const styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport includeScroll from './includeScroll';\nimport getScrollParent from './getScrollParent';\nimport getBoundingClientRect from './getBoundingClientRect';\nimport runIsIE from './isIE';\nimport getClientRect from './getClientRect';\n\nexport default function getOffsetRectRelativeToArbitraryNode(children, parent, fixedPosition = false) {\n const isIE10 = runIsIE(10);\n const isHTML = parent.nodeName === 'HTML';\n const childrenRect = getBoundingClientRect(children);\n const parentRect = getBoundingClientRect(parent);\n const scrollParent = getScrollParent(children);\n\n const styles = getStyleComputedProperty(parent);\n const borderTopWidth = parseFloat(styles.borderTopWidth, 10);\n const borderLeftWidth = parseFloat(styles.borderLeftWidth, 10);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if(fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n let offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height,\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n const marginTop = parseFloat(styles.marginTop, 10);\n const marginLeft = parseFloat(styles.marginLeft, 10);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (\n isIE10 && !fixedPosition\n ? parent.contains(scrollParent)\n : parent === scrollParent && scrollParent.nodeName !== 'BODY'\n ) {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n","import getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getScroll from './getScroll';\nimport getClientRect from './getClientRect';\n\nexport default function getViewportOffsetRectRelativeToArtbitraryNode(element, excludeScroll = false) {\n const html = element.ownerDocument.documentElement;\n const relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n const width = Math.max(html.clientWidth, window.innerWidth || 0);\n const height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n const scrollTop = !excludeScroll ? getScroll(html) : 0;\n const scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n const offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width,\n height,\n };\n\n return getClientRect(offset);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport getParentNode from './getParentNode';\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nexport default function isFixed(element) {\n const nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n const parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n","import getStyleComputedProperty from './getStyleComputedProperty';\nimport isIE from './isIE';\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nexport default function getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n let el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n\n}\n","import getScrollParent from './getScrollParent';\nimport getParentNode from './getParentNode';\nimport findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getViewportOffsetRectRelativeToArtbitraryNode from './getViewportOffsetRectRelativeToArtbitraryNode';\nimport getWindowSizes from './getWindowSizes';\nimport isFixed from './isFixed';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nexport default function getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement,\n fixedPosition = false\n) {\n // NOTE: 1 DOM access here\n\n let boundaries = { top: 0, left: 0 };\n const offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n\n // Handle viewport case\n if (boundariesElement === 'viewport' ) {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n }\n\n else {\n // Handle other cases based on DOM element used as boundaries\n let boundariesNode;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n const offsets = getOffsetRectRelativeToArbitraryNode(\n boundariesNode,\n offsetParent,\n fixedPosition\n );\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n const { height, width } = getWindowSizes(popper.ownerDocument);\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n const isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0; \n boundaries.top += isPaddingNumber ? padding : padding.top || 0; \n boundaries.right -= isPaddingNumber ? padding : padding.right || 0; \n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0; \n\n return boundaries;\n}\n","import getBoundaries from '../utils/getBoundaries';\n\nfunction getArea({ width, height }) {\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeAutoPlacement(\n placement,\n refRect,\n popper,\n reference,\n boundariesElement,\n padding = 0\n) {\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n const boundaries = getBoundaries(\n popper,\n reference,\n padding,\n boundariesElement\n );\n\n const rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top,\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height,\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom,\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height,\n },\n };\n\n const sortedAreas = Object.keys(rects)\n .map(key => ({\n key,\n ...rects[key],\n area: getArea(rects[key]),\n }))\n .sort((a, b) => b.area - a.area);\n\n const filteredAreas = sortedAreas.filter(\n ({ width, height }) =>\n width >= popper.clientWidth && height >= popper.clientHeight\n );\n\n const computedPlacement = filteredAreas.length > 0\n ? filteredAreas[0].key\n : sortedAreas[0].key;\n\n const variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? `-${variation}` : '');\n}\n","import findCommonOffsetParent from './findCommonOffsetParent';\nimport getOffsetRectRelativeToArbitraryNode from './getOffsetRectRelativeToArbitraryNode';\nimport getFixedPositionOffsetParent from './getFixedPositionOffsetParent';\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nexport default function getReferenceOffsets(state, popper, reference, fixedPosition = null) {\n const commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, reference);\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n","/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nexport default function getOuterSizes(element) {\n const window = element.ownerDocument.defaultView;\n const styles = window.getComputedStyle(element);\n const x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n const y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n const result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x,\n };\n return result;\n}\n","/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nexport default function getOppositePlacement(placement) {\n const hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, matched => hash[matched]);\n}\n","import getOuterSizes from './getOuterSizes';\nimport getOppositePlacement from './getOppositePlacement';\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nexport default function getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n const popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n const popperOffsets = {\n width: popperRect.width,\n height: popperRect.height,\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n const isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n const mainSide = isHoriz ? 'top' : 'left';\n const secondarySide = isHoriz ? 'left' : 'top';\n const measurement = isHoriz ? 'height' : 'width';\n const secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] =\n referenceOffsets[mainSide] +\n referenceOffsets[measurement] / 2 -\n popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] =\n referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] =\n referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n","/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n","import find from './find';\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nexport default function findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(cur => cur[prop] === value);\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n const match = find(arr, obj => obj[prop] === value);\n return arr.indexOf(match);\n}\n","import isFunction from './isFunction';\nimport findIndex from './findIndex';\nimport getClientRect from '../utils/getClientRect';\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nexport default function runModifiers(modifiers, data, ends) {\n const modifiersToRun = ends === undefined\n ? modifiers\n : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(modifier => {\n if (modifier['function']) { // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n const fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n","import computeAutoPlacement from '../utils/computeAutoPlacement';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.<br />\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nexport default function update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n let data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {},\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(\n this.state,\n this.popper,\n this.reference,\n this.options.positionFixed\n );\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(\n this.options.placement,\n data.offsets.reference,\n this.popper,\n this.reference,\n this.options.modifiers.flip.boundariesElement,\n this.options.modifiers.flip.padding\n );\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(\n this.popper,\n data.offsets.reference,\n data.placement\n );\n\n data.offsets.popper.position = this.options.positionFixed\n ? 'fixed'\n : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n","/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nexport default function isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(\n ({ name, enabled }) => enabled && name === modifierName\n );\n}\n","/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nexport default function getSupportedPropertyName(property) {\n const prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n const upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (let i = 0; i < prefixes.length; i++) {\n const prefix = prefixes[i];\n const toCheck = prefix ? `${prefix}${upperProp}` : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n","import isModifierEnabled from '../utils/isModifierEnabled';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nexport default function destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicity asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n","/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nexport default function getWindow(element) {\n const ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n","import getScrollParent from './getScrollParent';\nimport getWindow from './getWindow';\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n const isBody = scrollParent.nodeName === 'BODY';\n const target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(\n getScrollParent(target.parentNode),\n event,\n callback,\n scrollParents\n );\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function setupEventListeners(\n reference,\n options,\n state,\n updateBound\n) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n const scrollElement = getScrollParent(reference);\n attachToScrollParents(\n scrollElement,\n 'scroll',\n state.updateBound,\n state.scrollParents\n );\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n","import setupEventListeners from '../utils/setupEventListeners';\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nexport default function enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(\n this.reference,\n this.options,\n this.state,\n this.scheduleUpdate\n );\n }\n}\n","import getWindow from './getWindow';\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nexport default function removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(target => {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n","import removeEventListeners from '../utils/removeEventListeners';\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nexport default function disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n","/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nexport default function isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n","import isNumeric from './isNumeric';\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setStyles(element, styles) {\n Object.keys(styles).forEach(prop => {\n let unit = '';\n // add unit if the value is numeric and is one of the following\n if (\n ['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !==\n -1 &&\n isNumeric(styles[prop])\n ) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n","/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nexport default function setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function(prop) {\n const value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n","import setStyles from '../utils/setStyles';\nimport setAttributes from '../utils/setAttributes';\nimport getReferenceOffsets from '../utils/getReferenceOffsets';\nimport computeAutoPlacement from '../utils/computeAutoPlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nexport default function applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nexport function applyStyleOnLoad(\n reference,\n popper,\n options,\n modifierOptions,\n state\n) {\n // compute reference element offsets\n const referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n const placement = computeAutoPlacement(\n options.placement,\n referenceOffsets,\n popper,\n reference,\n options.modifiers.flip.boundariesElement,\n options.modifiers.flip.padding\n );\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n","/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nexport default function getRoundedOffsets(data, shouldRound) {\n const { popper, reference } = data.offsets;\n const { round, floor } = Math;\n const noRound = v => v;\n \n const referenceWidth = round(reference.width);\n const popperWidth = round(popper.width);\n \n const isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n const isVariation = data.placement.indexOf('-') !== -1;\n const sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n const bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n const horizontalToInteger = !shouldRound\n ? noRound\n : isVertical || isVariation || sameWidthParity\n ? round\n : floor;\n const verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(\n bothOddWidth && !isVariation && shouldRound\n ? popper.left - 1\n : popper.left\n ),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right),\n };\n}\n","import getSupportedPropertyName from '../utils/getSupportedPropertyName';\nimport find from '../utils/find';\nimport getOffsetParent from '../utils/getOffsetParent';\nimport getBoundingClientRect from '../utils/getBoundingClientRect';\nimport getRoundedOffsets from '../utils/getRoundedOffsets';\nimport isBrowser from '../utils/isBrowser';\n\nconst isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function computeStyle(data, options) {\n const { x, y } = options;\n const { popper } = data.offsets;\n\n // Remove this legacy support in Popper.js v2\n const legacyGpuAccelerationOption = find(\n data.instance.modifiers,\n modifier => modifier.name === 'applyStyle'\n ).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn(\n 'WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!'\n );\n }\n const gpuAcceleration =\n legacyGpuAccelerationOption !== undefined\n ? legacyGpuAccelerationOption\n : options.gpuAcceleration;\n\n const offsetParent = getOffsetParent(data.instance.popper);\n const offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n const styles = {\n position: popper.position,\n };\n\n const offsets = getRoundedOffsets(\n data,\n window.devicePixelRatio < 2 || !isFirefox\n );\n\n const sideA = x === 'bottom' ? 'top' : 'bottom';\n const sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n const prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n let left, top;\n if (sideA === 'bottom') {\n // when offsetParent is <html> the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = `translate3d(${left}px, ${top}px, 0)`;\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n const invertTop = sideA === 'bottom' ? -1 : 1;\n const invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = `${sideA}, ${sideB}`;\n }\n\n // Attributes\n const attributes = {\n 'x-placement': data.placement,\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = { ...attributes, ...data.attributes };\n data.styles = { ...styles, ...data.styles };\n data.arrowStyles = { ...data.offsets.arrow, ...data.arrowStyles };\n\n return data;\n}\n","import find from './find';\n\n/**\n * Helper used to know if the given modifier depends from another one.<br />\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nexport default function isModifierRequired(\n modifiers,\n requestingName,\n requestedName\n) {\n const requesting = find(modifiers, ({ name }) => name === requestingName);\n\n const isRequired =\n !!requesting &&\n modifiers.some(modifier => {\n return (\n modifier.name === requestedName &&\n modifier.enabled &&\n modifier.order < requesting.order\n );\n });\n\n if (!isRequired) {\n const requesting = `\\`${requestingName}\\``;\n const requested = `\\`${requestedName}\\``;\n console.warn(\n `${requested} modifier is required by ${requesting} modifier in order to work, be sure to include it before ${requesting}!`\n );\n }\n return isRequired;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOuterSizes from '../utils/getOuterSizes';\nimport isModifierRequired from '../utils/isModifierRequired';\nimport getStyleComputedProperty from '../utils/getStyleComputedProperty';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function arrow(data, options) {\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n let arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn(\n 'WARNING: `arrow.element` must be child of its popper element!'\n );\n return data;\n }\n }\n\n const placement = data.placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n const len = isVertical ? 'height' : 'width';\n const sideCapitalized = isVertical ? 'Top' : 'Left';\n const side = sideCapitalized.toLowerCase();\n const altSide = isVertical ? 'left' : 'top';\n const opSide = isVertical ? 'bottom' : 'right';\n const arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -=\n popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] +=\n reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n const center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n const css = getStyleComputedProperty(data.instance.popper);\n const popperMarginSide = parseFloat(css[`margin${sideCapitalized}`], 10);\n const popperBorderSide = parseFloat(css[`border${sideCapitalized}Width`], 10);\n let sideValue =\n center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = {\n [side]: Math.round(sideValue),\n [altSide]: '', // make sure to unset any eventual altSide value from the DOM node\n };\n\n return data;\n}\n","/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nexport default function getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n","/**\n * List of accepted placements to use as values of the `placement` option.<br />\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.<br />\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nexport default [\n 'auto-start',\n 'auto',\n 'auto-end',\n 'top-start',\n 'top',\n 'top-end',\n 'right-start',\n 'right',\n 'right-end',\n 'bottom-end',\n 'bottom',\n 'bottom-start',\n 'left-end',\n 'left',\n 'left-start',\n];\n","import placements from '../methods/placements';\n\n// Get rid of `auto` `auto-start` and `auto-end`\nconst validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nexport default function clockwise(placement, counter = false) {\n const index = validPlacements.indexOf(placement);\n const arr = validPlacements\n .slice(index + 1)\n .concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n","import getOppositePlacement from '../utils/getOppositePlacement';\nimport getOppositeVariation from '../utils/getOppositeVariation';\nimport getPopperOffsets from '../utils/getPopperOffsets';\nimport runModifiers from '../utils/runModifiers';\nimport getBoundaries from '../utils/getBoundaries';\nimport isModifierEnabled from '../utils/isModifierEnabled';\nimport clockwise from '../utils/clockwise';\n\nconst BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise',\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n options.boundariesElement,\n data.positionFixed\n );\n\n let placement = data.placement.split('-')[0];\n let placementOpposite = getOppositePlacement(placement);\n let variation = data.placement.split('-')[1] || '';\n\n let flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach((step, index) => {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n const popperOffsets = data.offsets.popper;\n const refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n const floor = Math.floor;\n const overlapsRef =\n (placement === 'left' &&\n floor(popperOffsets.right) > floor(refOffsets.left)) ||\n (placement === 'right' &&\n floor(popperOffsets.left) < floor(refOffsets.right)) ||\n (placement === 'top' &&\n floor(popperOffsets.bottom) > floor(refOffsets.top)) ||\n (placement === 'bottom' &&\n floor(popperOffsets.top) < floor(refOffsets.bottom));\n\n const overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n const overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n const overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n const overflowsBottom =\n floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n const overflowsBoundaries =\n (placement === 'left' && overflowsLeft) ||\n (placement === 'right' && overflowsRight) ||\n (placement === 'top' && overflowsTop) ||\n (placement === 'bottom' && overflowsBottom);\n\n // flip the variation if required\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n const flippedVariationByRef =\n !!options.flipVariations &&\n ((isVertical && variation === 'start' && overflowsLeft) ||\n (isVertical && variation === 'end' && overflowsRight) ||\n (!isVertical && variation === 'start' && overflowsTop) ||\n (!isVertical && variation === 'end' && overflowsBottom));\n\n // flips variation if popper content overflows boundaries\n const flippedVariationByContent =\n !!options.flipVariationsByContent &&\n ((isVertical && variation === 'start' && overflowsRight) ||\n (isVertical && variation === 'end' && overflowsLeft) ||\n (!isVertical && variation === 'start' && overflowsBottom) ||\n (!isVertical && variation === 'end' && overflowsTop));\n\n const flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = {\n ...data.offsets.popper,\n ...getPopperOffsets(\n data.instance.popper,\n data.offsets.reference,\n data.placement\n ),\n };\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function keepTogether(data) {\n const { popper, reference } = data.offsets;\n const placement = data.placement.split('-')[0];\n const floor = Math.floor;\n const isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n const side = isVertical ? 'right' : 'bottom';\n const opSide = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] =\n floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n","import isNumeric from '../utils/isNumeric';\nimport getClientRect from '../utils/getClientRect';\nimport find from '../utils/find';\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nexport function toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n const split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n const value = +split[1];\n const unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n let element;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n const rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n let size;\n if (unit === 'vh') {\n size = Math.max(\n document.documentElement.clientHeight,\n window.innerHeight || 0\n );\n } else {\n size = Math.max(\n document.documentElement.clientWidth,\n window.innerWidth || 0\n );\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nexport function parseOffset(\n offset,\n popperOffsets,\n referenceOffsets,\n basePlacement\n) {\n const offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n const useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n const fragments = offset.split(/(\\+|\\-)/).map(frag => frag.trim());\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n const divider = fragments.indexOf(\n find(fragments, frag => frag.search(/,|\\s/) !== -1)\n );\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn(\n 'Offsets separated by white space(s) are deprecated, use a comma (,) instead.'\n );\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n const splitRegex = /\\s*,\\s*|\\s+/;\n let ops = divider !== -1\n ? [\n fragments\n .slice(0, divider)\n .concat([fragments[divider].split(splitRegex)[0]]),\n [fragments[divider].split(splitRegex)[1]].concat(\n fragments.slice(divider + 1)\n ),\n ]\n : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map((op, index) => {\n // Most of the units rely on the orientation of the popper\n const measurement = (index === 1 ? !useHeight : useHeight)\n ? 'height'\n : 'width';\n let mergeWithPrevious = false;\n return (\n op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce((a, b) => {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(str => toValue(str, measurement, popperOffsets, referenceOffsets))\n );\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach((op, index) => {\n op.forEach((frag, index2) => {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nexport default function offset(data, { offset }) {\n const { placement, offsets: { popper, reference } } = data;\n const basePlacement = placement.split('-')[0];\n\n let offsets;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n","import getOffsetParent from '../utils/getOffsetParent';\nimport getBoundaries from '../utils/getBoundaries';\nimport getSupportedPropertyName from '../utils/getSupportedPropertyName';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function preventOverflow(data, options) {\n let boundariesElement =\n options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n const transformProp = getSupportedPropertyName('transform');\n const popperStyles = data.instance.popper.style; // assignment to help minification\n const { top, left, [transformProp]: transform } = popperStyles;\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n const boundaries = getBoundaries(\n data.instance.popper,\n data.instance.reference,\n options.padding,\n boundariesElement,\n data.positionFixed\n );\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n const order = options.priority;\n let popper = data.offsets.popper;\n\n const check = {\n primary(placement) {\n let value = popper[placement];\n if (\n popper[placement] < boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return { [placement]: value };\n },\n secondary(placement) {\n const mainSide = placement === 'right' ? 'left' : 'top';\n let value = popper[mainSide];\n if (\n popper[placement] > boundaries[placement] &&\n !options.escapeWithReference\n ) {\n value = Math.min(\n popper[mainSide],\n boundaries[placement] -\n (placement === 'right' ? popper.width : popper.height)\n );\n }\n return { [mainSide]: value };\n },\n };\n\n order.forEach(placement => {\n const side =\n ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = { ...popper, ...check[side](placement) };\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n","/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function shift(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n const { reference, popper } = data.offsets;\n const isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n const side = isVertical ? 'left' : 'top';\n const measurement = isVertical ? 'width' : 'height';\n\n const shiftOffsets = {\n start: { [side]: reference[side] },\n end: {\n [side]: reference[side] + reference[measurement] - popper[measurement],\n },\n };\n\n data.offsets.popper = { ...popper, ...shiftOffsets[shiftvariation] };\n }\n\n return data;\n}\n","import isModifierRequired from '../utils/isModifierRequired';\nimport find from '../utils/find';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n const refRect = data.offsets.reference;\n const bound = find(\n data.instance.modifiers,\n modifier => modifier.name === 'preventOverflow'\n ).boundaries;\n\n if (\n refRect.bottom < bound.top ||\n refRect.left > bound.right ||\n refRect.top > bound.bottom ||\n refRect.right < bound.left\n ) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n","import getClientRect from '../utils/getClientRect';\nimport getOppositePlacement from '../utils/getOppositePlacement';\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nexport default function inner(data) {\n const placement = data.placement;\n const basePlacement = placement.split('-')[0];\n const { popper, reference } = data.offsets;\n const isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n const subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] =\n reference[basePlacement] -\n (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n","import applyStyle, { applyStyleOnLoad } from './applyStyle';\nimport computeStyle from './computeStyle';\nimport arrow from './arrow';\nimport flip from './flip';\nimport keepTogether from './keepTogether';\nimport offset from './offset';\nimport preventOverflow from './preventOverflow';\nimport shift from './shift';\nimport hide from './hide';\nimport inner from './inner';\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.<br />\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.<br />\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nexport default {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.<br />\n * It will read the variation of the `placement` property.<br />\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift,\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.<br />\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.<br />\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.<br />\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0,\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.<br />\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".<br />\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent',\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether,\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]',\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false,\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner,\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide,\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right',\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined,\n },\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n","import modifiers from '../modifiers/index';\n\n/**\n * Default options provided to Popper.js constructor.<br />\n * These can be overridden using the `options` argument of Popper.js.<br />\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nexport default {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: () => {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.<br />\n * By default, it is set to no-op.<br />\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: () => {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers,\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n","// Utils\nimport debounce from './utils/debounce';\nimport isFunction from './utils/isFunction';\n\n// Methods\nimport update from './methods/update';\nimport destroy from './methods/destroy';\nimport enableEventListeners from './methods/enableEventListeners';\nimport disableEventListeners from './methods/disableEventListeners';\nimport Defaults from './methods/defaults';\nimport placements from './methods/placements';\n\nexport default class Popper {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n constructor(reference, popper, options = {}) {\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = { ...Popper.Defaults, ...options };\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: [],\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys({\n ...Popper.Defaults.modifiers,\n ...options.modifiers,\n }).forEach(name => {\n this.options.modifiers[name] = {\n // If it's a built-in modifier, use it as base\n ...(Popper.Defaults.modifiers[name] || {}),\n // If there are custom options, override and merge with default ones\n ...(options.modifiers ? options.modifiers[name] : {}),\n };\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers)\n .map(name => ({\n name,\n ...this.options.modifiers[name],\n }))\n // sort the modifiers by order\n .sort((a, b) => a.order - b.order);\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(modifierOptions => {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(\n this.reference,\n this.popper,\n this.options,\n modifierOptions,\n this.state\n );\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n const eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n update() {\n return update.call(this);\n }\n destroy() {\n return destroy.call(this);\n }\n enableEventListeners() {\n return enableEventListeners.call(this);\n }\n disableEventListeners() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n scheduleUpdate = () => requestAnimationFrame(this.update);\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n static Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\n\n static placements = placements;\n\n static Defaults = Defaults;\n}\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.<br />\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","var g;\r\n\r\n// This works in non-strict mode\r\ng = (function() {\r\n\treturn this;\r\n})();\r\n\r\ntry {\r\n\t// This works if eval is allowed (see CSP)\r\n\tg = g || Function(\"return this\")() || (1, eval)(\"this\");\r\n} catch (e) {\r\n\t// This works if the window reference is available\r\n\tif (typeof window === \"object\") g = window;\r\n}\r\n\r\n// g can still be undefined, but nothing to do about it...\r\n// We return undefined, instead of nothing here, so it's\r\n// easier to handle this case. if(!global) { ...}\r\n\r\nmodule.exports = g;\r\n","import 'bootstrap';\nimport 'parsleyjs';\n\n$(function () {\n $(\"[rel='tooltip']\").tooltip();\n });\n","(function() { module.exports = this[\"jQuery\"]; }());"],"sourceRoot":""}