{"version":3,"sources":["webpack:///./node_modules/scheduler/cjs/scheduler.production.min.js","webpack:///./resources/js/category.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/process/browser.js","webpack:///./resources/js/bootstrap.js","webpack:///./resources/js/components/PostComponents/Image.jsx","webpack:///./resources/js/components/Dummies/SmallPostDummy.jsx","webpack:///./resources/js/components/Models/SmallPost.jsx","webpack:///./resources/js/libraries/js.cookie.js","webpack:///./resources/js/components/PostComponents/Ad.jsx","webpack:///./resources/js/translation.js","webpack:///./node_modules/object-assign/index.js","webpack:///./resources/js/other.js","webpack:///./resources/js/components/Pages/CategoryPage.jsx","webpack:///./resources/js/components/InfiniteScroll.jsx","webpack:///./node_modules/scheduler/index.js","webpack:///./node_modules/bootstrap/dist/js/bootstrap.js","webpack:///./resources/js/menu.js","webpack:///./resources/js/components/Partials/TermFilter.jsx","webpack:///./lang sync ^\\.\\/.*\\.json$","webpack:///./node_modules/lazysizes/lazysizes.js","webpack:///./node_modules/dompurify/dist/purify.js","webpack:///(webpack)/buildin/global.js"],"names":["f","g","h","k","l","window","MessageChannel","p","q","t","a","exports","unstable_now","b","setTimeout","u","Date","now","clearTimeout","unstable_forceFrameRate","w","performance","x","y","z","console","A","cancelAnimationFrame","requestAnimationFrame","error","B","C","D","E","F","G","Math","floor","H","I","port2","port1","onmessage","postMessage","J","c","length","push","d","e","K","L","M","pop","m","n","v","r","sortIndex","id","N","O","P","Q","R","S","T","U","V","callback","startTime","expirationTime","W","X","priorityLevel","Y","Z","unstable_IdlePriority","unstable_ImmediatePriority","unstable_LowPriority","unstable_NormalPriority","unstable_Profiling","unstable_UserBlockingPriority","unstable_cancelCallback","unstable_continueExecution","unstable_getCurrentPriorityLevel","unstable_getFirstCallbackNode","unstable_next","unstable_pauseExecution","unstable_requestPaint","unstable_runWithPriority","unstable_scheduleCallback","delay","timeout","unstable_shouldYield","unstable_wrapCallback","apply","this","arguments","require","isBrowser","document","navigator","timeoutDuration","longerTimeoutBrowsers","i","userAgent","indexOf","debounce","Promise","fn","called","resolve","then","scheduled","isFunction","functionToCheck","toString","call","getStyleComputedProperty","element","property","nodeType","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","parentNode","host","getScrollParent","body","_getStyleComputedProp","overflow","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","documentElement","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","contains","firstElementChild","element1root","getScroll","side","undefined","upperSide","html","scrollingElement","includeScroll","rect","subtract","scrollTop","scrollLeft","modifier","top","bottom","left","right","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","max","parseInt","getWindowSizes","height","width","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","target","props","descriptor","enumerable","configurable","writable","Object","defineProperty","key","protoProps","staticProps","prototype","obj","value","_extends","assign","source","hasOwnProperty","getClientRect","offsets","getBoundingClientRect","result","sizes","clientWidth","clientHeight","horizScrollbar","offsetWidth","vertScrollbar","offsetHeight","getOffsetRectRelativeToArbitraryNode","children","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","innerHeight","offset","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","keys","map","area","sort","filteredAreas","filter","_ref2","computedPlacement","variation","split","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","marginBottom","marginRight","getOppositePlacement","hash","replace","matched","getPopperOffsets","referenceOffsets","popperRect","popperOffsets","isHoriz","mainSide","secondarySide","measurement","secondaryMeasurement","find","arr","check","Array","runModifiers","modifiers","data","ends","slice","prop","findIndex","cur","match","forEach","warn","enabled","update","isDestroyed","arrowStyles","attributes","flipped","options","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","name","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","destroy","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","setupEventListeners","updateBound","addEventListener","passive","scrollElement","attachToScrollParents","event","scrollParents","isBody","eventsEnabled","enableEventListeners","scheduleUpdate","removeEventListener","isNumeric","isNaN","isFinite","setStyles","unit","isFirefox","isModifierRequired","requestingName","requestedName","requesting","isRequired","_requesting","requested","placements","validPlacements","clockwise","counter","index","concat","reverse","BEHAVIORS","parseOffset","basePlacement","useHeight","fragments","frag","trim","divider","search","splitRegex","ops","op","mergeWithPrevious","reduce","str","toValue","index2","Defaults","shift","shiftvariation","_data$offsets","isVertical","shiftOffsets","preventOverflow","transformProp","popperStyles","transform","priority","primary","escapeWithReference","secondary","min","keepTogether","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","round","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","setAttribute","onLoad","modifierOptions","Popper","_this","bind","jquery","Utils","global","PopperUtils","cachedSetTimeout","cachedClearTimeout","process","module","defaultSetTimout","Error","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","run","marker","runClearTimeout","Item","array","noop","nextTick","args","title","browser","env","argv","versions","on","addListener","once","off","removeListener","removeAllListeners","emit","prependListener","prependOnceListener","listeners","binding","cwd","chdir","dir","umask","$","jQuery","axios","defaults","headers","common","withCredentials","CancelToken","axiosSource","forms","getElementsByTagName","cancel","Image","_inherits","focalX","focalY","focalZ","small","media","normal","formats","_createClass","setState","_this2","image","RegExp","imgixUrl","stateData","paddingBottom","React","className","backgroundImage","data-pin-nopin","src","alt","imageUrl","URL","searchParams","set","imageMain","imageLazy","Fragment","sizeName","format","src1x","src2x","type","data-srcset","data-src","Component","SmallPostDummy","columnSize","SmallPost","post","rowCount","postsBeforeAd","shortContent","DOMPurify","sanitize","excerpt","featured_image","href","url","categories","date_text","dangerouslySetInnerHTML","__html","infinityIndex","Ad","nbr","fitAdsToContent","timestamp","Cookie","factory","registeredInModuleLoader","define","OldCookies","Cookies","api","noConflict","extend","init","converter","path","expires","setMilliseconds","getMilliseconds","toUTCString","JSON","stringify","write","encodeURIComponent","String","decodeURIComponent","escape","stringifiedAttributes","attributeName","cookie","cookies","rdecode","parts","join","json","read","parse","get","getJSON","remove","withConverter","adSlots","count","ad-placement","data-aduniqueid","transReplaces","text","replaces","trans","locale","getAttribute","translation","translations","trans_choice","_translation$split2","single","plural","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","toObject","val","test1","getOwnPropertyNames","test2","fromCharCode","test3","letter","err","shouldUseNative","from","symbols","to","s","viewSize","envs","createElement","appendChild","curEnv","classList","add","display","CategoryPage","pagetype","endpoint","category","urlStructure","getInitialState","seoDataArray","term","seoData","aller_ga","InfiniteScroll","pageId","perPage","getSeoDataArray","categoryPageElement","getElementById","ReactDOM","render","dataset","pageid","childType","Children","only","lastIndex","page","initialPage","total","perpage","progress","completed","skeleton","date","stateObjs","metaObjs","domain","location","pathname","categorySlug","tagSlug","childrenDivided","tags","orderDirection","year","month","hideAds","cursor","topAdDiv","usedTimestamps","keyToTimestamp","infiniteScroll","handleScroll","onOrderingChange","returner","current_page","isArray","history","pushState","current_url","metaData","cts","metadata","publishedTime","postDate","author","postAuthor","loggedIn","contentType","pageType","doUpdateMetaData","metaElement","headElement","content","updateBrowserHistory","updateMetaData","DFPInit","adsUniqueId","hideAdsEnabled","_ana_hide_ads","hideDuration","_ana_hide_ads_duration_active","hideUntil","_ana_hide_ads_duration","hasNewTimestamp","initiateAd","instgrm","Embeds","response","status","log","getEndpoint","values","newChildCollection","last_page","prevState","meta_data","shouldHideAds","random","scrollHeight","ordering","preview","contentWrapper","findDOMNode","scrollY","each","_this3","up","down","reset","pageOverride","orderDirectionOverride","previousChildCollection","direction","_this4","generateUrl","initAds","childElement","childElements","masterindex","child","_this5","cloneElement","skeletonElements","isValidElement","constructChildren","showFilter","showLink","homeUrl","protocol","TermFilter","topCategories","_interopDefaultLegacy","$__default","Popper__default","_defineProperties","transitionEndEmulator","duration","one","Util","TRANSITION_END","triggerTransitionEnd","getUID","getSelectorFromElement","selector","hrefAttr","_","getTransitionDurationFromElement","transitionDuration","transitionDelay","floatTransitionDuration","floatTransitionDelay","reflow","trigger","supportsTransitionEnd","Boolean","isElement","typeCheckConfig","componentName","config","configTypes","expectedTypes","valueType","findShadowRoot","attachShadow","getRootNode","root","ShadowRoot","jQueryDetection","emulateTransitionEnd","special","bindType","delegateType","handle","is","handleObj","handler","NAME","JQUERY_NO_CONFLICT","Alert","_element","_proto","close","rootElement","_getRootElement","_triggerCloseEvent","isDefaultPrevented","_removeElement","dispose","removeData","closest","closeEvent","Event","removeClass","hasClass","_destroyElement","detach","_jQueryInterface","$element","_handleDismiss","alertInstance","preventDefault","JQUERY_NO_CONFLICT$1","Button","shouldAvoidTriggerChange","toggle","triggerChangeEvent","addAriaPressed","input","checked","activeElement","focus","hasAttribute","toggleClass","avoidTriggerChange","button","initialButton","inputBtn","tagName","buttons","querySelectorAll","_i","_len","_button","NAME$2","EVENT_KEY$2","JQUERY_NO_CONFLICT$2","Default","interval","keyboard","slide","pause","wrap","touch","DefaultType","PointerType","TOUCH","PEN","Carousel","_items","_interval","_activeElement","_isPaused","_isSliding","touchTimeout","touchStartX","touchDeltaX","_config","_getConfig","_indicatorsElement","_touchSupported","maxTouchPoints","_pointerEvent","PointerEvent","MSPointerEvent","_addEventListeners","next","_slide","nextWhenVisible","hidden","prev","cycle","clearInterval","_updateInterval","setInterval","visibilityState","activeIndex","_getItemIndex","_handleSwipe","absDeltax","abs","_keydown","_addTouchEventListeners","originalEvent","pointerType","clientX","touches","move","which","_getItemByDirection","isNextDirection","isPrevDirection","lastItemIndex","itemIndex","_triggerSlideEvent","relatedTarget","eventDirectionName","targetIndex","fromIndex","slideEvent","_setActiveIndicatorElement","indicators","nextIndicator","addClass","elementInterval","defaultInterval","directionalClassName","orderClassName","activeElementIndex","nextElement","nextElementIndex","isCycling","slidEvent","CLASS_NAME_ACTIVE$1","action","ride","_dataApiClickHandler","slideIndex","carousels","$carousel","NAME$3","JQUERY_NO_CONFLICT$3","Default$1","DefaultType$1","Collapse","_isTransitioning","_triggerArray","toggleList","elem","filterElement","foundElem","_selector","_parent","_getParent","_addAriaAndCollapsedClass","show","actives","activesData","not","startEvent","dimension","_getDimension","attr","setTransitioning","scrollSize","CLASS_NAME_COLLAPSE","triggerArrayLength","isTransitioning","_getTargetFromElement","triggerArray","isOpen","currentTarget","$trigger","selectors","$target","NAME$4","JQUERY_NO_CONFLICT$4","REGEXP_KEYDOWN","ARROW_UP_KEYCODE","Default$2","boundary","popperConfig","DefaultType$2","Dropdown","_popper","_menu","_getMenuElement","_inNavbar","_detectNavbar","disabled","isActive","_clearMenus","usePopper","showEvent","_getParentFromElement","referenceElement","_getPopperConfig","hideEvent","stopPropagation","constructor","_getPlacement","$parentDropdown","_getOffset","toggles","context","clickEvent","dropdownMenu","_dataApiKeydownHandler","items","item","EVENT_CLICK_DATA_API$4","JQUERY_NO_CONFLICT$5","Default$3","backdrop","DefaultType$3","Modal","_dialog","_backdrop","_isShown","_isBodyOverflowing","_ignoreBackdropClick","_scrollbarWidth","_checkScrollbar","_setScrollbar","_adjustDialog","_setEscapeEvent","_setResizeEvent","_showBackdrop","_showElement","transition","_hideModal","htmlElement","handleUpdate","_triggerBackdropTransition","hideEventPrevented","isModalOverflowing","modalTransitionDuration","modalBody","ELEMENT_NODE","_enforceFocus","shownEvent","transitionComplete","has","_this6","_this7","_this8","_resetAdjustments","_resetScrollbar","_removeBackdrop","_this9","animate","appendTo","backdropTransitionDuration","callbackRemove","_backdropTransitionDuration","paddingLeft","paddingRight","_getScrollbarWidth","_this10","fixedContent","stickyContent","actualPadding","calculatedPadding","actualMargin","calculatedMargin","elements","margin","scrollDiv","scrollbarWidth","_this11","uriAttrs","DefaultWhitelist","br","col","code","div","em","hr","h1","h2","h3","h4","h5","h6","img","li","ol","pre","span","sub","sup","strong","ul","SAFE_URL_PATTERN","DATA_URL_PATTERN","sanitizeHtml","unsafeHtml","whiteList","sanitizeFn","createdDocument","DOMParser","parseFromString","whitelistKeys","_loop","elName","attributeList","whitelistedAttributes","allowedAttributeList","attrName","nodeValue","regExp","attrRegex","allowedAttribute","innerHTML","NAME$6","JQUERY_NO_CONFLICT$6","BSCLS_PREFIX_REGEX","DISALLOWED_ATTRIBUTES","DefaultType$4","animation","template","container","fallbackPlacement","customClass","AttachmentMap","AUTO","TOP","RIGHT","BOTTOM","LEFT","Default$4","HIDE","HIDDEN","SHOW","SHOWN","INSERTED","CLICK","FOCUSIN","FOCUSOUT","MOUSEENTER","MOUSELEAVE","Tooltip","_isEnabled","_timeout","_hoverState","_activeTrigger","tip","_setListeners","enable","disable","toggleEnabled","dataKey","DATA_KEY","_getDelegateConfig","click","_isWithActiveTrigger","_enter","_leave","getTipElement","EVENT_KEY","_hideModalHandler","isWithContent","shadowRoot","isInTheDom","tipId","setContent","attachment","_getAttachment","addAttachmentClass","_getContainer","complete","_fixTransition","prevHoverState","_cleanTipClass","getTitle","CLASS_PREFIX","setElementContent","CLASS_NAME_FADE$2","empty","append","_handlePopperPlacementChange","eventIn","eventOut","_fixTitle","titleType","dataAttributes","dataAttr","$tip","tabClass","popperData","initConfigAnimation","NAME$7","JQUERY_NO_CONFLICT$7","BSCLS_PREFIX_REGEX$1","Default$5","DefaultType$5","Event$1","Popover","_Tooltip","subClass","superClass","create","__proto__","_getContent","CLASS_PREFIX$1","CLASS_NAME_FADE$3","NAME$8","JQUERY_NO_CONFLICT$8","Default$6","method","DefaultType$6","ScrollSpy","_scrollElement","_offsets","_targets","_activeTarget","_scrollHeight","_process","refresh","autoMethod","offsetMethod","offsetBase","_getScrollTop","_getScrollHeight","targetSelector","targetBCR","pageYOffset","_getOffsetHeight","maxScroll","_activate","_clear","queries","$link","parents","SELECTOR_NAV_LINKS","scrollSpys","$spy","JQUERY_NO_CONFLICT$9","Tab","previous","listElement","itemSelector","makeArray","hiddenEvent","active","_transitionComplete","dropdownChild","dropdownElement","dropdownToggleList","$this","JQUERY_NO_CONFLICT$a","DefaultType$7","autohide","Default$7","Toast","_clearTimeout","_close","Scrollspy","lastScroll","searchForm","toggleSubMenu","overlay","burgerIcon","doc","windowpos","open","currentScroll","menu","toggleElement","childMenu","getElementsByClassName","showAll","filterOpen","onTermChange","onShowToggle","onMenuToggle","onFilterMenuToggle","categoryIsVisible","cat","slug","archiveIndex","archive","filterTermText","currentCategory","onChange","onClick","1","2","3","4","5","6","7","8","9","10","11","12","months","childindex","number","webpackContext","req","webpackContextResolve","__webpack_require__","o","lazySizes","lazysizes","lazySizesCfg","lazySizesDefaults","lazyClass","loadedClass","loadingClass","preloadClass","errorClass","autosizesClass","fastLoadedClass","iframeLoadMode","srcAttr","srcsetAttr","sizesAttr","minSize","customMedia","expFactor","hFac","loadMode","loadHidden","ricTimeout","throttleDelay","lazySizesConfig","lazysizesConfig","cfg","noSupport","docElem","supportPicture","HTMLPictureElement","requestIdleCallback","regPicture","loadEvents","regClassCache","ele","cls","reg","addRemoveLoadEvents","dom","evt","triggerEvent","detail","noBubbles","noCancelable","createEvent","initEvent","dispatchEvent","updatePolyfill","full","polyfill","picturefill","pf","reevaluate","getCSS","getWidth","_lazysizesWidth","rAF","firstFns","secondFns","fns","runFns","running","waiting","rafBatch","_lsFlush","rAFIt","simple","that","func","later","last","loader","regImg","regIframe","supportScroll","currentExpand","isLoading","lowRuns","resetPreloading","isVisible","isBodyHidden","isNestedVisible","elemExpand","outerRect","visible","eLtop","eLbottom","eLleft","eLright","checkElements","eLlen","autoLoadElem","loadedSomething","elemNegativeExpand","elemExpandVal","beforeExpandVal","defaultExpand","preloadExpand","lazyloadElems","_lazyRace","prematureUnveil","unveilElement","expand","_defEx","eLvW","elvH","isCompleted","preloadElems","preloadAfterLoad","throttledCheckElements","lastTime","gDelay","rICTimeout","idleCallback","isPriority","throttle","switchLoadingClass","_lazyCache","rafSwitchLoadingClass","rafedSwitchLoadingClass","handleSources","sourceSrcset","lazyUnveil","isAuto","isImg","srcset","isPicture","firesLoad","defaultPrevented","resetPreloadingTimer","contentWindow","changeIframeSrc","isLoaded","naturalWidth","loading","autoSizer","updateElem","afterScroll","altLoadmodeScrollListner","onload","started","persisted","loadingElements","MutationObserver","observe","childList","subtree","readyState","checkElems","unveil","_aLSL","sizeElement","sources","getSizeElement","debouncedUpdateElementsSizes","autosizesElems","uP","aC","rC","hC","fire","gW","setPrototypeOf","isFrozen","getPrototypeOf","getOwnPropertyDescriptor","freeze","seal","Reflect","construct","thisValue","Func","Function","arr2","_toConsumableArray","arrayForEach","unapply","arrayPop","arrayPush","stringToLowerCase","stringMatch","stringReplace","stringIndexOf","stringTrim","regExpTest","typeErrorCreate","_len2","_key2","thisArg","_key","addToSet","lcElement","clone","object","newObject","lookupGetter","desc","svg","svgFilters","svgDisallowed","mathMl","mathMlDisallowed","html$1","svg$1","mathMl$1","xml","MUSTACHE_EXPR","ERB_EXPR","DATA_ATTR","ARIA_ATTR","IS_ALLOWED_URI","IS_SCRIPT_OR_DATA","ATTR_WHITESPACE","_typeof","Symbol","iterator","_toConsumableArray$1","getGlobal","_createTrustedTypesPolicy","trustedTypes","createPolicy","suffix","currentScript","policyName","createHTML","html$$1","createDOMPurify","removed","isSupported","originalDocument","DocumentFragment","HTMLTemplateElement","Element","NodeFilter","_window$NamedNodeMap","NamedNodeMap","MozNamedAttrMap","HTMLFormElement","ElementPrototype","cloneNode","getNextSibling","getChildNodes","trustedTypesPolicy","emptyHTML","RETURN_TRUSTED_TYPE","_document","implementation","createNodeIterator","createDocumentFragment","importNode","hooks","createHTMLDocument","MUSTACHE_EXPR$$1","ERB_EXPR$$1","DATA_ATTR$$1","ARIA_ATTR$$1","IS_SCRIPT_OR_DATA$$1","ATTR_WHITESPACE$$1","IS_ALLOWED_URI$$1","ALLOWED_TAGS","DEFAULT_ALLOWED_TAGS","ALLOWED_ATTR","DEFAULT_ALLOWED_ATTR","CUSTOM_ELEMENT_HANDLING","tagNameCheck","attributeNameCheck","allowCustomizedBuiltInElements","FORBID_TAGS","FORBID_ATTR","ALLOW_ARIA_ATTR","ALLOW_DATA_ATTR","ALLOW_UNKNOWN_PROTOCOLS","SAFE_FOR_TEMPLATES","WHOLE_DOCUMENT","SET_CONFIG","FORCE_BODY","RETURN_DOM","RETURN_DOM_FRAGMENT","SANITIZE_DOM","KEEP_CONTENT","IN_PLACE","USE_PROFILES","FORBID_CONTENTS","DEFAULT_FORBID_CONTENTS","DATA_URI_TAGS","DEFAULT_DATA_URI_TAGS","URI_SAFE_ATTRIBUTES","DEFAULT_URI_SAFE_ATTRIBUTES","MATHML_NAMESPACE","SVG_NAMESPACE","HTML_NAMESPACE","NAMESPACE","IS_EMPTY_INPUT","PARSER_MEDIA_TYPE","SUPPORTED_PARSER_MEDIA_TYPES","DEFAULT_PARSER_MEDIA_TYPE","transformCaseFunc","CONFIG","formElement","isRegexOrFunction","testValue","_parseConfig","ADD_URI_SAFE_ATTR","ADD_DATA_URI_TAGS","ALLOWED_URI_REGEXP","ADD_TAGS","ADD_ATTR","table","tbody","MATHML_TEXT_INTEGRATION_POINTS","HTML_INTEGRATION_POINTS","ALL_SVG_TAGS","ALL_MATHML_TAGS","_checkValidNamespace","namespaceURI","parentTagName","commonSvgAndHTMLElements","_forceRemove","outerHTML","_removeAttribute","attribute","getAttributeNode","_initDocument","dirty","leadingWhitespace","matches","dirtyPayload","createDocument","insertBefore","createTextNode","childNodes","_createIterator","SHOW_ELEMENT","SHOW_COMMENT","SHOW_TEXT","_isClobbered","elm","textContent","_isNode","_executeHook","entryPoint","currentNode","hook","_sanitizeElements","allowedTags","_basicCustomElementTest","_isValidAttribute","lcTag","lcName","_sanitizeAttributes","hookEvent","attrValue","keepAttr","allowedAttributes","_attr","forceKeepAttr","setAttributeNS","_sanitizeShadowDOM","fragment","shadowNode","shadowIterator","nextNode","importedNode","oldNode","returnNode","toStaticHTML","firstChild","nodeIterator","shadowroot","serializedHTML","setConfig","clearConfig","isValidAttribute","tag","addHook","hookFunction","removeHook","removeHooks","removeAllHooks"],"mappings":"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","file":"/js/category.js","sourcesContent":["/** @license React v0.19.1\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var f,g,h,k,l;\nif(\"undefined\"===typeof window||\"function\"!==typeof MessageChannel){var p=null,q=null,t=function(){if(null!==p)try{var a=exports.unstable_now();p(!0,a);p=null}catch(b){throw setTimeout(t,0),b;}},u=Date.now();exports.unstable_now=function(){return Date.now()-u};f=function(a){null!==p?setTimeout(f,0,a):(p=a,setTimeout(t,0))};g=function(a,b){q=setTimeout(a,b)};h=function(){clearTimeout(q)};k=function(){return!1};l=exports.unstable_forceFrameRate=function(){}}else{var w=window.performance,x=window.Date,\ny=window.setTimeout,z=window.clearTimeout;if(\"undefined\"!==typeof console){var A=window.cancelAnimationFrame;\"function\"!==typeof window.requestAnimationFrame&&console.error(\"This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\");\"function\"!==typeof A&&console.error(\"This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://fb.me/react-polyfills\")}if(\"object\"===\ntypeof w&&\"function\"===typeof w.now)exports.unstable_now=function(){return w.now()};else{var B=x.now();exports.unstable_now=function(){return x.now()-B}}var C=!1,D=null,E=-1,F=5,G=0;k=function(){return exports.unstable_now()>=G};l=function(){};exports.unstable_forceFrameRate=function(a){0>a||125>>1,e=a[d];if(void 0!==e&&0K(n,c))void 0!==r&&0>K(r,n)?(a[d]=r,a[v]=c,d=v):(a[d]=n,a[m]=c,d=m);else if(void 0!==r&&0>K(r,c))a[d]=r,a[v]=c,d=v;else break a}}return b}return null}function K(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}var N=[],O=[],P=1,Q=null,R=3,S=!1,T=!1,U=!1;\nfunction V(a){for(var b=L(O);null!==b;){if(null===b.callback)M(O);else if(b.startTime<=a)M(O),b.sortIndex=b.expirationTime,J(N,b);else break;b=L(O)}}function W(a){U=!1;V(a);if(!T)if(null!==L(N))T=!0,f(X);else{var b=L(O);null!==b&&g(W,b.startTime-a)}}\nfunction X(a,b){T=!1;U&&(U=!1,h());S=!0;var c=R;try{V(b);for(Q=L(N);null!==Q&&(!(Q.expirationTime>b)||a&&!k());){var d=Q.callback;if(null!==d){Q.callback=null;R=Q.priorityLevel;var e=d(Q.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?Q.callback=e:Q===L(N)&&M(N);V(b)}else M(N);Q=L(N)}if(null!==Q)var m=!0;else{var n=L(O);null!==n&&g(W,n.startTime-b);m=!1}return m}finally{Q=null,R=c,S=!1}}\nfunction Y(a){switch(a){case 1:return-1;case 2:return 250;case 5:return 1073741823;case 4:return 1E4;default:return 5E3}}var Z=l;exports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){T||S||(T=!0,f(X))};\nexports.unstable_getCurrentPriorityLevel=function(){return R};exports.unstable_getFirstCallbackNode=function(){return L(N)};exports.unstable_next=function(a){switch(R){case 1:case 2:case 3:var b=3;break;default:b=R}var c=R;R=b;try{return a()}finally{R=c}};exports.unstable_pauseExecution=function(){};exports.unstable_requestPaint=Z;exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=R;R=a;try{return b()}finally{R=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();if(\"object\"===typeof c&&null!==c){var e=c.delay;e=\"number\"===typeof e&&0d?(a.sortIndex=e,J(O,a),null===L(N)&&a===L(O)&&(U?h():U=!0,g(W,e-d))):(a.sortIndex=c,J(N,a),T||S||(T=!0,f(X)));return a};\nexports.unstable_shouldYield=function(){var a=exports.unstable_now();V(a);var b=L(N);return b!==Q&&null!==Q&&null!==b&&null!==b.callback&&b.startTime<=a&&b.expirationTime= 0) {\n return 1;\n }\n }\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n }\n // NOTE: 1 DOM access here\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n return element.parentNode || element.host;\n}\n\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n case '#document':\n return element.body;\n }\n\n // Firefox want us to check `-x` and `-y` variations as well\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n if (version === 10) {\n return isIE10;\n }\n return isIE11 || isIE10;\n}\n\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null;\n\n // NOTE: 1 DOM access here\n var offsetParent = element.offsetParent || null;\n // Skip hidden elements which don't have an offsetParent\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n }\n\n // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n }\n\n // Here we make sure to give as \"start\" the element that comes first in the DOM\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1;\n\n // Get common ancestor container\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer;\n\n // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n }\n\n // one of the nodes is inside shadowDOM, find which one\n var element1root = getRoot(element1);\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n\n\n\nvar defineProperty = function (obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\nfunction getBoundingClientRect(element) {\n var rect = {};\n\n // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n };\n\n // subtract scrollbar size from sizes\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height;\n\n // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth);\n\n // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0;\n\n // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft;\n\n // Attach marginTop and marginLeft because in some circumstances we may need them\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n\n return getClientRect(offset);\n}\n\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n var parentNode = getParentNode(element);\n if (!parentNode) {\n return false;\n }\n return isFixed(parentNode);\n}\n\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n var el = element.parentElement;\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n return el || document.documentElement;\n}\n\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n // NOTE: 1 DOM access here\n\n var boundaries = { top: 0, left: 0 };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n\n // Handle viewport case\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition);\n\n // In case of HTML, we need a different computation\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n }\n\n // Add paddings\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n\n return width * height;\n}\n\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n\n var variation = placement.split('-')[1];\n\n return computedPlacement + (variation ? '-' + variation : '');\n}\n\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\nfunction getOppositePlacement(placement) {\n var hash = { left: 'right', right: 'left', bottom: 'top', top: 'bottom' };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0];\n\n // Get popper node sizes\n var popperRect = getOuterSizes(popper);\n\n // Add position, width and height to our offsets object\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n };\n\n // depending by the popper placement we have to compute its offsets slightly differently\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n }\n\n // use `filter` to obtain the same behavior of `find`\n return arr.filter(check)[0];\n}\n\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n }\n\n // use `find` + `indexOf` if `findIndex` isn't supported\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n\n data = fn(data, modifier);\n }\n });\n\n return data;\n}\n\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n };\n\n // compute reference element offsets\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding);\n\n // store the computed placement inside `originalPlacement`\n data.originalPlacement = data.placement;\n\n data.positionFixed = this.options.positionFixed;\n\n // compute the popper offsets\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute';\n\n // run the modifiers\n data = runModifiers(this.modifiers, data);\n\n // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n return null;\n}\n\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\nfunction destroy() {\n this.state.isDestroyed = true;\n\n // touch DOM only if `applyStyle` modifier is enabled\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners();\n\n // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n return this;\n}\n\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, { passive: true });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n scrollParents.push(target);\n}\n\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, { passive: true });\n\n // Scroll event listener on scroll parents\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n\n return state;\n}\n\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound);\n\n // Remove scroll event listener on scroll parents\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n });\n\n // Reset state\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = '';\n // add unit if the value is numeric and is one of the following\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n element.style[prop] = styles[prop] + unit;\n });\n}\n\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles);\n\n // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n setAttributes(data.instance.popper, data.attributes);\n\n // if arrowElement is defined and arrowStyles has some properties\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed);\n\n // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n\n popper.setAttribute('x-placement', placement);\n\n // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n setStyles(popper, { position: options.positionFixed ? 'fixed' : 'absolute' });\n\n return options;\n}\n\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper;\n\n // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent);\n\n // Styles\n var styles = {\n position: popper.position\n };\n\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right';\n\n // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n var prefixedProperty = getSupportedPropertyName('transform');\n\n // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n var left = void 0,\n top = void 0;\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n }\n\n // Attributes\n var attributes = {\n 'x-placement': data.placement\n };\n\n // Update `data` attributes, styles and arrowStyles\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n\n return data;\n}\n\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n return isRequired;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction arrow(data, options) {\n var _data$offsets$arrow;\n\n // arrow depends on keepTogether in order to work\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element;\n\n // if arrowElement is a string, suppose it's a CSS selector\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement);\n\n // if arrowElement is not found, don't run the modifier\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len];\n\n //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n\n // top/left side\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n }\n // bottom/right side\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n data.offsets.popper = getClientRect(data.offsets.popper);\n\n // compute center of the popper\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2;\n\n // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide;\n\n // prevent arrowElement from being placed not contiguously to its popper\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n\n return data;\n}\n\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n return variation;\n}\n\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start'];\n\n// Get rid of `auto` `auto-start` and `auto-end`\nvar validPlacements = placements.slice(3);\n\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference;\n\n // using floor because the reference offsets may contain decimals we are not going to consider here\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom;\n\n // flip the variation if required\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n\n // flips variation if reference element overflows boundaries\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom);\n\n // flips variation if popper content overflows boundaries\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : '');\n\n // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2];\n\n // If it's not a number it's an operator, I guess\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0];\n\n // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1;\n\n // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n });\n\n // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n }\n\n // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments];\n\n // Convert the values with units to absolute pixels to allow our computations\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op\n // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, [])\n // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n });\n\n // Loop trough the offsets arrays and execute the operations\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var basePlacement = placement.split('-')[0];\n\n var offsets = void 0;\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper);\n\n // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n }\n\n // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed);\n\n // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n\n options.boundaries = boundaries;\n\n var order = options.priority;\n var popper = data.offsets.popper;\n\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n return defineProperty({}, mainSide, value);\n }\n };\n\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n\n data.offsets.popper = popper;\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1];\n\n // if shift shiftvariation is specified, run the modifier\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n\n return data;\n}\n\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: offset,\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: arrow,\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: flip,\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: computeStyle,\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n /** @prop {ModifierFn} */\n fn: applyStyle,\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n\n// Utils\n// Methods\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n };\n\n // make update() debounced, so that it only runs at most once-per-tick\n this.update = debounce(this.update.bind(this));\n\n // with {} we create a new object with the options inside it\n this.options = _extends({}, Popper.Defaults, options);\n\n // init state\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n };\n\n // get reference and popper elements (allow jQuery wrappers)\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper;\n\n // Deep merge modifiers options\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n });\n\n // Refactoring modifiers' list (Object => Array)\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n })\n // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n });\n\n // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n });\n\n // fire the first update to position the popper in the right place\n this.update();\n\n var eventsEnabled = this.options.eventsEnabled;\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n }\n\n // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\n\nexport default Popper;\n//# sourceMappingURL=popper.js.map\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","import axios from 'axios'; // ??kb\nimport 'lazysizes'; // 100kb\n// JS Cookie\nconst Cookies = require('./libraries/js.cookie'); // ??kb\nrequire('./translation');\n\n/**\n * We'll load jQuery and the Bootstrap jQuery plugin which provides support\n * for JavaScript based Bootstrap features such as modals and tabs. This\n * code may be modified to fit the specific needs of your application.\n */\n\ntry {\n window.Popper = require('popper.js').default; // 200kb\n window.$ = window.jQuery = require('jquery'); // in vendor\n\n require('bootstrap'); // 400kb\n} catch (e) {}\n\n/**\n * We'll load the axios HTTP library which allows us to easily issue requests\n * to our Laravel back-end. This library automatically handles sending the\n * CSRF token as a header based on the value of the \"XSRF\" token cookie.\n */\n\nwindow.axios = axios;\n\nwindow.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';\n\nwindow.axios.defaults.withCredentials = true;\n\n// Global cancel token\nconst CancelToken = window.axios.CancelToken;\nwindow.axiosSource = CancelToken.source();\n\n// Cancel axios calls with cancel token on from submit\nconst forms = document.getElementsByTagName('form');\nfor (var i = 0; i < forms.length; i++) { \n forms[i].addEventListener(\"submit\", function(e) {\n window.axiosSource.cancel('Operation canceled by the user.');\n });\n}\n\n/**\n * Echo exposes an expressive API for subscribing to channels and listening\n * for events that are broadcast by Laravel. Echo and event broadcasting\n * allows your team to easily build robust real-time web applications.\n */\n\n// import Echo from 'laravel-echo';\n\n// window.Pusher = require('pusher-js');\n\n// window.Echo = new Echo({\n// broadcaster: 'pusher',\n// key: process.env.MIX_PUSHER_APP_KEY,\n// cluster: process.env.MIX_PUSHER_APP_CLUSTER,\n// forceTLS: true\n// });\n","import React from 'react';\n\nclass Image extends React.Component {\n constructor(props) {\n super(props);\n\n // Defaults\n this.width = this.props.width || 307.5;\n this.height = this.props.height || 200;\n\n // Set state\n this.state = {\n focalX: 0.5,\n focalY: 0.5,\n focalZ: 1,\n sizes: {\n small: {\n media: \"(max-width: 575px)\",\n width: 190,\n height: Math.round((190 / this.width) * this.height),\n },\n normal: {\n media: \"(min-width: 576px)\",\n width: this.width,\n height: this.height,\n },\n },\n formats: ['webp', 'jpg'],\n };\n }\n\n componentDidMount() {\n // Get values from attributes\n this.setState(() => ({\n focalX: this.props.focalX || this.state.focalX,\n focalY: this.props.focalY || this.state.focalY,\n focalZ: this.props.focalZ || this.state.focalZ,\n formats: this.props.formats || this.state.formats,\n }));\n }\n\n render() {\n const pattern = new RegExp('^https?:', 'i');\n const isFullUrl = pattern.test(this.props.image);\n\n const image = isFullUrl ? this.props.image : window.imgixUrl + this.props.image;\n const stateData = this.state;\n\n const imgixPattern = new RegExp(`^${window.imgixUrl.replace(/[-[/\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')}.*`, 'i');\n const isImgix = imgixPattern.test(image);\n\n if (!isImgix) {\n const paddingBottom = Math.round(this.props.width < this.props.height ? (this.props.width * 100) / this.props.height : (this.props.height * 100) / this.props.width);\n\n return (\n
\n
\n {this.props.alt}\n
\n )\n }\n\n const imageUrl = new URL(image);\n imageUrl.searchParams.set('fit', 'crop');\n imageUrl.searchParams.set('crop', 'focalpoint');\n imageUrl.searchParams.set('fp-x', stateData.focalX);\n imageUrl.searchParams.set('fp-y', stateData.focalY);\n imageUrl.searchParams.set('fp-z', stateData.focalZ);\n\n const imageMain = new URL(imageUrl);\n imageMain.searchParams.set('w', this.width);\n imageMain.searchParams.set('h', this.height);\n\n const imageLazy = new URL(imageMain);\n imageLazy.searchParams.set('px', '28');\n imageLazy.searchParams.set('q', '0');\n imageLazy.searchParams.set('colorquant', '16');\n\n // Prevent numbers to be last fix\n imageMain.searchParams.set('auto', 'format');\n imageLazy.searchParams.set('auto', 'format');\n\n return (\n \n \n {Object.keys(stateData.sizes).map(function (sizeName, index) {\n return \n {stateData.formats.map(function (format, index) {\n const src1x = new URL(image);\n src1x.searchParams.set('fit', 'crop');\n src1x.searchParams.set('crop', 'focalpoint');\n src1x.searchParams.set('fp-x', stateData.focalX);\n src1x.searchParams.set('fp-y', stateData.focalY);\n src1x.searchParams.set('fp-z', stateData.focalZ);\n src1x.searchParams.set('w', stateData.sizes[sizeName].width);\n src1x.searchParams.set('h', stateData.sizes[sizeName].height);\n src1x.searchParams.set('fm', format);\n\n const src2x = new URL(src1x);\n src2x.searchParams.set('dpr', '2');\n\n return \n })}\n \n })}\n {this.props.alt}\n\n \n \n )\n }\n}\n\nexport default Image;","import React from 'react';\n\nconst SmallPostDummy = (props) => (\n
\n
\n
\n \n \n \n
\n
\n
\n);\n\nexport default SmallPostDummy;","import React from 'react';\nimport DOMPurify from 'dompurify';\nimport Image from '../PostComponents/Image';\nimport SmallPostDummy from '../Dummies/SmallPostDummy';\nimport Ad from '../PostComponents/Ad';\n\nclass SmallPost extends React.Component {\n constructor(props) {\n super(props);\n\n this.post = this.props.data;\n this.rowCount = this.props.rowCount ?? 4;\n this.postsBeforeAd = this.rowCount * 2;\n\n }\n\n render() {\n const columnSize = 12 / this.rowCount;\n\n if (typeof this.post == 'undefined') {\n return \n }\n\n const shortContent = DOMPurify.sanitize(this.post.excerpt);\n\n\n return (\n \n
\n
\n {this.post.featured_image && \n \n {this.post.featured_image.title\n \n }\n \n

{this.post.title}

\n
\n
\n {this.post.categories[0] && (\n \n )\n }\n {this.post.date_text}\n
\n
\n
\n
\n
\n {(this.props.infinityIndex % this.postsBeforeAd == 0 \n && this.props.infinityIndex <= 8 * this.postsBeforeAd ) &&\n
\n \n
\n }\n
\n )\n }\n}\n\nexport default SmallPost;","\"use strict\";\n\n/*!\n * JavaScript Cookie v2.2.0\n * https://github.com/js-cookie/js-cookie\n *\n * Copyright 2006, 2015 Klaus Hartl & Fagner Brack\n * Released under the MIT license\n */\n;\n\nwindow.Cookie = {};\n(function (factory) {\n var registeredInModuleLoader = false;\n\n if (typeof define === 'function' && define.amd) {\n define(factory);\n registeredInModuleLoader = true;\n }\n\n if (typeof exports === 'object') {\n module.exports = factory();\n registeredInModuleLoader = true;\n }\n\n if (!registeredInModuleLoader) {\n var OldCookies = window.Cookies;\n var api = window.Cookies = factory();\n\n api.noConflict = function () {\n window.Cookies = OldCookies;\n return api;\n };\n }\n})(function () {\n function extend() {\n var i = 0;\n var result = {};\n\n for (; i < arguments.length; i++) {\n var attributes = arguments[i];\n\n for (var key in attributes) {\n result[key] = attributes[key];\n }\n }\n\n return result;\n }\n\n function init(converter) {\n function api(key, value, attributes) {\n var result;\n\n if (typeof document === 'undefined') {\n return;\n } // Write\n\n\n if (arguments.length > 1) {\n attributes = extend({\n path: '/'\n }, api.defaults, attributes);\n\n if (typeof attributes.expires === 'number') {\n var expires = new Date();\n expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5);\n attributes.expires = expires;\n } // We're using \"expires\" because \"max-age\" is not supported by IE\n\n\n attributes.expires = attributes.expires ? attributes.expires.toUTCString() : '';\n\n try {\n result = JSON.stringify(value);\n\n if (/^[\\{\\[]/.test(result)) {\n value = result;\n }\n } catch (e) {}\n\n if (!converter.write) {\n value = encodeURIComponent(String(value)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent);\n } else {\n value = converter.write(value, key);\n }\n\n key = encodeURIComponent(String(key));\n key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent);\n key = key.replace(/[\\(\\)]/g, escape);\n var stringifiedAttributes = '';\n\n for (var attributeName in attributes) {\n if (!attributes[attributeName]) {\n continue;\n }\n\n stringifiedAttributes += '; ' + attributeName;\n\n if (attributes[attributeName] === true) {\n continue;\n }\n\n stringifiedAttributes += '=' + attributes[attributeName];\n }\n\n return document.cookie = key + '=' + value + stringifiedAttributes;\n } // Read\n\n\n if (!key) {\n result = {};\n } // To prevent the for loop in the first place assign an empty array\n // in case there are no cookies at all. Also prevents odd result when\n // calling \"get()\"\n\n\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var rdecode = /(%[0-9A-Z]{2})+/g;\n var i = 0;\n\n for (; i < cookies.length; i++) {\n var parts = cookies[i].split('=');\n var cookie = parts.slice(1).join('=');\n\n if (!this.json && cookie.charAt(0) === '\"') {\n cookie = cookie.slice(1, -1);\n }\n\n try {\n var name = parts[0].replace(rdecode, decodeURIComponent);\n cookie = converter.read ? converter.read(cookie, name) : converter(cookie, name) || cookie.replace(rdecode, decodeURIComponent);\n\n if (this.json) {\n try {\n cookie = JSON.parse(cookie);\n } catch (e) {}\n }\n\n if (key === name) {\n result = cookie;\n break;\n }\n\n if (!key) {\n result[name] = cookie;\n }\n } catch (e) {}\n }\n\n return result;\n }\n\n window.Cookie.set = api;\n\n window.Cookie.get = function (key) {\n return api.call(api, key);\n };\n\n window.Cookie.getJSON = function () {\n return api.apply({\n json: true\n }, [].slice.call(arguments));\n };\n\n window.Cookie.defaults = {};\n\n window.Cookie.remove = function (key, attributes) {\n api(key, '', extend(attributes, {\n expires: -1\n }));\n };\n\n window.Cookie.withConverter = init;\n return api;\n }\n\n return init(function () {});\n});","import React from 'react';\nclass Ad extends React.Component {\n constructor(props) {\n super(props);\n this.adSlots = [\n '',\n 'responsive_1',\n 'responsive_2',\n 'responsive_3',\n 'responsive_4',\n 'responsive_5',\n 'responsive_6',\n 'responsive_7',\n 'responsive_8'\n ];\n }\n\n render() {\n return (\n
\n
\n
\n
\n
\n
\n );\n }\n}\nexport default Ad;\n","/**\n * Translate the given key.\n */\nwindow.trans = function(key, replaces) {\n let locale = document.documentElement.getAttribute('lang');\n let translation = key;\n\n // Check if present in DB\n if (window.translations && window.translations[translation]) {\n translation = window.translations[translation];\n translation = transReplaces(translation, replaces);\n return translation;\n }\n\n // If not, then check if english and skip if it is\n if (locale == 'en') {\n translation = transReplaces(translation, replaces);\n return translation;\n }\n\n // Or try to fetch the translation from the language files\n try {\n const translations = require(`@lang/${locale}.json`);\n translation = translations[key] ? translations[key] : key;\n\n translation = transReplaces(translation, replaces);\n } catch (error) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(error);\n }\n }\n\n return translation;\n}\n\n// Simple choice variant (single/plural only, no advanced count etc.)\nwindow.trans_choice = function(key, count = 1, replaces) {\n let translation = trans(key, replaces);\n const [single, plural] = translation.split('|');\n\n return count > 1 ? plural : single;\n}\n\n// Replace keys in translation\nfunction transReplaces(text, replaces) {\n for (var key in replaces) {\n text = text.replace(':' + key, replaces[key])\n }\n\n return text;\n}","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","// Set locale\nwindow.locale = document.documentElement.getAttribute('lang');\n\n// Function for getting bootstrap current view size\nwindow.viewSize = function() {\n let envs = ['xs', 'sm', 'md', 'lg', 'xl'];\n\n let el = document.createElement('div');\n document.body.appendChild(el);\n\n let curEnv = envs.shift();\n\n for (let env of envs.reverse()) {\n el.classList.add(`d-${env}-none`);\n\n if (window.getComputedStyle(el).display === 'none') {\n curEnv = env;\n break;\n }\n }\n\n document.body.removeChild(el);\n return curEnv;\n}","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport InfiniteScroll from '../InfiniteScroll';\nimport SmallPost from '../Models/SmallPost';\n\nclass CategoryPage extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n pagetype: '',\n endpoint: `category/${window.category.id}`,\n urlStructure: '%domain%/%categorySlug%/page/%id%/'\n };\n }\n\n\n componentDidMount() {\n this.getInitialState();\n }\n\n getInitialState() {\n this.setState(() => ({ \n pagetype: 'category',\n }));\n }\n\n getSeoDataArray(post) {\n let seoDataArray = [];\n\n if (!post) {\n return seoDataArray;\n }\n \n const term = post.categories.find(({ id }) => id == window.category.id)\n if (!term) {\n return seoDataArray;\n }\n\n seoDataArray['aller_ga'] = term.seoData.aller_ga ?? {};\n \n return seoDataArray;\n }\n\n render() {\n return (\n \n \n \n )\n } \n\n}\nlet categoryPageElement = document.getElementById('category');\nif (categoryPageElement) {\n ReactDOM.render(, categoryPageElement);\n}","import React, { Children } from 'react';\nimport ReactDOM from 'react-dom';\nimport TermFilter from './Partials/TermFilter';\n\nclass InfiniteScroll extends React.Component {\n constructor(props) {\n super(props);\n\n this.state = {\n childType: Children.only(this.props.children).type.name.toLowerCase(),\n children: [],\n lastIndex: 0,\n page: this.props.pageId ?? 1,\n initialPage: this.props.pageId ? parseInt(this.props.pageId) : 1,\n total: 0,\n perpage: this.props.perPage ?? 1,\n offset: 500,\n progress: false,\n completed: false,\n skeleton: true,\n id: this.props.id || 0,\n date: this.props.date || false,\n stateObjs: [],\n metaObjs: [],\n domain: `https://${window.location.host}`,\n pathname: `${window.location.pathname}`,\n categorySlug: window.location.pathname.split('/')[1] ?? false,\n tagSlug: window.location.pathname.split('/')[2] ?? false,\n childrenDivided: [],\n tags: [],\n categories: [],\n orderDirection: 'DESC',\n year: this.props.year || false,\n month: this.props.month || false,\n hideAds: false,\n cursor: this.props.cursor || null\n };\n\n this.topAdDiv = document.querySelector('#top_ad-');\n this.usedTimestamps = [];\n this.keyToTimestamp = [];\n this.infiniteScroll = this.infiniteScroll.bind(this);\n this.handleScroll = this.handleScroll.bind(this);\n this.onOrderingChange = this.onOrderingChange.bind(this);\n }\n\n generateUrl(data) {\n let returner = this.props.urlStructure;\n returner = returner.replace('%domain%', this.state.domain);\n returner = returner.replace('%id%', data.current_page);\n returner = returner.replace('%url%', Array.isArray(data.data) ? (data.data.length > 0 ? data.data[0].url : '') : '');\n returner = returner.replace('%pathname%', this.state.pathname);\n returner = returner.replace('%categorySlug%', this.state.categorySlug);\n returner = returner.replace('%tagSlug%', this.state.tagSlug);\n returner = returner.replace('%year%', this.state.year);\n returner = returner.replace('%month%', this.state.month);\n return returner;\n }\n\n updateBrowserHistory(index) {\n // Do not update URL in cursor-mode.\n if (this.state.cursor == null) {\n index += this.state.initialPage;\n history.pushState(this.state.stateObjs[index], '' , this.state.stateObjs[index].current_url);\n }\n }\n\n updateMetaData(index, metaData) {\n \n if (index != null) {\n index += this.state.initialPage;\n metaData = this.state.metaObjs[index];\n }\n\n if (metaData && metaData['aller_ga'] && Object.keys(metaData['aller_ga']).length !== 0) {\n const aller_ga = metaData['aller_ga'];\n window.cts = window.cts || {};\n window.cts.metadata = {\n pageId: aller_ga.id,\n publishedTime: aller_ga.postDate,\n author: aller_ga.postAuthor,\n loggedIn: aller_ga.loggedIn,\n contentType: aller_ga.pageType,\n };\n \n // seems dynamic update of schema and seo data isn't tracked by anyone so for now disabling\n return;\n }\n\n const pageTypesToUpdate = [\n 'home',\n 'single'\n ];\n\n if(pageTypesToUpdate.indexOf(this.props.pagetype) == -1 ) {\n return;\n }\n\n this.doUpdateMetaData(metaData);\n }\n\n doUpdateMetaData(metaData) {\n const headElement = document.querySelector('head');\n let metaElement;\n\n for (var key in metaData) {\n metaElement = headElement.querySelector(`meta[property=\"${key}\"]`) ?? false;\n if(metaElement){\n metaElement.content = metaData[key];\n }\n }\n }\n\n up(index) {\n this.updateBrowserHistory(index);\n this.updateMetaData(index);\n }\n\n down(index) {\n this.updateBrowserHistory(index);\n this.updateMetaData(index);\n }\n\n reset() {\n this.updateBrowserHistory(0);\n }\n\n initiateAd() {\n if (this.state.timestamp && \n !this.state.hideAds\n ) {\n this.usedTimestamps.push(this.state.timestamp);\n if(this.topAdDiv){\n this.topAdDiv.id = `${this.topAdDiv.id}${this.state.timestamp}`;\n this.topAdDiv = null;\n }\n\n // window.DFPInit is running automatically on page load, so we run DFPInit manually from the second time. \n if (this.usedTimestamps.length > 1) {\n\n if (typeof window.DFPInit === 'function') {\n window.DFPInit(this.state.timestamp);\n } else {\n console.error('DFPInit is not a function. Probably aller-ads script is not ready.');\n }\n } else {\n window.adsUniqueId = `${this.state.timestamp}`;\n }\n }\n }\n\n shouldHideAds(metaData) {\n let hideAdsEnabled = metaData._ana_hide_ads ?? false;\n let hideAds = false;\n let hideDuration = metaData._ana_hide_ads_duration_active ?? false;\n let hideUntil = metaData._ana_hide_ads_duration ?? false;\n if (hideAdsEnabled) {\n hideAds = true;\n\n if (hideDuration) {\n hideAds = new Date(hideUntil) > new Date();\n }\n }\n\n return hideAds;\n }\n\n hasNewTimestamp () {\n return this.state.timestamp && this.usedTimestamps.indexOf(this.state.timestamp) == -1;\n }\n\n componentDidUpdate() {\n if (this.hasNewTimestamp()) {\n this.initiateAd();\n }\n\n if (typeof window.instgrm !== 'undefined') {\n window.instgrm.Embeds.process();\n }\n }\n\n componentDidMount() {\n this.getInitialState();\n window.addEventListener('scroll', this.handleScroll);\n }\n\n getInitialState() {\n this.setState(() => ({\n progress: true,\n page: this.props.pageId ?? 1,\n cursor: this.props.cursor || null,\n }));\n\n if (this.state.categorySlug && this.state.categorySlug !== 'etikett' && this.state.categorySlug !== 'search') {\n axios.get(`/api/category`)\n .then((response) => {\n if (response.status == 200) {\n this.setState(() => ({\n categories: response.data,\n }));\n }\n })\n .catch((error) => {\n console.log(error);\n });\n }\n // (TODO:infinite) Create endpoint in archive class to remove year and month get variables\n let endpoint = this.props.getEndpoint?.() ?? `/api/${this.props.endpoint}/?page=${this.state.page}&count=${this.state.perpage}&id=${this.state.id}&direction=${this.state.orderDirection}&year=${this.state.year}&month=${this.state.month}`;\n\n if (this.state.cursor !== null) {\n endpoint += `&cursor=${this.state.cursor}`;\n }\n\n axios.get(endpoint)\n .then((response) => {\n let metaObjs = [];\n let stateObjs = [];\n let data = Object.values(response.data.data);\n let childrenDivided = [];\n let newChildCollection = data;\n const completed = response.data.current_page >= response.data.last_page;\n \n metaObjs[parseInt(this.state.page)] = this.props.getSeoDataArray?.(data[0]) ?? [];\n stateObjs[parseInt(this.state.page)] = {'current_url':window.location.href, 'page_title':data.title};\n childrenDivided[0] = newChildCollection;\n const cursor = response.data.cursor || null;\n\n this.setState((prevState) => ({\n page: parseInt(this.state.page),\n children: newChildCollection,\n total: response.data.total,\n progress: false,\n completed: completed,\n stateObjs: stateObjs,\n metaObjs: metaObjs,\n childrenDivided: childrenDivided,\n hideAds: (data[0]?.meta_data) ? this.shouldHideAds(data[0].meta_data) : false,\n timestamp: (Math.floor(Math.random() * 99) + 1).toString(),\n cursor,\n }));\n\n if (window.innerHeight >= document.documentElement.scrollHeight && !completed) {\n this.infiniteScroll(null, null, null, newChildCollection);\n } else {\n // Make sure window.cts.metadata is updated on initial page load.\n this.updateMetaData(0);\n }\n })\n .catch((error) => {\n console.log(error);\n });\n }\n\n onOrderingChange(event) {\n const ordering = event.target.value;\n this.setState(() => ({\n page: 0,\n children: [],\n childrenDivided: [],\n orderDirection: ordering,\n initialPage: 1,\n stateObjs: [],\n metaObjs: [],\n completed: false,\n }));\n this.infiniteScroll(true, 0, ordering);\n }\n\n handleScroll () {\n if(this.props.preview){\n return;\n }\n let contentWrapper;\n try {\n contentWrapper = ReactDOM.findDOMNode(this);\n } catch (error) {\n return;\n }\n if (!this.state.completed && \n !this.state.progress && \n (window.innerHeight + window.scrollY) >= (contentWrapper.offsetHeight)\n ) {\n this.infiniteScroll()\n }\n\n // (TODO:infinite) define benchmarks and optimize\n // (TODO:infinite) same logic for archive pages\n $('.infinityCollection').each((index, element) => {\n let rect = element.getBoundingClientRect();\n if(rect.top < 600 &&\n rect.bottom > 600 &&\n this.state.lastIndex != index){\n if (index < this.state.lastIndex)\n {\n this.up(index);\n } else {\n this.down(index);\n }\n this.setState({\n lastIndex: index\n });\n return;\n }\n });\n }\n\n infiniteScroll(reset, pageOverride, orderDirectionOverride, previousChildCollection) {\n if(this.props.preview){\n return;\n }\n this.setState(() => ({\n progress: true,\n }));\n\n const page = pageOverride ?? this.state.page;\n const direction = orderDirectionOverride ?? this.state.orderDirection;\n let endpoint = this.props.getEndpoint?.( // (TODO:infinite) Create endpoint in archive class to remove year and month get variables\n previousChildCollection || \n this.state.childrenDivided[this.state.childrenDivided.length - 1]) ?? \n `/api/${this.props.endpoint}/?page=${page + 1}&count=${this.state.perpage}&id=${this.state.id}&direction=${direction}&year=${this.state.year}&month=${this.state.month}`;\n\n if (endpoint == false) {\n this.setState((prevState) => ({\n progress: false,\n completed: true,\n }));\n\n return;\n }\n\n if (this.state.cursor !== null) {\n endpoint += `&cursor=${this.state.cursor}`;\n }\n\n axios.get(endpoint)\n .then((response) => {\n let stateObjs = this.state.stateObjs;\n let metaObjs = this.state.metaObjs;\n let data = Object.values(response.data.data);\n let childrenDivided = this.state.childrenDivided;\n\n stateObjs[page + 1] = {'current_url':this.generateUrl(response.data), 'page_title':data.title};\n metaObjs[page + 1] = this.props.getSeoDataArray?.(data[0]) ?? [];\n childrenDivided[this.state.childrenDivided.length] = data;\n const cursor = response.data.cursor || null;\n\n this.initAds = true;\n this.setState((prevState) => ({\n page: page + 1,\n children: this.state.children.concat(data),\n total: response.data.total,\n progress: false,\n completed: response.data.current_page >= response.data.last_page,\n stateObjs: stateObjs,\n metaObjs: metaObjs,\n childrenDivided: childrenDivided,\n hideAds: (data[0]?.meta_data) ? this.shouldHideAds(data[0].meta_data) : false,\n timestamp: (Math.floor(Math.random() * 99) + 1).toString(),\n cursor\n }));\n\n // Reset history? (on ordering change etc)\n if (reset) {\n this.reset();\n }\n\n this.handleScroll();\n })\n .catch((error) => {\n console.log(error);\n });\n }\n\n constructChildren(childElement) {\n let childElements = [];\n let masterindex = 1;\n let infinityIndex = 1;\n\n this.state.childrenDivided.forEach(array => {\n childElements.push((\n
\n {array.map((child, index) => {\n const key = index * masterindex + (child.id.toString() ?? 'nuller');\n if (!this.keyToTimestamp[key]) {\n this.keyToTimestamp[key] = this.state.timestamp;\n }\n const props = { \n timestamp: this.keyToTimestamp[key], \n infinityIndex: infinityIndex, \n data: child, \n key: key, \n preview: this.props.preview\n };\n infinityIndex++;\n return React.cloneElement(childElement, props);\n })}\n
));\n masterindex++;\n });\n let skeletonElements = [];\n if (this.state.progress && !this.state.completed) {\n for (let index = 0; index < this.props.perPage; index++) {\n let props = {key: `${index}-${this.state.page}`};\n skeletonElements.push(React.cloneElement(childElement, props));\n }\n childElements.push((\n
\n {skeletonElements}\n
\n ));\n }\n\n return childElements;\n }\n\n render() {\n const childElement = Children.only(this.props.children);\n\n if (!React.isValidElement(childElement)) {\n return;\n }\n \n const childElements = this.constructChildren(childElement);\n const showFilter = ['category', 'archive'].indexOf(this.props.pagetype) !== -1;\n const showLink = (this.props.pagetype == 'search' || this.props.pagetype == 'tag' || this.props.pagetype == 'category' || this.props.pagetype == 'archive')? true : false;\n const homeUrl = `${document.location.protocol}//${document.location.host}/`;\n\n return (\n \n
\n { showFilter && \n \n }\n
\n { childElements }\n {this.props.preview !== 1 && this.state.completed && showLink == false &&\n
\n
Det finns inga fler inlägg
\n
\n }\n {this.props.preview !== 1 && this.state.completed && showLink &&\n
\n
Det finns inga fler inlägg
\n Här hittar du fler inlägg\n
\n }\n
\n
\n
\n );\n } \n\n}\n\nexport default InfiniteScroll;","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/*!\n * Bootstrap v4.6.0 (https://getbootstrap.com/)\n * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('jquery'), require('popper.js')) :\n typeof define === 'function' && define.amd ? define(['exports', 'jquery', 'popper.js'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, factory(global.bootstrap = {}, global.jQuery, global.Popper));\n}(this, (function (exports, $, Popper) { 'use strict';\n\n function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }\n\n var $__default = /*#__PURE__*/_interopDefaultLegacy($);\n var Popper__default = /*#__PURE__*/_interopDefaultLegacy(Popper);\n\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n }\n\n function _extends() {\n _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n };\n\n return _extends.apply(this, arguments);\n }\n\n function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n }\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): util.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n /**\n * ------------------------------------------------------------------------\n * Private TransitionEnd Helpers\n * ------------------------------------------------------------------------\n */\n\n var TRANSITION_END = 'transitionend';\n var MAX_UID = 1000000;\n var MILLISECONDS_MULTIPLIER = 1000; // Shoutout AngusCroll (https://goo.gl/pxwQGp)\n\n function toType(obj) {\n if (obj === null || typeof obj === 'undefined') {\n return \"\" + obj;\n }\n\n return {}.toString.call(obj).match(/\\s([a-z]+)/i)[1].toLowerCase();\n }\n\n function getSpecialTransitionEndEvent() {\n return {\n bindType: TRANSITION_END,\n delegateType: TRANSITION_END,\n handle: function handle(event) {\n if ($__default['default'](event.target).is(this)) {\n return event.handleObj.handler.apply(this, arguments); // eslint-disable-line prefer-rest-params\n }\n\n return undefined;\n }\n };\n }\n\n function transitionEndEmulator(duration) {\n var _this = this;\n\n var called = false;\n $__default['default'](this).one(Util.TRANSITION_END, function () {\n called = true;\n });\n setTimeout(function () {\n if (!called) {\n Util.triggerTransitionEnd(_this);\n }\n }, duration);\n return this;\n }\n\n function setTransitionEndSupport() {\n $__default['default'].fn.emulateTransitionEnd = transitionEndEmulator;\n $__default['default'].event.special[Util.TRANSITION_END] = getSpecialTransitionEndEvent();\n }\n /**\n * --------------------------------------------------------------------------\n * Public Util Api\n * --------------------------------------------------------------------------\n */\n\n\n var Util = {\n TRANSITION_END: 'bsTransitionEnd',\n getUID: function getUID(prefix) {\n do {\n prefix += ~~(Math.random() * MAX_UID); // \"~~\" acts like a faster Math.floor() here\n } while (document.getElementById(prefix));\n\n return prefix;\n },\n getSelectorFromElement: function getSelectorFromElement(element) {\n var selector = element.getAttribute('data-target');\n\n if (!selector || selector === '#') {\n var hrefAttr = element.getAttribute('href');\n selector = hrefAttr && hrefAttr !== '#' ? hrefAttr.trim() : '';\n }\n\n try {\n return document.querySelector(selector) ? selector : null;\n } catch (_) {\n return null;\n }\n },\n getTransitionDurationFromElement: function getTransitionDurationFromElement(element) {\n if (!element) {\n return 0;\n } // Get transition-duration of the element\n\n\n var transitionDuration = $__default['default'](element).css('transition-duration');\n var transitionDelay = $__default['default'](element).css('transition-delay');\n var floatTransitionDuration = parseFloat(transitionDuration);\n var floatTransitionDelay = parseFloat(transitionDelay); // Return 0 if element or transition duration is not found\n\n if (!floatTransitionDuration && !floatTransitionDelay) {\n return 0;\n } // If multiple durations are defined, take the first\n\n\n transitionDuration = transitionDuration.split(',')[0];\n transitionDelay = transitionDelay.split(',')[0];\n return (parseFloat(transitionDuration) + parseFloat(transitionDelay)) * MILLISECONDS_MULTIPLIER;\n },\n reflow: function reflow(element) {\n return element.offsetHeight;\n },\n triggerTransitionEnd: function triggerTransitionEnd(element) {\n $__default['default'](element).trigger(TRANSITION_END);\n },\n supportsTransitionEnd: function supportsTransitionEnd() {\n return Boolean(TRANSITION_END);\n },\n isElement: function isElement(obj) {\n return (obj[0] || obj).nodeType;\n },\n typeCheckConfig: function typeCheckConfig(componentName, config, configTypes) {\n for (var property in configTypes) {\n if (Object.prototype.hasOwnProperty.call(configTypes, property)) {\n var expectedTypes = configTypes[property];\n var value = config[property];\n var valueType = value && Util.isElement(value) ? 'element' : toType(value);\n\n if (!new RegExp(expectedTypes).test(valueType)) {\n throw new Error(componentName.toUpperCase() + \": \" + (\"Option \\\"\" + property + \"\\\" provided type \\\"\" + valueType + \"\\\" \") + (\"but expected type \\\"\" + expectedTypes + \"\\\".\"));\n }\n }\n }\n },\n findShadowRoot: function findShadowRoot(element) {\n if (!document.documentElement.attachShadow) {\n return null;\n } // Can find the shadow root otherwise it'll return the document\n\n\n if (typeof element.getRootNode === 'function') {\n var root = element.getRootNode();\n return root instanceof ShadowRoot ? root : null;\n }\n\n if (element instanceof ShadowRoot) {\n return element;\n } // when we don't find a shadow root\n\n\n if (!element.parentNode) {\n return null;\n }\n\n return Util.findShadowRoot(element.parentNode);\n },\n jQueryDetection: function jQueryDetection() {\n if (typeof $__default['default'] === 'undefined') {\n throw new TypeError('Bootstrap\\'s JavaScript requires jQuery. jQuery must be included before Bootstrap\\'s JavaScript.');\n }\n\n var version = $__default['default'].fn.jquery.split(' ')[0].split('.');\n var minMajor = 1;\n var ltMajor = 2;\n var minMinor = 9;\n var minPatch = 1;\n var 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 };\n Util.jQueryDetection();\n setTransitionEndSupport();\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME = 'alert';\n var VERSION = '4.6.0';\n var DATA_KEY = 'bs.alert';\n var EVENT_KEY = \".\" + DATA_KEY;\n var DATA_API_KEY = '.data-api';\n var JQUERY_NO_CONFLICT = $__default['default'].fn[NAME];\n var SELECTOR_DISMISS = '[data-dismiss=\"alert\"]';\n var EVENT_CLOSE = \"close\" + EVENT_KEY;\n var EVENT_CLOSED = \"closed\" + EVENT_KEY;\n var EVENT_CLICK_DATA_API = \"click\" + EVENT_KEY + DATA_API_KEY;\n var CLASS_NAME_ALERT = 'alert';\n var CLASS_NAME_FADE = 'fade';\n var CLASS_NAME_SHOW = 'show';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Alert = /*#__PURE__*/function () {\n function Alert(element) {\n this._element = element;\n } // Getters\n\n\n var _proto = Alert.prototype;\n\n // Public\n _proto.close = function close(element) {\n var rootElement = this._element;\n\n if (element) {\n rootElement = this._getRootElement(element);\n }\n\n var customEvent = this._triggerCloseEvent(rootElement);\n\n if (customEvent.isDefaultPrevented()) {\n return;\n }\n\n this._removeElement(rootElement);\n };\n\n _proto.dispose = function dispose() {\n $__default['default'].removeData(this._element, DATA_KEY);\n this._element = null;\n } // Private\n ;\n\n _proto._getRootElement = function _getRootElement(element) {\n var selector = Util.getSelectorFromElement(element);\n var parent = false;\n\n if (selector) {\n parent = document.querySelector(selector);\n }\n\n if (!parent) {\n parent = $__default['default'](element).closest(\".\" + CLASS_NAME_ALERT)[0];\n }\n\n return parent;\n };\n\n _proto._triggerCloseEvent = function _triggerCloseEvent(element) {\n var closeEvent = $__default['default'].Event(EVENT_CLOSE);\n $__default['default'](element).trigger(closeEvent);\n return closeEvent;\n };\n\n _proto._removeElement = function _removeElement(element) {\n var _this = this;\n\n $__default['default'](element).removeClass(CLASS_NAME_SHOW);\n\n if (!$__default['default'](element).hasClass(CLASS_NAME_FADE)) {\n this._destroyElement(element);\n\n return;\n }\n\n var transitionDuration = Util.getTransitionDurationFromElement(element);\n $__default['default'](element).one(Util.TRANSITION_END, function (event) {\n return _this._destroyElement(element, event);\n }).emulateTransitionEnd(transitionDuration);\n };\n\n _proto._destroyElement = function _destroyElement(element) {\n $__default['default'](element).detach().trigger(EVENT_CLOSED).remove();\n } // Static\n ;\n\n Alert._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $__default['default'](this);\n var 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 Alert._handleDismiss = function _handleDismiss(alertInstance) {\n return function (event) {\n if (event) {\n event.preventDefault();\n }\n\n alertInstance.close(this);\n };\n };\n\n _createClass(Alert, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION;\n }\n }]);\n\n return Alert;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API, SELECTOR_DISMISS, Alert._handleDismiss(new Alert()));\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME] = Alert._jQueryInterface;\n $__default['default'].fn[NAME].Constructor = Alert;\n\n $__default['default'].fn[NAME].noConflict = function () {\n $__default['default'].fn[NAME] = JQUERY_NO_CONFLICT;\n return Alert._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$1 = 'button';\n var VERSION$1 = '4.6.0';\n var DATA_KEY$1 = 'bs.button';\n var EVENT_KEY$1 = \".\" + DATA_KEY$1;\n var DATA_API_KEY$1 = '.data-api';\n var JQUERY_NO_CONFLICT$1 = $__default['default'].fn[NAME$1];\n var CLASS_NAME_ACTIVE = 'active';\n var CLASS_NAME_BUTTON = 'btn';\n var CLASS_NAME_FOCUS = 'focus';\n var SELECTOR_DATA_TOGGLE_CARROT = '[data-toggle^=\"button\"]';\n var SELECTOR_DATA_TOGGLES = '[data-toggle=\"buttons\"]';\n var SELECTOR_DATA_TOGGLE = '[data-toggle=\"button\"]';\n var SELECTOR_DATA_TOGGLES_BUTTONS = '[data-toggle=\"buttons\"] .btn';\n var SELECTOR_INPUT = 'input:not([type=\"hidden\"])';\n var SELECTOR_ACTIVE = '.active';\n var SELECTOR_BUTTON = '.btn';\n var EVENT_CLICK_DATA_API$1 = \"click\" + EVENT_KEY$1 + DATA_API_KEY$1;\n var EVENT_FOCUS_BLUR_DATA_API = \"focus\" + EVENT_KEY$1 + DATA_API_KEY$1 + \" \" + (\"blur\" + EVENT_KEY$1 + DATA_API_KEY$1);\n var EVENT_LOAD_DATA_API = \"load\" + EVENT_KEY$1 + DATA_API_KEY$1;\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Button = /*#__PURE__*/function () {\n function Button(element) {\n this._element = element;\n this.shouldAvoidTriggerChange = false;\n } // Getters\n\n\n var _proto = Button.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n var triggerChangeEvent = true;\n var addAriaPressed = true;\n var rootElement = $__default['default'](this._element).closest(SELECTOR_DATA_TOGGLES)[0];\n\n if (rootElement) {\n var input = this._element.querySelector(SELECTOR_INPUT);\n\n if (input) {\n if (input.type === 'radio') {\n if (input.checked && this._element.classList.contains(CLASS_NAME_ACTIVE)) {\n triggerChangeEvent = false;\n } else {\n var activeElement = rootElement.querySelector(SELECTOR_ACTIVE);\n\n if (activeElement) {\n $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE);\n }\n }\n }\n\n if (triggerChangeEvent) {\n // if it's not a radio button or checkbox don't add a pointless/invalid checked property to the input\n if (input.type === 'checkbox' || input.type === 'radio') {\n input.checked = !this._element.classList.contains(CLASS_NAME_ACTIVE);\n }\n\n if (!this.shouldAvoidTriggerChange) {\n $__default['default'](input).trigger('change');\n }\n }\n\n input.focus();\n addAriaPressed = false;\n }\n }\n\n if (!(this._element.hasAttribute('disabled') || this._element.classList.contains('disabled'))) {\n if (addAriaPressed) {\n this._element.setAttribute('aria-pressed', !this._element.classList.contains(CLASS_NAME_ACTIVE));\n }\n\n if (triggerChangeEvent) {\n $__default['default'](this._element).toggleClass(CLASS_NAME_ACTIVE);\n }\n }\n };\n\n _proto.dispose = function dispose() {\n $__default['default'].removeData(this._element, DATA_KEY$1);\n this._element = null;\n } // Static\n ;\n\n Button._jQueryInterface = function _jQueryInterface(config, avoidTriggerChange) {\n return this.each(function () {\n var $element = $__default['default'](this);\n var data = $element.data(DATA_KEY$1);\n\n if (!data) {\n data = new Button(this);\n $element.data(DATA_KEY$1, data);\n }\n\n data.shouldAvoidTriggerChange = avoidTriggerChange;\n\n if (config === 'toggle') {\n data[config]();\n }\n });\n };\n\n _createClass(Button, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$1;\n }\n }]);\n\n return Button;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API$1, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n var button = event.target;\n var initialButton = button;\n\n if (!$__default['default'](button).hasClass(CLASS_NAME_BUTTON)) {\n button = $__default['default'](button).closest(SELECTOR_BUTTON)[0];\n }\n\n if (!button || button.hasAttribute('disabled') || button.classList.contains('disabled')) {\n event.preventDefault(); // work around Firefox bug #1540995\n } else {\n var inputBtn = button.querySelector(SELECTOR_INPUT);\n\n if (inputBtn && (inputBtn.hasAttribute('disabled') || inputBtn.classList.contains('disabled'))) {\n event.preventDefault(); // work around Firefox bug #1540995\n\n return;\n }\n\n if (initialButton.tagName === 'INPUT' || button.tagName !== 'LABEL') {\n Button._jQueryInterface.call($__default['default'](button), 'toggle', initialButton.tagName === 'INPUT');\n }\n }\n }).on(EVENT_FOCUS_BLUR_DATA_API, SELECTOR_DATA_TOGGLE_CARROT, function (event) {\n var button = $__default['default'](event.target).closest(SELECTOR_BUTTON)[0];\n $__default['default'](button).toggleClass(CLASS_NAME_FOCUS, /^focus(in)?$/.test(event.type));\n });\n $__default['default'](window).on(EVENT_LOAD_DATA_API, function () {\n // ensure correct active class is set to match the controls' actual values/states\n // find all checkboxes/readio buttons inside data-toggle groups\n var buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLES_BUTTONS));\n\n for (var i = 0, len = buttons.length; i < len; i++) {\n var button = buttons[i];\n var input = button.querySelector(SELECTOR_INPUT);\n\n if (input.checked || input.hasAttribute('checked')) {\n button.classList.add(CLASS_NAME_ACTIVE);\n } else {\n button.classList.remove(CLASS_NAME_ACTIVE);\n }\n } // find all button toggles\n\n\n buttons = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE));\n\n for (var _i = 0, _len = buttons.length; _i < _len; _i++) {\n var _button = buttons[_i];\n\n if (_button.getAttribute('aria-pressed') === 'true') {\n _button.classList.add(CLASS_NAME_ACTIVE);\n } else {\n _button.classList.remove(CLASS_NAME_ACTIVE);\n }\n }\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME$1] = Button._jQueryInterface;\n $__default['default'].fn[NAME$1].Constructor = Button;\n\n $__default['default'].fn[NAME$1].noConflict = function () {\n $__default['default'].fn[NAME$1] = JQUERY_NO_CONFLICT$1;\n return Button._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$2 = 'carousel';\n var VERSION$2 = '4.6.0';\n var DATA_KEY$2 = 'bs.carousel';\n var EVENT_KEY$2 = \".\" + DATA_KEY$2;\n var DATA_API_KEY$2 = '.data-api';\n var JQUERY_NO_CONFLICT$2 = $__default['default'].fn[NAME$2];\n var ARROW_LEFT_KEYCODE = 37; // KeyboardEvent.which value for left arrow key\n\n var ARROW_RIGHT_KEYCODE = 39; // KeyboardEvent.which value for right arrow key\n\n var TOUCHEVENT_COMPAT_WAIT = 500; // Time for mouse compat events to fire after touch\n\n var SWIPE_THRESHOLD = 40;\n var Default = {\n interval: 5000,\n keyboard: true,\n slide: false,\n pause: 'hover',\n wrap: true,\n touch: true\n };\n var DefaultType = {\n interval: '(number|boolean)',\n keyboard: 'boolean',\n slide: '(boolean|string)',\n pause: '(string|boolean)',\n wrap: 'boolean',\n touch: 'boolean'\n };\n var DIRECTION_NEXT = 'next';\n var DIRECTION_PREV = 'prev';\n var DIRECTION_LEFT = 'left';\n var DIRECTION_RIGHT = 'right';\n var EVENT_SLIDE = \"slide\" + EVENT_KEY$2;\n var EVENT_SLID = \"slid\" + EVENT_KEY$2;\n var EVENT_KEYDOWN = \"keydown\" + EVENT_KEY$2;\n var EVENT_MOUSEENTER = \"mouseenter\" + EVENT_KEY$2;\n var EVENT_MOUSELEAVE = \"mouseleave\" + EVENT_KEY$2;\n var EVENT_TOUCHSTART = \"touchstart\" + EVENT_KEY$2;\n var EVENT_TOUCHMOVE = \"touchmove\" + EVENT_KEY$2;\n var EVENT_TOUCHEND = \"touchend\" + EVENT_KEY$2;\n var EVENT_POINTERDOWN = \"pointerdown\" + EVENT_KEY$2;\n var EVENT_POINTERUP = \"pointerup\" + EVENT_KEY$2;\n var EVENT_DRAG_START = \"dragstart\" + EVENT_KEY$2;\n var EVENT_LOAD_DATA_API$1 = \"load\" + EVENT_KEY$2 + DATA_API_KEY$2;\n var EVENT_CLICK_DATA_API$2 = \"click\" + EVENT_KEY$2 + DATA_API_KEY$2;\n var CLASS_NAME_CAROUSEL = 'carousel';\n var CLASS_NAME_ACTIVE$1 = 'active';\n var CLASS_NAME_SLIDE = 'slide';\n var CLASS_NAME_RIGHT = 'carousel-item-right';\n var CLASS_NAME_LEFT = 'carousel-item-left';\n var CLASS_NAME_NEXT = 'carousel-item-next';\n var CLASS_NAME_PREV = 'carousel-item-prev';\n var CLASS_NAME_POINTER_EVENT = 'pointer-event';\n var SELECTOR_ACTIVE$1 = '.active';\n var SELECTOR_ACTIVE_ITEM = '.active.carousel-item';\n var SELECTOR_ITEM = '.carousel-item';\n var SELECTOR_ITEM_IMG = '.carousel-item img';\n var SELECTOR_NEXT_PREV = '.carousel-item-next, .carousel-item-prev';\n var SELECTOR_INDICATORS = '.carousel-indicators';\n var SELECTOR_DATA_SLIDE = '[data-slide], [data-slide-to]';\n var SELECTOR_DATA_RIDE = '[data-ride=\"carousel\"]';\n var PointerType = {\n TOUCH: 'touch',\n PEN: 'pen'\n };\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Carousel = /*#__PURE__*/function () {\n function Carousel(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 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 } // Getters\n\n\n var _proto = Carousel.prototype;\n\n // Public\n _proto.next = function next() {\n if (!this._isSliding) {\n this._slide(DIRECTION_NEXT);\n }\n };\n\n _proto.nextWhenVisible = function nextWhenVisible() {\n var $element = $__default['default'](this._element); // Don't call next when the page isn't visible\n // or the carousel or its parent isn't visible\n\n if (!document.hidden && $element.is(':visible') && $element.css('visibility') !== 'hidden') {\n this.next();\n }\n };\n\n _proto.prev = function prev() {\n if (!this._isSliding) {\n this._slide(DIRECTION_PREV);\n }\n };\n\n _proto.pause = function 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 _proto.cycle = function 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._updateInterval();\n\n this._interval = setInterval((document.visibilityState ? this.nextWhenVisible : this.next).bind(this), this._config.interval);\n }\n };\n\n _proto.to = function to(index) {\n var _this = this;\n\n this._activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n var activeIndex = this._getItemIndex(this._activeElement);\n\n if (index > this._items.length - 1 || index < 0) {\n return;\n }\n\n if (this._isSliding) {\n $__default['default'](this._element).one(EVENT_SLID, function () {\n return _this.to(index);\n });\n return;\n }\n\n if (activeIndex === index) {\n this.pause();\n this.cycle();\n return;\n }\n\n var direction = index > activeIndex ? DIRECTION_NEXT : DIRECTION_PREV;\n\n this._slide(direction, this._items[index]);\n };\n\n _proto.dispose = function dispose() {\n $__default['default'](this._element).off(EVENT_KEY$2);\n $__default['default'].removeData(this._element, DATA_KEY$2);\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 } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default, config);\n Util.typeCheckConfig(NAME$2, config, DefaultType);\n return config;\n };\n\n _proto._handleSwipe = function _handleSwipe() {\n var absDeltax = Math.abs(this.touchDeltaX);\n\n if (absDeltax <= SWIPE_THRESHOLD) {\n return;\n }\n\n var direction = absDeltax / this.touchDeltaX;\n this.touchDeltaX = 0; // swipe left\n\n if (direction > 0) {\n this.prev();\n } // swipe right\n\n\n if (direction < 0) {\n this.next();\n }\n };\n\n _proto._addEventListeners = function _addEventListeners() {\n var _this2 = this;\n\n if (this._config.keyboard) {\n $__default['default'](this._element).on(EVENT_KEYDOWN, function (event) {\n return _this2._keydown(event);\n });\n }\n\n if (this._config.pause === 'hover') {\n $__default['default'](this._element).on(EVENT_MOUSEENTER, function (event) {\n return _this2.pause(event);\n }).on(EVENT_MOUSELEAVE, function (event) {\n return _this2.cycle(event);\n });\n }\n\n if (this._config.touch) {\n this._addTouchEventListeners();\n }\n };\n\n _proto._addTouchEventListeners = function _addTouchEventListeners() {\n var _this3 = this;\n\n if (!this._touchSupported) {\n return;\n }\n\n var start = function start(event) {\n if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n _this3.touchStartX = event.originalEvent.clientX;\n } else if (!_this3._pointerEvent) {\n _this3.touchStartX = event.originalEvent.touches[0].clientX;\n }\n };\n\n var move = function move(event) {\n // ensure swiping with one touch and not pinching\n if (event.originalEvent.touches && event.originalEvent.touches.length > 1) {\n _this3.touchDeltaX = 0;\n } else {\n _this3.touchDeltaX = event.originalEvent.touches[0].clientX - _this3.touchStartX;\n }\n };\n\n var end = function end(event) {\n if (_this3._pointerEvent && PointerType[event.originalEvent.pointerType.toUpperCase()]) {\n _this3.touchDeltaX = event.originalEvent.clientX - _this3.touchStartX;\n }\n\n _this3._handleSwipe();\n\n if (_this3._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 _this3.pause();\n\n if (_this3.touchTimeout) {\n clearTimeout(_this3.touchTimeout);\n }\n\n _this3.touchTimeout = setTimeout(function (event) {\n return _this3.cycle(event);\n }, TOUCHEVENT_COMPAT_WAIT + _this3._config.interval);\n }\n };\n\n $__default['default'](this._element.querySelectorAll(SELECTOR_ITEM_IMG)).on(EVENT_DRAG_START, function (e) {\n return e.preventDefault();\n });\n\n if (this._pointerEvent) {\n $__default['default'](this._element).on(EVENT_POINTERDOWN, function (event) {\n return start(event);\n });\n $__default['default'](this._element).on(EVENT_POINTERUP, function (event) {\n return end(event);\n });\n\n this._element.classList.add(CLASS_NAME_POINTER_EVENT);\n } else {\n $__default['default'](this._element).on(EVENT_TOUCHSTART, function (event) {\n return start(event);\n });\n $__default['default'](this._element).on(EVENT_TOUCHMOVE, function (event) {\n return move(event);\n });\n $__default['default'](this._element).on(EVENT_TOUCHEND, function (event) {\n return end(event);\n });\n }\n };\n\n _proto._keydown = function _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\n case ARROW_RIGHT_KEYCODE:\n event.preventDefault();\n this.next();\n break;\n }\n };\n\n _proto._getItemIndex = function _getItemIndex(element) {\n this._items = element && element.parentNode ? [].slice.call(element.parentNode.querySelectorAll(SELECTOR_ITEM)) : [];\n return this._items.indexOf(element);\n };\n\n _proto._getItemByDirection = function _getItemByDirection(direction, activeElement) {\n var isNextDirection = direction === DIRECTION_NEXT;\n var isPrevDirection = direction === DIRECTION_PREV;\n\n var activeIndex = this._getItemIndex(activeElement);\n\n var lastItemIndex = this._items.length - 1;\n var isGoingToWrap = isPrevDirection && activeIndex === 0 || isNextDirection && activeIndex === lastItemIndex;\n\n if (isGoingToWrap && !this._config.wrap) {\n return activeElement;\n }\n\n var delta = direction === DIRECTION_PREV ? -1 : 1;\n var itemIndex = (activeIndex + delta) % this._items.length;\n return itemIndex === -1 ? this._items[this._items.length - 1] : this._items[itemIndex];\n };\n\n _proto._triggerSlideEvent = function _triggerSlideEvent(relatedTarget, eventDirectionName) {\n var targetIndex = this._getItemIndex(relatedTarget);\n\n var fromIndex = this._getItemIndex(this._element.querySelector(SELECTOR_ACTIVE_ITEM));\n\n var slideEvent = $__default['default'].Event(EVENT_SLIDE, {\n relatedTarget: relatedTarget,\n direction: eventDirectionName,\n from: fromIndex,\n to: targetIndex\n });\n $__default['default'](this._element).trigger(slideEvent);\n return slideEvent;\n };\n\n _proto._setActiveIndicatorElement = function _setActiveIndicatorElement(element) {\n if (this._indicatorsElement) {\n var indicators = [].slice.call(this._indicatorsElement.querySelectorAll(SELECTOR_ACTIVE$1));\n $__default['default'](indicators).removeClass(CLASS_NAME_ACTIVE$1);\n\n var nextIndicator = this._indicatorsElement.children[this._getItemIndex(element)];\n\n if (nextIndicator) {\n $__default['default'](nextIndicator).addClass(CLASS_NAME_ACTIVE$1);\n }\n }\n };\n\n _proto._updateInterval = function _updateInterval() {\n var element = this._activeElement || this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n if (!element) {\n return;\n }\n\n var elementInterval = parseInt(element.getAttribute('data-interval'), 10);\n\n if (elementInterval) {\n this._config.defaultInterval = this._config.defaultInterval || this._config.interval;\n this._config.interval = elementInterval;\n } else {\n this._config.interval = this._config.defaultInterval || this._config.interval;\n }\n };\n\n _proto._slide = function _slide(direction, element) {\n var _this4 = this;\n\n var activeElement = this._element.querySelector(SELECTOR_ACTIVE_ITEM);\n\n var activeElementIndex = this._getItemIndex(activeElement);\n\n var nextElement = element || activeElement && this._getItemByDirection(direction, activeElement);\n\n var nextElementIndex = this._getItemIndex(nextElement);\n\n var isCycling = Boolean(this._interval);\n var directionalClassName;\n var orderClassName;\n var eventDirectionName;\n\n if (direction === DIRECTION_NEXT) {\n directionalClassName = CLASS_NAME_LEFT;\n orderClassName = CLASS_NAME_NEXT;\n eventDirectionName = DIRECTION_LEFT;\n } else {\n directionalClassName = CLASS_NAME_RIGHT;\n orderClassName = CLASS_NAME_PREV;\n eventDirectionName = DIRECTION_RIGHT;\n }\n\n if (nextElement && $__default['default'](nextElement).hasClass(CLASS_NAME_ACTIVE$1)) {\n this._isSliding = false;\n return;\n }\n\n var slideEvent = this._triggerSlideEvent(nextElement, eventDirectionName);\n\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 this._activeElement = nextElement;\n var slidEvent = $__default['default'].Event(EVENT_SLID, {\n relatedTarget: nextElement,\n direction: eventDirectionName,\n from: activeElementIndex,\n to: nextElementIndex\n });\n\n if ($__default['default'](this._element).hasClass(CLASS_NAME_SLIDE)) {\n $__default['default'](nextElement).addClass(orderClassName);\n Util.reflow(nextElement);\n $__default['default'](activeElement).addClass(directionalClassName);\n $__default['default'](nextElement).addClass(directionalClassName);\n var transitionDuration = Util.getTransitionDurationFromElement(activeElement);\n $__default['default'](activeElement).one(Util.TRANSITION_END, function () {\n $__default['default'](nextElement).removeClass(directionalClassName + \" \" + orderClassName).addClass(CLASS_NAME_ACTIVE$1);\n $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE$1 + \" \" + orderClassName + \" \" + directionalClassName);\n _this4._isSliding = false;\n setTimeout(function () {\n return $__default['default'](_this4._element).trigger(slidEvent);\n }, 0);\n }).emulateTransitionEnd(transitionDuration);\n } else {\n $__default['default'](activeElement).removeClass(CLASS_NAME_ACTIVE$1);\n $__default['default'](nextElement).addClass(CLASS_NAME_ACTIVE$1);\n this._isSliding = false;\n $__default['default'](this._element).trigger(slidEvent);\n }\n\n if (isCycling) {\n this.cycle();\n }\n } // Static\n ;\n\n Carousel._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $__default['default'](this).data(DATA_KEY$2);\n\n var _config = _extends({}, Default, $__default['default'](this).data());\n\n if (typeof config === 'object') {\n _config = _extends({}, _config, config);\n }\n\n var action = typeof config === 'string' ? config : _config.slide;\n\n if (!data) {\n data = new Carousel(this, _config);\n $__default['default'](this).data(DATA_KEY$2, 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\n data[action]();\n } else if (_config.interval && _config.ride) {\n data.pause();\n data.cycle();\n }\n });\n };\n\n Carousel._dataApiClickHandler = function _dataApiClickHandler(event) {\n var selector = Util.getSelectorFromElement(this);\n\n if (!selector) {\n return;\n }\n\n var target = $__default['default'](selector)[0];\n\n if (!target || !$__default['default'](target).hasClass(CLASS_NAME_CAROUSEL)) {\n return;\n }\n\n var config = _extends({}, $__default['default'](target).data(), $__default['default'](this).data());\n\n var slideIndex = this.getAttribute('data-slide-to');\n\n if (slideIndex) {\n config.interval = false;\n }\n\n Carousel._jQueryInterface.call($__default['default'](target), config);\n\n if (slideIndex) {\n $__default['default'](target).data(DATA_KEY$2).to(slideIndex);\n }\n\n event.preventDefault();\n };\n\n _createClass(Carousel, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$2;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default;\n }\n }]);\n\n return Carousel;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API$2, SELECTOR_DATA_SLIDE, Carousel._dataApiClickHandler);\n $__default['default'](window).on(EVENT_LOAD_DATA_API$1, function () {\n var carousels = [].slice.call(document.querySelectorAll(SELECTOR_DATA_RIDE));\n\n for (var i = 0, len = carousels.length; i < len; i++) {\n var $carousel = $__default['default'](carousels[i]);\n\n Carousel._jQueryInterface.call($carousel, $carousel.data());\n }\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME$2] = Carousel._jQueryInterface;\n $__default['default'].fn[NAME$2].Constructor = Carousel;\n\n $__default['default'].fn[NAME$2].noConflict = function () {\n $__default['default'].fn[NAME$2] = JQUERY_NO_CONFLICT$2;\n return Carousel._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$3 = 'collapse';\n var VERSION$3 = '4.6.0';\n var DATA_KEY$3 = 'bs.collapse';\n var EVENT_KEY$3 = \".\" + DATA_KEY$3;\n var DATA_API_KEY$3 = '.data-api';\n var JQUERY_NO_CONFLICT$3 = $__default['default'].fn[NAME$3];\n var Default$1 = {\n toggle: true,\n parent: ''\n };\n var DefaultType$1 = {\n toggle: 'boolean',\n parent: '(string|element)'\n };\n var EVENT_SHOW = \"show\" + EVENT_KEY$3;\n var EVENT_SHOWN = \"shown\" + EVENT_KEY$3;\n var EVENT_HIDE = \"hide\" + EVENT_KEY$3;\n var EVENT_HIDDEN = \"hidden\" + EVENT_KEY$3;\n var EVENT_CLICK_DATA_API$3 = \"click\" + EVENT_KEY$3 + DATA_API_KEY$3;\n var CLASS_NAME_SHOW$1 = 'show';\n var CLASS_NAME_COLLAPSE = 'collapse';\n var CLASS_NAME_COLLAPSING = 'collapsing';\n var CLASS_NAME_COLLAPSED = 'collapsed';\n var DIMENSION_WIDTH = 'width';\n var DIMENSION_HEIGHT = 'height';\n var SELECTOR_ACTIVES = '.show, .collapsing';\n var SELECTOR_DATA_TOGGLE$1 = '[data-toggle=\"collapse\"]';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Collapse = /*#__PURE__*/function () {\n function Collapse(element, config) {\n this._isTransitioning = false;\n this._element = element;\n this._config = this._getConfig(config);\n this._triggerArray = [].slice.call(document.querySelectorAll(\"[data-toggle=\\\"collapse\\\"][href=\\\"#\" + element.id + \"\\\"],\" + (\"[data-toggle=\\\"collapse\\\"][data-target=\\\"#\" + element.id + \"\\\"]\")));\n var toggleList = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$1));\n\n for (var i = 0, len = toggleList.length; i < len; i++) {\n var elem = toggleList[i];\n var selector = Util.getSelectorFromElement(elem);\n var filterElement = [].slice.call(document.querySelectorAll(selector)).filter(function (foundElem) {\n return foundElem === element;\n });\n\n if (selector !== null && filterElement.length > 0) {\n this._selector = selector;\n\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 } // Getters\n\n\n var _proto = Collapse.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n if ($__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n this.hide();\n } else {\n this.show();\n }\n };\n\n _proto.show = function show() {\n var _this = this;\n\n if (this._isTransitioning || $__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n return;\n }\n\n var actives;\n var activesData;\n\n if (this._parent) {\n actives = [].slice.call(this._parent.querySelectorAll(SELECTOR_ACTIVES)).filter(function (elem) {\n if (typeof _this._config.parent === 'string') {\n return elem.getAttribute('data-parent') === _this._config.parent;\n }\n\n return elem.classList.contains(CLASS_NAME_COLLAPSE);\n });\n\n if (actives.length === 0) {\n actives = null;\n }\n }\n\n if (actives) {\n activesData = $__default['default'](actives).not(this._selector).data(DATA_KEY$3);\n\n if (activesData && activesData._isTransitioning) {\n return;\n }\n }\n\n var startEvent = $__default['default'].Event(EVENT_SHOW);\n $__default['default'](this._element).trigger(startEvent);\n\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n\n if (actives) {\n Collapse._jQueryInterface.call($__default['default'](actives).not(this._selector), 'hide');\n\n if (!activesData) {\n $__default['default'](actives).data(DATA_KEY$3, null);\n }\n }\n\n var dimension = this._getDimension();\n\n $__default['default'](this._element).removeClass(CLASS_NAME_COLLAPSE).addClass(CLASS_NAME_COLLAPSING);\n this._element.style[dimension] = 0;\n\n if (this._triggerArray.length) {\n $__default['default'](this._triggerArray).removeClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', true);\n }\n\n this.setTransitioning(true);\n\n var complete = function complete() {\n $__default['default'](_this._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$1);\n _this._element.style[dimension] = '';\n\n _this.setTransitioning(false);\n\n $__default['default'](_this._element).trigger(EVENT_SHOWN);\n };\n\n var capitalizedDimension = dimension[0].toUpperCase() + dimension.slice(1);\n var scrollSize = \"scroll\" + capitalizedDimension;\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n this._element.style[dimension] = this._element[scrollSize] + \"px\";\n };\n\n _proto.hide = function hide() {\n var _this2 = this;\n\n if (this._isTransitioning || !$__default['default'](this._element).hasClass(CLASS_NAME_SHOW$1)) {\n return;\n }\n\n var startEvent = $__default['default'].Event(EVENT_HIDE);\n $__default['default'](this._element).trigger(startEvent);\n\n if (startEvent.isDefaultPrevented()) {\n return;\n }\n\n var dimension = this._getDimension();\n\n this._element.style[dimension] = this._element.getBoundingClientRect()[dimension] + \"px\";\n Util.reflow(this._element);\n $__default['default'](this._element).addClass(CLASS_NAME_COLLAPSING).removeClass(CLASS_NAME_COLLAPSE + \" \" + CLASS_NAME_SHOW$1);\n var triggerArrayLength = this._triggerArray.length;\n\n if (triggerArrayLength > 0) {\n for (var i = 0; i < triggerArrayLength; i++) {\n var trigger = this._triggerArray[i];\n var selector = Util.getSelectorFromElement(trigger);\n\n if (selector !== null) {\n var $elem = $__default['default']([].slice.call(document.querySelectorAll(selector)));\n\n if (!$elem.hasClass(CLASS_NAME_SHOW$1)) {\n $__default['default'](trigger).addClass(CLASS_NAME_COLLAPSED).attr('aria-expanded', false);\n }\n }\n }\n }\n\n this.setTransitioning(true);\n\n var complete = function complete() {\n _this2.setTransitioning(false);\n\n $__default['default'](_this2._element).removeClass(CLASS_NAME_COLLAPSING).addClass(CLASS_NAME_COLLAPSE).trigger(EVENT_HIDDEN);\n };\n\n this._element.style[dimension] = '';\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $__default['default'](this._element).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n };\n\n _proto.setTransitioning = function setTransitioning(isTransitioning) {\n this._isTransitioning = isTransitioning;\n };\n\n _proto.dispose = function dispose() {\n $__default['default'].removeData(this._element, DATA_KEY$3);\n this._config = null;\n this._parent = null;\n this._element = null;\n this._triggerArray = null;\n this._isTransitioning = null;\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default$1, config);\n config.toggle = Boolean(config.toggle); // Coerce string values\n\n Util.typeCheckConfig(NAME$3, config, DefaultType$1);\n return config;\n };\n\n _proto._getDimension = function _getDimension() {\n var hasWidth = $__default['default'](this._element).hasClass(DIMENSION_WIDTH);\n return hasWidth ? DIMENSION_WIDTH : DIMENSION_HEIGHT;\n };\n\n _proto._getParent = function _getParent() {\n var _this3 = this;\n\n var parent;\n\n if (Util.isElement(this._config.parent)) {\n parent = this._config.parent; // It's a jQuery object\n\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 var selector = \"[data-toggle=\\\"collapse\\\"][data-parent=\\\"\" + this._config.parent + \"\\\"]\";\n var children = [].slice.call(parent.querySelectorAll(selector));\n $__default['default'](children).each(function (i, element) {\n _this3._addAriaAndCollapsedClass(Collapse._getTargetFromElement(element), [element]);\n });\n return parent;\n };\n\n _proto._addAriaAndCollapsedClass = function _addAriaAndCollapsedClass(element, triggerArray) {\n var isOpen = $__default['default'](element).hasClass(CLASS_NAME_SHOW$1);\n\n if (triggerArray.length) {\n $__default['default'](triggerArray).toggleClass(CLASS_NAME_COLLAPSED, !isOpen).attr('aria-expanded', isOpen);\n }\n } // Static\n ;\n\n Collapse._getTargetFromElement = function _getTargetFromElement(element) {\n var selector = Util.getSelectorFromElement(element);\n return selector ? document.querySelector(selector) : null;\n };\n\n Collapse._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $__default['default'](this);\n var data = $element.data(DATA_KEY$3);\n\n var _config = _extends({}, Default$1, $element.data(), typeof config === 'object' && config ? config : {});\n\n if (!data && _config.toggle && typeof config === 'string' && /show|hide/.test(config)) {\n _config.toggle = false;\n }\n\n if (!data) {\n data = new Collapse(this, _config);\n $element.data(DATA_KEY$3, 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]();\n }\n });\n };\n\n _createClass(Collapse, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$3;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$1;\n }\n }]);\n\n return Collapse;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API$3, SELECTOR_DATA_TOGGLE$1, function (event) {\n // preventDefault only for elements (which change the URL) not inside the collapsible element\n if (event.currentTarget.tagName === 'A') {\n event.preventDefault();\n }\n\n var $trigger = $__default['default'](this);\n var selector = Util.getSelectorFromElement(this);\n var selectors = [].slice.call(document.querySelectorAll(selector));\n $__default['default'](selectors).each(function () {\n var $target = $__default['default'](this);\n var data = $target.data(DATA_KEY$3);\n var config = data ? 'toggle' : $trigger.data();\n\n Collapse._jQueryInterface.call($target, config);\n });\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME$3] = Collapse._jQueryInterface;\n $__default['default'].fn[NAME$3].Constructor = Collapse;\n\n $__default['default'].fn[NAME$3].noConflict = function () {\n $__default['default'].fn[NAME$3] = JQUERY_NO_CONFLICT$3;\n return Collapse._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$4 = 'dropdown';\n var VERSION$4 = '4.6.0';\n var DATA_KEY$4 = 'bs.dropdown';\n var EVENT_KEY$4 = \".\" + DATA_KEY$4;\n var DATA_API_KEY$4 = '.data-api';\n var JQUERY_NO_CONFLICT$4 = $__default['default'].fn[NAME$4];\n var ESCAPE_KEYCODE = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n var SPACE_KEYCODE = 32; // KeyboardEvent.which value for space key\n\n var TAB_KEYCODE = 9; // KeyboardEvent.which value for tab key\n\n var ARROW_UP_KEYCODE = 38; // KeyboardEvent.which value for up arrow key\n\n var ARROW_DOWN_KEYCODE = 40; // KeyboardEvent.which value for down arrow key\n\n var RIGHT_MOUSE_BUTTON_WHICH = 3; // MouseEvent.which value for the right button (assuming a right-handed mouse)\n\n var REGEXP_KEYDOWN = new RegExp(ARROW_UP_KEYCODE + \"|\" + ARROW_DOWN_KEYCODE + \"|\" + ESCAPE_KEYCODE);\n var EVENT_HIDE$1 = \"hide\" + EVENT_KEY$4;\n var EVENT_HIDDEN$1 = \"hidden\" + EVENT_KEY$4;\n var EVENT_SHOW$1 = \"show\" + EVENT_KEY$4;\n var EVENT_SHOWN$1 = \"shown\" + EVENT_KEY$4;\n var EVENT_CLICK = \"click\" + EVENT_KEY$4;\n var EVENT_CLICK_DATA_API$4 = \"click\" + EVENT_KEY$4 + DATA_API_KEY$4;\n var EVENT_KEYDOWN_DATA_API = \"keydown\" + EVENT_KEY$4 + DATA_API_KEY$4;\n var EVENT_KEYUP_DATA_API = \"keyup\" + EVENT_KEY$4 + DATA_API_KEY$4;\n var CLASS_NAME_DISABLED = 'disabled';\n var CLASS_NAME_SHOW$2 = 'show';\n var CLASS_NAME_DROPUP = 'dropup';\n var CLASS_NAME_DROPRIGHT = 'dropright';\n var CLASS_NAME_DROPLEFT = 'dropleft';\n var CLASS_NAME_MENURIGHT = 'dropdown-menu-right';\n var CLASS_NAME_POSITION_STATIC = 'position-static';\n var SELECTOR_DATA_TOGGLE$2 = '[data-toggle=\"dropdown\"]';\n var SELECTOR_FORM_CHILD = '.dropdown form';\n var SELECTOR_MENU = '.dropdown-menu';\n var SELECTOR_NAVBAR_NAV = '.navbar-nav';\n var SELECTOR_VISIBLE_ITEMS = '.dropdown-menu .dropdown-item:not(.disabled):not(:disabled)';\n var PLACEMENT_TOP = 'top-start';\n var PLACEMENT_TOPEND = 'top-end';\n var PLACEMENT_BOTTOM = 'bottom-start';\n var PLACEMENT_BOTTOMEND = 'bottom-end';\n var PLACEMENT_RIGHT = 'right-start';\n var PLACEMENT_LEFT = 'left-start';\n var Default$2 = {\n offset: 0,\n flip: true,\n boundary: 'scrollParent',\n reference: 'toggle',\n display: 'dynamic',\n popperConfig: null\n };\n var DefaultType$2 = {\n offset: '(number|string|function)',\n flip: 'boolean',\n boundary: '(string|element)',\n reference: '(string|element)',\n display: 'string',\n popperConfig: '(null|object)'\n };\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Dropdown = /*#__PURE__*/function () {\n function Dropdown(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 } // Getters\n\n\n var _proto = Dropdown.prototype;\n\n // Public\n _proto.toggle = function toggle() {\n if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED)) {\n return;\n }\n\n var isActive = $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2);\n\n Dropdown._clearMenus();\n\n if (isActive) {\n return;\n }\n\n this.show(true);\n };\n\n _proto.show = function show(usePopper) {\n if (usePopper === void 0) {\n usePopper = false;\n }\n\n if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || $__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n var showEvent = $__default['default'].Event(EVENT_SHOW$1, relatedTarget);\n\n var parent = Dropdown._getParentFromElement(this._element);\n\n $__default['default'](parent).trigger(showEvent);\n\n if (showEvent.isDefaultPrevented()) {\n return;\n } // Totally disable Popper for Dropdowns in Navbar\n\n\n if (!this._inNavbar && usePopper) {\n /**\n * Check for Popper dependency\n * Popper - https://popper.js.org\n */\n if (typeof Popper__default['default'] === 'undefined') {\n throw new TypeError('Bootstrap\\'s dropdowns require Popper (https://popper.js.org)');\n }\n\n var 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; // Check if it's jQuery element\n\n if (typeof this._config.reference.jquery !== 'undefined') {\n referenceElement = this._config.reference[0];\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\n\n if (this._config.boundary !== 'scrollParent') {\n $__default['default'](parent).addClass(CLASS_NAME_POSITION_STATIC);\n }\n\n this._popper = new Popper__default['default'](referenceElement, this._menu, this._getPopperConfig());\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\n\n if ('ontouchstart' in document.documentElement && $__default['default'](parent).closest(SELECTOR_NAVBAR_NAV).length === 0) {\n $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop);\n }\n\n this._element.focus();\n\n this._element.setAttribute('aria-expanded', true);\n\n $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2);\n $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_SHOWN$1, relatedTarget));\n };\n\n _proto.hide = function hide() {\n if (this._element.disabled || $__default['default'](this._element).hasClass(CLASS_NAME_DISABLED) || !$__default['default'](this._menu).hasClass(CLASS_NAME_SHOW$2)) {\n return;\n }\n\n var relatedTarget = {\n relatedTarget: this._element\n };\n var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget);\n\n var parent = Dropdown._getParentFromElement(this._element);\n\n $__default['default'](parent).trigger(hideEvent);\n\n if (hideEvent.isDefaultPrevented()) {\n return;\n }\n\n if (this._popper) {\n this._popper.destroy();\n }\n\n $__default['default'](this._menu).toggleClass(CLASS_NAME_SHOW$2);\n $__default['default'](parent).toggleClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget));\n };\n\n _proto.dispose = function dispose() {\n $__default['default'].removeData(this._element, DATA_KEY$4);\n $__default['default'](this._element).off(EVENT_KEY$4);\n this._element = null;\n this._menu = null;\n\n if (this._popper !== null) {\n this._popper.destroy();\n\n this._popper = null;\n }\n };\n\n _proto.update = function update() {\n this._inNavbar = this._detectNavbar();\n\n if (this._popper !== null) {\n this._popper.scheduleUpdate();\n }\n } // Private\n ;\n\n _proto._addEventListeners = function _addEventListeners() {\n var _this = this;\n\n $__default['default'](this._element).on(EVENT_CLICK, function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n _this.toggle();\n });\n };\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, this.constructor.Default, $__default['default'](this._element).data(), config);\n Util.typeCheckConfig(NAME$4, config, this.constructor.DefaultType);\n return config;\n };\n\n _proto._getMenuElement = function _getMenuElement() {\n if (!this._menu) {\n var parent = Dropdown._getParentFromElement(this._element);\n\n if (parent) {\n this._menu = parent.querySelector(SELECTOR_MENU);\n }\n }\n\n return this._menu;\n };\n\n _proto._getPlacement = function _getPlacement() {\n var $parentDropdown = $__default['default'](this._element.parentNode);\n var placement = PLACEMENT_BOTTOM; // Handle dropup\n\n if ($parentDropdown.hasClass(CLASS_NAME_DROPUP)) {\n placement = $__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT) ? PLACEMENT_TOPEND : PLACEMENT_TOP;\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPRIGHT)) {\n placement = PLACEMENT_RIGHT;\n } else if ($parentDropdown.hasClass(CLASS_NAME_DROPLEFT)) {\n placement = PLACEMENT_LEFT;\n } else if ($__default['default'](this._menu).hasClass(CLASS_NAME_MENURIGHT)) {\n placement = PLACEMENT_BOTTOMEND;\n }\n\n return placement;\n };\n\n _proto._detectNavbar = function _detectNavbar() {\n return $__default['default'](this._element).closest('.navbar').length > 0;\n };\n\n _proto._getOffset = function _getOffset() {\n var _this2 = this;\n\n var offset = {};\n\n if (typeof this._config.offset === 'function') {\n offset.fn = function (data) {\n data.offsets = _extends({}, data.offsets, _this2._config.offset(data.offsets, _this2._element) || {});\n return data;\n };\n } else {\n offset.offset = this._config.offset;\n }\n\n return offset;\n };\n\n _proto._getPopperConfig = function _getPopperConfig() {\n var 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 }; // Disable Popper if we have a static display\n\n if (this._config.display === 'static') {\n popperConfig.modifiers.applyStyle = {\n enabled: false\n };\n }\n\n return _extends({}, popperConfig, this._config.popperConfig);\n } // Static\n ;\n\n Dropdown._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $__default['default'](this).data(DATA_KEY$4);\n\n var _config = typeof config === 'object' ? config : null;\n\n if (!data) {\n data = new Dropdown(this, _config);\n $__default['default'](this).data(DATA_KEY$4, 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]();\n }\n });\n };\n\n Dropdown._clearMenus = function _clearMenus(event) {\n if (event && (event.which === RIGHT_MOUSE_BUTTON_WHICH || event.type === 'keyup' && event.which !== TAB_KEYCODE)) {\n return;\n }\n\n var toggles = [].slice.call(document.querySelectorAll(SELECTOR_DATA_TOGGLE$2));\n\n for (var i = 0, len = toggles.length; i < len; i++) {\n var parent = Dropdown._getParentFromElement(toggles[i]);\n\n var context = $__default['default'](toggles[i]).data(DATA_KEY$4);\n var 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 var dropdownMenu = context._menu;\n\n if (!$__default['default'](parent).hasClass(CLASS_NAME_SHOW$2)) {\n continue;\n }\n\n if (event && (event.type === 'click' && /input|textarea/i.test(event.target.tagName) || event.type === 'keyup' && event.which === TAB_KEYCODE) && $__default['default'].contains(parent, event.target)) {\n continue;\n }\n\n var hideEvent = $__default['default'].Event(EVENT_HIDE$1, relatedTarget);\n $__default['default'](parent).trigger(hideEvent);\n\n if (hideEvent.isDefaultPrevented()) {\n continue;\n } // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n\n if ('ontouchstart' in document.documentElement) {\n $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop);\n }\n\n toggles[i].setAttribute('aria-expanded', 'false');\n\n if (context._popper) {\n context._popper.destroy();\n }\n\n $__default['default'](dropdownMenu).removeClass(CLASS_NAME_SHOW$2);\n $__default['default'](parent).removeClass(CLASS_NAME_SHOW$2).trigger($__default['default'].Event(EVENT_HIDDEN$1, relatedTarget));\n }\n };\n\n Dropdown._getParentFromElement = function _getParentFromElement(element) {\n var parent;\n var selector = Util.getSelectorFromElement(element);\n\n if (selector) {\n parent = document.querySelector(selector);\n }\n\n return parent || element.parentNode;\n } // eslint-disable-next-line complexity\n ;\n\n Dropdown._dataApiKeydownHandler = function _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) ? event.which === SPACE_KEYCODE || event.which !== ESCAPE_KEYCODE && (event.which !== ARROW_DOWN_KEYCODE && event.which !== ARROW_UP_KEYCODE || $__default['default'](event.target).closest(SELECTOR_MENU).length) : !REGEXP_KEYDOWN.test(event.which)) {\n return;\n }\n\n if (this.disabled || $__default['default'](this).hasClass(CLASS_NAME_DISABLED)) {\n return;\n }\n\n var parent = Dropdown._getParentFromElement(this);\n\n var isActive = $__default['default'](parent).hasClass(CLASS_NAME_SHOW$2);\n\n if (!isActive && event.which === ESCAPE_KEYCODE) {\n return;\n }\n\n event.preventDefault();\n event.stopPropagation();\n\n if (!isActive || event.which === ESCAPE_KEYCODE || event.which === SPACE_KEYCODE) {\n if (event.which === ESCAPE_KEYCODE) {\n $__default['default'](parent.querySelector(SELECTOR_DATA_TOGGLE$2)).trigger('focus');\n }\n\n $__default['default'](this).trigger('click');\n return;\n }\n\n var items = [].slice.call(parent.querySelectorAll(SELECTOR_VISIBLE_ITEMS)).filter(function (item) {\n return $__default['default'](item).is(':visible');\n });\n\n if (items.length === 0) {\n return;\n }\n\n var index = items.indexOf(event.target);\n\n if (event.which === ARROW_UP_KEYCODE && index > 0) {\n // Up\n index--;\n }\n\n if (event.which === ARROW_DOWN_KEYCODE && index < items.length - 1) {\n // Down\n index++;\n }\n\n if (index < 0) {\n index = 0;\n }\n\n items[index].focus();\n };\n\n _createClass(Dropdown, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$4;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$2;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$2;\n }\n }]);\n\n return Dropdown;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_KEYDOWN_DATA_API, SELECTOR_DATA_TOGGLE$2, Dropdown._dataApiKeydownHandler).on(EVENT_KEYDOWN_DATA_API, SELECTOR_MENU, Dropdown._dataApiKeydownHandler).on(EVENT_CLICK_DATA_API$4 + \" \" + EVENT_KEYUP_DATA_API, Dropdown._clearMenus).on(EVENT_CLICK_DATA_API$4, SELECTOR_DATA_TOGGLE$2, function (event) {\n event.preventDefault();\n event.stopPropagation();\n\n Dropdown._jQueryInterface.call($__default['default'](this), 'toggle');\n }).on(EVENT_CLICK_DATA_API$4, SELECTOR_FORM_CHILD, function (e) {\n e.stopPropagation();\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME$4] = Dropdown._jQueryInterface;\n $__default['default'].fn[NAME$4].Constructor = Dropdown;\n\n $__default['default'].fn[NAME$4].noConflict = function () {\n $__default['default'].fn[NAME$4] = JQUERY_NO_CONFLICT$4;\n return Dropdown._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$5 = 'modal';\n var VERSION$5 = '4.6.0';\n var DATA_KEY$5 = 'bs.modal';\n var EVENT_KEY$5 = \".\" + DATA_KEY$5;\n var DATA_API_KEY$5 = '.data-api';\n var JQUERY_NO_CONFLICT$5 = $__default['default'].fn[NAME$5];\n var ESCAPE_KEYCODE$1 = 27; // KeyboardEvent.which value for Escape (Esc) key\n\n var Default$3 = {\n backdrop: true,\n keyboard: true,\n focus: true,\n show: true\n };\n var DefaultType$3 = {\n backdrop: '(boolean|string)',\n keyboard: 'boolean',\n focus: 'boolean',\n show: 'boolean'\n };\n var EVENT_HIDE$2 = \"hide\" + EVENT_KEY$5;\n var EVENT_HIDE_PREVENTED = \"hidePrevented\" + EVENT_KEY$5;\n var EVENT_HIDDEN$2 = \"hidden\" + EVENT_KEY$5;\n var EVENT_SHOW$2 = \"show\" + EVENT_KEY$5;\n var EVENT_SHOWN$2 = \"shown\" + EVENT_KEY$5;\n var EVENT_FOCUSIN = \"focusin\" + EVENT_KEY$5;\n var EVENT_RESIZE = \"resize\" + EVENT_KEY$5;\n var EVENT_CLICK_DISMISS = \"click.dismiss\" + EVENT_KEY$5;\n var EVENT_KEYDOWN_DISMISS = \"keydown.dismiss\" + EVENT_KEY$5;\n var EVENT_MOUSEUP_DISMISS = \"mouseup.dismiss\" + EVENT_KEY$5;\n var EVENT_MOUSEDOWN_DISMISS = \"mousedown.dismiss\" + EVENT_KEY$5;\n var EVENT_CLICK_DATA_API$5 = \"click\" + EVENT_KEY$5 + DATA_API_KEY$5;\n var CLASS_NAME_SCROLLABLE = 'modal-dialog-scrollable';\n var CLASS_NAME_SCROLLBAR_MEASURER = 'modal-scrollbar-measure';\n var CLASS_NAME_BACKDROP = 'modal-backdrop';\n var CLASS_NAME_OPEN = 'modal-open';\n var CLASS_NAME_FADE$1 = 'fade';\n var CLASS_NAME_SHOW$3 = 'show';\n var CLASS_NAME_STATIC = 'modal-static';\n var SELECTOR_DIALOG = '.modal-dialog';\n var SELECTOR_MODAL_BODY = '.modal-body';\n var SELECTOR_DATA_TOGGLE$3 = '[data-toggle=\"modal\"]';\n var SELECTOR_DATA_DISMISS = '[data-dismiss=\"modal\"]';\n var SELECTOR_FIXED_CONTENT = '.fixed-top, .fixed-bottom, .is-fixed, .sticky-top';\n var SELECTOR_STICKY_CONTENT = '.sticky-top';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Modal = /*#__PURE__*/function () {\n function Modal(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 } // Getters\n\n\n var _proto = Modal.prototype;\n\n // Public\n _proto.toggle = function toggle(relatedTarget) {\n return this._isShown ? this.hide() : this.show(relatedTarget);\n };\n\n _proto.show = function show(relatedTarget) {\n var _this = this;\n\n if (this._isShown || this._isTransitioning) {\n return;\n }\n\n if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE$1)) {\n this._isTransitioning = true;\n }\n\n var showEvent = $__default['default'].Event(EVENT_SHOW$2, {\n relatedTarget: relatedTarget\n });\n $__default['default'](this._element).trigger(showEvent);\n\n if (this._isShown || showEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = true;\n\n this._checkScrollbar();\n\n this._setScrollbar();\n\n this._adjustDialog();\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n $__default['default'](this._element).on(EVENT_CLICK_DISMISS, SELECTOR_DATA_DISMISS, function (event) {\n return _this.hide(event);\n });\n $__default['default'](this._dialog).on(EVENT_MOUSEDOWN_DISMISS, function () {\n $__default['default'](_this._element).one(EVENT_MOUSEUP_DISMISS, function (event) {\n if ($__default['default'](event.target).is(_this._element)) {\n _this._ignoreBackdropClick = true;\n }\n });\n });\n\n this._showBackdrop(function () {\n return _this._showElement(relatedTarget);\n });\n };\n\n _proto.hide = function hide(event) {\n var _this2 = this;\n\n if (event) {\n event.preventDefault();\n }\n\n if (!this._isShown || this._isTransitioning) {\n return;\n }\n\n var hideEvent = $__default['default'].Event(EVENT_HIDE$2);\n $__default['default'](this._element).trigger(hideEvent);\n\n if (!this._isShown || hideEvent.isDefaultPrevented()) {\n return;\n }\n\n this._isShown = false;\n var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1);\n\n if (transition) {\n this._isTransitioning = true;\n }\n\n this._setEscapeEvent();\n\n this._setResizeEvent();\n\n $__default['default'](document).off(EVENT_FOCUSIN);\n $__default['default'](this._element).removeClass(CLASS_NAME_SHOW$3);\n $__default['default'](this._element).off(EVENT_CLICK_DISMISS);\n $__default['default'](this._dialog).off(EVENT_MOUSEDOWN_DISMISS);\n\n if (transition) {\n var transitionDuration = Util.getTransitionDurationFromElement(this._element);\n $__default['default'](this._element).one(Util.TRANSITION_END, function (event) {\n return _this2._hideModal(event);\n }).emulateTransitionEnd(transitionDuration);\n } else {\n this._hideModal();\n }\n };\n\n _proto.dispose = function dispose() {\n [window, this._element, this._dialog].forEach(function (htmlElement) {\n return $__default['default'](htmlElement).off(EVENT_KEY$5);\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\n $__default['default'](document).off(EVENT_FOCUSIN);\n $__default['default'].removeData(this._element, DATA_KEY$5);\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 _proto.handleUpdate = function handleUpdate() {\n this._adjustDialog();\n } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default$3, config);\n Util.typeCheckConfig(NAME$5, config, DefaultType$3);\n return config;\n };\n\n _proto._triggerBackdropTransition = function _triggerBackdropTransition() {\n var _this3 = this;\n\n var hideEventPrevented = $__default['default'].Event(EVENT_HIDE_PREVENTED);\n $__default['default'](this._element).trigger(hideEventPrevented);\n\n if (hideEventPrevented.isDefaultPrevented()) {\n return;\n }\n\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n if (!isModalOverflowing) {\n this._element.style.overflowY = 'hidden';\n }\n\n this._element.classList.add(CLASS_NAME_STATIC);\n\n var modalTransitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n $__default['default'](this._element).off(Util.TRANSITION_END);\n $__default['default'](this._element).one(Util.TRANSITION_END, function () {\n _this3._element.classList.remove(CLASS_NAME_STATIC);\n\n if (!isModalOverflowing) {\n $__default['default'](_this3._element).one(Util.TRANSITION_END, function () {\n _this3._element.style.overflowY = '';\n }).emulateTransitionEnd(_this3._element, modalTransitionDuration);\n }\n }).emulateTransitionEnd(modalTransitionDuration);\n\n this._element.focus();\n };\n\n _proto._showElement = function _showElement(relatedTarget) {\n var _this4 = this;\n\n var transition = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1);\n var modalBody = this._dialog ? this._dialog.querySelector(SELECTOR_MODAL_BODY) : null;\n\n if (!this._element.parentNode || 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\n this._element.removeAttribute('aria-hidden');\n\n this._element.setAttribute('aria-modal', true);\n\n this._element.setAttribute('role', 'dialog');\n\n if ($__default['default'](this._dialog).hasClass(CLASS_NAME_SCROLLABLE) && modalBody) {\n modalBody.scrollTop = 0;\n } else {\n this._element.scrollTop = 0;\n }\n\n if (transition) {\n Util.reflow(this._element);\n }\n\n $__default['default'](this._element).addClass(CLASS_NAME_SHOW$3);\n\n if (this._config.focus) {\n this._enforceFocus();\n }\n\n var shownEvent = $__default['default'].Event(EVENT_SHOWN$2, {\n relatedTarget: relatedTarget\n });\n\n var transitionComplete = function transitionComplete() {\n if (_this4._config.focus) {\n _this4._element.focus();\n }\n\n _this4._isTransitioning = false;\n $__default['default'](_this4._element).trigger(shownEvent);\n };\n\n if (transition) {\n var transitionDuration = Util.getTransitionDurationFromElement(this._dialog);\n $__default['default'](this._dialog).one(Util.TRANSITION_END, transitionComplete).emulateTransitionEnd(transitionDuration);\n } else {\n transitionComplete();\n }\n };\n\n _proto._enforceFocus = function _enforceFocus() {\n var _this5 = this;\n\n $__default['default'](document).off(EVENT_FOCUSIN) // Guard against infinite focus loop\n .on(EVENT_FOCUSIN, function (event) {\n if (document !== event.target && _this5._element !== event.target && $__default['default'](_this5._element).has(event.target).length === 0) {\n _this5._element.focus();\n }\n });\n };\n\n _proto._setEscapeEvent = function _setEscapeEvent() {\n var _this6 = this;\n\n if (this._isShown) {\n $__default['default'](this._element).on(EVENT_KEYDOWN_DISMISS, function (event) {\n if (_this6._config.keyboard && event.which === ESCAPE_KEYCODE$1) {\n event.preventDefault();\n\n _this6.hide();\n } else if (!_this6._config.keyboard && event.which === ESCAPE_KEYCODE$1) {\n _this6._triggerBackdropTransition();\n }\n });\n } else if (!this._isShown) {\n $__default['default'](this._element).off(EVENT_KEYDOWN_DISMISS);\n }\n };\n\n _proto._setResizeEvent = function _setResizeEvent() {\n var _this7 = this;\n\n if (this._isShown) {\n $__default['default'](window).on(EVENT_RESIZE, function (event) {\n return _this7.handleUpdate(event);\n });\n } else {\n $__default['default'](window).off(EVENT_RESIZE);\n }\n };\n\n _proto._hideModal = function _hideModal() {\n var _this8 = this;\n\n this._element.style.display = 'none';\n\n this._element.setAttribute('aria-hidden', true);\n\n this._element.removeAttribute('aria-modal');\n\n this._element.removeAttribute('role');\n\n this._isTransitioning = false;\n\n this._showBackdrop(function () {\n $__default['default'](document.body).removeClass(CLASS_NAME_OPEN);\n\n _this8._resetAdjustments();\n\n _this8._resetScrollbar();\n\n $__default['default'](_this8._element).trigger(EVENT_HIDDEN$2);\n });\n };\n\n _proto._removeBackdrop = function _removeBackdrop() {\n if (this._backdrop) {\n $__default['default'](this._backdrop).remove();\n this._backdrop = null;\n }\n };\n\n _proto._showBackdrop = function _showBackdrop(callback) {\n var _this9 = this;\n\n var animate = $__default['default'](this._element).hasClass(CLASS_NAME_FADE$1) ? CLASS_NAME_FADE$1 : '';\n\n if (this._isShown && this._config.backdrop) {\n this._backdrop = document.createElement('div');\n this._backdrop.className = CLASS_NAME_BACKDROP;\n\n if (animate) {\n this._backdrop.classList.add(animate);\n }\n\n $__default['default'](this._backdrop).appendTo(document.body);\n $__default['default'](this._element).on(EVENT_CLICK_DISMISS, function (event) {\n if (_this9._ignoreBackdropClick) {\n _this9._ignoreBackdropClick = false;\n return;\n }\n\n if (event.target !== event.currentTarget) {\n return;\n }\n\n if (_this9._config.backdrop === 'static') {\n _this9._triggerBackdropTransition();\n } else {\n _this9.hide();\n }\n });\n\n if (animate) {\n Util.reflow(this._backdrop);\n }\n\n $__default['default'](this._backdrop).addClass(CLASS_NAME_SHOW$3);\n\n if (!callback) {\n return;\n }\n\n if (!animate) {\n callback();\n return;\n }\n\n var backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n $__default['default'](this._backdrop).one(Util.TRANSITION_END, callback).emulateTransitionEnd(backdropTransitionDuration);\n } else if (!this._isShown && this._backdrop) {\n $__default['default'](this._backdrop).removeClass(CLASS_NAME_SHOW$3);\n\n var callbackRemove = function callbackRemove() {\n _this9._removeBackdrop();\n\n if (callback) {\n callback();\n }\n };\n\n if ($__default['default'](this._element).hasClass(CLASS_NAME_FADE$1)) {\n var _backdropTransitionDuration = Util.getTransitionDurationFromElement(this._backdrop);\n\n $__default['default'](this._backdrop).one(Util.TRANSITION_END, callbackRemove).emulateTransitionEnd(_backdropTransitionDuration);\n } else {\n callbackRemove();\n }\n } else if (callback) {\n callback();\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\n _proto._adjustDialog = function _adjustDialog() {\n var isModalOverflowing = this._element.scrollHeight > document.documentElement.clientHeight;\n\n if (!this._isBodyOverflowing && isModalOverflowing) {\n this._element.style.paddingLeft = this._scrollbarWidth + \"px\";\n }\n\n if (this._isBodyOverflowing && !isModalOverflowing) {\n this._element.style.paddingRight = this._scrollbarWidth + \"px\";\n }\n };\n\n _proto._resetAdjustments = function _resetAdjustments() {\n this._element.style.paddingLeft = '';\n this._element.style.paddingRight = '';\n };\n\n _proto._checkScrollbar = function _checkScrollbar() {\n var rect = document.body.getBoundingClientRect();\n this._isBodyOverflowing = Math.round(rect.left + rect.right) < window.innerWidth;\n this._scrollbarWidth = this._getScrollbarWidth();\n };\n\n _proto._setScrollbar = function _setScrollbar() {\n var _this10 = this;\n\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 var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n var stickyContent = [].slice.call(document.querySelectorAll(SELECTOR_STICKY_CONTENT)); // Adjust fixed content padding\n\n $__default['default'](fixedContent).each(function (index, element) {\n var actualPadding = element.style.paddingRight;\n var calculatedPadding = $__default['default'](element).css('padding-right');\n $__default['default'](element).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + _this10._scrollbarWidth + \"px\");\n }); // Adjust sticky content margin\n\n $__default['default'](stickyContent).each(function (index, element) {\n var actualMargin = element.style.marginRight;\n var calculatedMargin = $__default['default'](element).css('margin-right');\n $__default['default'](element).data('margin-right', actualMargin).css('margin-right', parseFloat(calculatedMargin) - _this10._scrollbarWidth + \"px\");\n }); // Adjust body padding\n\n var actualPadding = document.body.style.paddingRight;\n var calculatedPadding = $__default['default'](document.body).css('padding-right');\n $__default['default'](document.body).data('padding-right', actualPadding).css('padding-right', parseFloat(calculatedPadding) + this._scrollbarWidth + \"px\");\n }\n\n $__default['default'](document.body).addClass(CLASS_NAME_OPEN);\n };\n\n _proto._resetScrollbar = function _resetScrollbar() {\n // Restore fixed content padding\n var fixedContent = [].slice.call(document.querySelectorAll(SELECTOR_FIXED_CONTENT));\n $__default['default'](fixedContent).each(function (index, element) {\n var padding = $__default['default'](element).data('padding-right');\n $__default['default'](element).removeData('padding-right');\n element.style.paddingRight = padding ? padding : '';\n }); // Restore sticky content\n\n var elements = [].slice.call(document.querySelectorAll(\"\" + SELECTOR_STICKY_CONTENT));\n $__default['default'](elements).each(function (index, element) {\n var margin = $__default['default'](element).data('margin-right');\n\n if (typeof margin !== 'undefined') {\n $__default['default'](element).css('margin-right', margin).removeData('margin-right');\n }\n }); // Restore body padding\n\n var padding = $__default['default'](document.body).data('padding-right');\n $__default['default'](document.body).removeData('padding-right');\n document.body.style.paddingRight = padding ? padding : '';\n };\n\n _proto._getScrollbarWidth = function _getScrollbarWidth() {\n // thx d.walsh\n var scrollDiv = document.createElement('div');\n scrollDiv.className = CLASS_NAME_SCROLLBAR_MEASURER;\n document.body.appendChild(scrollDiv);\n var scrollbarWidth = scrollDiv.getBoundingClientRect().width - scrollDiv.clientWidth;\n document.body.removeChild(scrollDiv);\n return scrollbarWidth;\n } // Static\n ;\n\n Modal._jQueryInterface = function _jQueryInterface(config, relatedTarget) {\n return this.each(function () {\n var data = $__default['default'](this).data(DATA_KEY$5);\n\n var _config = _extends({}, Default$3, $__default['default'](this).data(), typeof config === 'object' && config ? config : {});\n\n if (!data) {\n data = new Modal(this, _config);\n $__default['default'](this).data(DATA_KEY$5, 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](relatedTarget);\n } else if (_config.show) {\n data.show(relatedTarget);\n }\n });\n };\n\n _createClass(Modal, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$5;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$3;\n }\n }]);\n\n return Modal;\n }();\n /**\n * ------------------------------------------------------------------------\n * Data Api implementation\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'](document).on(EVENT_CLICK_DATA_API$5, SELECTOR_DATA_TOGGLE$3, function (event) {\n var _this11 = this;\n\n var target;\n var selector = Util.getSelectorFromElement(this);\n\n if (selector) {\n target = document.querySelector(selector);\n }\n\n var config = $__default['default'](target).data(DATA_KEY$5) ? 'toggle' : _extends({}, $__default['default'](target).data(), $__default['default'](this).data());\n\n if (this.tagName === 'A' || this.tagName === 'AREA') {\n event.preventDefault();\n }\n\n var $target = $__default['default'](target).one(EVENT_SHOW$2, function (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$2, function () {\n if ($__default['default'](_this11).is(':visible')) {\n _this11.focus();\n }\n });\n });\n\n Modal._jQueryInterface.call($__default['default'](target), config, this);\n });\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n $__default['default'].fn[NAME$5] = Modal._jQueryInterface;\n $__default['default'].fn[NAME$5].Constructor = Modal;\n\n $__default['default'].fn[NAME$5].noConflict = function () {\n $__default['default'].fn[NAME$5] = JQUERY_NO_CONFLICT$5;\n return Modal._jQueryInterface;\n };\n\n /**\n * --------------------------------------------------------------------------\n * Bootstrap (v4.6.0): tools/sanitizer.js\n * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)\n * --------------------------------------------------------------------------\n */\n var uriAttrs = ['background', 'cite', 'href', 'itemtype', 'longdesc', 'poster', 'src', 'xlink:href'];\n var ARIA_ATTRIBUTE_PATTERN = /^aria-[\\w-]*$/i;\n var 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', 'srcset', '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 * 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 */\n\n var SAFE_URL_PATTERN = /^(?:(?:https?|mailto|ftp|tel|file):|[^#&/:?]*(?:[#/?]|$))/gi;\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 */\n\n var DATA_URL_PATTERN = /^data:(?:image\\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|video\\/(?:mpeg|mp4|ogg|webm)|audio\\/(?:mp3|oga|ogg|opus));base64,[\\d+/a-z]+=*$/i;\n\n function allowedAttribute(attr, allowedAttributeList) {\n var 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 var regExp = allowedAttributeList.filter(function (attrRegex) {\n return attrRegex instanceof RegExp;\n }); // Check if a regular expression validates the attribute.\n\n for (var i = 0, len = regExp.length; i < len; i++) {\n if (attrName.match(regExp[i])) {\n return true;\n }\n }\n\n return false;\n }\n\n 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 var domParser = new window.DOMParser();\n var createdDocument = domParser.parseFromString(unsafeHtml, 'text/html');\n var whitelistKeys = Object.keys(whiteList);\n var elements = [].slice.call(createdDocument.body.querySelectorAll('*'));\n\n var _loop = function _loop(i, len) {\n var el = elements[i];\n var elName = el.nodeName.toLowerCase();\n\n if (whitelistKeys.indexOf(el.nodeName.toLowerCase()) === -1) {\n el.parentNode.removeChild(el);\n return \"continue\";\n }\n\n var attributeList = [].slice.call(el.attributes);\n var whitelistedAttributes = [].concat(whiteList['*'] || [], whiteList[elName] || []);\n attributeList.forEach(function (attr) {\n if (!allowedAttribute(attr, whitelistedAttributes)) {\n el.removeAttribute(attr.nodeName);\n }\n });\n };\n\n for (var i = 0, len = elements.length; i < len; i++) {\n var _ret = _loop(i);\n\n if (_ret === \"continue\") continue;\n }\n\n return createdDocument.body.innerHTML;\n }\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$6 = 'tooltip';\n var VERSION$6 = '4.6.0';\n var DATA_KEY$6 = 'bs.tooltip';\n var EVENT_KEY$6 = \".\" + DATA_KEY$6;\n var JQUERY_NO_CONFLICT$6 = $__default['default'].fn[NAME$6];\n var CLASS_PREFIX = 'bs-tooltip';\n var BSCLS_PREFIX_REGEX = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX + \"\\\\S+\", 'g');\n var DISALLOWED_ATTRIBUTES = ['sanitize', 'whiteList', 'sanitizeFn'];\n var DefaultType$4 = {\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 customClass: '(string|function)',\n sanitize: 'boolean',\n sanitizeFn: '(null|function)',\n whiteList: 'object',\n popperConfig: '(null|object)'\n };\n var AttachmentMap = {\n AUTO: 'auto',\n TOP: 'top',\n RIGHT: 'right',\n BOTTOM: 'bottom',\n LEFT: 'left'\n };\n var Default$4 = {\n animation: true,\n template: '
' + '
' + '
',\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 customClass: '',\n sanitize: true,\n sanitizeFn: null,\n whiteList: DefaultWhitelist,\n popperConfig: null\n };\n var HOVER_STATE_SHOW = 'show';\n var HOVER_STATE_OUT = 'out';\n var Event = {\n HIDE: \"hide\" + EVENT_KEY$6,\n HIDDEN: \"hidden\" + EVENT_KEY$6,\n SHOW: \"show\" + EVENT_KEY$6,\n SHOWN: \"shown\" + EVENT_KEY$6,\n INSERTED: \"inserted\" + EVENT_KEY$6,\n CLICK: \"click\" + EVENT_KEY$6,\n FOCUSIN: \"focusin\" + EVENT_KEY$6,\n FOCUSOUT: \"focusout\" + EVENT_KEY$6,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY$6,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY$6\n };\n var CLASS_NAME_FADE$2 = 'fade';\n var CLASS_NAME_SHOW$4 = 'show';\n var SELECTOR_TOOLTIP_INNER = '.tooltip-inner';\n var SELECTOR_ARROW = '.arrow';\n var TRIGGER_HOVER = 'hover';\n var TRIGGER_FOCUS = 'focus';\n var TRIGGER_CLICK = 'click';\n var TRIGGER_MANUAL = 'manual';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Tooltip = /*#__PURE__*/function () {\n function Tooltip(element, config) {\n if (typeof Popper__default['default'] === 'undefined') {\n throw new TypeError('Bootstrap\\'s tooltips require Popper (https://popper.js.org)');\n } // private\n\n\n this._isEnabled = true;\n this._timeout = 0;\n this._hoverState = '';\n this._activeTrigger = {};\n this._popper = null; // Protected\n\n this.element = element;\n this.config = this._getConfig(config);\n this.tip = null;\n\n this._setListeners();\n } // Getters\n\n\n var _proto = Tooltip.prototype;\n\n // Public\n _proto.enable = function enable() {\n this._isEnabled = true;\n };\n\n _proto.disable = function disable() {\n this._isEnabled = false;\n };\n\n _proto.toggleEnabled = function toggleEnabled() {\n this._isEnabled = !this._isEnabled;\n };\n\n _proto.toggle = function toggle(event) {\n if (!this._isEnabled) {\n return;\n }\n\n if (event) {\n var dataKey = this.constructor.DATA_KEY;\n var context = $__default['default'](event.currentTarget).data(dataKey);\n\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $__default['default'](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 ($__default['default'](this.getTipElement()).hasClass(CLASS_NAME_SHOW$4)) {\n this._leave(null, this);\n\n return;\n }\n\n this._enter(null, this);\n }\n };\n\n _proto.dispose = function dispose() {\n clearTimeout(this._timeout);\n $__default['default'].removeData(this.element, this.constructor.DATA_KEY);\n $__default['default'](this.element).off(this.constructor.EVENT_KEY);\n $__default['default'](this.element).closest('.modal').off('hide.bs.modal', this._hideModalHandler);\n\n if (this.tip) {\n $__default['default'](this.tip).remove();\n }\n\n this._isEnabled = null;\n this._timeout = null;\n this._hoverState = null;\n this._activeTrigger = null;\n\n if (this._popper) {\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 _proto.show = function show() {\n var _this = this;\n\n if ($__default['default'](this.element).css('display') === 'none') {\n throw new Error('Please use show on visible elements');\n }\n\n var showEvent = $__default['default'].Event(this.constructor.Event.SHOW);\n\n if (this.isWithContent() && this._isEnabled) {\n $__default['default'](this.element).trigger(showEvent);\n var shadowRoot = Util.findShadowRoot(this.element);\n var isInTheDom = $__default['default'].contains(shadowRoot !== null ? shadowRoot : this.element.ownerDocument.documentElement, this.element);\n\n if (showEvent.isDefaultPrevented() || !isInTheDom) {\n return;\n }\n\n var tip = this.getTipElement();\n var tipId = Util.getUID(this.constructor.NAME);\n tip.setAttribute('id', tipId);\n this.element.setAttribute('aria-describedby', tipId);\n this.setContent();\n\n if (this.config.animation) {\n $__default['default'](tip).addClass(CLASS_NAME_FADE$2);\n }\n\n var placement = typeof this.config.placement === 'function' ? this.config.placement.call(this, tip, this.element) : this.config.placement;\n\n var attachment = this._getAttachment(placement);\n\n this.addAttachmentClass(attachment);\n\n var container = this._getContainer();\n\n $__default['default'](tip).data(this.constructor.DATA_KEY, this);\n\n if (!$__default['default'].contains(this.element.ownerDocument.documentElement, this.tip)) {\n $__default['default'](tip).appendTo(container);\n }\n\n $__default['default'](this.element).trigger(this.constructor.Event.INSERTED);\n this._popper = new Popper__default['default'](this.element, tip, this._getPopperConfig(attachment));\n $__default['default'](tip).addClass(CLASS_NAME_SHOW$4);\n $__default['default'](tip).addClass(this.config.customClass); // 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\n if ('ontouchstart' in document.documentElement) {\n $__default['default'](document.body).children().on('mouseover', null, $__default['default'].noop);\n }\n\n var complete = function complete() {\n if (_this.config.animation) {\n _this._fixTransition();\n }\n\n var prevHoverState = _this._hoverState;\n _this._hoverState = null;\n $__default['default'](_this.element).trigger(_this.constructor.Event.SHOWN);\n\n if (prevHoverState === HOVER_STATE_OUT) {\n _this._leave(null, _this);\n }\n };\n\n if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE$2)) {\n var transitionDuration = Util.getTransitionDurationFromElement(this.tip);\n $__default['default'](this.tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n }\n };\n\n _proto.hide = function hide(callback) {\n var _this2 = this;\n\n var tip = this.getTipElement();\n var hideEvent = $__default['default'].Event(this.constructor.Event.HIDE);\n\n var complete = function complete() {\n if (_this2._hoverState !== HOVER_STATE_SHOW && tip.parentNode) {\n tip.parentNode.removeChild(tip);\n }\n\n _this2._cleanTipClass();\n\n _this2.element.removeAttribute('aria-describedby');\n\n $__default['default'](_this2.element).trigger(_this2.constructor.Event.HIDDEN);\n\n if (_this2._popper !== null) {\n _this2._popper.destroy();\n }\n\n if (callback) {\n callback();\n }\n };\n\n $__default['default'](this.element).trigger(hideEvent);\n\n if (hideEvent.isDefaultPrevented()) {\n return;\n }\n\n $__default['default'](tip).removeClass(CLASS_NAME_SHOW$4); // If this is a touch-enabled device we remove the extra\n // empty mouseover listeners we added for iOS support\n\n if ('ontouchstart' in document.documentElement) {\n $__default['default'](document.body).children().off('mouseover', null, $__default['default'].noop);\n }\n\n this._activeTrigger[TRIGGER_CLICK] = false;\n this._activeTrigger[TRIGGER_FOCUS] = false;\n this._activeTrigger[TRIGGER_HOVER] = false;\n\n if ($__default['default'](this.tip).hasClass(CLASS_NAME_FADE$2)) {\n var transitionDuration = Util.getTransitionDurationFromElement(tip);\n $__default['default'](tip).one(Util.TRANSITION_END, complete).emulateTransitionEnd(transitionDuration);\n } else {\n complete();\n }\n\n this._hoverState = '';\n };\n\n _proto.update = function update() {\n if (this._popper !== null) {\n this._popper.scheduleUpdate();\n }\n } // Protected\n ;\n\n _proto.isWithContent = function isWithContent() {\n return Boolean(this.getTitle());\n };\n\n _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX + \"-\" + attachment);\n };\n\n _proto.getTipElement = function getTipElement() {\n this.tip = this.tip || $__default['default'](this.config.template)[0];\n return this.tip;\n };\n\n _proto.setContent = function setContent() {\n var tip = this.getTipElement();\n this.setElementContent($__default['default'](tip.querySelectorAll(SELECTOR_TOOLTIP_INNER)), this.getTitle());\n $__default['default'](tip).removeClass(CLASS_NAME_FADE$2 + \" \" + CLASS_NAME_SHOW$4);\n };\n\n _proto.setElementContent = function 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 (!$__default['default'](content).parent().is($element)) {\n $element.empty().append(content);\n }\n } else {\n $element.text($__default['default'](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 _proto.getTitle = function getTitle() {\n var title = this.element.getAttribute('data-original-title');\n\n if (!title) {\n title = typeof this.config.title === 'function' ? this.config.title.call(this.element) : this.config.title;\n }\n\n return title;\n } // Private\n ;\n\n _proto._getPopperConfig = function _getPopperConfig(attachment) {\n var _this3 = this;\n\n var defaultBsConfig = {\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: function onCreate(data) {\n if (data.originalPlacement !== data.placement) {\n _this3._handlePopperPlacementChange(data);\n }\n },\n onUpdate: function onUpdate(data) {\n return _this3._handlePopperPlacementChange(data);\n }\n };\n return _extends({}, defaultBsConfig, this.config.popperConfig);\n };\n\n _proto._getOffset = function _getOffset() {\n var _this4 = this;\n\n var offset = {};\n\n if (typeof this.config.offset === 'function') {\n offset.fn = function (data) {\n data.offsets = _extends({}, data.offsets, _this4.config.offset(data.offsets, _this4.element) || {});\n return data;\n };\n } else {\n offset.offset = this.config.offset;\n }\n\n return offset;\n };\n\n _proto._getContainer = function _getContainer() {\n if (this.config.container === false) {\n return document.body;\n }\n\n if (Util.isElement(this.config.container)) {\n return $__default['default'](this.config.container);\n }\n\n return $__default['default'](document).find(this.config.container);\n };\n\n _proto._getAttachment = function _getAttachment(placement) {\n return AttachmentMap[placement.toUpperCase()];\n };\n\n _proto._setListeners = function _setListeners() {\n var _this5 = this;\n\n var triggers = this.config.trigger.split(' ');\n triggers.forEach(function (trigger) {\n if (trigger === 'click') {\n $__default['default'](_this5.element).on(_this5.constructor.Event.CLICK, _this5.config.selector, function (event) {\n return _this5.toggle(event);\n });\n } else if (trigger !== TRIGGER_MANUAL) {\n var eventIn = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSEENTER : _this5.constructor.Event.FOCUSIN;\n var eventOut = trigger === TRIGGER_HOVER ? _this5.constructor.Event.MOUSELEAVE : _this5.constructor.Event.FOCUSOUT;\n $__default['default'](_this5.element).on(eventIn, _this5.config.selector, function (event) {\n return _this5._enter(event);\n }).on(eventOut, _this5.config.selector, function (event) {\n return _this5._leave(event);\n });\n }\n });\n\n this._hideModalHandler = function () {\n if (_this5.element) {\n _this5.hide();\n }\n };\n\n $__default['default'](this.element).closest('.modal').on('hide.bs.modal', this._hideModalHandler);\n\n if (this.config.selector) {\n this.config = _extends({}, this.config, {\n trigger: 'manual',\n selector: ''\n });\n } else {\n this._fixTitle();\n }\n };\n\n _proto._fixTitle = function _fixTitle() {\n var titleType = typeof this.element.getAttribute('data-original-title');\n\n if (this.element.getAttribute('title') || titleType !== 'string') {\n this.element.setAttribute('data-original-title', this.element.getAttribute('title') || '');\n this.element.setAttribute('title', '');\n }\n };\n\n _proto._enter = function _enter(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || $__default['default'](event.currentTarget).data(dataKey);\n\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $__default['default'](event.currentTarget).data(dataKey, context);\n }\n\n if (event) {\n context._activeTrigger[event.type === 'focusin' ? TRIGGER_FOCUS : TRIGGER_HOVER] = true;\n }\n\n if ($__default['default'](context.getTipElement()).hasClass(CLASS_NAME_SHOW$4) || context._hoverState === HOVER_STATE_SHOW) {\n context._hoverState = HOVER_STATE_SHOW;\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_SHOW;\n\n if (!context.config.delay || !context.config.delay.show) {\n context.show();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HOVER_STATE_SHOW) {\n context.show();\n }\n }, context.config.delay.show);\n };\n\n _proto._leave = function _leave(event, context) {\n var dataKey = this.constructor.DATA_KEY;\n context = context || $__default['default'](event.currentTarget).data(dataKey);\n\n if (!context) {\n context = new this.constructor(event.currentTarget, this._getDelegateConfig());\n $__default['default'](event.currentTarget).data(dataKey, context);\n }\n\n if (event) {\n context._activeTrigger[event.type === 'focusout' ? TRIGGER_FOCUS : TRIGGER_HOVER] = false;\n }\n\n if (context._isWithActiveTrigger()) {\n return;\n }\n\n clearTimeout(context._timeout);\n context._hoverState = HOVER_STATE_OUT;\n\n if (!context.config.delay || !context.config.delay.hide) {\n context.hide();\n return;\n }\n\n context._timeout = setTimeout(function () {\n if (context._hoverState === HOVER_STATE_OUT) {\n context.hide();\n }\n }, context.config.delay.hide);\n };\n\n _proto._isWithActiveTrigger = function _isWithActiveTrigger() {\n for (var trigger in this._activeTrigger) {\n if (this._activeTrigger[trigger]) {\n return true;\n }\n }\n\n return false;\n };\n\n _proto._getConfig = function _getConfig(config) {\n var dataAttributes = $__default['default'](this.element).data();\n Object.keys(dataAttributes).forEach(function (dataAttr) {\n if (DISALLOWED_ATTRIBUTES.indexOf(dataAttr) !== -1) {\n delete dataAttributes[dataAttr];\n }\n });\n config = _extends({}, this.constructor.Default, dataAttributes, typeof config === 'object' && config ? config : {});\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(NAME$6, config, this.constructor.DefaultType);\n\n if (config.sanitize) {\n config.template = sanitizeHtml(config.template, config.whiteList, config.sanitizeFn);\n }\n\n return config;\n };\n\n _proto._getDelegateConfig = function _getDelegateConfig() {\n var config = {};\n\n if (this.config) {\n for (var 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 _proto._cleanTipClass = function _cleanTipClass() {\n var $tip = $__default['default'](this.getTipElement());\n var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);\n\n if (tabClass !== null && tabClass.length) {\n $tip.removeClass(tabClass.join(''));\n }\n };\n\n _proto._handlePopperPlacementChange = function _handlePopperPlacementChange(popperData) {\n this.tip = popperData.instance.popper;\n\n this._cleanTipClass();\n\n this.addAttachmentClass(this._getAttachment(popperData.placement));\n };\n\n _proto._fixTransition = function _fixTransition() {\n var tip = this.getTipElement();\n var initConfigAnimation = this.config.animation;\n\n if (tip.getAttribute('x-placement') !== null) {\n return;\n }\n\n $__default['default'](tip).removeClass(CLASS_NAME_FADE$2);\n this.config.animation = false;\n this.hide();\n this.show();\n this.config.animation = initConfigAnimation;\n } // Static\n ;\n\n Tooltip._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var $element = $__default['default'](this);\n var data = $element.data(DATA_KEY$6);\n\n var _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 $element.data(DATA_KEY$6, 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]();\n }\n });\n };\n\n _createClass(Tooltip, null, [{\n key: \"VERSION\",\n get: function get() {\n return VERSION$6;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$4;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$6;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY$6;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY$6;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$4;\n }\n }]);\n\n return Tooltip;\n }();\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'].fn[NAME$6] = Tooltip._jQueryInterface;\n $__default['default'].fn[NAME$6].Constructor = Tooltip;\n\n $__default['default'].fn[NAME$6].noConflict = function () {\n $__default['default'].fn[NAME$6] = JQUERY_NO_CONFLICT$6;\n return Tooltip._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$7 = 'popover';\n var VERSION$7 = '4.6.0';\n var DATA_KEY$7 = 'bs.popover';\n var EVENT_KEY$7 = \".\" + DATA_KEY$7;\n var JQUERY_NO_CONFLICT$7 = $__default['default'].fn[NAME$7];\n var CLASS_PREFIX$1 = 'bs-popover';\n var BSCLS_PREFIX_REGEX$1 = new RegExp(\"(^|\\\\s)\" + CLASS_PREFIX$1 + \"\\\\S+\", 'g');\n\n var Default$5 = _extends({}, Tooltip.Default, {\n placement: 'right',\n trigger: 'click',\n content: '',\n template: '
' + '
' + '

