aboutsummaryrefslogtreecommitdiffstats
path: root/dashboard/public/js/boosted.min.js.map
diff options
context:
space:
mode:
Diffstat (limited to 'dashboard/public/js/boosted.min.js.map')
-rw-r--r--dashboard/public/js/boosted.min.js.map1
1 files changed, 1 insertions, 0 deletions
diff --git a/dashboard/public/js/boosted.min.js.map b/dashboard/public/js/boosted.min.js.map
new file mode 100644
index 00000000..cedb5975
--- /dev/null
+++ b/dashboard/public/js/boosted.min.js.map
@@ -0,0 +1 @@
+{"version":3,"sources":["../../js/src/util.js","../../js/src/alert.js","../../js/src/button.js","../../js/src/carousel.js","../../js/src/collapse.js","../../js/src/dropdown.js","../../js/src/o-megamenu.js","../../js/src/modal.js","../../js/src/o-navbar.js","../../js/src/o-tab.js","../../js/src/tools/sanitizer.js","../../js/src/tooltip.js","../../js/src/popover.js","../../js/src/o-priority-nav.js","../../js/src/o-scroll-up.js","../../js/src/scrollspy.js","../../js/src/tab.js","../../js/src/toast.js","../../js/src/index.js"],"names":["TRANSITION_END","transitionEndEmulator","duration","_this","this","called","$","one","Util","setTimeout","triggerTransitionEnd","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","obj","nodeType","typeCheckConfig","componentName","config","configTypes","property","Object","prototype","hasOwnProperty","call","expectedTypes","value","valueType","toString","match","toLowerCase","RegExp","test","Error","toUpperCase","findShadowRoot","documentElement","attachShadow","getRootNode","ShadowRoot","parentNode","root","fn","emulateTransitionEnd","event","special","bindType","delegateType","handle","target","is","handleObj","handler","apply","arguments","NAME","DATA_KEY","EVENT_KEY","JQUERY_NO_CONFLICT","Event","CLOSE","CLOSED","CLICK_DATA_API","ClassName","Alert","_element","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","parent","closest","closeEvent","removeClass","hasClass","_destroyElement","detach","remove","_jQueryInterface","each","$element","data","_handleDismiss","alertInstance","preventDefault","on","Constructor","noConflict","DATA_API_KEY","Selector","FOCUS_BLUR_DATA_API","Button","toggle","input","activeElement","classList","checked","add","setAttribute","contains","button","toggleClass","type","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","Direction","SLIDE","SLID","KEYDOWN","MOUSEENTER","MOUSELEAVE","TOUCHSTART","TOUCHMOVE","TOUCHEND","POINTERDOWN","POINTERUP","DRAG_START","LOAD_DATA_API","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","_objectSpread","_handleSwipe","absDeltax","abs","_this2","_keydown","_addTouchEventListeners","_this3","start","originalEvent","pointerType","clientX","touches","end","clearTimeout","querySelectorAll","e","tagName","which","slice","indexOf","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","from","_setActiveIndicatorElement","indicators","nextIndicator","children","addClass","directionalClassName","orderClassName","_this4","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","nextElementInterval","parseInt","defaultInterval","action","TypeError","ride","_dataApiClickHandler","slideIndex","carousels","i","len","$carousel","SHOW","SHOWN","HIDE","HIDDEN","Dimension","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","scrollSize","getBoundingClientRect","triggerArrayLength","isTransitioning","jquery","_getTargetFromElement","triggerArray","isOpen","$this","currentTarget","$trigger","selectors","$target","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","CLICK","KEYDOWN_DATA_API","KEYUP_DATA_API","AttachmentMap","offset","flip","boundary","reference","display","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","_addAccessibility","disabled","_getParentFromElement","isActive","_clearMenus","showEvent","Popper","referenceElement","_getPopperConfig","body","noop","focus","find","first","hideEvent","destroy","update","scheduleUpdate","stopPropagation","constructor","_getPlacement","$parentDropdown","placement","_getOffset","offsets","popperConfig","modifiers","enabled","preventOverflow","boundariesElement","applyStyle","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","MegaMenu","_$navLinks","_$goForwardLinks","_$goBackLinks","_$topCollapseMenus","_$navLinkCollapses","noFocus","_addAriaAttributes","goTo","_initPosition","_goForward","_goBackward","_manageKeyDown","_collapseFocus","_handleCollapseToggle","$subNavs","aria-hidden","navId","$thisNavToggler","$thisNav","$thisNavBackLink","$topMenu","goBackLabel","text","role","aria-controls","aria-expanded","aria-haspopup","aria-label","translatePercentage","parents","$rootNav","siblings","collapse","height","tabindex","$thisTarget","$thisCollapse","$targetNav","currentTranslatePercentage","width","$targetNavToggler","backdrop","FOCUSIN","RESIZE","CLICK_DISMISS","KEYDOWN_DISMISS","MOUSEUP_DISMISS","MOUSEDOWN_DISMISS","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_addAria","_checkScrollbar","_setScrollbar","_setEscapeEvent","_showBackdrop","_showElement","transition","_hideModal","forEach","htmlElement","Node","ELEMENT_NODE","appendChild","removeAttribute","scrollTop","_enforceFocus","shownEvent","transitionComplete","has","_this5","_this6","_resetScrollbar","_removeBackdrop","callback","_this7","animate","createElement","className","appendTo","backdropTransitionDuration","callbackRemove","rect","left","right","innerWidth","_getScrollbarWidth","_this8","fixedContent","actualRight","calculatedRight","actualPadding","paddingRight","calculatedPadding","padding","scrollDiv","scrollbarWidth","clientWidth","removeChild","$ModalPanel","$ModalTitle","$ModalDialog","aria-modal","ModalTitleId","aria-labelledby","_this9","sticky","Navbar","_supraBar","_initialHeight","outerHeight","_initialSupraHeight","hideSupra","extend","Otab","$tab","$tabpanel","uriAttrs","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","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","keys","elements","_loop","el","elName","nodeName","attributeList","attributes","whitelistedAttributes","concat","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","l","allowedAttribute","innerHTML","CLASS_PREFIX","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","animation","template","title","delay","html","container","fallbackPlacement","sanitize","AUTO","TOP","RIGHT","BOTTOM","LEFT","HoverState","INSERTED","FOCUSOUT","Trigger","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","getElementsByTagName","dir","hash","replace","matched","behavior","arrow","onCreate","originalPlacement","_handlePopperPlacementChange","onUpdate","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","setElementContent","content","empty","append","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","key","$tip","tabClass","join","popperData","popperInstance","instance","popper","initConfigAnimation","Popover","_getContent","PriorityNav","_$menu","_initMenu","_$allNavElements","_bindUIActions","_setupMenu","MenuLabel","$allNavElements","firstPos","position","$wrappedElements","$elm","top","eq","newSet","clone","$item","$itemDuplicate","prepend","_tearDown","dropdown","method","SCROLL","CLICK_SCROLL","SCROLL_TOP","ScrollUp","_scrollElement","proxy","_process","_backToTop","Number","_clear","ACTIVE","scrollUps","makeArray","$scrollup","ACTIVATE","OffsetMethod","ScrollSpy","_offsets","_targets","_activeTarget","_scrollHeight","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","map","targetSelector","targetBCR","item","sort","pageYOffset","scrollHeight","max","_getOffsetHeight","innerHeight","maxScroll","_activate","queries","$link","node","scrollSpys","$spy","ARROW_LEFT_KEYCODE","Tab","previous","listElement","itemSelector","hiddenEvent","active","_transitionComplete","tabIndex","aria-selected","dropdownChild","dropdownElement","dropdownToggleList","$tablist","tabId","substr","Items","k","keyCode","nextTab","tab","autohide","Toast","withoutTimeout","_close","version"],"mappings":"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","sourcesContent":["/**\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 const rootElement = $(this._element).closest(\n Selector.DATA_TOGGLE\n )[0]\n\n const input = this._element.querySelector(Selector.INPUT)\n\n if (rootElement) {\n const activeElement = rootElement.querySelector(Selector.ACTIVE)\n\n if (activeElement) {\n activeElement.classList.remove(ClassName.ACTIVE)\n }\n }\n\n if (input) {\n if (input.checked) {\n this._element.classList.add(ClassName.ACTIVE)\n } else {\n this._element.classList.remove(ClassName.ACTIVE)\n }\n } else {\n this._element.classList.toggle(ClassName.ACTIVE)\n this._element.setAttribute('aria-pressed',\n this._element.classList.contains(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 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 if (button) {\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n }\n })\n .on(Event.FOCUS_BLUR_DATA_API, Selector.DATA_TOGGLE_CARROT > Selector.INPUT, (event) => {\n const button = $(event.target).closest(Selector.BUTTON)[0]\n if (button) {\n $(button).toggleClass(ClassName.FOCUS, /^focus(in)?$/.test(event.type))\n }\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 : '*:not(.multi) > .show, *:not(.multi) > .collapsing', // boosted mod\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|init/.test(config)) { // Boosted mod\n _config.toggle = false\n }\n\n if (!data) {\n data = new Collapse(this, _config)\n $this.data(DATA_KEY, data)\n }\n\n // Boosted mod\n if (/init/.test(config)) {\n return\n }\n // end mod\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// Boosted mod\n .on('DOMContentLoaded', () => {\n $(Selector.DATA_TOGGLE).each(function () {\n const target = Collapse._getTargetFromElement(this)\n\n Collapse._jQueryInterface.call($(target), 'init')\n })\n })\n// end mod\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 // Boosted mod\n MENU_ITEMS : '.dropdown-menu .dropdown-item',\n FIRST_ITEM_IN_MENU : '.dropdown-menu .dropdown-item:not(.disabled), .dropdown-menu .nav-link:not(.disabled)',\n // end mod\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 this._addAccessibility() // Boosted mod\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 // Boosted mod\n $(parent).find(Selector.FIRST_ITEM_IN_MENU).first().trigger('focus')\n // end mod\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 // Boosted mod\n _addAccessibility() {\n $(this._element).attr('aria-haspopup', true)\n // ensure that dropdown-menu have the role menu\n $(this._element).parent().children(Selector.MENU).attr('role', 'menu')\n // ensure that dropdown-itm's have the role menuitem\n $(this._element).parent().children(Selector.MENU).children('.dropdown-item').attr('role', 'menuitem')\n }\n // end mod\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 // Boosted mod\n if (/init/.test(config)) {\n return\n }\n // end mod\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 // Boosted mod\n .on('DOMContentLoaded', () => {\n // Instanciate every dropdown in the DOM\n Dropdown._jQueryInterface.call($(Selector.DATA_TOGGLE), 'init')\n })\n // end mod\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 * Boosted (v4.3.1): o-megamenu.js\n * Licensed under MIT (https://github.com/Orange-OpenSource/Orange-Boosted-Bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/* eslint no-magic-numbers: [\"error\", { \"ignore\": [1,2] }] */\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'megamenu'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.megamenu'\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 ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst TIMEOUT = 1000 // Timeout befor focusing first element\nconst PERCENTAGE = 100 // Width slide proportion\nconst SPLITLENGHT = 4\n\nconst ClassName = {\n TRANSITIONING: 'transitioning'\n}\n\nconst Selector = {\n MEGAMENU : '.mega-menu',\n ROOT_NAV : '.mega-menu > .navbar-nav',\n MEGAMENU_PANEL : '.mega-menu-panel',\n MEGAMENU_NAV : '.nav-link + .navbar-nav',\n NAV_MENU : '.navbar-nav',\n NAV_ITEM : '.nav-item',\n NAV_LINK : '.nav-link',\n NAV_LINK_COLLAPSE : '.nav-link[data-toggle=collapse]',\n NAV_LINK_BACK : '.nav-link.back',\n NAV_LINK_EXPANDED : '.nav-link[aria-expanded=true]'\n}\n\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass MegaMenu {\n constructor(element, config) {\n this._element = element\n this._$navLinks = $(this._element).find(Selector.NAV_LINK)\n this._$goForwardLinks = $(this._element).find(Selector.MEGAMENU_NAV).prev(Selector.NAV_LINK)\n this._$goBackLinks = $(this._element).find(Selector.NAV_LINK_BACK)\n this._$topCollapseMenus = $(this._element).find(Selector.MEGAMENU_PANEL)\n this._$navLinkCollapses = $(this._element).find(Selector.NAV_LINK_COLLAPSE)\n this._config = config\n if (typeof this._config.noFocus === 'undefined') {\n this._config.noFocus = false\n }\n this._addEventListeners()\n this._addAriaAttributes(this._element)\n this.goTo = this._initPosition\n }\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n // public\n\n // private\n\n _addEventListeners() {\n this._$goForwardLinks.on('click', (event) => this._goForward(event))\n this._$goBackLinks.on('click', (event) => this._goBackward(event))\n this._$navLinks.on('keydown', (event) => this._manageKeyDown(event))\n if (!this._config.noFocus) {\n this._$topCollapseMenus.on('shown.bs.collapse', this._collapseFocus)\n }\n this._$navLinkCollapses.on('click', (event) => this._handleCollapseToggle(event))\n }\n\n _addAriaAttributes(element) {\n const $subNavs = $(element).find('.nav-link + .navbar-nav')\n\n $(element).attr('role', 'application')\n $(element).find('> .navbar-nav').attr('role', 'menu')\n $(element).find(Selector.MEGAMENU_PANEL).attr('role', 'menu')\n $(element).find('.nav-link[data-toggle=collapse]').attr('role', 'menuitem')\n $(element).find(Selector.NAV_LINK_BACK).attr({\n 'aria-hidden': true\n })\n $(element).find(Selector.NAV_ITEM).attr('role', 'presentation')\n\n $subNavs.each(function () {\n const navId = Util.getUID(NAME)\n const $thisNavToggler = $(this).prev(Selector.NAV_LINK)\n const $thisNav = $(this)\n const $thisNavBackLink = $thisNav.find(Selector.NAV_LINK_BACK)\n const $topMenu = $(this).closest(Selector.NAV_MENU).parent().closest(Selector.NAV_MENU).prev(Selector.NAV_LINK)\n let goBackLabel = `go back to ${$topMenu.text()} menu`\n\n if (!$topMenu.length) {\n goBackLabel = `go back to ${$(this).closest(Selector.MEGAMENU_PANEL).prev(Selector.NAV_LINK).text()} menu`\n }\n\n $thisNav.attr({\n id: navId,\n role: 'menu'\n })\n $thisNavToggler.attr({\n role: 'menuitem',\n 'aria-controls': navId,\n 'aria-expanded': false,\n 'aria-haspopup': true\n })\n $thisNavBackLink.attr({\n role: 'menuitem',\n 'aria-controls': navId,\n 'aria-label': goBackLabel\n })\n })\n }\n\n _initPosition(target) {\n if (!$(target).length) {\n return\n }\n\n const $target = $(target).first()\n const position = $target.parents().index(this._element)\n const rootPosition = $('.mega-menu-panel .nav-link').first().parents().index($('.mega-menu'))\n const translatePercentage = -(position - rootPosition) * PERCENTAGE / 2\n const $thisNav = $target.closest(Selector.NAV_MENU)\n const $rootNav = $(Selector.ROOT_NAV)\n\n $rootNav.addClass(ClassName.TRANSITIONING)\n\n // open collapse\n if ($target.attr('data-toggle') === 'collapse') {\n $target.siblings(Selector.MEGAMENU_PANEL).collapse('show')\n this._$topCollapseMenus.not($target.siblings(Selector.MEGAMENU_PANEL)).collapse('hide')\n $(this._element).height('auto')\n $rootNav.css('transform', 'translateX(0%)')\n } else {\n $target.closest(Selector.MEGAMENU_PANEL).collapse('show')\n this._$topCollapseMenus.not($target.closest(Selector.MEGAMENU_PANEL)).collapse('hide')\n\n // show menu and hide other\n $target.parents(Selector.NAV_MENU).show()\n\n // set aria on parent links\n $target.parents(Selector.NAV_ITEM).find('> .nav-link').not($target).attr({\n tabindex: -1,\n 'aria-hidden': true,\n 'aria-expanded': true\n })\n\n // translate to pos\n $rootNav.css('transform', `translateX(${translatePercentage}%)`)\n if (translatePercentage) {\n // adapt main collapse height to target height\n $(this._element).height($thisNav.height())\n } else {\n $(this._element).height('auto')\n }\n }\n\n // set focus on target link\n setTimeout(() => {\n if (!this._config.noFocus) {\n // set focus on target link\n $target.trigger('focus')\n }\n\n $rootNav.removeClass(ClassName.TRANSITIONING)\n }, TIMEOUT)\n }\n\n _manageKeyDown(event) {\n const $thisTarget = $(event.target)\n\n // test key code\n if (/input|textarea/i.test(event.target.tagName)) {\n return\n }\n\n // proceed according to key code\n switch (event.which) {\n case ARROW_LEFT_KEYCODE:\n this._goBackward(event)\n break\n case ARROW_RIGHT_KEYCODE:\n this._goForward(event)\n break\n case ARROW_UP_KEYCODE:\n // focus prev nav link\n $thisTarget.parent().prev().find('>.nav-link').not(Selector.NAV_LINK_BACK).trigger('focus')\n break\n case ARROW_DOWN_KEYCODE:\n // focus next nav link\n $thisTarget.parent().next().find('>.nav-link').trigger('focus')\n break\n default:\n }\n }\n\n _collapseFocus() {\n $(this).find(Selector.NAV_LINK).not(Selector.NAV_LINK_BACK).first().trigger('focus')\n }\n\n _handleCollapseToggle(e) {\n const $this = $(e.target)\n const $thisCollapse = $($this.attr('href'))\n\n this._$topCollapseMenus.not($thisCollapse).collapse('hide')\n }\n\n _goForward(e) {\n e.preventDefault()\n const $this = $(e.target)\n const $thisNav = $this.closest(Selector.NAV_MENU)\n const $targetNav = $this.next(Selector.NAV_MENU)\n const $rootNav = $(Selector.ROOT_NAV)\n const $thisNavToggler = $this\n const currentTranslatePos = parseInt($rootNav.css('transform').split(',')[SPLITLENGHT], 10)\n const navWidth = $rootNav.width()\n const currentTranslatePercentage = PERCENTAGE * currentTranslatePos / navWidth\n\n if (!$this.next(Selector.NAV_MENU).length || $rootNav.hasClass(ClassName.TRANSITIONING)) {\n return false\n }\n\n $rootNav.addClass(ClassName.TRANSITIONING)\n\n // hide all nav on same level\n $thisNav.find(Selector.NAV_MENU).hide()\n\n // show target navbar-nav\n $targetNav.show()\n\n // adapt main collapse height to target height\n $(Selector.MEGAMENU).height($targetNav.height())\n\n // make only visible elements focusable\n if (!currentTranslatePercentage) {\n $rootNav.find('>.nav-item .nav-link').attr({\n tabindex: -1,\n 'aria-hidden': true\n })\n }\n $thisNav.find(Selector.NAV_LINK).attr({\n tabindex: -1,\n 'aria-hidden': true\n })\n $targetNav.find(Selector.NAV_LINK).attr({\n tabindex: 0,\n 'aria-hidden': false\n })\n\n // translate menu\n $rootNav.css('transform', `translateX(${currentTranslatePercentage - PERCENTAGE}%)`)\n\n // focus on target nav first item\n $rootNav.one('transitionend', () => {\n $thisNavToggler.attr('aria-expanded', true)\n $targetNav.find(Selector.NAV_LINK).not(Selector.NAV_LINK_BACK).first().trigger('focus')\n $rootNav.removeClass(ClassName.TRANSITIONING)\n })\n return true\n }\n\n _goBackward(e) {\n e.preventDefault()\n\n const $this = $(e.target)\n const $thisNav = $this.closest(Selector.NAV_MENU)\n const $targetNav = $thisNav.parent().closest(Selector.NAV_MENU)\n const $rootNav = $(Selector.ROOT_NAV)\n const $targetNavToggler = $targetNav.find(Selector.NAV_LINK_EXPANDED)\n const currentTranslatePos = parseInt($rootNav.css('transform').split(',')[SPLITLENGHT], 10)\n const navWidth = $rootNav.width()\n const currentTranslatePercentage = PERCENTAGE * currentTranslatePos / navWidth\n\n if (!currentTranslatePercentage || $rootNav.hasClass(ClassName.TRANSITIONING)) {\n return false\n }\n\n $rootNav.addClass(ClassName.TRANSITIONING)\n\n // make only visible elements focusable\n $targetNav.find(Selector.NAV_LINK).attr({\n tabindex: 0,\n 'aria-hidden': false\n })\n if (currentTranslatePercentage === -PERCENTAGE) {\n // reset main collapse height\n $(Selector.MEGAMENU).css('height', 'auto')\n $rootNav.find('>.nav-item .nav-link').attr({\n tabindex: 0,\n 'aria-hidden': false\n })\n }\n\n // translate menu\n $rootNav.css('transform', `translateX(${currentTranslatePercentage + PERCENTAGE}%)`)\n\n // focus on target nav first item\n $rootNav.one('transitionend', () => {\n $targetNavToggler.attr('aria-expanded', false)\n $targetNavToggler.trigger('focus')\n $thisNav.hide()\n $rootNav.removeClass(ClassName.TRANSITIONING)\n })\n return true\n }\n\n // static\n\n static _jQueryInterface(config) {\n return this.each(function () {\n if (!$(this).is(Selector.MEGAMENU)) {\n throw new TypeError('Element is not a mega menu')\n }\n\n if (!config) {\n config = {}\n } else if (config.noFocus && typeof config.noFocus !== 'boolean') {\n // param = true\n throw new TypeError('no-focus parameter must be boolean')\n }\n\n let data = $(this).data(DATA_KEY)\n\n if (!data) {\n data = new MegaMenu(this, config)\n $(this).data(DATA_KEY, data)\n }\n\n if (config.target) {\n if (typeof config.target !== 'string' || !/^[.#].*/.test(config.target)) {\n throw new TypeError(`Selector \"${config.target}\" is not supported`)\n }\n\n data.goTo(config.target)\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = MegaMenu._jQueryInterface\n$.fn[NAME].Constructor = MegaMenu\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return MegaMenu._jQueryInterface\n}\n\nexport default MegaMenu\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, .position-fixed'\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 // Boosted mod\n this._addAria()\n // end mod\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._setEscapeEvent()\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\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 // 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 _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._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 _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\n // Adjust fixed content padding\n $(fixedContent).each((index, element) => {\n const actualRight = element.style.right\n const calculatedRight = $(element).css('right')\n $(element)\n .data('right', actualRight)\n .css('right', `${parseFloat(calculatedRight) + 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 right = $(element).data('right')\n $(element).removeData('right')\n element.style.right = right ? right : ''\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 // Boosted mod\n _addAria() {\n const $ModalPanel = $(this._element)\n const $ModalTitle = $ModalPanel.find('.modal-title')\n const $ModalDialog = $ModalPanel.find('.modal-dialog')\n\n $ModalPanel.attr({\n role: 'dialog',\n 'aria-modal': true\n })\n\n if ($ModalTitle) {\n const ModalTitleId = $ModalTitle.attr('id')\n if (ModalTitleId) {\n $ModalPanel.attr({\n 'aria-labelledby' : ModalTitleId\n })\n }\n }\n\n if ($ModalDialog) {\n $ModalDialog.attr('role', 'document')\n }\n }\n // end mod\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 * Boosted (v4.3.1): o-navbar.js\n * Licensed under MIT (https://github.com/Orange-OpenSource/Orange-Boosted-Bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'navbar'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.navbar'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst BREAKPOINT = 768\n\nconst Default = {\n sticky : false,\n trigger : ''\n}\n\nconst DefaultType = {\n sticky : 'boolean',\n trigger : 'string'\n}\n\nconst Selector = {\n SUPRA_BAR : '.navbar.supra',\n MEGAMENU_PANEL : '.mega-menu.panel'\n}\n\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Navbar {\n constructor(element, config) {\n this._element = element\n this._supraBar = element.querySelector(Selector.SUPRA_BAR)\n this._config = this._getConfig(config)\n this._initialHeight = $(this._element).outerHeight()\n this._initialSupraHeight = $(this._supraBar).outerHeight()\n\n this._addAria()\n\n if (this._config.sticky) {\n $(this._element).addClass('fixed-top')\n $(Selector.MEGAMENU_PANEL).addClass('sticky')\n $(document.body).css('padding-top', this._initialHeight)\n\n $(window).on('scroll', () => {\n const Scroll = $(window).scrollTop()\n if (Scroll > 0) {\n $(this._element).addClass('minimized')\n } else {\n $(this._element).removeClass('minimized')\n }\n })\n }\n\n if (this._config.hideSupra) {\n $(window).on('scroll', () => {\n if ($(window).innerWidth() < BREAKPOINT) {\n return\n }\n\n const Scroll = $(window).scrollTop()\n\n if (Scroll > 0) {\n $(Selector.SUPRA_BAR).hide()\n } else {\n $(Selector.SUPRA_BAR).show()\n }\n })\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 // private\n\n _getConfig(config) {\n config = $.extend({}, Default, config)\n Util.typeCheckConfig(NAME, config, DefaultType)\n return config\n }\n\n _addAria() {\n $(this._element).find('.navbar .nav-link[data-toggle]').attr('aria-haspopup', true)\n }\n\n // static\n\n static _jQueryInterface(config) {\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 Navbar(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] = Navbar._jQueryInterface\n$.fn[NAME].Constructor = Navbar\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Navbar._jQueryInterface\n}\n\nexport default Navbar\n","/**\n * ------------------------------------------------------------------------------------------------------\n * Boosted (v4.3.1): otab.js\n * Licensed under MIT (https://github.com/Orange-OpenSource/Orange-Boosted-Bootstrap/blob/master/LICENSE)\n * ------------------------------------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\nimport Util from './util'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'otab'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.otab'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst DEFAULT_THRESHOLD = 2\n\nconst Event = {\n CLICK_DATA_API : `click${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n ACTIVE : 'active',\n SHOW : 'show',\n ACCORDION_LAYOUT: 'accordion-layout'\n}\n\nconst Selector = {\n OTAB_HEADING: '.o-tab-heading',\n OTAB_CONTENT: '.o-tab-content'\n}\n\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass Otab {\n constructor(element) {\n this._element = element\n this._addAccessibility()\n\n if ($(this._element).parent().find(Selector.OTAB_HEADING).length > DEFAULT_THRESHOLD) {\n $(this._element).parent().addClass(ClassName.ACCORDION_LAYOUT)\n }\n }\n\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n\n // public\n show() {\n const $element = $(this._element)\n\n if ($element.next().hasClass(ClassName.SHOW)) {\n return\n }\n\n // from parent remove all tab-content show classes\n $element.parent().find(Selector.OTAB_CONTENT).removeClass(ClassName.SHOW)\n // remove all aria-expanded=true\n $element.parent().find('[aria-expanded=\"true\"]').attr('aria-expanded', false)\n // add show class to next tab-content\n $element.next().addClass(ClassName.SHOW)\n // add aria-expanded=true to element\n $element.attr('aria-expanded', true)\n }\n\n // private\n _addAccessibility() {\n const $tab = $(this._element)\n const $tabpanel = $tab.next()\n\n $tab.attr('id', Util.getUID(NAME))\n $tabpanel.attr('id', Util.getUID(NAME))\n\n $tab.attr({\n 'aria-controls': $tabpanel.attr('id'),\n role: 'tab'\n })\n $tabpanel.attr({\n 'aria-labelledby': $tab.attr('id'),\n role: 'tabpanel',\n tabindex: 0\n })\n\n if ($tabpanel.hasClass(ClassName.SHOW)) {\n $tab.attr('aria-expanded', true)\n } else {\n $tab.attr('aria-expanded', false)\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 Otab(this)\n $this.data(DATA_KEY, data)\n }\n\n // Boosted mod\n if (/init/.test(config)) {\n return\n }\n // end mod\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('DOMContentLoaded', () => {\n Otab._jQueryInterface.call($(Selector.OTAB_HEADING), 'init')\n })\n .on(Event.CLICK_DATA_API, Selector.OTAB_HEADING, function (event) {\n event.preventDefault()\n Otab._jQueryInterface.call($(this), ClassName.SHOW)\n })\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = Otab._jQueryInterface\n$.fn[NAME].Constructor = Otab\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return Otab._jQueryInterface\n}\n\nexport default Otab\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 // boosted mod fix rtl\n let 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 // boosted mod fix rtl\n const dir = document.getElementsByTagName('html')[0].dir\n if (dir === 'rtl') {\n const hash = {\n right: 'left',\n left: 'right'\n }\n attachment = attachment.replace(/right|left/g, (matched) => hash[matched])\n }\n // end mod\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 * Boosted (v4.3.1): o-priority-nav.js\n * Licensed under MIT (https://github.com/Orange-OpenSource/Orange-Boosted-Bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'prioritynav'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.prioritynav'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\nconst RESIZE_DURATION = 500\nconst TAB_KEYCODE = 9\n\nconst Event = {\n RESIZE: 'resize',\n FOCUS: 'focus'\n}\n\nconst ClassName = {\n PRIORITY: 'priority',\n HIDE: 'sr-only',\n RESIZING: 'resizing'\n}\n\nconst Selector = {\n NAV_ELEMENTS: 'li:not(\\'.overflow-nav\\')',\n FIRST_ELEMENT: 'li:first',\n PRIORITY_ELEMENT: '.priority'\n}\n\nconst MenuLabelDefault = 'More'\n\nfunction MenuTemplate(MenuLabel) {\n return `\n <li class=\"overflow-nav nav-item dropdown\">\n <a href=\"#\" class=\"dropdown-toggle nav-link\" data-toggle=\"dropdown\" role=\"button\" aria-haspopup=\"true\">${MenuLabel}</a>\n <ul class=\"overflow-nav-list dropdown-menu dropdown-menu-right\"></ul>\n </li>\n`\n}\n\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass PriorityNav {\n constructor(element, config) {\n this._element = element\n this._config = config\n\n if ($(element).is('ul')) {\n this._$menu = $(element)\n } else {\n this._$menu = $(element).find('ul').first()\n }\n this._initMenu()\n this._$allNavElements = this._$menu.find(Selector.NAV_ELEMENTS)\n this._bindUIActions()\n this._setupMenu()\n }\n\n // getters\n\n static get VERSION() {\n return VERSION\n }\n\n // public\n\n // private\n\n _initMenu() {\n let MenuLabel = this._config\n\n if (typeof MenuLabel === 'undefined') {\n MenuLabel = MenuLabelDefault\n }\n\n // add menu template\n this._$menu.append(MenuTemplate(MenuLabel))\n }\n\n _setupMenu() {\n const $allNavElements = this._$allNavElements\n\n // Checking top position of first item (sometimes changes)\n const firstPos = this._$menu.find(Selector.FIRST_ELEMENT).position()\n\n // Empty collection in which to put menu items to move\n let $wrappedElements = $()\n\n // Used to snag the previous menu item in addition to ones that have wrapped\n let first = true\n\n // Loop through all the nav items...\n this._$allNavElements.each(function (i) {\n const $elm = $(this)\n\n // ...in which to find wrapped elements\n const pos = $elm.position()\n\n if (pos.top !== firstPos.top) {\n // If element is wrapped, add it to set\n $wrappedElements = $wrappedElements.add($elm)\n\n // Add the previous one too, if first\n if (first) {\n $wrappedElements = $wrappedElements.add($allNavElements.eq(i - 1))\n first = false\n }\n }\n })\n\n if ($wrappedElements.length) {\n // Clone set before altering\n const newSet = $wrappedElements.clone()\n\n // Hide ones that we're moving\n $wrappedElements.addClass(ClassName.HIDE)\n $wrappedElements.find('.nav-link').attr('tabindex', -1)\n\n // Add wrapped elements to dropdown\n this._$menu.find('.overflow-nav-list').append(newSet)\n\n // Show new menu\n this._$menu.find('.overflow-nav').addClass('show-inline-block')\n\n // Make overflow visible again so dropdown can be seen.\n this._$menu.find('.o-nav-local').css('overflow', 'visible')\n\n // Check if menu doesn't overflow after process\n if (this._$menu.find('.overflow-nav').position().top !== firstPos.top) {\n const $item = $(this._element).find(`.${ClassName.HIDE}`).first().prev()\n const $itemDuplicate = $item.clone()\n\n $item.addClass(ClassName.HIDE)\n $item.find('.nav-link').attr('tabindex', -1)\n\n this._$menu.find('.overflow-nav-list').prepend($itemDuplicate)\n }\n }\n\n // hide menu from AT\n this._$menu.find('.overflow-nav').attr('aria-hidden', true)\n }\n\n _tearDown() {\n this._$menu.find('.overflow-nav-list').empty()\n this._$menu.find('.overflow-nav').removeClass('show-inline-block')\n this._$allNavElements.removeClass(ClassName.HIDE)\n this._$allNavElements.find('.nav-link').attr('tabindex', 0)\n }\n\n _bindUIActions() {\n $(window).on(Event.RESIZE, () => {\n this._$menu.addClass(ClassName.RESIZING)\n\n setTimeout(() => {\n this._tearDown()\n this._setupMenu()\n this._$menu.removeClass(ClassName.RESIZING)\n }, RESIZE_DURATION)\n })\n\n this._$menu.find('.overflow-nav .dropdown-toggle').on('keyup', (e) => {\n if (e.which === TAB_KEYCODE) {\n $(e.target).dropdown('toggle')\n }\n })\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 PriorityNav(this, config)\n $(this).data(DATA_KEY, data)\n }\n\n if (typeof config !== 'undefined' && config) {\n if (typeof config !== 'string') {\n throw new TypeError('Priority nav label type must be string')\n }\n }\n })\n }\n}\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = PriorityNav._jQueryInterface\n$.fn[NAME].Constructor = PriorityNav\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return PriorityNav._jQueryInterface\n}\n\nexport default PriorityNav\n","/**\n * --------------------------------------------------------------------------\n * Boosted (v4.3.1): o-scroll-up.js\n * Licensed under MIT (https://github.com/Orange-OpenSource/Orange-Boosted-Bootstrap/blob/master/LICENSE)\n * --------------------------------------------------------------------------\n */\n\nimport $ from 'jquery'\n\n/**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\nconst NAME = 'scrollup'\nconst VERSION = '4.3.1'\nconst DATA_KEY = 'bs.scrollup'\nconst EVENT_KEY = `.${DATA_KEY}`\nconst DATA_API_KEY = '.data-api'\nconst JQUERY_NO_CONFLICT = $.fn[NAME]\n\nconst SCROLLANIMATE = 500\n\n\nconst Default = {\n offset : 10,\n method : 'auto',\n target : ''\n}\n\nconst Event = {\n SCROLL : `scroll${EVENT_KEY}`,\n CLICK_SCROLL : `click${EVENT_KEY}`,\n LOAD_DATA_API : `load${EVENT_KEY}${DATA_API_KEY}`\n}\n\nconst ClassName = {\n SCROLL_TOP : 'o-scroll-up'\n}\n\nconst Selector = {\n SCROLL_TOP : '.o-scroll-up:not(.static)'\n}\n\n\n/**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\nclass ScrollUp {\n constructor(element) {\n this._element = element\n this._scrollElement = window\n\n $(window).on(Event.SCROLL, $.proxy(this._process, this))\n $(Selector.SCROLL_TOP).on(Event.CLICK_SCROLL, $.proxy(this._backToTop, this))\n $(this._element).addClass('is-fixed')\n this._process()\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\n // public\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 }\n\n\n // private\n\n _process() {\n if ($(this._scrollElement).scrollTop() > Number($(this._scrollElement).height())) {\n $(Selector.SCROLL_TOP).show()\n } else {\n $(Selector.SCROLL_TOP).hide()\n }\n }\n\n _clear() {\n $(this._selector).filter(Selector.ACTIVE).removeClass(ClassName.ACTIVE)\n }\n\n _backToTop() {\n if (typeof $.animate === 'function') {\n $('html, body').animate({\n scrollTop: 0\n }, SCROLLANIMATE)\n } else {\n $('html, body').scrollTop(0)\n }\n }\n\n // static\n\n static _jQueryInterface() {\n return this.each(function () {\n let data = $(this).data(DATA_KEY)\n if (!data) {\n data = new ScrollUp(this)\n $(this).data(DATA_KEY, data)\n }\n })\n }\n}\n\n\n/**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n$(window).on(Event.LOAD_DATA_API, () => {\n const scrollUps = $.makeArray($(Selector.SCROLL_TOP))\n for (let i = scrollUps.length; i--;) {\n const $scrollup = $(scrollUps[i])\n ScrollUp._jQueryInterface.call($scrollup, $scrollup.data())\n }\n})\n\n\n/**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n$.fn[NAME] = ScrollUp._jQueryInterface\n$.fn[NAME].Constructor = ScrollUp\n$.fn[NAME].noConflict = () => {\n $.fn[NAME] = JQUERY_NO_CONFLICT\n return ScrollUp._jQueryInterface\n}\n\nexport default ScrollUp\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// boosted mod\nconst ARROW_LEFT_KEYCODE = 37 // KeyboardEvent.which value for left arrow key\nconst ARROW_UP_KEYCODE = 38 // KeyboardEvent.which value for up arrow key\nconst ARROW_RIGHT_KEYCODE = 39 // KeyboardEvent.which value for right arrow key\nconst ARROW_DOWN_KEYCODE = 40 // KeyboardEvent.which value for down arrow key\nconst REGEXP_KEYDOWN = new RegExp(`${ARROW_LEFT_KEYCODE}|${ARROW_UP_KEYCODE}|${ARROW_RIGHT_KEYCODE}|${ARROW_DOWN_KEYCODE}`)\n// end mod\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 KEYDOWN_DATA_API : `keydown${EVENT_KEY}${DATA_API_KEY}` // boosted mod\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 this._addAccessibility() // Boosted mod\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 // Boosted mod\n $(container).find('.nav-link:not(.dropdown-toggle)').attr({\n tabIndex : '-1',\n 'aria-selected' : false\n })\n $(container).find('.tab-pane').attr({\n 'aria-hidden' : true,\n tabIndex : '-1'\n })\n // end mod\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 // Boosted mod\n $(element).filter('.nav-link:not(.dropdown-toggle).active').attr({\n tabIndex : '0',\n 'aria-selected' : true\n })\n $(element).filter('.tab-pane.active').attr({\n 'aria-hidden' : false,\n tabIndex : '0'\n })\n // end mod\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 // Boosted mod\n _addAccessibility() {\n const $tab = $(this._element)\n const $tabpanel = $($tab.attr('href'))\n const $tablist = $tab.closest(Selector.NAV_LIST_GROUP)\n const tabId = $tab.attr('id') || Util.getUID(NAME)\n\n $tab.attr('id', tabId)\n\n if ($tabpanel) {\n $tab.attr('role', 'tab')\n $tablist.attr('role', 'tablist')\n // $li.attr('role', 'presentation')\n }\n\n if ($tab.hasClass(ClassName.ACTIVE)) {\n $tab.attr({\n tabIndex : '0',\n 'aria-selected' : 'true'\n })\n\n if ($tab.attr('href')) {\n $tab.attr('aria-controls', $tab.attr('href').substr(1))\n }\n\n $tabpanel.attr({\n role : 'tabpanel',\n tabIndex : '0',\n 'aria-hidden' : 'false',\n 'aria-labelledby': tabId\n })\n } else {\n $tab.attr({\n tabIndex : '-1',\n 'aria-selected' : 'false'\n })\n\n if ($tab.attr('href')) {\n $tab.attr('aria-controls', $tab.attr('href').substr(1))\n }\n\n $tabpanel.attr({\n role : 'tabpanel',\n tabIndex : '-1',\n 'aria-hidden' : 'true',\n 'aria-labelledby': tabId\n })\n }\n }\n // end mod\n\n // Static\n\n // Boosted mod\n static _dataApiKeydownHandler(e) {\n const $this = $(this)\n const Items = $this.closest('ul[role=tablist] ').find('[role=tab]:visible')\n const k = e.which || e.keyCode\n\n let index = 0\n\n index = Items.index(Items.filter(':focus'))\n\n if (k === ARROW_UP_KEYCODE || k === ARROW_LEFT_KEYCODE) {\n index--\n } // up & left\n if (k === ARROW_RIGHT_KEYCODE || k === ARROW_DOWN_KEYCODE) {\n index++\n } // down & right\n\n if (index < 0) {\n index = Items.length - 1\n }\n if (index === Items.length) {\n index = 0\n }\n const nextTab = Items.eq(index)\n\n if (nextTab.attr('role') === 'tab') {\n nextTab.tab('show').trigger('focus')\n }\n\n e.preventDefault()\n e.stopPropagation()\n }\n // end mod\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 // Boosted mod\n if (/init/.test(config)) {\n return\n }\n // end mod\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 // Boosted mod\n .on(Event.KEYDOWN_DATA_API, Selector.DATA_TOGGLE, function (event) {\n if (!REGEXP_KEYDOWN.test(event.which)) {\n return\n }\n event.preventDefault()\n Tab._dataApiKeydownHandler.call($(this), event)\n })\n .on('DOMContentLoaded', () => {\n Tab._jQueryInterface.call($(Selector.DATA_TOGGLE), 'init')\n })\n // end mod\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 MegaMenu from './o-megamenu'\nimport Modal from './modal'\nimport Navbar from './o-navbar'\nimport Otab from './o-tab'\nimport Popover from './popover'\nimport PriorityNav from './o-priority-nav'\nimport ScrollUp from './o-scroll-up'\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 MegaMenu,\n Modal,\n Navbar,\n Otab,\n Popover,\n PriorityNav,\n ScrollUp,\n Scrollspy,\n Tab,\n Toast,\n Tooltip\n}\n"]} \ No newline at end of file