{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./app/javascript/images/remember-logo-full.png","webpack:///(webpack)/buildin/module.js","webpack:///./app/javascript/images/icon-call.svg","webpack:///./app/javascript/images/icon-cog.svg","webpack:///./app/javascript/images/icon-date.svg","webpack:///./app/javascript/images/icon-dial-icon.svg","webpack:///./app/javascript/images/icon-keyword-search.svg","webpack:///./app/javascript/images/icon-phone-inbound.svg","webpack:///./app/javascript/images/icon-phone-outbound.svg","webpack:///./app/javascript/images/icon-time.svg","webpack:///./app/javascript/images/icon-transcribe.svg","webpack:///./app/javascript/images/icon-user.svg","webpack:///./app/javascript/images/remember-favicon.png","webpack:///./app/javascript/images/remember-logo.svg","webpack:///./node_modules/headroom.js/dist/headroom.js","webpack:///./node_modules/popper.js/dist/esm/popper.js","webpack:///./node_modules/mark.js/dist/mark.js","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/turbolinks/dist/turbolinks.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./app/javascript/images sync ^\\.\\/.*$","webpack:///./app/javascript/images/remember-logo-full.svg","webpack:///./app/javascript/stripe/index.js","webpack:///./app/javascript/call-details.js","webpack:///./app/javascript/add-card.js","webpack:///./app/javascript/cloud-select.js","webpack:///./app/javascript/dial-icon-hide.js","webpack:///./app/javascript/multi-form.js","webpack:///(webpack)/buildin/global.js","webpack:///./app/javascript/header-hide.js","webpack:///./node_modules/tippy.js/dist/tippy.chunk.esm.js","webpack:///./app/javascript/tool-tips.js","webpack:///./app/javascript/transcript-search.js","webpack:///./app/javascript/packs/application.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","webpackPolyfill","deprecate","paths","children","factory","_typeof","iterator","obj","constructor","isBrowser","window","createScroller","element","document","nodeType","isDocument","doc","win","body","html","documentElement","scrollHeight","Math","max","offsetHeight","clientHeight","height","innerHeight","scrollY","undefined","pageYOffset","parentNode","scrollTop","elementScroller","trackScroll","options","callback","rafId","isPassiveSupported","supported","addEventListener","removeEventListener","err","passiveEventsSupported","scrolled","scroller","lastScrollY","details","update","round","direction","distance","abs","isOutOfBounds","top","offset","bottom","toleranceExceeded","tolerance","handleScroll","requestAnimationFrame","eventOptions","passive","capture","destroy","cancelAnimationFrame","Headroom","elem","assign","this","classes","down","up","initialised","frozen","init","cutsTheMustard","addClass","setTimeout","self","scrollTracker","keys","forEach","removeClass","unpin","hasClass","onUnpin","pin","onPin","freeze","unfreeze","onTop","notTop","onNotTop","onBottom","notBottom","onNotBottom","shouldUnpin","shouldPin","className","classList","add","remove","contains","pinned","unpinned","initial","navigator","timeoutDuration","longerTimeoutBrowsers","length","userAgent","indexOf","debounce","Promise","fn","called","resolve","then","scheduled","isFunction","functionToCheck","toString","getStyleComputedProperty","css","ownerDocument","defaultView","getComputedStyle","getParentNode","nodeName","host","getScrollParent","_getStyleComputedProp","overflow","overflowX","overflowY","test","getReferenceNode","reference","referenceNode","isIE11","MSInputMethodContext","documentMode","isIE10","isIE","version","getOffsetParent","noOffsetParent","offsetParent","nextElementSibling","getRoot","node","findCommonOffsetParent","element1","element2","order","compareDocumentPosition","Node","DOCUMENT_POSITION_FOLLOWING","start","end","range","createRange","setStart","setEnd","commonAncestorContainer","firstElementChild","element1root","getScroll","side","arguments","upperSide","scrollingElement","includeScroll","rect","subtract","scrollLeft","modifier","left","right","getBordersSize","styles","axis","sideA","sideB","parseFloat","getSize","computedStyle","parseInt","getWindowSizes","width","classCallCheck","instance","Constructor","TypeError","createClass","defineProperties","target","props","descriptor","configurable","writable","protoProps","staticProps","_extends","source","getClientRect","offsets","getBoundingClientRect","e","result","sizes","clientWidth","horizScrollbar","offsetWidth","vertScrollbar","getOffsetRectRelativeToArbitraryNode","parent","fixedPosition","isHTML","childrenRect","parentRect","scrollParent","borderTopWidth","borderLeftWidth","marginTop","marginLeft","getViewportOffsetRectRelativeToArtbitraryNode","excludeScroll","relativeOffset","innerWidth","isFixed","getFixedPositionOffsetParent","parentElement","el","getBoundaries","popper","padding","boundariesElement","boundaries","boundariesNode","_getWindowSizes","isPaddingNumber","getArea","_ref","computeAutoPlacement","placement","refRect","rects","sortedAreas","map","area","sort","a","b","filteredAreas","filter","_ref2","computedPlacement","variation","split","getReferenceOffsets","state","commonOffsetParent","getOuterSizes","x","marginBottom","y","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","console","warn","enabled","isDestroyed","arrowStyles","attributes","flipped","positionFixed","flip","originalPlacement","position","isCreated","onUpdate","onCreate","isModifierEnabled","modifierName","some","getSupportedPropertyName","prefixes","upperProp","charAt","toUpperCase","prefix","toCheck","style","removeAttribute","willChange","disableEventListeners","removeOnDestroy","removeChild","getWindow","attachToScrollParents","event","scrollParents","isBody","push","setupEventListeners","updateBound","scrollElement","eventsEnabled","enableEventListeners","scheduleUpdate","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","floor","opSide","arrow","_data$offsets$arrow","arrowElement","querySelector","len","sideCapitalized","toLowerCase","altSide","arrowElementSize","center","popperMarginSide","popperBorderSide","sideValue","placementOpposite","flipOrder","behavior","step","refOffsets","overlapsRef","overflowsLeft","overflowsRight","overflowsTop","overflowsBottom","overflowsBoundaries","flippedVariationByRef","flipVariations","flippedVariationByContent","flipVariationsByContent","flippedVariation","getOppositeVariation","inner","subtractLength","hide","bound","computeStyle","legacyGpuAccelerationOption","gpuAcceleration","offsetParentRect","shouldRound","noRound","v","referenceWidth","popperWidth","isVariation","horizontalToInteger","verticalToInteger","getRoundedOffsets","devicePixelRatio","prefixedProperty","invertTop","invertLeft","applyStyle","setAttribute","onLoad","modifierOptions","Popper","_this","jquery","Utils","global","PopperUtils","_typeof2","DOMIterator","ctx","iframes","exclude","iframesTimeout","filteredCtx","NodeList","isPrototypeOf","isArray","querySelectorAll","isDescendant","contexts","ifr","successFn","errorFn","ifrWin","contentWindow","Error","bl","src","getAttribute","location","href","tout","listener","clearTimeout","isIframeBlank","getIframeContents","readyState","observeIframeLoad","done","_this2","eachCalled","forEachIframe","waitForIframes","handled","each","_this3","open","checkEnd","matches","onIframeReady","con","whatToShow","createNodeIterator","contents","prevNode","DOCUMENT_POSITION_PRECEDING","itr","previousNode","nextNode","currIfr","ifrDict","val","compareNodeIframe","eCb","fCb","_this4","createInstanceOnIframe","forEachNode","eachCb","filterCb","doneCb","_getIteratorNode","_this5","createIterator","elements","getIteratorNode","checkIframeFilter","ifrNode","handleOpenIframes","_this6","getContexts","ready","iterateThroughNodes","selector","selectors","matchesSelector","msMatchesSelector","mozMatchesSelector","oMatchesSelector","webkitMatchesSelector","every","sel","Mark$1","Mark","ie","ua","msg","level","log","opt","debug","wildcards","setupWildcardsRegExp","escapeStr","synonyms","createSynonymsRegExp","ignoreJoiners","ignorePunctuation","setupIgnoreJoinersRegExp","diacritics","createDiacriticsRegExp","createMergedBlanksRegExp","createJoinersRegExp","createWildcardsRegExp","createAccuracyRegExp","syn","sens","caseSensitive","joinerPlaceholder","k1","k2","RegExp","processSynomyms","spaces","indx","original","nextChar","joiner","join","dct","ch","acc","accuracy","ls","limiters","lsJoin","limiter","sv","stack","kw","separateWordSearch","kwSplitted","Number","array","noMatch","last","item","_callNoMatchOnInvalid","callNoMatchOnInvalidRanges","valid","JSON","stringify","originalLength","string","substring","cb","nodes","NodeFilter","SHOW_TEXT","textContent","matchesExclude","FILTER_REJECT","FILTER_ACCEPT","hEl","startNode","splitText","ret","repl","createElement","replaceChild","dict","sibl","startStr","substr","endStr","wrapRangeInTextNode","k","j","previousSibling","regex","ignoreGroups","endCb","matchIdx","getTextNodes","exec","pos","lastIndex","_this7","wrapRangeInMappedTextNode","ranges","_this8","_checkWhitespaceRange","checkWhitespaceRanges","docFrag","createDocumentFragment","firstChild","appendChild","normalizeTextNode","normalize","nextSibling","nodeValue","regexp","_this9","totalMatches","acrossElements","_this10","_getSeparatedKeywords","getSeparatedKeywords","kwArr","keywords","kwArrLen","handler","createRegExp","term","rawRanges","_this11","checkRanges","wrapRangeFromIndex","_this12","SHOW_ELEMENT","unwrapMatches","matchesSel","set","_opt","mark","markRegExp","markRanges","unmark","Rails","linkClickSelector","buttonClickSelector","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","content","cspNonce","Element","getData","setData","$","csrfParam","csrfToken","meta","CSRFProtection","xhr","token","setRequestHeader","refreshCSRFTokens","param","input","CustomEvent","fire","preventDefault","params","evt","createEvent","initCustomEvent","bubbles","cancelable","detail","Event","defaultPrevented","dispatchEvent","stopEverything","stopPropagation","stopImmediatePropagation","delegate","eventType","AcceptHeaders","createXHR","prepareOptions","processResponse","text","xml","json","script","ajax","response","responseText","getResponseHeader","status","success","statusText","error","complete","beforeSend","XMLHttpRequest","OPENED","send","url","type","dataType","accept","crossDomain","withCredentials","onreadystatechange","DONE","parser","parse","head","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","toArray","serializeElement","additionalParam","inputs","disabled","option","selected","checked","encodeURIComponent","formElements","form","allowAction","handleConfirm","confirm","message","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","handleMethod","formContent","link","method","action","display","click","isRemote","handleRemote","button","enctype","FormData","append","args","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","_rails_loaded","Turbolinks","history","pushState","visit","controller","clearCache","setProgressBarDelay","copyObject","closest","ELEMENT_NODE","defer","throttle","apply","dispatch","u","initEvent","uuid","random","Location","absoluteURL","requestURL","anchor","wrap","getOrigin","getPath","getPathComponents","getLastPathComponent","getExtension","isPrefixedBy","isEqualTo","toCacheKey","toJSON","valueOf","_t","HttpRequest","requestCanceled","requestTimedOut","requestFailed","requestLoaded","requestProgressed","referrer","NETWORK_FAILURE","TIMEOUT_FAILURE","timeout","sent","notifyApplicationBeforeRequestStart","setProgress","requestStarted","cancel","abort","lengthComputable","loaded","total","endRequest","requestCompletedWithResponse","failed","requestFailedWithStatusCode","notifyApplicationAfterRequestEnd","onprogress","onload","onerror","ontimeout","onabort","progress","requestFinished","ProgressBar","trickle","_t2","stylesheetElement","createStylesheetElement","progressElement","createProgressElement","defaultCSS","show","visible","installStylesheetElement","installProgressElement","startTrickling","hiding","fadeProgressElement","uninstallProgressElement","stopTrickling","setValue","refresh","insertBefore","opacity","trickleInterval","setInterval","clearInterval","BrowserAdapter","showProgressBar","_t3","progressBar","visitProposedToLocationWithAction","startVisitToLocationWithAction","visitStarted","issueRequest","changeHistory","loadCachedSnapshot","visitRequestStarted","hasCachedSnapshot","showProgressBarAfterDelay","visitRequestProgressed","visitRequestCompleted","loadResponse","visitRequestFailedWithStatusCode","reload","visitRequestFinished","hideProgressBar","visitCompleted","followRedirect","pageInvalidated","progressBarTimeout","progressBarDelay","_t4","History","onPageLoad","onPopState","started","stop","shouldHandlePopState","turbolinks","restorationIdentifier","historyPoppedToLocationWithRestorationIdentifier","pageLoaded","pageIsLoaded","HeadDetails","outerHTML","tracked","fromHeadElement","childNodes","hasElementWithKey","getTrackedElementSignature","getScriptElementsNotInDetails","getElementsMatchingTypeNotInDetails","getStylesheetElementsNotInDetails","getProvisionalElements","getMetaValue","findMetaElementByName","tagName","_e","Snapshot","headDetails","bodyElement","fromHTMLString","fromHTMLElement","clone","cloneNode","getRootLocation","getSetting","getCacheControlValue","getElementForAnchor","getPermanentElements","getPermanentElementById","getPermanentElementsPresentInSnapshot","id","findFirstAutofocusableElement","hasAnchor","isPreviewable","isCacheable","isVisitable","Renderer","render","renderView","viewWillRender","newBody","viewRendered","invalidateView","viewInvalidated","createScriptElement","async","__super__","SnapshotRenderer","currentSnapshot","newSnapshot","isPreview","currentHeadDetails","newHeadDetails","currentBody","shouldRender","mergeHead","replaceBody","focusFirstAutofocusableElement","copyNewHeadStylesheetElements","copyNewHeadScriptElements","removeCurrentHeadProvisionalElements","copyNewHeadProvisionalElements","relocateCurrentBodyPermanentElements","activateNewBodyScriptElements","assignNewBody","replacePlaceholderElementsWithClonedPermanentElements","trackedElementsAreIdentical","getNewHeadStylesheetElements","getNewHeadScriptElements","getCurrentHeadProvisionalElements","getNewHeadProvisionalElements","getCurrentBodyPermanentElements","permanentElement","getNewBodyScriptElements","focus","_t5","_t6","ErrorRenderer","newHead","replaceHeadAndBody","activateBodyScriptElements","getScriptElements","View","htmlElement","getSnapshot","snapshot","markAsPreview","renderSnapshot","renderError","ScrollManager","onScroll","_t7","scrollToElement","scrollIntoView","scrollToPosition","scrollTo","updatePosition","pageXOffset","scrollPositionChanged","SnapshotCache","size","snapshots","has","read","touch","put","write","splice","unshift","Visit","performScroll","_t8","identifier","adapter","timingMetrics","recordTimingMetric","request","cancelRender","fail","visitFailed","historyChanged","shouldIssueRequest","getCachedSnapshot","getCachedSnapshotForLocation","cacheSnapshot","visitRendered","redirectedToLocation","followedRedirect","replaceHistoryWithLocationAndRestorationIdentifier","scrollToRestoredPosition","scrollToTop","scrollToAnchor","restorationData","scrollPosition","Date","getTime","getTimingMetrics","snapshotCached","frame","_t9","Controller","clickBubbled","clickCaptured","view","scrollManager","startHistory","disable","stopHistory","cache","applicationAllowsVisitingLocation","locationIsVisitable","getRestorationDataForIdentifier","startVisit","pushHistoryWithLocationAndRestorationIdentifier","shouldCacheSnapshot","notifyApplicationBeforeCachingSnapshot","lastRenderedLocation","getCurrentRestorationData","notifyApplicationBeforeRender","currentVisit","notifyApplicationAfterRender","notifyApplicationAfterPageLoad","clickEventIsSignificant","getVisitableLinkForNode","getVisitableLocationForLink","applicationAllowsFollowingLinkToLocation","getActionForLink","notifyApplicationAfterClickingLinkToLocation","notifyApplicationBeforeVisitingLocation","notifyApplicationAfterVisitingLocation","timing","createVisit","isContentEditable","which","altKey","shiftKey","nodeIsVisitable","currentScript","hasAttribute","sparkMd5","createCommonjsModule","hex_chr","md5cycle","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","md51_array","subarray","Uint8Array","rhex","hex","toUtf8","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","String","fromCharCode","concatenateArrayBuffers","first","second","byteLength","buffer","hexToBinaryString","bytes","SparkMD5","reset","clamp","from","to","num","targetArray","sourceArray","begin","appendBinary","_buff","_length","_hash","raw","_finish","getState","setState","hashBinary","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","findElement","root","eventInit","toArray$1","BlobRecord","checksum","filename","content_type","byte_size","responseType","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","_xhr","BlobUpload","_blob$directUploadDat","headers","DirectUpload","notify","upload","methodName","_len","messages","_key","DirectUploadController","directUpload","hiddenInput","insertAdjacentElement","dispatchError","signed_id","alert","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","processingAttribute","submitButtonsByForm","WeakMap","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","enable","delete","submitForm","ActiveStorage","channels","require","webpackEmptyContext","req","code","webpackContext","webpackContextResolve","getElementById","stripe_public_key","stripe","Stripe","cardElement","mount","cardholderName","email","cardButton","clientSecret","dataset","secret","ev","confirmCardSetup","payment_method","card","billing_details","payment_method_token","setupIntent","token_field","submit","callInformation","callHead","hideDetailsButton","backButton","downloadButtons","toggleDisplay","toggle","header","downloadBtn","innerText","useNameOnAccount","cardHolderInput","accountUserName","initializeEventListeners","selectGrid","radioButtons","purchaseButton","prev","dialIcon","multiFormContainer","saveNextButton","previousButton","multiForm","policyDiv","changeDOMButtons","radio","radios","nextRadio","prevRadio","g","Function","setInnerHTML","isReferenceElement","_tippy","getArrayOfElements","isElement","isType","isNodeList","arrayFrom","getValueAtIndexOrReturn","defaultValue","getModifier","invokeWithArgsOrReturn","setModifierValue","div","setTransitionDuration","els","transitionDuration","setVisibilityState","ms","arg","preserveInvocation","originalFn","currentFn","includes","splitBySpaces","Boolean","useIfDefined","nextValue","currentValue","normalizeToArray","pushIfUnique","getNumber","getComputedPadding","distancePx","freshPaddingObject","defaultProps","allowHTML","animation","appendTo","aria","boundary","delay","duration","flipBehavior","flipOnUpdate","hideOnClick","ignoreAttributes","inertia","interactive","interactiveBorder","interactiveDebounce","lazy","maxWidth","multiple","onAfterUpdate","onBeforeUpdate","onDestroy","onHidden","onHide","onMount","onShow","onShown","onTrigger","onUntrigger","plugins","popperOptions","role","showOnCreate","theme","trigger","triggerTarget","updateDuration","zIndex","animateFill","followCursor","inlinePositioning","sticky","defaultKeys","POPPER_INSTANCE_DEPENDENCIES","setDefaultProps","partialProps","getExtendedPassedProps","passedProps","pluginProps","plugin","evaluateProps","out","valueAsString","getDataAttributeProps","PASSIVE","POPPER_CLASS","TOOLTIP_CLASS","CONTENT_CLASS","ARROW_CLASS","SVG_ARROW_CLASS","currentInput","isTouch","lastMouseMoveTime","onDocumentTouchStart","performance","onDocumentMouseMove","now","onWindowBlur","activeElement","blur","isVisible","isIOS","platform","updateIOSClass","isAdd","shouldAdd","getBasePlacement","addInertia","tooltip","addInteractive","contentEl","getChildren","createArrowElement","updatePopperElement","prevProps","nextProps","_getChildren","removeInteractive","removeInertia","updateTheme","updateTransitionEndListener","idCounter","mouseMoveListeners","mountedInstances","createTippy","showTimeout","hideTimeout","scheduleHideAnimationFrame","lastTriggerEvent","currentMountCallback","currentTransitionEndListener","currentTarget","elementOrElements","isBeingDestroyed","isVisibleFromClick","didHideDueToDocumentMouseDown","popperUpdates","listeners","debouncedOnMouseMove","onMouseMove","createPopperElement","popperChildren","transitionableElements","popperInstance","currentPlacement","isEnabled","isMounted","isShown","clearDelayTimeouts","setProps","invokeHook","removeListenersFromTriggerTarget","addListenersToTriggerTarget","cleanupInteractiveMouseListeners","handleAriaExpandedAttribute","currentReference","createPopperInstance","setContent","isAlreadyVisible","isDisabled","isTouchAndTouchDisabled","getCurrentTarget","addDocumentMouseDownListener","visibility","handleAriaDescribedByAttribute","onTransitionEnd","onTransitionedIn","isAlreadyHidden","removeDocumentMouseDownListener","onTransitionedOut","pluginsHooks","hadAriaExpandedAttributeOnCreate","scheduleShow","getNormalizedTouchSettings","getIsCustomTouchBehavior","getDelay","isShow","hook","shouldInvokePropsHook","_instance$props","pluginHooks","attr","scheduleHide","onDocumentMouseDown","on","onMouseLeave","onBlurOrFocusOut","shouldScheduleClickHide","isEventListenerStopped","isMouseEvent","_getNormalizedTouchSe","isCursorOverReferenceOrPopper","closestCallback","popperTreeData","clientX","clientY","tooltipRect","mergedRect","isCursorOutsideInteractiveBorder","relatedTarget","supportsTouch","isTouchEvent","isCustomTouch","flipModifier","preventOverflowModifier","applyMutations","prevPlacement","isVerticalPlacement","isSecondaryPlacement","config","tippyDistance","isRem","fontSize","getUnitsInPx","computedPreventOverflowPadding","computedFlipPadding","instanceModifiers","runMountCallback","reflow","tippy","targets","optionalProps","instances","callShow","searchInput","searchButton","keyWordDisplay","transcriptContainer","searchQueryActions","matchCount","markInstance","queryActions","keyword","matchCounter","traverseButtons","current","suffix","nodeList","nodeSize","currentIndex","nextButton","scrollOver","reRenderButton","originalButton","clonedButton","nodeCollection","highlightText"],"mappings":"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","file":"js/application-4ea8523a1b3721a03240.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 35);\n","module.exports = __webpack_public_path__ + \"media/images/remember-logo-full-6f7103f0593e4c5f0239f6dc54092a3a.png\";","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","module.exports = __webpack_public_path__ + \"media/images/icon-call-52cba0b1dc8e58f9b4fa95c777df61da.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon-cog-c88cf3392b80ab0143e0905249508691.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon-date-1eab9ce6894799f2afdbbc66c83532aa.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon-dial-icon-276ea041707514983be8b06c9cae140e.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon-keyword-search-7e3f70b544786b6a988705d8952e4bbc.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon-phone-inbound-d5d162384f526ac49a96df8383530bb8.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon-phone-outbound-88f4c02a28ed35732a02acb6fdec61a5.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon-time-b51df79240683f2f2f0a7f6cd462d5ea.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon-transcribe-5b0f630dabee678e57108205a29221da.svg\";","module.exports = __webpack_public_path__ + \"media/images/icon-user-d6623828853fc818bb9dfd4b4ee8b0ac.svg\";","module.exports = __webpack_public_path__ + \"media/images/remember-favicon-5bd8a419510ef80399360c034f68a13c.png\";","module.exports = __webpack_public_path__ + \"media/images/remember-logo-5d6fb57b6e9dbcf460ec424e43049a09.svg\";","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*!\n * headroom.js v0.10.4 - Give your page some headroom. Hide your header until you need it\n * Copyright (c) 2020 Nick Williams - http://wicky.nillia.ms/headroom.js\n * License: MIT\n */\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = global || self, global.Headroom = factory());\n})(this, function () {\n 'use strict';\n\n function isBrowser() {\n return typeof window !== \"undefined\";\n }\n /**\n * Used to detect browser support for adding an event listener with options\n * Credit: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n */\n\n\n function passiveEventsSupported() {\n var supported = false;\n\n try {\n var options = {\n // eslint-disable-next-line getter-return\n get passive() {\n supported = true;\n }\n\n };\n window.addEventListener(\"test\", options, options);\n window.removeEventListener(\"test\", options, options);\n } catch (err) {\n supported = false;\n }\n\n return supported;\n }\n\n function isSupported() {\n return !!(isBrowser() && function () {}.bind && \"classList\" in document.documentElement && Object.assign && Object.keys && requestAnimationFrame);\n }\n\n function isDocument(obj) {\n return obj.nodeType === 9; // Node.DOCUMENT_NODE === 9\n }\n\n function isWindow(obj) {\n // `obj === window` or `obj instanceof Window` is not sufficient,\n // as the obj may be the window of an iframe.\n return obj && obj.document && isDocument(obj.document);\n }\n\n function windowScroller(win) {\n var doc = win.document;\n var body = doc.body;\n var html = doc.documentElement;\n return {\n /**\n * @see http://james.padolsey.com/javascript/get-document-height-cross-browser/\n * @return {Number} the scroll height of the document in pixels\n */\n scrollHeight: function scrollHeight() {\n return Math.max(body.scrollHeight, html.scrollHeight, body.offsetHeight, html.offsetHeight, body.clientHeight, html.clientHeight);\n },\n\n /**\n * @see http://andylangton.co.uk/blog/development/get-viewport-size-width-and-height-javascript\n * @return {Number} the height of the viewport in pixels\n */\n height: function height() {\n return win.innerHeight || html.clientHeight || body.clientHeight;\n },\n\n /**\n * Gets the Y scroll position\n * @return {Number} pixels the page has scrolled along the Y-axis\n */\n scrollY: function scrollY() {\n if (win.pageYOffset !== undefined) {\n return win.pageYOffset;\n }\n\n return (html || body.parentNode || body).scrollTop;\n }\n };\n }\n\n function elementScroller(element) {\n return {\n /**\n * @return {Number} the scroll height of the element in pixels\n */\n scrollHeight: function scrollHeight() {\n return Math.max(element.scrollHeight, element.offsetHeight, element.clientHeight);\n },\n\n /**\n * @return {Number} the height of the element in pixels\n */\n height: function height() {\n return Math.max(element.offsetHeight, element.clientHeight);\n },\n\n /**\n * Gets the Y scroll position\n * @return {Number} pixels the element has scrolled along the Y-axis\n */\n scrollY: function scrollY() {\n return element.scrollTop;\n }\n };\n }\n\n function createScroller(element) {\n return isWindow(element) ? windowScroller(element) : elementScroller(element);\n }\n /**\n * @param element EventTarget\n */\n\n\n function trackScroll(element, options, callback) {\n var isPassiveSupported = passiveEventsSupported();\n var rafId;\n var scrolled = false;\n var scroller = createScroller(element);\n var lastScrollY = scroller.scrollY();\n var details = {};\n\n function update() {\n var scrollY = Math.round(scroller.scrollY());\n var height = scroller.height();\n var scrollHeight = scroller.scrollHeight(); // reuse object for less memory churn\n\n details.scrollY = scrollY;\n details.lastScrollY = lastScrollY;\n details.direction = scrollY > lastScrollY ? \"down\" : \"up\";\n details.distance = Math.abs(scrollY - lastScrollY);\n details.isOutOfBounds = scrollY < 0 || scrollY + height > scrollHeight;\n details.top = scrollY <= options.offset;\n details.bottom = scrollY + height >= scrollHeight;\n details.toleranceExceeded = details.distance > options.tolerance[details.direction];\n callback(details);\n lastScrollY = scrollY;\n scrolled = false;\n }\n\n function handleScroll() {\n if (!scrolled) {\n scrolled = true;\n rafId = requestAnimationFrame(update);\n }\n }\n\n var eventOptions = isPassiveSupported ? {\n passive: true,\n capture: false\n } : false;\n element.addEventListener(\"scroll\", handleScroll, eventOptions);\n update();\n return {\n destroy: function destroy() {\n cancelAnimationFrame(rafId);\n element.removeEventListener(\"scroll\", handleScroll, eventOptions);\n }\n };\n }\n\n function normalizeTolerance(t) {\n return t === Object(t) ? t : {\n down: t,\n up: t\n };\n }\n /**\n * UI enhancement for fixed headers.\n * Hides header when scrolling down\n * Shows header when scrolling up\n * @constructor\n * @param {DOMElement} elem the header element\n * @param {Object} options options for the widget\n */\n\n\n function Headroom(elem, options) {\n options = options || {};\n Object.assign(this, Headroom.options, options);\n this.classes = Object.assign({}, Headroom.options.classes, options.classes);\n this.elem = elem;\n this.tolerance = normalizeTolerance(this.tolerance);\n this.initialised = false;\n this.frozen = false;\n }\n\n Headroom.prototype = {\n constructor: Headroom,\n\n /**\n * Start listening to scrolling\n * @public\n */\n init: function init() {\n if (Headroom.cutsTheMustard && !this.initialised) {\n this.addClass(\"initial\");\n this.initialised = true; // defer event registration to handle browser\n // potentially restoring previous scroll position\n\n setTimeout(function (self) {\n self.scrollTracker = trackScroll(self.scroller, {\n offset: self.offset,\n tolerance: self.tolerance\n }, self.update.bind(self));\n }, 100, this);\n }\n\n return this;\n },\n\n /**\n * Destroy the widget, clearing up after itself\n * @public\n */\n destroy: function destroy() {\n this.initialised = false;\n Object.keys(this.classes).forEach(this.removeClass, this);\n this.scrollTracker.destroy();\n },\n\n /**\n * Unpin the element\n * @public\n */\n unpin: function unpin() {\n if (this.hasClass(\"pinned\") || !this.hasClass(\"unpinned\")) {\n this.addClass(\"unpinned\");\n this.removeClass(\"pinned\");\n\n if (this.onUnpin) {\n this.onUnpin.call(this);\n }\n }\n },\n\n /**\n * Pin the element\n * @public\n */\n pin: function pin() {\n if (this.hasClass(\"unpinned\")) {\n this.addClass(\"pinned\");\n this.removeClass(\"unpinned\");\n\n if (this.onPin) {\n this.onPin.call(this);\n }\n }\n },\n\n /**\n * Freezes the current state of the widget\n * @public\n */\n freeze: function freeze() {\n this.frozen = true;\n this.addClass(\"frozen\");\n },\n\n /**\n * Re-enables the default behaviour of the widget\n * @public\n */\n unfreeze: function unfreeze() {\n this.frozen = false;\n this.removeClass(\"frozen\");\n },\n top: function top() {\n if (!this.hasClass(\"top\")) {\n this.addClass(\"top\");\n this.removeClass(\"notTop\");\n\n if (this.onTop) {\n this.onTop.call(this);\n }\n }\n },\n notTop: function notTop() {\n if (!this.hasClass(\"notTop\")) {\n this.addClass(\"notTop\");\n this.removeClass(\"top\");\n\n if (this.onNotTop) {\n this.onNotTop.call(this);\n }\n }\n },\n bottom: function bottom() {\n if (!this.hasClass(\"bottom\")) {\n this.addClass(\"bottom\");\n this.removeClass(\"notBottom\");\n\n if (this.onBottom) {\n this.onBottom.call(this);\n }\n }\n },\n notBottom: function notBottom() {\n if (!this.hasClass(\"notBottom\")) {\n this.addClass(\"notBottom\");\n this.removeClass(\"bottom\");\n\n if (this.onNotBottom) {\n this.onNotBottom.call(this);\n }\n }\n },\n shouldUnpin: function shouldUnpin(details) {\n var scrollingDown = details.direction === \"down\";\n return scrollingDown && !details.top && details.toleranceExceeded;\n },\n shouldPin: function shouldPin(details) {\n var scrollingUp = details.direction === \"up\";\n return scrollingUp && details.toleranceExceeded || details.top;\n },\n addClass: function addClass(className) {\n this.elem.classList.add(this.classes[className]);\n },\n removeClass: function removeClass(className) {\n this.elem.classList.remove(this.classes[className]);\n },\n hasClass: function hasClass(className) {\n return this.elem.classList.contains(this.classes[className]);\n },\n update: function update(details) {\n if (details.isOutOfBounds) {\n // Ignore bouncy scrolling in OSX\n return;\n }\n\n if (this.frozen === true) {\n return;\n }\n\n if (details.top) {\n this.top();\n } else {\n this.notTop();\n }\n\n if (details.bottom) {\n this.bottom();\n } else {\n this.notBottom();\n }\n\n if (this.shouldUnpin(details)) {\n this.unpin();\n } else if (this.shouldPin(details)) {\n this.pin();\n }\n }\n };\n /**\n * Default options\n * @type {Object}\n */\n\n Headroom.options = {\n tolerance: {\n up: 0,\n down: 0\n },\n offset: 0,\n scroller: isBrowser() ? window : null,\n classes: {\n frozen: \"headroom--frozen\",\n pinned: \"headroom--pinned\",\n unpinned: \"headroom--unpinned\",\n top: \"headroom--top\",\n notTop: \"headroom--not-top\",\n bottom: \"headroom--bottom\",\n notBottom: \"headroom--not-bottom\",\n initial: \"headroom\"\n }\n };\n Headroom.cutsTheMustard = isSupported();\n return Headroom;\n});","/**!\n * @fileOverview Kickass library to create and place poppers near their reference elements.\n * @version 1.16.1\n * @license\n * Copyright (c) 2016 Federico Zivolo and contributors\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nvar isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined' && typeof navigator !== 'undefined';\n\nvar timeoutDuration = function () {\n var longerTimeoutBrowsers = ['Edge', 'Trident', 'Firefox'];\n\n for (var i = 0; i < longerTimeoutBrowsers.length; i += 1) {\n if (isBrowser && navigator.userAgent.indexOf(longerTimeoutBrowsers[i]) >= 0) {\n return 1;\n }\n }\n\n return 0;\n}();\n\nfunction microtaskDebounce(fn) {\n var called = false;\n return function () {\n if (called) {\n return;\n }\n\n called = true;\n window.Promise.resolve().then(function () {\n called = false;\n fn();\n });\n };\n}\n\nfunction taskDebounce(fn) {\n var scheduled = false;\n return function () {\n if (!scheduled) {\n scheduled = true;\n setTimeout(function () {\n scheduled = false;\n fn();\n }, timeoutDuration);\n }\n };\n}\n\nvar supportsMicroTasks = isBrowser && window.Promise;\n/**\n* Create a debounced version of a method, that's asynchronously deferred\n* but called in the minimum time possible.\n*\n* @method\n* @memberof Popper.Utils\n* @argument {Function} fn\n* @returns {Function}\n*/\n\nvar debounce = supportsMicroTasks ? microtaskDebounce : taskDebounce;\n/**\n * Check if the given variable is a function\n * @method\n * @memberof Popper.Utils\n * @argument {Any} functionToCheck - variable to check\n * @returns {Boolean} answer to: is a function?\n */\n\nfunction isFunction(functionToCheck) {\n var getType = {};\n return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]';\n}\n/**\n * Get CSS computed property of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Eement} element\n * @argument {String} property\n */\n\n\nfunction getStyleComputedProperty(element, property) {\n if (element.nodeType !== 1) {\n return [];\n } // NOTE: 1 DOM access here\n\n\n var window = element.ownerDocument.defaultView;\n var css = window.getComputedStyle(element, null);\n return property ? css[property] : css;\n}\n/**\n * Returns the parentNode or the host of the element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} parent\n */\n\n\nfunction getParentNode(element) {\n if (element.nodeName === 'HTML') {\n return element;\n }\n\n return element.parentNode || element.host;\n}\n/**\n * Returns the scrolling parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} scroll parent\n */\n\n\nfunction getScrollParent(element) {\n // Return body, `getScroll` will take care to get the correct `scrollTop` from it\n if (!element) {\n return document.body;\n }\n\n switch (element.nodeName) {\n case 'HTML':\n case 'BODY':\n return element.ownerDocument.body;\n\n case '#document':\n return element.body;\n } // Firefox want us to check `-x` and `-y` variations as well\n\n\n var _getStyleComputedProp = getStyleComputedProperty(element),\n overflow = _getStyleComputedProp.overflow,\n overflowX = _getStyleComputedProp.overflowX,\n overflowY = _getStyleComputedProp.overflowY;\n\n if (/(auto|scroll|overlay)/.test(overflow + overflowY + overflowX)) {\n return element;\n }\n\n return getScrollParent(getParentNode(element));\n}\n/**\n * Returns the reference node of the reference object, or the reference object itself.\n * @method\n * @memberof Popper.Utils\n * @param {Element|Object} reference - the reference element (the popper will be relative to this)\n * @returns {Element} parent\n */\n\n\nfunction getReferenceNode(reference) {\n return reference && reference.referenceNode ? reference.referenceNode : reference;\n}\n\nvar isIE11 = isBrowser && !!(window.MSInputMethodContext && document.documentMode);\nvar isIE10 = isBrowser && /MSIE 10/.test(navigator.userAgent);\n/**\n * Determines if the browser is Internet Explorer\n * @method\n * @memberof Popper.Utils\n * @param {Number} version to check\n * @returns {Boolean} isIE\n */\n\nfunction isIE(version) {\n if (version === 11) {\n return isIE11;\n }\n\n if (version === 10) {\n return isIE10;\n }\n\n return isIE11 || isIE10;\n}\n/**\n * Returns the offset parent of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} offset parent\n */\n\n\nfunction getOffsetParent(element) {\n if (!element) {\n return document.documentElement;\n }\n\n var noOffsetParent = isIE(10) ? document.body : null; // NOTE: 1 DOM access here\n\n var offsetParent = element.offsetParent || null; // Skip hidden elements which don't have an offsetParent\n\n while (offsetParent === noOffsetParent && element.nextElementSibling) {\n offsetParent = (element = element.nextElementSibling).offsetParent;\n }\n\n var nodeName = offsetParent && offsetParent.nodeName;\n\n if (!nodeName || nodeName === 'BODY' || nodeName === 'HTML') {\n return element ? element.ownerDocument.documentElement : document.documentElement;\n } // .offsetParent will return the closest TH, TD or TABLE in case\n // no offsetParent is present, I hate this job...\n\n\n if (['TH', 'TD', 'TABLE'].indexOf(offsetParent.nodeName) !== -1 && getStyleComputedProperty(offsetParent, 'position') === 'static') {\n return getOffsetParent(offsetParent);\n }\n\n return offsetParent;\n}\n\nfunction isOffsetContainer(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY') {\n return false;\n }\n\n return nodeName === 'HTML' || getOffsetParent(element.firstElementChild) === element;\n}\n/**\n * Finds the root node (document, shadowDOM root) of the given element\n * @method\n * @memberof Popper.Utils\n * @argument {Element} node\n * @returns {Element} root node\n */\n\n\nfunction getRoot(node) {\n if (node.parentNode !== null) {\n return getRoot(node.parentNode);\n }\n\n return node;\n}\n/**\n * Finds the offset parent common to the two provided nodes\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element1\n * @argument {Element} element2\n * @returns {Element} common offset parent\n */\n\n\nfunction findCommonOffsetParent(element1, element2) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element1 || !element1.nodeType || !element2 || !element2.nodeType) {\n return document.documentElement;\n } // Here we make sure to give as \"start\" the element that comes first in the DOM\n\n\n var order = element1.compareDocumentPosition(element2) & Node.DOCUMENT_POSITION_FOLLOWING;\n var start = order ? element1 : element2;\n var end = order ? element2 : element1; // Get common ancestor container\n\n var range = document.createRange();\n range.setStart(start, 0);\n range.setEnd(end, 0);\n var commonAncestorContainer = range.commonAncestorContainer; // Both nodes are inside #document\n\n if (element1 !== commonAncestorContainer && element2 !== commonAncestorContainer || start.contains(end)) {\n if (isOffsetContainer(commonAncestorContainer)) {\n return commonAncestorContainer;\n }\n\n return getOffsetParent(commonAncestorContainer);\n } // one of the nodes is inside shadowDOM, find which one\n\n\n var element1root = getRoot(element1);\n\n if (element1root.host) {\n return findCommonOffsetParent(element1root.host, element2);\n } else {\n return findCommonOffsetParent(element1, getRoot(element2).host);\n }\n}\n/**\n * Gets the scroll value of the given element in the given side (top and left)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {String} side `top` or `left`\n * @returns {number} amount of scrolled pixels\n */\n\n\nfunction getScroll(element) {\n var side = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'top';\n var upperSide = side === 'top' ? 'scrollTop' : 'scrollLeft';\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n var html = element.ownerDocument.documentElement;\n var scrollingElement = element.ownerDocument.scrollingElement || html;\n return scrollingElement[upperSide];\n }\n\n return element[upperSide];\n}\n/*\n * Sum or subtract the element scroll values (left and top) from a given rect object\n * @method\n * @memberof Popper.Utils\n * @param {Object} rect - Rect object you want to change\n * @param {HTMLElement} element - The element from the function reads the scroll values\n * @param {Boolean} subtract - set to true if you want to subtract the scroll values\n * @return {Object} rect - The modifier rect object\n */\n\n\nfunction includeScroll(rect, element) {\n var subtract = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n var modifier = subtract ? -1 : 1;\n rect.top += scrollTop * modifier;\n rect.bottom += scrollTop * modifier;\n rect.left += scrollLeft * modifier;\n rect.right += scrollLeft * modifier;\n return rect;\n}\n/*\n * Helper to detect borders of a given element\n * @method\n * @memberof Popper.Utils\n * @param {CSSStyleDeclaration} styles\n * Result of `getStyleComputedProperty` on the given element\n * @param {String} axis - `x` or `y`\n * @return {number} borders - The borders size of the given axis\n */\n\n\nfunction getBordersSize(styles, axis) {\n var sideA = axis === 'x' ? 'Left' : 'Top';\n var sideB = sideA === 'Left' ? 'Right' : 'Bottom';\n return parseFloat(styles['border' + sideA + 'Width']) + parseFloat(styles['border' + sideB + 'Width']);\n}\n\nfunction getSize(axis, body, html, computedStyle) {\n return Math.max(body['offset' + axis], body['scroll' + axis], html['client' + axis], html['offset' + axis], html['scroll' + axis], isIE(10) ? parseInt(html['offset' + axis]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Top' : 'Left')]) + parseInt(computedStyle['margin' + (axis === 'Height' ? 'Bottom' : 'Right')]) : 0);\n}\n\nfunction getWindowSizes(document) {\n var body = document.body;\n var html = document.documentElement;\n var computedStyle = isIE(10) && getComputedStyle(html);\n return {\n height: getSize('Height', body, html, computedStyle),\n width: getSize('Width', body, html, computedStyle)\n };\n}\n\nvar classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\nvar createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar defineProperty = function defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n};\n\nvar _extends = Object.assign || function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n\n return target;\n};\n/**\n * Given element offsets, generate an output similar to getBoundingClientRect\n * @method\n * @memberof Popper.Utils\n * @argument {Object} offsets\n * @returns {Object} ClientRect like output\n */\n\n\nfunction getClientRect(offsets) {\n return _extends({}, offsets, {\n right: offsets.left + offsets.width,\n bottom: offsets.top + offsets.height\n });\n}\n/**\n * Get bounding client rect of given element\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} element\n * @return {Object} client rect\n */\n\n\nfunction getBoundingClientRect(element) {\n var rect = {}; // IE10 10 FIX: Please, don't ask, the element isn't\n // considered in DOM in some circumstances...\n // This isn't reproducible in IE10 compatibility mode of IE11\n\n try {\n if (isIE(10)) {\n rect = element.getBoundingClientRect();\n var scrollTop = getScroll(element, 'top');\n var scrollLeft = getScroll(element, 'left');\n rect.top += scrollTop;\n rect.left += scrollLeft;\n rect.bottom += scrollTop;\n rect.right += scrollLeft;\n } else {\n rect = element.getBoundingClientRect();\n }\n } catch (e) {}\n\n var result = {\n left: rect.left,\n top: rect.top,\n width: rect.right - rect.left,\n height: rect.bottom - rect.top\n }; // subtract scrollbar size from sizes\n\n var sizes = element.nodeName === 'HTML' ? getWindowSizes(element.ownerDocument) : {};\n var width = sizes.width || element.clientWidth || result.width;\n var height = sizes.height || element.clientHeight || result.height;\n var horizScrollbar = element.offsetWidth - width;\n var vertScrollbar = element.offsetHeight - height; // if an hypothetical scrollbar is detected, we must be sure it's not a `border`\n // we make this check conditional for performance reasons\n\n if (horizScrollbar || vertScrollbar) {\n var styles = getStyleComputedProperty(element);\n horizScrollbar -= getBordersSize(styles, 'x');\n vertScrollbar -= getBordersSize(styles, 'y');\n result.width -= horizScrollbar;\n result.height -= vertScrollbar;\n }\n\n return getClientRect(result);\n}\n\nfunction getOffsetRectRelativeToArbitraryNode(children, parent) {\n var fixedPosition = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n var isIE10 = isIE(10);\n var isHTML = parent.nodeName === 'HTML';\n var childrenRect = getBoundingClientRect(children);\n var parentRect = getBoundingClientRect(parent);\n var scrollParent = getScrollParent(children);\n var styles = getStyleComputedProperty(parent);\n var borderTopWidth = parseFloat(styles.borderTopWidth);\n var borderLeftWidth = parseFloat(styles.borderLeftWidth); // In cases where the parent is fixed, we must ignore negative scroll in offset calc\n\n if (fixedPosition && isHTML) {\n parentRect.top = Math.max(parentRect.top, 0);\n parentRect.left = Math.max(parentRect.left, 0);\n }\n\n var offsets = getClientRect({\n top: childrenRect.top - parentRect.top - borderTopWidth,\n left: childrenRect.left - parentRect.left - borderLeftWidth,\n width: childrenRect.width,\n height: childrenRect.height\n });\n offsets.marginTop = 0;\n offsets.marginLeft = 0; // Subtract margins of documentElement in case it's being used as parent\n // we do this only on HTML because it's the only element that behaves\n // differently when margins are applied to it. The margins are included in\n // the box of the documentElement, in the other cases not.\n\n if (!isIE10 && isHTML) {\n var marginTop = parseFloat(styles.marginTop);\n var marginLeft = parseFloat(styles.marginLeft);\n offsets.top -= borderTopWidth - marginTop;\n offsets.bottom -= borderTopWidth - marginTop;\n offsets.left -= borderLeftWidth - marginLeft;\n offsets.right -= borderLeftWidth - marginLeft; // Attach marginTop and marginLeft because in some circumstances we may need them\n\n offsets.marginTop = marginTop;\n offsets.marginLeft = marginLeft;\n }\n\n if (isIE10 && !fixedPosition ? parent.contains(scrollParent) : parent === scrollParent && scrollParent.nodeName !== 'BODY') {\n offsets = includeScroll(offsets, parent);\n }\n\n return offsets;\n}\n\nfunction getViewportOffsetRectRelativeToArtbitraryNode(element) {\n var excludeScroll = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var html = element.ownerDocument.documentElement;\n var relativeOffset = getOffsetRectRelativeToArbitraryNode(element, html);\n var width = Math.max(html.clientWidth, window.innerWidth || 0);\n var height = Math.max(html.clientHeight, window.innerHeight || 0);\n var scrollTop = !excludeScroll ? getScroll(html) : 0;\n var scrollLeft = !excludeScroll ? getScroll(html, 'left') : 0;\n var offset = {\n top: scrollTop - relativeOffset.top + relativeOffset.marginTop,\n left: scrollLeft - relativeOffset.left + relativeOffset.marginLeft,\n width: width,\n height: height\n };\n return getClientRect(offset);\n}\n/**\n * Check if the given element is fixed or is inside a fixed parent\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @argument {Element} customContainer\n * @returns {Boolean} answer to \"isFixed?\"\n */\n\n\nfunction isFixed(element) {\n var nodeName = element.nodeName;\n\n if (nodeName === 'BODY' || nodeName === 'HTML') {\n return false;\n }\n\n if (getStyleComputedProperty(element, 'position') === 'fixed') {\n return true;\n }\n\n var parentNode = getParentNode(element);\n\n if (!parentNode) {\n return false;\n }\n\n return isFixed(parentNode);\n}\n/**\n * Finds the first parent of an element that has a transformed property defined\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Element} first transformed parent or documentElement\n */\n\n\nfunction getFixedPositionOffsetParent(element) {\n // This check is needed to avoid errors in case one of the elements isn't defined for any reason\n if (!element || !element.parentElement || isIE()) {\n return document.documentElement;\n }\n\n var el = element.parentElement;\n\n while (el && getStyleComputedProperty(el, 'transform') === 'none') {\n el = el.parentElement;\n }\n\n return el || document.documentElement;\n}\n/**\n * Computed the boundaries limits and return them\n * @method\n * @memberof Popper.Utils\n * @param {HTMLElement} popper\n * @param {HTMLElement} reference\n * @param {number} padding\n * @param {HTMLElement} boundariesElement - Element used to define the boundaries\n * @param {Boolean} fixedPosition - Is in fixed position mode\n * @returns {Object} Coordinates of the boundaries\n */\n\n\nfunction getBoundaries(popper, reference, padding, boundariesElement) {\n var fixedPosition = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false; // NOTE: 1 DOM access here\n\n var boundaries = {\n top: 0,\n left: 0\n };\n var offsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference)); // Handle viewport case\n\n if (boundariesElement === 'viewport') {\n boundaries = getViewportOffsetRectRelativeToArtbitraryNode(offsetParent, fixedPosition);\n } else {\n // Handle other cases based on DOM element used as boundaries\n var boundariesNode = void 0;\n\n if (boundariesElement === 'scrollParent') {\n boundariesNode = getScrollParent(getParentNode(reference));\n\n if (boundariesNode.nodeName === 'BODY') {\n boundariesNode = popper.ownerDocument.documentElement;\n }\n } else if (boundariesElement === 'window') {\n boundariesNode = popper.ownerDocument.documentElement;\n } else {\n boundariesNode = boundariesElement;\n }\n\n var offsets = getOffsetRectRelativeToArbitraryNode(boundariesNode, offsetParent, fixedPosition); // In case of HTML, we need a different computation\n\n if (boundariesNode.nodeName === 'HTML' && !isFixed(offsetParent)) {\n var _getWindowSizes = getWindowSizes(popper.ownerDocument),\n height = _getWindowSizes.height,\n width = _getWindowSizes.width;\n\n boundaries.top += offsets.top - offsets.marginTop;\n boundaries.bottom = height + offsets.top;\n boundaries.left += offsets.left - offsets.marginLeft;\n boundaries.right = width + offsets.left;\n } else {\n // for all the other DOM elements, this one is good\n boundaries = offsets;\n }\n } // Add paddings\n\n\n padding = padding || 0;\n var isPaddingNumber = typeof padding === 'number';\n boundaries.left += isPaddingNumber ? padding : padding.left || 0;\n boundaries.top += isPaddingNumber ? padding : padding.top || 0;\n boundaries.right -= isPaddingNumber ? padding : padding.right || 0;\n boundaries.bottom -= isPaddingNumber ? padding : padding.bottom || 0;\n return boundaries;\n}\n\nfunction getArea(_ref) {\n var width = _ref.width,\n height = _ref.height;\n return width * height;\n}\n/**\n * Utility used to transform the `auto` placement to the placement with more\n * available space.\n * @method\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction computeAutoPlacement(placement, refRect, popper, reference, boundariesElement) {\n var padding = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 0;\n\n if (placement.indexOf('auto') === -1) {\n return placement;\n }\n\n var boundaries = getBoundaries(popper, reference, padding, boundariesElement);\n var rects = {\n top: {\n width: boundaries.width,\n height: refRect.top - boundaries.top\n },\n right: {\n width: boundaries.right - refRect.right,\n height: boundaries.height\n },\n bottom: {\n width: boundaries.width,\n height: boundaries.bottom - refRect.bottom\n },\n left: {\n width: refRect.left - boundaries.left,\n height: boundaries.height\n }\n };\n var sortedAreas = Object.keys(rects).map(function (key) {\n return _extends({\n key: key\n }, rects[key], {\n area: getArea(rects[key])\n });\n }).sort(function (a, b) {\n return b.area - a.area;\n });\n var filteredAreas = sortedAreas.filter(function (_ref2) {\n var width = _ref2.width,\n height = _ref2.height;\n return width >= popper.clientWidth && height >= popper.clientHeight;\n });\n var computedPlacement = filteredAreas.length > 0 ? filteredAreas[0].key : sortedAreas[0].key;\n var variation = placement.split('-')[1];\n return computedPlacement + (variation ? '-' + variation : '');\n}\n/**\n * Get offsets to the reference element\n * @method\n * @memberof Popper.Utils\n * @param {Object} state\n * @param {Element} popper - the popper element\n * @param {Element} reference - the reference element (the popper will be relative to this)\n * @param {Element} fixedPosition - is in fixed position mode\n * @returns {Object} An object containing the offsets which will be applied to the popper\n */\n\n\nfunction getReferenceOffsets(state, popper, reference) {\n var fixedPosition = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : null;\n var commonOffsetParent = fixedPosition ? getFixedPositionOffsetParent(popper) : findCommonOffsetParent(popper, getReferenceNode(reference));\n return getOffsetRectRelativeToArbitraryNode(reference, commonOffsetParent, fixedPosition);\n}\n/**\n * Get the outer sizes of the given element (offset size + margins)\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element\n * @returns {Object} object containing width and height properties\n */\n\n\nfunction getOuterSizes(element) {\n var window = element.ownerDocument.defaultView;\n var styles = window.getComputedStyle(element);\n var x = parseFloat(styles.marginTop || 0) + parseFloat(styles.marginBottom || 0);\n var y = parseFloat(styles.marginLeft || 0) + parseFloat(styles.marginRight || 0);\n var result = {\n width: element.offsetWidth + y,\n height: element.offsetHeight + x\n };\n return result;\n}\n/**\n * Get the opposite placement of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement\n * @returns {String} flipped placement\n */\n\n\nfunction getOppositePlacement(placement) {\n var hash = {\n left: 'right',\n right: 'left',\n bottom: 'top',\n top: 'bottom'\n };\n return placement.replace(/left|right|bottom|top/g, function (matched) {\n return hash[matched];\n });\n}\n/**\n * Get offsets to the popper\n * @method\n * @memberof Popper.Utils\n * @param {Object} position - CSS position the Popper will get applied\n * @param {HTMLElement} popper - the popper element\n * @param {Object} referenceOffsets - the reference offsets (the popper will be relative to this)\n * @param {String} placement - one of the valid placement options\n * @returns {Object} popperOffsets - An object containing the offsets which will be applied to the popper\n */\n\n\nfunction getPopperOffsets(popper, referenceOffsets, placement) {\n placement = placement.split('-')[0]; // Get popper node sizes\n\n var popperRect = getOuterSizes(popper); // Add position, width and height to our offsets object\n\n var popperOffsets = {\n width: popperRect.width,\n height: popperRect.height\n }; // depending by the popper placement we have to compute its offsets slightly differently\n\n var isHoriz = ['right', 'left'].indexOf(placement) !== -1;\n var mainSide = isHoriz ? 'top' : 'left';\n var secondarySide = isHoriz ? 'left' : 'top';\n var measurement = isHoriz ? 'height' : 'width';\n var secondaryMeasurement = !isHoriz ? 'height' : 'width';\n popperOffsets[mainSide] = referenceOffsets[mainSide] + referenceOffsets[measurement] / 2 - popperRect[measurement] / 2;\n\n if (placement === secondarySide) {\n popperOffsets[secondarySide] = referenceOffsets[secondarySide] - popperRect[secondaryMeasurement];\n } else {\n popperOffsets[secondarySide] = referenceOffsets[getOppositePlacement(secondarySide)];\n }\n\n return popperOffsets;\n}\n/**\n * Mimics the `find` method of Array\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\n\n\nfunction find(arr, check) {\n // use native find if supported\n if (Array.prototype.find) {\n return arr.find(check);\n } // use `filter` to obtain the same behavior of `find`\n\n\n return arr.filter(check)[0];\n}\n/**\n * Return the index of the matching object\n * @method\n * @memberof Popper.Utils\n * @argument {Array} arr\n * @argument prop\n * @argument value\n * @returns index or -1\n */\n\n\nfunction findIndex(arr, prop, value) {\n // use native findIndex if supported\n if (Array.prototype.findIndex) {\n return arr.findIndex(function (cur) {\n return cur[prop] === value;\n });\n } // use `find` + `indexOf` if `findIndex` isn't supported\n\n\n var match = find(arr, function (obj) {\n return obj[prop] === value;\n });\n return arr.indexOf(match);\n}\n/**\n * Loop trough the list of modifiers and run them in order,\n * each of them will then edit the data object.\n * @method\n * @memberof Popper.Utils\n * @param {dataObject} data\n * @param {Array} modifiers\n * @param {String} ends - Optional modifier name used as stopper\n * @returns {dataObject}\n */\n\n\nfunction runModifiers(modifiers, data, ends) {\n var modifiersToRun = ends === undefined ? modifiers : modifiers.slice(0, findIndex(modifiers, 'name', ends));\n modifiersToRun.forEach(function (modifier) {\n if (modifier['function']) {\n // eslint-disable-line dot-notation\n console.warn('`modifier.function` is deprecated, use `modifier.fn`!');\n }\n\n var fn = modifier['function'] || modifier.fn; // eslint-disable-line dot-notation\n\n if (modifier.enabled && isFunction(fn)) {\n // Add properties to offsets to make them a complete clientRect object\n // we do this before each modifier to make sure the previous one doesn't\n // mess with these values\n data.offsets.popper = getClientRect(data.offsets.popper);\n data.offsets.reference = getClientRect(data.offsets.reference);\n data = fn(data, modifier);\n }\n });\n return data;\n}\n/**\n * Updates the position of the popper, computing the new offsets and applying\n * the new style.
\n * Prefer `scheduleUpdate` over `update` because of performance reasons.\n * @method\n * @memberof Popper\n */\n\n\nfunction update() {\n // if popper is destroyed, don't perform any further update\n if (this.state.isDestroyed) {\n return;\n }\n\n var data = {\n instance: this,\n styles: {},\n arrowStyles: {},\n attributes: {},\n flipped: false,\n offsets: {}\n }; // compute reference element offsets\n\n data.offsets.reference = getReferenceOffsets(this.state, this.popper, this.reference, this.options.positionFixed); // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n\n data.placement = computeAutoPlacement(this.options.placement, data.offsets.reference, this.popper, this.reference, this.options.modifiers.flip.boundariesElement, this.options.modifiers.flip.padding); // store the computed placement inside `originalPlacement`\n\n data.originalPlacement = data.placement;\n data.positionFixed = this.options.positionFixed; // compute the popper offsets\n\n data.offsets.popper = getPopperOffsets(this.popper, data.offsets.reference, data.placement);\n data.offsets.popper.position = this.options.positionFixed ? 'fixed' : 'absolute'; // run the modifiers\n\n data = runModifiers(this.modifiers, data); // the first `update` will call `onCreate` callback\n // the other ones will call `onUpdate` callback\n\n if (!this.state.isCreated) {\n this.state.isCreated = true;\n this.options.onCreate(data);\n } else {\n this.options.onUpdate(data);\n }\n}\n/**\n * Helper used to know if the given modifier is enabled.\n * @method\n * @memberof Popper.Utils\n * @returns {Boolean}\n */\n\n\nfunction isModifierEnabled(modifiers, modifierName) {\n return modifiers.some(function (_ref) {\n var name = _ref.name,\n enabled = _ref.enabled;\n return enabled && name === modifierName;\n });\n}\n/**\n * Get the prefixed supported property name\n * @method\n * @memberof Popper.Utils\n * @argument {String} property (camelCase)\n * @returns {String} prefixed property (camelCase or PascalCase, depending on the vendor prefix)\n */\n\n\nfunction getSupportedPropertyName(property) {\n var prefixes = [false, 'ms', 'Webkit', 'Moz', 'O'];\n var upperProp = property.charAt(0).toUpperCase() + property.slice(1);\n\n for (var i = 0; i < prefixes.length; i++) {\n var prefix = prefixes[i];\n var toCheck = prefix ? '' + prefix + upperProp : property;\n\n if (typeof document.body.style[toCheck] !== 'undefined') {\n return toCheck;\n }\n }\n\n return null;\n}\n/**\n * Destroys the popper.\n * @method\n * @memberof Popper\n */\n\n\nfunction destroy() {\n this.state.isDestroyed = true; // touch DOM only if `applyStyle` modifier is enabled\n\n if (isModifierEnabled(this.modifiers, 'applyStyle')) {\n this.popper.removeAttribute('x-placement');\n this.popper.style.position = '';\n this.popper.style.top = '';\n this.popper.style.left = '';\n this.popper.style.right = '';\n this.popper.style.bottom = '';\n this.popper.style.willChange = '';\n this.popper.style[getSupportedPropertyName('transform')] = '';\n }\n\n this.disableEventListeners(); // remove the popper if user explicitly asked for the deletion on destroy\n // do not use `remove` because IE11 doesn't support it\n\n if (this.options.removeOnDestroy) {\n this.popper.parentNode.removeChild(this.popper);\n }\n\n return this;\n}\n/**\n * Get the window associated with the element\n * @argument {Element} element\n * @returns {Window}\n */\n\n\nfunction getWindow(element) {\n var ownerDocument = element.ownerDocument;\n return ownerDocument ? ownerDocument.defaultView : window;\n}\n\nfunction attachToScrollParents(scrollParent, event, callback, scrollParents) {\n var isBody = scrollParent.nodeName === 'BODY';\n var target = isBody ? scrollParent.ownerDocument.defaultView : scrollParent;\n target.addEventListener(event, callback, {\n passive: true\n });\n\n if (!isBody) {\n attachToScrollParents(getScrollParent(target.parentNode), event, callback, scrollParents);\n }\n\n scrollParents.push(target);\n}\n/**\n * Setup needed event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction setupEventListeners(reference, options, state, updateBound) {\n // Resize event listener on window\n state.updateBound = updateBound;\n getWindow(reference).addEventListener('resize', state.updateBound, {\n passive: true\n }); // Scroll event listener on scroll parents\n\n var scrollElement = getScrollParent(reference);\n attachToScrollParents(scrollElement, 'scroll', state.updateBound, state.scrollParents);\n state.scrollElement = scrollElement;\n state.eventsEnabled = true;\n return state;\n}\n/**\n * It will add resize/scroll events and start recalculating\n * position of the popper element when they are triggered.\n * @method\n * @memberof Popper\n */\n\n\nfunction enableEventListeners() {\n if (!this.state.eventsEnabled) {\n this.state = setupEventListeners(this.reference, this.options, this.state, this.scheduleUpdate);\n }\n}\n/**\n * Remove event listeners used to update the popper position\n * @method\n * @memberof Popper.Utils\n * @private\n */\n\n\nfunction removeEventListeners(reference, state) {\n // Remove resize event listener on window\n getWindow(reference).removeEventListener('resize', state.updateBound); // Remove scroll event listener on scroll parents\n\n state.scrollParents.forEach(function (target) {\n target.removeEventListener('scroll', state.updateBound);\n }); // Reset state\n\n state.updateBound = null;\n state.scrollParents = [];\n state.scrollElement = null;\n state.eventsEnabled = false;\n return state;\n}\n/**\n * It will remove resize/scroll events and won't recalculate popper position\n * when they are triggered. It also won't trigger `onUpdate` callback anymore,\n * unless you call `update` method manually.\n * @method\n * @memberof Popper\n */\n\n\nfunction disableEventListeners() {\n if (this.state.eventsEnabled) {\n cancelAnimationFrame(this.scheduleUpdate);\n this.state = removeEventListeners(this.reference, this.state);\n }\n}\n/**\n * Tells if a given input is a number\n * @method\n * @memberof Popper.Utils\n * @param {*} input to check\n * @return {Boolean}\n */\n\n\nfunction isNumeric(n) {\n return n !== '' && !isNaN(parseFloat(n)) && isFinite(n);\n}\n/**\n * Set the style to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the style to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\n\n\nfunction setStyles(element, styles) {\n Object.keys(styles).forEach(function (prop) {\n var unit = ''; // add unit if the value is numeric and is one of the following\n\n if (['width', 'height', 'top', 'right', 'bottom', 'left'].indexOf(prop) !== -1 && isNumeric(styles[prop])) {\n unit = 'px';\n }\n\n element.style[prop] = styles[prop] + unit;\n });\n}\n/**\n * Set the attributes to the given popper\n * @method\n * @memberof Popper.Utils\n * @argument {Element} element - Element to apply the attributes to\n * @argument {Object} styles\n * Object with a list of properties and values which will be applied to the element\n */\n\n\nfunction setAttributes(element, attributes) {\n Object.keys(attributes).forEach(function (prop) {\n var value = attributes[prop];\n\n if (value !== false) {\n element.setAttribute(prop, attributes[prop]);\n } else {\n element.removeAttribute(prop);\n }\n });\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} data.styles - List of style properties - values to apply to popper element\n * @argument {Object} data.attributes - List of attribute properties - values to apply to popper element\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The same data object\n */\n\n\nfunction applyStyle(data) {\n // any property present in `data.styles` will be applied to the popper,\n // in this way we can make the 3rd party modifiers add custom styles to it\n // Be aware, modifiers could override the properties defined in the previous\n // lines of this modifier!\n setStyles(data.instance.popper, data.styles); // any property present in `data.attributes` will be applied to the popper,\n // they will be set as HTML attributes of the element\n\n setAttributes(data.instance.popper, data.attributes); // if arrowElement is defined and arrowStyles has some properties\n\n if (data.arrowElement && Object.keys(data.arrowStyles).length) {\n setStyles(data.arrowElement, data.arrowStyles);\n }\n\n return data;\n}\n/**\n * Set the x-placement attribute before everything else because it could be used\n * to add margins to the popper margins needs to be calculated to get the\n * correct popper offsets.\n * @method\n * @memberof Popper.modifiers\n * @param {HTMLElement} reference - The reference element used to position the popper\n * @param {HTMLElement} popper - The HTML element used as popper\n * @param {Object} options - Popper.js options\n */\n\n\nfunction applyStyleOnLoad(reference, popper, options, modifierOptions, state) {\n // compute reference element offsets\n var referenceOffsets = getReferenceOffsets(state, popper, reference, options.positionFixed); // compute auto placement, store placement inside the data object,\n // modifiers will be able to edit `placement` if needed\n // and refer to originalPlacement to know the original value\n\n var placement = computeAutoPlacement(options.placement, referenceOffsets, popper, reference, options.modifiers.flip.boundariesElement, options.modifiers.flip.padding);\n popper.setAttribute('x-placement', placement); // Apply `position` to popper before anything else because\n // without the position applied we can't guarantee correct computations\n\n setStyles(popper, {\n position: options.positionFixed ? 'fixed' : 'absolute'\n });\n return options;\n}\n/**\n * @function\n * @memberof Popper.Utils\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Boolean} shouldRound - If the offsets should be rounded at all\n * @returns {Object} The popper's position offsets rounded\n *\n * The tale of pixel-perfect positioning. It's still not 100% perfect, but as\n * good as it can be within reason.\n * Discussion here: https://github.com/FezVrasta/popper.js/pull/715\n *\n * Low DPI screens cause a popper to be blurry if not using full pixels (Safari\n * as well on High DPI screens).\n *\n * Firefox prefers no rounding for positioning and does not have blurriness on\n * high DPI screens.\n *\n * Only horizontal placement and left/right values need to be considered.\n */\n\n\nfunction getRoundedOffsets(data, shouldRound) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var round = Math.round,\n floor = Math.floor;\n\n var noRound = function noRound(v) {\n return v;\n };\n\n var referenceWidth = round(reference.width);\n var popperWidth = round(popper.width);\n var isVertical = ['left', 'right'].indexOf(data.placement) !== -1;\n var isVariation = data.placement.indexOf('-') !== -1;\n var sameWidthParity = referenceWidth % 2 === popperWidth % 2;\n var bothOddWidth = referenceWidth % 2 === 1 && popperWidth % 2 === 1;\n var horizontalToInteger = !shouldRound ? noRound : isVertical || isVariation || sameWidthParity ? round : floor;\n var verticalToInteger = !shouldRound ? noRound : round;\n return {\n left: horizontalToInteger(bothOddWidth && !isVariation && shouldRound ? popper.left - 1 : popper.left),\n top: verticalToInteger(popper.top),\n bottom: verticalToInteger(popper.bottom),\n right: horizontalToInteger(popper.right)\n };\n}\n\nvar isFirefox = isBrowser && /Firefox/i.test(navigator.userAgent);\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\nfunction computeStyle(data, options) {\n var x = options.x,\n y = options.y;\n var popper = data.offsets.popper; // Remove this legacy support in Popper.js v2\n\n var legacyGpuAccelerationOption = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'applyStyle';\n }).gpuAcceleration;\n\n if (legacyGpuAccelerationOption !== undefined) {\n console.warn('WARNING: `gpuAcceleration` option moved to `computeStyle` modifier and will not be supported in future versions of Popper.js!');\n }\n\n var gpuAcceleration = legacyGpuAccelerationOption !== undefined ? legacyGpuAccelerationOption : options.gpuAcceleration;\n var offsetParent = getOffsetParent(data.instance.popper);\n var offsetParentRect = getBoundingClientRect(offsetParent); // Styles\n\n var styles = {\n position: popper.position\n };\n var offsets = getRoundedOffsets(data, window.devicePixelRatio < 2 || !isFirefox);\n var sideA = x === 'bottom' ? 'top' : 'bottom';\n var sideB = y === 'right' ? 'left' : 'right'; // if gpuAcceleration is set to `true` and transform is supported,\n // we use `translate3d` to apply the position to the popper we\n // automatically use the supported prefixed version if needed\n\n var prefixedProperty = getSupportedPropertyName('transform'); // now, let's make a step back and look at this code closely (wtf?)\n // If the content of the popper grows once it's been positioned, it\n // may happen that the popper gets misplaced because of the new content\n // overflowing its reference element\n // To avoid this problem, we provide two options (x and y), which allow\n // the consumer to define the offset origin.\n // If we position a popper on top of a reference element, we can set\n // `x` to `top` to make the popper grow towards its top instead of\n // its bottom.\n\n var left = void 0,\n top = void 0;\n\n if (sideA === 'bottom') {\n // when offsetParent is the positioning is relative to the bottom of the screen (excluding the scrollbar)\n // and not the bottom of the html element\n if (offsetParent.nodeName === 'HTML') {\n top = -offsetParent.clientHeight + offsets.bottom;\n } else {\n top = -offsetParentRect.height + offsets.bottom;\n }\n } else {\n top = offsets.top;\n }\n\n if (sideB === 'right') {\n if (offsetParent.nodeName === 'HTML') {\n left = -offsetParent.clientWidth + offsets.right;\n } else {\n left = -offsetParentRect.width + offsets.right;\n }\n } else {\n left = offsets.left;\n }\n\n if (gpuAcceleration && prefixedProperty) {\n styles[prefixedProperty] = 'translate3d(' + left + 'px, ' + top + 'px, 0)';\n styles[sideA] = 0;\n styles[sideB] = 0;\n styles.willChange = 'transform';\n } else {\n // othwerise, we use the standard `top`, `left`, `bottom` and `right` properties\n var invertTop = sideA === 'bottom' ? -1 : 1;\n var invertLeft = sideB === 'right' ? -1 : 1;\n styles[sideA] = top * invertTop;\n styles[sideB] = left * invertLeft;\n styles.willChange = sideA + ', ' + sideB;\n } // Attributes\n\n\n var attributes = {\n 'x-placement': data.placement\n }; // Update `data` attributes, styles and arrowStyles\n\n data.attributes = _extends({}, attributes, data.attributes);\n data.styles = _extends({}, styles, data.styles);\n data.arrowStyles = _extends({}, data.offsets.arrow, data.arrowStyles);\n return data;\n}\n/**\n * Helper used to know if the given modifier depends from another one.
\n * It checks if the needed modifier is listed and enabled.\n * @method\n * @memberof Popper.Utils\n * @param {Array} modifiers - list of modifiers\n * @param {String} requestingName - name of requesting modifier\n * @param {String} requestedName - name of requested modifier\n * @returns {Boolean}\n */\n\n\nfunction isModifierRequired(modifiers, requestingName, requestedName) {\n var requesting = find(modifiers, function (_ref) {\n var name = _ref.name;\n return name === requestingName;\n });\n var isRequired = !!requesting && modifiers.some(function (modifier) {\n return modifier.name === requestedName && modifier.enabled && modifier.order < requesting.order;\n });\n\n if (!isRequired) {\n var _requesting = '`' + requestingName + '`';\n\n var requested = '`' + requestedName + '`';\n console.warn(requested + ' modifier is required by ' + _requesting + ' modifier in order to work, be sure to include it before ' + _requesting + '!');\n }\n\n return isRequired;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction arrow(data, options) {\n var _data$offsets$arrow; // arrow depends on keepTogether in order to work\n\n\n if (!isModifierRequired(data.instance.modifiers, 'arrow', 'keepTogether')) {\n return data;\n }\n\n var arrowElement = options.element; // if arrowElement is a string, suppose it's a CSS selector\n\n if (typeof arrowElement === 'string') {\n arrowElement = data.instance.popper.querySelector(arrowElement); // if arrowElement is not found, don't run the modifier\n\n if (!arrowElement) {\n return data;\n }\n } else {\n // if the arrowElement isn't a query selector we must check that the\n // provided DOM node is child of its popper node\n if (!data.instance.popper.contains(arrowElement)) {\n console.warn('WARNING: `arrow.element` must be child of its popper element!');\n return data;\n }\n }\n\n var placement = data.placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isVertical = ['left', 'right'].indexOf(placement) !== -1;\n var len = isVertical ? 'height' : 'width';\n var sideCapitalized = isVertical ? 'Top' : 'Left';\n var side = sideCapitalized.toLowerCase();\n var altSide = isVertical ? 'left' : 'top';\n var opSide = isVertical ? 'bottom' : 'right';\n var arrowElementSize = getOuterSizes(arrowElement)[len]; //\n // extends keepTogether behavior making sure the popper and its\n // reference have enough pixels in conjunction\n //\n // top/left side\n\n if (reference[opSide] - arrowElementSize < popper[side]) {\n data.offsets.popper[side] -= popper[side] - (reference[opSide] - arrowElementSize);\n } // bottom/right side\n\n\n if (reference[side] + arrowElementSize > popper[opSide]) {\n data.offsets.popper[side] += reference[side] + arrowElementSize - popper[opSide];\n }\n\n data.offsets.popper = getClientRect(data.offsets.popper); // compute center of the popper\n\n var center = reference[side] + reference[len] / 2 - arrowElementSize / 2; // Compute the sideValue using the updated popper offsets\n // take popper margin in account because we don't have this info available\n\n var css = getStyleComputedProperty(data.instance.popper);\n var popperMarginSide = parseFloat(css['margin' + sideCapitalized]);\n var popperBorderSide = parseFloat(css['border' + sideCapitalized + 'Width']);\n var sideValue = center - data.offsets.popper[side] - popperMarginSide - popperBorderSide; // prevent arrowElement from being placed not contiguously to its popper\n\n sideValue = Math.max(Math.min(popper[len] - arrowElementSize, sideValue), 0);\n data.arrowElement = arrowElement;\n data.offsets.arrow = (_data$offsets$arrow = {}, defineProperty(_data$offsets$arrow, side, Math.round(sideValue)), defineProperty(_data$offsets$arrow, altSide, ''), _data$offsets$arrow);\n return data;\n}\n/**\n * Get the opposite placement variation of the given one\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement variation\n * @returns {String} flipped placement variation\n */\n\n\nfunction getOppositeVariation(variation) {\n if (variation === 'end') {\n return 'start';\n } else if (variation === 'start') {\n return 'end';\n }\n\n return variation;\n}\n/**\n * List of accepted placements to use as values of the `placement` option.
\n * Valid placements are:\n * - `auto`\n * - `top`\n * - `right`\n * - `bottom`\n * - `left`\n *\n * Each placement can have a variation from this list:\n * - `-start`\n * - `-end`\n *\n * Variations are interpreted easily if you think of them as the left to right\n * written languages. Horizontally (`top` and `bottom`), `start` is left and `end`\n * is right.
\n * Vertically (`left` and `right`), `start` is top and `end` is bottom.\n *\n * Some valid examples are:\n * - `top-end` (on top of reference, right aligned)\n * - `right-start` (on right of reference, top aligned)\n * - `bottom` (on bottom, centered)\n * - `auto-end` (on the side with more space available, alignment depends by placement)\n *\n * @static\n * @type {Array}\n * @enum {String}\n * @readonly\n * @method placements\n * @memberof Popper\n */\n\n\nvar placements = ['auto-start', 'auto', 'auto-end', 'top-start', 'top', 'top-end', 'right-start', 'right', 'right-end', 'bottom-end', 'bottom', 'bottom-start', 'left-end', 'left', 'left-start']; // Get rid of `auto` `auto-start` and `auto-end`\n\nvar validPlacements = placements.slice(3);\n/**\n * Given an initial placement, returns all the subsequent placements\n * clockwise (or counter-clockwise).\n *\n * @method\n * @memberof Popper.Utils\n * @argument {String} placement - A valid placement (it accepts variations)\n * @argument {Boolean} counter - Set to true to walk the placements counterclockwise\n * @returns {Array} placements including their variations\n */\n\nfunction clockwise(placement) {\n var counter = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var index = validPlacements.indexOf(placement);\n var arr = validPlacements.slice(index + 1).concat(validPlacements.slice(0, index));\n return counter ? arr.reverse() : arr;\n}\n\nvar BEHAVIORS = {\n FLIP: 'flip',\n CLOCKWISE: 'clockwise',\n COUNTERCLOCKWISE: 'counterclockwise'\n};\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\nfunction flip(data, options) {\n // if `inner` modifier is enabled, we can't use the `flip` modifier\n if (isModifierEnabled(data.instance.modifiers, 'inner')) {\n return data;\n }\n\n if (data.flipped && data.placement === data.originalPlacement) {\n // seems like flip is trying to loop, probably there's not enough space on any of the flippable sides\n return data;\n }\n\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, options.boundariesElement, data.positionFixed);\n var placement = data.placement.split('-')[0];\n var placementOpposite = getOppositePlacement(placement);\n var variation = data.placement.split('-')[1] || '';\n var flipOrder = [];\n\n switch (options.behavior) {\n case BEHAVIORS.FLIP:\n flipOrder = [placement, placementOpposite];\n break;\n\n case BEHAVIORS.CLOCKWISE:\n flipOrder = clockwise(placement);\n break;\n\n case BEHAVIORS.COUNTERCLOCKWISE:\n flipOrder = clockwise(placement, true);\n break;\n\n default:\n flipOrder = options.behavior;\n }\n\n flipOrder.forEach(function (step, index) {\n if (placement !== step || flipOrder.length === index + 1) {\n return data;\n }\n\n placement = data.placement.split('-')[0];\n placementOpposite = getOppositePlacement(placement);\n var popperOffsets = data.offsets.popper;\n var refOffsets = data.offsets.reference; // using floor because the reference offsets may contain decimals we are not going to consider here\n\n var floor = Math.floor;\n var overlapsRef = placement === 'left' && floor(popperOffsets.right) > floor(refOffsets.left) || placement === 'right' && floor(popperOffsets.left) < floor(refOffsets.right) || placement === 'top' && floor(popperOffsets.bottom) > floor(refOffsets.top) || placement === 'bottom' && floor(popperOffsets.top) < floor(refOffsets.bottom);\n var overflowsLeft = floor(popperOffsets.left) < floor(boundaries.left);\n var overflowsRight = floor(popperOffsets.right) > floor(boundaries.right);\n var overflowsTop = floor(popperOffsets.top) < floor(boundaries.top);\n var overflowsBottom = floor(popperOffsets.bottom) > floor(boundaries.bottom);\n var overflowsBoundaries = placement === 'left' && overflowsLeft || placement === 'right' && overflowsRight || placement === 'top' && overflowsTop || placement === 'bottom' && overflowsBottom; // flip the variation if required\n\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1; // flips variation if reference element overflows boundaries\n\n var flippedVariationByRef = !!options.flipVariations && (isVertical && variation === 'start' && overflowsLeft || isVertical && variation === 'end' && overflowsRight || !isVertical && variation === 'start' && overflowsTop || !isVertical && variation === 'end' && overflowsBottom); // flips variation if popper content overflows boundaries\n\n var flippedVariationByContent = !!options.flipVariationsByContent && (isVertical && variation === 'start' && overflowsRight || isVertical && variation === 'end' && overflowsLeft || !isVertical && variation === 'start' && overflowsBottom || !isVertical && variation === 'end' && overflowsTop);\n var flippedVariation = flippedVariationByRef || flippedVariationByContent;\n\n if (overlapsRef || overflowsBoundaries || flippedVariation) {\n // this boolean to detect any flip loop\n data.flipped = true;\n\n if (overlapsRef || overflowsBoundaries) {\n placement = flipOrder[index + 1];\n }\n\n if (flippedVariation) {\n variation = getOppositeVariation(variation);\n }\n\n data.placement = placement + (variation ? '-' + variation : ''); // this object contains `position`, we want to preserve it along with\n // any additional property we may add in the future\n\n data.offsets.popper = _extends({}, data.offsets.popper, getPopperOffsets(data.instance.popper, data.offsets.reference, data.placement));\n data = runModifiers(data.instance.modifiers, data, 'flip');\n }\n });\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction keepTogether(data) {\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var placement = data.placement.split('-')[0];\n var floor = Math.floor;\n var isVertical = ['top', 'bottom'].indexOf(placement) !== -1;\n var side = isVertical ? 'right' : 'bottom';\n var opSide = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n\n if (popper[side] < floor(reference[opSide])) {\n data.offsets.popper[opSide] = floor(reference[opSide]) - popper[measurement];\n }\n\n if (popper[opSide] > floor(reference[side])) {\n data.offsets.popper[opSide] = floor(reference[side]);\n }\n\n return data;\n}\n/**\n * Converts a string containing value + unit into a px value number\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} str - Value + unit string\n * @argument {String} measurement - `height` or `width`\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @returns {Number|String}\n * Value in pixels, or original string if no values were extracted\n */\n\n\nfunction toValue(str, measurement, popperOffsets, referenceOffsets) {\n // separate value from unit\n var split = str.match(/((?:\\-|\\+)?\\d*\\.?\\d*)(.*)/);\n var value = +split[1];\n var unit = split[2]; // If it's not a number it's an operator, I guess\n\n if (!value) {\n return str;\n }\n\n if (unit.indexOf('%') === 0) {\n var element = void 0;\n\n switch (unit) {\n case '%p':\n element = popperOffsets;\n break;\n\n case '%':\n case '%r':\n default:\n element = referenceOffsets;\n }\n\n var rect = getClientRect(element);\n return rect[measurement] / 100 * value;\n } else if (unit === 'vh' || unit === 'vw') {\n // if is a vh or vw, we calculate the size based on the viewport\n var size = void 0;\n\n if (unit === 'vh') {\n size = Math.max(document.documentElement.clientHeight, window.innerHeight || 0);\n } else {\n size = Math.max(document.documentElement.clientWidth, window.innerWidth || 0);\n }\n\n return size / 100 * value;\n } else {\n // if is an explicit pixel unit, we get rid of the unit and keep the value\n // if is an implicit unit, it's px, and we return just the value\n return value;\n }\n}\n/**\n * Parse an `offset` string to extrapolate `x` and `y` numeric offsets.\n * @function\n * @memberof {modifiers~offset}\n * @private\n * @argument {String} offset\n * @argument {Object} popperOffsets\n * @argument {Object} referenceOffsets\n * @argument {String} basePlacement\n * @returns {Array} a two cells array with x and y offsets in numbers\n */\n\n\nfunction parseOffset(offset, popperOffsets, referenceOffsets, basePlacement) {\n var offsets = [0, 0]; // Use height if placement is left or right and index is 0 otherwise use width\n // in this way the first offset will use an axis and the second one\n // will use the other one\n\n var useHeight = ['right', 'left'].indexOf(basePlacement) !== -1; // Split the offset string to obtain a list of values and operands\n // The regex addresses values with the plus or minus sign in front (+10, -20, etc)\n\n var fragments = offset.split(/(\\+|\\-)/).map(function (frag) {\n return frag.trim();\n }); // Detect if the offset string contains a pair of values or a single one\n // they could be separated by comma or space\n\n var divider = fragments.indexOf(find(fragments, function (frag) {\n return frag.search(/,|\\s/) !== -1;\n }));\n\n if (fragments[divider] && fragments[divider].indexOf(',') === -1) {\n console.warn('Offsets separated by white space(s) are deprecated, use a comma (,) instead.');\n } // If divider is found, we divide the list of values and operands to divide\n // them by ofset X and Y.\n\n\n var splitRegex = /\\s*,\\s*|\\s+/;\n var ops = divider !== -1 ? [fragments.slice(0, divider).concat([fragments[divider].split(splitRegex)[0]]), [fragments[divider].split(splitRegex)[1]].concat(fragments.slice(divider + 1))] : [fragments]; // Convert the values with units to absolute pixels to allow our computations\n\n ops = ops.map(function (op, index) {\n // Most of the units rely on the orientation of the popper\n var measurement = (index === 1 ? !useHeight : useHeight) ? 'height' : 'width';\n var mergeWithPrevious = false;\n return op // This aggregates any `+` or `-` sign that aren't considered operators\n // e.g.: 10 + +5 => [10, +, +5]\n .reduce(function (a, b) {\n if (a[a.length - 1] === '' && ['+', '-'].indexOf(b) !== -1) {\n a[a.length - 1] = b;\n mergeWithPrevious = true;\n return a;\n } else if (mergeWithPrevious) {\n a[a.length - 1] += b;\n mergeWithPrevious = false;\n return a;\n } else {\n return a.concat(b);\n }\n }, []) // Here we convert the string values into number values (in px)\n .map(function (str) {\n return toValue(str, measurement, popperOffsets, referenceOffsets);\n });\n }); // Loop trough the offsets arrays and execute the operations\n\n ops.forEach(function (op, index) {\n op.forEach(function (frag, index2) {\n if (isNumeric(frag)) {\n offsets[index] += frag * (op[index2 - 1] === '-' ? -1 : 1);\n }\n });\n });\n return offsets;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @argument {Number|String} options.offset=0\n * The offset value as described in the modifier description\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction offset(data, _ref) {\n var offset = _ref.offset;\n var placement = data.placement,\n _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var basePlacement = placement.split('-')[0];\n var offsets = void 0;\n\n if (isNumeric(+offset)) {\n offsets = [+offset, 0];\n } else {\n offsets = parseOffset(offset, popper, reference, basePlacement);\n }\n\n if (basePlacement === 'left') {\n popper.top += offsets[0];\n popper.left -= offsets[1];\n } else if (basePlacement === 'right') {\n popper.top += offsets[0];\n popper.left += offsets[1];\n } else if (basePlacement === 'top') {\n popper.left += offsets[0];\n popper.top -= offsets[1];\n } else if (basePlacement === 'bottom') {\n popper.left += offsets[0];\n popper.top += offsets[1];\n }\n\n data.popper = popper;\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction preventOverflow(data, options) {\n var boundariesElement = options.boundariesElement || getOffsetParent(data.instance.popper); // If offsetParent is the reference element, we really want to\n // go one step up and use the next offsetParent as reference to\n // avoid to make this modifier completely useless and look like broken\n\n if (data.instance.reference === boundariesElement) {\n boundariesElement = getOffsetParent(boundariesElement);\n } // NOTE: DOM access here\n // resets the popper's position so that the document size can be calculated excluding\n // the size of the popper element itself\n\n\n var transformProp = getSupportedPropertyName('transform');\n var popperStyles = data.instance.popper.style; // assignment to help minification\n\n var top = popperStyles.top,\n left = popperStyles.left,\n transform = popperStyles[transformProp];\n popperStyles.top = '';\n popperStyles.left = '';\n popperStyles[transformProp] = '';\n var boundaries = getBoundaries(data.instance.popper, data.instance.reference, options.padding, boundariesElement, data.positionFixed); // NOTE: DOM access here\n // restores the original style properties after the offsets have been computed\n\n popperStyles.top = top;\n popperStyles.left = left;\n popperStyles[transformProp] = transform;\n options.boundaries = boundaries;\n var order = options.priority;\n var popper = data.offsets.popper;\n var check = {\n primary: function primary(placement) {\n var value = popper[placement];\n\n if (popper[placement] < boundaries[placement] && !options.escapeWithReference) {\n value = Math.max(popper[placement], boundaries[placement]);\n }\n\n return defineProperty({}, placement, value);\n },\n secondary: function secondary(placement) {\n var mainSide = placement === 'right' ? 'left' : 'top';\n var value = popper[mainSide];\n\n if (popper[placement] > boundaries[placement] && !options.escapeWithReference) {\n value = Math.min(popper[mainSide], boundaries[placement] - (placement === 'right' ? popper.width : popper.height));\n }\n\n return defineProperty({}, mainSide, value);\n }\n };\n order.forEach(function (placement) {\n var side = ['left', 'top'].indexOf(placement) !== -1 ? 'primary' : 'secondary';\n popper = _extends({}, popper, check[side](placement));\n });\n data.offsets.popper = popper;\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction shift(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var shiftvariation = placement.split('-')[1]; // if shift shiftvariation is specified, run the modifier\n\n if (shiftvariation) {\n var _data$offsets = data.offsets,\n reference = _data$offsets.reference,\n popper = _data$offsets.popper;\n var isVertical = ['bottom', 'top'].indexOf(basePlacement) !== -1;\n var side = isVertical ? 'left' : 'top';\n var measurement = isVertical ? 'width' : 'height';\n var shiftOffsets = {\n start: defineProperty({}, side, reference[side]),\n end: defineProperty({}, side, reference[side] + reference[measurement] - popper[measurement])\n };\n data.offsets.popper = _extends({}, popper, shiftOffsets[shiftvariation]);\n }\n\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by update method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction hide(data) {\n if (!isModifierRequired(data.instance.modifiers, 'hide', 'preventOverflow')) {\n return data;\n }\n\n var refRect = data.offsets.reference;\n var bound = find(data.instance.modifiers, function (modifier) {\n return modifier.name === 'preventOverflow';\n }).boundaries;\n\n if (refRect.bottom < bound.top || refRect.left > bound.right || refRect.top > bound.bottom || refRect.right < bound.left) {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === true) {\n return data;\n }\n\n data.hide = true;\n data.attributes['x-out-of-boundaries'] = '';\n } else {\n // Avoid unnecessary DOM access if visibility hasn't changed\n if (data.hide === false) {\n return data;\n }\n\n data.hide = false;\n data.attributes['x-out-of-boundaries'] = false;\n }\n\n return data;\n}\n/**\n * @function\n * @memberof Modifiers\n * @argument {Object} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {Object} The data object, properly modified\n */\n\n\nfunction inner(data) {\n var placement = data.placement;\n var basePlacement = placement.split('-')[0];\n var _data$offsets = data.offsets,\n popper = _data$offsets.popper,\n reference = _data$offsets.reference;\n var isHoriz = ['left', 'right'].indexOf(basePlacement) !== -1;\n var subtractLength = ['top', 'left'].indexOf(basePlacement) === -1;\n popper[isHoriz ? 'left' : 'top'] = reference[basePlacement] - (subtractLength ? popper[isHoriz ? 'width' : 'height'] : 0);\n data.placement = getOppositePlacement(placement);\n data.offsets.popper = getClientRect(popper);\n return data;\n}\n/**\n * Modifier function, each modifier can have a function of this type assigned\n * to its `fn` property.
\n * These functions will be called on each update, this means that you must\n * make sure they are performant enough to avoid performance bottlenecks.\n *\n * @function ModifierFn\n * @argument {dataObject} data - The data object generated by `update` method\n * @argument {Object} options - Modifiers configuration and options\n * @returns {dataObject} The data object, properly modified\n */\n\n/**\n * Modifiers are plugins used to alter the behavior of your poppers.
\n * Popper.js uses a set of 9 modifiers to provide all the basic functionalities\n * needed by the library.\n *\n * Usually you don't want to override the `order`, `fn` and `onLoad` props.\n * All the other properties are configurations that could be tweaked.\n * @namespace modifiers\n */\n\n\nvar modifiers = {\n /**\n * Modifier used to shift the popper on the start or end of its reference\n * element.
\n * It will read the variation of the `placement` property.
\n * It can be one either `-end` or `-start`.\n * @memberof modifiers\n * @inner\n */\n shift: {\n /** @prop {number} order=100 - Index used to define the order of execution */\n order: 100,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: shift\n },\n\n /**\n * The `offset` modifier can shift your popper on both its axis.\n *\n * It accepts the following units:\n * - `px` or unit-less, interpreted as pixels\n * - `%` or `%r`, percentage relative to the length of the reference element\n * - `%p`, percentage relative to the length of the popper element\n * - `vw`, CSS viewport width unit\n * - `vh`, CSS viewport height unit\n *\n * For length is intended the main axis relative to the placement of the popper.
\n * This means that if the placement is `top` or `bottom`, the length will be the\n * `width`. In case of `left` or `right`, it will be the `height`.\n *\n * You can provide a single value (as `Number` or `String`), or a pair of values\n * as `String` divided by a comma or one (or more) white spaces.
\n * The latter is a deprecated method because it leads to confusion and will be\n * removed in v2.
\n * Additionally, it accepts additions and subtractions between different units.\n * Note that multiplications and divisions aren't supported.\n *\n * Valid examples are:\n * ```\n * 10\n * '10%'\n * '10, 10'\n * '10%, 10'\n * '10 + 10%'\n * '10 - 5vh + 3%'\n * '-10px + 5vh, 5px - 6%'\n * ```\n * > **NB**: If you desire to apply offsets to your poppers in a way that may make them overlap\n * > with their reference element, unfortunately, you will have to disable the `flip` modifier.\n * > You can read more on this at this [issue](https://github.com/FezVrasta/popper.js/issues/373).\n *\n * @memberof modifiers\n * @inner\n */\n offset: {\n /** @prop {number} order=200 - Index used to define the order of execution */\n order: 200,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: offset,\n\n /** @prop {Number|String} offset=0\n * The offset value as described in the modifier description\n */\n offset: 0\n },\n\n /**\n * Modifier used to prevent the popper from being positioned outside the boundary.\n *\n * A scenario exists where the reference itself is not within the boundaries.
\n * We can say it has \"escaped the boundaries\" — or just \"escaped\".
\n * In this case we need to decide whether the popper should either:\n *\n * - detach from the reference and remain \"trapped\" in the boundaries, or\n * - if it should ignore the boundary and \"escape with its reference\"\n *\n * When `escapeWithReference` is set to`true` and reference is completely\n * outside its boundaries, the popper will overflow (or completely leave)\n * the boundaries in order to remain attached to the edge of the reference.\n *\n * @memberof modifiers\n * @inner\n */\n preventOverflow: {\n /** @prop {number} order=300 - Index used to define the order of execution */\n order: 300,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: preventOverflow,\n\n /**\n * @prop {Array} [priority=['left','right','top','bottom']]\n * Popper will try to prevent overflow following these priorities by default,\n * then, it could overflow on the left and on top of the `boundariesElement`\n */\n priority: ['left', 'right', 'top', 'bottom'],\n\n /**\n * @prop {number} padding=5\n * Amount of pixel used to define a minimum distance between the boundaries\n * and the popper. This makes sure the popper always has a little padding\n * between the edges of its container\n */\n padding: 5,\n\n /**\n * @prop {String|HTMLElement} boundariesElement='scrollParent'\n * Boundaries used by the modifier. Can be `scrollParent`, `window`,\n * `viewport` or any DOM element.\n */\n boundariesElement: 'scrollParent'\n },\n\n /**\n * Modifier used to make sure the reference and its popper stay near each other\n * without leaving any gap between the two. Especially useful when the arrow is\n * enabled and you want to ensure that it points to its reference element.\n * It cares only about the first axis. You can still have poppers with margin\n * between the popper and its reference element.\n * @memberof modifiers\n * @inner\n */\n keepTogether: {\n /** @prop {number} order=400 - Index used to define the order of execution */\n order: 400,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: keepTogether\n },\n\n /**\n * This modifier is used to move the `arrowElement` of the popper to make\n * sure it is positioned between the reference element and its popper element.\n * It will read the outer size of the `arrowElement` node to detect how many\n * pixels of conjunction are needed.\n *\n * It has no effect if no `arrowElement` is provided.\n * @memberof modifiers\n * @inner\n */\n arrow: {\n /** @prop {number} order=500 - Index used to define the order of execution */\n order: 500,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: arrow,\n\n /** @prop {String|HTMLElement} element='[x-arrow]' - Selector or node used as arrow */\n element: '[x-arrow]'\n },\n\n /**\n * Modifier used to flip the popper's placement when it starts to overlap its\n * reference element.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n *\n * **NOTE:** this modifier will interrupt the current update cycle and will\n * restart it if it detects the need to flip the placement.\n * @memberof modifiers\n * @inner\n */\n flip: {\n /** @prop {number} order=600 - Index used to define the order of execution */\n order: 600,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: flip,\n\n /**\n * @prop {String|Array} behavior='flip'\n * The behavior used to change the popper's placement. It can be one of\n * `flip`, `clockwise`, `counterclockwise` or an array with a list of valid\n * placements (with optional variations)\n */\n behavior: 'flip',\n\n /**\n * @prop {number} padding=5\n * The popper will flip if it hits the edges of the `boundariesElement`\n */\n padding: 5,\n\n /**\n * @prop {String|HTMLElement} boundariesElement='viewport'\n * The element which will define the boundaries of the popper position.\n * The popper will never be placed outside of the defined boundaries\n * (except if `keepTogether` is enabled)\n */\n boundariesElement: 'viewport',\n\n /**\n * @prop {Boolean} flipVariations=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the reference element overlaps its boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariations: false,\n\n /**\n * @prop {Boolean} flipVariationsByContent=false\n * The popper will switch placement variation between `-start` and `-end` when\n * the popper element overlaps its reference boundaries.\n *\n * The original placement should have a set variation.\n */\n flipVariationsByContent: false\n },\n\n /**\n * Modifier used to make the popper flow toward the inner of the reference element.\n * By default, when this modifier is disabled, the popper will be placed outside\n * the reference element.\n * @memberof modifiers\n * @inner\n */\n inner: {\n /** @prop {number} order=700 - Index used to define the order of execution */\n order: 700,\n\n /** @prop {Boolean} enabled=false - Whether the modifier is enabled or not */\n enabled: false,\n\n /** @prop {ModifierFn} */\n fn: inner\n },\n\n /**\n * Modifier used to hide the popper when its reference element is outside of the\n * popper boundaries. It will set a `x-out-of-boundaries` attribute which can\n * be used to hide with a CSS selector the popper when its reference is\n * out of boundaries.\n *\n * Requires the `preventOverflow` modifier before it in order to work.\n * @memberof modifiers\n * @inner\n */\n hide: {\n /** @prop {number} order=800 - Index used to define the order of execution */\n order: 800,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: hide\n },\n\n /**\n * Computes the style that will be applied to the popper element to gets\n * properly positioned.\n *\n * Note that this modifier will not touch the DOM, it just prepares the styles\n * so that `applyStyle` modifier can apply it. This separation is useful\n * in case you need to replace `applyStyle` with a custom implementation.\n *\n * This modifier has `850` as `order` value to maintain backward compatibility\n * with previous versions of Popper.js. Expect the modifiers ordering method\n * to change in future major versions of the library.\n *\n * @memberof modifiers\n * @inner\n */\n computeStyle: {\n /** @prop {number} order=850 - Index used to define the order of execution */\n order: 850,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: computeStyle,\n\n /**\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: true,\n\n /**\n * @prop {string} [x='bottom']\n * Where to anchor the X axis (`bottom` or `top`). AKA X offset origin.\n * Change this if your popper should grow in a direction different from `bottom`\n */\n x: 'bottom',\n\n /**\n * @prop {string} [x='left']\n * Where to anchor the Y axis (`left` or `right`). AKA Y offset origin.\n * Change this if your popper should grow in a direction different from `right`\n */\n y: 'right'\n },\n\n /**\n * Applies the computed styles to the popper element.\n *\n * All the DOM manipulations are limited to this modifier. This is useful in case\n * you want to integrate Popper.js inside a framework or view library and you\n * want to delegate all the DOM manipulations to it.\n *\n * Note that if you disable this modifier, you must make sure the popper element\n * has its position set to `absolute` before Popper.js can do its work!\n *\n * Just disable this modifier and define your own to achieve the desired effect.\n *\n * @memberof modifiers\n * @inner\n */\n applyStyle: {\n /** @prop {number} order=900 - Index used to define the order of execution */\n order: 900,\n\n /** @prop {Boolean} enabled=true - Whether the modifier is enabled or not */\n enabled: true,\n\n /** @prop {ModifierFn} */\n fn: applyStyle,\n\n /** @prop {Function} */\n onLoad: applyStyleOnLoad,\n\n /**\n * @deprecated since version 1.10.0, the property moved to `computeStyle` modifier\n * @prop {Boolean} gpuAcceleration=true\n * If true, it uses the CSS 3D transformation to position the popper.\n * Otherwise, it will use the `top` and `left` properties\n */\n gpuAcceleration: undefined\n }\n};\n/**\n * The `dataObject` is an object containing all the information used by Popper.js.\n * This object is passed to modifiers and to the `onCreate` and `onUpdate` callbacks.\n * @name dataObject\n * @property {Object} data.instance The Popper.js instance\n * @property {String} data.placement Placement applied to popper\n * @property {String} data.originalPlacement Placement originally defined on init\n * @property {Boolean} data.flipped True if popper has been flipped by flip modifier\n * @property {Boolean} data.hide True if the reference element is out of boundaries, useful to know when to hide the popper\n * @property {HTMLElement} data.arrowElement Node used as arrow by arrow modifier\n * @property {Object} data.styles Any CSS property defined here will be applied to the popper. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.arrowStyles Any CSS property defined here will be applied to the popper arrow. It expects the JavaScript nomenclature (eg. `marginBottom`)\n * @property {Object} data.boundaries Offsets of the popper boundaries\n * @property {Object} data.offsets The measurements of popper, reference and arrow elements\n * @property {Object} data.offsets.popper `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.reference `top`, `left`, `width`, `height` values\n * @property {Object} data.offsets.arrow] `top` and `left` offsets, only one of them will be different from 0\n */\n\n/**\n * Default options provided to Popper.js constructor.
\n * These can be overridden using the `options` argument of Popper.js.
\n * To override an option, simply pass an object with the same\n * structure of the `options` object, as the 3rd argument. For example:\n * ```\n * new Popper(ref, pop, {\n * modifiers: {\n * preventOverflow: { enabled: false }\n * }\n * })\n * ```\n * @type {Object}\n * @static\n * @memberof Popper\n */\n\nvar Defaults = {\n /**\n * Popper's placement.\n * @prop {Popper.placements} placement='bottom'\n */\n placement: 'bottom',\n\n /**\n * Set this to true if you want popper to position it self in 'fixed' mode\n * @prop {Boolean} positionFixed=false\n */\n positionFixed: false,\n\n /**\n * Whether events (resize, scroll) are initially enabled.\n * @prop {Boolean} eventsEnabled=true\n */\n eventsEnabled: true,\n\n /**\n * Set to true if you want to automatically remove the popper when\n * you call the `destroy` method.\n * @prop {Boolean} removeOnDestroy=false\n */\n removeOnDestroy: false,\n\n /**\n * Callback called when the popper is created.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onCreate}\n */\n onCreate: function onCreate() {},\n\n /**\n * Callback called when the popper is updated. This callback is not called\n * on the initialization/creation of the popper, but only on subsequent\n * updates.
\n * By default, it is set to no-op.
\n * Access Popper.js instance with `data.instance`.\n * @prop {onUpdate}\n */\n onUpdate: function onUpdate() {},\n\n /**\n * List of modifiers used to modify the offsets before they are applied to the popper.\n * They provide most of the functionalities of Popper.js.\n * @prop {modifiers}\n */\n modifiers: modifiers\n};\n/**\n * @callback onCreate\n * @param {dataObject} data\n */\n\n/**\n * @callback onUpdate\n * @param {dataObject} data\n */\n// Utils\n// Methods\n\nvar Popper = function () {\n /**\n * Creates a new Popper.js instance.\n * @class Popper\n * @param {Element|referenceObject} reference - The reference element used to position the popper\n * @param {Element} popper - The HTML / XML element used as the popper\n * @param {Object} options - Your custom options to override the ones defined in [Defaults](#defaults)\n * @return {Object} instance - The generated Popper.js instance\n */\n function Popper(reference, popper) {\n var _this = this;\n\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n classCallCheck(this, Popper);\n\n this.scheduleUpdate = function () {\n return requestAnimationFrame(_this.update);\n }; // make update() debounced, so that it only runs at most once-per-tick\n\n\n this.update = debounce(this.update.bind(this)); // with {} we create a new object with the options inside it\n\n this.options = _extends({}, Popper.Defaults, options); // init state\n\n this.state = {\n isDestroyed: false,\n isCreated: false,\n scrollParents: []\n }; // get reference and popper elements (allow jQuery wrappers)\n\n this.reference = reference && reference.jquery ? reference[0] : reference;\n this.popper = popper && popper.jquery ? popper[0] : popper; // Deep merge modifiers options\n\n this.options.modifiers = {};\n Object.keys(_extends({}, Popper.Defaults.modifiers, options.modifiers)).forEach(function (name) {\n _this.options.modifiers[name] = _extends({}, Popper.Defaults.modifiers[name] || {}, options.modifiers ? options.modifiers[name] : {});\n }); // Refactoring modifiers' list (Object => Array)\n\n this.modifiers = Object.keys(this.options.modifiers).map(function (name) {\n return _extends({\n name: name\n }, _this.options.modifiers[name]);\n }) // sort the modifiers by order\n .sort(function (a, b) {\n return a.order - b.order;\n }); // modifiers have the ability to execute arbitrary code when Popper.js get inited\n // such code is executed in the same order of its modifier\n // they could add new properties to their options configuration\n // BE AWARE: don't add options to `options.modifiers.name` but to `modifierOptions`!\n\n this.modifiers.forEach(function (modifierOptions) {\n if (modifierOptions.enabled && isFunction(modifierOptions.onLoad)) {\n modifierOptions.onLoad(_this.reference, _this.popper, _this.options, modifierOptions, _this.state);\n }\n }); // fire the first update to position the popper in the right place\n\n this.update();\n var eventsEnabled = this.options.eventsEnabled;\n\n if (eventsEnabled) {\n // setup event listeners, they will take care of update the position in specific situations\n this.enableEventListeners();\n }\n\n this.state.eventsEnabled = eventsEnabled;\n } // We can't use class properties because they don't get listed in the\n // class prototype and break stuff like Sinon stubs\n\n\n createClass(Popper, [{\n key: 'update',\n value: function update$$1() {\n return update.call(this);\n }\n }, {\n key: 'destroy',\n value: function destroy$$1() {\n return destroy.call(this);\n }\n }, {\n key: 'enableEventListeners',\n value: function enableEventListeners$$1() {\n return enableEventListeners.call(this);\n }\n }, {\n key: 'disableEventListeners',\n value: function disableEventListeners$$1() {\n return disableEventListeners.call(this);\n }\n /**\n * Schedules an update. It will run on the next UI update available.\n * @method scheduleUpdate\n * @memberof Popper\n */\n\n /**\n * Collection of utilities useful when writing custom modifiers.\n * Starting from version 1.7, this method is available only if you\n * include `popper-utils.js` before `popper.js`.\n *\n * **DEPRECATION**: This way to access PopperUtils is deprecated\n * and will be removed in v2! Use the PopperUtils module directly instead.\n * Due to the high instability of the methods contained in Utils, we can't\n * guarantee them to follow semver. Use them at your own risk!\n * @static\n * @private\n * @type {Object}\n * @deprecated since version 1.8\n * @member Utils\n * @memberof Popper\n */\n\n }]);\n return Popper;\n}();\n/**\n * The `referenceObject` is an object that provides an interface compatible with Popper.js\n * and lets you use it as replacement of a real DOM node.
\n * You can use this method to position a popper relatively to a set of coordinates\n * in case you don't have a DOM node to use as reference.\n *\n * ```\n * new Popper(referenceObject, popperNode);\n * ```\n *\n * NB: This feature isn't supported in Internet Explorer 10.\n * @name referenceObject\n * @property {Function} data.getBoundingClientRect\n * A function that returns a set of coordinates compatible with the native `getBoundingClientRect` method.\n * @property {number} data.clientWidth\n * An ES6 getter that will return the width of the virtual reference element.\n * @property {number} data.clientHeight\n * An ES6 getter that will return the height of the virtual reference element.\n */\n\n\nPopper.Utils = (typeof window !== 'undefined' ? window : global).PopperUtils;\nPopper.placements = placements;\nPopper.Defaults = Defaults;\nexport default Popper;","function _typeof2(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof2 = function _typeof2(obj) { return typeof obj; }; } else { _typeof2 = function _typeof2(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof2(obj); }\n\n/*!***************************************************\n* mark.js v8.11.1\n* https://markjs.io/\n* Copyright (c) 2014–2018, Julian Kühnel\n* Released under the MIT license https://git.io/vwTVl\n*****************************************************/\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof2(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : global.Mark = factory();\n})(this, function () {\n 'use strict';\n\n var _typeof = typeof Symbol === \"function\" && _typeof2(Symbol.iterator) === \"symbol\" ? function (obj) {\n return _typeof2(obj);\n } : function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : _typeof2(obj);\n };\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var 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 var _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 var DOMIterator = function () {\n function DOMIterator(ctx) {\n var iframes = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var exclude = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];\n var iframesTimeout = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 5000;\n classCallCheck(this, DOMIterator);\n this.ctx = ctx;\n this.iframes = iframes;\n this.exclude = exclude;\n this.iframesTimeout = iframesTimeout;\n }\n\n createClass(DOMIterator, [{\n key: 'getContexts',\n value: function getContexts() {\n var ctx = void 0,\n filteredCtx = [];\n\n if (typeof this.ctx === 'undefined' || !this.ctx) {\n ctx = [];\n } else if (NodeList.prototype.isPrototypeOf(this.ctx)) {\n ctx = Array.prototype.slice.call(this.ctx);\n } else if (Array.isArray(this.ctx)) {\n ctx = this.ctx;\n } else if (typeof this.ctx === 'string') {\n ctx = Array.prototype.slice.call(document.querySelectorAll(this.ctx));\n } else {\n ctx = [this.ctx];\n }\n\n ctx.forEach(function (ctx) {\n var isDescendant = filteredCtx.filter(function (contexts) {\n return contexts.contains(ctx);\n }).length > 0;\n\n if (filteredCtx.indexOf(ctx) === -1 && !isDescendant) {\n filteredCtx.push(ctx);\n }\n });\n return filteredCtx;\n }\n }, {\n key: 'getIframeContents',\n value: function getIframeContents(ifr, successFn) {\n var errorFn = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n var doc = void 0;\n\n try {\n var ifrWin = ifr.contentWindow;\n doc = ifrWin.document;\n\n if (!ifrWin || !doc) {\n throw new Error('iframe inaccessible');\n }\n } catch (e) {\n errorFn();\n }\n\n if (doc) {\n successFn(doc);\n }\n }\n }, {\n key: 'isIframeBlank',\n value: function isIframeBlank(ifr) {\n var bl = 'about:blank',\n src = ifr.getAttribute('src').trim(),\n href = ifr.contentWindow.location.href;\n return href === bl && src !== bl && src;\n }\n }, {\n key: 'observeIframeLoad',\n value: function observeIframeLoad(ifr, successFn, errorFn) {\n var _this = this;\n\n var called = false,\n tout = null;\n\n var listener = function listener() {\n if (called) {\n return;\n }\n\n called = true;\n clearTimeout(tout);\n\n try {\n if (!_this.isIframeBlank(ifr)) {\n ifr.removeEventListener('load', listener);\n\n _this.getIframeContents(ifr, successFn, errorFn);\n }\n } catch (e) {\n errorFn();\n }\n };\n\n ifr.addEventListener('load', listener);\n tout = setTimeout(listener, this.iframesTimeout);\n }\n }, {\n key: 'onIframeReady',\n value: function onIframeReady(ifr, successFn, errorFn) {\n try {\n if (ifr.contentWindow.document.readyState === 'complete') {\n if (this.isIframeBlank(ifr)) {\n this.observeIframeLoad(ifr, successFn, errorFn);\n } else {\n this.getIframeContents(ifr, successFn, errorFn);\n }\n } else {\n this.observeIframeLoad(ifr, successFn, errorFn);\n }\n } catch (e) {\n errorFn();\n }\n }\n }, {\n key: 'waitForIframes',\n value: function waitForIframes(ctx, done) {\n var _this2 = this;\n\n var eachCalled = 0;\n this.forEachIframe(ctx, function () {\n return true;\n }, function (ifr) {\n eachCalled++;\n\n _this2.waitForIframes(ifr.querySelector('html'), function () {\n if (! --eachCalled) {\n done();\n }\n });\n }, function (handled) {\n if (!handled) {\n done();\n }\n });\n }\n }, {\n key: 'forEachIframe',\n value: function forEachIframe(ctx, filter, each) {\n var _this3 = this;\n\n var end = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};\n var ifr = ctx.querySelectorAll('iframe'),\n open = ifr.length,\n handled = 0;\n ifr = Array.prototype.slice.call(ifr);\n\n var checkEnd = function checkEnd() {\n if (--open <= 0) {\n end(handled);\n }\n };\n\n if (!open) {\n checkEnd();\n }\n\n ifr.forEach(function (ifr) {\n if (DOMIterator.matches(ifr, _this3.exclude)) {\n checkEnd();\n } else {\n _this3.onIframeReady(ifr, function (con) {\n if (filter(ifr)) {\n handled++;\n each(con);\n }\n\n checkEnd();\n }, checkEnd);\n }\n });\n }\n }, {\n key: 'createIterator',\n value: function createIterator(ctx, whatToShow, filter) {\n return document.createNodeIterator(ctx, whatToShow, filter, false);\n }\n }, {\n key: 'createInstanceOnIframe',\n value: function createInstanceOnIframe(contents) {\n return new DOMIterator(contents.querySelector('html'), this.iframes);\n }\n }, {\n key: 'compareNodeIframe',\n value: function compareNodeIframe(node, prevNode, ifr) {\n var compCurr = node.compareDocumentPosition(ifr),\n prev = Node.DOCUMENT_POSITION_PRECEDING;\n\n if (compCurr & prev) {\n if (prevNode !== null) {\n var compPrev = prevNode.compareDocumentPosition(ifr),\n after = Node.DOCUMENT_POSITION_FOLLOWING;\n\n if (compPrev & after) {\n return true;\n }\n } else {\n return true;\n }\n }\n\n return false;\n }\n }, {\n key: 'getIteratorNode',\n value: function getIteratorNode(itr) {\n var prevNode = itr.previousNode();\n var node = void 0;\n\n if (prevNode === null) {\n node = itr.nextNode();\n } else {\n node = itr.nextNode() && itr.nextNode();\n }\n\n return {\n prevNode: prevNode,\n node: node\n };\n }\n }, {\n key: 'checkIframeFilter',\n value: function checkIframeFilter(node, prevNode, currIfr, ifr) {\n var key = false,\n handled = false;\n ifr.forEach(function (ifrDict, i) {\n if (ifrDict.val === currIfr) {\n key = i;\n handled = ifrDict.handled;\n }\n });\n\n if (this.compareNodeIframe(node, prevNode, currIfr)) {\n if (key === false && !handled) {\n ifr.push({\n val: currIfr,\n handled: true\n });\n } else if (key !== false && !handled) {\n ifr[key].handled = true;\n }\n\n return true;\n }\n\n if (key === false) {\n ifr.push({\n val: currIfr,\n handled: false\n });\n }\n\n return false;\n }\n }, {\n key: 'handleOpenIframes',\n value: function handleOpenIframes(ifr, whatToShow, eCb, fCb) {\n var _this4 = this;\n\n ifr.forEach(function (ifrDict) {\n if (!ifrDict.handled) {\n _this4.getIframeContents(ifrDict.val, function (con) {\n _this4.createInstanceOnIframe(con).forEachNode(whatToShow, eCb, fCb);\n });\n }\n });\n }\n }, {\n key: 'iterateThroughNodes',\n value: function iterateThroughNodes(whatToShow, ctx, eachCb, filterCb, doneCb) {\n var _this5 = this;\n\n var itr = this.createIterator(ctx, whatToShow, filterCb);\n\n var ifr = [],\n elements = [],\n node = void 0,\n prevNode = void 0,\n retrieveNodes = function retrieveNodes() {\n var _getIteratorNode = _this5.getIteratorNode(itr);\n\n prevNode = _getIteratorNode.prevNode;\n node = _getIteratorNode.node;\n return node;\n };\n\n while (retrieveNodes()) {\n if (this.iframes) {\n this.forEachIframe(ctx, function (currIfr) {\n return _this5.checkIframeFilter(node, prevNode, currIfr, ifr);\n }, function (con) {\n _this5.createInstanceOnIframe(con).forEachNode(whatToShow, function (ifrNode) {\n return elements.push(ifrNode);\n }, filterCb);\n });\n }\n\n elements.push(node);\n }\n\n elements.forEach(function (node) {\n eachCb(node);\n });\n\n if (this.iframes) {\n this.handleOpenIframes(ifr, whatToShow, eachCb, filterCb);\n }\n\n doneCb();\n }\n }, {\n key: 'forEachNode',\n value: function forEachNode(whatToShow, each, filter) {\n var _this6 = this;\n\n var done = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : function () {};\n var contexts = this.getContexts();\n var open = contexts.length;\n\n if (!open) {\n done();\n }\n\n contexts.forEach(function (ctx) {\n var ready = function ready() {\n _this6.iterateThroughNodes(whatToShow, ctx, each, filter, function () {\n if (--open <= 0) {\n done();\n }\n });\n };\n\n if (_this6.iframes) {\n _this6.waitForIframes(ctx, ready);\n } else {\n ready();\n }\n });\n }\n }], [{\n key: 'matches',\n value: function matches(element, selector) {\n var selectors = typeof selector === 'string' ? [selector] : selector,\n fn = element.matches || element.matchesSelector || element.msMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.webkitMatchesSelector;\n\n if (fn) {\n var match = false;\n selectors.every(function (sel) {\n if (fn.call(element, sel)) {\n match = true;\n return false;\n }\n\n return true;\n });\n return match;\n } else {\n return false;\n }\n }\n }]);\n return DOMIterator;\n }();\n\n var Mark$1 = function () {\n function Mark(ctx) {\n classCallCheck(this, Mark);\n this.ctx = ctx;\n this.ie = false;\n var ua = window.navigator.userAgent;\n\n if (ua.indexOf('MSIE') > -1 || ua.indexOf('Trident') > -1) {\n this.ie = true;\n }\n }\n\n createClass(Mark, [{\n key: 'log',\n value: function log(msg) {\n var level = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'debug';\n var log = this.opt.log;\n\n if (!this.opt.debug) {\n return;\n }\n\n if ((typeof log === 'undefined' ? 'undefined' : _typeof(log)) === 'object' && typeof log[level] === 'function') {\n log[level]('mark.js: ' + msg);\n }\n }\n }, {\n key: 'escapeStr',\n value: function escapeStr(str) {\n return str.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g, '\\\\$&');\n }\n }, {\n key: 'createRegExp',\n value: function createRegExp(str) {\n if (this.opt.wildcards !== 'disabled') {\n str = this.setupWildcardsRegExp(str);\n }\n\n str = this.escapeStr(str);\n\n if (Object.keys(this.opt.synonyms).length) {\n str = this.createSynonymsRegExp(str);\n }\n\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.setupIgnoreJoinersRegExp(str);\n }\n\n if (this.opt.diacritics) {\n str = this.createDiacriticsRegExp(str);\n }\n\n str = this.createMergedBlanksRegExp(str);\n\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.createJoinersRegExp(str);\n }\n\n if (this.opt.wildcards !== 'disabled') {\n str = this.createWildcardsRegExp(str);\n }\n\n str = this.createAccuracyRegExp(str);\n return str;\n }\n }, {\n key: 'createSynonymsRegExp',\n value: function createSynonymsRegExp(str) {\n var syn = this.opt.synonyms,\n sens = this.opt.caseSensitive ? '' : 'i',\n joinerPlaceholder = this.opt.ignoreJoiners || this.opt.ignorePunctuation.length ? '\\0' : '';\n\n for (var index in syn) {\n if (syn.hasOwnProperty(index)) {\n var value = syn[index],\n k1 = this.opt.wildcards !== 'disabled' ? this.setupWildcardsRegExp(index) : this.escapeStr(index),\n k2 = this.opt.wildcards !== 'disabled' ? this.setupWildcardsRegExp(value) : this.escapeStr(value);\n\n if (k1 !== '' && k2 !== '') {\n str = str.replace(new RegExp('(' + this.escapeStr(k1) + '|' + this.escapeStr(k2) + ')', 'gm' + sens), joinerPlaceholder + ('(' + this.processSynomyms(k1) + '|') + (this.processSynomyms(k2) + ')') + joinerPlaceholder);\n }\n }\n }\n\n return str;\n }\n }, {\n key: 'processSynomyms',\n value: function processSynomyms(str) {\n if (this.opt.ignoreJoiners || this.opt.ignorePunctuation.length) {\n str = this.setupIgnoreJoinersRegExp(str);\n }\n\n return str;\n }\n }, {\n key: 'setupWildcardsRegExp',\n value: function setupWildcardsRegExp(str) {\n str = str.replace(/(?:\\\\)*\\?/g, function (val) {\n return val.charAt(0) === '\\\\' ? '?' : '\\x01';\n });\n return str.replace(/(?:\\\\)*\\*/g, function (val) {\n return val.charAt(0) === '\\\\' ? '*' : '\\x02';\n });\n }\n }, {\n key: 'createWildcardsRegExp',\n value: function createWildcardsRegExp(str) {\n var spaces = this.opt.wildcards === 'withSpaces';\n return str.replace(/\\u0001/g, spaces ? '[\\\\S\\\\s]?' : '\\\\S?').replace(/\\u0002/g, spaces ? '[\\\\S\\\\s]*?' : '\\\\S*');\n }\n }, {\n key: 'setupIgnoreJoinersRegExp',\n value: function setupIgnoreJoinersRegExp(str) {\n return str.replace(/[^(|)\\\\]/g, function (val, indx, original) {\n var nextChar = original.charAt(indx + 1);\n\n if (/[(|)\\\\]/.test(nextChar) || nextChar === '') {\n return val;\n } else {\n return val + '\\0';\n }\n });\n }\n }, {\n key: 'createJoinersRegExp',\n value: function createJoinersRegExp(str) {\n var joiner = [];\n var ignorePunctuation = this.opt.ignorePunctuation;\n\n if (Array.isArray(ignorePunctuation) && ignorePunctuation.length) {\n joiner.push(this.escapeStr(ignorePunctuation.join('')));\n }\n\n if (this.opt.ignoreJoiners) {\n joiner.push(\"\\\\u00ad\\\\u200b\\\\u200c\\\\u200d\");\n }\n\n return joiner.length ? str.split(/\\u0000+/).join('[' + joiner.join('') + ']*') : str;\n }\n }, {\n key: 'createDiacriticsRegExp',\n value: function createDiacriticsRegExp(str) {\n var sens = this.opt.caseSensitive ? '' : 'i',\n dct = this.opt.caseSensitive ? ['aàáảãạăằắẳẵặâầấẩẫậäåāą', 'AÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ', 'cçćč', 'CÇĆČ', 'dđď', 'DĐĎ', 'eèéẻẽẹêềếểễệëěēę', 'EÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ', 'iìíỉĩịîïī', 'IÌÍỈĨỊÎÏĪ', 'lł', 'LŁ', 'nñňń', 'NÑŇŃ', 'oòóỏõọôồốổỗộơởỡớờợöøō', 'OÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ', 'rř', 'RŘ', 'sšśșş', 'SŠŚȘŞ', 'tťțţ', 'TŤȚŢ', 'uùúủũụưừứửữựûüůū', 'UÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ', 'yýỳỷỹỵÿ', 'YÝỲỶỸỴŸ', 'zžżź', 'ZŽŻŹ'] : ['aàáảãạăằắẳẵặâầấẩẫậäåāąAÀÁẢÃẠĂẰẮẲẴẶÂẦẤẨẪẬÄÅĀĄ', 'cçćčCÇĆČ', 'dđďDĐĎ', 'eèéẻẽẹêềếểễệëěēęEÈÉẺẼẸÊỀẾỂỄỆËĚĒĘ', 'iìíỉĩịîïīIÌÍỈĨỊÎÏĪ', 'lłLŁ', 'nñňńNÑŇŃ', 'oòóỏõọôồốổỗộơởỡớờợöøōOÒÓỎÕỌÔỒỐỔỖỘƠỞỠỚỜỢÖØŌ', 'rřRŘ', 'sšśșşSŠŚȘŞ', 'tťțţTŤȚŢ', 'uùúủũụưừứửữựûüůūUÙÚỦŨỤƯỪỨỬỮỰÛÜŮŪ', 'yýỳỷỹỵÿYÝỲỶỸỴŸ', 'zžżźZŽŻŹ'];\n var handled = [];\n str.split('').forEach(function (ch) {\n dct.every(function (dct) {\n if (dct.indexOf(ch) !== -1) {\n if (handled.indexOf(dct) > -1) {\n return false;\n }\n\n str = str.replace(new RegExp('[' + dct + ']', 'gm' + sens), '[' + dct + ']');\n handled.push(dct);\n }\n\n return true;\n });\n });\n return str;\n }\n }, {\n key: 'createMergedBlanksRegExp',\n value: function createMergedBlanksRegExp(str) {\n return str.replace(/[\\s]+/gmi, '[\\\\s]+');\n }\n }, {\n key: 'createAccuracyRegExp',\n value: function createAccuracyRegExp(str) {\n var _this = this;\n\n var chars = '!\"#$%&\\'()*+,-./:;<=>?@[\\\\]^_`{|}~¡¿';\n var acc = this.opt.accuracy,\n val = typeof acc === 'string' ? acc : acc.value,\n ls = typeof acc === 'string' ? [] : acc.limiters,\n lsJoin = '';\n ls.forEach(function (limiter) {\n lsJoin += '|' + _this.escapeStr(limiter);\n });\n\n switch (val) {\n case 'partially':\n default:\n return '()(' + str + ')';\n\n case 'complementary':\n lsJoin = '\\\\s' + (lsJoin ? lsJoin : this.escapeStr(chars));\n return '()([^' + lsJoin + ']*' + str + '[^' + lsJoin + ']*)';\n\n case 'exactly':\n return '(^|\\\\s' + lsJoin + ')(' + str + ')(?=$|\\\\s' + lsJoin + ')';\n }\n }\n }, {\n key: 'getSeparatedKeywords',\n value: function getSeparatedKeywords(sv) {\n var _this2 = this;\n\n var stack = [];\n sv.forEach(function (kw) {\n if (!_this2.opt.separateWordSearch) {\n if (kw.trim() && stack.indexOf(kw) === -1) {\n stack.push(kw);\n }\n } else {\n kw.split(' ').forEach(function (kwSplitted) {\n if (kwSplitted.trim() && stack.indexOf(kwSplitted) === -1) {\n stack.push(kwSplitted);\n }\n });\n }\n });\n return {\n 'keywords': stack.sort(function (a, b) {\n return b.length - a.length;\n }),\n 'length': stack.length\n };\n }\n }, {\n key: 'isNumeric',\n value: function isNumeric(value) {\n return Number(parseFloat(value)) == value;\n }\n }, {\n key: 'checkRanges',\n value: function checkRanges(array) {\n var _this3 = this;\n\n if (!Array.isArray(array) || Object.prototype.toString.call(array[0]) !== '[object Object]') {\n this.log('markRanges() will only accept an array of objects');\n this.opt.noMatch(array);\n return [];\n }\n\n var stack = [];\n var last = 0;\n array.sort(function (a, b) {\n return a.start - b.start;\n }).forEach(function (item) {\n var _callNoMatchOnInvalid = _this3.callNoMatchOnInvalidRanges(item, last),\n start = _callNoMatchOnInvalid.start,\n end = _callNoMatchOnInvalid.end,\n valid = _callNoMatchOnInvalid.valid;\n\n if (valid) {\n item.start = start;\n item.length = end - start;\n stack.push(item);\n last = end;\n }\n });\n return stack;\n }\n }, {\n key: 'callNoMatchOnInvalidRanges',\n value: function callNoMatchOnInvalidRanges(range, last) {\n var start = void 0,\n end = void 0,\n valid = false;\n\n if (range && typeof range.start !== 'undefined') {\n start = parseInt(range.start, 10);\n end = start + parseInt(range.length, 10);\n\n if (this.isNumeric(range.start) && this.isNumeric(range.length) && end - last > 0 && end - start > 0) {\n valid = true;\n } else {\n this.log('Ignoring invalid or overlapping range: ' + ('' + JSON.stringify(range)));\n this.opt.noMatch(range);\n }\n } else {\n this.log('Ignoring invalid range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n }\n\n return {\n start: start,\n end: end,\n valid: valid\n };\n }\n }, {\n key: 'checkWhitespaceRanges',\n value: function checkWhitespaceRanges(range, originalLength, string) {\n var end = void 0,\n valid = true,\n max = string.length,\n offset = originalLength - max,\n start = parseInt(range.start, 10) - offset;\n start = start > max ? max : start;\n end = start + parseInt(range.length, 10);\n\n if (end > max) {\n end = max;\n this.log('End range automatically set to the max value of ' + max);\n }\n\n if (start < 0 || end - start < 0 || start > max || end > max) {\n valid = false;\n this.log('Invalid range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n } else if (string.substring(start, end).replace(/\\s+/g, '') === '') {\n valid = false;\n this.log('Skipping whitespace only range: ' + JSON.stringify(range));\n this.opt.noMatch(range);\n }\n\n return {\n start: start,\n end: end,\n valid: valid\n };\n }\n }, {\n key: 'getTextNodes',\n value: function getTextNodes(cb) {\n var _this4 = this;\n\n var val = '',\n nodes = [];\n this.iterator.forEachNode(NodeFilter.SHOW_TEXT, function (node) {\n nodes.push({\n start: val.length,\n end: (val += node.textContent).length,\n node: node\n });\n }, function (node) {\n if (_this4.matchesExclude(node.parentNode)) {\n return NodeFilter.FILTER_REJECT;\n } else {\n return NodeFilter.FILTER_ACCEPT;\n }\n }, function () {\n cb({\n value: val,\n nodes: nodes\n });\n });\n }\n }, {\n key: 'matchesExclude',\n value: function matchesExclude(el) {\n return DOMIterator.matches(el, this.opt.exclude.concat(['script', 'style', 'title', 'head', 'html']));\n }\n }, {\n key: 'wrapRangeInTextNode',\n value: function wrapRangeInTextNode(node, start, end) {\n var hEl = !this.opt.element ? 'mark' : this.opt.element,\n startNode = node.splitText(start),\n ret = startNode.splitText(end - start);\n var repl = document.createElement(hEl);\n repl.setAttribute('data-markjs', 'true');\n\n if (this.opt.className) {\n repl.setAttribute('class', this.opt.className);\n }\n\n repl.textContent = startNode.textContent;\n startNode.parentNode.replaceChild(repl, startNode);\n return ret;\n }\n }, {\n key: 'wrapRangeInMappedTextNode',\n value: function wrapRangeInMappedTextNode(dict, start, end, filterCb, eachCb) {\n var _this5 = this;\n\n dict.nodes.every(function (n, i) {\n var sibl = dict.nodes[i + 1];\n\n if (typeof sibl === 'undefined' || sibl.start > start) {\n if (!filterCb(n.node)) {\n return false;\n }\n\n var s = start - n.start,\n e = (end > n.end ? n.end : end) - n.start,\n startStr = dict.value.substr(0, n.start),\n endStr = dict.value.substr(e + n.start);\n n.node = _this5.wrapRangeInTextNode(n.node, s, e);\n dict.value = startStr + endStr;\n dict.nodes.forEach(function (k, j) {\n if (j >= i) {\n if (dict.nodes[j].start > 0 && j !== i) {\n dict.nodes[j].start -= e;\n }\n\n dict.nodes[j].end -= e;\n }\n });\n end -= e;\n eachCb(n.node.previousSibling, n.start);\n\n if (end > n.end) {\n start = n.end;\n } else {\n return false;\n }\n }\n\n return true;\n });\n }\n }, {\n key: 'wrapMatches',\n value: function wrapMatches(regex, ignoreGroups, filterCb, eachCb, endCb) {\n var _this6 = this;\n\n var matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;\n this.getTextNodes(function (dict) {\n dict.nodes.forEach(function (node) {\n node = node.node;\n var match = void 0;\n\n while ((match = regex.exec(node.textContent)) !== null && match[matchIdx] !== '') {\n if (!filterCb(match[matchIdx], node)) {\n continue;\n }\n\n var pos = match.index;\n\n if (matchIdx !== 0) {\n for (var i = 1; i < matchIdx; i++) {\n pos += match[i].length;\n }\n }\n\n node = _this6.wrapRangeInTextNode(node, pos, pos + match[matchIdx].length);\n eachCb(node.previousSibling);\n regex.lastIndex = 0;\n }\n });\n endCb();\n });\n }\n }, {\n key: 'wrapMatchesAcrossElements',\n value: function wrapMatchesAcrossElements(regex, ignoreGroups, filterCb, eachCb, endCb) {\n var _this7 = this;\n\n var matchIdx = ignoreGroups === 0 ? 0 : ignoreGroups + 1;\n this.getTextNodes(function (dict) {\n var match = void 0;\n\n while ((match = regex.exec(dict.value)) !== null && match[matchIdx] !== '') {\n var start = match.index;\n\n if (matchIdx !== 0) {\n for (var i = 1; i < matchIdx; i++) {\n start += match[i].length;\n }\n }\n\n var end = start + match[matchIdx].length;\n\n _this7.wrapRangeInMappedTextNode(dict, start, end, function (node) {\n return filterCb(match[matchIdx], node);\n }, function (node, lastIndex) {\n regex.lastIndex = lastIndex;\n eachCb(node);\n });\n }\n\n endCb();\n });\n }\n }, {\n key: 'wrapRangeFromIndex',\n value: function wrapRangeFromIndex(ranges, filterCb, eachCb, endCb) {\n var _this8 = this;\n\n this.getTextNodes(function (dict) {\n var originalLength = dict.value.length;\n ranges.forEach(function (range, counter) {\n var _checkWhitespaceRange = _this8.checkWhitespaceRanges(range, originalLength, dict.value),\n start = _checkWhitespaceRange.start,\n end = _checkWhitespaceRange.end,\n valid = _checkWhitespaceRange.valid;\n\n if (valid) {\n _this8.wrapRangeInMappedTextNode(dict, start, end, function (node) {\n return filterCb(node, range, dict.value.substring(start, end), counter);\n }, function (node) {\n eachCb(node, range);\n });\n }\n });\n endCb();\n });\n }\n }, {\n key: 'unwrapMatches',\n value: function unwrapMatches(node) {\n var parent = node.parentNode;\n var docFrag = document.createDocumentFragment();\n\n while (node.firstChild) {\n docFrag.appendChild(node.removeChild(node.firstChild));\n }\n\n parent.replaceChild(docFrag, node);\n\n if (!this.ie) {\n parent.normalize();\n } else {\n this.normalizeTextNode(parent);\n }\n }\n }, {\n key: 'normalizeTextNode',\n value: function normalizeTextNode(node) {\n if (!node) {\n return;\n }\n\n if (node.nodeType === 3) {\n while (node.nextSibling && node.nextSibling.nodeType === 3) {\n node.nodeValue += node.nextSibling.nodeValue;\n node.parentNode.removeChild(node.nextSibling);\n }\n } else {\n this.normalizeTextNode(node.firstChild);\n }\n\n this.normalizeTextNode(node.nextSibling);\n }\n }, {\n key: 'markRegExp',\n value: function markRegExp(regexp, opt) {\n var _this9 = this;\n\n this.opt = opt;\n this.log('Searching with expression \"' + regexp + '\"');\n var totalMatches = 0,\n fn = 'wrapMatches';\n\n var eachCb = function eachCb(element) {\n totalMatches++;\n\n _this9.opt.each(element);\n };\n\n if (this.opt.acrossElements) {\n fn = 'wrapMatchesAcrossElements';\n }\n\n this[fn](regexp, this.opt.ignoreGroups, function (match, node) {\n return _this9.opt.filter(node, match, totalMatches);\n }, eachCb, function () {\n if (totalMatches === 0) {\n _this9.opt.noMatch(regexp);\n }\n\n _this9.opt.done(totalMatches);\n });\n }\n }, {\n key: 'mark',\n value: function mark(sv, opt) {\n var _this10 = this;\n\n this.opt = opt;\n var totalMatches = 0,\n fn = 'wrapMatches';\n\n var _getSeparatedKeywords = this.getSeparatedKeywords(typeof sv === 'string' ? [sv] : sv),\n kwArr = _getSeparatedKeywords.keywords,\n kwArrLen = _getSeparatedKeywords.length,\n sens = this.opt.caseSensitive ? '' : 'i',\n handler = function handler(kw) {\n var regex = new RegExp(_this10.createRegExp(kw), 'gm' + sens),\n matches = 0;\n\n _this10.log('Searching with expression \"' + regex + '\"');\n\n _this10[fn](regex, 1, function (term, node) {\n return _this10.opt.filter(node, kw, totalMatches, matches);\n }, function (element) {\n matches++;\n totalMatches++;\n\n _this10.opt.each(element);\n }, function () {\n if (matches === 0) {\n _this10.opt.noMatch(kw);\n }\n\n if (kwArr[kwArrLen - 1] === kw) {\n _this10.opt.done(totalMatches);\n } else {\n handler(kwArr[kwArr.indexOf(kw) + 1]);\n }\n });\n };\n\n if (this.opt.acrossElements) {\n fn = 'wrapMatchesAcrossElements';\n }\n\n if (kwArrLen === 0) {\n this.opt.done(totalMatches);\n } else {\n handler(kwArr[0]);\n }\n }\n }, {\n key: 'markRanges',\n value: function markRanges(rawRanges, opt) {\n var _this11 = this;\n\n this.opt = opt;\n var totalMatches = 0,\n ranges = this.checkRanges(rawRanges);\n\n if (ranges && ranges.length) {\n this.log('Starting to mark with the following ranges: ' + JSON.stringify(ranges));\n this.wrapRangeFromIndex(ranges, function (node, range, match, counter) {\n return _this11.opt.filter(node, range, match, counter);\n }, function (element, range) {\n totalMatches++;\n\n _this11.opt.each(element, range);\n }, function () {\n _this11.opt.done(totalMatches);\n });\n } else {\n this.opt.done(totalMatches);\n }\n }\n }, {\n key: 'unmark',\n value: function unmark(opt) {\n var _this12 = this;\n\n this.opt = opt;\n var sel = this.opt.element ? this.opt.element : '*';\n sel += '[data-markjs]';\n\n if (this.opt.className) {\n sel += '.' + this.opt.className;\n }\n\n this.log('Removal selector \"' + sel + '\"');\n this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT, function (node) {\n _this12.unwrapMatches(node);\n }, function (node) {\n var matchesSel = DOMIterator.matches(node, sel),\n matchesExclude = _this12.matchesExclude(node);\n\n if (!matchesSel || matchesExclude) {\n return NodeFilter.FILTER_REJECT;\n } else {\n return NodeFilter.FILTER_ACCEPT;\n }\n }, this.opt.done);\n }\n }, {\n key: 'opt',\n set: function set$$1(val) {\n this._opt = _extends({}, {\n 'element': '',\n 'className': '',\n 'exclude': [],\n 'iframes': false,\n 'iframesTimeout': 5000,\n 'separateWordSearch': true,\n 'diacritics': true,\n 'synonyms': {},\n 'accuracy': 'partially',\n 'acrossElements': false,\n 'caseSensitive': false,\n 'ignoreJoiners': false,\n 'ignoreGroups': 0,\n 'ignorePunctuation': [],\n 'wildcards': 'disabled',\n 'each': function each() {},\n 'noMatch': function noMatch() {},\n 'filter': function filter() {\n return true;\n },\n 'done': function done() {},\n 'debug': false,\n 'log': window.console\n }, val);\n },\n get: function get$$1() {\n return this._opt;\n }\n }, {\n key: 'iterator',\n get: function get$$1() {\n return new DOMIterator(this.ctx, this.opt.iframes, this.opt.exclude, this.opt.iframesTimeout);\n }\n }]);\n return Mark;\n }();\n\n function Mark(ctx) {\n var _this = this;\n\n var instance = new Mark$1(ctx);\n\n this.mark = function (sv, opt) {\n instance.mark(sv, opt);\n return _this;\n };\n\n this.markRegExp = function (sv, opt) {\n instance.markRegExp(sv, opt);\n return _this;\n };\n\n this.markRanges = function (sv, opt) {\n instance.markRanges(sv, opt);\n return _this;\n };\n\n this.unmark = function (opt) {\n instance.unmark(opt);\n return _this;\n };\n\n return this;\n }\n\n return Mark;\n});","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nTurbolinks 5.2.0\nCopyright © 2018 Basecamp, LLC\n */\n(function () {\n var t = this;\n (function () {\n (function () {\n this.Turbolinks = {\n supported: function () {\n return null != window.history.pushState && null != window.requestAnimationFrame && null != window.addEventListener;\n }(),\n visit: function visit(t, r) {\n return e.controller.visit(t, r);\n },\n clearCache: function clearCache() {\n return e.controller.clearCache();\n },\n setProgressBarDelay: function setProgressBarDelay(t) {\n return e.controller.setProgressBarDelay(t);\n }\n };\n }).call(this);\n }).call(t);\n var e = t.Turbolinks;\n (function () {\n (function () {\n var t,\n r,\n n,\n o = [].slice;\n e.copyObject = function (t) {\n var e, r, n;\n r = {};\n\n for (e in t) {\n n = t[e], r[e] = n;\n }\n\n return r;\n }, e.closest = function (e, r) {\n return t.call(e, r);\n }, t = function () {\n var t, e;\n return t = document.documentElement, null != (e = t.closest) ? e : function (t) {\n var e;\n\n for (e = this; e;) {\n if (e.nodeType === Node.ELEMENT_NODE && r.call(e, t)) return e;\n e = e.parentNode;\n }\n };\n }(), e.defer = function (t) {\n return setTimeout(t, 1);\n }, e.throttle = function (t) {\n var e;\n return e = null, function () {\n var r;\n return r = 1 <= arguments.length ? o.call(arguments, 0) : [], null != e ? e : e = requestAnimationFrame(function (n) {\n return function () {\n return e = null, t.apply(n, r);\n };\n }(this));\n };\n }, e.dispatch = function (t, e) {\n var r, o, i, s, a, u;\n return a = null != e ? e : {}, u = a.target, r = a.cancelable, o = a.data, i = document.createEvent(\"Events\"), i.initEvent(t, !0, r === !0), i.data = null != o ? o : {}, i.cancelable && !n && (s = i.preventDefault, i.preventDefault = function () {\n return this.defaultPrevented || Object.defineProperty(this, \"defaultPrevented\", {\n get: function get() {\n return !0;\n }\n }), s.call(this);\n }), (null != u ? u : document).dispatchEvent(i), i;\n }, n = function () {\n var t;\n return t = document.createEvent(\"Events\"), t.initEvent(\"test\", !0, !0), t.preventDefault(), t.defaultPrevented;\n }(), e.match = function (t, e) {\n return r.call(t, e);\n }, r = function () {\n var t, e, r, n;\n return t = document.documentElement, null != (e = null != (r = null != (n = t.matchesSelector) ? n : t.webkitMatchesSelector) ? r : t.msMatchesSelector) ? e : t.mozMatchesSelector;\n }(), e.uuid = function () {\n var t, e, r;\n\n for (r = \"\", t = e = 1; 36 >= e; t = ++e) {\n r += 9 === t || 14 === t || 19 === t || 24 === t ? \"-\" : 15 === t ? \"4\" : 20 === t ? (Math.floor(4 * Math.random()) + 8).toString(16) : Math.floor(15 * Math.random()).toString(16);\n }\n\n return r;\n };\n }).call(this), function () {\n e.Location = function () {\n function t(t) {\n var e, r;\n null == t && (t = \"\"), r = document.createElement(\"a\"), r.href = t.toString(), this.absoluteURL = r.href, e = r.hash.length, 2 > e ? this.requestURL = this.absoluteURL : (this.requestURL = this.absoluteURL.slice(0, -e), this.anchor = r.hash.slice(1));\n }\n\n var e, r, n, o;\n return t.wrap = function (t) {\n return t instanceof this ? t : new this(t);\n }, t.prototype.getOrigin = function () {\n return this.absoluteURL.split(\"/\", 3).join(\"/\");\n }, t.prototype.getPath = function () {\n var t, e;\n return null != (t = null != (e = this.requestURL.match(/\\/\\/[^\\/]*(\\/[^?;]*)/)) ? e[1] : void 0) ? t : \"/\";\n }, t.prototype.getPathComponents = function () {\n return this.getPath().split(\"/\").slice(1);\n }, t.prototype.getLastPathComponent = function () {\n return this.getPathComponents().slice(-1)[0];\n }, t.prototype.getExtension = function () {\n var t, e;\n return null != (t = null != (e = this.getLastPathComponent().match(/\\.[^.]*$/)) ? e[0] : void 0) ? t : \"\";\n }, t.prototype.isHTML = function () {\n return this.getExtension().match(/^(?:|\\.(?:htm|html|xhtml))$/);\n }, t.prototype.isPrefixedBy = function (t) {\n var e;\n return e = r(t), this.isEqualTo(t) || o(this.absoluteURL, e);\n }, t.prototype.isEqualTo = function (t) {\n return this.absoluteURL === (null != t ? t.absoluteURL : void 0);\n }, t.prototype.toCacheKey = function () {\n return this.requestURL;\n }, t.prototype.toJSON = function () {\n return this.absoluteURL;\n }, t.prototype.toString = function () {\n return this.absoluteURL;\n }, t.prototype.valueOf = function () {\n return this.absoluteURL;\n }, r = function r(t) {\n return e(t.getOrigin() + t.getPath());\n }, e = function e(t) {\n return n(t, \"/\") ? t : t + \"/\";\n }, o = function o(t, e) {\n return t.slice(0, e.length) === e;\n }, n = function n(t, e) {\n return t.slice(-e.length) === e;\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t, e) {\n return function () {\n return _t.apply(e, arguments);\n };\n };\n\n e.HttpRequest = function () {\n function r(r, n, o) {\n this.delegate = r, this.requestCanceled = t(this.requestCanceled, this), this.requestTimedOut = t(this.requestTimedOut, this), this.requestFailed = t(this.requestFailed, this), this.requestLoaded = t(this.requestLoaded, this), this.requestProgressed = t(this.requestProgressed, this), this.url = e.Location.wrap(n).requestURL, this.referrer = e.Location.wrap(o).absoluteURL, this.createXHR();\n }\n\n return r.NETWORK_FAILURE = 0, r.TIMEOUT_FAILURE = -1, r.timeout = 60, r.prototype.send = function () {\n var t;\n return this.xhr && !this.sent ? (this.notifyApplicationBeforeRequestStart(), this.setProgress(0), this.xhr.send(), this.sent = !0, \"function\" == typeof (t = this.delegate).requestStarted ? t.requestStarted() : void 0) : void 0;\n }, r.prototype.cancel = function () {\n return this.xhr && this.sent ? this.xhr.abort() : void 0;\n }, r.prototype.requestProgressed = function (t) {\n return t.lengthComputable ? this.setProgress(t.loaded / t.total) : void 0;\n }, r.prototype.requestLoaded = function () {\n return this.endRequest(function (t) {\n return function () {\n var e;\n return 200 <= (e = t.xhr.status) && 300 > e ? t.delegate.requestCompletedWithResponse(t.xhr.responseText, t.xhr.getResponseHeader(\"Turbolinks-Location\")) : (t.failed = !0, t.delegate.requestFailedWithStatusCode(t.xhr.status, t.xhr.responseText));\n };\n }(this));\n }, r.prototype.requestFailed = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.NETWORK_FAILURE);\n };\n }(this));\n }, r.prototype.requestTimedOut = function () {\n return this.endRequest(function (t) {\n return function () {\n return t.failed = !0, t.delegate.requestFailedWithStatusCode(t.constructor.TIMEOUT_FAILURE);\n };\n }(this));\n }, r.prototype.requestCanceled = function () {\n return this.endRequest();\n }, r.prototype.notifyApplicationBeforeRequestStart = function () {\n return e.dispatch(\"turbolinks:request-start\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.notifyApplicationAfterRequestEnd = function () {\n return e.dispatch(\"turbolinks:request-end\", {\n data: {\n url: this.url,\n xhr: this.xhr\n }\n });\n }, r.prototype.createXHR = function () {\n return this.xhr = new XMLHttpRequest(), this.xhr.open(\"GET\", this.url, !0), this.xhr.timeout = 1e3 * this.constructor.timeout, this.xhr.setRequestHeader(\"Accept\", \"text/html, application/xhtml+xml\"), this.xhr.setRequestHeader(\"Turbolinks-Referrer\", this.referrer), this.xhr.onprogress = this.requestProgressed, this.xhr.onload = this.requestLoaded, this.xhr.onerror = this.requestFailed, this.xhr.ontimeout = this.requestTimedOut, this.xhr.onabort = this.requestCanceled;\n }, r.prototype.endRequest = function (t) {\n return this.xhr ? (this.notifyApplicationAfterRequestEnd(), null != t && t.call(this), this.destroy()) : void 0;\n }, r.prototype.setProgress = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.delegate).requestProgressed ? e.requestProgressed(this.progress) : void 0;\n }, r.prototype.destroy = function () {\n var t;\n return this.setProgress(1), \"function\" == typeof (t = this.delegate).requestFinished && t.requestFinished(), this.delegate = null, this.xhr = null;\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t2, e) {\n return function () {\n return _t2.apply(e, arguments);\n };\n };\n\n e.ProgressBar = function () {\n function e() {\n this.trickle = t(this.trickle, this), this.stylesheetElement = this.createStylesheetElement(), this.progressElement = this.createProgressElement();\n }\n\n var r;\n return r = 300, e.defaultCSS = \".turbolinks-progress-bar {\\n position: fixed;\\n display: block;\\n top: 0;\\n left: 0;\\n height: 3px;\\n background: #0076ff;\\n z-index: 9999;\\n transition: width \" + r + \"ms ease-out, opacity \" + r / 2 + \"ms \" + r / 2 + \"ms ease-in;\\n transform: translate3d(0, 0, 0);\\n}\", e.prototype.show = function () {\n return this.visible ? void 0 : (this.visible = !0, this.installStylesheetElement(), this.installProgressElement(), this.startTrickling());\n }, e.prototype.hide = function () {\n return this.visible && !this.hiding ? (this.hiding = !0, this.fadeProgressElement(function (t) {\n return function () {\n return t.uninstallProgressElement(), t.stopTrickling(), t.visible = !1, t.hiding = !1;\n };\n }(this))) : void 0;\n }, e.prototype.setValue = function (t) {\n return this.value = t, this.refresh();\n }, e.prototype.installStylesheetElement = function () {\n return document.head.insertBefore(this.stylesheetElement, document.head.firstChild);\n }, e.prototype.installProgressElement = function () {\n return this.progressElement.style.width = 0, this.progressElement.style.opacity = 1, document.documentElement.insertBefore(this.progressElement, document.body), this.refresh();\n }, e.prototype.fadeProgressElement = function (t) {\n return this.progressElement.style.opacity = 0, setTimeout(t, 1.5 * r);\n }, e.prototype.uninstallProgressElement = function () {\n return this.progressElement.parentNode ? document.documentElement.removeChild(this.progressElement) : void 0;\n }, e.prototype.startTrickling = function () {\n return null != this.trickleInterval ? this.trickleInterval : this.trickleInterval = setInterval(this.trickle, r);\n }, e.prototype.stopTrickling = function () {\n return clearInterval(this.trickleInterval), this.trickleInterval = null;\n }, e.prototype.trickle = function () {\n return this.setValue(this.value + Math.random() / 100);\n }, e.prototype.refresh = function () {\n return requestAnimationFrame(function (t) {\n return function () {\n return t.progressElement.style.width = 10 + 90 * t.value + \"%\";\n };\n }(this));\n }, e.prototype.createStylesheetElement = function () {\n var t;\n return t = document.createElement(\"style\"), t.type = \"text/css\", t.textContent = this.constructor.defaultCSS, t;\n }, e.prototype.createProgressElement = function () {\n var t;\n return t = document.createElement(\"div\"), t.className = \"turbolinks-progress-bar\", t;\n }, e;\n }();\n }.call(this), function () {\n var t = function t(_t3, e) {\n return function () {\n return _t3.apply(e, arguments);\n };\n };\n\n e.BrowserAdapter = function () {\n function r(r) {\n this.controller = r, this.showProgressBar = t(this.showProgressBar, this), this.progressBar = new e.ProgressBar();\n }\n\n var n, o, i;\n return i = e.HttpRequest, n = i.NETWORK_FAILURE, o = i.TIMEOUT_FAILURE, r.prototype.visitProposedToLocationWithAction = function (t, e) {\n return this.controller.startVisitToLocationWithAction(t, e);\n }, r.prototype.visitStarted = function (t) {\n return t.issueRequest(), t.changeHistory(), t.loadCachedSnapshot();\n }, r.prototype.visitRequestStarted = function (t) {\n return this.progressBar.setValue(0), t.hasCachedSnapshot() || \"restore\" !== t.action ? this.showProgressBarAfterDelay() : this.showProgressBar();\n }, r.prototype.visitRequestProgressed = function (t) {\n return this.progressBar.setValue(t.progress);\n }, r.prototype.visitRequestCompleted = function (t) {\n return t.loadResponse();\n }, r.prototype.visitRequestFailedWithStatusCode = function (t, e) {\n switch (e) {\n case n:\n case o:\n return this.reload();\n\n default:\n return t.loadResponse();\n }\n }, r.prototype.visitRequestFinished = function (t) {\n return this.hideProgressBar();\n }, r.prototype.visitCompleted = function (t) {\n return t.followRedirect();\n }, r.prototype.pageInvalidated = function () {\n return this.reload();\n }, r.prototype.showProgressBarAfterDelay = function () {\n return this.progressBarTimeout = setTimeout(this.showProgressBar, this.controller.progressBarDelay);\n }, r.prototype.showProgressBar = function () {\n return this.progressBar.show();\n }, r.prototype.hideProgressBar = function () {\n return this.progressBar.hide(), clearTimeout(this.progressBarTimeout);\n }, r.prototype.reload = function () {\n return window.location.reload();\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t4, e) {\n return function () {\n return _t4.apply(e, arguments);\n };\n };\n\n e.History = function () {\n function r(e) {\n this.delegate = e, this.onPageLoad = t(this.onPageLoad, this), this.onPopState = t(this.onPopState, this);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"popstate\", this.onPopState, !1), addEventListener(\"load\", this.onPageLoad, !1), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"popstate\", this.onPopState, !1), removeEventListener(\"load\", this.onPageLoad, !1), this.started = !1) : void 0;\n }, r.prototype.push = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"push\", t, r);\n }, r.prototype.replace = function (t, r) {\n return t = e.Location.wrap(t), this.update(\"replace\", t, r);\n }, r.prototype.onPopState = function (t) {\n var r, n, o, i;\n return this.shouldHandlePopState() && (i = null != (n = t.state) ? n.turbolinks : void 0) ? (r = e.Location.wrap(window.location), o = i.restorationIdentifier, this.delegate.historyPoppedToLocationWithRestorationIdentifier(r, o)) : void 0;\n }, r.prototype.onPageLoad = function (t) {\n return e.defer(function (t) {\n return function () {\n return t.pageLoaded = !0;\n };\n }(this));\n }, r.prototype.shouldHandlePopState = function () {\n return this.pageIsLoaded();\n }, r.prototype.pageIsLoaded = function () {\n return this.pageLoaded || \"complete\" === document.readyState;\n }, r.prototype.update = function (t, e, r) {\n var n;\n return n = {\n turbolinks: {\n restorationIdentifier: r\n }\n }, history[t + \"State\"](n, null, e);\n }, r;\n }();\n }.call(this), function () {\n e.HeadDetails = function () {\n function t(t) {\n var e, r, n, s, a, u;\n\n for (this.elements = {}, n = 0, a = t.length; a > n; n++) {\n u = t[n], u.nodeType === Node.ELEMENT_NODE && (s = u.outerHTML, r = null != (e = this.elements)[s] ? e[s] : e[s] = {\n type: i(u),\n tracked: o(u),\n elements: []\n }, r.elements.push(u));\n }\n }\n\n var e, r, n, o, i;\n return t.fromHeadElement = function (t) {\n var e;\n return new this(null != (e = null != t ? t.childNodes : void 0) ? e : []);\n }, t.prototype.hasElementWithKey = function (t) {\n return t in this.elements;\n }, t.prototype.getTrackedElementSignature = function () {\n var t, e;\n return function () {\n var r, n;\n r = this.elements, n = [];\n\n for (t in r) {\n e = r[t].tracked, e && n.push(t);\n }\n\n return n;\n }.call(this).join(\"\");\n }, t.prototype.getScriptElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"script\", t);\n }, t.prototype.getStylesheetElementsNotInDetails = function (t) {\n return this.getElementsMatchingTypeNotInDetails(\"stylesheet\", t);\n }, t.prototype.getElementsMatchingTypeNotInDetails = function (t, e) {\n var r, n, o, i, s, a;\n o = this.elements, s = [];\n\n for (n in o) {\n i = o[n], a = i.type, r = i.elements, a !== t || e.hasElementWithKey(n) || s.push(r[0]);\n }\n\n return s;\n }, t.prototype.getProvisionalElements = function () {\n var t, e, r, n, o, i, s;\n r = [], n = this.elements;\n\n for (e in n) {\n o = n[e], s = o.type, i = o.tracked, t = o.elements, null != s || i ? t.length > 1 && r.push.apply(r, t.slice(1)) : r.push.apply(r, t);\n }\n\n return r;\n }, t.prototype.getMetaValue = function (t) {\n var e;\n return null != (e = this.findMetaElementByName(t)) ? e.getAttribute(\"content\") : void 0;\n }, t.prototype.findMetaElementByName = function (t) {\n var r, n, o, i;\n r = void 0, i = this.elements;\n\n for (o in i) {\n n = i[o].elements, e(n[0], t) && (r = n[0]);\n }\n\n return r;\n }, i = function i(t) {\n return r(t) ? \"script\" : n(t) ? \"stylesheet\" : void 0;\n }, o = function o(t) {\n return \"reload\" === t.getAttribute(\"data-turbolinks-track\");\n }, r = function r(t) {\n var e;\n return e = t.tagName.toLowerCase(), \"script\" === e;\n }, n = function n(t) {\n var e;\n return e = t.tagName.toLowerCase(), \"style\" === e || \"link\" === e && \"stylesheet\" === t.getAttribute(\"rel\");\n }, e = function e(t, _e) {\n var r;\n return r = t.tagName.toLowerCase(), \"meta\" === r && t.getAttribute(\"name\") === _e;\n }, t;\n }();\n }.call(this), function () {\n e.Snapshot = function () {\n function t(t, e) {\n this.headDetails = t, this.bodyElement = e;\n }\n\n return t.wrap = function (t) {\n return t instanceof this ? t : \"string\" == typeof t ? this.fromHTMLString(t) : this.fromHTMLElement(t);\n }, t.fromHTMLString = function (t) {\n var e;\n return e = document.createElement(\"html\"), e.innerHTML = t, this.fromHTMLElement(e);\n }, t.fromHTMLElement = function (t) {\n var r, n, o, i;\n return o = t.querySelector(\"head\"), r = null != (i = t.querySelector(\"body\")) ? i : document.createElement(\"body\"), n = e.HeadDetails.fromHeadElement(o), new this(n, r);\n }, t.prototype.clone = function () {\n return new this.constructor(this.headDetails, this.bodyElement.cloneNode(!0));\n }, t.prototype.getRootLocation = function () {\n var t, r;\n return r = null != (t = this.getSetting(\"root\")) ? t : \"/\", new e.Location(r);\n }, t.prototype.getCacheControlValue = function () {\n return this.getSetting(\"cache-control\");\n }, t.prototype.getElementForAnchor = function (t) {\n try {\n return this.bodyElement.querySelector(\"[id='\" + t + \"'], a[name='\" + t + \"']\");\n } catch (e) {}\n }, t.prototype.getPermanentElements = function () {\n return this.bodyElement.querySelectorAll(\"[id][data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementById = function (t) {\n return this.bodyElement.querySelector(\"#\" + t + \"[data-turbolinks-permanent]\");\n }, t.prototype.getPermanentElementsPresentInSnapshot = function (t) {\n var e, r, n, o, i;\n\n for (o = this.getPermanentElements(), i = [], r = 0, n = o.length; n > r; r++) {\n e = o[r], t.getPermanentElementById(e.id) && i.push(e);\n }\n\n return i;\n }, t.prototype.findFirstAutofocusableElement = function () {\n return this.bodyElement.querySelector(\"[autofocus]\");\n }, t.prototype.hasAnchor = function (t) {\n return null != this.getElementForAnchor(t);\n }, t.prototype.isPreviewable = function () {\n return \"no-preview\" !== this.getCacheControlValue();\n }, t.prototype.isCacheable = function () {\n return \"no-cache\" !== this.getCacheControlValue();\n }, t.prototype.isVisitable = function () {\n return \"reload\" !== this.getSetting(\"visit-control\");\n }, t.prototype.getSetting = function (t) {\n return this.headDetails.getMetaValue(\"turbolinks-\" + t);\n }, t;\n }();\n }.call(this), function () {\n var t = [].slice;\n\n e.Renderer = function () {\n function e() {}\n\n var r;\n return e.render = function () {\n var e, r, n, o;\n return n = arguments[0], r = arguments[1], e = 3 <= arguments.length ? t.call(arguments, 2) : [], o = function (t, e, r) {\n r.prototype = t.prototype;\n var n = new r(),\n o = t.apply(n, e);\n return Object(o) === o ? o : n;\n }(this, e, function () {}), o.delegate = n, o.render(r), o;\n }, e.prototype.renderView = function (t) {\n return this.delegate.viewWillRender(this.newBody), t(), this.delegate.viewRendered(this.newBody);\n }, e.prototype.invalidateView = function () {\n return this.delegate.viewInvalidated();\n }, e.prototype.createScriptElement = function (t) {\n var e;\n return \"false\" === t.getAttribute(\"data-turbolinks-eval\") ? t : (e = document.createElement(\"script\"), e.textContent = t.textContent, e.async = !1, r(e, t), e);\n }, r = function r(t, e) {\n var r, n, o, i, s, a, u;\n\n for (i = e.attributes, a = [], r = 0, n = i.length; n > r; r++) {\n s = i[r], o = s.name, u = s.value, a.push(t.setAttribute(o, u));\n }\n\n return a;\n }, e;\n }();\n }.call(this), function () {\n var t,\n r,\n n = function n(t, e) {\n function r() {\n this.constructor = t;\n }\n\n for (var n in e) {\n o.call(e, n) && (t[n] = e[n]);\n }\n\n return r.prototype = e.prototype, t.prototype = new r(), t.__super__ = e.prototype, t;\n },\n o = {}.hasOwnProperty;\n\n e.SnapshotRenderer = function (e) {\n function o(t, e, r) {\n this.currentSnapshot = t, this.newSnapshot = e, this.isPreview = r, this.currentHeadDetails = this.currentSnapshot.headDetails, this.newHeadDetails = this.newSnapshot.headDetails, this.currentBody = this.currentSnapshot.bodyElement, this.newBody = this.newSnapshot.bodyElement;\n }\n\n return n(o, e), o.prototype.render = function (t) {\n return this.shouldRender() ? (this.mergeHead(), this.renderView(function (e) {\n return function () {\n return e.replaceBody(), e.isPreview || e.focusFirstAutofocusableElement(), t();\n };\n }(this))) : this.invalidateView();\n }, o.prototype.mergeHead = function () {\n return this.copyNewHeadStylesheetElements(), this.copyNewHeadScriptElements(), this.removeCurrentHeadProvisionalElements(), this.copyNewHeadProvisionalElements();\n }, o.prototype.replaceBody = function () {\n var t;\n return t = this.relocateCurrentBodyPermanentElements(), this.activateNewBodyScriptElements(), this.assignNewBody(), this.replacePlaceholderElementsWithClonedPermanentElements(t);\n }, o.prototype.shouldRender = function () {\n return this.newSnapshot.isVisitable() && this.trackedElementsAreIdentical();\n }, o.prototype.trackedElementsAreIdentical = function () {\n return this.currentHeadDetails.getTrackedElementSignature() === this.newHeadDetails.getTrackedElementSignature();\n }, o.prototype.copyNewHeadStylesheetElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadStylesheetElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(t));\n }\n\n return o;\n }, o.prototype.copyNewHeadScriptElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadScriptElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(this.createScriptElement(t)));\n }\n\n return o;\n }, o.prototype.removeCurrentHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getCurrentHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.removeChild(t));\n }\n\n return o;\n }, o.prototype.copyNewHeadProvisionalElements = function () {\n var t, e, r, n, o;\n\n for (n = this.getNewHeadProvisionalElements(), o = [], e = 0, r = n.length; r > e; e++) {\n t = n[e], o.push(document.head.appendChild(t));\n }\n\n return o;\n }, o.prototype.relocateCurrentBodyPermanentElements = function () {\n var e, n, o, i, s, a, u;\n\n for (a = this.getCurrentBodyPermanentElements(), u = [], e = 0, n = a.length; n > e; e++) {\n i = a[e], s = t(i), o = this.newSnapshot.getPermanentElementById(i.id), r(i, s.element), r(o, i), u.push(s);\n }\n\n return u;\n }, o.prototype.replacePlaceholderElementsWithClonedPermanentElements = function (t) {\n var e, n, o, i, s, a, u;\n\n for (u = [], o = 0, i = t.length; i > o; o++) {\n a = t[o], n = a.element, s = a.permanentElement, e = s.cloneNode(!0), u.push(r(n, e));\n }\n\n return u;\n }, o.prototype.activateNewBodyScriptElements = function () {\n var t, e, n, o, i, s;\n\n for (i = this.getNewBodyScriptElements(), s = [], e = 0, o = i.length; o > e; e++) {\n n = i[e], t = this.createScriptElement(n), s.push(r(n, t));\n }\n\n return s;\n }, o.prototype.assignNewBody = function () {\n return document.body = this.newBody;\n }, o.prototype.focusFirstAutofocusableElement = function () {\n var t;\n return null != (t = this.newSnapshot.findFirstAutofocusableElement()) ? t.focus() : void 0;\n }, o.prototype.getNewHeadStylesheetElements = function () {\n return this.newHeadDetails.getStylesheetElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getNewHeadScriptElements = function () {\n return this.newHeadDetails.getScriptElementsNotInDetails(this.currentHeadDetails);\n }, o.prototype.getCurrentHeadProvisionalElements = function () {\n return this.currentHeadDetails.getProvisionalElements();\n }, o.prototype.getNewHeadProvisionalElements = function () {\n return this.newHeadDetails.getProvisionalElements();\n }, o.prototype.getCurrentBodyPermanentElements = function () {\n return this.currentSnapshot.getPermanentElementsPresentInSnapshot(this.newSnapshot);\n }, o.prototype.getNewBodyScriptElements = function () {\n return this.newBody.querySelectorAll(\"script\");\n }, o;\n }(e.Renderer), t = function t(_t5) {\n var e;\n return e = document.createElement(\"meta\"), e.setAttribute(\"name\", \"turbolinks-permanent-placeholder\"), e.setAttribute(\"content\", _t5.id), {\n element: e,\n permanentElement: _t5\n };\n }, r = function r(t, e) {\n var r;\n return (r = t.parentNode) ? r.replaceChild(e, t) : void 0;\n };\n }.call(this), function () {\n var t = function t(_t6, e) {\n function n() {\n this.constructor = _t6;\n }\n\n for (var o in e) {\n r.call(e, o) && (_t6[o] = e[o]);\n }\n\n return n.prototype = e.prototype, _t6.prototype = new n(), _t6.__super__ = e.prototype, _t6;\n },\n r = {}.hasOwnProperty;\n\n e.ErrorRenderer = function (e) {\n function r(t) {\n var e;\n e = document.createElement(\"html\"), e.innerHTML = t, this.newHead = e.querySelector(\"head\"), this.newBody = e.querySelector(\"body\");\n }\n\n return t(r, e), r.prototype.render = function (t) {\n return this.renderView(function (e) {\n return function () {\n return e.replaceHeadAndBody(), e.activateBodyScriptElements(), t();\n };\n }(this));\n }, r.prototype.replaceHeadAndBody = function () {\n var t, e;\n return e = document.head, t = document.body, e.parentNode.replaceChild(this.newHead, e), t.parentNode.replaceChild(this.newBody, t);\n }, r.prototype.activateBodyScriptElements = function () {\n var t, e, r, n, o, i;\n\n for (n = this.getScriptElements(), i = [], e = 0, r = n.length; r > e; e++) {\n o = n[e], t = this.createScriptElement(o), i.push(o.parentNode.replaceChild(t, o));\n }\n\n return i;\n }, r.prototype.getScriptElements = function () {\n return document.documentElement.querySelectorAll(\"script\");\n }, r;\n }(e.Renderer);\n }.call(this), function () {\n e.View = function () {\n function t(t) {\n this.delegate = t, this.htmlElement = document.documentElement;\n }\n\n return t.prototype.getRootLocation = function () {\n return this.getSnapshot().getRootLocation();\n }, t.prototype.getElementForAnchor = function (t) {\n return this.getSnapshot().getElementForAnchor(t);\n }, t.prototype.getSnapshot = function () {\n return e.Snapshot.fromHTMLElement(this.htmlElement);\n }, t.prototype.render = function (t, e) {\n var r, n, o;\n return o = t.snapshot, r = t.error, n = t.isPreview, this.markAsPreview(n), null != o ? this.renderSnapshot(o, n, e) : this.renderError(r, e);\n }, t.prototype.markAsPreview = function (t) {\n return t ? this.htmlElement.setAttribute(\"data-turbolinks-preview\", \"\") : this.htmlElement.removeAttribute(\"data-turbolinks-preview\");\n }, t.prototype.renderSnapshot = function (t, r, n) {\n return e.SnapshotRenderer.render(this.delegate, n, this.getSnapshot(), e.Snapshot.wrap(t), r);\n }, t.prototype.renderError = function (t, r) {\n return e.ErrorRenderer.render(this.delegate, r, t);\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t7, e) {\n return function () {\n return _t7.apply(e, arguments);\n };\n };\n\n e.ScrollManager = function () {\n function r(r) {\n this.delegate = r, this.onScroll = t(this.onScroll, this), this.onScroll = e.throttle(this.onScroll);\n }\n\n return r.prototype.start = function () {\n return this.started ? void 0 : (addEventListener(\"scroll\", this.onScroll, !1), this.onScroll(), this.started = !0);\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"scroll\", this.onScroll, !1), this.started = !1) : void 0;\n }, r.prototype.scrollToElement = function (t) {\n return t.scrollIntoView();\n }, r.prototype.scrollToPosition = function (t) {\n var e, r;\n return e = t.x, r = t.y, window.scrollTo(e, r);\n }, r.prototype.onScroll = function (t) {\n return this.updatePosition({\n x: window.pageXOffset,\n y: window.pageYOffset\n });\n }, r.prototype.updatePosition = function (t) {\n var e;\n return this.position = t, null != (e = this.delegate) ? e.scrollPositionChanged(this.position) : void 0;\n }, r;\n }();\n }.call(this), function () {\n e.SnapshotCache = function () {\n function t(t) {\n this.size = t, this.keys = [], this.snapshots = {};\n }\n\n var r;\n return t.prototype.has = function (t) {\n var e;\n return e = r(t), e in this.snapshots;\n }, t.prototype.get = function (t) {\n var e;\n if (this.has(t)) return e = this.read(t), this.touch(t), e;\n }, t.prototype.put = function (t, e) {\n return this.write(t, e), this.touch(t), e;\n }, t.prototype.read = function (t) {\n var e;\n return e = r(t), this.snapshots[e];\n }, t.prototype.write = function (t, e) {\n var n;\n return n = r(t), this.snapshots[n] = e;\n }, t.prototype.touch = function (t) {\n var e, n;\n return n = r(t), e = this.keys.indexOf(n), e > -1 && this.keys.splice(e, 1), this.keys.unshift(n), this.trim();\n }, t.prototype.trim = function () {\n var t, e, r, n, o;\n\n for (n = this.keys.splice(this.size), o = [], t = 0, r = n.length; r > t; t++) {\n e = n[t], o.push(delete this.snapshots[e]);\n }\n\n return o;\n }, r = function r(t) {\n return e.Location.wrap(t).toCacheKey();\n }, t;\n }();\n }.call(this), function () {\n var t = function t(_t8, e) {\n return function () {\n return _t8.apply(e, arguments);\n };\n };\n\n e.Visit = function () {\n function r(r, n, o) {\n this.controller = r, this.action = o, this.performScroll = t(this.performScroll, this), this.identifier = e.uuid(), this.location = e.Location.wrap(n), this.adapter = this.controller.adapter, this.state = \"initialized\", this.timingMetrics = {};\n }\n\n var n;\n return r.prototype.start = function () {\n return \"initialized\" === this.state ? (this.recordTimingMetric(\"visitStart\"), this.state = \"started\", this.adapter.visitStarted(this)) : void 0;\n }, r.prototype.cancel = function () {\n var t;\n return \"started\" === this.state ? (null != (t = this.request) && t.cancel(), this.cancelRender(), this.state = \"canceled\") : void 0;\n }, r.prototype.complete = function () {\n var t;\n return \"started\" === this.state ? (this.recordTimingMetric(\"visitEnd\"), this.state = \"completed\", \"function\" == typeof (t = this.adapter).visitCompleted && t.visitCompleted(this), this.controller.visitCompleted(this)) : void 0;\n }, r.prototype.fail = function () {\n var t;\n return \"started\" === this.state ? (this.state = \"failed\", \"function\" == typeof (t = this.adapter).visitFailed ? t.visitFailed(this) : void 0) : void 0;\n }, r.prototype.changeHistory = function () {\n var t, e;\n return this.historyChanged ? void 0 : (t = this.location.isEqualTo(this.referrer) ? \"replace\" : this.action, e = n(t), this.controller[e](this.location, this.restorationIdentifier), this.historyChanged = !0);\n }, r.prototype.issueRequest = function () {\n return this.shouldIssueRequest() && null == this.request ? (this.progress = 0, this.request = new e.HttpRequest(this, this.location, this.referrer), this.request.send()) : void 0;\n }, r.prototype.getCachedSnapshot = function () {\n var t;\n return !(t = this.controller.getCachedSnapshotForLocation(this.location)) || null != this.location.anchor && !t.hasAnchor(this.location.anchor) || \"restore\" !== this.action && !t.isPreviewable() ? void 0 : t;\n }, r.prototype.hasCachedSnapshot = function () {\n return null != this.getCachedSnapshot();\n }, r.prototype.loadCachedSnapshot = function () {\n var t, e;\n return (e = this.getCachedSnapshot()) ? (t = this.shouldIssueRequest(), this.render(function () {\n var r;\n return this.cacheSnapshot(), this.controller.render({\n snapshot: e,\n isPreview: t\n }, this.performScroll), \"function\" == typeof (r = this.adapter).visitRendered && r.visitRendered(this), t ? void 0 : this.complete();\n })) : void 0;\n }, r.prototype.loadResponse = function () {\n return null != this.response ? this.render(function () {\n var t, e;\n return this.cacheSnapshot(), this.request.failed ? (this.controller.render({\n error: this.response\n }, this.performScroll), \"function\" == typeof (t = this.adapter).visitRendered && t.visitRendered(this), this.fail()) : (this.controller.render({\n snapshot: this.response\n }, this.performScroll), \"function\" == typeof (e = this.adapter).visitRendered && e.visitRendered(this), this.complete());\n }) : void 0;\n }, r.prototype.followRedirect = function () {\n return this.redirectedToLocation && !this.followedRedirect ? (this.location = this.redirectedToLocation, this.controller.replaceHistoryWithLocationAndRestorationIdentifier(this.redirectedToLocation, this.restorationIdentifier), this.followedRedirect = !0) : void 0;\n }, r.prototype.requestStarted = function () {\n var t;\n return this.recordTimingMetric(\"requestStart\"), \"function\" == typeof (t = this.adapter).visitRequestStarted ? t.visitRequestStarted(this) : void 0;\n }, r.prototype.requestProgressed = function (t) {\n var e;\n return this.progress = t, \"function\" == typeof (e = this.adapter).visitRequestProgressed ? e.visitRequestProgressed(this) : void 0;\n }, r.prototype.requestCompletedWithResponse = function (t, r) {\n return this.response = t, null != r && (this.redirectedToLocation = e.Location.wrap(r)), this.adapter.visitRequestCompleted(this);\n }, r.prototype.requestFailedWithStatusCode = function (t, e) {\n return this.response = e, this.adapter.visitRequestFailedWithStatusCode(this, t);\n }, r.prototype.requestFinished = function () {\n var t;\n return this.recordTimingMetric(\"requestEnd\"), \"function\" == typeof (t = this.adapter).visitRequestFinished ? t.visitRequestFinished(this) : void 0;\n }, r.prototype.performScroll = function () {\n return this.scrolled ? void 0 : (\"restore\" === this.action ? this.scrollToRestoredPosition() || this.scrollToTop() : this.scrollToAnchor() || this.scrollToTop(), this.scrolled = !0);\n }, r.prototype.scrollToRestoredPosition = function () {\n var t, e;\n return t = null != (e = this.restorationData) ? e.scrollPosition : void 0, null != t ? (this.controller.scrollToPosition(t), !0) : void 0;\n }, r.prototype.scrollToAnchor = function () {\n return null != this.location.anchor ? (this.controller.scrollToAnchor(this.location.anchor), !0) : void 0;\n }, r.prototype.scrollToTop = function () {\n return this.controller.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.recordTimingMetric = function (t) {\n var e;\n return null != (e = this.timingMetrics)[t] ? e[t] : e[t] = new Date().getTime();\n }, r.prototype.getTimingMetrics = function () {\n return e.copyObject(this.timingMetrics);\n }, n = function n(t) {\n switch (t) {\n case \"replace\":\n return \"replaceHistoryWithLocationAndRestorationIdentifier\";\n\n case \"advance\":\n case \"restore\":\n return \"pushHistoryWithLocationAndRestorationIdentifier\";\n }\n }, r.prototype.shouldIssueRequest = function () {\n return \"restore\" === this.action ? !this.hasCachedSnapshot() : !0;\n }, r.prototype.cacheSnapshot = function () {\n return this.snapshotCached ? void 0 : (this.controller.cacheSnapshot(), this.snapshotCached = !0);\n }, r.prototype.render = function (t) {\n return this.cancelRender(), this.frame = requestAnimationFrame(function (e) {\n return function () {\n return e.frame = null, t.call(e);\n };\n }(this));\n }, r.prototype.cancelRender = function () {\n return this.frame ? cancelAnimationFrame(this.frame) : void 0;\n }, r;\n }();\n }.call(this), function () {\n var t = function t(_t9, e) {\n return function () {\n return _t9.apply(e, arguments);\n };\n };\n\n e.Controller = function () {\n function r() {\n this.clickBubbled = t(this.clickBubbled, this), this.clickCaptured = t(this.clickCaptured, this), this.pageLoaded = t(this.pageLoaded, this), this.history = new e.History(this), this.view = new e.View(this), this.scrollManager = new e.ScrollManager(this), this.restorationData = {}, this.clearCache(), this.setProgressBarDelay(500);\n }\n\n return r.prototype.start = function () {\n return e.supported && !this.started ? (addEventListener(\"click\", this.clickCaptured, !0), addEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.start(), this.startHistory(), this.started = !0, this.enabled = !0) : void 0;\n }, r.prototype.disable = function () {\n return this.enabled = !1;\n }, r.prototype.stop = function () {\n return this.started ? (removeEventListener(\"click\", this.clickCaptured, !0), removeEventListener(\"DOMContentLoaded\", this.pageLoaded, !1), this.scrollManager.stop(), this.stopHistory(), this.started = !1) : void 0;\n }, r.prototype.clearCache = function () {\n return this.cache = new e.SnapshotCache(10);\n }, r.prototype.visit = function (t, r) {\n var n, o;\n return null == r && (r = {}), t = e.Location.wrap(t), this.applicationAllowsVisitingLocation(t) ? this.locationIsVisitable(t) ? (n = null != (o = r.action) ? o : \"advance\", this.adapter.visitProposedToLocationWithAction(t, n)) : window.location = t : void 0;\n }, r.prototype.startVisitToLocationWithAction = function (t, r, n) {\n var o;\n return e.supported ? (o = this.getRestorationDataForIdentifier(n), this.startVisit(t, r, {\n restorationData: o\n })) : window.location = t;\n }, r.prototype.setProgressBarDelay = function (t) {\n return this.progressBarDelay = t;\n }, r.prototype.startHistory = function () {\n return this.location = e.Location.wrap(window.location), this.restorationIdentifier = e.uuid(), this.history.start(), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.stopHistory = function () {\n return this.history.stop();\n }, r.prototype.pushHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.push(this.location, this.restorationIdentifier);\n }, r.prototype.replaceHistoryWithLocationAndRestorationIdentifier = function (t, r) {\n return this.restorationIdentifier = r, this.location = e.Location.wrap(t), this.history.replace(this.location, this.restorationIdentifier);\n }, r.prototype.historyPoppedToLocationWithRestorationIdentifier = function (t, r) {\n var n;\n return this.restorationIdentifier = r, this.enabled ? (n = this.getRestorationDataForIdentifier(this.restorationIdentifier), this.startVisit(t, \"restore\", {\n restorationIdentifier: this.restorationIdentifier,\n restorationData: n,\n historyChanged: !0\n }), this.location = e.Location.wrap(t)) : this.adapter.pageInvalidated();\n }, r.prototype.getCachedSnapshotForLocation = function (t) {\n var e;\n return null != (e = this.cache.get(t)) ? e.clone() : void 0;\n }, r.prototype.shouldCacheSnapshot = function () {\n return this.view.getSnapshot().isCacheable();\n }, r.prototype.cacheSnapshot = function () {\n var t, r;\n return this.shouldCacheSnapshot() ? (this.notifyApplicationBeforeCachingSnapshot(), r = this.view.getSnapshot(), t = this.lastRenderedLocation, e.defer(function (e) {\n return function () {\n return e.cache.put(t, r.clone());\n };\n }(this))) : void 0;\n }, r.prototype.scrollToAnchor = function (t) {\n var e;\n return (e = this.view.getElementForAnchor(t)) ? this.scrollToElement(e) : this.scrollToPosition({\n x: 0,\n y: 0\n });\n }, r.prototype.scrollToElement = function (t) {\n return this.scrollManager.scrollToElement(t);\n }, r.prototype.scrollToPosition = function (t) {\n return this.scrollManager.scrollToPosition(t);\n }, r.prototype.scrollPositionChanged = function (t) {\n var e;\n return e = this.getCurrentRestorationData(), e.scrollPosition = t;\n }, r.prototype.render = function (t, e) {\n return this.view.render(t, e);\n }, r.prototype.viewInvalidated = function () {\n return this.adapter.pageInvalidated();\n }, r.prototype.viewWillRender = function (t) {\n return this.notifyApplicationBeforeRender(t);\n }, r.prototype.viewRendered = function () {\n return this.lastRenderedLocation = this.currentVisit.location, this.notifyApplicationAfterRender();\n }, r.prototype.pageLoaded = function () {\n return this.lastRenderedLocation = this.location, this.notifyApplicationAfterPageLoad();\n }, r.prototype.clickCaptured = function () {\n return removeEventListener(\"click\", this.clickBubbled, !1), addEventListener(\"click\", this.clickBubbled, !1);\n }, r.prototype.clickBubbled = function (t) {\n var e, r, n;\n return this.enabled && this.clickEventIsSignificant(t) && (r = this.getVisitableLinkForNode(t.target)) && (n = this.getVisitableLocationForLink(r)) && this.applicationAllowsFollowingLinkToLocation(r, n) ? (t.preventDefault(), e = this.getActionForLink(r), this.visit(n, {\n action: e\n })) : void 0;\n }, r.prototype.applicationAllowsFollowingLinkToLocation = function (t, e) {\n var r;\n return r = this.notifyApplicationAfterClickingLinkToLocation(t, e), !r.defaultPrevented;\n }, r.prototype.applicationAllowsVisitingLocation = function (t) {\n var e;\n return e = this.notifyApplicationBeforeVisitingLocation(t), !e.defaultPrevented;\n }, r.prototype.notifyApplicationAfterClickingLinkToLocation = function (t, r) {\n return e.dispatch(\"turbolinks:click\", {\n target: t,\n data: {\n url: r.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationBeforeVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:before-visit\", {\n data: {\n url: t.absoluteURL\n },\n cancelable: !0\n });\n }, r.prototype.notifyApplicationAfterVisitingLocation = function (t) {\n return e.dispatch(\"turbolinks:visit\", {\n data: {\n url: t.absoluteURL\n }\n });\n }, r.prototype.notifyApplicationBeforeCachingSnapshot = function () {\n return e.dispatch(\"turbolinks:before-cache\");\n }, r.prototype.notifyApplicationBeforeRender = function (t) {\n return e.dispatch(\"turbolinks:before-render\", {\n data: {\n newBody: t\n }\n });\n }, r.prototype.notifyApplicationAfterRender = function () {\n return e.dispatch(\"turbolinks:render\");\n }, r.prototype.notifyApplicationAfterPageLoad = function (t) {\n return null == t && (t = {}), e.dispatch(\"turbolinks:load\", {\n data: {\n url: this.location.absoluteURL,\n timing: t\n }\n });\n }, r.prototype.startVisit = function (t, e, r) {\n var n;\n return null != (n = this.currentVisit) && n.cancel(), this.currentVisit = this.createVisit(t, e, r), this.currentVisit.start(), this.notifyApplicationAfterVisitingLocation(t);\n }, r.prototype.createVisit = function (t, r, n) {\n var o, i, s, a, u;\n return i = null != n ? n : {}, a = i.restorationIdentifier, s = i.restorationData, o = i.historyChanged, u = new e.Visit(this, t, r), u.restorationIdentifier = null != a ? a : e.uuid(), u.restorationData = e.copyObject(s), u.historyChanged = o, u.referrer = this.location, u;\n }, r.prototype.visitCompleted = function (t) {\n return this.notifyApplicationAfterPageLoad(t.getTimingMetrics());\n }, r.prototype.clickEventIsSignificant = function (t) {\n return !(t.defaultPrevented || t.target.isContentEditable || t.which > 1 || t.altKey || t.ctrlKey || t.metaKey || t.shiftKey);\n }, r.prototype.getVisitableLinkForNode = function (t) {\n return this.nodeIsVisitable(t) ? e.closest(t, \"a[href]:not([target]):not([download])\") : void 0;\n }, r.prototype.getVisitableLocationForLink = function (t) {\n var r;\n return r = new e.Location(t.getAttribute(\"href\")), this.locationIsVisitable(r) ? r : void 0;\n }, r.prototype.getActionForLink = function (t) {\n var e;\n return null != (e = t.getAttribute(\"data-turbolinks-action\")) ? e : \"advance\";\n }, r.prototype.nodeIsVisitable = function (t) {\n var r;\n return (r = e.closest(t, \"[data-turbolinks]\")) ? \"false\" !== r.getAttribute(\"data-turbolinks\") : !0;\n }, r.prototype.locationIsVisitable = function (t) {\n return t.isPrefixedBy(this.view.getRootLocation()) && t.isHTML();\n }, r.prototype.getCurrentRestorationData = function () {\n return this.getRestorationDataForIdentifier(this.restorationIdentifier);\n }, r.prototype.getRestorationDataForIdentifier = function (t) {\n var e;\n return null != (e = this.restorationData)[t] ? e[t] : e[t] = {};\n }, r;\n }();\n }.call(this), function () {\n !function () {\n var t, e;\n if ((t = e = document.currentScript) && !e.hasAttribute(\"data-turbolinks-suppress-warning\")) for (; t = t.parentNode;) {\n if (t === document.body) return console.warn(\"You are loading Turbolinks from a