' + '
'\n });\n\n var DefaultType$5 = _extends({}, Tooltip.DefaultType, {\n content: '(string|element|function)'\n });\n\n var CLASS_NAME_FADE$3 = 'fade';\n var CLASS_NAME_SHOW$5 = 'show';\n var SELECTOR_TITLE = '.popover-header';\n var SELECTOR_CONTENT = '.popover-body';\n var Event$1 = {\n HIDE: \"hide\" + EVENT_KEY$7,\n HIDDEN: \"hidden\" + EVENT_KEY$7,\n SHOW: \"show\" + EVENT_KEY$7,\n SHOWN: \"shown\" + EVENT_KEY$7,\n INSERTED: \"inserted\" + EVENT_KEY$7,\n CLICK: \"click\" + EVENT_KEY$7,\n FOCUSIN: \"focusin\" + EVENT_KEY$7,\n FOCUSOUT: \"focusout\" + EVENT_KEY$7,\n MOUSEENTER: \"mouseenter\" + EVENT_KEY$7,\n MOUSELEAVE: \"mouseleave\" + EVENT_KEY$7\n };\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var Popover = /*#__PURE__*/function (_Tooltip) {\n _inheritsLoose(Popover, _Tooltip);\n\n function Popover() {\n return _Tooltip.apply(this, arguments) || this;\n }\n\n var _proto = Popover.prototype;\n\n // Overrides\n _proto.isWithContent = function isWithContent() {\n return this.getTitle() || this._getContent();\n };\n\n _proto.addAttachmentClass = function addAttachmentClass(attachment) {\n $__default['default'](this.getTipElement()).addClass(CLASS_PREFIX$1 + \"-\" + attachment);\n };\n\n _proto.getTipElement = function getTipElement() {\n this.tip = this.tip || $__default['default'](this.config.template)[0];\n return this.tip;\n };\n\n _proto.setContent = function setContent() {\n var $tip = $__default['default'](this.getTipElement()); // We use append for html objects to maintain js events\n\n this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());\n\n var content = this._getContent();\n\n if (typeof content === 'function') {\n content = content.call(this.element);\n }\n\n this.setElementContent($tip.find(SELECTOR_CONTENT), content);\n $tip.removeClass(CLASS_NAME_FADE$3 + \" \" + CLASS_NAME_SHOW$5);\n } // Private\n ;\n\n _proto._getContent = function _getContent() {\n return this.element.getAttribute('data-content') || this.config.content;\n };\n\n _proto._cleanTipClass = function _cleanTipClass() {\n var $tip = $__default['default'](this.getTipElement());\n var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX$1);\n\n if (tabClass !== null && tabClass.length > 0) {\n $tip.removeClass(tabClass.join(''));\n }\n } // Static\n ;\n\n Popover._jQueryInterface = function _jQueryInterface(config) {\n return this.each(function () {\n var data = $__default['default'](this).data(DATA_KEY$7);\n\n var _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 $__default['default'](this).data(DATA_KEY$7, 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]();\n }\n });\n };\n\n _createClass(Popover, null, [{\n key: \"VERSION\",\n // Getters\n get: function get() {\n return VERSION$7;\n }\n }, {\n key: \"Default\",\n get: function get() {\n return Default$5;\n }\n }, {\n key: \"NAME\",\n get: function get() {\n return NAME$7;\n }\n }, {\n key: \"DATA_KEY\",\n get: function get() {\n return DATA_KEY$7;\n }\n }, {\n key: \"Event\",\n get: function get() {\n return Event$1;\n }\n }, {\n key: \"EVENT_KEY\",\n get: function get() {\n return EVENT_KEY$7;\n }\n }, {\n key: \"DefaultType\",\n get: function get() {\n return DefaultType$5;\n }\n }]);\n\n return Popover;\n }(Tooltip);\n /**\n * ------------------------------------------------------------------------\n * jQuery\n * ------------------------------------------------------------------------\n */\n\n\n $__default['default'].fn[NAME$7] = Popover._jQueryInterface;\n $__default['default'].fn[NAME$7].Constructor = Popover;\n\n $__default['default'].fn[NAME$7].noConflict = function () {\n $__default['default'].fn[NAME$7] = JQUERY_NO_CONFLICT$7;\n return Popover._jQueryInterface;\n };\n\n /**\n * ------------------------------------------------------------------------\n * Constants\n * ------------------------------------------------------------------------\n */\n\n var NAME$8 = 'scrollspy';\n var VERSION$8 = '4.6.0';\n var DATA_KEY$8 = 'bs.scrollspy';\n var EVENT_KEY$8 = \".\" + DATA_KEY$8;\n var DATA_API_KEY$6 = '.data-api';\n var JQUERY_NO_CONFLICT$8 = $__default['default'].fn[NAME$8];\n var Default$6 = {\n offset: 10,\n method: 'auto',\n target: ''\n };\n var DefaultType$6 = {\n offset: 'number',\n method: 'string',\n target: '(string|element)'\n };\n var EVENT_ACTIVATE = \"activate\" + EVENT_KEY$8;\n var EVENT_SCROLL = \"scroll\" + EVENT_KEY$8;\n var EVENT_LOAD_DATA_API$2 = \"load\" + EVENT_KEY$8 + DATA_API_KEY$6;\n var CLASS_NAME_DROPDOWN_ITEM = 'dropdown-item';\n var CLASS_NAME_ACTIVE$2 = 'active';\n var SELECTOR_DATA_SPY = '[data-spy=\"scroll\"]';\n var SELECTOR_NAV_LIST_GROUP = '.nav, .list-group';\n var SELECTOR_NAV_LINKS = '.nav-link';\n var SELECTOR_NAV_ITEMS = '.nav-item';\n var SELECTOR_LIST_ITEMS = '.list-group-item';\n var SELECTOR_DROPDOWN = '.dropdown';\n var SELECTOR_DROPDOWN_ITEMS = '.dropdown-item';\n var SELECTOR_DROPDOWN_TOGGLE = '.dropdown-toggle';\n var METHOD_OFFSET = 'offset';\n var METHOD_POSITION = 'position';\n /**\n * ------------------------------------------------------------------------\n * Class Definition\n * ------------------------------------------------------------------------\n */\n\n var ScrollSpy = /*#__PURE__*/function () {\n function ScrollSpy(element, config) {\n var _this = this;\n\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 + \",\" + (this._config.target + \" \" + SELECTOR_LIST_ITEMS + \",\") + (this._config.target + \" \" + SELECTOR_DROPDOWN_ITEMS);\n this._offsets = [];\n this._targets = [];\n this._activeTarget = null;\n this._scrollHeight = 0;\n $__default['default'](this._scrollElement).on(EVENT_SCROLL, function (event) {\n return _this._process(event);\n });\n this.refresh();\n\n this._process();\n } // Getters\n\n\n var _proto = ScrollSpy.prototype;\n\n // Public\n _proto.refresh = function refresh() {\n var _this2 = this;\n\n var autoMethod = this._scrollElement === this._scrollElement.window ? METHOD_OFFSET : METHOD_POSITION;\n var offsetMethod = this._config.method === 'auto' ? autoMethod : this._config.method;\n var offsetBase = offsetMethod === METHOD_POSITION ? this._getScrollTop() : 0;\n this._offsets = [];\n this._targets = [];\n this._scrollHeight = this._getScrollHeight();\n var targets = [].slice.call(document.querySelectorAll(this._selector));\n targets.map(function (element) {\n var target;\n var targetSelector = Util.getSelectorFromElement(element);\n\n if (targetSelector) {\n target = document.querySelector(targetSelector);\n }\n\n if (target) {\n var targetBCR = target.getBoundingClientRect();\n\n if (targetBCR.width || targetBCR.height) {\n // TODO (fat): remove sketch reliance on jQuery position/offset\n return [$__default['default'](target)[offsetMethod]().top + offsetBase, targetSelector];\n }\n }\n\n return null;\n }).filter(function (item) {\n return item;\n }).sort(function (a, b) {\n return a[0] - b[0];\n }).forEach(function (item) {\n _this2._offsets.push(item[0]);\n\n _this2._targets.push(item[1]);\n });\n };\n\n _proto.dispose = function dispose() {\n $__default['default'].removeData(this._element, DATA_KEY$8);\n $__default['default'](this._scrollElement).off(EVENT_KEY$8);\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 } // Private\n ;\n\n _proto._getConfig = function _getConfig(config) {\n config = _extends({}, Default$6, typeof config === 'object' && config ? config : {});\n\n if (typeof config.target !== 'string' && Util.isElement(config.target)) {\n var id = $__default['default'](config.target).attr('id');\n\n if (!id) {\n id = Util.getUID(NAME$8);\n $__default['default'](config.target).attr('id', id);\n }\n\n config.target = \"#\" + id;\n }\n\n Util.typeCheckConfig(NAME$8, config, DefaultType$6);\n return config;\n };\n\n _proto._getScrollTop = function _getScrollTop() {\n return this._scrollElement === window ? this._scrollElement.pageYOffset : this._scrollElement.scrollTop;\n };\n\n _proto._getScrollHeight = function _getScrollHeight() {\n return this._scrollElement.scrollHeight || Math.max(document.body.scrollHeight, document.documentElement.scrollHeight);\n };\n\n _proto._getOffsetHeight = function _getOffsetHeight() {\n return this._scrollElement === window ? window.innerHeight : this._scrollElement.getBoundingClientRect().height;\n };\n\n _proto._process = function _process() {\n var scrollTop = this._getScrollTop() + this._config.offset;\n\n var scrollHeight = this._getScrollHeight();\n\n var maxScroll = this._config.offset + scrollHeight - this._getOffsetHeight();\n\n if (this._scrollHeight !== scrollHeight) {\n this.refresh();\n }\n\n if (scrollTop >= maxScroll) {\n var target = this._targets[this._targets.length - 1];\n\n if (this._activeTarget !== target) {\n this._activate(target);\n }\n\n return;\n }\n\n if (this._activeTarget && scrollTop < this._offsets[0] && this._offsets[0] > 0) {\n this._activeTarget = null;\n\n this._clear();\n\n return;\n }\n\n for (var i = this._offsets.length; i--;) {\n var isActiveTarget = this._activeTarget !== this._targets[i] && scrollTop >= this._offsets[i] && (typeof this._offsets[i + 1] === 'undefined' || scrollTop < this._offsets[i + 1]);\n\n if (isActiveTarget) {\n this._activate(this._targets[i]);\n }\n }\n };\n\n _proto._activate = function _activate(target) {\n this._activeTarget = target;\n\n this._clear();\n\n var queries = this._selector.split(',').map(function (selector) {\n return selector + \"[data-target=\\\"\" + target + \"\\\"],\" + selector + \"[href=\\\"\" + target + \"\\\"]\";\n });\n\n var $link = $__default['default']([].slice.call(document.querySelectorAll(queries.join(','))));\n\n if ($link.hasClass(CLASS_NAME_DROPDOWN_ITEM)) {\n $link.closest(SELECTOR_DROPDOWN).find(SELECTOR_DROPDOWN_TOGGLE).addClass(CLASS_NAME_ACTIVE$2);\n $link.addClass(CLASS_NAME_ACTIVE$2);\n } else {\n // Set triggered link as active\n $link.addClass(CLASS_NAME_ACTIVE$2); // Set triggered links parents as active\n // With both