{"version":3,"sources":["webpack/bootstrap","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.Type.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.Get.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.Call.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.IsCallable.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.ToObject.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.GetV.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.GetMethod.js","/node_modules/core-js/internals/global.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.OrdinaryToPrimitive.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.ToPrimitive.js","/node_modules/core-js/internals/fails.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.ToString.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.CreateDataProperty.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.IsConstructor.js","/node_modules/core-js/internals/has.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.GetPrototypeFromConstructor.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.SameValueNonNumber.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.ToPropertyKey.js","/node_modules/core-js/internals/create-non-enumerable-property.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.OrdinaryCreateFromConstructor.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.ToBoolean.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.ArrayCreate.js","/node_modules/core-js/internals/descriptors.js","/node_modules/core-js/internals/require-object-coercible.js","/node_modules/core-js/internals/is-object.js","/node_modules/core-js/internals/an-object.js","/node_modules/core-js/internals/to-integer.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.ToInteger.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.IsArray.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.Construct.js","/node_modules/core-js/internals/to-indexed-object.js","/node_modules/core-js/internals/set-global.js","/node_modules/core-js/internals/regexp-exec.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.IteratorComplete.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.IteratorNext.js","/node_modules/@mrhenry/core-web/modules/Element.prototype.inert.js","/node_modules/webpack/buildin/global.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.ToLength.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.ArraySpeciesCreate.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.CreateDataPropertyOrThrow.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.SameValueZero.js","/node_modules/core-js/internals/object-get-own-property-descriptor.js","/node_modules/core-js/internals/create-property-descriptor.js","/node_modules/core-js/internals/classof-raw.js","/node_modules/core-js/internals/to-primitive.js","/node_modules/core-js/internals/ie8-dom-define.js","/node_modules/core-js/internals/object-define-property.js","/node_modules/core-js/internals/redefine.js","/node_modules/core-js/internals/inspect-source.js","/node_modules/core-js/internals/shared-store.js","/node_modules/core-js/internals/shared.js","/node_modules/core-js/internals/uid.js","/node_modules/core-js/internals/hidden-keys.js","/node_modules/core-js/internals/to-length.js","/node_modules/core-js/internals/native-symbol.js","/node_modules/@bugsnag/js/browser/notifier.js","/node_modules/@bugsnag/browser/dist/bugsnag.js","/wp-content/themes/sereni/gulp/assets/js/modules/mr-carousel.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.CreateIterResultObject.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.GetIterator.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.IteratorClose.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.IteratorStep.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.IteratorValue.js","/node_modules/@mrhenry/core-web/helpers/_ESAbstract.SameValue.js","/node_modules/webpack/buildin/amd-options.js","/node_modules/core-js/modules/es.string.replace.js","/node_modules/core-js/internals/fix-regexp-well-known-symbol-logic.js","/node_modules/core-js/modules/es.regexp.exec.js","/node_modules/core-js/internals/export.js","/node_modules/core-js/internals/object-property-is-enumerable.js","/node_modules/core-js/internals/indexed-object.js","/node_modules/core-js/internals/document-create-element.js","/node_modules/core-js/internals/internal-state.js","/node_modules/core-js/internals/native-weak-map.js","/node_modules/core-js/internals/shared-key.js","/node_modules/core-js/internals/is-pure.js","/node_modules/core-js/internals/copy-constructor-properties.js","/node_modules/core-js/internals/own-keys.js","/node_modules/core-js/internals/get-built-in.js","/node_modules/core-js/internals/path.js","/node_modules/core-js/internals/object-get-own-property-names.js","/node_modules/core-js/internals/object-keys-internal.js","/node_modules/core-js/internals/array-includes.js","/node_modules/core-js/internals/to-absolute-index.js","/node_modules/core-js/internals/enum-bug-keys.js","/node_modules/core-js/internals/object-get-own-property-symbols.js","/node_modules/core-js/internals/is-forced.js","/node_modules/core-js/internals/regexp-flags.js","/node_modules/core-js/internals/regexp-sticky-helpers.js","/node_modules/core-js/internals/well-known-symbol.js","/node_modules/core-js/internals/use-symbol-as-uid.js","/node_modules/core-js/internals/to-object.js","/node_modules/core-js/internals/advance-string-index.js","/node_modules/core-js/internals/string-multibyte.js","/node_modules/core-js/internals/regexp-exec-abstract.js","/packages/bugsnag-config/lib/bugsnag-config.ts","/packages/mr-interactive/lib/mr-accordion/mr-accordion.ts","/wp-content/themes/sereni/gulp/assets/js/modules/mr-accordion.js","/packages/mr-interactive/lib/mr-input-sink/mr-input-sink.ts","/wp-content/themes/sereni/gulp/assets/js/modules/mr-input-sink.js","/packages/prefers-reduced-motion/lib/prefers-reduced-motion.ts","/packages/play-all-animations/lib/play-all-animations.ts","/packages/mr-interactive/lib/mr-dialog/mr-dialog.ts","/packages/mr-interactive/lib/mr-modal-dialog/mr-modal-dialog.ts","/wp-content/themes/sereni/gulp/assets/js/modules/mr-navigation-overview.js","/wp-content/themes/sereni/gulp/assets/js/helpers/distance.js","/wp-content/themes/sereni/gulp/assets/js/helpers/api-establishments.js","/wp-content/themes/sereni/gulp/assets/js/helpers/api-mapbox.js","/wp-content/themes/sereni/gulp/assets/js/helpers/title-case.ts","/wp-content/themes/sereni/gulp/assets/js/helpers/establishments-search-results.js","/wp-content/themes/sereni/gulp/assets/js/modules/establishments/finder.js","/wp-content/themes/sereni/gulp/assets/js/modules/establishments/map.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","x","self","constructor","O","P","F","V","argumentsList","arguments","length","IsCallable","TypeError","toString","apply","argument","v","func","it","Math","check","globalThis","window","global","Function","hint","methodNames","method","result","input","PreferredType","undefined","String","Number","exoticToPrim","toPrimitive","exec","error","ToString","newDesc","writable","configurable","e","intrinsicDefaultProto","proto","y","DESCRIPTORS","definePropertyModule","createPropertyDescriptor","f","internalSlotsList","obj","Boolean","Infinity","pow","RangeError","A","fails","isObject","ceil","floor","isNaN","number","abs","newTarget","concat","IndexedObject","requireObjectCoercible","createNonEnumerableProperty","re1","re2","regexpFlags","stickyHelpers","nativeExec","RegExp","nativeReplace","replace","patchedExec","UPDATES_LAST_INDEX_WRONG","lastIndex","UNSUPPORTED_Y","BROKEN_CARET","NPCG_INCLUDED","str","reCopy","match","re","this","sticky","flags","source","charsAdded","strCopy","indexOf","slice","multiline","index","iterResult","Error","iteratorRecord","factory","Element","_createClass","defineProperties","target","props","descriptor","Constructor","protoProps","staticProps","_classCallCheck","instance","Array","matches","msMatchesSelector","_focusableElementsString","join","InertRoot","rootElement","inertManager","_inertManager","_rootElement","_managedNodes","Set","hasAttribute","_savedAriaHidden","getAttribute","setAttribute","_makeSubtreeUnfocusable","_observer","MutationObserver","_onMutation","observe","attributes","childList","subtree","disconnect","removeAttribute","forEach","inertNode","_unmanageNode","node","startNode","_this2","composedTreeWalk","_visitNode","activeElement","document","body","contains","root","nodeType","Node","DOCUMENT_FRAGMENT_NODE","parentNode","blur","focus","ELEMENT_NODE","element","_adoptInertRoot","_manageNode","register","add","deregister","_this3","inertSubroot","getInertRoot","setInert","managedNodes","savedInertNode","records","_self","record","type","addedNodes","removedNodes","_unmanageSubtree","attributeName","managedNode","set","ariaHidden","InertNode","inertRoot","_node","_overrodeFocusMethod","_inertRoots","_savedTabIndex","_destroyed","ensureUntabbable","_throwIfDestroyed","destroyed","tabIndex","hasSavedTabIndex","size","destructor","callback","shadowRootAncestor","shadowRoot","localName","content","distributedNodes","getDistributedNodes","slot","_distributedNodes","assignedNodes","flatten","_i","child","firstChild","nextSibling","addInertStyle","querySelector","style","createElement","textContent","appendChild","InertManager","_document","Map","_watchForInert","head","documentElement","readyState","addEventListener","_onDocumentLoaded","inert","has","parent","addInertRoot","removeInertRoot","querySelectorAll","inertElement","_this","inertElements","unshift","define","g","propertyIsEnumerableModule","toIndexedObject","IE8_DOM_DEFINE","nativeGetOwnPropertyDescriptor","getOwnPropertyDescriptor","bitmap","PREFERRED_STRING","fn","val","valueOf","a","anObject","nativeDefineProperty","Attributes","setGlobal","inspectSource","InternalStateModule","getInternalState","enforceInternalState","enforce","TEMPLATE","split","options","unsafe","simple","noTargetGet","store","functionToString","IS_PURE","push","version","copyright","id","postfix","random","toInteger","min","getOwnPropertySymbols","_$breadcrumbTypes_8","_$reduce_17","arr","accum","len","_$filter_12","item","_$includes_13","_$isArray_14","_hasDontEnumBug","propertyIsEnumerable","_dontEnums","_$keys_15","prop","_$intRange_24","max","parseInt","_$listOfFunctions_25","_$stringWithLength_26","_$config_5","schema","apiKey","defaultValue","message","validate","appVersion","appType","autoDetectErrors","enabledErrorTypes","unhandledExceptions","unhandledRejections","allowPartialObject","providedKeys","defaultKeys","k","onError","onSession","onBreadcrumb","endpoints","notify","sessions","autoTrackSessions","enabledReleaseStages","releaseStage","maxBreadcrumbs","enabledBreadcrumbTypes","maybeType","context","user","metadata","logger","redactedKeys","test","plugins","load","_$assign_11","_$map_16","_$config_1","location","host","console","debug","getPrefixedConsole","consoleLog","log","consoleMethod","_$Breadcrumb_3","Breadcrumb","timestamp","Date","toJSON","metaData","_$stackframe_34","StackFrame","_isNumber","parseFloat","isFinite","_capitalize","charAt","toUpperCase","substring","_getter","booleanProps","numericProps","stringProps","getArgs","args","setArgs","getEvalOrigin","evalOrigin","setEvalOrigin","getFunctionName","getFileName","getLineNumber","getColumnNumber","j","_$errorStackParser_31","ErrorStackParser","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","parse","stacktrace","parseOpera","stack","parseV8OrIE","parseFFOrSafari","extractLocation","urlLike","parts","filter","line","map","sanitizedLine","tokens","locationParts","pop","functionName","fileName","lineNumber","columnNumber","functionNameRegex","parseOpera9","parseOpera11","parseOpera10","lineRE","lines","argsRaw","functionCall","shift","_$errorStackParser_10","_$hasStack_18","err","_$iserror_19","clear","state","section","_$metadataDelegate_22","keyOrObj","maybeVal","_updates","updates","_$stackGenerator_33","StackGenerator","backtrace","opts","maxStackSize","curr","callee","$1","caller","Event","errorClass","errorMessage","handledState","originalError","defaultHandledState","groupingHash","_handledState","severity","unhandled","app","device","request","breadcrumbs","threads","_metadata","_user","_session","errors","ensureString","frame","formatStackframe","JSON","stringify","_proto","addMetadata","getMetadata","clearMetadata","getUser","setUser","email","payloadVersion","exceptions","er","severityReason","session","file","normaliseFunctionName","code","inProject","getStacktrace","errorFramesToSkip","backtraceFramesToSkip","maybeError","tolerateNonErrors","component","event","_normaliseError","normaliseError","internalFrames","makeSerialisable","createAndLogInputError","reason","warn","hasNecessaryFields","_$Event_6","_$syncCallbackRunner_23","callbacks","callbackArg","callbackType","ignore","cbs","_$pad_29","num","substr","env","globalCount","mimeTypesLength","navigator","mimeTypes","clientId","userAgent","_$fingerprint_28","discreteValues","randomBlock","cuid","getTime","fingerprint","_$cuid_27","_$Session_35","Session","startedAt","_handled","_unhandled","events","handled","_track","noop","Client","configuration","internalPlugins","notifier","_notifier","_config","_schema","_delivery","sendSession","sendEvent","_logger","info","_plugins","_breadcrumbs","_context","_cbs","sp","b","_configure","pl","_loadPlugin","_depth","getContext","setContext","plugin","configSchema","_reduce","config","generateConfigErrorMessage","getPlugin","_setDelivery","startSession","_sessionDelegate","addOnError","front","removeOnError","_addOnSessionPayload","addOnSession","removeOnSession","addOnBreadcrumb","removeOnBreadcrumb","pauseSession","resumeSession","leaveBreadcrumb","crumb","cb","_notify","originalSeverity","onCallbackError","next","_$asyncEvery_7","ret","then","setTimeout","_$callbackRunner_9","shouldSend","rawInput","_$Client_4","_$safeJsonStringify_30","data","replacer","space","redactedPaths","seen","edges","visit","path","edgesExceeded","haystack","needle","find","fResult","throwsMessage","eResult","__isArray_30","aResult","isDescendent","shouldRedact","safelyGetProp","prepareObjForSerialization","paths","patterns","toLowerCase","_$delivery_36","_$jsonPayload_21","EVENT_REDACTION_PATHS","payload","client","win","url","getApiUrl","req","XDomainRequest","onload","open","send","endpoint","isoDate","matchPageProtocol","protocol","encodeURIComponent","_matchPageProtocol","pageProtocol","_$delivery_37","XMLHttpRequest","onreadystatechange","DONE","setRequestHeader","toISOString","appStart","_$app_38","now","duration","_$request_41","href","_$session_42","sessionDelegate","sessionClient","_pausedSession","_$clientIp_43","collectUserIp","clientIp","_$consoleBreadcrumbs_44","isDev","CONSOLE_LOG_METHODS","original","_len","_key","arg","stringified","_restore","_$inlineScriptContent_45","doc","trackInlineScripts","originalLocation","html","DOMContentLoaded","getHtml","outerHTML","prev","_lastScript","updateLastScript","script","getCurrentScript","currentScript","scripts","getElementsByTagName","innerHTML","htmlLines","zeroBasedLine","start","end","addSurroundingCode","_setTimeout","__proxy","__traceOriginalScript","eventTargetCallbackAccessor","callbackAccessor","alsoCallOriginal","cba","__trace__","replacement","isEventHandlerObj","handleEvent","_$navigationBreadcrumbs_47","_$interactionBreadcrumbs_46","targetText","targetSelector","getNodeText","getNodeSelector","el","tagName","className","childNodes","text","innerText","drop","oldURL","from","relativeLocation","to","newURL","getCurrentState","history","replaceState","wrapHistoryFn","pushState","pathname","search","hash","orig","title","currentPath","prevState","stateChangeToMetadata","resetEventCount","_$networkBreadcrumbs_48","_ignoredUrls","ignoredUrls","nativeOpen","removeEventListener","handleXHRLoad","handleXHRError","monkeyPatchXMLHttpRequest","fetch","polyfill","oldFetch","_arguments","urlOrRequest","Promise","resolve","reject","response","handleFetchSuccess","handleFetchError","monkeyPatchFetch","status","_$throttle_49","maxEvents","_$stripQueryString_50","strip","allFrames","_strip","_$onerror_51","prevOnError","onerror","messageOrEvent","lineNo","charNo","decorateStack","detail","extraParameters","culprit","isActualNumber","errorCharacter","_$unhandledRejection_52","listener","evt","isBluebird","fixBluebirdStacktrace","_event$addMetadata","onunhandledrejection","promise","_$notifier_2","__schema_2","Bugsnag","_client","createClient","nav","screen","locale","browserLanguage","systemLanguage","userLanguage","language","orientation","clientWidth","clientHeight","time","bugsnag","MrCarousel","HTMLElement","super","currentIndex","delay","animateDelay","timeout","hasManuallyRestarted","hasManuallyPaused","animating","direction","_clickHandler","metaKey","goToNextItem","preventDefault","stopPropagation","goToPreviousItem","isPlaying","pause","dataset","play","stop","setToItem","_focusHandler","_mouseEnterHandler","_mouseLeaveHandler","_timeoutElapsed","_timeoutReset","clearTimeout","connectedCallback","_addEventListeners","disconnectedCallback","_removeEventListeners","getItems","items","getPreviousIndex","getNextIndex","goToItem","setCurrentIndex","animate","delayPromise","transitionDonePromise","carouselTransitioned","race","render","requestAnimationFrame","previous","current","itemsContainer","customElements","__webpack_amd_options__","fixRegExpWellKnownSymbolLogic","toObject","toLength","advanceStringIndex","regExpExec","SUBSTITUTION_SYMBOLS","SUBSTITUTION_SYMBOLS_NO_NAMED","REPLACE","maybeCallNative","REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE","REPLACE_KEEPS_$0","UNSAFE_SUBSTITUTE","searchValue","replaceValue","regexp","res","done","rx","S","functionalReplace","fullUnicode","unicode","results","accumulatedResult","nextSourcePosition","matched","position","captures","namedCaptures","groups","replacerArgs","getSubstitution","tailPos","symbols","ch","capture","redefine","wellKnownSymbol","regexpExec","SPECIES","REPLACE_SUPPORTS_NAMED_GROUPS","SPLIT_WORKS_WITH_OVERWRITTEN_EXEC","originalExec","KEY","sham","SYMBOL","DELEGATES_TO_SYMBOL","DELEGATES_TO_EXEC","execCalled","nativeRegExpMethod","methods","nativeMethod","arg2","forceStringMethod","stringMethod","regexMethod","string","$","forced","copyConstructorProperties","isForced","targetProperty","sourceProperty","TARGET","GLOBAL","STATIC","stat","nativePropertyIsEnumerable","NASHORN_BUG","1","classof","EXISTS","NATIVE_WEAK_MAP","objectHas","sharedKey","hiddenKeys","WeakMap","wmget","wmhas","wmset","STATE","getterFor","TYPE","shared","uid","keys","ownKeys","getOwnPropertyDescriptorModule","getBuiltIn","getOwnPropertyNamesModule","getOwnPropertySymbolsModule","aFunction","variable","namespace","internalObjectKeys","getOwnPropertyNames","names","toAbsoluteIndex","createMethod","IS_INCLUDES","$this","fromIndex","includes","integer","feature","detection","normalize","POLYFILL","NATIVE","that","ignoreCase","dotAll","RE","NATIVE_SYMBOL","USE_SYMBOL_AS_UID","WellKnownSymbolsStore","createWellKnownSymbol","withoutSetter","iterator","CONVERT_TO_STRING","pos","first","second","charCodeAt","codeAt","R","metaValue","metaTag","bugsnagClient","theme","MrAccordion","isExpanded","panel","_didAddKeypressEventListener","getTriggers","activeAccordion","closest","activeAccordionSelector","triggers","out","which","ctrlModifier","ctrlKey","addKeypressEventListener","MrInputSink","disabled","trigger","forEl","attr","forID","getElementById","updateState","attrName","oldVal","newVal","directive","matchMedia","playAllAnimations","keyframeEffects","promises","KeyframeEffect","getTiming","updateTiming","maxTiming","keyframeEffect","newMax","timing","endDelay","getMaxTiming","iterations","reduceMotion","animation","Animation","timeline","onfinish","all","willOpen","firstFocusableElement","openAnimations","didOpen","willClose","closeAnimations","didClose","gracefullShutdown","firstFocusableChild","children","MrModalDialog","sortedElementsWithLoLaByDistanceTo","lo","la","elements","distance","lo1","la1","lo2","la2","radla1","PI","radla2","theta","radtheta","dist","sin","cos","acos","MAX_SAFE_INTEGER","sort","fetchAllEstablishments","async","lang","resp","ok","json","fetchEstablishmentPartials","ids","variant","fetchEstablishmentPartial","responses","fetchMapboxLocationLoLa","override","queryOverrides","query","titleCasedQuery","txt","fetchMapboxLocation","mapboxLoLaFromLocation","features","firstResult","center","place_name","trim","renderEstablishmentSearchResults","liveArea","liveAreaLoadedMsg","liveAreaLoadingMsg","renderArea","renderVariant","allEstablishments","locationData","loLa","lookupLocationData","sortedEstablishments","points","sortedElementsWithMultiplePointsByDistanceTo","establishmentIDs","establishment","partials","partial","scrollToEl","scrollIntoView","behavior","result_count","singular","plural","MrEstablishmentsFinder","_isBusy","_submitHandler","FormData","_blurHandler","removeNotFoundState","removeErrorState","setLoadingState","setNotFoundState","setErrorState","removeLoadingState","disabledEl","mapBoxDependenciesLoader","MrEstablishmentsMap","_map","remove","messageArea","loadingMapMsg","src","insertBefore","link","rel","loadMapBoxDependencies","containerId","mapboxgl","accessToken","container","zoom","dragRotate","disable","touchZoomRotate","disableRotation","scrollZoom","NavigationControl","showCompass","showZoom","addControl","on","loadingEstablishmentsMsg","point","hidden","geometry","coordinates","properties","fetchAllEstablishmentsAsGeoJSON","marker","markerButton","renderResults","Marker","setLngLat","addTo","loadingErrorsMsg","classList"],"mappings":"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","file":"app.s2019-final.min.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 = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 99);\n","\n// _ESAbstract.Type\n// \"Type(x)\" is used as shorthand for \"the type of x\"...\nfunction Type(x) { // eslint-disable-line no-unused-vars\n\tswitch (typeof x) {\n\t\tcase 'undefined':\n\t\t\treturn 'undefined';\n\t\tcase 'boolean':\n\t\t\treturn 'boolean';\n\t\tcase 'number':\n\t\t\treturn 'number';\n\t\tcase 'string':\n\t\t\treturn 'string';\n\t\tcase 'symbol':\n\t\t\treturn 'symbol';\n\t\tdefault:\n\t\t\t// typeof null is 'object'\n\t\t\tif (x === null) return 'null';\n\t\t\t// Polyfill.io - This is here because a Symbol polyfill will have a typeof `object`.\n\t\t\tif ('Symbol' in self && (x instanceof self.Symbol || x.constructor === self.Symbol)) return 'symbol';\n\t\t\treturn 'object';\n\t}\n}\nexport default Type;\n","\n// _ESAbstract.Get\n// 7.3.1. Get ( O, P )\nfunction Get(O, P) { // eslint-disable-line no-unused-vars\n\t// 1. Assert: Type(O) is Object.\n\t// 2. Assert: IsPropertyKey(P) is true.\n\t// 3. Return ? O.[[Get]](P, O).\n\treturn O[P];\n}\nexport default Get;\n","\n// _ESAbstract.Call\n/* global IsCallable */\n// 7.3.12. Call ( F, V [ , argumentsList ] )\nfunction Call(F, V /* [, argumentsList] */) { // eslint-disable-line no-unused-vars\n\t// 1. If argumentsList is not present, set argumentsList to a new empty List.\n\tvar argumentsList = arguments.length > 2 ? arguments[2] : [];\n\t// 2. If IsCallable(F) is false, throw a TypeError exception.\n\tif (IsCallable(F) === false) {\n\t\tthrow new TypeError(Object.prototype.toString.call(F) + 'is not a function.');\n\t}\n\t// 3. Return ? F.[[Call]](V, argumentsList).\n\treturn F.apply(V, argumentsList);\n}\nexport default Call;\n","\n// _ESAbstract.IsCallable\n// 7.2.3. IsCallable ( argument )\nfunction IsCallable(argument) { // eslint-disable-line no-unused-vars\n\t// 1. If Type(argument) is not Object, return false.\n\t// 2. If argument has a [[Call]] internal method, return true.\n\t// 3. Return false.\n\n\t// Polyfill.io - Only function objects have a [[Call]] internal method. This means we can simplify this function to check that the argument has a type of function.\n\treturn typeof argument === 'function';\n}\nexport default IsCallable;\n","\n// _ESAbstract.ToObject\n// 7.1.13 ToObject ( argument )\n// The abstract operation ToObject converts argument to a value of type Object according to Table 12:\n// Table 12: ToObject Conversions\n/*\n|----------------------------------------------------------------------------------------------------------------------------------------------------|\n| Argument Type | Result |\n|----------------------------------------------------------------------------------------------------------------------------------------------------|\n| Undefined | Throw a TypeError exception. |\n| Null | Throw a TypeError exception. |\n| Boolean | Return a new Boolean object whose [[BooleanData]] internal slot is set to argument. See 19.3 for a description of Boolean objects. |\n| Number | Return a new Number object whose [[NumberData]] internal slot is set to argument. See 20.1 for a description of Number objects. |\n| String | Return a new String object whose [[StringData]] internal slot is set to argument. See 21.1 for a description of String objects. |\n| Symbol | Return a new Symbol object whose [[SymbolData]] internal slot is set to argument. See 19.4 for a description of Symbol objects. |\n| Object | Return argument. |\n|----------------------------------------------------------------------------------------------------------------------------------------------------|\n*/\nfunction ToObject(argument) { // eslint-disable-line no-unused-vars\n\tif (argument === null || argument === undefined) {\n\t\tthrow TypeError();\n\t}\n return Object(argument);\n}\nexport default ToObject;\n","import ToObject from \"../helpers/_ESAbstract.ToObject\";\n\n// _ESAbstract.GetV\n/* global ToObject */\n// 7.3.2 GetV (V, P)\nfunction GetV(v, p) { // eslint-disable-line no-unused-vars\n\t// 1. Assert: IsPropertyKey(P) is true.\n\t// 2. Let O be ? ToObject(V).\n\tvar o = ToObject(v);\n\t// 3. Return ? O.[[Get]](P, V).\n\treturn o[p];\n}\nexport default GetV;\n","import GetV from \"../helpers/_ESAbstract.GetV\";\nimport ToObject from \"../helpers/_ESAbstract.ToObject\";\nimport IsCallable from \"../helpers/_ESAbstract.IsCallable\";\n\n// _ESAbstract.GetMethod\n/* global GetV, IsCallable */\n// 7.3.9. GetMethod ( V, P )\nfunction GetMethod(V, P) { // eslint-disable-line no-unused-vars\n\t// 1. Assert: IsPropertyKey(P) is true.\n\t// 2. Let func be ? GetV(V, P).\n\tvar func = GetV(V, P);\n\t// 3. If func is either undefined or null, return undefined.\n\tif (func === null || func === undefined) {\n\t\treturn undefined;\n\t}\n\t// 4. If IsCallable(func) is false, throw a TypeError exception.\n\tif (IsCallable(func) === false) {\n\t\tthrow new TypeError('Method not callable: ' + P);\n\t}\n\t// 5. Return func.\n\treturn func;\n}\nexport default GetMethod;\n","var check = function (it) {\n return it && it.Math == Math && it;\n};\n\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nmodule.exports =\n // eslint-disable-next-line no-undef\n check(typeof globalThis == 'object' && globalThis) ||\n check(typeof window == 'object' && window) ||\n check(typeof self == 'object' && self) ||\n check(typeof global == 'object' && global) ||\n // eslint-disable-next-line no-new-func\n Function('return this')();\n","import Call from \"../helpers/_ESAbstract.Call\";\nimport Get from \"../helpers/_ESAbstract.Get\";\nimport IsCallable from \"../helpers/_ESAbstract.IsCallable\";\nimport Type from \"../helpers/_ESAbstract.Type\";\n\n// _ESAbstract.OrdinaryToPrimitive\n/* global Get, IsCallable, Call, Type */\n// 7.1.1.1. OrdinaryToPrimitive ( O, hint )\nfunction OrdinaryToPrimitive(O, hint) { // eslint-disable-line no-unused-vars\n\t// 1. Assert: Type(O) is Object.\n\t// 2. Assert: Type(hint) is String and its value is either \"string\" or \"number\".\n\t// 3. If hint is \"string\", then\n\tif (hint === 'string') {\n\t\t// a. Let methodNames be « \"toString\", \"valueOf\" ».\n\t\tvar methodNames = ['toString', 'valueOf'];\n\t\t// 4. Else,\n\t} else {\n\t\t// a. Let methodNames be « \"valueOf\", \"toString\" ».\n\t\tmethodNames = ['valueOf', 'toString'];\n\t}\n\t// 5. For each name in methodNames in List order, do\n\tfor (var i = 0; i < methodNames.length; ++i) {\n\t\tvar name = methodNames[i];\n\t\t// a. Let method be ? Get(O, name).\n\t\tvar method = Get(O, name);\n\t\t// b. If IsCallable(method) is true, then\n\t\tif (IsCallable(method)) {\n\t\t\t// i. Let result be ? Call(method, O).\n\t\t\tvar result = Call(method, O);\n\t\t\t// ii. If Type(result) is not Object, return result.\n\t\t\tif (Type(result) !== 'object') {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t}\n\t}\n\t// 6. Throw a TypeError exception.\n\tthrow new TypeError('Cannot convert to primitive.');\n}\nexport default OrdinaryToPrimitive;\n","import Call from \"../helpers/_ESAbstract.Call\";\nimport GetMethod from \"../helpers/_ESAbstract.GetMethod\";\nimport GetV from \"../helpers/_ESAbstract.GetV\";\nimport ToObject from \"../helpers/_ESAbstract.ToObject\";\nimport IsCallable from \"../helpers/_ESAbstract.IsCallable\";\nimport OrdinaryToPrimitive from \"../helpers/_ESAbstract.OrdinaryToPrimitive\";\nimport Get from \"../helpers/_ESAbstract.Get\";\nimport Type from \"../helpers/_ESAbstract.Type\";\n\n// _ESAbstract.ToPrimitive\n/* global Type, GetMethod, Call, OrdinaryToPrimitive */\n// 7.1.1. ToPrimitive ( input [ , PreferredType ] )\nfunction ToPrimitive(input /* [, PreferredType] */) { // eslint-disable-line no-unused-vars\n\tvar PreferredType = arguments.length > 1 ? arguments[1] : undefined;\n\t// 1. Assert: input is an ECMAScript language value.\n\t// 2. If Type(input) is Object, then\n\tif (Type(input) === 'object') {\n\t\t// a. If PreferredType is not present, let hint be \"default\".\n\t\tif (arguments.length < 2) {\n\t\t\tvar hint = 'default';\n\t\t\t// b. Else if PreferredType is hint String, let hint be \"string\".\n\t\t} else if (PreferredType === String) {\n\t\t\thint = 'string';\n\t\t\t// c. Else PreferredType is hint Number, let hint be \"number\".\n\t\t} else if (PreferredType === Number) {\n\t\t\thint = 'number';\n\t\t}\n\t\t// d. Let exoticToPrim be ? GetMethod(input, @@toPrimitive).\n\t\tvar exoticToPrim = typeof self.Symbol === 'function' && typeof self.Symbol.toPrimitive === 'symbol' ? GetMethod(input, self.Symbol.toPrimitive) : undefined;\n\t\t// e. If exoticToPrim is not undefined, then\n\t\tif (exoticToPrim !== undefined) {\n\t\t\t// i. Let result be ? Call(exoticToPrim, input, « hint »).\n\t\t\tvar result = Call(exoticToPrim, input, [hint]);\n\t\t\t// ii. If Type(result) is not Object, return result.\n\t\t\tif (Type(result) !== 'object') {\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\t// iii. Throw a TypeError exception.\n\t\t\tthrow new TypeError('Cannot convert exotic object to primitive.');\n\t\t}\n\t\t// f. If hint is \"default\", set hint to \"number\".\n\t\tif (hint === 'default') {\n\t\t\thint = 'number';\n\t\t}\n\t\t// g. Return ? OrdinaryToPrimitive(input, hint).\n\t\treturn OrdinaryToPrimitive(input, hint);\n\t}\n\t// 3. Return input\n\treturn input;\n}export default ToPrimitive;\n","module.exports = function (exec) {\n try {\n return !!exec();\n } catch (error) {\n return true;\n }\n};\n","import ToPrimitive from \"../helpers/_ESAbstract.ToPrimitive\";\nimport Call from \"../helpers/_ESAbstract.Call\";\nimport GetMethod from \"../helpers/_ESAbstract.GetMethod\";\nimport GetV from \"../helpers/_ESAbstract.GetV\";\nimport ToObject from \"../helpers/_ESAbstract.ToObject\";\nimport IsCallable from \"../helpers/_ESAbstract.IsCallable\";\nimport OrdinaryToPrimitive from \"../helpers/_ESAbstract.OrdinaryToPrimitive\";\nimport Get from \"../helpers/_ESAbstract.Get\";\nimport Type from \"../helpers/_ESAbstract.Type\";\n\n// _ESAbstract.ToString\n/* global Type, ToPrimitive */\n// 7.1.12. ToString ( argument )\n// The abstract operation ToString converts argument to a value of type String according to Table 11:\n// Table 11: ToString Conversions\n/*\n|---------------|--------------------------------------------------------|\n| Argument Type | Result |\n|---------------|--------------------------------------------------------|\n| Undefined | Return \"undefined\". |\n|---------------|--------------------------------------------------------|\n| Null\t | Return \"null\". |\n|---------------|--------------------------------------------------------|\n| Boolean | If argument is true, return \"true\". |\n| | If argument is false, return \"false\". |\n|---------------|--------------------------------------------------------|\n| Number | Return NumberToString(argument). |\n|---------------|--------------------------------------------------------|\n| String | Return argument. |\n|---------------|--------------------------------------------------------|\n| Symbol | Throw a TypeError exception. |\n|---------------|--------------------------------------------------------|\n| Object | Apply the following steps: |\n| | Let primValue be ? ToPrimitive(argument, hint String). |\n| | Return ? ToString(primValue). |\n|---------------|--------------------------------------------------------|\n*/\nfunction ToString(argument) { // eslint-disable-line no-unused-vars\n\tswitch(Type(argument)) {\n\t\tcase 'symbol':\n\t\t\tthrow new TypeError('Cannot convert a Symbol value to a string');\n\t\tcase 'object':\n\t\t\tvar primValue = ToPrimitive(argument, String);\n\t\t\treturn ToString(primValue);\n\t\tdefault:\n\t\t\treturn String(argument);\n\t}\n}\nexport default ToString;\n","\n// _ESAbstract.CreateDataProperty\n// 7.3.4. CreateDataProperty ( O, P, V )\n// NOTE\n// This abstract operation creates a property whose attributes are set to the same defaults used for properties created by the ECMAScript language assignment operator.\n// Normally, the property will not already exist. If it does exist and is not configurable or if O is not extensible, [[DefineOwnProperty]] will return false.\nfunction CreateDataProperty(O, P, V) { // eslint-disable-line no-unused-vars\n\t// 1. Assert: Type(O) is Object.\n\t// 2. Assert: IsPropertyKey(P) is true.\n\t// 3. Let newDesc be the PropertyDescriptor{ [[Value]]: V, [[Writable]]: true, [[Enumerable]]: true, [[Configurable]]: true }.\n\tvar newDesc = {\n\t\tvalue: V,\n\t\twritable: true,\n\t\tenumerable: true,\n\t\tconfigurable: true\n\t};\n\t// 4. Return ? O.[[DefineOwnProperty]](P, newDesc).\n\ttry {\n\t\tObject.defineProperty(O, P, newDesc);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n}\nexport default CreateDataProperty;\n","import GetMethod from \"../helpers/_ESAbstract.GetMethod\";\nimport GetV from \"../helpers/_ESAbstract.GetV\";\nimport ToObject from \"../helpers/_ESAbstract.ToObject\";\nimport IsCallable from \"../helpers/_ESAbstract.IsCallable\";\nimport Type from \"../helpers/_ESAbstract.Type\";\n\n// _ESAbstract.IsConstructor\n/* global Type */\n// 7.2.4. IsConstructor ( argument )\nfunction IsConstructor(argument) { // eslint-disable-line no-unused-vars\n\t// 1. If Type(argument) is not Object, return false.\n\tif (Type(argument) !== 'object') {\n\t\treturn false;\n\t}\n\t// 2. If argument has a [[Construct]] internal method, return true.\n\t// 3. Return false.\n\n\t// Polyfill.io - `new argument` is the only way to truly test if a function is a constructor.\n\t// We choose to not use`new argument` because the argument could have side effects when called.\n\t// Instead we check to see if the argument is a function and if it has a prototype.\n\t// Arrow functions do not have a [[Construct]] internal method, nor do they have a prototype.\n\treturn typeof argument === 'function' && !!argument.prototype;\n}\nexport default IsConstructor;\n","var hasOwnProperty = {}.hasOwnProperty;\n\nmodule.exports = function (it, key) {\n return hasOwnProperty.call(it, key);\n};\n","import Get from \"../helpers/_ESAbstract.Get\";\nimport Type from \"../helpers/_ESAbstract.Type\";\n\n// _ESAbstract.GetPrototypeFromConstructor\n/* global Get, Type */\n// 9.1.14. GetPrototypeFromConstructor ( constructor, intrinsicDefaultProto )\nfunction GetPrototypeFromConstructor(constructor, intrinsicDefaultProto) { // eslint-disable-line no-unused-vars\n\t// 1. Assert: intrinsicDefaultProto is a String value that is this specification's name of an intrinsic object. The corresponding object must be an intrinsic that is intended to be used as the [[Prototype]] value of an object.\n\t// 2. Assert: IsCallable(constructor) is true.\n\t// 3. Let proto be ? Get(constructor, \"prototype\").\n\tvar proto = Get(constructor, \"prototype\");\n\t// 4. If Type(proto) is not Object, then\n\tif (Type(proto) !== 'object') {\n\t\t// a. Let realm be ? GetFunctionRealm(constructor).\n\t\t// b. Set proto to realm's intrinsic object named intrinsicDefaultProto.\n\t\tproto = intrinsicDefaultProto;\n\t}\n\t// 5. Return proto.\n\treturn proto;\n}\nexport default GetPrototypeFromConstructor;\n","\n// _ESAbstract.SameValueNonNumber\n// 7.2.12. SameValueNonNumber ( x, y )\nfunction SameValueNonNumber(x, y) { // eslint-disable-line no-unused-vars\n\t// 1. Assert: Type(x) is not Number.\n\t// 2. Assert: Type(x) is the same as Type(y).\n\t// 3. If Type(x) is Undefined, return true.\n\t// 4. If Type(x) is Null, return true.\n\t// 5. If Type(x) is String, then\n\t\t// a. If x and y are exactly the same sequence of code units (same length and same code units at corresponding indices), return true; otherwise, return false.\n\t// 6. If Type(x) is Boolean, then\n\t\t// a. If x and y are both true or both false, return true; otherwise, return false.\n\t// 7. If Type(x) is Symbol, then\n\t\t// a. If x and y are both the same Symbol value, return true; otherwise, return false.\n\t// 8. If x and y are the same Object value, return true. Otherwise, return false.\n\n\t// Polyfill.io - We can skip all above steps because the === operator does it all for us.\n\treturn x === y;\n}\nexport default SameValueNonNumber;\n","import ToPrimitive from \"../helpers/_ESAbstract.ToPrimitive\";\nimport Call from \"../helpers/_ESAbstract.Call\";\nimport GetMethod from \"../helpers/_ESAbstract.GetMethod\";\nimport GetV from \"../helpers/_ESAbstract.GetV\";\nimport ToObject from \"../helpers/_ESAbstract.ToObject\";\nimport IsCallable from \"../helpers/_ESAbstract.IsCallable\";\nimport OrdinaryToPrimitive from \"../helpers/_ESAbstract.OrdinaryToPrimitive\";\nimport Get from \"../helpers/_ESAbstract.Get\";\nimport Type from \"../helpers/_ESAbstract.Type\";\nimport ToString from \"../helpers/_ESAbstract.ToString\";\n\n// _ESAbstract.ToPropertyKey\n/* globals ToPrimitive, Type, ToString */\n// 7.1.14. ToPropertyKey ( argument )\nfunction ToPropertyKey(argument) { // eslint-disable-line no-unused-vars\n\t// 1. Let key be ? ToPrimitive(argument, hint String).\n\tvar key = ToPrimitive(argument, String);\n\t// 2. If Type(key) is Symbol, then\n\tif (Type(key) === 'symbol') {\n\t\t// a. Return key.\n\t\treturn key;\n\t}\n\t// 3. Return ! ToString(key).\n\treturn ToString(key);\n}\nexport default ToPropertyKey;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar definePropertyModule = require('../internals/object-define-property');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\n\nmodule.exports = DESCRIPTORS ? function (object, key, value) {\n return definePropertyModule.f(object, key, createPropertyDescriptor(1, value));\n} : function (object, key, value) {\n object[key] = value;\n return object;\n};\n","import GetPrototypeFromConstructor from \"../helpers/_ESAbstract.GetPrototypeFromConstructor\";\nimport Get from \"../helpers/_ESAbstract.Get\";\nimport Type from \"../helpers/_ESAbstract.Type\";\nimport CreateMethodProperty from \"../helpers/_ESAbstract.CreateMethodProperty\";\nimport ToObject from \"../helpers/_ESAbstract.ToObject\";\nimport HasOwnProperty from \"../helpers/_ESAbstract.HasOwnProperty\";\nimport ToPropertyKey from \"../helpers/_ESAbstract.ToPropertyKey\";\nimport ToPrimitive from \"../helpers/_ESAbstract.ToPrimitive\";\nimport Call from \"../helpers/_ESAbstract.Call\";\nimport GetMethod from \"../helpers/_ESAbstract.GetMethod\";\nimport GetV from \"../helpers/_ESAbstract.GetV\";\nimport IsCallable from \"../helpers/_ESAbstract.IsCallable\";\nimport OrdinaryToPrimitive from \"../helpers/_ESAbstract.OrdinaryToPrimitive\";\nimport ToString from \"../helpers/_ESAbstract.ToString\";\n\n// _ESAbstract.OrdinaryCreateFromConstructor\n/* global GetPrototypeFromConstructor */\n// 9.1.13. OrdinaryCreateFromConstructor ( constructor, intrinsicDefaultProto [ , internalSlotsList ] )\nfunction OrdinaryCreateFromConstructor(constructor, intrinsicDefaultProto) { // eslint-disable-line no-unused-vars\n\tvar internalSlotsList = arguments[2] || {};\n\t// 1. Assert: intrinsicDefaultProto is a String value that is this specification's name of an intrinsic object.\n\t// The corresponding object must be an intrinsic that is intended to be used as the[[Prototype]] value of an object.\n\n\t// 2. Let proto be ? GetPrototypeFromConstructor(constructor, intrinsicDefaultProto).\n\tvar proto = GetPrototypeFromConstructor(constructor, intrinsicDefaultProto);\n\n\t// 3. Return ObjectCreate(proto, internalSlotsList).\n\t// Polyfill.io - We do not pass internalSlotsList to Object.create because Object.create does not use the default ordinary object definitions specified in 9.1.\n\tvar obj = Object.create(proto);\n\tfor (var name in internalSlotsList) {\n\t\tif (Object.prototype.hasOwnProperty.call(internalSlotsList, name)) {\n\t\t\tObject.defineProperty(obj, name, {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable: false,\n\t\t\t\twritable: true,\n\t\t\t\tvalue: internalSlotsList[name]\n\t\t\t});\n\t\t}\n\t}\n\treturn obj;\n}\nexport default OrdinaryCreateFromConstructor;\n","\n// _ESAbstract.ToBoolean\n// 7.1.2. ToBoolean ( argument )\n// The abstract operation ToBoolean converts argument to a value of type Boolean according to Table 9:\n/*\n--------------------------------------------------------------------------------------------------------------\n| Argument Type | Result |\n--------------------------------------------------------------------------------------------------------------\n| Undefined | Return false. |\n| Null | Return false. |\n| Boolean | Return argument. |\n| Number | If argument is +0, -0, or NaN, return false; otherwise return true. |\n| String | If argument is the empty String (its length is zero), return false; otherwise return true. |\n| Symbol | Return true. |\n| Object | Return true. |\n--------------------------------------------------------------------------------------------------------------\n*/\nfunction ToBoolean(argument) { // eslint-disable-line no-unused-vars\n\treturn Boolean(argument);\n}\nexport default ToBoolean;\n","\n// _ESAbstract.ArrayCreate\n// 9.4.2.2. ArrayCreate ( length [ , proto ] )\nfunction ArrayCreate(length /* [, proto] */) { // eslint-disable-line no-unused-vars\n\t// 1. Assert: length is an integer Number ≥ 0.\n\t// 2. If length is -0, set length to +0.\n\tif (1 / length === -Infinity) {\n\t\tlength = 0;\n\t}\n\t// 3. If length>2^32-1, throw a RangeError exception.\n\tif (length > (Math.pow(2, 32) - 1)) {\n\t\tthrow new RangeError('Invalid array length');\n\t}\n\t// 4. If proto is not present, set proto to the intrinsic object %ArrayPrototype%.\n\t// 5. Let A be a newly created Array exotic object.\n\tvar A = [];\n\t// 6. Set A's essential internal methods except for [[DefineOwnProperty]] to the default ordinary object definitions specified in 9.1.\n\t// 7. Set A.[[DefineOwnProperty]] as specified in 9.4.2.1.\n\t// 8. Set A.[[Prototype]] to proto.\n\t// 9. Set A.[[Extensible]] to true.\n\t// 10. Perform ! OrdinaryDefineOwnProperty(A, \"length\", PropertyDescriptor{[[Value]]: length, [[Writable]]: true, [[Enumerable]]: false, [[Configurable]]: false}).\n\tA.length = length;\n\t// 11. Return A.\n\treturn A;\n}\nexport default ArrayCreate;\n","var fails = require('../internals/fails');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !fails(function () {\n return Object.defineProperty({}, 1, { get: function () { return 7; } })[1] != 7;\n});\n","// `RequireObjectCoercible` abstract operation\n// https://tc39.github.io/ecma262/#sec-requireobjectcoercible\nmodule.exports = function (it) {\n if (it == undefined) throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n","module.exports = function (it) {\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n","var isObject = require('../internals/is-object');\n\nmodule.exports = function (it) {\n if (!isObject(it)) {\n throw TypeError(String(it) + ' is not an object');\n } return it;\n};\n","var ceil = Math.ceil;\nvar floor = Math.floor;\n\n// `ToInteger` abstract operation\n// https://tc39.github.io/ecma262/#sec-tointeger\nmodule.exports = function (argument) {\n return isNaN(argument = +argument) ? 0 : (argument > 0 ? floor : ceil)(argument);\n};\n","\n// _ESAbstract.ToInteger\n// 7.1.4. ToInteger ( argument )\nfunction ToInteger(argument) { // eslint-disable-line no-unused-vars\n\t// 1. Let number be ? ToNumber(argument).\n\tvar number = Number(argument);\n\t// 2. If number is NaN, return +0.\n\tif (isNaN(number)) {\n\t\treturn 0;\n\t}\n\t// 3. If number is +0, -0, +∞, or -∞, return number.\n\tif (1/number === Infinity || 1/number === -Infinity || number === Infinity || number === -Infinity) {\n\t\treturn number;\n\t}\n\t// 4. Return the number value that is the same sign as number and whose magnitude is floor(abs(number)).\n\treturn ((number < 0) ? -1 : 1) * Math.floor(Math.abs(number));\n}\nexport default ToInteger;\n","\n// _ESAbstract.IsArray\n// 7.2.2. IsArray ( argument )\nfunction IsArray(argument) { // eslint-disable-line no-unused-vars\n\t// 1. If Type(argument) is not Object, return false.\n\t// 2. If argument is an Array exotic object, return true.\n\t// 3. If argument is a Proxy exotic object, then\n\t\t// a. If argument.[[ProxyHandler]] is null, throw a TypeError exception.\n\t\t// b. Let target be argument.[[ProxyTarget]].\n\t\t// c. Return ? IsArray(target).\n\t// 4. Return false.\n\n\t// Polyfill.io - We can skip all the above steps and check the string returned from Object.prototype.toString().\n\treturn Object.prototype.toString.call(argument) === '[object Array]';\n}\nexport default IsArray;\n","import IsConstructor from \"../helpers/_ESAbstract.IsConstructor\";\nimport GetMethod from \"../helpers/_ESAbstract.GetMethod\";\nimport GetV from \"../helpers/_ESAbstract.GetV\";\nimport ToObject from \"../helpers/_ESAbstract.ToObject\";\nimport IsCallable from \"../helpers/_ESAbstract.IsCallable\";\nimport Type from \"../helpers/_ESAbstract.Type\";\nimport OrdinaryCreateFromConstructor from \"../helpers/_ESAbstract.OrdinaryCreateFromConstructor\";\nimport GetPrototypeFromConstructor from \"../helpers/_ESAbstract.GetPrototypeFromConstructor\";\nimport Get from \"../helpers/_ESAbstract.Get\";\nimport CreateMethodProperty from \"../helpers/_ESAbstract.CreateMethodProperty\";\nimport HasOwnProperty from \"../helpers/_ESAbstract.HasOwnProperty\";\nimport ToPropertyKey from \"../helpers/_ESAbstract.ToPropertyKey\";\nimport ToPrimitive from \"../helpers/_ESAbstract.ToPrimitive\";\nimport Call from \"../helpers/_ESAbstract.Call\";\nimport OrdinaryToPrimitive from \"../helpers/_ESAbstract.OrdinaryToPrimitive\";\nimport ToString from \"../helpers/_ESAbstract.ToString\";\n\n// _ESAbstract.Construct\n/* global IsConstructor, OrdinaryCreateFromConstructor, Call */\n// 7.3.13. Construct ( F [ , argumentsList [ , newTarget ]] )\nfunction Construct(F /* [ , argumentsList [ , newTarget ]] */) { // eslint-disable-line no-unused-vars\n\t// 1. If newTarget is not present, set newTarget to F.\n\tvar newTarget = arguments.length > 2 ? arguments[2] : F;\n\n\t// 2. If argumentsList is not present, set argumentsList to a new empty List.\n\tvar argumentsList = arguments.length > 1 ? arguments[1] : [];\n\n\t// 3. Assert: IsConstructor(F) is true.\n\tif (!IsConstructor(F)) {\n\t\tthrow new TypeError('F must be a constructor.');\n\t}\n\n\t// 4. Assert: IsConstructor(newTarget) is true.\n\tif (!IsConstructor(newTarget)) {\n\t\tthrow new TypeError('newTarget must be a constructor.');\n\t}\n\n\t// 5. Return ? F.[[Construct]](argumentsList, newTarget).\n\t// Polyfill.io - If newTarget is the same as F, it is equivalent to new F(...argumentsList).\n\tif (newTarget === F) {\n\t\treturn new (Function.prototype.bind.apply(F, [null].concat(argumentsList)))();\n\t} else {\n\t\t// Polyfill.io - This is mimicking section 9.2.2 step 5.a.\n\t\tvar obj = OrdinaryCreateFromConstructor(newTarget, Object.prototype);\n\t\treturn Call(F, obj, argumentsList);\n\t}\n}\nexport default Construct;\n","// toObject with fallback for non-array-like ES3 strings\nvar IndexedObject = require('../internals/indexed-object');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\nmodule.exports = function (it) {\n return IndexedObject(requireObjectCoercible(it));\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nmodule.exports = function (key, value) {\n try {\n createNonEnumerableProperty(global, key, value);\n } catch (error) {\n global[key] = value;\n } return value;\n};\n","'use strict';\nvar regexpFlags = require('./regexp-flags');\nvar stickyHelpers = require('./regexp-sticky-helpers');\n\nvar nativeExec = RegExp.prototype.exec;\n// This always refers to the native implementation, because the\n// String#replace polyfill uses ./fix-regexp-well-known-symbol-logic.js,\n// which loads this file before patching the method.\nvar nativeReplace = String.prototype.replace;\n\nvar patchedExec = nativeExec;\n\nvar UPDATES_LAST_INDEX_WRONG = (function () {\n var re1 = /a/;\n var re2 = /b*/g;\n nativeExec.call(re1, 'a');\n nativeExec.call(re2, 'a');\n return re1.lastIndex !== 0 || re2.lastIndex !== 0;\n})();\n\nvar UNSUPPORTED_Y = stickyHelpers.UNSUPPORTED_Y || stickyHelpers.BROKEN_CARET;\n\n// nonparticipating capturing group, copied from es5-shim's String#split patch.\nvar NPCG_INCLUDED = /()??/.exec('')[1] !== undefined;\n\nvar PATCH = UPDATES_LAST_INDEX_WRONG || NPCG_INCLUDED || UNSUPPORTED_Y;\n\nif (PATCH) {\n patchedExec = function exec(str) {\n var re = this;\n var lastIndex, reCopy, match, i;\n var sticky = UNSUPPORTED_Y && re.sticky;\n var flags = regexpFlags.call(re);\n var source = re.source;\n var charsAdded = 0;\n var strCopy = str;\n\n if (sticky) {\n flags = flags.replace('y', '');\n if (flags.indexOf('g') === -1) {\n flags += 'g';\n }\n\n strCopy = String(str).slice(re.lastIndex);\n // Support anchored sticky behavior.\n if (re.lastIndex > 0 && (!re.multiline || re.multiline && str[re.lastIndex - 1] !== '\\n')) {\n source = '(?: ' + source + ')';\n strCopy = ' ' + strCopy;\n charsAdded++;\n }\n // ^(? + rx + ) is needed, in combination with some str slicing, to\n // simulate the 'y' flag.\n reCopy = new RegExp('^(?:' + source + ')', flags);\n }\n\n if (NPCG_INCLUDED) {\n reCopy = new RegExp('^' + source + '$(?!\\\\s)', flags);\n }\n if (UPDATES_LAST_INDEX_WRONG) lastIndex = re.lastIndex;\n\n match = nativeExec.call(sticky ? reCopy : re, strCopy);\n\n if (sticky) {\n if (match) {\n match.input = match.input.slice(charsAdded);\n match[0] = match[0].slice(charsAdded);\n match.index = re.lastIndex;\n re.lastIndex += match[0].length;\n } else re.lastIndex = 0;\n } else if (UPDATES_LAST_INDEX_WRONG && match) {\n re.lastIndex = re.global ? match.index + match[0].length : lastIndex;\n }\n if (NPCG_INCLUDED && match && match.length > 1) {\n // Fix browsers whose `exec` methods don't consistently return `undefined`\n // for NPCG, like IE8. NOTE: This doesn' work for /(.?)?/\n nativeReplace.call(match[0], reCopy, function () {\n for (i = 1; i < arguments.length - 2; i++) {\n if (arguments[i] === undefined) match[i] = undefined;\n }\n });\n }\n\n return match;\n };\n}\n\nmodule.exports = patchedExec;\n","import Type from \"../helpers/_ESAbstract.Type\";\nimport ToBoolean from \"../helpers/_ESAbstract.ToBoolean\";\nimport Get from \"../helpers/_ESAbstract.Get\";\n\n// _ESAbstract.IteratorComplete\n/* global Type, ToBoolean, Get */\n// 7.4.3 IteratorComplete ( iterResult )\nfunction IteratorComplete(iterResult) { // eslint-disable-line no-unused-vars\n\t// 1. Assert: Type(iterResult) is Object.\n\tif (Type(iterResult) !== 'object') {\n\t\tthrow new Error(Object.prototype.toString.call(iterResult) + 'is not an Object.');\n\t}\n\t// 2. Return ToBoolean(? Get(iterResult, \"done\")).\n\treturn ToBoolean(Get(iterResult, \"done\"));\n}\nexport default IteratorComplete;\n","import Type from \"../helpers/_ESAbstract.Type\";\nimport Call from \"../helpers/_ESAbstract.Call\";\n\n// _ESAbstract.IteratorNext\n/* global Call, Type */\n// 7.4.2. IteratorNext ( iteratorRecord [ , value ] )\nfunction IteratorNext(iteratorRecord /* [, value] */) { // eslint-disable-line no-unused-vars\n\t// 1. If value is not present, then\n\tif (arguments.length < 2) {\n\t\t// a. Let result be ? Call(iteratorRecord.[[NextMethod]], iteratorRecord.[[Iterator]], « »).\n\t\tvar result = Call(iteratorRecord['[[NextMethod]]'], iteratorRecord['[[Iterator]]']);\n\t// 2. Else,\n\t} else {\n\t\t// a. Let result be ? Call(iteratorRecord.[[NextMethod]], iteratorRecord.[[Iterator]], « value »).\n\t\tresult = Call(iteratorRecord['[[NextMethod]]'], iteratorRecord['[[Iterator]]'], [arguments[1]]);\n\t}\n\t// 3. If Type(result) is not Object, throw a TypeError exception.\n\tif (Type(result) !== 'object') {\n\t\tthrow new TypeError('bad iterator');\n\t}\n\t// 4. Return result.\n\treturn result;\n}\nexport default IteratorNext;\n","import CreateMethodProperty from \"../helpers/_ESAbstract.CreateMethodProperty\";\nimport ToObject from \"../helpers/_ESAbstract.ToObject\";\nimport ToLength from \"../helpers/_ESAbstract.ToLength\";\nimport ToInteger from \"../helpers/_ESAbstract.ToInteger\";\nimport Get from \"../helpers/_ESAbstract.Get\";\nimport IsCallable from \"../helpers/_ESAbstract.IsCallable\";\nimport HasProperty from \"../helpers/_ESAbstract.HasProperty\";\nimport Call from \"../helpers/_ESAbstract.Call\";\nimport ToString from \"../helpers/_ESAbstract.ToString\";\nimport ToPrimitive from \"../helpers/_ESAbstract.ToPrimitive\";\nimport GetMethod from \"../helpers/_ESAbstract.GetMethod\";\nimport GetV from \"../helpers/_ESAbstract.GetV\";\nimport OrdinaryToPrimitive from \"../helpers/_ESAbstract.OrdinaryToPrimitive\";\nimport Type from \"../helpers/_ESAbstract.Type\";\nimport CreateIterResultObject from \"../helpers/_ESAbstract.CreateIterResultObject\";\nimport CreateDataProperty from \"../helpers/_ESAbstract.CreateDataProperty\";\nimport GetIterator from \"../helpers/_ESAbstract.GetIterator\";\nimport HasOwnProperty from \"../helpers/_ESAbstract.HasOwnProperty\";\nimport ToPropertyKey from \"../helpers/_ESAbstract.ToPropertyKey\";\nimport ArraySpeciesCreate from \"../helpers/_ESAbstract.ArraySpeciesCreate\";\nimport IsArray from \"../helpers/_ESAbstract.IsArray\";\nimport ArrayCreate from \"../helpers/_ESAbstract.ArrayCreate\";\nimport IsConstructor from \"../helpers/_ESAbstract.IsConstructor\";\nimport Construct from \"../helpers/_ESAbstract.Construct\";\nimport OrdinaryCreateFromConstructor from \"../helpers/_ESAbstract.OrdinaryCreateFromConstructor\";\nimport GetPrototypeFromConstructor from \"../helpers/_ESAbstract.GetPrototypeFromConstructor\";\nimport ToBoolean from \"../helpers/_ESAbstract.ToBoolean\";\nimport CreateDataPropertyOrThrow from \"../helpers/_ESAbstract.CreateDataPropertyOrThrow\";\nimport SameValueZero from \"../helpers/_ESAbstract.SameValueZero\";\nimport SameValueNonNumber from \"../helpers/_ESAbstract.SameValueNonNumber\";\nimport IteratorClose from \"../helpers/_ESAbstract.IteratorClose\";\nimport IteratorComplete from \"../helpers/_ESAbstract.IteratorComplete\";\nimport IteratorNext from \"../helpers/_ESAbstract.IteratorNext\";\nimport IteratorStep from \"../helpers/_ESAbstract.IteratorStep\";\nimport IteratorValue from \"../helpers/_ESAbstract.IteratorValue\";\nimport SameValue from \"../helpers/_ESAbstract.SameValue\";\n(function(undefined) {\nif (!(\"Element\"in self&&\"inert\"in Element.prototype\n)) {\n// Element.prototype.inert\n/* global Set, Map */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? factory() :\n // eslint-disable-next-line no-undef\n typeof define === 'function' && define.amd ? define('inert', factory) :\n (factory());\n}(this, (function () { 'use strict';\n\n var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();\n\n function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\n /**\n * This work is licensed under the W3C Software and Document License\n * (http://www.w3.org/Consortium/Legal/2015/copyright-software-and-document).\n */\n\n // Convenience function for converting NodeLists.\n /** @type {typeof Array.prototype.slice} */\n var slice = Array.prototype.slice;\n\n /**\n * IE has a non-standard name for \"matches\".\n * @type {typeof Element.prototype.matches}\n */\n var matches = Element.prototype.matches || Element.prototype.msMatchesSelector;\n\n /** @type {string} */\n var _focusableElementsString = ['a[href]', 'area[href]', 'input:not([disabled])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', 'details', 'summary', 'iframe', 'object', 'embed', '[contenteditable]'].join(',');\n\n /**\n * `InertRoot` manages a single inert subtree, i.e. a DOM subtree whose root element has an `inert`\n * attribute.\n *\n * Its main functions are:\n *\n * - to create and maintain a set of managed `InertNode`s, including when mutations occur in the\n * subtree. The `makeSubtreeUnfocusable()` method handles collecting `InertNode`s via registering\n * each focusable node in the subtree with the singleton `InertManager` which manages all known\n * focusable nodes within inert subtrees. `InertManager` ensures that a single `InertNode`\n * instance exists for each focusable node which has at least one inert root as an ancestor.\n *\n * - to notify all managed `InertNode`s when this subtree stops being inert (i.e. when the `inert`\n * attribute is removed from the root node). This is handled in the destructor, which calls the\n * `deregister` method on `InertManager` for each managed inert node.\n */\n\n var InertRoot = function () {\n /**\n * @param {!Element} rootElement The Element at the root of the inert subtree.\n * @param {!InertManager} inertManager The global singleton InertManager object.\n */\n function InertRoot(rootElement, inertManager) {\n _classCallCheck(this, InertRoot);\n\n /** @type {!InertManager} */\n this._inertManager = inertManager;\n\n /** @type {!Element} */\n this._rootElement = rootElement;\n\n /**\n * @type {!Set}\n * All managed focusable nodes in this InertRoot's subtree.\n */\n this._managedNodes = new Set();\n\n // Make the subtree hidden from assistive technology\n if (this._rootElement.hasAttribute('aria-hidden')) {\n /** @type {?string} */\n this._savedAriaHidden = this._rootElement.getAttribute('aria-hidden');\n } else {\n this._savedAriaHidden = null;\n }\n this._rootElement.setAttribute('aria-hidden', 'true');\n\n // Make all focusable elements in the subtree unfocusable and add them to _managedNodes\n this._makeSubtreeUnfocusable(this._rootElement);\n\n // Watch for:\n // - any additions in the subtree: make them unfocusable too\n // - any removals from the subtree: remove them from this inert root's managed nodes\n // - attribute changes: if `tabindex` is added, or removed from an intrinsically focusable\n // element, make that node a managed node.\n this._observer = new MutationObserver(this._onMutation.bind(this));\n this._observer.observe(this._rootElement, { attributes: true, childList: true, subtree: true });\n }\n\n /**\n * Call this whenever this object is about to become obsolete. This unwinds all of the state\n * stored in this object and updates the state of all of the managed nodes.\n */\n\n\n _createClass(InertRoot, [{\n key: 'destructor',\n value: function destructor() {\n this._observer.disconnect();\n\n if (this._rootElement) {\n if (this._savedAriaHidden !== null) {\n this._rootElement.setAttribute('aria-hidden', this._savedAriaHidden);\n } else {\n this._rootElement.removeAttribute('aria-hidden');\n }\n }\n\n this._managedNodes.forEach(function (inertNode) {\n this._unmanageNode(inertNode.node);\n }, this);\n\n // Note we cast the nulls to the ANY type here because:\n // 1) We want the class properties to be declared as non-null, or else we\n // need even more casts throughout this code. All bets are off if an\n // instance has been destroyed and a method is called.\n // 2) We don't want to cast \"this\", because we want type-aware optimizations\n // to know which properties we're setting.\n this._observer = /** @type {?} */null;\n this._rootElement = /** @type {?} */null;\n this._managedNodes = /** @type {?} */null;\n this._inertManager = /** @type {?} */null;\n }\n\n /**\n * @return {!Set} A copy of this InertRoot's managed nodes set.\n */\n\n }, {\n key: '_makeSubtreeUnfocusable',\n\n\n /**\n * @param {!Node} startNode\n */\n value: function _makeSubtreeUnfocusable(startNode) {\n var _this2 = this;\n\n composedTreeWalk(startNode, function (node) {\n return _this2._visitNode(node);\n });\n\n var activeElement = document.activeElement;\n\n if (!document.body.contains(startNode)) {\n // startNode may be in shadow DOM, so find its nearest shadowRoot to get the activeElement.\n var node = startNode;\n /** @type {!ShadowRoot|undefined} */\n var root = undefined;\n while (node) {\n if (node.nodeType === Node.DOCUMENT_FRAGMENT_NODE) {\n root = /** @type {!ShadowRoot} */node;\n break;\n }\n node = node.parentNode;\n }\n if (root) {\n activeElement = root.activeElement;\n }\n }\n if (startNode.contains(activeElement)) {\n activeElement.blur();\n // In IE11, if an element is already focused, and then set to tabindex=-1\n // calling blur() will not actually move the focus.\n // To work around this we call focus() on the body instead.\n if (activeElement === document.activeElement) {\n document.body.focus();\n }\n }\n }\n\n /**\n * @param {!Node} node\n */\n\n }, {\n key: '_visitNode',\n value: function _visitNode(node) {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return;\n }\n var element = /** @type {!Element} */node;\n\n // If a descendant inert root becomes un-inert, its descendants will still be inert because of\n // this inert root, so all of its managed nodes need to be adopted by this InertRoot.\n if (element !== this._rootElement && element.hasAttribute('inert')) {\n this._adoptInertRoot(element);\n }\n\n if (matches.call(element, _focusableElementsString) || element.hasAttribute('tabindex')) {\n this._manageNode(element);\n }\n }\n\n /**\n * Register the given node with this InertRoot and with InertManager.\n * @param {!Node} node\n */\n\n }, {\n key: '_manageNode',\n value: function _manageNode(node) {\n var inertNode = this._inertManager.register(node, this);\n this._managedNodes.add(inertNode);\n }\n\n /**\n * Unregister the given node with this InertRoot and with InertManager.\n * @param {!Node} node\n */\n\n }, {\n key: '_unmanageNode',\n value: function _unmanageNode(node) {\n var inertNode = this._inertManager.deregister(node, this);\n if (inertNode) {\n this._managedNodes['delete'](inertNode);\n }\n }\n\n /**\n * Unregister the entire subtree starting at `startNode`.\n * @param {!Node} startNode\n */\n\n }, {\n key: '_unmanageSubtree',\n value: function _unmanageSubtree(startNode) {\n var _this3 = this;\n\n composedTreeWalk(startNode, function (node) {\n return _this3._unmanageNode(node);\n });\n }\n\n /**\n * If a descendant node is found with an `inert` attribute, adopt its managed nodes.\n * @param {!Element} node\n */\n\n }, {\n key: '_adoptInertRoot',\n value: function _adoptInertRoot(node) {\n var inertSubroot = this._inertManager.getInertRoot(node);\n\n // During initialisation this inert root may not have been registered yet,\n // so register it now if need be.\n if (!inertSubroot) {\n this._inertManager.setInert(node, true);\n inertSubroot = this._inertManager.getInertRoot(node);\n }\n\n inertSubroot.managedNodes.forEach(function (savedInertNode) {\n this._manageNode(savedInertNode.node);\n }, this);\n }\n\n /**\n * Callback used when mutation observer detects subtree additions, removals, or attribute changes.\n * @param {!Array} records\n * @param {!MutationObserver} self\n */\n\n }, {\n key: '_onMutation',\n value: function _onMutation(records, _self) {\n records.forEach(function (record) {\n var target = /** @type {!Element} */record.target;\n if (record.type === 'childList') {\n // Manage added nodes\n slice.call(record.addedNodes).forEach(function (node) {\n this._makeSubtreeUnfocusable(node);\n }, this);\n\n // Un-manage removed nodes\n slice.call(record.removedNodes).forEach(function (node) {\n this._unmanageSubtree(node);\n }, this);\n } else if (record.type === 'attributes') {\n if (record.attributeName === 'tabindex') {\n // Re-initialise inert node if tabindex changes\n this._manageNode(target);\n } else if (target !== this._rootElement && record.attributeName === 'inert' && target.hasAttribute('inert')) {\n // If a new inert root is added, adopt its managed nodes and make sure it knows about the\n // already managed nodes from this inert subroot.\n this._adoptInertRoot(target);\n var inertSubroot = this._inertManager.getInertRoot(target);\n this._managedNodes.forEach(function (managedNode) {\n if (target.contains(managedNode.node)) {\n inertSubroot._manageNode(managedNode.node);\n }\n });\n }\n }\n }, this);\n }\n }, {\n key: 'managedNodes',\n get: function get() {\n return new Set(this._managedNodes);\n }\n\n /** @return {boolean} */\n\n }, {\n key: 'hasSavedAriaHidden',\n get: function get() {\n return this._savedAriaHidden !== null;\n }\n\n /** @param {?string} ariaHidden */\n\n }, {\n key: 'savedAriaHidden',\n set: function set(ariaHidden) {\n this._savedAriaHidden = ariaHidden;\n }\n\n /** @return {?string} */\n ,\n get: function get() {\n return this._savedAriaHidden;\n }\n }]);\n\n return InertRoot;\n }();\n\n /**\n * `InertNode` initialises and manages a single inert node.\n * A node is inert if it is a descendant of one or more inert root elements.\n *\n * On construction, `InertNode` saves the existing `tabindex` value for the node, if any, and\n * either removes the `tabindex` attribute or sets it to `-1`, depending on whether the element\n * is intrinsically focusable or not.\n *\n * `InertNode` maintains a set of `InertRoot`s which are descendants of this `InertNode`. When an\n * `InertRoot` is destroyed, and calls `InertManager.deregister()`, the `InertManager` notifies the\n * `InertNode` via `removeInertRoot()`, which in turn destroys the `InertNode` if no `InertRoot`s\n * remain in the set. On destruction, `InertNode` reinstates the stored `tabindex` if one exists,\n * or removes the `tabindex` attribute if the element is intrinsically focusable.\n */\n\n\n var InertNode = function () {\n /**\n * @param {!Node} node A focusable element to be made inert.\n * @param {!InertRoot} inertRoot The inert root element associated with this inert node.\n */\n function InertNode(node, inertRoot) {\n _classCallCheck(this, InertNode);\n\n /** @type {!Node} */\n this._node = node;\n\n /** @type {boolean} */\n this._overrodeFocusMethod = false;\n\n /**\n * @type {!Set} The set of descendant inert roots.\n * If and only if this set becomes empty, this node is no longer inert.\n */\n this._inertRoots = new Set([inertRoot]);\n\n /** @type {?number} */\n this._savedTabIndex = null;\n\n /** @type {boolean} */\n this._destroyed = false;\n\n // Save any prior tabindex info and make this node untabbable\n this.ensureUntabbable();\n }\n\n /**\n * Call this whenever this object is about to become obsolete.\n * This makes the managed node focusable again and deletes all of the previously stored state.\n */\n\n\n _createClass(InertNode, [{\n key: 'destructor',\n value: function destructor() {\n this._throwIfDestroyed();\n\n if (this._node && this._node.nodeType === Node.ELEMENT_NODE) {\n var element = /** @type {!Element} */this._node;\n if (this._savedTabIndex !== null) {\n element.setAttribute('tabindex', this._savedTabIndex);\n } else {\n element.removeAttribute('tabindex');\n }\n\n // Use `delete` to restore native focus method.\n if (this._overrodeFocusMethod) {\n delete element.focus;\n }\n }\n\n // See note in InertRoot.destructor for why we cast these nulls to ANY.\n this._node = /** @type {?} */null;\n this._inertRoots = /** @type {?} */null;\n this._destroyed = true;\n }\n\n /**\n * @type {boolean} Whether this object is obsolete because the managed node is no longer inert.\n * If the object has been destroyed, any attempt to access it will cause an exception.\n */\n\n }, {\n key: '_throwIfDestroyed',\n\n\n /**\n * Throw if user tries to access destroyed InertNode.\n */\n value: function _throwIfDestroyed() {\n if (this.destroyed) {\n throw new Error('Trying to access destroyed InertNode');\n }\n }\n\n /** @return {boolean} */\n\n }, {\n key: 'ensureUntabbable',\n\n\n /** Save the existing tabindex value and make the node untabbable and unfocusable */\n value: function ensureUntabbable() {\n if (this.node.nodeType !== Node.ELEMENT_NODE) {\n return;\n }\n var element = /** @type {!Element} */this.node;\n if (matches.call(element, _focusableElementsString)) {\n if ( /** @type {!HTMLElement} */element.tabIndex === -1 && this.hasSavedTabIndex) {\n return;\n }\n\n if (element.hasAttribute('tabindex')) {\n this._savedTabIndex = /** @type {!HTMLElement} */element.tabIndex;\n }\n element.setAttribute('tabindex', '-1');\n if (element.nodeType === Node.ELEMENT_NODE) {\n element.focus = function () {};\n this._overrodeFocusMethod = true;\n }\n } else if (element.hasAttribute('tabindex')) {\n this._savedTabIndex = /** @type {!HTMLElement} */element.tabIndex;\n element.removeAttribute('tabindex');\n }\n }\n\n /**\n * Add another inert root to this inert node's set of managing inert roots.\n * @param {!InertRoot} inertRoot\n */\n\n }, {\n key: 'addInertRoot',\n value: function addInertRoot(inertRoot) {\n this._throwIfDestroyed();\n this._inertRoots.add(inertRoot);\n }\n\n /**\n * Remove the given inert root from this inert node's set of managing inert roots.\n * If the set of managing inert roots becomes empty, this node is no longer inert,\n * so the object should be destroyed.\n * @param {!InertRoot} inertRoot\n */\n\n }, {\n key: 'removeInertRoot',\n value: function removeInertRoot(inertRoot) {\n this._throwIfDestroyed();\n this._inertRoots['delete'](inertRoot);\n if (this._inertRoots.size === 0) {\n this.destructor();\n }\n }\n }, {\n key: 'destroyed',\n get: function get() {\n return (/** @type {!InertNode} */this._destroyed\n );\n }\n }, {\n key: 'hasSavedTabIndex',\n get: function get() {\n return this._savedTabIndex !== null;\n }\n\n /** @return {!Node} */\n\n }, {\n key: 'node',\n get: function get() {\n this._throwIfDestroyed();\n return this._node;\n }\n\n /** @param {?number} tabIndex */\n\n }, {\n key: 'savedTabIndex',\n set: function set(tabIndex) {\n this._throwIfDestroyed();\n this._savedTabIndex = tabIndex;\n }\n\n /** @return {?number} */\n ,\n get: function get() {\n this._throwIfDestroyed();\n return this._savedTabIndex;\n }\n }]);\n\n return InertNode;\n }();\n\n /**\n * InertManager is a per-document singleton object which manages all inert roots and nodes.\n *\n * When an element becomes an inert root by having an `inert` attribute set and/or its `inert`\n * property set to `true`, the `setInert` method creates an `InertRoot` object for the element.\n * The `InertRoot` in turn registers itself as managing all of the element's focusable descendant\n * nodes via the `register()` method. The `InertManager` ensures that a single `InertNode` instance\n * is created for each such node, via the `_managedNodes` map.\n */\n\n\n var InertManager = function () {\n /**\n * @param {!Document} document\n */\n function InertManager(document) {\n _classCallCheck(this, InertManager);\n\n if (!document) {\n throw new Error('Missing required argument; InertManager needs to wrap a document.');\n }\n\n /** @type {!Document} */\n this._document = document;\n\n /**\n * All managed nodes known to this InertManager. In a map to allow looking up by Node.\n * @type {!Map}\n */\n this._managedNodes = new Map();\n\n /**\n * All inert roots known to this InertManager. In a map to allow looking up by Node.\n * @type {!Map}\n */\n this._inertRoots = new Map();\n\n /**\n * Observer for mutations on `document.body`.\n * @type {!MutationObserver}\n */\n this._observer = new MutationObserver(this._watchForInert.bind(this));\n\n // Add inert style.\n addInertStyle(document.head || document.body || document.documentElement);\n\n // Wait for document to be loaded.\n if (document.readyState === 'loading') {\n document.addEventListener('DOMContentLoaded', this._onDocumentLoaded.bind(this));\n } else {\n this._onDocumentLoaded();\n }\n }\n\n /**\n * Set whether the given element should be an inert root or not.\n * @param {!Element} root\n * @param {boolean} inert\n */\n\n\n _createClass(InertManager, [{\n key: 'setInert',\n value: function setInert(root, inert) {\n if (inert) {\n if (this._inertRoots.has(root)) {\n // element is already inert\n return;\n }\n\n var inertRoot = new InertRoot(root, this);\n root.setAttribute('inert', '');\n this._inertRoots.set(root, inertRoot);\n // If not contained in the document, it must be in a shadowRoot.\n // Ensure inert styles are added there.\n if (!this._document.body.contains(root)) {\n var parent = root.parentNode;\n while (parent) {\n if (parent.nodeType === 11) {\n addInertStyle(parent);\n }\n parent = parent.parentNode;\n }\n }\n } else {\n if (!this._inertRoots.has(root)) {\n // element is already non-inert\n return;\n }\n\n var _inertRoot = this._inertRoots.get(root);\n _inertRoot.destructor();\n this._inertRoots['delete'](root);\n root.removeAttribute('inert');\n }\n }\n\n /**\n * Get the InertRoot object corresponding to the given inert root element, if any.\n * @param {!Node} element\n * @return {!InertRoot|undefined}\n */\n\n }, {\n key: 'getInertRoot',\n value: function getInertRoot(element) {\n return this._inertRoots.get(element);\n }\n\n /**\n * Register the given InertRoot as managing the given node.\n * In the case where the node has a previously existing inert root, this inert root will\n * be added to its set of inert roots.\n * @param {!Node} node\n * @param {!InertRoot} inertRoot\n * @return {!InertNode} inertNode\n */\n\n }, {\n key: 'register',\n value: function register(node, inertRoot) {\n var inertNode = this._managedNodes.get(node);\n if (inertNode !== undefined) {\n // node was already in an inert subtree\n inertNode.addInertRoot(inertRoot);\n } else {\n inertNode = new InertNode(node, inertRoot);\n }\n\n this._managedNodes.set(node, inertNode);\n\n return inertNode;\n }\n\n /**\n * De-register the given InertRoot as managing the given inert node.\n * Removes the inert root from the InertNode's set of managing inert roots, and remove the inert\n * node from the InertManager's set of managed nodes if it is destroyed.\n * If the node is not currently managed, this is essentially a no-op.\n * @param {!Node} node\n * @param {!InertRoot} inertRoot\n * @return {?InertNode} The potentially destroyed InertNode associated with this node, if any.\n */\n\n }, {\n key: 'deregister',\n value: function deregister(node, inertRoot) {\n var inertNode = this._managedNodes.get(node);\n if (!inertNode) {\n return null;\n }\n\n inertNode.removeInertRoot(inertRoot);\n if (inertNode.destroyed) {\n this._managedNodes['delete'](node);\n }\n\n return inertNode;\n }\n\n /**\n * Callback used when document has finished loading.\n */\n\n }, {\n key: '_onDocumentLoaded',\n value: function _onDocumentLoaded() {\n // Find all inert roots in document and make them actually inert.\n var inertElements = slice.call(this._document.querySelectorAll('[inert]'));\n inertElements.forEach(function (inertElement) {\n this.setInert(inertElement, true);\n }, this);\n\n // Comment this out to use programmatic API only.\n this._observer.observe(this._document.body || this._document.documentElement, {attributes: true, subtree: true, childList: true});\n }\n\n /**\n * Callback used when mutation observer detects attribute changes.\n * @param {!Array} records\n * @param {!MutationObserver} self\n */\n\n }, {\n key: '_watchForInert',\n value: function _watchForInert(records, _self) {\n var _this = this;\n records.forEach(function (record) {\n switch (record.type) {\n case 'childList':\n slice.call(record.addedNodes).forEach(function (node) {\n if (node.nodeType !== Node.ELEMENT_NODE) {\n return;\n }\n var inertElements = slice.call(node.querySelectorAll('[inert]'));\n if (matches.call(node, '[inert]')) {\n inertElements.unshift(node);\n }\n inertElements.forEach(function (inertElement) {\n this.setInert(inertElement, true);\n }, _this);\n }, _this);\n break;\n case 'attributes':\n if (record.attributeName !== 'inert') {\n return;\n }\n var target = /** @type {!Element} */record.target;\n var inert = target.hasAttribute('inert');\n _this.setInert(target, inert);\n break;\n }\n }, this);\n }\n }]);\n\n return InertManager;\n }();\n\n /**\n * Recursively walk the composed tree from |node|.\n * @param {!Node} node\n * @param {(function (!Element))=} callback Callback to be called for each element traversed,\n * before descending into child nodes.\n * @param {?ShadowRoot=} shadowRootAncestor The nearest ShadowRoot ancestor, if any.\n */\n\n\n function composedTreeWalk(node, callback, shadowRootAncestor) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n var element = /** @type {!Element} */node;\n if (callback) {\n callback(element);\n }\n\n // Descend into node:\n // If it has a ShadowRoot, ignore all child elements - these will be picked\n // up by the or elements. Descend straight into the\n // ShadowRoot.\n var shadowRoot = /** @type {!HTMLElement} */element.shadowRoot;\n if (shadowRoot) {\n composedTreeWalk(shadowRoot, callback, shadowRoot);\n return;\n }\n\n // If it is a element, descend into distributed elements - these\n // are elements from outside the shadow root which are rendered inside the\n // shadow DOM.\n if (element.localName == 'content') {\n var content = /** @type {!HTMLContentElement} */element;\n // Verifies if ShadowDom v0 is supported.\n var distributedNodes = content.getDistributedNodes ? content.getDistributedNodes() : [];\n for (var i = 0; i < distributedNodes.length; i++) {\n composedTreeWalk(distributedNodes[i], callback, shadowRootAncestor);\n }\n return;\n }\n\n // If it is a element, descend into assigned nodes - these\n // are elements from outside the shadow root which are rendered inside the\n // shadow DOM.\n if (element.localName == 'slot') {\n var slot = /** @type {!HTMLSlotElement} */element;\n // Verify if ShadowDom v1 is supported.\n var _distributedNodes = slot.assignedNodes ? slot.assignedNodes({ flatten: true }) : [];\n for (var _i = 0; _i < _distributedNodes.length; _i++) {\n composedTreeWalk(_distributedNodes[_i], callback, shadowRootAncestor);\n }\n return;\n }\n }\n\n // If it is neither the parent of a ShadowRoot, a element, a \n // element, nor a element recurse normally.\n var child = node.firstChild;\n while (child != null) {\n composedTreeWalk(child, callback, shadowRootAncestor);\n child = child.nextSibling;\n }\n }\n\n /**\n * Adds a style element to the node containing the inert specific styles\n * @param {!Node} node\n */\n function addInertStyle(node) {\n if (node.querySelector('style#inert-style')) {\n return;\n }\n var style = document.createElement('style');\n style.setAttribute('id', 'inert-style');\n style.textContent = '\\n' + '[inert] {\\n' + ' pointer-events: none;\\n' + ' cursor: default;\\n' + '}\\n' + '\\n' + '[inert], [inert] * {\\n' + ' user-select: none;\\n' + ' -webkit-user-select: none;\\n' + ' -moz-user-select: none;\\n' + ' -ms-user-select: none;\\n' + '}\\n';\n node.appendChild(style);\n }\n\n /** @type {!InertManager} */\n var inertManager = new InertManager(document);\n\n // eslint-disable-next-line no-prototype-builtins\n if (!Element.prototype.hasOwnProperty('inert')) {\n Object.defineProperty(Element.prototype, 'inert', {\n enumerable: true,\n /** @this {!Element} */\n get: function get() {\n return this.hasAttribute('inert');\n },\n /** @this {!Element} */\n set: function set(inert) {\n inertManager.setInert(this, inert);\n }\n });\n }\n\n})));\n}}).call('object' === typeof window && window || 'object' === typeof self && self || 'object' === typeof global && global || {});\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","import ToInteger from \"../helpers/_ESAbstract.ToInteger\";\n\n// _ESAbstract.ToLength\n/* global ToInteger */\n// 7.1.15. ToLength ( argument )\nfunction ToLength(argument) { // eslint-disable-line no-unused-vars\n\t// 1. Let len be ? ToInteger(argument).\n\tvar len = ToInteger(argument);\n\t// 2. If len ≤ +0, return +0.\n\tif (len <= 0) {\n\t\treturn 0;\n\t}\n\t// 3. Return min(len, 253-1).\n\treturn Math.min(len, Math.pow(2, 53) -1);\n}\nexport default ToLength;\n","import IsArray from \"../helpers/_ESAbstract.IsArray\";\nimport ArrayCreate from \"../helpers/_ESAbstract.ArrayCreate\";\nimport Get from \"../helpers/_ESAbstract.Get\";\nimport Type from \"../helpers/_ESAbstract.Type\";\nimport IsConstructor from \"../helpers/_ESAbstract.IsConstructor\";\nimport GetMethod from \"../helpers/_ESAbstract.GetMethod\";\nimport GetV from \"../helpers/_ESAbstract.GetV\";\nimport ToObject from \"../helpers/_ESAbstract.ToObject\";\nimport IsCallable from \"../helpers/_ESAbstract.IsCallable\";\nimport Construct from \"../helpers/_ESAbstract.Construct\";\nimport OrdinaryCreateFromConstructor from \"../helpers/_ESAbstract.OrdinaryCreateFromConstructor\";\nimport GetPrototypeFromConstructor from \"../helpers/_ESAbstract.GetPrototypeFromConstructor\";\nimport CreateMethodProperty from \"../helpers/_ESAbstract.CreateMethodProperty\";\nimport HasOwnProperty from \"../helpers/_ESAbstract.HasOwnProperty\";\nimport ToPropertyKey from \"../helpers/_ESAbstract.ToPropertyKey\";\nimport ToPrimitive from \"../helpers/_ESAbstract.ToPrimitive\";\nimport Call from \"../helpers/_ESAbstract.Call\";\nimport OrdinaryToPrimitive from \"../helpers/_ESAbstract.OrdinaryToPrimitive\";\nimport ToString from \"../helpers/_ESAbstract.ToString\";\n\n// _ESAbstract.ArraySpeciesCreate\n/* global IsArray, ArrayCreate, Get, Type, IsConstructor, Construct */\n// 9.4.2.3. ArraySpeciesCreate ( originalArray, length )\nfunction ArraySpeciesCreate(originalArray, length) { // eslint-disable-line no-unused-vars\n\t// 1. Assert: length is an integer Number ≥ 0.\n\t// 2. If length is -0, set length to +0.\n\tif (length === 0 && 1/length === -Infinity) {\n\t\tlength = 0;\n\t}\n\n\t// 3. Let isArray be ? IsArray(originalArray).\n\tvar isArray = IsArray(originalArray);\n\n\t// 4. If isArray is false, return ? ArrayCreate(length).\n\tif (isArray === false) {\n\t\treturn ArrayCreate(length);\n\t}\n\n\t// 5. Let C be ? Get(originalArray, \"constructor\").\n\tvar C = Get(originalArray, 'constructor');\n\n\t// Polyfill.io - We skip this section as not sure how to make a cross-realm normal Array, a same-realm Array.\n\t// 6. If IsConstructor(C) is true, then\n\t// if (IsConstructor(C)) {\n\t\t// a. Let thisRealm be the current Realm Record.\n\t\t// b. Let realmC be ? GetFunctionRealm(C).\n\t\t// c. If thisRealm and realmC are not the same Realm Record, then\n\t\t\t// i. If SameValue(C, realmC.[[Intrinsics]].[[%Array%]]) is true, set C to undefined.\n\t// }\n\t// 7. If Type(C) is Object, then\n\tif (Type(C) === 'object') {\n\t\t// a. Set C to ? Get(C, @@species).\n\t\tC = 'Symbol' in self && 'species' in self.Symbol ? Get(C, self.Symbol.species) : undefined;\n\t\t// b. If C is null, set C to undefined.\n\t\tif (C === null) {\n\t\t\tC = undefined;\n\t\t}\n\t}\n\t// 8. If C is undefined, return ? ArrayCreate(length).\n\tif (C === undefined) {\n\t\treturn ArrayCreate(length);\n\t}\n\t// 9. If IsConstructor(C) is false, throw a TypeError exception.\n\tif (!IsConstructor(C)) {\n\t\tthrow new TypeError('C must be a constructor');\n\t}\n\t// 10. Return ? Construct(C, « length »).\n\treturn Construct(C, [length]);\n}\nexport default ArraySpeciesCreate;\n","import CreateDataProperty from \"../helpers/_ESAbstract.CreateDataProperty\";\n\n// _ESAbstract.CreateDataPropertyOrThrow\n/* global CreateDataProperty */\n// 7.3.6. CreateDataPropertyOrThrow ( O, P, V )\nfunction CreateDataPropertyOrThrow(O, P, V) { // eslint-disable-line no-unused-vars\n\t// 1. Assert: Type(O) is Object.\n\t// 2. Assert: IsPropertyKey(P) is true.\n\t// 3. Let success be ? CreateDataProperty(O, P, V).\n\tvar success = CreateDataProperty(O, P, V);\n\t// 4. If success is false, throw a TypeError exception.\n\tif (!success) {\n\t\tthrow new TypeError('Cannot assign value `' + Object.prototype.toString.call(V) + '` to property `' + Object.prototype.toString.call(P) + '` on object `' + Object.prototype.toString.call(O) + '`');\n\t}\n\t// 5. Return success.\n\treturn success;\n}\nexport default CreateDataPropertyOrThrow;\n","import SameValueNonNumber from \"../helpers/_ESAbstract.SameValueNonNumber\";\nimport Type from \"../helpers/_ESAbstract.Type\";\n\n// _ESAbstract.SameValueZero\n/* global Type, SameValueNonNumber */\n// 7.2.11. SameValueZero ( x, y )\nfunction SameValueZero (x, y) { // eslint-disable-line no-unused-vars\n\t// 1. If Type(x) is different from Type(y), return false.\n\tif (Type(x) !== Type(y)) {\n\t\treturn false;\n\t}\n\t// 2. If Type(x) is Number, then\n\tif (Type(x) === 'number') {\n\t\t// a. If x is NaN and y is NaN, return true.\n\t\tif (isNaN(x) && isNaN(y)) {\n\t\t\treturn true;\n\t\t}\n\t\t// b. If x is +0 and y is -0, return true.\n\t\tif (1/x === Infinity && 1/y === -Infinity) {\n\t\t\treturn true;\n\t\t}\n\t\t// c. If x is -0 and y is +0, return true.\n\t\tif (1/x === -Infinity && 1/y === Infinity) {\n\t\t\treturn true;\n\t\t}\n\t\t// d. If x is the same Number value as y, return true.\n\t\tif (x === y) {\n\t\t\treturn true;\n\t\t}\n\t\t// e. Return false.\n\t\treturn false;\n\t}\n\t// 3. Return SameValueNonNumber(x, y).\n\treturn SameValueNonNumber(x, y);\n}\nexport default SameValueZero;\n","var DESCRIPTORS = require('../internals/descriptors');\nvar propertyIsEnumerableModule = require('../internals/object-property-is-enumerable');\nvar createPropertyDescriptor = require('../internals/create-property-descriptor');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar toPrimitive = require('../internals/to-primitive');\nvar has = require('../internals/has');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\n\nvar nativeGetOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// `Object.getOwnPropertyDescriptor` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertydescriptor\nexports.f = DESCRIPTORS ? nativeGetOwnPropertyDescriptor : function getOwnPropertyDescriptor(O, P) {\n O = toIndexedObject(O);\n P = toPrimitive(P, true);\n if (IE8_DOM_DEFINE) try {\n return nativeGetOwnPropertyDescriptor(O, P);\n } catch (error) { /* empty */ }\n if (has(O, P)) return createPropertyDescriptor(!propertyIsEnumerableModule.f.call(O, P), O[P]);\n};\n","module.exports = function (bitmap, value) {\n return {\n enumerable: !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable: !(bitmap & 4),\n value: value\n };\n};\n","var toString = {}.toString;\n\nmodule.exports = function (it) {\n return toString.call(it).slice(8, -1);\n};\n","var isObject = require('../internals/is-object');\n\n// `ToPrimitive` abstract operation\n// https://tc39.github.io/ecma262/#sec-toprimitive\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function (input, PREFERRED_STRING) {\n if (!isObject(input)) return input;\n var fn, val;\n if (PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n if (typeof (fn = input.valueOf) == 'function' && !isObject(val = fn.call(input))) return val;\n if (!PREFERRED_STRING && typeof (fn = input.toString) == 'function' && !isObject(val = fn.call(input))) return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n","var DESCRIPTORS = require('../internals/descriptors');\nvar fails = require('../internals/fails');\nvar createElement = require('../internals/document-create-element');\n\n// Thank's IE8 for his funny defineProperty\nmodule.exports = !DESCRIPTORS && !fails(function () {\n return Object.defineProperty(createElement('div'), 'a', {\n get: function () { return 7; }\n }).a != 7;\n});\n","var DESCRIPTORS = require('../internals/descriptors');\nvar IE8_DOM_DEFINE = require('../internals/ie8-dom-define');\nvar anObject = require('../internals/an-object');\nvar toPrimitive = require('../internals/to-primitive');\n\nvar nativeDefineProperty = Object.defineProperty;\n\n// `Object.defineProperty` method\n// https://tc39.github.io/ecma262/#sec-object.defineproperty\nexports.f = DESCRIPTORS ? nativeDefineProperty : function defineProperty(O, P, Attributes) {\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if (IE8_DOM_DEFINE) try {\n return nativeDefineProperty(O, P, Attributes);\n } catch (error) { /* empty */ }\n if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported');\n if ('value' in Attributes) O[P] = Attributes.value;\n return O;\n};\n","var global = require('../internals/global');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar has = require('../internals/has');\nvar setGlobal = require('../internals/set-global');\nvar inspectSource = require('../internals/inspect-source');\nvar InternalStateModule = require('../internals/internal-state');\n\nvar getInternalState = InternalStateModule.get;\nvar enforceInternalState = InternalStateModule.enforce;\nvar TEMPLATE = String(String).split('String');\n\n(module.exports = function (O, key, value, options) {\n var unsafe = options ? !!options.unsafe : false;\n var simple = options ? !!options.enumerable : false;\n var noTargetGet = options ? !!options.noTargetGet : false;\n if (typeof value == 'function') {\n if (typeof key == 'string' && !has(value, 'name')) createNonEnumerableProperty(value, 'name', key);\n enforceInternalState(value).source = TEMPLATE.join(typeof key == 'string' ? key : '');\n }\n if (O === global) {\n if (simple) O[key] = value;\n else setGlobal(key, value);\n return;\n } else if (!unsafe) {\n delete O[key];\n } else if (!noTargetGet && O[key]) {\n simple = true;\n }\n if (simple) O[key] = value;\n else createNonEnumerableProperty(O, key, value);\n// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative\n})(Function.prototype, 'toString', function toString() {\n return typeof this == 'function' && getInternalState(this).source || inspectSource(this);\n});\n","var store = require('../internals/shared-store');\n\nvar functionToString = Function.toString;\n\n// this helper broken in `3.4.1-3.4.4`, so we can't use `shared` helper\nif (typeof store.inspectSource != 'function') {\n store.inspectSource = function (it) {\n return functionToString.call(it);\n };\n}\n\nmodule.exports = store.inspectSource;\n","var global = require('../internals/global');\nvar setGlobal = require('../internals/set-global');\n\nvar SHARED = '__core-js_shared__';\nvar store = global[SHARED] || setGlobal(SHARED, {});\n\nmodule.exports = store;\n","var IS_PURE = require('../internals/is-pure');\nvar store = require('../internals/shared-store');\n\n(module.exports = function (key, value) {\n return store[key] || (store[key] = value !== undefined ? value : {});\n})('versions', []).push({\n version: '3.6.5',\n mode: IS_PURE ? 'pure' : 'global',\n copyright: '© 2020 Denis Pushkarev (zloirock.ru)'\n});\n","var id = 0;\nvar postfix = Math.random();\n\nmodule.exports = function (key) {\n return 'Symbol(' + String(key === undefined ? '' : key) + ')_' + (++id + postfix).toString(36);\n};\n","module.exports = {};\n","var toInteger = require('../internals/to-integer');\n\nvar min = Math.min;\n\n// `ToLength` abstract operation\n// https://tc39.github.io/ecma262/#sec-tolength\nmodule.exports = function (argument) {\n return argument > 0 ? min(toInteger(argument), 0x1FFFFFFFFFFFFF) : 0; // 2 ** 53 - 1 == 9007199254740991\n};\n","var fails = require('../internals/fails');\n\nmodule.exports = !!Object.getOwnPropertySymbols && !fails(function () {\n // Chrome 38 Symbol has incorrect toString conversion\n // eslint-disable-next-line no-undef\n return !String(Symbol());\n});\n","module.exports = require('@bugsnag/browser')\n","(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.Bugsnag = f()}})(function(){var define,module,exports;\nvar _$breadcrumbTypes_8 = ['navigation', 'request', 'process', 'log', 'user', 'state', 'error', 'manual'];\n\n// Array#reduce\nvar _$reduce_17 = function (arr, fn, accum) {\n var val = accum;\n\n for (var i = 0, len = arr.length; i < len; i++) {\n val = fn(val, arr[i], i, arr);\n }\n\n return val;\n};\n\n/* removed: var _$reduce_17 = require('./reduce'); */; // Array#filter\n\n\nvar _$filter_12 = function (arr, fn) {\n return _$reduce_17(arr, function (accum, item, i, arr) {\n return !fn(item, i, arr) ? accum : accum.concat(item);\n }, []);\n};\n\n/* removed: var _$reduce_17 = require('./reduce'); */; // Array#includes\n\n\nvar _$includes_13 = function (arr, x) {\n return _$reduce_17(arr, function (accum, item, i, arr) {\n return accum === true || item === x;\n }, false);\n};\n\n// Array#isArray\nvar _$isArray_14 = function (obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n};\n\n/* eslint-disable-next-line no-prototype-builtins */\nvar _hasDontEnumBug = !{\n toString: null\n}.propertyIsEnumerable('toString');\n\nvar _dontEnums = ['toString', 'toLocaleString', 'valueOf', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'constructor']; // Object#keys\n\nvar _$keys_15 = function (obj) {\n // stripped down version of\n // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/Keys\n var result = [];\n var prop;\n\n for (prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) result.push(prop);\n }\n\n if (!_hasDontEnumBug) return result;\n\n for (var i = 0, len = _dontEnums.length; i < len; i++) {\n if (Object.prototype.hasOwnProperty.call(obj, _dontEnums[i])) result.push(_dontEnums[i]);\n }\n\n return result;\n};\n\nvar _$intRange_24 = function (min, max) {\n if (min === void 0) {\n min = 1;\n }\n\n if (max === void 0) {\n max = Infinity;\n }\n\n return function (value) {\n return typeof value === 'number' && parseInt('' + value, 10) === value && value >= min && value <= max;\n };\n};\n\n/* removed: var _$filter_12 = require('../es-utils/filter'); */;\n\n/* removed: var _$isArray_14 = require('../es-utils/is-array'); */;\n\nvar _$listOfFunctions_25 = function (value) {\n return typeof value === 'function' || _$isArray_14(value) && _$filter_12(value, function (f) {\n return typeof f === 'function';\n }).length === value.length;\n};\n\nvar _$stringWithLength_26 = function (value) {\n return typeof value === 'string' && !!value.length;\n};\n\nvar _$config_5 = {};\n/* removed: var _$filter_12 = require('./lib/es-utils/filter'); */;\n\n/* removed: var _$reduce_17 = require('./lib/es-utils/reduce'); */;\n\n/* removed: var _$keys_15 = require('./lib/es-utils/keys'); */;\n\n/* removed: var _$isArray_14 = require('./lib/es-utils/is-array'); */;\n\n/* removed: var _$includes_13 = require('./lib/es-utils/includes'); */;\n\n/* removed: var _$intRange_24 = require('./lib/validators/int-range'); */;\n\n/* removed: var _$stringWithLength_26 = require('./lib/validators/string-with-length'); */;\n\n/* removed: var _$listOfFunctions_25 = require('./lib/validators/list-of-functions'); */;\n\n/* removed: var _$breadcrumbTypes_8 = require('./lib/breadcrumb-types'); */;\n\nvar defaultErrorTypes = function () {\n return {\n unhandledExceptions: true,\n unhandledRejections: true\n };\n};\n\n_$config_5.schema = {\n apiKey: {\n defaultValue: function () {\n return null;\n },\n message: 'is required',\n validate: _$stringWithLength_26\n },\n appVersion: {\n defaultValue: function () {\n return undefined;\n },\n message: 'should be a string',\n validate: function (value) {\n return value === undefined || _$stringWithLength_26(value);\n }\n },\n appType: {\n defaultValue: function () {\n return undefined;\n },\n message: 'should be a string',\n validate: function (value) {\n return value === undefined || _$stringWithLength_26(value);\n }\n },\n autoDetectErrors: {\n defaultValue: function () {\n return true;\n },\n message: 'should be true|false',\n validate: function (value) {\n return value === true || value === false;\n }\n },\n enabledErrorTypes: {\n defaultValue: function () {\n return defaultErrorTypes();\n },\n message: 'should be an object containing the flags { unhandledExceptions:true|false, unhandledRejections:true|false }',\n allowPartialObject: true,\n validate: function (value) {\n // ensure we have an object\n if (typeof value !== 'object' || !value) return false;\n var providedKeys = _$keys_15(value);\n var defaultKeys = _$keys_15(defaultErrorTypes()); // ensure it only has a subset of the allowed keys\n\n if (_$filter_12(providedKeys, function (k) {\n return _$includes_13(defaultKeys, k);\n }).length < providedKeys.length) return false; // ensure all of the values are boolean\n\n if (_$filter_12(_$keys_15(value), function (k) {\n return typeof value[k] !== 'boolean';\n }).length > 0) return false;\n return true;\n }\n },\n onError: {\n defaultValue: function () {\n return [];\n },\n message: 'should be a function or array of functions',\n validate: _$listOfFunctions_25\n },\n onSession: {\n defaultValue: function () {\n return [];\n },\n message: 'should be a function or array of functions',\n validate: _$listOfFunctions_25\n },\n onBreadcrumb: {\n defaultValue: function () {\n return [];\n },\n message: 'should be a function or array of functions',\n validate: _$listOfFunctions_25\n },\n endpoints: {\n defaultValue: function () {\n return {\n notify: 'https://notify.bugsnag.com',\n sessions: 'https://sessions.bugsnag.com'\n };\n },\n message: 'should be an object containing endpoint URLs { notify, sessions }',\n validate: function (val) {\n return (// first, ensure it's an object\n val && typeof val === 'object' && // notify and sessions must always be set\n _$stringWithLength_26(val.notify) && _$stringWithLength_26(val.sessions) && // ensure no keys other than notify/session are set on endpoints object\n _$filter_12(_$keys_15(val), function (k) {\n return !_$includes_13(['notify', 'sessions'], k);\n }).length === 0\n );\n }\n },\n autoTrackSessions: {\n defaultValue: function (val) {\n return true;\n },\n message: 'should be true|false',\n validate: function (val) {\n return val === true || val === false;\n }\n },\n enabledReleaseStages: {\n defaultValue: function () {\n return null;\n },\n message: 'should be an array of strings',\n validate: function (value) {\n return value === null || _$isArray_14(value) && _$filter_12(value, function (f) {\n return typeof f === 'string';\n }).length === value.length;\n }\n },\n releaseStage: {\n defaultValue: function () {\n return 'production';\n },\n message: 'should be a string',\n validate: function (value) {\n return typeof value === 'string' && value.length;\n }\n },\n maxBreadcrumbs: {\n defaultValue: function () {\n return 25;\n },\n message: 'should be a number ≤100',\n validate: function (value) {\n return _$intRange_24(0, 100)(value);\n }\n },\n enabledBreadcrumbTypes: {\n defaultValue: function () {\n return _$breadcrumbTypes_8;\n },\n message: \"should be null or a list of available breadcrumb types (\" + _$breadcrumbTypes_8.join(',') + \")\",\n validate: function (value) {\n return value === null || _$isArray_14(value) && _$reduce_17(value, function (accum, maybeType) {\n if (accum === false) return accum;\n return _$includes_13(_$breadcrumbTypes_8, maybeType);\n }, true);\n }\n },\n context: {\n defaultValue: function () {\n return undefined;\n },\n message: 'should be a string',\n validate: function (value) {\n return value === undefined || typeof value === 'string';\n }\n },\n user: {\n defaultValue: function () {\n return {};\n },\n message: 'should be an object with { id, email, name } properties',\n validate: function (value) {\n return value === null || value && _$reduce_17(_$keys_15(value), function (accum, key) {\n return accum && _$includes_13(['id', 'email', 'name'], key);\n }, true);\n }\n },\n metadata: {\n defaultValue: function () {\n return {};\n },\n message: 'should be an object',\n validate: function (value) {\n return typeof value === 'object' && value !== null;\n }\n },\n logger: {\n defaultValue: function () {\n return undefined;\n },\n message: 'should be null or an object with methods { debug, info, warn, error }',\n validate: function (value) {\n return !value || value && _$reduce_17(['debug', 'info', 'warn', 'error'], function (accum, method) {\n return accum && typeof value[method] === 'function';\n }, true);\n }\n },\n redactedKeys: {\n defaultValue: function () {\n return ['password'];\n },\n message: 'should be an array of strings|regexes',\n validate: function (value) {\n return _$isArray_14(value) && value.length === _$filter_12(value, function (s) {\n return typeof s === 'string' || s && typeof s.test === 'function';\n }).length;\n }\n },\n plugins: {\n defaultValue: function () {\n return [];\n },\n message: 'should be an array of plugin objects',\n validate: function (value) {\n return _$isArray_14(value) && value.length === _$filter_12(value, function (p) {\n return p && typeof p === 'object' && typeof p.load === 'function';\n }).length;\n }\n }\n};\n\n// extends helper from babel\n// https://github.com/babel/babel/blob/916429b516e6466fd06588ee820e40e025d7f3a3/packages/babel-helpers/src/helpers.js#L377-L393\nvar _$assign_11 = 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/* removed: var _$reduce_17 = require('./reduce'); */; // Array#map\n\n\nvar _$map_16 = function (arr, fn) {\n return _$reduce_17(arr, function (accum, item, i, arr) {\n return accum.concat(fn(item, i, arr));\n }, []);\n};\n\nvar schema = _$config_5.schema;\n\n/* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */;\n\n/* removed: var _$assign_11 = require('@bugsnag/core/lib/es-utils/assign'); */;\n\nvar _$config_1 = {\n releaseStage: _$assign_11({}, schema.releaseStage, {\n defaultValue: function () {\n if (/^localhost(:\\d+)?$/.test(window.location.host)) return 'development';\n return 'production';\n }\n }),\n logger: _$assign_11({}, schema.logger, {\n defaultValue: function () {\n return (// set logger based on browser capability\n typeof console !== 'undefined' && typeof console.debug === 'function' ? getPrefixedConsole() : undefined\n );\n }\n })\n};\n\nvar getPrefixedConsole = function () {\n var logger = {};\n var consoleLog = console.log;\n _$map_16(['debug', 'info', 'warn', 'error'], function (method) {\n var consoleMethod = console[method];\n logger[method] = typeof consoleMethod === 'function' ? consoleMethod.bind(console, '[bugsnag]') : consoleLog.bind(console, '[bugsnag]');\n });\n return logger;\n};\n\nvar Breadcrumb =\n/*#__PURE__*/\nfunction () {\n function Breadcrumb(message, metadata, type, timestamp) {\n if (timestamp === void 0) {\n timestamp = new Date();\n }\n\n this.type = type;\n this.message = message;\n this.metadata = metadata;\n this.timestamp = timestamp;\n }\n\n var _proto = Breadcrumb.prototype;\n\n _proto.toJSON = function toJSON() {\n return {\n type: this.type,\n name: this.message,\n timestamp: this.timestamp,\n metaData: this.metadata\n };\n };\n\n return Breadcrumb;\n}();\n\nvar _$Breadcrumb_3 = Breadcrumb;\n\nvar _$stackframe_34 = {};\n(function (root, factory) {\n 'use strict'; // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (typeof _$stackframe_34 === 'object') {\n _$stackframe_34 = factory();\n } else {\n root.StackFrame = factory();\n }\n})(this, function () {\n 'use strict';\n\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.substring(1);\n }\n\n function _getter(p) {\n return function () {\n return this[p];\n };\n }\n\n var booleanProps = ['isConstructor', 'isEval', 'isNative', 'isToplevel'];\n var numericProps = ['columnNumber', 'lineNumber'];\n var stringProps = ['fileName', 'functionName', 'source'];\n var arrayProps = ['args'];\n var props = booleanProps.concat(numericProps, stringProps, arrayProps);\n\n function StackFrame(obj) {\n if (obj instanceof Object) {\n for (var i = 0; i < props.length; i++) {\n if (obj.hasOwnProperty(props[i]) && obj[props[i]] !== undefined) {\n this['set' + _capitalize(props[i])](obj[props[i]]);\n }\n }\n }\n }\n\n StackFrame.prototype = {\n getArgs: function () {\n return this.args;\n },\n setArgs: function (v) {\n if (Object.prototype.toString.call(v) !== '[object Array]') {\n throw new TypeError('Args must be an Array');\n }\n\n this.args = v;\n },\n getEvalOrigin: function () {\n return this.evalOrigin;\n },\n setEvalOrigin: function (v) {\n if (v instanceof StackFrame) {\n this.evalOrigin = v;\n } else if (v instanceof Object) {\n this.evalOrigin = new StackFrame(v);\n } else {\n throw new TypeError('Eval Origin must be an Object or StackFrame');\n }\n },\n toString: function () {\n var functionName = this.getFunctionName() || '{anonymous}';\n var args = '(' + (this.getArgs() || []).join(',') + ')';\n var fileName = this.getFileName() ? '@' + this.getFileName() : '';\n var lineNumber = _isNumber(this.getLineNumber()) ? ':' + this.getLineNumber() : '';\n var columnNumber = _isNumber(this.getColumnNumber()) ? ':' + this.getColumnNumber() : '';\n return functionName + args + fileName + lineNumber + columnNumber;\n }\n };\n\n for (var i = 0; i < booleanProps.length; i++) {\n StackFrame.prototype['get' + _capitalize(booleanProps[i])] = _getter(booleanProps[i]);\n\n StackFrame.prototype['set' + _capitalize(booleanProps[i])] = function (p) {\n return function (v) {\n this[p] = Boolean(v);\n };\n }(booleanProps[i]);\n }\n\n for (var j = 0; j < numericProps.length; j++) {\n StackFrame.prototype['get' + _capitalize(numericProps[j])] = _getter(numericProps[j]);\n\n StackFrame.prototype['set' + _capitalize(numericProps[j])] = function (p) {\n return function (v) {\n if (!_isNumber(v)) {\n throw new TypeError(p + ' must be a Number');\n }\n\n this[p] = Number(v);\n };\n }(numericProps[j]);\n }\n\n for (var k = 0; k < stringProps.length; k++) {\n StackFrame.prototype['get' + _capitalize(stringProps[k])] = _getter(stringProps[k]);\n\n StackFrame.prototype['set' + _capitalize(stringProps[k])] = function (p) {\n return function (v) {\n this[p] = String(v);\n };\n }(stringProps[k]);\n }\n\n return StackFrame;\n});\n\nvar _$errorStackParser_31 = {};\n(function (root, factory) {\n 'use strict'; // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (typeof _$errorStackParser_31 === 'object') {\n _$errorStackParser_31 = factory(_$stackframe_34);\n } else {\n root.ErrorStackParser = factory(root.StackFrame);\n }\n})(this, function ErrorStackParser(StackFrame) {\n 'use strict';\n\n var FIREFOX_SAFARI_STACK_REGEXP = /(^|@)\\S+\\:\\d+/;\n var CHROME_IE_STACK_REGEXP = /^\\s*at .*(\\S+\\:\\d+|\\(native\\))/m;\n var SAFARI_NATIVE_CODE_REGEXP = /^(eval@)?(\\[native code\\])?$/;\n return {\n /**\n * Given an Error object, extract the most information from it.\n *\n * @param {Error} error object\n * @return {Array} of StackFrames\n */\n parse: function ErrorStackParser$$parse(error) {\n if (typeof error.stacktrace !== 'undefined' || typeof error['opera#sourceloc'] !== 'undefined') {\n return this.parseOpera(error);\n } else if (error.stack && error.stack.match(CHROME_IE_STACK_REGEXP)) {\n return this.parseV8OrIE(error);\n } else if (error.stack) {\n return this.parseFFOrSafari(error);\n } else {\n throw new Error('Cannot parse given Error object');\n }\n },\n // Separate line and column numbers from a string of the form: (URI:Line:Column)\n extractLocation: function ErrorStackParser$$extractLocation(urlLike) {\n // Fail-fast but return locations like \"(native)\"\n if (urlLike.indexOf(':') === -1) {\n return [urlLike];\n }\n\n var regExp = /(.+?)(?:\\:(\\d+))?(?:\\:(\\d+))?$/;\n var parts = regExp.exec(urlLike.replace(/[\\(\\)]/g, ''));\n return [parts[1], parts[2] || undefined, parts[3] || undefined];\n },\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n return filtered.map(function (line) {\n if (line.indexOf('(eval ') > -1) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n line = line.replace(/eval code/g, 'eval').replace(/(\\(eval at [^\\()]*)|(\\)\\,.*$)/g, '');\n }\n\n var sanitizedLine = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '('); // capture and preseve the parenthesized location \"(/foo/my bar.js:12:87)\" in\n // case it has spaces in it, as the string is split on \\s+ later on\n\n var location = sanitizedLine.match(/ (\\((.+):(\\d+):(\\d+)\\)$)/); // remove the parenthesized location from the line, if it was matched\n\n sanitizedLine = location ? sanitizedLine.replace(location[0], '') : sanitizedLine;\n var tokens = sanitizedLine.split(/\\s+/).slice(1); // if a location was matched, pass it to extractLocation() otherwise pop the last token\n\n var locationParts = this.extractLocation(location ? location[1] : tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = ['eval', ''].indexOf(locationParts[0]) > -1 ? undefined : locationParts[0];\n return new StackFrame({\n functionName: functionName,\n fileName: fileName,\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n },\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n return filtered.map(function (line) {\n // Throw away eval information until we implement stacktrace.js/stackframe#8\n if (line.indexOf(' > eval') > -1) {\n line = line.replace(/ line (\\d+)(?: > eval line \\d+)* > eval\\:\\d+\\:\\d+/g, ':$1');\n }\n\n if (line.indexOf('@') === -1 && line.indexOf(':') === -1) {\n // Safari eval frames only have function names and nothing else\n return new StackFrame({\n functionName: line\n });\n } else {\n var functionNameRegex = /((.*\".+\"[^@]*)?[^@]*)(?:@)/;\n var matches = line.match(functionNameRegex);\n var functionName = matches && matches[1] ? matches[1] : undefined;\n var locationParts = this.extractLocation(line.replace(functionNameRegex, ''));\n return new StackFrame({\n functionName: functionName,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }\n }, this);\n },\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || e.message.indexOf('\\n') > -1 && e.message.split('\\n').length > e.stacktrace.split('\\n').length) {\n return this.parseOpera9(e);\n } else if (!e.stack) {\n return this.parseOpera10(e);\n } else {\n return this.parseOpera11(e);\n }\n },\n parseOpera9: function ErrorStackParser$$parseOpera9(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)/i;\n var lines = e.message.split('\\n');\n var result = [];\n\n for (var i = 2, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n\n if (match) {\n result.push(new StackFrame({\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n parseOpera10: function ErrorStackParser$$parseOpera10(e) {\n var lineRE = /Line (\\d+).*script (?:in )?(\\S+)(?:: In function (\\S+))?$/i;\n var lines = e.stacktrace.split('\\n');\n var result = [];\n\n for (var i = 0, len = lines.length; i < len; i += 2) {\n var match = lineRE.exec(lines[i]);\n\n if (match) {\n result.push(new StackFrame({\n functionName: match[3] || undefined,\n fileName: match[2],\n lineNumber: match[1],\n source: lines[i]\n }));\n }\n }\n\n return result;\n },\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = error.stack.split('\\n').filter(function (line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n return filtered.map(function (line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = tokens.shift() || '';\n var functionName = functionCall.replace(//, '$2').replace(/\\([^\\)]*\\)/g, '') || undefined;\n var argsRaw;\n\n if (functionCall.match(/\\(([^\\)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^\\(]+\\(([^\\)]*)\\)$/, '$1');\n }\n\n var args = argsRaw === undefined || argsRaw === '[arguments not available]' ? undefined : argsRaw.split(',');\n return new StackFrame({\n functionName: functionName,\n args: args,\n fileName: locationParts[0],\n lineNumber: locationParts[1],\n columnNumber: locationParts[2],\n source: line\n });\n }, this);\n }\n };\n});\n\nvar _$errorStackParser_10 = _$errorStackParser_31;\n\n// Given `err` which may be an error, does it have a stack property which is a string?\nvar _$hasStack_18 = function (err) {\n return !!err && (!!err.stack || !!err.stacktrace || !!err['opera#sourceloc']) && typeof (err.stack || err.stacktrace || err['opera#sourceloc']) === 'string' && err.stack !== err.name + \": \" + err.message;\n};\n\n/**\n * Expose `isError`.\n */\nvar _$isError_32 = isError;\n/**\n * Test whether `value` is error object.\n *\n * @param {*} value\n * @returns {boolean}\n */\n\nfunction isError(value) {\n switch (Object.prototype.toString.call(value)) {\n case '[object Error]':\n return true;\n\n case '[object Exception]':\n return true;\n\n case '[object DOMException]':\n return true;\n\n default:\n return value instanceof Error;\n }\n}\n\nvar _$iserror_19 = _$isError_32;\n\nvar _$jsRuntime_20 = \"yes\" ? 'browserjs' : typeof navigator !== 'undefined' && navigator.product === 'ReactNative' ? typeof Expo !== 'undefined' ? 'expojs' : 'reactnativejs' : 'nodejs';\n\n/* removed: var _$assign_11 = require('./es-utils/assign'); */;\n\nvar add = function (state, section, keyOrObj, maybeVal) {\n var _updates;\n\n if (!section) return;\n var updates; // addMetadata(\"section\", null) -> clears section\n\n if (keyOrObj === null) return clear(state, section); // normalise the two supported input types into object form\n\n if (typeof keyOrObj === 'object') updates = keyOrObj;\n if (typeof keyOrObj === 'string') updates = (_updates = {}, _updates[keyOrObj] = maybeVal, _updates); // exit if we don't have an updates object at this point\n\n if (!updates) return; // ensure a section with this name exists\n\n if (!state[section]) state[section] = {}; // merge the updates with the existing section\n\n state[section] = _$assign_11({}, state[section], updates);\n};\n\nvar get = function (state, section, key) {\n if (typeof section !== 'string') return undefined;\n\n if (!key) {\n return state[section];\n }\n\n if (state[section]) {\n return state[section][key];\n }\n\n return undefined;\n};\n\nvar clear = function (state, section, key) {\n if (typeof section !== 'string') return; // clear an entire section\n\n if (!key) {\n delete state[section];\n return;\n } // clear a single value from a section\n\n\n if (state[section]) {\n delete state[section][key];\n }\n};\n\nvar _$metadataDelegate_22 = {\n add: add,\n get: get,\n clear: clear\n};\n\nvar _$stackGenerator_33 = {};\n(function (root, factory) {\n 'use strict'; // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n\n if (typeof define === 'function' && define.amd) {\n define('stack-generator', ['stackframe'], factory);\n } else if (typeof _$stackGenerator_33 === 'object') {\n _$stackGenerator_33 = factory(_$stackframe_34);\n } else {\n root.StackGenerator = factory(root.StackFrame);\n }\n})(this, function (StackFrame) {\n return {\n backtrace: function StackGenerator$$backtrace(opts) {\n var stack = [];\n var maxStackSize = 10;\n\n if (typeof opts === 'object' && typeof opts.maxStackSize === 'number') {\n maxStackSize = opts.maxStackSize;\n }\n\n var curr = arguments.callee;\n\n while (curr && stack.length < maxStackSize && curr['arguments']) {\n // Allow V8 optimizations\n var args = new Array(curr['arguments'].length);\n\n for (var i = 0; i < args.length; ++i) {\n args[i] = curr['arguments'][i];\n }\n\n if (/function(?:\\s+([\\w$]+))+\\s*\\(/.test(curr.toString())) {\n stack.push(new StackFrame({\n functionName: RegExp.$1 || undefined,\n args: args\n }));\n } else {\n stack.push(new StackFrame({\n args: args\n }));\n }\n\n try {\n curr = curr.caller;\n } catch (e) {\n break;\n }\n }\n\n return stack;\n }\n };\n});\n\n/* removed: var _$errorStackParser_10 = require('./lib/error-stack-parser'); */;\n\n/* removed: var _$stackGenerator_33 = require('stack-generator'); */;\n\n/* removed: var _$hasStack_18 = require('./lib/has-stack'); */;\n\n/* removed: var _$map_16 = require('./lib/es-utils/map'); */;\n\n/* removed: var _$reduce_17 = require('./lib/es-utils/reduce'); */;\n\n/* removed: var _$filter_12 = require('./lib/es-utils/filter'); */;\n\n/* removed: var _$assign_11 = require('./lib/es-utils/assign'); */;\n\n/* removed: var _$jsRuntime_20 = require('./lib/js-runtime'); */;\n\n/* removed: var _$metadataDelegate_22 = require('./lib/metadata-delegate'); */;\n\n/* removed: var _$iserror_19 = require('./lib/iserror'); */;\n\nvar Event =\n/*#__PURE__*/\nfunction () {\n function Event(errorClass, errorMessage, stacktrace, handledState, originalError) {\n if (stacktrace === void 0) {\n stacktrace = [];\n }\n\n if (handledState === void 0) {\n handledState = defaultHandledState();\n }\n\n this.apiKey = undefined;\n this.context = undefined;\n this.groupingHash = undefined;\n this.originalError = originalError;\n this._handledState = handledState;\n this.severity = this._handledState.severity;\n this.unhandled = this._handledState.unhandled;\n this.app = {};\n this.device = {};\n this.request = {};\n this.breadcrumbs = [];\n this.threads = [];\n this._metadata = {};\n this._user = {};\n this._session = undefined;\n this.errors = [{\n errorClass: ensureString(errorClass),\n errorMessage: ensureString(errorMessage),\n type: _$jsRuntime_20,\n stacktrace: _$reduce_17(stacktrace, function (accum, frame) {\n var f = formatStackframe(frame); // don't include a stackframe if none of its properties are defined\n\n try {\n if (JSON.stringify(f) === '{}') return accum;\n return accum.concat(f);\n } catch (e) {\n return accum;\n }\n }, [])\n }]; // Flags.\n // Note these are not initialised unless they are used\n // to save unnecessary bytes in the browser bundle\n\n /* this.attemptImmediateDelivery, default: true */\n }\n\n var _proto = Event.prototype;\n\n _proto.addMetadata = function addMetadata(section, keyOrObj, maybeVal) {\n return _$metadataDelegate_22.add(this._metadata, section, keyOrObj, maybeVal);\n };\n\n _proto.getMetadata = function getMetadata(section, key) {\n return _$metadataDelegate_22.get(this._metadata, section, key);\n };\n\n _proto.clearMetadata = function clearMetadata(section, key) {\n return _$metadataDelegate_22.clear(this._metadata, section, key);\n };\n\n _proto.getUser = function getUser() {\n return this._user;\n };\n\n _proto.setUser = function setUser(id, email, name) {\n this._user = {\n id: id,\n email: email,\n name: name\n };\n };\n\n _proto.toJSON = function toJSON() {\n return {\n payloadVersion: '4',\n exceptions: _$map_16(this.errors, function (er) {\n return _$assign_11({}, er, {\n message: er.errorMessage\n });\n }),\n severity: this.severity,\n unhandled: this._handledState.unhandled,\n severityReason: this._handledState.severityReason,\n app: this.app,\n device: this.device,\n request: this.request,\n breadcrumbs: this.breadcrumbs,\n context: this.context,\n groupingHash: this.groupingHash,\n metaData: this._metadata,\n user: this._user,\n session: this._session\n };\n };\n\n return Event;\n}(); // takes a stacktrace.js style stackframe (https://github.com/stacktracejs/stackframe)\n// and returns a Bugsnag compatible stackframe (https://docs.bugsnag.com/api/error-reporting/#json-payload)\n\n\nvar formatStackframe = function (frame) {\n var f = {\n file: frame.fileName,\n method: normaliseFunctionName(frame.functionName),\n lineNumber: frame.lineNumber,\n columnNumber: frame.columnNumber,\n code: undefined,\n inProject: undefined\n }; // Some instances result in no file:\n // - calling notify() from chrome's terminal results in no file/method.\n // - non-error exception thrown from global code in FF\n // This adds one.\n\n if (f.lineNumber > -1 && !f.file && !f.method) {\n f.file = 'global code';\n }\n\n return f;\n};\n\nvar normaliseFunctionName = function (name) {\n return /^global code$/i.test(name) ? 'global code' : name;\n};\n\nvar defaultHandledState = function () {\n return {\n unhandled: false,\n severity: 'warning',\n severityReason: {\n type: 'handledException'\n }\n };\n};\n\nvar ensureString = function (str) {\n return typeof str === 'string' ? str : '';\n}; // Helpers\n\n\nEvent.getStacktrace = function (error, errorFramesToSkip, backtraceFramesToSkip) {\n if (_$hasStack_18(error)) return _$errorStackParser_10.parse(error).slice(errorFramesToSkip); // error wasn't provided or didn't have a stacktrace so try to walk the callstack\n\n try {\n return _$filter_12(_$stackGenerator_33.backtrace(), function (frame) {\n return (frame.functionName || '').indexOf('StackGenerator$$') === -1;\n }).slice(1 + backtraceFramesToSkip);\n } catch (e) {\n return [];\n }\n};\n\nEvent.create = function (maybeError, tolerateNonErrors, handledState, component, errorFramesToSkip, logger) {\n if (errorFramesToSkip === void 0) {\n errorFramesToSkip = 0;\n }\n\n var _normaliseError = normaliseError(maybeError, tolerateNonErrors, component, logger),\n error = _normaliseError[0],\n internalFrames = _normaliseError[1];\n\n var event;\n\n try {\n var stacktrace = Event.getStacktrace(error, // if an error was created/throw in the normaliseError() function, we need to\n // tell the getStacktrace() function to skip the number of frames we know will\n // be from our own functions. This is added to the number of frames deep we\n // were told about\n internalFrames > 0 ? 1 + internalFrames + errorFramesToSkip : 0, // if there's no stacktrace, the callstack may be walked to generated one.\n // this is how many frames should be removed because they come from our library\n 1 + errorFramesToSkip);\n event = new Event(error.name, error.message, stacktrace, handledState, maybeError);\n } catch (e) {\n event = new Event(error.name, error.message, [], handledState, maybeError);\n }\n\n if (error.name === 'InvalidError') {\n event.addMetadata(\"\" + component, 'non-error parameter', makeSerialisable(maybeError));\n }\n\n return event;\n};\n\nvar makeSerialisable = function (err) {\n if (err === null) return 'null';\n if (err === undefined) return 'undefined';\n return err;\n};\n\nvar normaliseError = function (maybeError, tolerateNonErrors, component, logger) {\n var error;\n var internalFrames = 0;\n\n var createAndLogInputError = function (reason) {\n if (logger) logger.warn(component + \" received a non-error: \\\"\" + reason + \"\\\"\");\n var err = new Error(component + \" received a non-error. See \\\"\" + component + \"\\\" tab for more detail.\");\n err.name = 'InvalidError';\n return err;\n }; // In some cases:\n //\n // - the promise rejection handler (both in the browser and node)\n // - the node uncaughtException handler\n //\n // We are really limited in what we can do to get a stacktrace. So we use the\n // tolerateNonErrors option to ensure that the resulting error communicates as\n // such.\n\n\n if (!tolerateNonErrors) {\n if (_$iserror_19(maybeError)) {\n error = maybeError;\n } else {\n error = createAndLogInputError(typeof maybeError);\n internalFrames += 2;\n }\n } else {\n switch (typeof maybeError) {\n case 'string':\n case 'number':\n case 'boolean':\n error = new Error(String(maybeError));\n internalFrames += 1;\n break;\n\n case 'function':\n error = createAndLogInputError('function');\n internalFrames += 2;\n break;\n\n case 'object':\n if (maybeError !== null && _$iserror_19(maybeError)) {\n error = maybeError;\n } else if (maybeError !== null && hasNecessaryFields(maybeError)) {\n error = new Error(maybeError.message || maybeError.errorMessage);\n error.name = maybeError.name || maybeError.errorClass;\n internalFrames += 1;\n } else {\n error = createAndLogInputError(maybeError === null ? 'null' : 'unsupported object');\n internalFrames += 2;\n }\n\n break;\n\n default:\n error = createAndLogInputError('nothing');\n internalFrames += 2;\n }\n }\n\n if (!_$hasStack_18(error)) {\n // in IE10/11 a new Error() doesn't have a stacktrace until you throw it, so try that here\n try {\n throw error;\n } catch (e) {\n if (_$hasStack_18(e)) {\n error = e; // if the error only got a stacktrace after we threw it here, we know it\n // will only have one extra internal frame from this function, regardless\n // of whether it went through createAndLogInputError() or not\n\n internalFrames = 1;\n }\n }\n }\n\n return [error, internalFrames];\n};\n\nvar hasNecessaryFields = function (error) {\n return (typeof error.name === 'string' || typeof error.errorClass === 'string') && (typeof error.message === 'string' || typeof error.errorMessage === 'string');\n};\n\nvar _$Event_6 = Event;\n\n// This is a heavily modified/simplified version of\n// https://github.com/othiym23/async-some\n// with the logic flipped so that it is akin to the\n// synchronous \"every\" method instead of \"some\".\n// run the asynchronous test function (fn) over each item in the array (arr)\n// in series until:\n// - fn(item, cb) => calls cb(null, false)\n// - or the end of the array is reached\n// the callback (cb) will be passed (null, false) if any of the items in arr\n// caused fn to call back with false, otherwise it will be passed (null, true)\nvar _$asyncEvery_7 = function (arr, fn, cb) {\n var index = 0;\n\n var next = function () {\n if (index >= arr.length) return cb(null, true);\n fn(arr[index], function (err, result) {\n if (err) return cb(err);\n if (result === false) return cb(null, false);\n index++;\n next();\n });\n };\n\n next();\n};\n\n/* removed: var _$asyncEvery_7 = require('./async-every'); */;\n\nvar _$callbackRunner_9 = function (callbacks, event, onCallbackError, cb) {\n // This function is how we support different kinds of callback:\n // - synchronous - return value\n // - node-style async with callback - cb(err, value)\n // - promise/thenable - resolve(value)\n // It normalises each of these into the lowest common denominator – a node-style callback\n var runMaybeAsyncCallback = function (fn, cb) {\n if (typeof fn !== 'function') return cb(null);\n\n try {\n // if function appears sync…\n if (fn.length !== 2) {\n var ret = fn(event); // check if it returned a \"thenable\" (promise)\n\n if (ret && typeof ret.then === 'function') {\n return ret.then( // resolve\n function (val) {\n return setTimeout(function () {\n return cb(null, val);\n });\n }, // reject\n function (err) {\n setTimeout(function () {\n onCallbackError(err);\n return cb(null, true);\n });\n });\n }\n\n return cb(null, ret);\n } // if function is async…\n\n\n fn(event, function (err, result) {\n if (err) {\n onCallbackError(err);\n return cb(null);\n }\n\n cb(null, result);\n });\n } catch (e) {\n onCallbackError(e);\n cb(null);\n }\n };\n\n _$asyncEvery_7(callbacks, runMaybeAsyncCallback, cb);\n};\n\nvar _$syncCallbackRunner_23 = function (callbacks, callbackArg, callbackType, logger) {\n var ignore = false;\n var cbs = callbacks.slice();\n\n while (!ignore) {\n if (!cbs.length) break;\n\n try {\n ignore = cbs.pop()(callbackArg) === false;\n } catch (e) {\n logger.error(\"Error occurred in \" + callbackType + \" callback, continuing anyway\\u2026\");\n logger.error(e);\n }\n }\n\n return ignore;\n};\n\nvar _$pad_29 = function pad(num, size) {\n var s = '000000000' + num;\n return s.substr(s.length - size);\n};\n\n/* removed: var _$pad_29 = require('./pad.js'); */;\n\nvar env = typeof window === 'object' ? window : self;\nvar globalCount = 0;\n\nfor (var prop in env) {\n if (Object.hasOwnProperty.call(env, prop)) globalCount++;\n}\n\nvar mimeTypesLength = navigator.mimeTypes ? navigator.mimeTypes.length : 0;\nvar clientId = _$pad_29((mimeTypesLength + navigator.userAgent.length).toString(36) + globalCount.toString(36), 4);\n\nvar _$fingerprint_28 = function fingerprint() {\n return clientId;\n};\n\n/**\n * cuid.js\n * Collision-resistant UID generator for browsers and node.\n * Sequential for fast db lookups and recency sorting.\n * Safe for element IDs and server-side lookups.\n *\n * Extracted from CLCTR\n *\n * Copyright (c) Eric Elliott 2012\n * MIT License\n */\n/* removed: var _$fingerprint_28 = require('./lib/fingerprint.js'); */;\n\n/* removed: var _$pad_29 = require('./lib/pad.js'); */;\n\nvar c = 0,\n blockSize = 4,\n base = 36,\n discreteValues = Math.pow(base, blockSize);\n\nfunction randomBlock() {\n return _$pad_29((Math.random() * discreteValues << 0).toString(base), blockSize);\n}\n\nfunction safeCounter() {\n c = c < discreteValues ? c : 0;\n c++; // this is not subliminal\n\n return c - 1;\n}\n\nfunction cuid() {\n // Starting with a lowercase letter makes\n // it HTML element ID friendly.\n var letter = 'c',\n // hard-coded allows for sequential access\n // timestamp\n // warning: this exposes the exact date and time\n // that the uid was created.\n timestamp = new Date().getTime().toString(base),\n // Prevent same-machine collisions.\n counter = _$pad_29(safeCounter().toString(base), blockSize),\n // A few chars to generate distinct ids for different\n // clients (so different computers are far less\n // likely to generate the same id)\n print = _$fingerprint_28(),\n // Grab some more chars from Math.random()\n random = randomBlock() + randomBlock();\n return letter + timestamp + counter + print + random;\n}\n\ncuid.fingerprint = _$fingerprint_28;\nvar _$cuid_27 = cuid;\n\n/* removed: var _$cuid_27 = require('@bugsnag/cuid'); */;\n\nvar Session =\n/*#__PURE__*/\nfunction () {\n function Session() {\n this.id = _$cuid_27();\n this.startedAt = new Date();\n this._handled = 0;\n this._unhandled = 0;\n this._user = {};\n this.app = {};\n this.device = {};\n }\n\n var _proto = Session.prototype;\n\n _proto.getUser = function getUser() {\n return this._user;\n };\n\n _proto.setUser = function setUser(id, email, name) {\n this._user = {\n id: id,\n email: email,\n name: name\n };\n };\n\n _proto.toJSON = function toJSON() {\n return {\n id: this.id,\n startedAt: this.startedAt,\n events: {\n handled: this._handled,\n unhandled: this._unhandled\n }\n };\n };\n\n _proto._track = function _track(event) {\n this[event._handledState.unhandled ? '_unhandled' : '_handled'] += 1;\n };\n\n return Session;\n}();\n\nvar _$Session_35 = Session;\n\n/* removed: var _$config_5 = require('./config'); */;\n\n/* removed: var _$Event_6 = require('./event'); */;\n\n/* removed: var _$Breadcrumb_3 = require('./breadcrumb'); */;\n\n/* removed: var _$Session_35 = require('./session'); */;\n\n/* removed: var _$map_16 = require('./lib/es-utils/map'); */;\n\n/* removed: var _$includes_13 = require('./lib/es-utils/includes'); */;\n\n/* removed: var _$filter_12 = require('./lib/es-utils/filter'); */;\n\n/* removed: var _$reduce_17 = require('./lib/es-utils/reduce'); */;\n\n/* removed: var _$keys_15 = require('./lib/es-utils/keys'); */;\n\n/* removed: var _$assign_11 = require('./lib/es-utils/assign'); */;\n\n/* removed: var _$callbackRunner_9 = require('./lib/callback-runner'); */;\n\n/* removed: var _$metadataDelegate_22 = require('./lib/metadata-delegate'); */;\n\n/* removed: var _$syncCallbackRunner_23 = require('./lib/sync-callback-runner'); */;\n\n/* removed: var _$breadcrumbTypes_8 = require('./lib/breadcrumb-types'); */;\n\nvar noop = function () {};\n\nvar Client =\n/*#__PURE__*/\nfunction () {\n function Client(configuration, schema, internalPlugins, notifier) {\n var _this = this;\n\n if (schema === void 0) {\n schema = _$config_5.schema;\n }\n\n if (internalPlugins === void 0) {\n internalPlugins = [];\n }\n\n // notifier id\n this._notifier = notifier; // intialise opts and config\n\n this._config = {};\n this._schema = schema; // i/o\n\n this._delivery = {\n sendSession: noop,\n sendEvent: noop\n };\n this._logger = {\n debug: noop,\n info: noop,\n warn: noop,\n error: noop\n }; // plugins\n\n this._plugins = {}; // state\n\n this._breadcrumbs = [];\n this._session = null;\n this._metadata = {};\n this._context = undefined;\n this._user = {}; // callbacks:\n // e: onError\n // s: onSession\n // sp: onSessionPayload\n // b: onBreadcrumb\n // (note these names are minified by hand because object\n // properties are not safe to minify automatically)\n\n this._cbs = {\n e: [],\n s: [],\n sp: [],\n b: []\n }; // expose internal constructors\n\n this.Client = Client;\n this.Event = _$Event_6;\n this.Breadcrumb = _$Breadcrumb_3;\n this.Session = _$Session_35;\n this._config = this._configure(configuration, internalPlugins);\n _$map_16(internalPlugins.concat(this._config.plugins), function (pl) {\n if (pl) _this._loadPlugin(pl);\n }); // when notify() is called we need to know how many frames are from our own source\n // this inital value is 1 not 0 because we wrap notify() to ensure it is always\n // bound to have the client as its `this` value – see below.\n\n this._depth = 1;\n var self = this;\n var notify = this.notify;\n\n this.notify = function () {\n return notify.apply(self, arguments);\n };\n }\n\n var _proto = Client.prototype;\n\n _proto.addMetadata = function addMetadata(section, keyOrObj, maybeVal) {\n return _$metadataDelegate_22.add(this._metadata, section, keyOrObj, maybeVal);\n };\n\n _proto.getMetadata = function getMetadata(section, key) {\n return _$metadataDelegate_22.get(this._metadata, section, key);\n };\n\n _proto.clearMetadata = function clearMetadata(section, key) {\n return _$metadataDelegate_22.clear(this._metadata, section, key);\n };\n\n _proto.getContext = function getContext() {\n return this._context;\n };\n\n _proto.setContext = function setContext(c) {\n this._context = c;\n };\n\n _proto._configure = function _configure(opts, internalPlugins) {\n var schema = _$reduce_17(internalPlugins, function (schema, plugin) {\n if (plugin && plugin.configSchema) return _$assign_11({}, schema, plugin.configSchema);\n return schema;\n }, this._schema); // accumulate configuration and error messages\n\n var _reduce = _$reduce_17(_$keys_15(schema), function (accum, key) {\n var defaultValue = schema[key].defaultValue(opts[key]);\n\n if (opts[key] !== undefined) {\n var valid = schema[key].validate(opts[key]);\n\n if (!valid) {\n accum.errors[key] = schema[key].message;\n accum.config[key] = defaultValue;\n } else {\n if (schema[key].allowPartialObject) {\n accum.config[key] = _$assign_11(defaultValue, opts[key]);\n } else {\n accum.config[key] = opts[key];\n }\n }\n } else {\n accum.config[key] = defaultValue;\n }\n\n return accum;\n }, {\n errors: {},\n config: {}\n }),\n errors = _reduce.errors,\n config = _reduce.config;\n\n if (schema.apiKey) {\n // missing api key is the only fatal error\n if (!config.apiKey) throw new Error('No Bugsnag API Key set'); // warn about an apikey that is not of the expected format\n\n if (!/^[0-9a-f]{32}$/i.test(config.apiKey)) errors.apiKey = 'should be a string of 32 hexadecimal characters';\n } // update and elevate some options\n\n\n this._metadata = _$assign_11({}, config.metadata);\n this._user = _$assign_11({}, config.user);\n this._context = config.context;\n if (config.logger) this._logger = config.logger; // add callbacks\n\n if (config.onError) this._cbs.e = this._cbs.e.concat(config.onError);\n if (config.onBreadcrumb) this._cbs.b = this._cbs.b.concat(config.onBreadcrumb);\n if (config.onSession) this._cbs.s = this._cbs.s.concat(config.onSession); // finally warn about any invalid config where we fell back to the default\n\n if (_$keys_15(errors).length) {\n this._logger.warn(generateConfigErrorMessage(errors, opts));\n }\n\n return config;\n };\n\n _proto.getUser = function getUser() {\n return this._user;\n };\n\n _proto.setUser = function setUser(id, email, name) {\n this._user = {\n id: id,\n email: email,\n name: name\n };\n };\n\n _proto._loadPlugin = function _loadPlugin(plugin) {\n var result = plugin.load(this); // JS objects are not the safest way to store arbitrarily keyed values,\n // so bookend the key with some characters that prevent tampering with\n // stuff like __proto__ etc. (only store the result if the plugin had a\n // name)\n\n if (plugin.name) this._plugins[\"~\" + plugin.name + \"~\"] = result;\n return this;\n };\n\n _proto.getPlugin = function getPlugin(name) {\n return this._plugins[\"~\" + name + \"~\"];\n };\n\n _proto._setDelivery = function _setDelivery(d) {\n this._delivery = d(this);\n };\n\n _proto.startSession = function startSession() {\n var session = new _$Session_35();\n session.app.releaseStage = this._config.releaseStage;\n session.app.version = this._config.appVersion;\n session.app.type = this._config.appType;\n session._user = _$assign_11({}, this._user); // run onSession callbacks\n\n var ignore = _$syncCallbackRunner_23(this._cbs.s, session, 'onSession', this._logger);\n\n if (ignore) {\n this._logger.debug('Session not started due to onSession callback');\n\n return this;\n }\n\n return this._sessionDelegate.startSession(this, session);\n };\n\n _proto.addOnError = function addOnError(fn, front) {\n if (front === void 0) {\n front = false;\n }\n\n this._cbs.e[front ? 'unshift' : 'push'](fn);\n };\n\n _proto.removeOnError = function removeOnError(fn) {\n this._cbs.e = _$filter_12(this._cbs.e, function (f) {\n return f !== fn;\n });\n };\n\n _proto._addOnSessionPayload = function _addOnSessionPayload(fn) {\n this._cbs.sp.push(fn);\n };\n\n _proto.addOnSession = function addOnSession(fn) {\n this._cbs.s.push(fn);\n };\n\n _proto.removeOnSession = function removeOnSession(fn) {\n this._cbs.s = _$filter_12(this._cbs.s, function (f) {\n return f !== fn;\n });\n };\n\n _proto.addOnBreadcrumb = function addOnBreadcrumb(fn, front) {\n if (front === void 0) {\n front = false;\n }\n\n this._cbs.b[front ? 'unshift' : 'push'](fn);\n };\n\n _proto.removeOnBreadcrumb = function removeOnBreadcrumb(fn) {\n this._cbs.b = _$filter_12(this._cbs.b, function (f) {\n return f !== fn;\n });\n };\n\n _proto.pauseSession = function pauseSession() {\n return this._sessionDelegate.pauseSession(this);\n };\n\n _proto.resumeSession = function resumeSession() {\n return this._sessionDelegate.resumeSession(this);\n };\n\n _proto.leaveBreadcrumb = function leaveBreadcrumb(message, metadata, type) {\n // coerce bad values so that the defaults get set\n message = typeof message === 'string' ? message : '';\n type = typeof type === 'string' && _$includes_13(_$breadcrumbTypes_8, type) ? type : 'manual';\n metadata = typeof metadata === 'object' && metadata !== null ? metadata : {}; // if no message, discard\n\n if (!message) return;\n var crumb = new _$Breadcrumb_3(message, metadata, type); // run onBreadcrumb callbacks\n\n var ignore = _$syncCallbackRunner_23(this._cbs.b, crumb, 'onBreadcrumb', this._logger);\n\n if (ignore) {\n this._logger.debug('Breadcrumb not attached due to onBreadcrumb callback');\n\n return;\n } // push the valid crumb onto the queue and maintain the length\n\n\n this._breadcrumbs.push(crumb);\n\n if (this._breadcrumbs.length > this._config.maxBreadcrumbs) {\n this._breadcrumbs = this._breadcrumbs.slice(this._breadcrumbs.length - this._config.maxBreadcrumbs);\n }\n };\n\n _proto.notify = function notify(maybeError, onError, cb) {\n if (cb === void 0) {\n cb = noop;\n }\n\n var event = _$Event_6.create(maybeError, true, undefined, 'notify()', this._depth + 1, this._logger);\n\n this._notify(event, onError, cb);\n };\n\n _proto._notify = function _notify(event, onError, cb) {\n var _this2 = this;\n\n if (cb === void 0) {\n cb = noop;\n }\n\n event.app = _$assign_11({}, event.app, {\n releaseStage: this._config.releaseStage,\n version: this._config.appVersion,\n type: this._config.appType\n });\n event.context = event.context || this._context;\n event._metadata = _$assign_11({}, event._metadata, this._metadata);\n event._user = _$assign_11({}, event._user, this._user);\n event.breadcrumbs = this._breadcrumbs.slice();\n\n if (this._session) {\n this._session._track(event);\n\n event._session = this._session;\n } // exit early if events should not be sent on the current releaseStage\n\n\n if (this._config.enabledReleaseStages !== null && !_$includes_13(this._config.enabledReleaseStages, this._config.releaseStage)) {\n this._logger.warn('Event not sent due to releaseStage/enabledReleaseStages configuration');\n\n return cb(null, event);\n }\n\n var originalSeverity = event.severity;\n\n var onCallbackError = function (err) {\n // errors in callbacks are tolerated but we want to log them out\n _this2._logger.error('Error occurred in onError callback, continuing anyway…');\n\n _this2._logger.error(err);\n };\n\n var callbacks = [].concat(this._cbs.e).concat(onError);\n _$callbackRunner_9(callbacks, event, onCallbackError, function (err, shouldSend) {\n if (err) onCallbackError(err);\n\n if (!shouldSend) {\n _this2._logger.debug('Event not sent due to onError callback');\n\n return cb(null, event);\n }\n\n if (_$includes_13(_this2._config.enabledBreadcrumbTypes, 'error')) {\n // only leave a crumb for the error if actually got sent\n Client.prototype.leaveBreadcrumb.call(_this2, event.errors[0].errorClass, {\n errorClass: event.errors[0].errorClass,\n errorMessage: event.errors[0].errorMessage,\n severity: event.severity\n }, 'error');\n }\n\n if (originalSeverity !== event.severity) {\n event._handledState.severityReason = {\n type: 'userCallbackSetSeverity'\n };\n }\n\n _this2._delivery.sendEvent({\n apiKey: event.apiKey || _this2._config.apiKey,\n notifier: _this2._notifier,\n events: [event]\n }, function (err) {\n return cb(err, event);\n });\n });\n };\n\n return Client;\n}();\n\nvar generateConfigErrorMessage = function (errors, rawInput) {\n var er = new Error(\"Invalid configuration\\n\" + _$map_16(_$keys_15(errors), function (key) {\n return \" - \" + key + \" \" + errors[key] + \", got \" + stringify(rawInput[key]);\n }).join('\\n\\n'));\n return er;\n};\n\nvar stringify = function (val) {\n switch (typeof val) {\n case 'string':\n case 'number':\n case 'object':\n return JSON.stringify(val);\n\n default:\n return String(val);\n }\n};\n\nvar _$Client_4 = Client;\n\nvar _$safeJsonStringify_30 = function (data, replacer, space, opts) {\n var redactedKeys = opts && opts.redactedKeys ? opts.redactedKeys : [];\n var redactedPaths = opts && opts.redactedPaths ? opts.redactedPaths : [];\n return JSON.stringify(prepareObjForSerialization(data, redactedKeys, redactedPaths), replacer, space);\n};\n\nvar MAX_DEPTH = 20;\nvar MAX_EDGES = 25000;\nvar MIN_PRESERVED_DEPTH = 8;\nvar REPLACEMENT_NODE = '...';\n\nfunction __isError_30(o) {\n return o instanceof Error || /^\\[object (Error|(Dom)?Exception)\\]$/.test(Object.prototype.toString.call(o));\n}\n\nfunction throwsMessage(err) {\n return '[Throws: ' + (err ? err.message : '?') + ']';\n}\n\nfunction find(haystack, needle) {\n for (var i = 0, len = haystack.length; i < len; i++) {\n if (haystack[i] === needle) return true;\n }\n\n return false;\n} // returns true if the string `path` starts with any of the provided `paths`\n\n\nfunction isDescendent(paths, path) {\n for (var i = 0, len = paths.length; i < len; i++) {\n if (path.indexOf(paths[i]) === 0) return true;\n }\n\n return false;\n}\n\nfunction shouldRedact(patterns, key) {\n for (var i = 0, len = patterns.length; i < len; i++) {\n if (typeof patterns[i] === 'string' && patterns[i].toLowerCase() === key.toLowerCase()) return true;\n if (patterns[i] && typeof patterns[i].test === 'function' && patterns[i].test(key)) return true;\n }\n\n return false;\n}\n\nfunction __isArray_30(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n}\n\nfunction safelyGetProp(obj, prop) {\n try {\n return obj[prop];\n } catch (err) {\n return throwsMessage(err);\n }\n}\n\nfunction prepareObjForSerialization(obj, redactedKeys, redactedPaths) {\n var seen = []; // store references to objects we have seen before\n\n var edges = 0;\n\n function visit(obj, path) {\n function edgesExceeded() {\n return path.length > MIN_PRESERVED_DEPTH && edges > MAX_EDGES;\n }\n\n edges++;\n if (path.length > MAX_DEPTH) return REPLACEMENT_NODE;\n if (edgesExceeded()) return REPLACEMENT_NODE;\n if (obj === null || typeof obj !== 'object') return obj;\n if (find(seen, obj)) return '[Circular]';\n seen.push(obj);\n\n if (typeof obj.toJSON === 'function') {\n try {\n // we're not going to count this as an edge because it\n // replaces the value of the currently visited object\n edges--;\n var fResult = visit(obj.toJSON(), path);\n seen.pop();\n return fResult;\n } catch (err) {\n return throwsMessage(err);\n }\n }\n\n var er = __isError_30(obj);\n\n if (er) {\n edges--;\n var eResult = visit({\n name: obj.name,\n message: obj.message\n }, path);\n seen.pop();\n return eResult;\n }\n\n if (__isArray_30(obj)) {\n var aResult = [];\n\n for (var i = 0, len = obj.length; i < len; i++) {\n if (edgesExceeded()) {\n aResult.push(REPLACEMENT_NODE);\n break;\n }\n\n aResult.push(visit(obj[i], path.concat('[]')));\n }\n\n seen.pop();\n return aResult;\n }\n\n var result = {};\n\n try {\n for (var prop in obj) {\n if (!Object.prototype.hasOwnProperty.call(obj, prop)) continue;\n\n if (isDescendent(redactedPaths, path.join('.')) && shouldRedact(redactedKeys, prop)) {\n result[prop] = '[REDACTED]';\n continue;\n }\n\n if (edgesExceeded()) {\n result[prop] = REPLACEMENT_NODE;\n break;\n }\n\n result[prop] = visit(safelyGetProp(obj, prop), path.concat(prop));\n }\n } catch (e) {}\n\n seen.pop();\n return result;\n }\n\n return visit(obj, []);\n}\n\nvar _$jsonPayload_21 = {};\n/* removed: var _$safeJsonStringify_30 = require('@bugsnag/safe-json-stringify'); */;\n\nvar EVENT_REDACTION_PATHS = ['events.[].metaData', 'events.[].breadcrumbs.[].metaData', 'events.[].request'];\n\n_$jsonPayload_21.event = function (event, redactedKeys) {\n var payload = _$safeJsonStringify_30(event, null, null, {\n redactedPaths: EVENT_REDACTION_PATHS,\n redactedKeys: redactedKeys\n });\n\n if (payload.length > 10e5) {\n event.events[0]._metadata = {\n notifier: \"WARNING!\\nSerialized payload was \" + payload.length / 10e5 + \"MB (limit = 1MB)\\nmetadata was removed\"\n };\n payload = _$safeJsonStringify_30(event, null, null, {\n redactedPaths: EVENT_REDACTION_PATHS,\n redactedKeys: redactedKeys\n });\n if (payload.length > 10e5) throw new Error('payload exceeded 1MB limit');\n }\n\n return payload;\n};\n\n_$jsonPayload_21.session = function (event, redactedKeys) {\n var payload = _$safeJsonStringify_30(event, null, null);\n if (payload.length > 10e5) throw new Error('payload exceeded 1MB limit');\n return payload;\n};\n\nvar _$delivery_36 = {};\n/* removed: var _$jsonPayload_21 = require('@bugsnag/core/lib/json-payload'); */;\n\n_$delivery_36 = function (client, win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n sendEvent: function (event, cb) {\n if (cb === void 0) {\n cb = function () {};\n }\n\n var url = getApiUrl(client._config, 'notify', '4', win);\n var req = new win.XDomainRequest();\n\n req.onload = function () {\n cb(null);\n };\n\n req.open('POST', url);\n setTimeout(function () {\n try {\n req.send(_$jsonPayload_21.event(event, client._config.redactedKeys));\n } catch (e) {\n client._logger.error(e);\n\n cb(e);\n }\n }, 0);\n },\n sendSession: function (session, cb) {\n if (cb === void 0) {\n cb = function () {};\n }\n\n var url = getApiUrl(client._config, 'sessions', '1', win);\n var req = new win.XDomainRequest();\n\n req.onload = function () {\n cb(null);\n };\n\n req.open('POST', url);\n setTimeout(function () {\n try {\n req.send(_$jsonPayload_21.session(session, client._config.redactedKeys));\n } catch (e) {\n client._logger.error(e);\n\n cb(e);\n }\n }, 0);\n }\n };\n};\n\nvar getApiUrl = function (config, endpoint, version, win) {\n // IE8 doesn't support Date.prototype.toISOstring(), but it does convert a date\n // to an ISO string when you use JSON stringify. Simply parsing the result of\n // JSON.stringify is smaller than using a toISOstring() polyfill.\n var isoDate = JSON.parse(JSON.stringify(new Date()));\n var url = matchPageProtocol(config.endpoints[endpoint], win.location.protocol);\n return url + \"?apiKey=\" + encodeURIComponent(config.apiKey) + \"&payloadVersion=\" + version + \"&sentAt=\" + encodeURIComponent(isoDate);\n};\n\nvar matchPageProtocol = _$delivery_36._matchPageProtocol = function (endpoint, pageProtocol) {\n return pageProtocol === 'http:' ? endpoint.replace(/^https:/, 'http:') : endpoint;\n};\n\n/* removed: var _$jsonPayload_21 = require('@bugsnag/core/lib/json-payload'); */;\n\nvar _$delivery_37 = function (client, win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n sendEvent: function (event, cb) {\n if (cb === void 0) {\n cb = function () {};\n }\n\n try {\n var url = client._config.endpoints.notify;\n var req = new win.XMLHttpRequest();\n\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) cb(null);\n };\n\n req.open('POST', url);\n req.setRequestHeader('Content-Type', 'application/json');\n req.setRequestHeader('Bugsnag-Api-Key', event.apiKey || client._config.apiKey);\n req.setRequestHeader('Bugsnag-Payload-Version', '4');\n req.setRequestHeader('Bugsnag-Sent-At', new Date().toISOString());\n req.send(_$jsonPayload_21.event(event, client._config.redactedKeys));\n } catch (e) {\n client._logger.error(e);\n }\n },\n sendSession: function (session, cb) {\n if (cb === void 0) {\n cb = function () {};\n }\n\n try {\n var url = client._config.endpoints.sessions;\n var req = new win.XMLHttpRequest();\n\n req.onreadystatechange = function () {\n if (req.readyState === win.XMLHttpRequest.DONE) cb(null);\n };\n\n req.open('POST', url);\n req.setRequestHeader('Content-Type', 'application/json');\n req.setRequestHeader('Bugsnag-Api-Key', client._config.apiKey);\n req.setRequestHeader('Bugsnag-Payload-Version', '1');\n req.setRequestHeader('Bugsnag-Sent-At', new Date().toISOString());\n req.send(_$jsonPayload_21.session(session, client._config.redactedKeys));\n } catch (e) {\n client._logger.error(e);\n }\n }\n };\n};\n\nvar appStart = new Date();\nvar _$app_38 = {\n load: function (client) {\n client.addOnError(function (event) {\n var now = new Date();\n event.app.duration = now - appStart;\n }, true);\n }\n};\n\n/*\n * Sets the default context to be the current URL\n */\nvar _$context_39 = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n load: function (client) {\n client.addOnError(function (event) {\n if (event.context !== undefined) return;\n event.context = win.location.pathname;\n }, true);\n }\n };\n};\n\n/* removed: var _$assign_11 = require('@bugsnag/core/lib/es-utils/assign'); */;\n/*\n * Automatically detects browser device details\n */\n\n\nvar _$device_40 = function (nav, screen) {\n if (nav === void 0) {\n nav = navigator;\n }\n\n if (screen === void 0) {\n screen = window.screen;\n }\n\n return {\n load: function (client) {\n var device = {\n locale: nav.browserLanguage || nav.systemLanguage || nav.userLanguage || nav.language,\n userAgent: nav.userAgent\n };\n\n if (screen && screen.orientation && screen.orientation.type) {\n device.orientation = screen.orientation.type;\n } else {\n device.orientation = document.documentElement.clientWidth > document.documentElement.clientHeight ? 'landscape' : 'portrait';\n }\n\n client.addOnSession(function (session) {\n session.device = _$assign_11({}, session.device, device);\n }); // add time just as the event is sent\n\n client.addOnError(function (event) {\n event.device = _$assign_11({}, event.device, device, {\n time: new Date()\n });\n }, true);\n }\n };\n};\n\n/* removed: var _$assign_11 = require('@bugsnag/core/lib/es-utils/assign'); */;\n/*\n * Sets the event request: { url } to be the current href\n */\n\n\nvar _$request_41 = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n load: function (client) {\n client.addOnError(function (event) {\n if (event.request && event.request.url) return;\n event.request = _$assign_11({}, event.request, {\n url: win.location.href\n });\n }, true);\n }\n };\n};\n\n/* removed: var _$includes_13 = require('@bugsnag/core/lib/es-utils/includes'); */;\n\nvar _$session_42 = {\n load: function (client) {\n client._sessionDelegate = sessionDelegate;\n }\n};\nvar sessionDelegate = {\n startSession: function (client, session) {\n var sessionClient = client;\n sessionClient._session = session;\n sessionClient._pausedSession = null; // exit early if the current releaseStage is not enabled\n\n if (sessionClient._config.enabledReleaseStages !== null && !_$includes_13(sessionClient._config.enabledReleaseStages, sessionClient._config.releaseStage)) {\n sessionClient._logger.warn('Session not sent due to releaseStage/enabledReleaseStages configuration');\n\n return sessionClient;\n }\n\n sessionClient._delivery.sendSession({\n notifier: sessionClient._notifier,\n device: session.device,\n app: session.app,\n sessions: [{\n id: session.id,\n startedAt: session.startedAt,\n user: session._user\n }]\n });\n\n return sessionClient;\n },\n resumeSession: function (client) {\n if (client._pausedSession) {\n client._session = client._pausedSession;\n client._pausedSession = null;\n return client;\n } else {\n return client.startSession();\n }\n },\n pauseSession: function (client) {\n client._pausedSession = client._session;\n client._session = null;\n }\n};\n\n/* removed: var _$assign_11 = require('@bugsnag/core/lib/es-utils/assign'); */;\n/*\n * Prevent collection of user IPs\n */\n\n\nvar _$clientIp_43 = {\n load: function (client) {\n if (client._config.collectUserIp) return;\n client.addOnError(function (event) {\n // If user.id is explicitly undefined, it will be missing from the payload. It needs\n // removing so that the following line replaces it\n if (event._user && typeof event._user.id === 'undefined') delete event._user.id;\n event._user = _$assign_11({\n id: '[REDACTED]'\n }, event._user);\n event.request = _$assign_11({\n clientIp: '[REDACTED]'\n }, event.request);\n });\n },\n configSchema: {\n collectUserIp: {\n defaultValue: function () {\n return true;\n },\n message: 'should be true|false',\n validate: function (value) {\n return value === true || value === false;\n }\n }\n }\n};\n\nvar _$consoleBreadcrumbs_44 = {};\n/* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */;\n\n/* removed: var _$reduce_17 = require('@bugsnag/core/lib/es-utils/reduce'); */;\n\n/* removed: var _$filter_12 = require('@bugsnag/core/lib/es-utils/filter'); */;\n\n/* removed: var _$includes_13 = require('@bugsnag/core/lib/es-utils/includes'); */;\n/*\n * Leaves breadcrumbs when console log methods are called\n */\n\n\n_$consoleBreadcrumbs_44.load = function (client) {\n var isDev = /^dev(elopment)?$/.test(client._config.releaseStage);\n if (!client._config.enabledBreadcrumbTypes || !_$includes_13(client._config.enabledBreadcrumbTypes, 'log') || isDev) return;\n _$map_16(CONSOLE_LOG_METHODS, function (method) {\n var original = console[method];\n\n console[method] = function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n client.leaveBreadcrumb('Console output', _$reduce_17(args, function (accum, arg, i) {\n // do the best/simplest stringification of each argument\n var stringified = '[Unknown value]'; // this may fail if the input is:\n // - an object whose [[Prototype]] is null (no toString)\n // - an object with a broken toString or @@toPrimitive implementation\n\n try {\n stringified = String(arg);\n } catch (e) {} // if it stringifies to [object Object] attempt to JSON stringify\n\n\n if (stringified === '[object Object]') {\n // catch stringify errors and fallback to [object Object]\n try {\n stringified = JSON.stringify(arg);\n } catch (e) {}\n }\n\n accum[\"[\" + i + \"]\"] = stringified;\n return accum;\n }, {\n severity: method.indexOf('group') === 0 ? 'log' : method\n }), 'log');\n original.apply(console, args);\n };\n\n console[method]._restore = function () {\n console[method] = original;\n };\n });\n};\n\nif (\"production\" !== 'production') {\n _$consoleBreadcrumbs_44.destroy = function () {\n return CONSOLE_LOG_METHODS.forEach(function (method) {\n if (typeof console[method]._restore === 'function') console[method]._restore();\n });\n };\n}\n\nvar CONSOLE_LOG_METHODS = _$filter_12(['log', 'debug', 'info', 'warn', 'error'], function (method) {\n return typeof console !== 'undefined' && typeof console[method] === 'function';\n});\n\n/* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */;\n\n/* removed: var _$reduce_17 = require('@bugsnag/core/lib/es-utils/reduce'); */;\n\n/* removed: var _$filter_12 = require('@bugsnag/core/lib/es-utils/filter'); */;\n\nvar MAX_LINE_LENGTH = 200;\nvar MAX_SCRIPT_LENGTH = 500000;\n\nvar _$inlineScriptContent_45 = function (doc, win) {\n if (doc === void 0) {\n doc = document;\n }\n\n if (win === void 0) {\n win = window;\n }\n\n return {\n load: function (client) {\n if (!client._config.trackInlineScripts) return;\n var originalLocation = win.location.href;\n var html = '';\n var DOMContentLoaded = false;\n\n var getHtml = function () {\n return doc.documentElement.outerHTML;\n }; // get whatever HTML exists at this point in time\n\n\n html = getHtml();\n var prev = doc.onreadystatechange; // then update it when the DOM content has loaded\n\n doc.onreadystatechange = function () {\n // IE8 compatible alternative to document#DOMContentLoaded\n if (doc.readyState === 'interactive') {\n html = getHtml();\n DOMContentLoaded = true;\n }\n\n try {\n prev.apply(this, arguments);\n } catch (e) {}\n };\n\n var _lastScript = null;\n\n var updateLastScript = function (script) {\n _lastScript = script;\n };\n\n var getCurrentScript = function () {\n var script = doc.currentScript || _lastScript;\n\n if (!script && !DOMContentLoaded) {\n var scripts = doc.scripts || doc.getElementsByTagName('script');\n script = scripts[scripts.length - 1];\n }\n\n return script;\n };\n\n var addSurroundingCode = function (lineNumber) {\n // get whatever html has rendered at this point\n if (!DOMContentLoaded || !html) html = getHtml(); // simulate the raw html\n\n var htmlLines = [''].concat(html.split('\\n'));\n var zeroBasedLine = lineNumber - 1;\n var start = Math.max(zeroBasedLine - 3, 0);\n var end = Math.min(zeroBasedLine + 3, htmlLines.length);\n return _$reduce_17(htmlLines.slice(start, end), function (accum, line, i) {\n accum[start + 1 + i] = line.length <= MAX_LINE_LENGTH ? line : line.substr(0, MAX_LINE_LENGTH);\n return accum;\n }, {});\n };\n\n client.addOnError(function (event) {\n // remove any of our own frames that may be part the stack this\n // happens before the inline script check as it happens for all errors\n event.errors[0].stacktrace = _$filter_12(event.errors[0].stacktrace, function (f) {\n return !/__trace__$/.test(f.method);\n });\n var frame = event.errors[0].stacktrace[0]; // if frame.file exists and is not the original location of the page, this can't be an inline script\n\n if (frame && frame.file && frame.file.replace(/#.*$/, '') !== originalLocation.replace(/#.*$/, '')) return; // grab the last script known to have run\n\n var currentScript = getCurrentScript();\n\n if (currentScript) {\n var content = currentScript.innerHTML;\n event.addMetadata('script', 'content', content.length <= MAX_SCRIPT_LENGTH ? content : content.substr(0, MAX_SCRIPT_LENGTH));\n } // only attempt to grab some surrounding code if we have a line number\n\n\n if (!frame || !frame.lineNumber) return;\n frame.code = addSurroundingCode(frame.lineNumber);\n }, true); // Proxy all the timer functions whose callback is their 0th argument.\n // Keep a reference to the original setTimeout because we need it later\n\n var _map = _$map_16(['setTimeout', 'setInterval', 'setImmediate', 'requestAnimationFrame'], function (fn) {\n return __proxy(win, fn, function (original) {\n return __traceOriginalScript(original, function (args) {\n return {\n get: function () {\n return args[0];\n },\n replace: function (fn) {\n args[0] = fn;\n }\n };\n });\n });\n }),\n _setTimeout = _map[0]; // Proxy all the host objects whose prototypes have an addEventListener function\n\n\n _$map_16(['EventTarget', 'Window', 'Node', 'ApplicationCache', 'AudioTrackList', 'ChannelMergerNode', 'CryptoOperation', 'EventSource', 'FileReader', 'HTMLUnknownElement', 'IDBDatabase', 'IDBRequest', 'IDBTransaction', 'KeyOperation', 'MediaController', 'MessagePort', 'ModalWindow', 'Notification', 'SVGElementInstance', 'Screen', 'TextTrack', 'TextTrackCue', 'TextTrackList', 'WebSocket', 'WebSocketWorker', 'Worker', 'XMLHttpRequest', 'XMLHttpRequestEventTarget', 'XMLHttpRequestUpload'], function (o) {\n if (!win[o] || !win[o].prototype || !Object.prototype.hasOwnProperty.call(win[o].prototype, 'addEventListener')) return;\n\n __proxy(win[o].prototype, 'addEventListener', function (original) {\n return __traceOriginalScript(original, eventTargetCallbackAccessor);\n });\n\n __proxy(win[o].prototype, 'removeEventListener', function (original) {\n return __traceOriginalScript(original, eventTargetCallbackAccessor, true);\n });\n });\n\n function __traceOriginalScript(fn, callbackAccessor, alsoCallOriginal) {\n if (alsoCallOriginal === void 0) {\n alsoCallOriginal = false;\n }\n\n return function () {\n // this is required for removeEventListener to remove anything added with\n // addEventListener before the functions started being wrapped by Bugsnag\n var args = [].slice.call(arguments);\n\n try {\n var cba = callbackAccessor(args);\n var cb = cba.get();\n if (alsoCallOriginal) fn.apply(this, args);\n if (typeof cb !== 'function') return fn.apply(this, args);\n\n if (cb.__trace__) {\n cba.replace(cb.__trace__);\n } else {\n var script = getCurrentScript(); // this function mustn't be annonymous due to a bug in the stack\n // generation logic, meaning it gets tripped up\n // see: https://github.com/stacktracejs/stack-generator/issues/6\n\n cb.__trace__ = function __trace__() {\n // set the script that called this function\n updateLastScript(script); // immediately unset the currentScript synchronously below, however\n // if this cb throws an error the line after will not get run so schedule\n // an almost-immediate aysnc update too\n\n _setTimeout(function () {\n updateLastScript(null);\n }, 0);\n\n var ret = cb.apply(this, arguments);\n updateLastScript(null);\n return ret;\n };\n\n cb.__trace__.__trace__ = cb.__trace__;\n cba.replace(cb.__trace__);\n }\n } catch (e) {} // swallow these errors on Selenium:\n // Permission denied to access property '__trace__'\n // WebDriverException: Message: Permission denied to access property \"handleEvent\"\n // IE8 doesn't let you call .apply() on setTimeout/setInterval\n\n\n if (fn.apply) return fn.apply(this, args);\n\n switch (args.length) {\n case 1:\n return fn(args[0]);\n\n case 2:\n return fn(args[0], args[1]);\n\n default:\n return fn();\n }\n };\n }\n },\n configSchema: {\n trackInlineScripts: {\n validate: function (value) {\n return value === true || value === false;\n },\n defaultValue: function () {\n return true;\n },\n message: 'should be true|false'\n }\n }\n };\n};\n\nfunction __proxy(host, name, replacer) {\n var original = host[name];\n if (!original) return original;\n var replacement = replacer(original);\n host[name] = replacement;\n return original;\n}\n\nfunction eventTargetCallbackAccessor(args) {\n var isEventHandlerObj = !!args[1] && typeof args[1].handleEvent === 'function';\n return {\n get: function () {\n return isEventHandlerObj ? args[1].handleEvent : args[1];\n },\n replace: function (fn) {\n if (isEventHandlerObj) {\n args[1].handleEvent = fn;\n } else {\n args[1] = fn;\n }\n }\n };\n}\n\n/* removed: var _$includes_13 = require('@bugsnag/core/lib/es-utils/includes'); */;\n/*\n * Leaves breadcrumbs when the user interacts with the DOM\n */\n\n\nvar _$interactionBreadcrumbs_46 = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n load: function (client) {\n if (!('addEventListener' in win)) return;\n if (!client._config.enabledBreadcrumbTypes || !_$includes_13(client._config.enabledBreadcrumbTypes, 'user')) return;\n win.addEventListener('click', function (event) {\n var targetText, targetSelector;\n\n try {\n targetText = getNodeText(event.target);\n targetSelector = getNodeSelector(event.target, win);\n } catch (e) {\n targetText = '[hidden]';\n targetSelector = '[hidden]';\n\n client._logger.error('Cross domain error when tracking click event. See docs: https://tinyurl.com/yy3rn63z');\n }\n\n client.leaveBreadcrumb('UI click', {\n targetText: targetText,\n targetSelector: targetSelector\n }, 'user');\n }, true);\n }\n };\n}; // extract text content from a element\n\n\nvar getNodeText = function (el) {\n var text = el.textContent || el.innerText || '';\n if (!text && (el.type === 'submit' || el.type === 'button')) text = el.value;\n text = text.replace(/^\\s+|\\s+$/g, ''); // trim whitespace\n\n return truncate(text, 140);\n}; // Create a label from tagname, id and css class of the element\n\n\nfunction getNodeSelector(el, win) {\n var parts = [el.tagName];\n if (el.id) parts.push('#' + el.id);\n if (el.className && el.className.length) parts.push(\".\" + el.className.split(' ').join('.')); // Can't get much more advanced with the current browser\n\n if (!win.document.querySelectorAll || !Array.prototype.indexOf) return parts.join('');\n\n try {\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join('');\n } catch (e) {\n // Sometimes the query selector can be invalid just return it as-is\n return parts.join('');\n } // try to get a more specific selector if this one matches more than one element\n\n\n if (el.parentNode.childNodes.length > 1) {\n var index = Array.prototype.indexOf.call(el.parentNode.childNodes, el) + 1;\n parts.push(\":nth-child(\" + index + \")\");\n }\n\n if (win.document.querySelectorAll(parts.join('')).length === 1) return parts.join(''); // try prepending the parent node selector\n\n if (el.parentNode) return getNodeSelector(el.parentNode, win) + \" > \" + parts.join('');\n return parts.join('');\n}\n\nfunction truncate(value, length) {\n var ommision = '(...)';\n if (value && value.length <= length) return value;\n return value.slice(0, length - ommision.length) + ommision;\n}\n\nvar _$navigationBreadcrumbs_47 = {};\n/* removed: var _$includes_13 = require('@bugsnag/core/lib/es-utils/includes'); */;\n/*\n* Leaves breadcrumbs when navigation methods are called or events are emitted\n*/\n\n\n_$navigationBreadcrumbs_47 = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n var plugin = {\n load: function (client) {\n if (!('addEventListener' in win)) return;\n if (!client._config.enabledBreadcrumbTypes || !_$includes_13(client._config.enabledBreadcrumbTypes, 'navigation')) return; // returns a function that will drop a breadcrumb with a given name\n\n var drop = function (name) {\n return function () {\n return client.leaveBreadcrumb(name, {}, 'navigation');\n };\n }; // simple drops – just names, no meta\n\n\n win.addEventListener('pagehide', drop('Page hidden'), true);\n win.addEventListener('pageshow', drop('Page shown'), true);\n win.addEventListener('load', drop('Page loaded'), true);\n win.document.addEventListener('DOMContentLoaded', drop('DOMContentLoaded'), true); // some browsers like to emit popstate when the page loads, so only add the popstate listener after that\n\n win.addEventListener('load', function () {\n return win.addEventListener('popstate', drop('Navigated back'), true);\n }); // hashchange has some metadata that we care about\n\n win.addEventListener('hashchange', function (event) {\n var metadata = event.oldURL ? {\n from: relativeLocation(event.oldURL, win),\n to: relativeLocation(event.newURL, win),\n state: getCurrentState(win)\n } : {\n to: relativeLocation(win.location.href, win)\n };\n client.leaveBreadcrumb('Hash changed', metadata, 'navigation');\n }, true); // the only way to know about replaceState/pushState is to wrap them… >_<\n\n if (win.history.replaceState) wrapHistoryFn(client, win.history, 'replaceState', win);\n if (win.history.pushState) wrapHistoryFn(client, win.history, 'pushState', win);\n client.leaveBreadcrumb('Bugsnag loaded', {}, 'navigation');\n }\n };\n\n if (\"production\" !== 'production') {\n plugin.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n win.history.replaceState._restore();\n\n win.history.pushState._restore();\n };\n }\n\n return plugin;\n};\n\nif (\"production\" !== 'production') {\n _$navigationBreadcrumbs_47.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n win.history.replaceState._restore();\n\n win.history.pushState._restore();\n };\n} // takes a full url like http://foo.com:1234/pages/01.html?yes=no#section-2 and returns\n// just the path and hash parts, e.g. /pages/01.html?yes=no#section-2\n\n\nvar relativeLocation = function (url, win) {\n var a = win.document.createElement('A');\n a.href = url;\n return \"\" + a.pathname + a.search + a.hash;\n};\n\nvar stateChangeToMetadata = function (win, state, title, url) {\n var currentPath = relativeLocation(win.location.href, win);\n return {\n title: title,\n state: state,\n prevState: getCurrentState(win),\n to: url || currentPath,\n from: currentPath\n };\n};\n\nvar wrapHistoryFn = function (client, target, fn, win) {\n var orig = target[fn];\n\n target[fn] = function (state, title, url) {\n client.leaveBreadcrumb(\"History \" + fn, stateChangeToMetadata(win, state, title, url), 'navigation'); // if throttle plugin is in use, reset the event sent count\n\n if (typeof client.resetEventCount === 'function') client.resetEventCount(); // if the client is operating in auto session-mode, a new route should trigger a new session\n\n if (client._config.autoTrackSessions) client.startSession(); // Internet Explorer will convert `undefined` to a string when passed, causing an unintended redirect\n // to '/undefined'. therefore we only pass the url if it's not undefined.\n\n orig.apply(target, [state, title].concat(url !== undefined ? url : []));\n };\n\n if (\"production\" !== 'production') {\n target[fn]._restore = function () {\n target[fn] = orig;\n };\n }\n};\n\nvar getCurrentState = function (win) {\n try {\n return win.history.state;\n } catch (e) {}\n};\n\nvar BREADCRUMB_TYPE = 'request'; // keys to safely store metadata on the request object\n\nvar REQUEST_SETUP_KEY = 'BS~~S';\nvar REQUEST_URL_KEY = 'BS~~U';\nvar REQUEST_METHOD_KEY = 'BS~~M';\n\n/* removed: var _$includes_13 = require('@bugsnag/core/lib/es-utils/includes'); */;\n/*\n * Leaves breadcrumbs when network requests occur\n */\n\n\nvar _$networkBreadcrumbs_48 = function (_ignoredUrls, win) {\n if (_ignoredUrls === void 0) {\n _ignoredUrls = [];\n }\n\n if (win === void 0) {\n win = window;\n }\n\n var restoreFunctions = [];\n var plugin = {\n load: function (client) {\n if (!client._config.enabledBreadcrumbTypes || !_$includes_13(client._config.enabledBreadcrumbTypes, 'request')) return;\n var ignoredUrls = [client._config.endpoints.notify, client._config.endpoints.sessions].concat(_ignoredUrls);\n monkeyPatchXMLHttpRequest();\n monkeyPatchFetch(); // XMLHttpRequest monkey patch\n\n function monkeyPatchXMLHttpRequest() {\n if (!('addEventListener' in win.XMLHttpRequest.prototype)) return;\n var nativeOpen = win.XMLHttpRequest.prototype.open; // override native open()\n\n win.XMLHttpRequest.prototype.open = function open(method, url) {\n // store url and HTTP method for later\n this[REQUEST_URL_KEY] = url;\n this[REQUEST_METHOD_KEY] = method; // if we have already setup listeners, it means open() was called twice, we need to remove\n // the listeners and recreate them\n\n if (this[REQUEST_SETUP_KEY]) {\n this.removeEventListener('load', handleXHRLoad);\n this.removeEventListener('error', handleXHRError);\n } // attach load event listener\n\n\n this.addEventListener('load', handleXHRLoad); // attach error event listener\n\n this.addEventListener('error', handleXHRError);\n this[REQUEST_SETUP_KEY] = true;\n nativeOpen.apply(this, arguments);\n };\n\n if (\"production\" !== 'production') {\n restoreFunctions.push(function () {\n win.XMLHttpRequest.prototype.open = nativeOpen;\n });\n }\n }\n\n function handleXHRLoad() {\n if (_$includes_13(ignoredUrls, this[REQUEST_URL_KEY])) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return;\n }\n\n var metadata = {\n status: this.status,\n request: this[REQUEST_METHOD_KEY] + \" \" + this[REQUEST_URL_KEY]\n };\n\n if (this.status >= 400) {\n // contacted server but got an error response\n client.leaveBreadcrumb('XMLHttpRequest failed', metadata, BREADCRUMB_TYPE);\n } else {\n client.leaveBreadcrumb('XMLHttpRequest succeeded', metadata, BREADCRUMB_TYPE);\n }\n }\n\n function handleXHRError() {\n if (_$includes_13(ignoredUrls, this[REQUEST_URL_KEY])) {\n // don't leave a network breadcrumb from bugsnag notify calls\n return;\n } // failed to contact server\n\n\n client.leaveBreadcrumb('XMLHttpRequest error', {\n request: this[REQUEST_METHOD_KEY] + \" \" + this[REQUEST_URL_KEY]\n }, BREADCRUMB_TYPE);\n } // window.fetch monkey patch\n\n\n function monkeyPatchFetch() {\n // only patch it if it exists and if it is not a polyfill (patching a polyfilled\n // fetch() results in duplicate breadcrumbs for the same request because the\n // implementation uses XMLHttpRequest which is also patched)\n if (!('fetch' in win) || win.fetch.polyfill) return;\n var oldFetch = win.fetch;\n\n win.fetch = function fetch() {\n var _arguments = arguments;\n var urlOrRequest = arguments[0];\n var options = arguments[1];\n var method;\n var url = null;\n\n if (urlOrRequest && typeof urlOrRequest === 'object') {\n url = urlOrRequest.url;\n\n if (options && 'method' in options) {\n method = options.method;\n } else if (urlOrRequest && 'method' in urlOrRequest) {\n method = urlOrRequest.method;\n }\n } else {\n url = urlOrRequest;\n\n if (options && 'method' in options) {\n method = options.method;\n }\n }\n\n if (method === undefined) {\n method = 'GET';\n }\n\n return new Promise(function (resolve, reject) {\n // pass through to native fetch\n oldFetch.apply(void 0, _arguments).then(function (response) {\n handleFetchSuccess(response, method, url);\n resolve(response);\n })[\"catch\"](function (error) {\n handleFetchError(method, url);\n reject(error);\n });\n });\n };\n\n if (\"production\" !== 'production') {\n restoreFunctions.push(function () {\n win.fetch = oldFetch;\n });\n }\n }\n\n var handleFetchSuccess = function (response, method, url) {\n var metadata = {\n status: response.status,\n request: method + \" \" + url\n };\n\n if (response.status >= 400) {\n // when the request comes back with a 4xx or 5xx status it does not reject the fetch promise,\n client.leaveBreadcrumb('fetch() failed', metadata, BREADCRUMB_TYPE);\n } else {\n client.leaveBreadcrumb('fetch() succeeded', metadata, BREADCRUMB_TYPE);\n }\n };\n\n var handleFetchError = function (method, url) {\n client.leaveBreadcrumb('fetch() error', {\n request: method + \" \" + url\n }, BREADCRUMB_TYPE);\n };\n }\n };\n\n if (\"production\" !== 'production') {\n plugin.destroy = function () {\n restoreFunctions.forEach(function (fn) {\n return fn();\n });\n restoreFunctions = [];\n };\n }\n\n return plugin;\n};\n\n/* removed: var _$intRange_24 = require('@bugsnag/core/lib/validators/int-range'); */;\n/*\n * Throttles and dedupes events\n */\n\n\nvar _$throttle_49 = {\n load: function (client) {\n // track sent events for each init of the plugin\n var n = 0; // add onError hook\n\n client.addOnError(function (event) {\n // have max events been sent already?\n if (n >= client._config.maxEvents) return false;\n n++;\n });\n\n client.resetEventCount = function () {\n n = 0;\n };\n },\n configSchema: {\n maxEvents: {\n defaultValue: function () {\n return 10;\n },\n message: 'should be a positive integer ≤100',\n validate: function (val) {\n return _$intRange_24(1, 100)(val);\n }\n }\n }\n};\n\nvar _$stripQueryString_50 = {};\n/*\n * Remove query strings (and fragments) from stacktraces\n */\n/* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */;\n\n/* removed: var _$reduce_17 = require('@bugsnag/core/lib/es-utils/reduce'); */;\n\n_$stripQueryString_50 = {\n load: function (client) {\n client.addOnError(function (event) {\n var allFrames = _$reduce_17(event.errors, function (accum, er) {\n return accum.concat(er.stacktrace);\n }, []);\n _$map_16(allFrames, function (frame) {\n frame.file = strip(frame.file);\n });\n });\n }\n};\n\nvar strip = _$stripQueryString_50._strip = function (str) {\n return typeof str === 'string' ? str.replace(/\\?.*$/, '').replace(/#.*$/, '') : str;\n};\n\n/*\n * Automatically notifies Bugsnag when window.onerror is called\n */\nvar _$onerror_51 = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n return {\n load: function (client) {\n if (!client._config.autoDetectErrors) return;\n if (!client._config.enabledErrorTypes.unhandledExceptions) return;\n\n function onerror(messageOrEvent, url, lineNo, charNo, error) {\n // Ignore errors with no info due to CORS settings\n if (lineNo === 0 && /Script error\\.?/.test(messageOrEvent)) {\n client._logger.warn('Ignoring cross-domain or eval script error. See docs: https://tinyurl.com/yy3rn63z');\n } else {\n // any error sent to window.onerror is unhandled and has severity=error\n var handledState = {\n severity: 'error',\n unhandled: true,\n severityReason: {\n type: 'unhandledException'\n }\n };\n var event; // window.onerror can be called in a number of ways. This big if-else is how we\n // figure out which arguments were supplied, and what kind of values it received.\n\n if (error) {\n // if the last parameter (error) was supplied, this is a modern browser's\n // way of saying \"this value was thrown and not caught\"\n event = client.Event.create(error, true, handledState, 'window onerror', 1);\n decorateStack(event.errors[0].stacktrace, url, lineNo, charNo);\n } else if ( // This complex case detects \"error\" events that are typically synthesised\n // by jquery's trigger method (although can be created in other ways). In\n // order to detect this:\n // - the first argument (message) must exist and be an object (most likely it's a jQuery event)\n // - the second argument (url) must either not exist or be something other than a string (if it\n // exists and is not a string, it'll be the extraParameters argument from jQuery's trigger()\n // function)\n // - the third, fourth and fifth arguments must not exist (lineNo, charNo and error)\n typeof messageOrEvent === 'object' && messageOrEvent !== null && (!url || typeof url !== 'string') && !lineNo && !charNo && !error) {\n // The jQuery event may have a \"type\" property, if so use it as part of the error message\n var name = messageOrEvent.type ? \"Event: \" + messageOrEvent.type : 'Error'; // attempt to find a message from one of the conventional properties, but\n // default to empty string (the event will fill it with a placeholder)\n\n var message = messageOrEvent.message || messageOrEvent.detail || '';\n event = client.Event.create({\n name: name,\n message: message\n }, true, handledState, 'window onerror', 1); // provide the original thing onerror received – not our error-like object we passed to _notify\n\n event.originalError = messageOrEvent; // include the raw input as metadata – it might contain more info than we extracted\n\n event.addMetadata('window onerror', {\n event: messageOrEvent,\n extraParameters: url\n });\n } else {\n // Lastly, if there was no \"error\" parameter this event was probably from an old\n // browser that doesn't support that. Instead we need to generate a stacktrace.\n event = client.Event.create(messageOrEvent, true, handledState, 'window onerror', 1);\n decorateStack(event.errors[0].stacktrace, url, lineNo, charNo);\n }\n\n client._notify(event);\n }\n\n if (typeof prevOnError === 'function') prevOnError.apply(this, arguments);\n }\n\n var prevOnError = win.onerror;\n win.onerror = onerror;\n }\n };\n}; // Sometimes the stacktrace has less information than was passed to window.onerror.\n// This function will augment the first stackframe with any useful info that was\n// received as arguments to the onerror callback.\n\n\nvar decorateStack = function (stack, url, lineNo, charNo) {\n if (!stack[0]) stack.push({});\n var culprit = stack[0];\n if (!culprit.file && typeof url === 'string') culprit.file = url;\n if (!culprit.lineNumber && isActualNumber(lineNo)) culprit.lineNumber = lineNo;\n\n if (!culprit.columnNumber) {\n if (isActualNumber(charNo)) {\n culprit.columnNumber = charNo;\n } else if (window.event && isActualNumber(window.event.errorCharacter)) {\n culprit.columnNumber = window.event.errorCharacter;\n }\n }\n};\n\nvar isActualNumber = function (n) {\n return typeof n === 'number' && String.call(n) !== 'NaN';\n};\n\n/* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */;\n\n/* removed: var _$iserror_19 = require('@bugsnag/core/lib/iserror'); */;\n\nvar _listener;\n/*\n * Automatically notifies Bugsnag when window.onunhandledrejection is called\n */\n\n\nvar _$unhandledRejection_52 = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n var plugin = {\n load: function (client) {\n if (!client._config.autoDetectErrors || !client._config.enabledErrorTypes.unhandledRejections) return;\n\n var listener = function (evt) {\n var error = evt.reason;\n var isBluebird = false; // accessing properties on evt.detail can throw errors (see #394)\n\n try {\n if (evt.detail && evt.detail.reason) {\n error = evt.detail.reason;\n isBluebird = true;\n }\n } catch (e) {}\n\n var event = client.Event.create(error, false, {\n severity: 'error',\n unhandled: true,\n severityReason: {\n type: 'unhandledPromiseRejection'\n }\n }, 'unhandledrejection handler', 1, client._logger);\n\n if (isBluebird) {\n _$map_16(event.errors[0].stacktrace, fixBluebirdStacktrace(error));\n }\n\n client._notify(event, function (event) {\n if (_$iserror_19(event.originalError) && !event.originalError.stack) {\n var _event$addMetadata;\n\n event.addMetadata('unhandledRejection handler', (_event$addMetadata = {}, _event$addMetadata[Object.prototype.toString.call(event.originalError)] = {\n name: event.originalError.name,\n message: event.originalError.message,\n code: event.originalError.code\n }, _event$addMetadata));\n }\n });\n };\n\n if ('addEventListener' in win) {\n win.addEventListener('unhandledrejection', listener);\n } else {\n win.onunhandledrejection = function (reason, promise) {\n listener({\n detail: {\n reason: reason,\n promise: promise\n }\n });\n };\n }\n\n _listener = listener;\n }\n };\n\n if (\"production\" !== 'production') {\n plugin.destroy = function (win) {\n if (win === void 0) {\n win = window;\n }\n\n if (_listener) {\n if ('addEventListener' in win) {\n win.removeEventListener('unhandledrejection', _listener);\n } else {\n win.onunhandledrejection = null;\n }\n }\n\n _listener = null;\n };\n }\n\n return plugin;\n}; // The stack parser on bluebird stacks in FF get a suprious first frame:\n//\n// Error: derp\n// b@http://localhost:5000/bluebird.html:22:24\n// a@http://localhost:5000/bluebird.html:18:9\n// @http://localhost:5000/bluebird.html:14:9\n//\n// results in\n// […]\n// 0: Object { file: \"Error: derp\", method: undefined, lineNumber: undefined, … }\n// 1: Object { file: \"http://localhost:5000/bluebird.html\", method: \"b\", lineNumber: 22, … }\n// 2: Object { file: \"http://localhost:5000/bluebird.html\", method: \"a\", lineNumber: 18, … }\n// 3: Object { file: \"http://localhost:5000/bluebird.html\", lineNumber: 14, columnNumber: 9, … }\n//\n// so the following reduce/accumulator function removes such frames\n//\n// Bluebird pads method names with spaces so trim that too…\n// https://github.com/petkaantonov/bluebird/blob/b7f21399816d02f979fe434585334ce901dcaf44/src/debuggability.js#L568-L571\n\n\nvar fixBluebirdStacktrace = function (error) {\n return function (frame) {\n if (frame.file === error.toString()) return;\n\n if (frame.method) {\n frame.method = frame.method.replace(/^\\s+/, '');\n }\n };\n};\n\nvar _$notifier_2 = {};\nvar name = 'Bugsnag JavaScript';\nvar version = '7.3.5';\nvar url = 'https://github.com/bugsnag/bugsnag-js';\n\n/* removed: var _$Client_4 = require('@bugsnag/core/client'); */;\n\n/* removed: var _$Event_6 = require('@bugsnag/core/event'); */;\n\n/* removed: var _$Session_35 = require('@bugsnag/core/session'); */;\n\n/* removed: var _$Breadcrumb_3 = require('@bugsnag/core/breadcrumb'); */;\n\n/* removed: var _$map_16 = require('@bugsnag/core/lib/es-utils/map'); */;\n\n/* removed: var _$keys_15 = require('@bugsnag/core/lib/es-utils/keys'); */;\n\n/* removed: var _$assign_11 = require('@bugsnag/core/lib/es-utils/assign'); */; // extend the base config schema with some browser-specific options\n\n\nvar __schema_2 = _$assign_11({}, _$config_5.schema, _$config_1);\n\n/* removed: var _$onerror_51 = require('@bugsnag/plugin-window-onerror'); */;\n\n/* removed: var _$unhandledRejection_52 = require('@bugsnag/plugin-window-unhandled-rejection'); */;\n\n/* removed: var _$app_38 = require('@bugsnag/plugin-app-duration'); */;\n\n/* removed: var _$device_40 = require('@bugsnag/plugin-browser-device'); */;\n\n/* removed: var _$context_39 = require('@bugsnag/plugin-browser-context'); */;\n\n/* removed: var _$request_41 = require('@bugsnag/plugin-browser-request'); */;\n\n/* removed: var _$throttle_49 = require('@bugsnag/plugin-simple-throttle'); */;\n\n/* removed: var _$consoleBreadcrumbs_44 = require('@bugsnag/plugin-console-breadcrumbs'); */;\n\n/* removed: var _$networkBreadcrumbs_48 = require('@bugsnag/plugin-network-breadcrumbs'); */;\n\n/* removed: var _$navigationBreadcrumbs_47 = require('@bugsnag/plugin-navigation-breadcrumbs'); */;\n\n/* removed: var _$interactionBreadcrumbs_46 = require('@bugsnag/plugin-interaction-breadcrumbs'); */;\n\n/* removed: var _$inlineScriptContent_45 = require('@bugsnag/plugin-inline-script-content'); */;\n\n/* removed: var _$session_42 = require('@bugsnag/plugin-browser-session'); */;\n\n/* removed: var _$clientIp_43 = require('@bugsnag/plugin-client-ip'); */;\n\n/* removed: var _$stripQueryString_50 = require('@bugsnag/plugin-strip-query-string'); */; // delivery mechanisms\n\n\n/* removed: var _$delivery_36 = require('@bugsnag/delivery-x-domain-request'); */;\n\n/* removed: var _$delivery_37 = require('@bugsnag/delivery-xml-http-request'); */;\n\nvar Bugsnag = {\n _client: null,\n createClient: function (opts) {\n // handle very simple use case where user supplies just the api key as a string\n if (typeof opts === 'string') opts = {\n apiKey: opts\n };\n if (!opts) opts = {};\n var internalPlugins = [// add browser-specific plugins\n _$app_38, _$device_40(), _$context_39(), _$request_41(), _$throttle_49, _$session_42, _$clientIp_43, _$stripQueryString_50, _$onerror_51(), _$unhandledRejection_52(), _$navigationBreadcrumbs_47(), _$interactionBreadcrumbs_46(), _$networkBreadcrumbs_48(), _$consoleBreadcrumbs_44, // this one added last to avoid wrapping functionality before bugsnag uses it\n _$inlineScriptContent_45()]; // configure a client with user supplied options\n\n var bugsnag = new _$Client_4(opts, __schema_2, internalPlugins, {\n name: name,\n version: version,\n url: url\n }); // set delivery based on browser capability (IE 8+9 have an XDomainRequest object)\n\n bugsnag._setDelivery(window.XDomainRequest ? _$delivery_36 : _$delivery_37);\n\n bugsnag._logger.debug('Loaded!');\n\n return bugsnag._config.autoTrackSessions ? bugsnag.startSession() : bugsnag;\n },\n start: function (opts) {\n if (Bugsnag._client) {\n Bugsnag._client._logger.warn('Bugsnag.start() was called more than once. Ignoring.');\n\n return Bugsnag._client;\n }\n\n Bugsnag._client = Bugsnag.createClient(opts);\n return Bugsnag._client;\n }\n};\n_$map_16(['resetEventCount'].concat(_$keys_15(_$Client_4.prototype)), function (m) {\n if (/^_/.test(m)) return;\n\n Bugsnag[m] = function () {\n if (!Bugsnag._client) return console.log(\"Bugsnag.\" + m + \"() was called before Bugsnag.start()\");\n Bugsnag._client._depth += 1;\n\n var ret = Bugsnag._client[m].apply(Bugsnag._client, arguments);\n\n Bugsnag._client._depth -= 1;\n return ret;\n };\n});\n_$notifier_2 = Bugsnag;\n_$notifier_2.Client = _$Client_4;\n_$notifier_2.Event = _$Event_6;\n_$notifier_2.Session = _$Session_35;\n_$notifier_2.Breadcrumb = _$Breadcrumb_3; // Export a \"default\" property for compatibility with ESM imports\n\n_$notifier_2[\"default\"] = Bugsnag;\n\nreturn _$notifier_2;\n\n});\n//# sourceMappingURL=bugsnag.js.map\n","class MrCarousel extends HTMLElement {\n\tconstructor() {\n\t\t/** If you define a constructor, always call super() first!\n\t\t * This is specific to CE and required by the spec.\n\t\t */\n\t\tsuper();\n\n\t\tthis.currentIndex = 0;\n\t\tthis.delay = 5000;\n\t\tthis.animateDelay = 320; // The transition delay from carousel.css\n\t\tthis.timeout = null;\n\t\tthis.hasManuallyRestarted = false;\n\t\tthis.hasManuallyPaused = false;\n\t\tthis.animating = false;\n\t\tthis.direction = 'next';\n\n\t\tthis._clickHandler = ( e ) => {\n\t\t\t// ignore clicks with modifier keys : shift, ctrl, alt,...\n\t\t\tif ( e && e.metaKey ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Check if target exist\n\t\t\tif ( !e.target ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( e.target.hasAttribute( 'carousel-next' ) ) {\n\t\t\t\tthis.goToNextItem();\n\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( e.target.hasAttribute( 'carousel-previous' ) ) {\n\t\t\t\tthis.goToPreviousItem();\n\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( e.target.hasAttribute( 'carousel-play-pause' ) ) {\n\t\t\t\tif ( this.isPlaying() ) {\n\t\t\t\t\tthis.pause();\n\t\t\t\t\te.target.setAttribute( 'aria-label', e.target.dataset.play );\n\t\t\t\t\tthis.hasManuallyPaused = true;\n\t\t\t\t} else {\n\t\t\t\t\tthis.play();\n\t\t\t\t\te.target.setAttribute( 'aria-label', e.target.dataset.stop );\n\t\t\t\t\tthis.hasManuallyRestarted = true;\n\t\t\t\t\tthis.hasManuallyPaused = false;\n\n\t\t\t\t\t// Immediately show next item if user clicks play\n\t\t\t\t\tthis.goToNextItem();\n\t\t\t\t}\n\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( e.target.hasAttribute( 'carousel-goto' ) ) {\n\t\t\t\tthis.setToItem( parseInt( e.target.getAttribute( 'carousel-goto' ) ) );\n\n\t\t\t\te.preventDefault();\n\t\t\t\te.stopPropagation();\n\n\t\t\t\treturn;\n\t\t\t}\n\t\t};\n\n\t\tthis._focusHandler = () => {\n\t\t\tif ( this.hasManuallyRestarted || !this.isPlaying() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Stop playing\n\t\t\tthis.pause();\n\t\t};\n\n\t\tthis._mouseEnterHandler = () => {\n\t\t\tif ( !this.isPlaying() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Stop playing\n\t\t\tthis.pause();\n\t\t};\n\n\t\tthis._mouseLeaveHandler = () => {\n\t\t\tif ( this.hasManuallyPaused || this.isPlaying() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Stop playing\n\t\t\tthis.play();\n\t\t};\n\n\t\tthis._timeoutElapsed = () => {\n\t\t\tif ( !this.isPlaying() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.goToNextItem();\n\t\t};\n\n\t\tthis._timeoutReset = () => {\n\t\t\tif ( !this.isPlaying() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tclearTimeout( this.timeout );\n\t\t\tthis.timeout = setTimeout( this._timeoutElapsed, this.delay );\n\t\t};\n\t}\n\n\t// Life cycle\n\tconnectedCallback() {\n\t\tthis._addEventListeners();\n\n\t\tif ( !this.isPlaying() ) {\n\t\t\tthis.play();\n\t\t}\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis._removeEventListeners();\n\n\t\tif ( this.isPlaying() ) {\n\t\t\tthis.pause();\n\t\t}\n\n\t\t// Reset States\n\t\tthis.currentIndex = 0;\n\t\tthis.delay = 5000;\n\t\tthis.timeout = null;\n\t\tthis.hasManuallyRestarted = false;\n\t\tthis.hasManuallyPaused = false;\n\t\tthis.animating = false;\n\t\tthis.direction = 'next';\n\n\t\t// Remove animation attributes\n\t\tthis.removeAttribute( 'carousel-animate-to-previous' );\n\t\tthis.removeAttribute( 'carousel-animate-to-next' );\n\t}\n\n\tsetToItem( index ) {\n\t\t// check if items not available\n\t\tif ( this.getItems().length < 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( index == this.currentIndex ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst items = this.getItems();\n\t\tif ( index < this.currentIndex ) {\n\t\t\t// switch previous slide and set direction\n\t\t\tthis.direction = 'previous';\n\t\t\titems[this.getPreviousIndex()].removeAttribute( 'carousel-item-previous' );\n\t\t\titems[index].removeAttribute( 'carousel-item-next' );\n\t\t\titems[index].setAttribute( 'carousel-item-previous', '' );\n\t\t} else {\n\t\t\t// switch next slide and set direction\n\t\t\tthis.direction = 'next';\n\t\t\titems[this.getNextIndex()].removeAttribute( 'carousel-item-next' );\n\t\t\titems[index].removeAttribute( 'carousel-item-previous' );\n\t\t\titems[index].setAttribute( 'carousel-item-next', '' );\n\t\t}\n\n\t\tthis.goToItem( index );\n\t}\n\n\tgoToPreviousItem() {\n\t\tthis.direction = 'previous';\n\t\tthis.goToItem( this.getPreviousIndex() );\n\t}\n\n\tgoToNextItem() {\n\t\tthis.direction = 'next';\n\t\tthis.goToItem( this.getNextIndex() );\n\t}\n\n\tgoToItem( index ) {\n\t\tif ( this.animating ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Update current index\n\t\tthis.setCurrentIndex( index );\n\n\t\t// reset Timeout\n\t\tthis._timeoutReset();\n\n\t\t// Animate\n\t\tthis.animate();\n\t}\n\n\tanimate() {\n\n\t\t// Fallback in case the transition events don't work\n\t\tconst delayPromise = new Promise( ( resolve ) => {\n\t\t\tsetTimeout(\n\t\t\t\t() => {\n\t\t\t\t\tresolve();\n\t\t\t\t},\n\t\t\t\tthis.animateDelay + 50 // pad with 50ms, this should leave enough time for the animations to run\n\t\t\t);\n\t\t} );\n\n\t\t// Wait for transition to finish\n\t\tconst transitionDonePromise = new Promise( ( resolve ) => {\n\t\t\tconst carouselTransitioned = ( e ) => {\n\t\t\t\tif ( !e.target.hasAttribute( 'carousel-item' ) ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tthis.removeEventListener( 'webkitTransitionEnd', carouselTransitioned );\n\t\t\t\tthis.removeEventListener( 'transitionend', carouselTransitioned );\n\n\t\t\t\tresolve();\n\t\t\t};\n\n\t\t\tthis.addEventListener( 'webkitTransitionEnd', carouselTransitioned );\n\t\t\tthis.addEventListener( 'transitionend', carouselTransitioned );\n\t\t} );\n\n\t\t// Start the race\n\t\tPromise.race( [\n\t\t\tdelayPromise,\n\t\t\ttransitionDonePromise,\n\t\t] ).then( () => {\n\t\t\t// Remove animation attributes\n\t\t\tthis.removeAttribute( 'carousel-animate-to' );\n\t\t\t// Render to current index\n\t\t\tthis.render();\n\t\t\t// Let the animation start again\n\t\t\tthis.animating = false;\n\t\t} );\n\n\t\t// Start the animation\n\t\twindow.requestAnimationFrame( () => {\n\t\t\tthis.animating = true;\n\t\t\tthis.setAttribute( 'carousel-animate-to', this.direction );\n\t\t} );\n\t}\n\n\trender() {\n\t\t// check if items not available\n\t\tif ( this.getItems().length < 2 ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// get current, previous and next items\n\t\tconst items = this.getItems();\n\t\tconst previous = items[this.getPreviousIndex()];\n\t\tconst current = items[this.currentIndex];\n\t\tconst next = items[this.getNextIndex()];\n\n\t\t// set attributes\n\t\t// first reset all items\n\t\titems.forEach( ( item ) => {\n\t\t\titem.removeAttribute( 'carousel-item-previous' );\n\t\t\titem.removeAttribute( 'carousel-item-current' );\n\t\t\titem.removeAttribute( 'carousel-item-next' );\n\t\t} );\n\n\t\tprevious.setAttribute( 'carousel-item-previous', '' );\n\t\tcurrent.setAttribute( 'carousel-item-current', '' );\n\t\tnext.setAttribute( 'carousel-item-next', '' );\n\n\t\t// Update is-dark attribute\n\t\tif ( current.hasAttribute( 'carousel-item-is-dark' ) ) {\n\t\t\tthis.setAttribute( 'carousel-is-dark', '' );\n\t\t} else {\n\t\t\tthis.removeAttribute( 'carousel-is-dark' );\n\t\t}\n\n\t\t// update item navigation\n\t\tthis.setAttribute( 'carousel-index', this.currentIndex + 1 );\n\t}\n\n\tisPlaying() {\n\t\treturn this.hasAttribute( 'carousel-playing' );\n\t}\n\n\tplay() {\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tif ( this.isPlaying() ) {\n\t\t\t\treject( new Error( 'Carousel: Already playing' ) );\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// set playing to true\n\t\t\tthis.setAttribute( 'carousel-playing', '' );\n\t\t\tthis.timeout = setTimeout( this._timeoutElapsed, this.delay );\n\n\n\t\t\tconst itemsContainer = this.querySelector( '[carousel-items]' );\n\t\t\tif ( itemsContainer ) {\n\t\t\t\titemsContainer.setAttribute( 'aria-live', 'off' );\n\t\t\t}\n\t\t\tresolve();\n\n\t\t\treturn;\n\t\t} );\n\t}\n\n\tpause() {\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tif ( !this.isPlaying() ) {\n\t\t\t\treject( new Error( 'Carousel: Already paused' ) );\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// set playing to false\n\t\t\tthis.removeAttribute( 'carousel-playing' );\n\t\t\tclearTimeout( this.timeout );\n\n\t\t\tconst itemsContainer = this.querySelector( '[carousel-items]' );\n\t\t\tif ( itemsContainer ) {\n\t\t\t\titemsContainer.setAttribute( 'aria-live', 'polite' );\n\t\t\t}\n\t\t\tresolve();\n\n\t\t\treturn;\n\t\t} );\n\t}\n\n\tsetCurrentIndex( val ) {\n\t\tif ( isNaN( val ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( val < 0 || val >= this.getItems().length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.currentIndex = val;\n\t}\n\n\tgetItems() {\n\t\treturn this.querySelectorAll( '[carousel-item]' );\n\t}\n\n\tgetPreviousIndex() {\n\t\t// check if items not available\n\t\tif ( this.getItems().length < 2 ) {\n\t\t\treturn this.currentIndex;\n\t\t}\n\n\t\tif ( this.currentIndex > 0 ) {\n\t\t\treturn ( this.currentIndex - 1 );\n\t\t}\n\n\t\treturn this.getItems().length - 1;\n\t}\n\n\tgetNextIndex() {\n\t\t// check if items not available\n\t\tif ( this.getItems().length < 2 ) {\n\t\t\treturn this.currentIndex;\n\t\t}\n\n\t\tif ( this.currentIndex < ( this.getItems().length - 1 ) ) {\n\t\t\treturn ( this.currentIndex + 1 );\n\t\t}\n\n\t\treturn 0;\n\t}\n\n\t_addEventListeners() {\n\t\tthis.addEventListener( 'click', this._clickHandler );\n\t\tthis.addEventListener( 'focusin', this._focusHandler );\n\t\tthis.addEventListener( 'mouseenter', this._mouseEnterHandler );\n\t\tthis.addEventListener( 'mouseleave', this._mouseLeaveHandler );\n\t}\n\n\t_removeEventListeners() {\n\t\tthis.removeEventListener( 'click', this._clickHandler );\n\t\tthis.removeEventListener( 'focusin', this._focusHandler );\n\t\tthis.removeEventListener( 'mouseenter', this._mouseEnterHandler );\n\t\tthis.removeEventListener( 'mouseleave', this._mouseLeaveHandler );\n\t}\n}\n\ncustomElements.define( 'mr-carousel', MrCarousel );\n","import Type from \"../helpers/_ESAbstract.Type\";\nimport CreateDataProperty from \"../helpers/_ESAbstract.CreateDataProperty\";\n\n// _ESAbstract.CreateIterResultObject\n/* global Type, CreateDataProperty */\n// 7.4.7. CreateIterResultObject ( value, done )\nfunction CreateIterResultObject(value, done) { // eslint-disable-line no-unused-vars\n\t// 1. Assert: Type(done) is Boolean.\n\tif (Type(done) !== 'boolean') {\n\t\tthrow new Error();\n\t}\n\t// 2. Let obj be ObjectCreate(%ObjectPrototype%).\n\tvar obj = {};\n\t// 3. Perform CreateDataProperty(obj, \"value\", value).\n\tCreateDataProperty(obj, \"value\", value);\n\t// 4. Perform CreateDataProperty(obj, \"done\", done).\n\tCreateDataProperty(obj, \"done\", done);\n\t// 5. Return obj.\n\treturn obj;\n}\nexport default CreateIterResultObject;\n","import Call from \"../helpers/_ESAbstract.Call\";\nimport GetMethod from \"../helpers/_ESAbstract.GetMethod\";\nimport GetV from \"../helpers/_ESAbstract.GetV\";\nimport ToObject from \"../helpers/_ESAbstract.ToObject\";\nimport IsCallable from \"../helpers/_ESAbstract.IsCallable\";\nimport Type from \"../helpers/_ESAbstract.Type\";\nimport CreateMethodProperty from \"../helpers/_ESAbstract.CreateMethodProperty\";\nimport Get from \"../helpers/_ESAbstract.Get\";\nimport HasOwnProperty from \"../helpers/_ESAbstract.HasOwnProperty\";\nimport ToPropertyKey from \"../helpers/_ESAbstract.ToPropertyKey\";\nimport ToPrimitive from \"../helpers/_ESAbstract.ToPrimitive\";\nimport OrdinaryToPrimitive from \"../helpers/_ESAbstract.OrdinaryToPrimitive\";\nimport ToString from \"../helpers/_ESAbstract.ToString\";\nimport ToLength from \"../helpers/_ESAbstract.ToLength\";\nimport ToInteger from \"../helpers/_ESAbstract.ToInteger\";\nimport HasProperty from \"../helpers/_ESAbstract.HasProperty\";\nimport ArraySpeciesCreate from \"../helpers/_ESAbstract.ArraySpeciesCreate\";\nimport IsArray from \"../helpers/_ESAbstract.IsArray\";\nimport ArrayCreate from \"../helpers/_ESAbstract.ArrayCreate\";\nimport IsConstructor from \"../helpers/_ESAbstract.IsConstructor\";\nimport Construct from \"../helpers/_ESAbstract.Construct\";\nimport OrdinaryCreateFromConstructor from \"../helpers/_ESAbstract.OrdinaryCreateFromConstructor\";\nimport GetPrototypeFromConstructor from \"../helpers/_ESAbstract.GetPrototypeFromConstructor\";\nimport ToBoolean from \"../helpers/_ESAbstract.ToBoolean\";\nimport CreateDataPropertyOrThrow from \"../helpers/_ESAbstract.CreateDataPropertyOrThrow\";\nimport CreateDataProperty from \"../helpers/_ESAbstract.CreateDataProperty\";\nimport SameValueZero from \"../helpers/_ESAbstract.SameValueZero\";\nimport SameValueNonNumber from \"../helpers/_ESAbstract.SameValueNonNumber\";\n\n// _ESAbstract.GetIterator\n/* global GetMethod, Symbol, Call, Type, GetV */\n// 7.4.1. GetIterator ( obj [ , method ] )\n// The abstract operation GetIterator with argument obj and optional argument method performs the following steps:\nfunction GetIterator(obj /*, method */) { // eslint-disable-line no-unused-vars\n\t// 1. If method is not present, then\n\t\t// a. Set method to ? GetMethod(obj, @@iterator).\n\tvar method = arguments.length > 1 ? arguments[1] : GetMethod(obj, Symbol.iterator);\n\t// 2. Let iterator be ? Call(method, obj).\n\tvar iterator = Call(method, obj);\n\t// 3. If Type(iterator) is not Object, throw a TypeError exception.\n\tif (Type(iterator) !== 'object') {\n\t\tthrow new TypeError('bad iterator');\n\t}\n\t// 4. Let nextMethod be ? GetV(iterator, \"next\").\n\tvar nextMethod = GetV(iterator, \"next\");\n\t// 5. Let iteratorRecord be Record {[[Iterator]]: iterator, [[NextMethod]]: nextMethod, [[Done]]: false}.\n\tvar iteratorRecord = Object.create(null);\n\titeratorRecord['[[Iterator]]'] = iterator;\n\titeratorRecord['[[NextMethod]]'] = nextMethod;\n\titeratorRecord['[[Done]]'] = false;\n\t// 6. Return iteratorRecord.\n\treturn iteratorRecord;\n}\nexport default GetIterator;\n","import Call from \"../helpers/_ESAbstract.Call\";\nimport GetMethod from \"../helpers/_ESAbstract.GetMethod\";\nimport GetV from \"../helpers/_ESAbstract.GetV\";\nimport ToObject from \"../helpers/_ESAbstract.ToObject\";\nimport IsCallable from \"../helpers/_ESAbstract.IsCallable\";\nimport Type from \"../helpers/_ESAbstract.Type\";\n\n// _ESAbstract.IteratorClose\n/* global GetMethod, Type, Call */\n// 7.4.6. IteratorClose ( iteratorRecord, completion )\nfunction IteratorClose(iteratorRecord, completion) { // eslint-disable-line no-unused-vars\n\t// 1. Assert: Type(iteratorRecord.[[Iterator]]) is Object.\n\tif (Type(iteratorRecord['[[Iterator]]']) !== 'object') {\n\t\tthrow new Error(Object.prototype.toString.call(iteratorRecord['[[Iterator]]']) + 'is not an Object.');\n\t}\n\t// 2. Assert: completion is a Completion Record.\n\t// Polyfill.io - Ignoring this step as there is no way to check if something is a Completion Record in userland JavaScript.\n\n\t// 3. Let iterator be iteratorRecord.[[Iterator]].\n\tvar iterator = iteratorRecord['[[Iterator]]'];\n\t// 4. Let return be ? GetMethod(iterator, \"return\").\n\t// Polyfill.io - We name it returnMethod because return is a keyword and can not be used as an identifier (E.G. variable name, function name etc).\n\tvar returnMethod = GetMethod(iterator, \"return\");\n\t// 5. If return is undefined, return Completion(completion).\n\tif (returnMethod === undefined) {\n\t\treturn completion;\n\t}\n\t// 6. Let innerResult be Call(return, iterator, « »).\n\ttry {\n\t\tvar innerResult = Call(returnMethod, iterator);\n\t} catch (error) {\n\t\tvar innerException = error;\n\t}\n\t// 7. If completion.[[Type]] is throw, return Completion(completion).\n\tif (completion) {\n\t\treturn completion;\n\t}\n\t// 8. If innerResult.[[Type]] is throw, return Completion(innerResult).\n\tif (innerException) {\n\t\tthrow innerException;\n\t}\n\t// 9. If Type(innerResult.[[Value]]) is not Object, throw a TypeError exception.\n\tif (Type(innerResult) !== 'object') {\n\t\tthrow new TypeError(\"Iterator's return method returned a non-object.\");\n\t}\n\t// 10. Return Completion(completion).\n\treturn completion;\n}\nexport default IteratorClose;\n","import IteratorNext from \"../helpers/_ESAbstract.IteratorNext\";\nimport Type from \"../helpers/_ESAbstract.Type\";\nimport Call from \"../helpers/_ESAbstract.Call\";\nimport IteratorComplete from \"../helpers/_ESAbstract.IteratorComplete\";\nimport ToBoolean from \"../helpers/_ESAbstract.ToBoolean\";\nimport Get from \"../helpers/_ESAbstract.Get\";\n\n// _ESAbstract.IteratorStep\n/* global IteratorNext, IteratorComplete */\n// 7.4.5. IteratorStep ( iteratorRecord )\nfunction IteratorStep(iteratorRecord) { // eslint-disable-line no-unused-vars\n\t// 1. Let result be ? IteratorNext(iteratorRecord).\n\tvar result = IteratorNext(iteratorRecord);\n\t// 2. Let done be ? IteratorComplete(result).\n\tvar done = IteratorComplete(result);\n\t// 3. If done is true, return false.\n\tif (done === true) {\n\t\treturn false;\n\t}\n\t// 4. Return result.\n\treturn result;\n}\nexport default IteratorStep;\n","import Get from \"../helpers/_ESAbstract.Get\";\nimport Type from \"../helpers/_ESAbstract.Type\";\n\n// _ESAbstract.IteratorValue\n/* global Type, Get */\n// 7.4.4 IteratorValue ( iterResult )\nfunction IteratorValue(iterResult) { // eslint-disable-line no-unused-vars\n\t// Assert: Type(iterResult) is Object.\n\tif (Type(iterResult) !== 'object') {\n\t\tthrow new Error(Object.prototype.toString.call(iterResult) + 'is not an Object.');\n\t}\n\t// Return ? Get(iterResult, \"value\").\n\treturn Get(iterResult, \"value\");\n}\nexport default IteratorValue;\n","import SameValueNonNumber from \"../helpers/_ESAbstract.SameValueNonNumber\";\nimport Type from \"../helpers/_ESAbstract.Type\";\n\n// _ESAbstract.SameValue\n/* global Type, SameValueNonNumber */\n// 7.2.10. SameValue ( x, y )\nfunction SameValue(x, y) { // eslint-disable-line no-unused-vars\n\t// 1. If Type(x) is different from Type(y), return false.\n\tif (Type(x) !== Type(y)) {\n\t\treturn false;\n\t}\n\t// 2. If Type(x) is Number, then\n\tif (Type(x) === 'number') {\n\t\t// a. If x is NaN and y is NaN, return true.\n\t\tif (isNaN(x) && isNaN(y)) {\n\t\t\treturn true;\n\t\t}\n\t\t// Polyfill.io - 0 === -0 is true, but they are not the same value.\n\t\t// b. If x is +0 and y is -0, return false.\n\t\t// c. If x is -0 and y is +0, return false.\n\t\tif (x === 0 && y === 0 && 1/x !== 1/y) {\n\t\t\treturn false;\n\t\t}\n\t\t// d. If x is the same Number value as y, return true.\n\t\tif (x === y) {\n\t\t\treturn true;\n\t\t}\n\t\t// e. Return false.\n\t\treturn false;\n\t}\n\t// 3. Return SameValueNonNumber(x, y).\n\treturn SameValueNonNumber(x, y);\n}\nexport default SameValue;\n","/* globals __webpack_amd_options__ */\nmodule.exports = __webpack_amd_options__;\n","'use strict';\nvar fixRegExpWellKnownSymbolLogic = require('../internals/fix-regexp-well-known-symbol-logic');\nvar anObject = require('../internals/an-object');\nvar toObject = require('../internals/to-object');\nvar toLength = require('../internals/to-length');\nvar toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\nvar advanceStringIndex = require('../internals/advance-string-index');\nvar regExpExec = require('../internals/regexp-exec-abstract');\n\nvar max = Math.max;\nvar min = Math.min;\nvar floor = Math.floor;\nvar SUBSTITUTION_SYMBOLS = /\\$([$&'`]|\\d\\d?|<[^>]*>)/g;\nvar SUBSTITUTION_SYMBOLS_NO_NAMED = /\\$([$&'`]|\\d\\d?)/g;\n\nvar maybeToString = function (it) {\n return it === undefined ? it : String(it);\n};\n\n// @@replace logic\nfixRegExpWellKnownSymbolLogic('replace', 2, function (REPLACE, nativeReplace, maybeCallNative, reason) {\n var REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = reason.REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE;\n var REPLACE_KEEPS_$0 = reason.REPLACE_KEEPS_$0;\n var UNSAFE_SUBSTITUTE = REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE ? '$' : '$0';\n\n return [\n // `String.prototype.replace` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.replace\n function replace(searchValue, replaceValue) {\n var O = requireObjectCoercible(this);\n var replacer = searchValue == undefined ? undefined : searchValue[REPLACE];\n return replacer !== undefined\n ? replacer.call(searchValue, O, replaceValue)\n : nativeReplace.call(String(O), searchValue, replaceValue);\n },\n // `RegExp.prototype[@@replace]` method\n // https://tc39.github.io/ecma262/#sec-regexp.prototype-@@replace\n function (regexp, replaceValue) {\n if (\n (!REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE && REPLACE_KEEPS_$0) ||\n (typeof replaceValue === 'string' && replaceValue.indexOf(UNSAFE_SUBSTITUTE) === -1)\n ) {\n var res = maybeCallNative(nativeReplace, regexp, this, replaceValue);\n if (res.done) return res.value;\n }\n\n var rx = anObject(regexp);\n var S = String(this);\n\n var functionalReplace = typeof replaceValue === 'function';\n if (!functionalReplace) replaceValue = String(replaceValue);\n\n var global = rx.global;\n if (global) {\n var fullUnicode = rx.unicode;\n rx.lastIndex = 0;\n }\n var results = [];\n while (true) {\n var result = regExpExec(rx, S);\n if (result === null) break;\n\n results.push(result);\n if (!global) break;\n\n var matchStr = String(result[0]);\n if (matchStr === '') rx.lastIndex = advanceStringIndex(S, toLength(rx.lastIndex), fullUnicode);\n }\n\n var accumulatedResult = '';\n var nextSourcePosition = 0;\n for (var i = 0; i < results.length; i++) {\n result = results[i];\n\n var matched = String(result[0]);\n var position = max(min(toInteger(result.index), S.length), 0);\n var captures = [];\n // NOTE: This is equivalent to\n // captures = result.slice(1).map(maybeToString)\n // but for some reason `nativeSlice.call(result, 1, result.length)` (called in\n // the slice polyfill when slicing native arrays) \"doesn't work\" in safari 9 and\n // causes a crash (https://pastebin.com/N21QzeQA) when trying to debug it.\n for (var j = 1; j < result.length; j++) captures.push(maybeToString(result[j]));\n var namedCaptures = result.groups;\n if (functionalReplace) {\n var replacerArgs = [matched].concat(captures, position, S);\n if (namedCaptures !== undefined) replacerArgs.push(namedCaptures);\n var replacement = String(replaceValue.apply(undefined, replacerArgs));\n } else {\n replacement = getSubstitution(matched, S, position, captures, namedCaptures, replaceValue);\n }\n if (position >= nextSourcePosition) {\n accumulatedResult += S.slice(nextSourcePosition, position) + replacement;\n nextSourcePosition = position + matched.length;\n }\n }\n return accumulatedResult + S.slice(nextSourcePosition);\n }\n ];\n\n // https://tc39.github.io/ecma262/#sec-getsubstitution\n function getSubstitution(matched, str, position, captures, namedCaptures, replacement) {\n var tailPos = position + matched.length;\n var m = captures.length;\n var symbols = SUBSTITUTION_SYMBOLS_NO_NAMED;\n if (namedCaptures !== undefined) {\n namedCaptures = toObject(namedCaptures);\n symbols = SUBSTITUTION_SYMBOLS;\n }\n return nativeReplace.call(replacement, symbols, function (match, ch) {\n var capture;\n switch (ch.charAt(0)) {\n case '$': return '$';\n case '&': return matched;\n case '`': return str.slice(0, position);\n case \"'\": return str.slice(tailPos);\n case '<':\n capture = namedCaptures[ch.slice(1, -1)];\n break;\n default: // \\d\\d?\n var n = +ch;\n if (n === 0) return match;\n if (n > m) {\n var f = floor(n / 10);\n if (f === 0) return match;\n if (f <= m) return captures[f - 1] === undefined ? ch.charAt(1) : captures[f - 1] + ch.charAt(1);\n return match;\n }\n capture = captures[n - 1];\n }\n return capture === undefined ? '' : capture;\n });\n }\n});\n","'use strict';\n// TODO: Remove from `core-js@4` since it's moved to entry points\nrequire('../modules/es.regexp.exec');\nvar redefine = require('../internals/redefine');\nvar fails = require('../internals/fails');\nvar wellKnownSymbol = require('../internals/well-known-symbol');\nvar regexpExec = require('../internals/regexp-exec');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\n\nvar SPECIES = wellKnownSymbol('species');\n\nvar REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () {\n // #replace needs built-in support for named groups.\n // #match works fine because it just return the exec results, even if it has\n // a \"grops\" property.\n var re = /./;\n re.exec = function () {\n var result = [];\n result.groups = { a: '7' };\n return result;\n };\n return ''.replace(re, '$') !== '7';\n});\n\n// IE <= 11 replaces $0 with the whole match, as if it was $&\n// https://stackoverflow.com/questions/6024666/getting-ie-to-replace-a-regex-with-the-literal-string-0\nvar REPLACE_KEEPS_$0 = (function () {\n return 'a'.replace(/./, '$0') === '$0';\n})();\n\nvar REPLACE = wellKnownSymbol('replace');\n// Safari <= 13.0.3(?) substitutes nth capture where n>m with an empty string\nvar REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE = (function () {\n if (/./[REPLACE]) {\n return /./[REPLACE]('a', '$0') === '';\n }\n return false;\n})();\n\n// Chrome 51 has a buggy \"split\" implementation when RegExp#exec !== nativeExec\n// Weex JS has frozen built-in prototypes, so use try / catch wrapper\nvar SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = !fails(function () {\n var re = /(?:)/;\n var originalExec = re.exec;\n re.exec = function () { return originalExec.apply(this, arguments); };\n var result = 'ab'.split(re);\n return result.length !== 2 || result[0] !== 'a' || result[1] !== 'b';\n});\n\nmodule.exports = function (KEY, length, exec, sham) {\n var SYMBOL = wellKnownSymbol(KEY);\n\n var DELEGATES_TO_SYMBOL = !fails(function () {\n // String methods call symbol-named RegEp methods\n var O = {};\n O[SYMBOL] = function () { return 7; };\n return ''[KEY](O) != 7;\n });\n\n var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL && !fails(function () {\n // Symbol-named RegExp methods call .exec\n var execCalled = false;\n var re = /a/;\n\n if (KEY === 'split') {\n // We can't use real regex here since it causes deoptimization\n // and serious performance degradation in V8\n // https://github.com/zloirock/core-js/issues/306\n re = {};\n // RegExp[@@split] doesn't call the regex's exec method, but first creates\n // a new one. We need to return the patched regex when creating the new one.\n re.constructor = {};\n re.constructor[SPECIES] = function () { return re; };\n re.flags = '';\n re[SYMBOL] = /./[SYMBOL];\n }\n\n re.exec = function () { execCalled = true; return null; };\n\n re[SYMBOL]('');\n return !execCalled;\n });\n\n if (\n !DELEGATES_TO_SYMBOL ||\n !DELEGATES_TO_EXEC ||\n (KEY === 'replace' && !(\n REPLACE_SUPPORTS_NAMED_GROUPS &&\n REPLACE_KEEPS_$0 &&\n !REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n )) ||\n (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC)\n ) {\n var nativeRegExpMethod = /./[SYMBOL];\n var methods = exec(SYMBOL, ''[KEY], function (nativeMethod, regexp, str, arg2, forceStringMethod) {\n if (regexp.exec === regexpExec) {\n if (DELEGATES_TO_SYMBOL && !forceStringMethod) {\n // The native String method already delegates to @@method (this\n // polyfilled function), leasing to infinite recursion.\n // We avoid it by directly calling the native @@method method.\n return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) };\n }\n return { done: true, value: nativeMethod.call(str, regexp, arg2) };\n }\n return { done: false };\n }, {\n REPLACE_KEEPS_$0: REPLACE_KEEPS_$0,\n REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE: REGEXP_REPLACE_SUBSTITUTES_UNDEFINED_CAPTURE\n });\n var stringMethod = methods[0];\n var regexMethod = methods[1];\n\n redefine(String.prototype, KEY, stringMethod);\n redefine(RegExp.prototype, SYMBOL, length == 2\n // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)\n // 21.2.5.11 RegExp.prototype[@@split](string, limit)\n ? function (string, arg) { return regexMethod.call(string, this, arg); }\n // 21.2.5.6 RegExp.prototype[@@match](string)\n // 21.2.5.9 RegExp.prototype[@@search](string)\n : function (string) { return regexMethod.call(string, this); }\n );\n }\n\n if (sham) createNonEnumerableProperty(RegExp.prototype[SYMBOL], 'sham', true);\n};\n","'use strict';\nvar $ = require('../internals/export');\nvar exec = require('../internals/regexp-exec');\n\n$({ target: 'RegExp', proto: true, forced: /./.exec !== exec }, {\n exec: exec\n});\n","var global = require('../internals/global');\nvar getOwnPropertyDescriptor = require('../internals/object-get-own-property-descriptor').f;\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar redefine = require('../internals/redefine');\nvar setGlobal = require('../internals/set-global');\nvar copyConstructorProperties = require('../internals/copy-constructor-properties');\nvar isForced = require('../internals/is-forced');\n\n/*\n options.target - name of the target object\n options.global - target is the global object\n options.stat - export as static methods of target\n options.proto - export as prototype methods of target\n options.real - real prototype method for the `pure` version\n options.forced - export even if the native feature is available\n options.bind - bind methods to the target, required for the `pure` version\n options.wrap - wrap constructors to preventing global pollution, required for the `pure` version\n options.unsafe - use the simple assignment of property instead of delete + defineProperty\n options.sham - add a flag to not completely full polyfills\n options.enumerable - export as enumerable property\n options.noTargetGet - prevent calling a getter on target\n*/\nmodule.exports = function (options, source) {\n var TARGET = options.target;\n var GLOBAL = options.global;\n var STATIC = options.stat;\n var FORCED, target, key, targetProperty, sourceProperty, descriptor;\n if (GLOBAL) {\n target = global;\n } else if (STATIC) {\n target = global[TARGET] || setGlobal(TARGET, {});\n } else {\n target = (global[TARGET] || {}).prototype;\n }\n if (target) for (key in source) {\n sourceProperty = source[key];\n if (options.noTargetGet) {\n descriptor = getOwnPropertyDescriptor(target, key);\n targetProperty = descriptor && descriptor.value;\n } else targetProperty = target[key];\n FORCED = isForced(GLOBAL ? key : TARGET + (STATIC ? '.' : '#') + key, options.forced);\n // contained in target\n if (!FORCED && targetProperty !== undefined) {\n if (typeof sourceProperty === typeof targetProperty) continue;\n copyConstructorProperties(sourceProperty, targetProperty);\n }\n // add a flag to not completely full polyfills\n if (options.sham || (targetProperty && targetProperty.sham)) {\n createNonEnumerableProperty(sourceProperty, 'sham', true);\n }\n // extend global\n redefine(target, key, sourceProperty, options);\n }\n};\n","'use strict';\nvar nativePropertyIsEnumerable = {}.propertyIsEnumerable;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\n\n// Nashorn ~ JDK8 bug\nvar NASHORN_BUG = getOwnPropertyDescriptor && !nativePropertyIsEnumerable.call({ 1: 2 }, 1);\n\n// `Object.prototype.propertyIsEnumerable` method implementation\n// https://tc39.github.io/ecma262/#sec-object.prototype.propertyisenumerable\nexports.f = NASHORN_BUG ? function propertyIsEnumerable(V) {\n var descriptor = getOwnPropertyDescriptor(this, V);\n return !!descriptor && descriptor.enumerable;\n} : nativePropertyIsEnumerable;\n","var fails = require('../internals/fails');\nvar classof = require('../internals/classof-raw');\n\nvar split = ''.split;\n\n// fallback for non-array-like ES3 and non-enumerable old V8 strings\nmodule.exports = fails(function () {\n // throws an error in rhino, see https://github.com/mozilla/rhino/issues/346\n // eslint-disable-next-line no-prototype-builtins\n return !Object('z').propertyIsEnumerable(0);\n}) ? function (it) {\n return classof(it) == 'String' ? split.call(it, '') : Object(it);\n} : Object;\n","var global = require('../internals/global');\nvar isObject = require('../internals/is-object');\n\nvar document = global.document;\n// typeof document.createElement is 'object' in old IE\nvar EXISTS = isObject(document) && isObject(document.createElement);\n\nmodule.exports = function (it) {\n return EXISTS ? document.createElement(it) : {};\n};\n","var NATIVE_WEAK_MAP = require('../internals/native-weak-map');\nvar global = require('../internals/global');\nvar isObject = require('../internals/is-object');\nvar createNonEnumerableProperty = require('../internals/create-non-enumerable-property');\nvar objectHas = require('../internals/has');\nvar sharedKey = require('../internals/shared-key');\nvar hiddenKeys = require('../internals/hidden-keys');\n\nvar WeakMap = global.WeakMap;\nvar set, get, has;\n\nvar enforce = function (it) {\n return has(it) ? get(it) : set(it, {});\n};\n\nvar getterFor = function (TYPE) {\n return function (it) {\n var state;\n if (!isObject(it) || (state = get(it)).type !== TYPE) {\n throw TypeError('Incompatible receiver, ' + TYPE + ' required');\n } return state;\n };\n};\n\nif (NATIVE_WEAK_MAP) {\n var store = new WeakMap();\n var wmget = store.get;\n var wmhas = store.has;\n var wmset = store.set;\n set = function (it, metadata) {\n wmset.call(store, it, metadata);\n return metadata;\n };\n get = function (it) {\n return wmget.call(store, it) || {};\n };\n has = function (it) {\n return wmhas.call(store, it);\n };\n} else {\n var STATE = sharedKey('state');\n hiddenKeys[STATE] = true;\n set = function (it, metadata) {\n createNonEnumerableProperty(it, STATE, metadata);\n return metadata;\n };\n get = function (it) {\n return objectHas(it, STATE) ? it[STATE] : {};\n };\n has = function (it) {\n return objectHas(it, STATE);\n };\n}\n\nmodule.exports = {\n set: set,\n get: get,\n has: has,\n enforce: enforce,\n getterFor: getterFor\n};\n","var global = require('../internals/global');\nvar inspectSource = require('../internals/inspect-source');\n\nvar WeakMap = global.WeakMap;\n\nmodule.exports = typeof WeakMap === 'function' && /native code/.test(inspectSource(WeakMap));\n","var shared = require('../internals/shared');\nvar uid = require('../internals/uid');\n\nvar keys = shared('keys');\n\nmodule.exports = function (key) {\n return keys[key] || (keys[key] = uid(key));\n};\n","module.exports = false;\n","var has = require('../internals/has');\nvar ownKeys = require('../internals/own-keys');\nvar getOwnPropertyDescriptorModule = require('../internals/object-get-own-property-descriptor');\nvar definePropertyModule = require('../internals/object-define-property');\n\nmodule.exports = function (target, source) {\n var keys = ownKeys(source);\n var defineProperty = definePropertyModule.f;\n var getOwnPropertyDescriptor = getOwnPropertyDescriptorModule.f;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!has(target, key)) defineProperty(target, key, getOwnPropertyDescriptor(source, key));\n }\n};\n","var getBuiltIn = require('../internals/get-built-in');\nvar getOwnPropertyNamesModule = require('../internals/object-get-own-property-names');\nvar getOwnPropertySymbolsModule = require('../internals/object-get-own-property-symbols');\nvar anObject = require('../internals/an-object');\n\n// all object keys, includes non-enumerable and symbols\nmodule.exports = getBuiltIn('Reflect', 'ownKeys') || function ownKeys(it) {\n var keys = getOwnPropertyNamesModule.f(anObject(it));\n var getOwnPropertySymbols = getOwnPropertySymbolsModule.f;\n return getOwnPropertySymbols ? keys.concat(getOwnPropertySymbols(it)) : keys;\n};\n","var path = require('../internals/path');\nvar global = require('../internals/global');\n\nvar aFunction = function (variable) {\n return typeof variable == 'function' ? variable : undefined;\n};\n\nmodule.exports = function (namespace, method) {\n return arguments.length < 2 ? aFunction(path[namespace]) || aFunction(global[namespace])\n : path[namespace] && path[namespace][method] || global[namespace] && global[namespace][method];\n};\n","var global = require('../internals/global');\n\nmodule.exports = global;\n","var internalObjectKeys = require('../internals/object-keys-internal');\nvar enumBugKeys = require('../internals/enum-bug-keys');\n\nvar hiddenKeys = enumBugKeys.concat('length', 'prototype');\n\n// `Object.getOwnPropertyNames` method\n// https://tc39.github.io/ecma262/#sec-object.getownpropertynames\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {\n return internalObjectKeys(O, hiddenKeys);\n};\n","var has = require('../internals/has');\nvar toIndexedObject = require('../internals/to-indexed-object');\nvar indexOf = require('../internals/array-includes').indexOf;\nvar hiddenKeys = require('../internals/hidden-keys');\n\nmodule.exports = function (object, names) {\n var O = toIndexedObject(object);\n var i = 0;\n var result = [];\n var key;\n for (key in O) !has(hiddenKeys, key) && has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while (names.length > i) if (has(O, key = names[i++])) {\n ~indexOf(result, key) || result.push(key);\n }\n return result;\n};\n","var toIndexedObject = require('../internals/to-indexed-object');\nvar toLength = require('../internals/to-length');\nvar toAbsoluteIndex = require('../internals/to-absolute-index');\n\n// `Array.prototype.{ indexOf, includes }` methods implementation\nvar createMethod = function (IS_INCLUDES) {\n return function ($this, el, fromIndex) {\n var O = toIndexedObject($this);\n var length = toLength(O.length);\n var index = toAbsoluteIndex(fromIndex, length);\n var value;\n // Array#includes uses SameValueZero equality algorithm\n // eslint-disable-next-line no-self-compare\n if (IS_INCLUDES && el != el) while (length > index) {\n value = O[index++];\n // eslint-disable-next-line no-self-compare\n if (value != value) return true;\n // Array#indexOf ignores holes, Array#includes - not\n } else for (;length > index; index++) {\n if ((IS_INCLUDES || index in O) && O[index] === el) return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\nmodule.exports = {\n // `Array.prototype.includes` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.includes\n includes: createMethod(true),\n // `Array.prototype.indexOf` method\n // https://tc39.github.io/ecma262/#sec-array.prototype.indexof\n indexOf: createMethod(false)\n};\n","var toInteger = require('../internals/to-integer');\n\nvar max = Math.max;\nvar min = Math.min;\n\n// Helper for a popular repeating case of the spec:\n// Let integer be ? ToInteger(index).\n// If integer < 0, let result be max((length + integer), 0); else let result be min(integer, length).\nmodule.exports = function (index, length) {\n var integer = toInteger(index);\n return integer < 0 ? max(integer + length, 0) : min(integer, length);\n};\n","// IE8- don't enum bug keys\nmodule.exports = [\n 'constructor',\n 'hasOwnProperty',\n 'isPrototypeOf',\n 'propertyIsEnumerable',\n 'toLocaleString',\n 'toString',\n 'valueOf'\n];\n","exports.f = Object.getOwnPropertySymbols;\n","var fails = require('../internals/fails');\n\nvar replacement = /#|\\.prototype\\./;\n\nvar isForced = function (feature, detection) {\n var value = data[normalize(feature)];\n return value == POLYFILL ? true\n : value == NATIVE ? false\n : typeof detection == 'function' ? fails(detection)\n : !!detection;\n};\n\nvar normalize = isForced.normalize = function (string) {\n return String(string).replace(replacement, '.').toLowerCase();\n};\n\nvar data = isForced.data = {};\nvar NATIVE = isForced.NATIVE = 'N';\nvar POLYFILL = isForced.POLYFILL = 'P';\n\nmodule.exports = isForced;\n","'use strict';\nvar anObject = require('../internals/an-object');\n\n// `RegExp.prototype.flags` getter implementation\n// https://tc39.github.io/ecma262/#sec-get-regexp.prototype.flags\nmodule.exports = function () {\n var that = anObject(this);\n var result = '';\n if (that.global) result += 'g';\n if (that.ignoreCase) result += 'i';\n if (that.multiline) result += 'm';\n if (that.dotAll) result += 's';\n if (that.unicode) result += 'u';\n if (that.sticky) result += 'y';\n return result;\n};\n","'use strict';\n\nvar fails = require('./fails');\n\n// babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError,\n// so we use an intermediate function.\nfunction RE(s, f) {\n return RegExp(s, f);\n}\n\nexports.UNSUPPORTED_Y = fails(function () {\n // babel-minify transpiles RegExp('a', 'y') -> /a/y and it causes SyntaxError\n var re = RE('a', 'y');\n re.lastIndex = 2;\n return re.exec('abcd') != null;\n});\n\nexports.BROKEN_CARET = fails(function () {\n // https://bugzilla.mozilla.org/show_bug.cgi?id=773687\n var re = RE('^r', 'gy');\n re.lastIndex = 2;\n return re.exec('str') != null;\n});\n","var global = require('../internals/global');\nvar shared = require('../internals/shared');\nvar has = require('../internals/has');\nvar uid = require('../internals/uid');\nvar NATIVE_SYMBOL = require('../internals/native-symbol');\nvar USE_SYMBOL_AS_UID = require('../internals/use-symbol-as-uid');\n\nvar WellKnownSymbolsStore = shared('wks');\nvar Symbol = global.Symbol;\nvar createWellKnownSymbol = USE_SYMBOL_AS_UID ? Symbol : Symbol && Symbol.withoutSetter || uid;\n\nmodule.exports = function (name) {\n if (!has(WellKnownSymbolsStore, name)) {\n if (NATIVE_SYMBOL && has(Symbol, name)) WellKnownSymbolsStore[name] = Symbol[name];\n else WellKnownSymbolsStore[name] = createWellKnownSymbol('Symbol.' + name);\n } return WellKnownSymbolsStore[name];\n};\n","var NATIVE_SYMBOL = require('../internals/native-symbol');\n\nmodule.exports = NATIVE_SYMBOL\n // eslint-disable-next-line no-undef\n && !Symbol.sham\n // eslint-disable-next-line no-undef\n && typeof Symbol.iterator == 'symbol';\n","var requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `ToObject` abstract operation\n// https://tc39.github.io/ecma262/#sec-toobject\nmodule.exports = function (argument) {\n return Object(requireObjectCoercible(argument));\n};\n","'use strict';\nvar charAt = require('../internals/string-multibyte').charAt;\n\n// `AdvanceStringIndex` abstract operation\n// https://tc39.github.io/ecma262/#sec-advancestringindex\nmodule.exports = function (S, index, unicode) {\n return index + (unicode ? charAt(S, index).length : 1);\n};\n","var toInteger = require('../internals/to-integer');\nvar requireObjectCoercible = require('../internals/require-object-coercible');\n\n// `String.prototype.{ codePointAt, at }` methods implementation\nvar createMethod = function (CONVERT_TO_STRING) {\n return function ($this, pos) {\n var S = String(requireObjectCoercible($this));\n var position = toInteger(pos);\n var size = S.length;\n var first, second;\n if (position < 0 || position >= size) return CONVERT_TO_STRING ? '' : undefined;\n first = S.charCodeAt(position);\n return first < 0xD800 || first > 0xDBFF || position + 1 === size\n || (second = S.charCodeAt(position + 1)) < 0xDC00 || second > 0xDFFF\n ? CONVERT_TO_STRING ? S.charAt(position) : first\n : CONVERT_TO_STRING ? S.slice(position, position + 2) : (first - 0xD800 << 10) + (second - 0xDC00) + 0x10000;\n };\n};\n\nmodule.exports = {\n // `String.prototype.codePointAt` method\n // https://tc39.github.io/ecma262/#sec-string.prototype.codepointat\n codeAt: createMethod(false),\n // `String.prototype.at` method\n // https://github.com/mathiasbynens/String.prototype.at\n charAt: createMethod(true)\n};\n","var classof = require('./classof-raw');\nvar regexpExec = require('./regexp-exec');\n\n// `RegExpExec` abstract operation\n// https://tc39.github.io/ecma262/#sec-regexpexec\nmodule.exports = function (R, S) {\n var exec = R.exec;\n if (typeof exec === 'function') {\n var result = exec.call(R, S);\n if (typeof result !== 'object') {\n throw TypeError('RegExp exec method returned something other than an Object or null');\n }\n return result;\n }\n\n if (classof(R) !== 'RegExp') {\n throw TypeError('RegExp#exec called on incompatible receiver');\n }\n\n return regexpExec.call(R, S);\n};\n\n","import Bugsnag, { Client } from '@bugsnag/js';\n\ndeclare global {\n\tinterface Window {\n\t\tbugsnagClient: Client\n\t}\n}\n\nconst metaValue = ( name: string ): string | null => {\n\tif ( !document || !document.head ) {\n\t\treturn null;\n\t}\n\n\tconst metaTag: HTMLMetaElement | null = document.head.querySelector( 'meta[name=\"' + name + '\"][content]' );\n\tif ( !metaTag || !metaTag.content ) {\n\t\treturn null;\n\t}\n\n\treturn metaTag.content;\n};\n\nexport const bugsnagClient = Bugsnag.createClient( {\n\tapiKey: metaValue( 'mrh:bugsnag' ) || '',\n\tcollectUserIp: false,\n\tenabledReleaseStages: [\n\t\t'production',\n\t],\n\tappType: metaValue( 'mrh:theme' ) || 'unknown theme',\n\treleaseStage: metaValue( 'mrh:stage' ) || 'production',\n\tonError: ( event ) => {\n\t\t// Update Context\n\t\tconst theme = metaValue( 'mrh:theme' );\n\t\tif ( theme ) {\n\t\t\tevent.context = event.context + ' - ' + theme;\n\t\t}\n\n\t\t// Update Meta Data\n\t\tconst id = metaValue( 'mrh:id' );\n\t\tif ( id && theme ) {\n\t\t\tevent.addMetadata( 'site', {\n\t\t\t\tid: id,\n\t\t\t\ttheme: theme,\n\t\t\t} );\n\t\t}\n\n\t\tconst target = metaValue( 'mrh:browser-target' );\n\t\tif ( target ) {\n\t\t\tevent.addMetadata( 'js-bundle', {\n\t\t\t\ttarget: metaValue( 'mrh:browser-target' ),\n\t\t\t} );\n\t\t}\n\t},\n} );\n\nwindow.bugsnagClient = bugsnagClient;\n","/** Simple accordion pattern\n * @see https://www.w3.org/TR/wai-aria-practices-1.1/examples/accordion/accordion.html\n */\n\nexport class MrAccordion extends HTMLElement {\n\t// Handle click events\n\t#clickHandler = ( event: MouseEvent ): void => {\n\t\tconst target = event.target;\n\n\t\tif ( !target || !( target instanceof Element ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !target.hasAttribute( 'accordion-trigger' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// Only use events from current mr-accordion\n\t\tif (\n\t\t\t!target.getAttribute( 'accordion' ) ||\n\t\t\t( target.getAttribute( 'accordion' ) !== this.id )\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isExpanded = target.getAttribute( 'aria-expanded' ) == 'true';\n\n\t\tif ( !isExpanded ) {\n\t\t\t// Set the expanded state on the triggering element\n\t\t\ttarget.setAttribute( 'aria-expanded', 'true' );\n\n\t\t\t// Hide the accordion sections, using the 'for'-attribute to specify the desired section\n\t\t\tconst panel = this.querySelector( '#' + target.getAttribute( 'for' ) );\n\n\t\t\tif ( !panel ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tpanel.setAttribute( 'aria-hidden', 'false' );\n\n\t\t} else if ( isExpanded ) {\n\t\t\t// Set the expanded state on the triggering element\n\t\t\ttarget.setAttribute( 'aria-expanded', 'false' );\n\n\t\t\t// Hide the accordion sections, using the 'for'-attribute to specify the desired section\n\t\t\tconst panel = this.querySelector( '#' + target.getAttribute( 'for' ) );\n\n\t\t\tif ( !panel ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tpanel.setAttribute( 'aria-hidden', 'true' );\n\t\t}\n\n\t\tevent.preventDefault();\n\t}\n\n\tconstructor() {\n\t\t/** If you define a constructor, always call super() first!\n\t\t * This is specific to CE and required by the spec.\n\t\t */\n\t\tsuper();\n\t}\n\n\t// Life cycle\n\tconnectedCallback() :void {\n\t\tthis._addEventListeners();\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tthis._removeEventListeners();\n\t}\n\n\t_addEventListeners(): void {\n\t\tthis.addEventListener( 'click', this.#clickHandler );\n\t\taddKeypressEventListener( this.tagName );\n\t}\n\n\t_removeEventListeners(): void {\n\t\tthis.removeEventListener( 'click', this.#clickHandler );\n\t}\n}\n\n\nconst _didAddKeypressEventListener: Map = new Map();\n\nfunction addKeypressEventListener( tagName: string ): void {\n\tif ( _didAddKeypressEventListener.has( tagName ) ) {\n\t\treturn;\n\t}\n\n\t_didAddKeypressEventListener.set( tagName, true );\n\n\tconst getTriggers = (): Array|null => {\n\t\tif ( !document.activeElement ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst activeAccordion = document.activeElement.closest( tagName );\n\t\tif ( !activeAccordion ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst activeAccordionSelector = '[accordion-trigger][accordion=\"' + activeAccordion.id + '\"]';\n\t\tconst triggers = activeAccordion.querySelectorAll( activeAccordionSelector );\n\n\t\tif ( !triggers || !triggers.length ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst out: Array = [];\n\t\ttriggers.forEach( ( el ) => {\n\t\t\tif ( el instanceof HTMLElement ) {\n\t\t\t\tout.push( el );\n\t\t\t}\n\t\t} );\n\n\t\treturn out;\n\t};\n\n\t// Handle keydown events\n\tconst keydownHandler = ( event: KeyboardEvent ): void => {\n\t\tconst target = event.target;\n\t\tif ( !target || !( target instanceof HTMLElement ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !target.hasAttribute( 'accordion-trigger' ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst key = event.which.toString();\n\t\tif ( !key ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// 33 = Page Up, 34 = Page Down\n\t\tconst ctrlModifier = ( event.ctrlKey && key.match( /33|34/ ) );\n\n\t\t// Up/ Down arrow and Control + Page Up/ Page Down keyboard operations\n\t\t// 38 = Up, 40 = Down\n\t\tif ( key.match( /38|40/ ) || ctrlModifier ) {\n\t\t\tconst triggers = getTriggers();\n\t\t\tif ( !triggers ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst index = triggers.indexOf( target );\n\t\t\tconst direction = ( key.match( /34|40/ ) ) ? 1 : -1;\n\t\t\tconst length = triggers.length;\n\t\t\tconst newIndex = ( index + length + direction ) % length;\n\n\t\t\ttriggers[newIndex].focus();\n\n\t\t\tevent.preventDefault();\n\n\t\t\t// 35 = End, 36 = Home keyboard operations\n\t\t} else if ( key.match( /35|36/ ) ) {\n\t\t\tconst triggers = getTriggers();\n\t\t\tif ( !triggers ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tswitch ( key ) {\n\n\t\t\t// Go to first accordion\n\t\t\tcase '36':\n\t\t\t\ttriggers[0].focus();\n\t\t\t\tbreak;\n\n\t\t\t\t// Go to last accordion\n\t\t\tcase '35':\n\t\t\t\ttriggers[triggers.length - 1].focus();\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tevent.preventDefault();\n\t\t}\n\t};\n\n\tdocument.addEventListener( 'keydown', keydownHandler );\n}\n","import { MrAccordion } from 'mr-interactive';\n\ncustomElements.define( 'mr-accordion', MrAccordion );\n","interface StateMachineElement extends HTMLElement {\n\tupdateState ( state: string ): void\n}\n\nexport class MrInputSink extends HTMLElement {\n\tstatic get observedAttributes(): Array {\n\t\treturn [\n\t\t\t'directive',\n\t\t\t'disabled',\n\t\t\t'for',\n\t\t\t'keys',\n\t\t];\n\t}\n\n\t// Event Handlers\n\t#clickHandler = ( e: MouseEvent ): void => {\n\t\tif ( this.disabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( e && e.metaKey ) { // ignore clicks with modifier keys : shift, ctrl, alt,...\n\t\t\treturn;\n\t\t}\n\n\t\te.preventDefault();\n\t\te.stopPropagation();\n\n\t\tthis.trigger();\n\t};\n\n\t#keydownHandler = ( e: KeyboardEvent ): void => {\n\t\tif ( this.disabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !e.key ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst keysMiss = ( this.keys.indexOf( e.key.toString() ) ) === -1;\n\t\tif ( keysMiss ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst forEl = this.forEl;\n\t\tif ( !forEl ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ( document.activeElement !== forEl ) && ( !forEl.contains( document.activeElement ) ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.trigger();\n\t};\n\n\tconstructor() {\n\t\t// If you define a constructor, always call super() first!\n\t\t// This is specific to CE and required by the spec.\n\t\tsuper();\n\t}\n\n\t// Life cycle\n\tconnectedCallback(): void {\n\t\tthis._addEventListeners();\n\t}\n\n\tdisconnectedCallback(): void {\n\t\tthis._removeEventListeners();\n\t}\n\n\t// Attributes\n\tsetAttribute( attr: string, value: string ): void {\n\t\tif ( this.disabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsuper.setAttribute( attr, value );\n\t}\n\n\tremoveAttribute( attr: string ): void {\n\t\tif ( this.disabled && attr !== 'disabled' ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsuper.removeAttribute( attr );\n\t}\n\n\tget directive(): string|null {\n\t\treturn this.getAttribute( 'directive' );\n\t}\n\n\tset directive( value: string|null ) {\n\t\tif ( value ) {\n\t\t\tthis.setAttribute( 'directive', value );\n\t\t} else {\n\t\t\tthis.removeAttribute( 'directive' );\n\t\t}\n\t}\n\n\tget disabled(): boolean {\n\t\treturn this.hasAttribute( 'disabled' );\n\t}\n\n\tset disabled( value: boolean ) {\n\t\tif ( value ) {\n\t\t\tthis.setAttribute( 'disabled', '' );\n\t\t} else {\n\t\t\tthis.removeAttribute( 'disabled' );\n\t\t}\n\t}\n\n\tget forEl(): StateMachineElement|null {\n\t\tconst forID = this.getAttribute( 'for' );\n\t\tif ( !forID ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst el = document.getElementById( forID ) as StateMachineElement;\n\t\tif ( typeof el.updateState !== 'function' ) {\n\t\t\treturn null;\n\t\t}\n\n\t\treturn el;\n\t}\n\n\tset forEl( el: StateMachineElement|null ) {\n\t\tif ( !el ) {\n\t\t\tthis.removeAttribute( 'for' );\n\n\t\t\treturn;\n\t\t}\n\n\t\tif ( el.id ) {\n\t\t\tthis.setAttribute( 'for', el.id );\n\n\t\t\treturn;\n\t\t}\n\t}\n\n\tget keys(): Array {\n\t\tconst value = this.getAttribute( 'keys' );\n\t\tif ( !value ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn value.split( ' ' );\n\t}\n\n\tset keys( value: Array ) {\n\t\tif ( value ) {\n\t\t\tthis.setAttribute( 'keys', value.join( ' ' ) );\n\t\t} else {\n\t\t\tthis.removeAttribute( 'keys' );\n\t\t}\n\t}\n\n\tattributeChangedCallback( attrName: string, oldVal: string, newVal: string ): void {\n\t\tif ( attrName === 'disabled' ) {\n\t\t\tthis._removeEventListeners();\n\t\t\tif ( newVal === null ) {\n\t\t\t\tthis._addEventListeners();\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\t}\n\n\t_addEventListeners(): void {\n\t\tthis.addEventListener( 'click', this.#clickHandler );\n\n\t\tdocument.addEventListener( 'keydown', this.#keydownHandler );\n\t}\n\n\t_removeEventListeners(): void {\n\t\tthis.removeEventListener( 'click', this.#clickHandler );\n\n\t\tdocument.removeEventListener( 'keydown', this.#keydownHandler );\n\t}\n\n\ttrigger(): void {\n\t\tif ( this.disabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst directive = this.directive;\n\t\tif ( !directive ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst forEl = this.forEl;\n\t\tif ( !forEl ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// forEl must be a state machine that implements \"updateState(directive)\"\n\t\tif ( !forEl.updateState ) {\n\t\t\treturn;\n\t\t}\n\n\t\tforEl.updateState( directive );\n\t}\n}\n","import { MrInputSink } from 'mr-interactive';\n\ncustomElements.define( 'mr-input-sink', MrInputSink );\n","const query = window.matchMedia( '(prefers-reduced-motion: reduce)' );\n\nexport function prefersReducedMotion(): boolean {\n\treturn query.matches;\n}\n","import { prefersReducedMotion } from 'prefers-reduced-motion';\n\nfunction getMaxTiming( timing: EffectTiming ): number {\n\tlet max = 0;\n\n\tif ( ( timing.delay ?? 0 ) > max ) {\n\t\tmax = timing.delay ?? max;\n\t}\n\n\tif ( ( timing.endDelay ?? 0 ) > max ) {\n\t\tmax = timing.endDelay ?? max;\n\t}\n\n\tif ( timing.duration === 'auto' ) {\n\t\t// noop\n\t} else if ( typeof timing.duration === 'number' && timing.duration > max ) {\n\t\tmax = timing.duration;\n\t}\n\n\treturn max;\n}\n\nfunction scaleToMaxTiming( timing: EffectTiming, max: number ): EffectTiming {\n\ttiming.delay = timing.delay ? timing.delay / max : 0;\n\ttiming.endDelay = timing.endDelay ? timing.endDelay / max : 0;\n\n\tif ( timing.duration === 'auto' ) {\n\t\ttiming.duration = 1;\n\t} else if ( typeof timing.duration === 'number' ) {\n\t\ttiming.duration = timing.duration / max;\n\t}\n\n\tif ( timing.iterations === Infinity ) {\n\t\ttiming.iterations = 1.0;\n\t}\n\n\treturn timing;\n}\n\n// Keep the same timing scale, just make it all very small\nfunction reduceMotion( keyframeEffects: KeyframeEffect[] ): void {\n\tif ( !( 'KeyframeEffect' in window ) || ( typeof KeyframeEffect === 'undefined' ) ) {\n\t\treturn;\n\t}\n\n\tif ( !KeyframeEffect.prototype.getTiming ) {\n\t\treturn;\n\t}\n\n\tif ( !KeyframeEffect.prototype.updateTiming ) {\n\t\treturn;\n\t}\n\n\tlet maxTiming = 0;\n\tkeyframeEffects.forEach( ( keyframeEffect ) => {\n\t\tconst newMax = getMaxTiming( keyframeEffect.getTiming() );\n\t\tif ( newMax > maxTiming ) {\n\t\t\tmaxTiming = newMax;\n\t\t}\n\t} );\n\n\tkeyframeEffects.forEach( ( keyframeEffect ) => {\n\t\tkeyframeEffect.updateTiming(\n\t\t\tscaleToMaxTiming(\n\t\t\t\tkeyframeEffect.getTiming(),\n\t\t\t\tmaxTiming\n\t\t\t)\n\t\t);\n\t} );\n}\n\n/**\n * Plays all animations and resolves when all animations are done.\n * Is aware of \"prefers-reduced-motion\"\n * @param {KeyframeEffect[]} keyframeEffects Collection of KeyFrameEffects to play and wait for.\n */\nexport function playAllAnimations( keyframeEffects: KeyframeEffect[] ): Promise {\n\tconst promises: Promise[] = [];\n\n\tif ( prefersReducedMotion() ) {\n\t\t// Very short animation without any delays\n\t\treduceMotion( keyframeEffects );\n\t}\n\n\tkeyframeEffects.forEach( ( keyframeEffect ) => {\n\t\tpromises.push( new Promise( ( resolve ) => {\n\t\t\tconst animation = new Animation( keyframeEffect, document.timeline );\n\t\t\tanimation.onfinish = ( (): void => {\n\t\t\t\tresolve();\n\t\t\t} );\n\n\t\t\tanimation.play();\n\t\t} ) );\n\t} );\n\n\treturn Promise.all( promises );\n}\n","import { playAllAnimations } from 'play-all-animations';\nimport { bugsnagClient } from 'bugsnag-config';\n\ndeclare global {\n\tinterface Element {\n\t\tinert: boolean\n\t}\n}\n\nexport class MrDialog extends HTMLElement {\n\tstatic get observedAttributes(): Array {\n\t\treturn [\n\t\t\t'disabled',\n\t\t\t'state',\n\t\t];\n\t}\n\n\t// https://www.w3.org/TR/wai-aria-practices-1.1/#keyboard-interaction-7\n\t// Escape: Closes the dialog.\n\t#escapeHandler = ( e: KeyboardEvent ): void => {\n\t\tif ( e.code !== 'Escape' ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( ( document.activeElement !== this ) && ( !this.contains( document.activeElement ) ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.updateState( 'close' );\n\t}\n\n\t#previousActiveElement: HTMLElement|null = null;\n\n\tconstructor() {\n\t\t// If you define a constructor, always call super() first!\n\t\t// This is specific to CE and required by the spec.\n\t\tsuper();\n\t}\n\n\tconnectedCallback(): void {\n\t\t// Default State\n\t\tif ( !this.state ) {\n\t\t\tthis.state = 'closed';\n\t\t\tthis.inert = true;\n\t\t}\n\t}\n\n\tdisconnectedCallback(): void {\n\t\t// https://www.w3.org/TR/wai-aria-practices-1.1/#keyboard-interaction-7\n\t\t// Escape: Closes the dialog.\n\t\tdocument.removeEventListener( 'keydown', this.#escapeHandler );\n\t}\n\n\t// Attributes\n\tsetAttribute( attr: string, value: string ): void {\n\t\tif ( this.disabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( attr === 'state' ) {\n\t\t\tconst states = [\n\t\t\t\t'opening',\n\t\t\t\t'open',\n\t\t\t\t'closing',\n\t\t\t\t'closed',\n\t\t\t\t'broken',\n\t\t\t];\n\n\t\t\tif ( states.indexOf( value ) === -1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tsuper.setAttribute( 'state', value );\n\n\t\t\treturn;\n\t\t}\n\n\t\tsuper.setAttribute( attr, value );\n\t}\n\n\tremoveAttribute( attr: string ): void {\n\t\tif ( this.disabled && attr !== 'disabled' ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsuper.removeAttribute( attr );\n\t}\n\n\tget disabled(): boolean {\n\t\treturn this.hasAttribute( 'disabled' );\n\t}\n\n\tset disabled( value: boolean ) {\n\t\tif ( value ) {\n\t\t\tthis.setAttribute( 'disabled', '' );\n\t\t} else {\n\t\t\tthis.removeAttribute( 'disabled' );\n\t\t}\n\t}\n\n\tget state() :string {\n\t\treturn this.getAttribute( 'state' ) || '';\n\t}\n\n\tset state( value: string ) {\n\t\tthis.setAttribute( 'state', value );\n\t}\n\n\t/**\n\t * Update the state of the dialog\n\t * @param {string} directive The directive for the state machine\n\t * @return\n\t */\n\tasync updateState( directive: string ): Promise {\n\t\tif ( this.disabled ) {\n\t\t\treturn;\n\t\t}\n\n\t\ttry {\n\n\t\t\tswitch ( this.state ) {\n\t\t\tcase 'closed':\n\t\t\t\tswitch ( directive ) {\n\t\t\t\tcase 'open':\n\t\t\t\t\tawait this.willOpen();\n\t\t\t\t\t// Store current focus\n\t\t\t\t\tthis.#previousActiveElement = document.activeElement instanceof HTMLElement ? document.activeElement : null;\n\n\t\t\t\t\t// Update focusability\n\t\t\t\t\tthis.inert = false;\n\n\t\t\t\t\t// Update state\n\t\t\t\t\tthis.state = 'opening';\n\n\t\t\t\t\t// Set focus\n\t\t\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\t\t\t// https://www.w3.org/TR/wai-aria-practices-1.1/#keyboard-interaction-7\n\t\t\t\t\t\t// When a dialog opens, focus placement depends on the nature and size of the content.\n\t\t\t\t\t\t// In all circumstances, focus moves to an element contained in the dialog.\n\t\t\t\t\t\tthis.firstFocusableElement().focus();\n\t\t\t\t\t} );\n\n\t\t\t\t\tawait playAllAnimations( this.openAnimations() );\n\n\t\t\t\t\tawait this.didOpen();\n\n\t\t\t\t\t// Update state\n\t\t\t\t\tthis.state = 'open';\n\n\t\t\t\t\t// https://www.w3.org/TR/wai-aria-practices-1.1/#keyboard-interaction-7\n\t\t\t\t\t// Escape: Closes the dialog.\n\t\t\t\t\tdocument.addEventListener( 'keydown', this.#escapeHandler );\n\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase 'open':\n\t\t\t\tswitch ( directive ) {\n\t\t\t\tcase 'close':\n\t\t\t\t\tawait this.willClose();\n\n\t\t\t\t\t// Update focusability\n\t\t\t\t\tthis.inert = true;\n\n\t\t\t\t\t// Update state\n\t\t\t\t\tthis.state = 'closing';\n\n\t\t\t\t\t// Reset current focus\n\t\t\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\t\t\tif ( this.#previousActiveElement ) {\n\t\t\t\t\t\t\tthis.#previousActiveElement.focus();\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\n\t\t\t\t\tawait playAllAnimations( this.closeAnimations() );\n\n\t\t\t\t\tawait this.didClose();\n\n\t\t\t\t\t// Update state\n\t\t\t\t\tthis.state = 'closed';\n\n\t\t\t\t\t// https://www.w3.org/TR/wai-aria-practices-1.1/#keyboard-interaction-7\n\t\t\t\t\t// Escape: Closes the dialog.\n\t\t\t\t\twindow.removeEventListener( 'keydown', this.#escapeHandler );\n\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t}\n\n\t\t} catch ( err ) {\n\t\t\tthis.state = 'broken';\n\t\t\tthis.disabled = true;\n\n\t\t\tconsole.warn( err );\n\n\t\t\tbugsnagClient.notify( err );\n\n\t\t\tthis.gracefullShutdown();\n\t\t}\n\t}\n\n\t/**\n\t * Called when an unexpected error occurs.\n\t * Make sure to do all needed cleanup.\n\t */\n\tgracefullShutdown(): void {\n\t\tthis.inert = true;\n\t}\n\n\t/**\n\t * Called before transitioning to the \"open\" state\n\t * Optionally implement this in your sub class\n\t */\n\tasync willOpen(): Promise {\n\t\tawait Promise.resolve();\n\t}\n\n\t/**\n\t * Called after transitioning to the \"open\" state\n\t * Optionally implement this in your sub class\n\t */\n\tasync didOpen(): Promise {\n\t\tawait Promise.resolve();\n\t}\n\n\t/**\n\t * Called before transitioning to the \"closed\" State\n\t * Optionally implement this in your sub class\n\t */\n\tasync willClose(): Promise {\n\t\tawait Promise.resolve();\n\t}\n\n\t/**\n\t * Called after transitioning to the \"closed\" state\n\t * Optionally implement this in your sub class\n\t */\n\tasync didClose(): Promise {\n\t\tawait Promise.resolve();\n\t}\n\n\t/**\n\t * The animations to play and wait for when opening the dialog\n\t * Optionally implement this in your sub class\n\t * @return {Array} The KeyframeEffects to play\n\t */\n\topenAnimations(): Array {\n\t\treturn [];\n\t}\n\n\t/**\n\t * The animations to play and wait for when closing the dialog\n\t * Implement this in your sub class\n\t * @return {Array} The KeyframeEffects to play\n\t */\n\tcloseAnimations(): Array {\n\t\treturn [];\n\t}\n\n\t// https://www.w3.org/TR/wai-aria-practices-1.1/#keyboard-interaction-7\n\t// When a dialog opens, focus placement depends on the nature and size of the content.\n\t// - In all circumstances, focus moves to an element contained in the dialog.\n\t// - Unless a condition where doing otherwise is advisable,\n\t// focus is initially set on the first focusable element.\n\t// - If content is large enough that focusing the first interactive element could cause the beginning of content to scroll out of view,\n\t// it is advisable to add tabindex=-1 to a static element at the top of the dialog,\n\t// such as the dialog title or first paragraph, and initially focus that element.\n\t// - If a dialog contains the final step in a process that is not easily reversible,\n\t// such as deleting data or completing a financial transaction,\n\t// it may be advisable to set focus on the least destructive action,\n\t// especially if undoing the action is difficult or impossible.\n\t// The Alert Dialog Pattern is often employed in such circumstances.\n\t// - If a dialog is limited to interactions that either provide additional information or continue processing,\n\t// it may be advisable to set focus to the element that is likely to be most frequently used,\n\t// such as an OK or Continue button.\n\tfirstFocusableElement(): HTMLElement {\n\t\tif ( !this.parentNode ) {\n\t\t\treturn this;\n\t\t}\n\n\t\tconst firstFocusableChild = this.querySelector( 'button, [href], input, radio, select, textarea, [tabindex]' );\n\t\tif ( firstFocusableChild && firstFocusableChild instanceof HTMLElement ) {\n\t\t\treturn firstFocusableChild;\n\t\t}\n\n\t\treturn this;\n\t}\n}\n","import { MrDialog } from '../mr-dialog/mr-dialog';\n\ndeclare global {\n\tinterface Element {\n\t\tinert: boolean\n\t}\n}\n\nexport class MrModalDialog extends MrDialog {\n\t/**\n\t * Called when an unexpected error occurs.\n\t * Make sure to do all needed cleanup.\n\t */\n\tgracefullShutdown(): void {\n\t\tsuper.gracefullShutdown();\n\n\t\tArray.from( document.body.children ).forEach( ( child ) => {\n\t\t\tif ( child === this ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tchild.inert = false;\n\t\t} );\n\t}\n\n\t/**\n\t * Called before transitioning to the \"open\" state\n\t * Updates focusability\n\t */\n\tasync willOpen(): Promise {\n\t\tawait super.willOpen();\n\n\t\t// Update focusability\n\t\t// https://www.w3.org/TR/wai-aria-practices-1.1/#dialog_modal\n\t\t// Windows under a modal dialog are inert.\n\t\t// That is, users cannot interact with content outside an active dialog window.\n\t\t// Inert content outside an active dialog is typically visually obscured or dimmed\n\t\t// so it is difficult to discern, and in some implementations,\n\t\t// attempts to interact with the inert content cause the dialog to close.\n\t\tArray.from( document.body.children ).forEach( ( child ) => {\n\t\t\tif ( child === this ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tchild.inert = true;\n\t\t} );\n\t}\n\n\t/**\n\t * Called before transitioning to the \"closed\" State\n\t * Updates focusability\n\t */\n\tasync willClose(): Promise {\n\t\tawait super.willClose();\n\n\t\t// Update focusability\n\t\t// https://www.w3.org/TR/wai-aria-practices-1.1/#dialog_modal\n\t\t// Windows under a modal dialog are inert.\n\t\t// That is, users cannot interact with content outside an active dialog window.\n\t\t// Inert content outside an active dialog is typically visually obscured or dimmed\n\t\t// so it is difficult to discern, and in some implementations,\n\t\t// attempts to interact with the inert content cause the dialog to close.\n\t\tArray.from( document.body.children ).forEach( ( child ) => {\n\t\t\tif ( child === this ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tchild.inert = false;\n\t\t} );\n\t}\n}\n","import { MrModalDialog } from 'mr-interactive';\n\nclass MrNavigationOverview extends MrModalDialog {}\n\ncustomElements.define( 'mr-navigation-overview', MrNavigationOverview );\n","// https://stackoverflow.com/a/51819649/4263818\nexport const distance = ( lo1, la1, lo2, la2 ) => {\n\tconst radla1 = Math.PI * la1 / 180;\n\tconst radla2 = Math.PI * la2 / 180;\n\tconst theta = lo1 - lo2;\n\tconst radtheta = Math.PI * theta / 180;\n\tlet dist = Math.sin( radla1 ) * Math.sin( radla2 ) + Math.cos( radla1 ) * Math.cos( radla2 ) * Math.cos( radtheta );\n\n\tif ( dist > 1 ) {\n\t\tdist = 1;\n\t}\n\n\tdist = Math.acos( dist );\n\tdist = dist * 180 / Math.PI;\n\tdist = dist * 60 * 1.1515;\n\n\t// There normally is a conversion to kilometers here, but we don't care about the actual value\n\n\treturn dist;\n};\n\n// Expects : [{ la: ..., lo: ... }, { la: ..., lo: ... }]\nexport const sortedElementsWithLoLaByDistanceTo = ( lo, la, elements ) => {\n\telements.forEach( ( element ) => {\n\t\tif ( !element.lo || !element.la ) {\n\t\t\t// Will be sorted last\n\t\t\telement.distance = Number.MAX_SAFE_INTEGER;\n\n\t\t\treturn;\n\t\t}\n\n\t\telement.distance = distance( lo, la, element.lo, element.la );\n\t} );\n\n\telements.sort( ( a, b ) => {\n\t\treturn a.distance - b.distance;\n\t} );\n\n\treturn elements;\n};\n\n// Expects : [{ points: [...] }, { points: [...] }]\n//\n// Each element can have multiple points\n// - loop all elements\n// - loop all points in an element\n// - set a distance on each point\n// - sort all points\n// - sort all elements by the distance on the first point\n// -> return sorted elements\nexport const sortedElementsWithMultiplePointsByDistanceTo = ( lo, la, elements ) => {\n\tif ( !elements || !elements.length ) {\n\t\treturn elements;\n\t}\n\n\telements = elements.filter( ( element ) => {\n\t\treturn ( element.points && element.points.length );\n\t} );\n\n\telements.forEach( ( element ) => {\n\t\telement.points = sortedElementsWithLoLaByDistanceTo( lo, la, element.points );\n\t} );\n\n\telements.sort( ( a, b ) => {\n\t\tconst aDist = a.points[0].distance;\n\t\tconst bDist = b.points[0].distance;\n\n\t\treturn aDist - bDist;\n\t} );\n\n\treturn elements;\n};\n","export const fetchAllEstablishments = async() => {\n\tlet lang = 'nl';\n\tif ( document.documentElement && document.documentElement.getAttribute ) {\n\t\tlang = document.documentElement.getAttribute( 'lang' ) || 'nl';\n\t}\n\n\tconst resp = await fetch( `/wp-json/establishments/all.json?lang=${lang}` );\n\tif ( !resp.ok ) {\n\t\treturn;\n\t}\n\n\tconst data = await resp.json();\n\n\treturn data;\n};\n\nexport const fetchAllEstablishmentsAsGeoJSON = async() => {\n\tconst data = await fetchAllEstablishments();\n\n\tconst out = {\n\t\ttype: 'FeatureCollection',\n\t\tfeatures: [],\n\t};\n\n\tdata.forEach( ( establishment ) => {\n\t\tif (\n\t\t\t!establishment ||\n\t\t\t!establishment.points ||\n\t\t\t!establishment.points.length\n\t\t) {\n\t\t\treturn;\n\t\t}\n\n\t\testablishment.points.forEach( ( point ) => {\n\t\t\tif ( !point || !point.la || !point.lo ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// NOTE : hidden locations are used to mess with the location lookup, do not display them here\n\t\t\tif ( point.hidden === true ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tout.features.push( {\n\t\t\t\ttype: 'Feature',\n\t\t\t\tgeometry: {\n\t\t\t\t\ttype: 'Point',\n\t\t\t\t\tcoordinates: [\n\t\t\t\t\t\tpoint.lo,\n\t\t\t\t\t\tpoint.la,\n\t\t\t\t\t],\n\t\t\t\t},\n\t\t\t\tproperties: {\n\t\t\t\t\ttitle: establishment.title,\n\t\t\t\t\tid: establishment.id,\n\t\t\t\t\tlo: point.lo,\n\t\t\t\t\tla: point.la,\n\t\t\t\t},\n\t\t\t} );\n\t\t} );\n\t} );\n\n\treturn out;\n};\n\nexport const fetchEstablishmentPartial = async( id, variant = 'establishments' ) => {\n\tif ( !id ) {\n\t\treturn Promise.resolve();\n\t}\n\n\tlet lang = 'nl';\n\tif ( document.documentElement && document.documentElement.getAttribute ) {\n\t\tlang = document.documentElement.getAttribute( 'lang' ) || 'nl';\n\t}\n\n\tconst resp = await fetch( `/wp-json/establishments/banner.json?id=${id}&variant=${variant}&lang=${lang}` );\n\tif ( !resp.ok ) {\n\t\treturn;\n\t}\n\n\tconst data = await resp.json();\n\n\treturn data;\n};\n\nexport const fetchEstablishmentPartials = async( ids, variant = 'establishments' ) => {\n\tif ( !ids || !ids.length ) {\n\t\treturn Promise.resolve( [] );\n\t}\n\n\tconst promises = [];\n\tids.forEach( ( id ) => {\n\t\tpromises.push( fetchEstablishmentPartial( id, variant ) );\n\t} );\n\n\treturn Promise.all( promises ).then( ( responses ) => {\n\t\treturn responses.filter( ( response ) => {\n\t\t\treturn !!response;\n\t\t} );\n\t} );\n};\n","import toTitleCase from './title-case';\n\nexport const fetchMapboxLocation = async( query ) => {\n\tif ( !query ) {\n\t\treturn;\n\t}\n\n\tlet lang = 'nl';\n\tif ( document.documentElement && document.documentElement.getAttribute ) {\n\t\tlang = document.documentElement.getAttribute( 'lang' ) || 'nl';\n\t}\n\n\tconst titleCasedQuery = toTitleCase( query );\n\n\t// Debug log : we keep this for now to quickly check what this functionality does and why\n\tconsole.log( `geo : query – \"${query}\"` );\n\tconsole.log( `geo : title cased – \"${titleCasedQuery}\"` );\n\n\tconst resp = await fetch( `https://api.mapbox.com/geocoding/v5/mapbox.places/${titleCasedQuery}.json?country=be&types=region,postcode,district,place,locality,neighborhood,address&language=${lang}&autocomplete=false&access_token=pk.eyJ1IjoibXJoZW5yeS1zZXJlbmkiLCJhIjoiY2theHA5dnJwMDY1bzMycGlmYzF4NzJ3bSJ9.SenMTE8DVtIviq0Xq6kpIA` );\n\tif ( !resp.ok ) {\n\t\treturn;\n\t}\n\n\tconst data = await resp.json();\n\n\treturn data;\n};\n\nexport const fetchMapboxLocationLoLa = async( query ) => {\n\tconst override = queryOverrides( query );\n\tif ( override ) {\n\t\treturn override;\n\t}\n\n\tconst data = await fetchMapboxLocation( query );\n\tconst loLa = mapboxLoLaFromLocation( data );\n\n\treturn loLa;\n};\n\nconst mapboxLoLaFromLocation = ( data ) => {\n\tif ( !data || !data.features ) {\n\t\treturn;\n\t}\n\n\tconst result = data.features;\n\tif ( !result.length ) {\n\t\treturn;\n\t}\n\n\tconst firstResult = result[0];\n\tif ( !firstResult.center ) {\n\t\treturn;\n\t}\n\n\tif ( firstResult.place_name ) {\n\t\t// Debug log : we keep this for now to quickly check what this functionality does and why\n\t\tconsole.log( `geo : place name – \"${firstResult.place_name}\"` );\n\t}\n\n\tif ( !firstResult.center.length || firstResult.center.length !== 2 ) {\n\t\treturn;\n\t}\n\n\t// Debug log : we keep this for now to quickly check what this functionality does and why\n\tconsole.log( `geo : lo – \"${firstResult.center[0]}\"` );\n\tconsole.log( `geo : la – \"${firstResult.center[1]}\"` );\n\n\treturn {\n\t\tlo: firstResult.center[0],\n\t\tla: firstResult.center[1],\n\t};\n};\n\nconst queryOverrides = ( query ) => {\n\tconst overrides = {\n\t\t/* eslint-disable quote-props, object-property-newline, object-curly-newline */\n\t\t'1043': { lo: 4.4028936, la: 50.853531 },\n\t\t'1044': { lo: 4.4034678, la: 50.8522062 },\n\t\t'1804': { lo: 4.4291786, la: 50.9480716 },\n\t\t'1818': { lo: 4.3981412, la: 50.9136056 },\n\t\t'1931': { lo: 4.4350213, la: 50.9125785 },\n\t\t'1935': { lo: 4.4607645, la: 50.8918303 },\n\t\t'abtsdal': { lo: 4.3678486, la: 50.9243814 },\n\t\t'bavikhove': { lo: 3.3113238, la: 50.8753958 },\n\t\t'beekkant': { lo: 4.3666685, la: 50.9333328 },\n\t\t'beigem': { lo: 4.366065, la: 50.9528359 },\n\t\t'berchem-bos': { lo: 4.4418293, la: 51.1878805 },\n\t\t'berchem': { lo: 4.4188392, la: 51.1955771 },\n\t\t'bever': { lo: 4.3344069, la: 50.9137861 },\n\t\t'bissegem': { lo: 3.2280976, la: 50.8241086 },\n\t\t'blekte': { lo: 4.0284607, la: 50.9569602 },\n\t\t'boechout': { lo: 4.3285409, la: 50.9222206 },\n\t\t'boekt': { lo: 4.4969702, la: 50.9552301 },\n\t\t'borcht': { lo: 4.4040531, la: 50.9281414 },\n\t\t'borgerhout': { lo: 4.4368144, la: 51.2225341 },\n\t\t'brabantwijk': { lo: 4.3658638, la: 50.8643695 },\n\t\t'brand': { lo: 4.4056088, la: 51.1852007 },\n\t\t'brem': { lo: 4.3790174, la: 51.1750585 },\n\t\t'catersvelden': { lo: 4.4511795, la: 51.2534296 },\n\t\t'collignon': { lo: 4.3760079, la: 50.8692042 },\n\t\t'dailly': { lo: 4.3833143, la: 50.8558975 },\n\t\t'den dam': { lo: 4.4270316, la: 51.2333207 },\n\t\t'deurne': { lo: 4.4594353, la: 51.2218805 },\n\t\t'deurnebrug': { lo: 4.4635499, la: 51.2448791 },\n\t\t'deuzeld': { lo: 4.4442487, la: 51.2314044 },\n\t\t'diamant': { lo: 4.4176412, la: 51.2144212 },\n\t\t'diegem': { lo: 4.4362631, la: 50.8940396 },\n\t\t'dieleghem': { lo: 4.3188876, la: 50.885487 },\n\t\t'doel': { lo: 4.2649752, la: 51.3105969 },\n\t\t'driekoningen': { lo: 4.467423, la: 51.2081924 },\n\t\t'duivelshoek': { lo: 4.3889093, la: 51.1659198 },\n\t\t'eilandje': { lo: 4.4096583, la: 51.235424 },\n\t\t'ekeren': { lo: 4.4181413, la: 51.2773404 },\n\t\t'elewijt': { lo: 4.4964552, la: 50.9618495 },\n\t\t'elsdonk': { lo: 4.4271094, la: 51.1638712 },\n\t\t'eppegem': { lo: 4.4544303, la: 50.9621232 },\n\t\t'ertbrugge': { lo: 4.481113, la: 51.2292983 },\n\t\t'essegem': { lo: 4.3358606, la: 50.8783609 },\n\t\t'esseghem': { lo: 4.3358606, la: 50.8783609 },\n\t\t'far west': { lo: 4.4341904, la: 50.9371209 },\n\t\t'faubourg': { lo: 4.4399196, la: 50.9290999 },\n\t\t'grimbergen': { lo: 4.3732552, la: 50.9335899 },\n\t\t'groen kwartier': { lo: 4.4195884, la: 51.2021796 },\n\t\t'groenenhoek': { lo: 4.447757, la: 51.196719 },\n\t\t'groot molenveld': { lo: 4.3958938, la: 50.9242055 },\n\t\t'gullegem': { lo: 3.1989741, la: 50.8447684 },\n\t\t'haeren': { lo: 4.4176727, la: 50.8922905 },\n\t\t'hamme': { lo: 4.2806125, la: 50.9204181 },\n\t\t'harelbeke': { lo: 3.3106613, la: 50.8566764 },\n\t\t'haren-sud': { lo: 4.4212809, la: 50.8815002 },\n\t\t'haren': { lo: 4.4176727, la: 50.8922905 },\n\t\t'haringrode': { lo: 4.4224906, la: 51.2046551 },\n\t\t'harmonie': { lo: 4.406746, la: 51.20525 },\n\t\t'helmet': { lo: 4.3892688, la: 50.8739199 },\n\t\t'hertogvelden': { lo: 4.3412089, la: 51.1756 },\n\t\t'het voor': { lo: 4.373551, la: 50.9136322 },\n\t\t'heule': { lo: 3.2347226, la: 50.8431967 },\n\t\t'heusden': { lo: 3.8036942, la: 51.0327989 },\n\t\t'hoboken': { lo: 4.3610792, la: 51.1787963 },\n\t\t'hofstade': { lo: 4.0317903, la: 50.9608451 },\n\t\t'houtem': { lo: 4.46048, la: 50.94859 },\n\t\t'humbeek': { lo: 4.3795109, la: 50.9672315 },\n\t\t'ijzerbrug': { lo: 4.4509488, la: 51.2419205 },\n\t\t'josaphat': { lo: 4.3772981, la: 50.8674164 },\n\t\t'kassei': { lo: 4.4059467, la: 50.9202423 },\n\t\t'kiel': { lo: 4.3836308, la: 51.1890842 },\n\t\t'kievitwijk': { lo: 4.4246176, la: 51.2130938 },\n\t\t'klaverken': { lo: 3.7972704, la: 51.0374795 },\n\t\t'klein molenveld': { lo: 4.3990213, la: 50.9288683 },\n\t\t'kluizevelden': { lo: 4.4424596, la: 51.2431899 },\n\t\t'koningslo': { lo: 4.3794465, la: 50.9062364 },\n\t\t'koornbloem': { lo: 4.3821341, la: 51.1694921 },\n\t\t'kortenhoek': { lo: 4.0250784, la: 50.9635895 },\n\t\t'kortrijk': { lo: 3.2577467, la: 50.8194658 },\n\t\t'kriekenhof': { lo: 4.4564527, la: 51.2040232 },\n\t\t'kruisbaanvelden': { lo: 4.4436586, la: 51.2516703 },\n\t\t'kuurne': { lo: 3.2869989, la: 50.8539706 },\n\t\t'kwadevelden': { lo: 4.4393697, la: 51.2570908 },\n\t\t'laeken': { lo: 4.3480731, la: 50.877839 },\n\t\t'lakbors': { lo: 4.4509006, la: 51.2296795 },\n\t\t'laken': { lo: 4.3480731, la: 50.877839 },\n\t\t'lambrechtshoeken': { lo: 4.4318998, la: 51.2537604 },\n\t\t'leeuwerik': { lo: 4.5686013, la: 51.2970308 },\n\t\t'lillo': { lo: 4.28026, la: 51.30436 },\n\t\t'linkeroever': { lo: 4.391813, la: 51.2302269 },\n\t\t'luchtbal': { lo: 4.4244432, la: 51.2570203 },\n\t\t'luithagen': { lo: 4.4366205, la: 51.1743118 },\n\t\t'machelen': { lo: 4.4290137, la: 50.9140229 },\n\t\t'marke': { lo: 3.2335928, la: 50.8070105 },\n\t\t'markgrave': { lo: 4.402366, la: 51.1975527 },\n\t\t'melsbroek': { lo: 4.4787204, la: 50.9153487 },\n\t\t'merksem': { lo: 4.4485629, la: 51.2512626 },\n\t\t'merksembrug': { lo: 4.4649822, la: 51.2395293 },\n\t\t'merksemheide': { lo: 4.4662482, la: 51.2499999 },\n\t\t'middelheim': { lo: 4.4079745, la: 51.182931 },\n\t\t'mierendonk': { lo: 4.3626881, la: 50.9312993 },\n\t\t'molenbeek': { lo: 4.3303, la: 50.8522 },\n\t\t'molenveld': { lo: 4.3939009, la: 51.1741101 },\n\t\t'moretusbrug': { lo: 4.339031, la: 51.1717524 },\n\t\t'morkhoven': { lo: 4.4583839, la: 51.2111582 },\n\t\t'mutsaard': { lo: 4.3600544, la: 50.8993582 },\n\t\t'nachtegalenhof': { lo: 4.3515462, la: 51.1608115 },\n\t\t'neder-over-heembeek': { lo: 4.37188, la: 50.89622 },\n\t\t'neerland': { lo: 4.3934798, la: 51.1612102 },\n\t\t'northern quarter': { lo: 4.3574792, la: 50.8607737 },\n\t\t'ossel': { lo: 4.2787671, la: 50.9223795 },\n\t\t'oud-berchem': { lo: 4.4212514, la: 51.1968417 },\n\t\t'oude barreel': { lo: 4.458459, la: 51.2509199 },\n\t\t'oude molen': { lo: 4.3129706, la: 50.9203505 },\n\t\t'overbos': { lo: 4.3198505, la: 50.9065899 },\n\t\t'oversnes': { lo: 4.3993002, la: 51.1615298 },\n\t\t'perk': { lo: 4.4959188, la: 50.9348795 },\n\t\t'peutie': { lo: 4.4554442, la: 50.9273603 },\n\t\t'plasky': { lo: 4.3949443, la: 50.8502452 },\n\t\t'polder': { lo: 4.3089, la: 51.3592 },\n\t\t'polderstad': { lo: 4.341056, la: 51.1847754 },\n\t\t'populierendal': { lo: 4.3879169, la: 50.9202693 },\n\t\t'quartier brabant': { lo: 4.3658638, la: 50.8643695 },\n\t\t'quartier nord': { lo: 4.3574792, la: 50.8607737 },\n\t\t'ransbeek': { lo: 4.4074327, la: 50.9097493 },\n\t\t'relegem': { lo: 4.277029, la: 50.8990813 },\n\t\t'rodenburg': { lo: 3.2506764, la: 50.8043532 },\n\t\t'rooi': { lo: 4.4378006, la: 51.1845215 },\n\t\t'rozemaai': { lo: 4.4134784, la: 51.2679266 },\n\t\t'rubenkasteel': { lo: 4.4778621, la: 50.9595012 },\n\t\t'schaerbeek': { lo: 4.3772981, la: 50.8674164 },\n\t\t'schom': { lo: 4.4240785, la: 51.1828806 },\n\t\t'schoonbroek': { lo: 4.4084036, la: 51.2759879 },\n\t\t'schoonsel': { lo: 4.3551806, la: 51.1626702 },\n\t\t'schoonselhof': { lo: 4.3681322, la: 51.1656432 },\n\t\t'seefhoek': { lo: 4.427163, la: 51.2241382 },\n\t\t'sint-andries': { lo: 4.3985331, la: 51.2134215 },\n\t\t'sint job': { lo: 4.58336, la: 51.29277 },\n\t\t'slijkhoek': { lo: 4.4051689, la: 51.1737603 },\n\t\t'spaanse-linde': { lo: 4.3675697, la: 50.9213599 },\n\t\t'stasegem': { lo: 3.310318, la: 50.8318003 },\n\t\t'stapsteen': { lo: 3.8078704, la: 51.0395893 },\n\t\t'strombeek-bever': { lo: 4.3556392, la: 50.9103733 },\n\t\t'stuivenbergwijk': { lo: 4.3690825, la: 51.1719441 },\n\t\t'terdelt': { lo: 4.3911607, la: 50.8660288 },\n\t\t'valaar': { lo: 4.3825847, la: 51.1773857 },\n\t\t'vilvoorde': { lo: 4.4257868, la: 50.9272511 },\n\t\t'vilvorde': { lo: 4.4257868, la: 50.9272511 },\n\t\t'wemmel': { lo: 4.3009225, la: 50.91032 },\n\t\t'wevelgem': { lo: 3.1836319, la: 50.8089179 },\n\t\t'wijngaardveld': { lo: 4.0454096, la: 50.960471 },\n\t\t'wijveld': { lo: 4.0365502, la: 50.96512 },\n\t\t'wilrijk': { lo: 4.3942868, la: 51.1683102 },\n\t\t'woluwe': { lo: 4.43209, la: 50.84891 },\n\t\t'zandberg': { lo: 3.8138303, la: 51.0371708 },\n\t\t'zandhekken': { lo: 3.8092303, la: 51.0280706 },\n\t\t'zemst': { lo: 4.4291786, la: 50.9480716 },\n\t\t'zepten': { lo: 4.4390774, la: 51.1815792 },\n\t\t'zijp': { lo: 4.3282807, la: 50.9182301 },\n\t\t'zonneveld': { lo: 4.3747848, la: 50.9420291 },\n\t\t'zurenborg': { lo: 4.4292015, la: 51.2070246 },\n\t\t'zwaantjes': { lo: 4.3694204, la: 51.1835598 },\n\t\t// establishment names\n\t\t'allemeersch': { lo: 3.0358954, la: 51.133083 },\n\t\t'bloyart': { lo: 3.263325699999999, la: 50.83781519999999 },\n\t\t'brosse': { lo: 3.7957818, la: 51.042674 },\n\t\t'brossé': { lo: 3.7957818, la: 51.042674 },\n\t\t'd\\'haene': { lo: 3.2524617, la: 50.8142521 },\n\t\t'de hertogh': { lo: 4.3824368, la: 50.8942039 },\n\t\t'de kapel': { lo: 4.530152999999999, la: 50.99608299999999 },\n\t\t'de polder': { lo: 4.319372, la: 51.3454151 },\n\t\t'de rycke': { lo: 4.016073899999999, la: 50.90352799999999 },\n\t\t'debonne': { lo: 3.2295181, la: 50.8410001 },\n\t\t'debonné': { lo: 3.2295181, la: 50.8410001 },\n\t\t'dhaene': { lo: 3.2524617, la: 50.8142521 },\n\t\t'eilandje antwerpen': { lo: 4.4104506, la: 51.2301156 },\n\t\t'ergo & poncelet': { lo: 4.4016806, la: 50.8232595 },\n\t\t'ergo en poncelet': { lo: 4.4016806, la: 50.8232595 },\n\t\t'ergo et poncelet': { lo: 4.4016806, la: 50.8232595 },\n\t\t'ergo poncelet': { lo: 4.4016806, la: 50.8232595 },\n\t\t'feyaerts': { lo: 4.651395900000001, la: 50.973358 },\n\t\t'forrier': { lo: 4.317724599999999, la: 50.8575588 },\n\t\t'gooris & van camp': { lo: 4.554123999999999, la: 50.9948993 },\n\t\t'gooris en van camp': { lo: 4.554123999999999, la: 50.9948993 },\n\t\t'gooris et van camp': { lo: 4.554123999999999, la: 50.9948993 },\n\t\t'gooris van camp': { lo: 4.554123999999999, la: 50.9948993 },\n\t\t'groffen': { lo: 4.319372, la: 51.3454151 },\n\t\t'haast': { lo: 4.4256347, la: 51.3192287 },\n\t\t'haene': { lo: 3.2524617, la: 50.8142521 },\n\t\t'lenchant': { lo: 4.3696888, la: 51.0868364 },\n\t\t'lits': { lo: 4.4113703, la: 50.8434249 },\n\t\t'mahy': { lo: 4.3741892, la: 50.8669684 },\n\t\t'melis': { lo: 4.279490, la: 51.219550 },\n\t\t'planckaert': { lo: 3.308590, la: 50.773230 },\n\t\t'pollie': { lo: 3.1308494, la: 50.7979838 },\n\t\t'popelier': { lo: 4.436081, la: 50.8092391 },\n\t\t'quirijnen': { lo: 4.489160000000001, la: 51.2946476 },\n\t\t'rigole': { lo: 3.2379437, la: 50.82609249999999 },\n\t\t'servaty': { lo: 2.907713199999999, la: 51.21845070000001 },\n\t\t'stevens & lenchant': { lo: 4.3263251, la: 51.0419966 },\n\t\t'stevens en lenchant': { lo: 4.3263251, la: 51.0419966 },\n\t\t'stevens et lenchant': { lo: 4.3263251, la: 51.0419966 },\n\t\t'stevens lenchant': { lo: 4.3263251, la: 51.0419966 },\n\t\t'van dael': { lo: 4.1448396, la: 51.1585855 },\n\t\t'verhoeven': { lo: 3.8103065, la: 51.1985293 },\n\t\t/* eslint-enable */\n\t};\n\n\tconst clean = query.trim().toLowerCase();\n\n\treturn overrides[clean] || null;\n};\n","export default function toTitleCase( str: string ) :string {\n\treturn str.replace(\n\t\t/[a-zA-Z0-9\\u00C0-\\u017F]\\S*/g,\n\t\t( txt ) => {\n\t\t\treturn txt.charAt( 0 ).toUpperCase() + txt.substr( 1 ).toLowerCase();\n\t\t}\n\t);\n}\n","import { sortedElementsWithMultiplePointsByDistanceTo } from './distance.js';\nimport { fetchEstablishmentPartials, fetchAllEstablishments } from './api-establishments.js';\nimport { fetchMapboxLocationLoLa } from './api-mapbox.js';\n\nexport const renderEstablishmentSearchResults = async( options ) => {\n\tconst query = options.query;\n\tconst liveArea = options.liveArea;\n\tconst liveAreaLoadedMsg = options.liveAreaLoadedMsg;\n\tconst liveAreaLoadingMsg = options.liveAreaLoadingMsg;\n\tconst renderArea = options.renderArea;\n\tconst renderVariant = options.renderVariant;\n\n\tlet allEstablishments = options.allEstablishments;\n\tlet lo = options.lo;\n\tlet la = options.la;\n\n\tif ( liveArea && liveAreaLoadingMsg ) {\n\t\tliveArea.innerHTML = liveAreaLoadingMsg;\n\t}\n\n\tif ( !query ) {\n\t\treturn false;\n\t}\n\n\tconst locationData = await lookupLocationData( query );\n\tconst loLa = locationData.loLa;\n\tif ( !loLa ) {\n\t\treturn false;\n\t}\n\n\tallEstablishments = locationData.allEstablishments;\n\tlo = loLa.lo;\n\tla = loLa.la;\n\n\tlet sortedEstablishments = sortedElementsWithMultiplePointsByDistanceTo( lo, la, allEstablishments );\n\tif ( sortedEstablishments.length > 5 ) {\n\t\tsortedEstablishments = sortedEstablishments.slice( 0, 5 );\n\t}\n\n\tconst establishmentIDs = sortedEstablishments.map( ( establishment ) => {\n\t\treturn establishment.id;\n\t} );\n\n\tconst partials = await fetchEstablishmentPartials( establishmentIDs, renderVariant );\n\n\trenderArea.innerHTML = '';\n\n\tpartials.forEach( ( partial ) => {\n\t\trenderArea.innerHTML += partial.html;\n\t} );\n\n\tlet scrollToEl = false;\n\tif ( renderArea.hasAttribute( 'scroll-to-el-on-render' ) ) { // The render area might tell us to scroll to another element instead\n\t\tscrollToEl = document.getElementById( renderArea.getAttribute( 'scroll-to-el-on-render' ) );\n\t}\n\n\tif ( !scrollToEl ) {\n\t\tscrollToEl = renderArea;\n\t}\n\n\tscrollToEl.scrollIntoView( {\n\t\tbehavior: 'smooth',\n\t} );\n\n\t// Search for the first focusable element in the results\n\tconst firstFocusableElement = renderArea.querySelector( 'a' );\n\n\tif ( firstFocusableElement ) {\n\t\t/** Because we smooth scroll further down, we \"have\" to wait a while before setting focus.\n\t\t * This is \"needed\" because settings focus stops the page from (smooth) scrolling.\n\t\t * 560ms is a guesstimate, and the max amount of time we should wait before setting the focus.\n\t\t * This way AT-users don't have to wait (too) long.\n\t\t * If the scroll hasn't finished yet, it just won't land on the perfect spot. No biggie.\n\t\t */\n\t\tsetTimeout( () => {\n\t\t\twindow.requestAnimationFrame( () => {\n\t\t\t\tfirstFocusableElement.focus();\n\t\t\t} );\n\t\t}, 560 );\n\t}\n\n\tif ( liveArea && liveAreaLoadedMsg ) {\n\t\tconst result_count = allEstablishments.length || 0;\n\n\t\tif ( result_count === 1 && liveAreaLoadedMsg.singular ) {\n\t\t\tliveArea.innerHTML = result_count + ' ' + liveAreaLoadedMsg.singular;\n\t\t} else if ( result_count !== 1 && liveAreaLoadedMsg.plural ) {\n\t\t\tliveArea.innerHTML = result_count + ' ' + liveAreaLoadedMsg.plural;\n\t\t} else {\n\t\t\tliveArea.innerHTML = '';\n\t\t}\n\t}\n\n\treturn true;\n};\n\nasync function lookupLocationData( query ) {\n\tif ( !query ) {\n\t\treturn;\n\t}\n\n\treturn Promise.all( [\n\t\tfetchAllEstablishments(),\n\t\tfetchMapboxLocationLoLa( query ),\n\t] ).then( ( responses ) => {\n\t\treturn {\n\t\t\tallEstablishments: responses[0],\n\t\t\tloLa: responses[1],\n\t\t};\n\t} );\n}\n","import { renderEstablishmentSearchResults } from '../../helpers/establishments-search-results.js';\n\nclass MrEstablishmentsFinder extends HTMLElement {\n\t// https://sereni.wp.test/wp-json/establishments/all.json\n\t// https://loc.geopunt.be/v4/Location?q=2060&c=10\n\tconstructor() {\n\t\t/** If you define a constructor, always call super() first!\n\t\t * This is specific to CE and required by the spec.\n\t\t */\n\t\tsuper();\n\n\t\tthis._isBusy = false;\n\n\t\tthis._submitHandler = ( e ) => {\n\t\t\te.preventDefault();\n\t\t\te.stopPropagation();\n\n\t\t\tif ( !e.target || e.target.tagName !== 'FORM' ) {\n\t\t\t\treturn; // Poorly formed template, nothing to do here\n\t\t\t}\n\n\t\t\tconst data = new FormData( e.target );\n\t\t\tthis.render( data.get( 'query' ) );\n\t\t};\n\n\t\t// remove focus style after mouseup\n\t\t// this does not effect keyboard navigation\n\t\tthis._blurHandler = ( e ) => {\n\t\t\tif ( e.target.tagName === 'BUTTON' && e.target.type === 'submit' ) {\n\t\t\t\te.target.blur();\n\t\t\t}\n\t\t};\n\t}\n\n\tasync render( query ) {\n\t\tif ( this._isBusy ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( !query ) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._isBusy = true;\n\t\tthis.removeNotFoundState();\n\t\tthis.removeErrorState();\n\t\tthis.setLoadingState();\n\n\t\tconst liveArea = document.getElementById( this.getAttribute( 'live-region' ) );\n\t\tconst renderArea = document.getElementById( this.getAttribute( 'render-area' ) );\n\n\t\ttry {\n\t\t\tconst hasResults = await renderEstablishmentSearchResults( {\n\t\t\t\tquery: query,\n\t\t\t\tliveArea: liveArea,\n\t\t\t\tliveAreaLoadedMsg: {\n\t\t\t\t\tsingular: this.getAttribute( 'live-region-singular-loaded-message' ),\n\t\t\t\t\tplural: this.getAttribute( 'live-region-plural-loaded-message' ),\n\t\t\t\t},\n\t\t\t\tliveAreaLoadingMsg: this.getAttribute( 'live-region-loading-message' ),\n\t\t\t\trenderArea: renderArea,\n\t\t\t\trenderVariant: this.getAttribute( 'render-variant' ),\n\t\t\t} );\n\n\t\t\tif ( !hasResults ) {\n\t\t\t\tthis.setNotFoundState();\n\t\t\t}\n\n\t\t} catch ( err ) {\n\t\t\t// Error handling is hard here\n\t\t\t// Aside from dev errors (you're holding it wrong) only network and api errors can happen\n\t\t\t// Beter to have a good test for our API implementation\n\t\t\tconsole.warn( err );\n\t\t\tthis.setErrorState();\n\t\t} finally {\n\t\t\tthis._isBusy = false;\n\t\t\tthis.removeLoadingState();\n\t\t}\n\t}\n\n\tsetLoadingState() {\n\t\tthis.setAttribute( 'loading', 'loading' );\n\t}\n\n\tremoveLoadingState() {\n\t\tthis.removeAttribute( 'loading' );\n\t}\n\n\tsetErrorState() {\n\t\tthis.removeNotFoundState();\n\t\tthis.setAttribute( 'error', 'error' );\n\t}\n\n\tremoveErrorState() {\n\t\tthis.removeAttribute( 'error' );\n\t}\n\n\tsetNotFoundState() {\n\t\tthis.removeErrorState();\n\t\tthis.setAttribute( 'not-found', 'not-found' );\n\t}\n\n\tremoveNotFoundState() {\n\t\tthis.removeAttribute( 'not-found' );\n\t}\n\n\t// Life cycle\n\tconnectedCallback() {\n\t\tthis._addEventListeners();\n\n\t\t// Nested inputs have a disabled attribute to prevent submits before JS is loaded and ready\n\t\t// Remove disabled state from inputs when connected\n\t\twindow.requestAnimationFrame( () => {\n\t\t\tthis.querySelectorAll( '[disabled]' ).forEach( ( disabledEl ) => {\n\t\t\t\tdisabledEl.removeAttribute( 'disabled' );\n\t\t\t} );\n\t\t} );\n\n\t\t// Remove disabled state from inputs (just making sure here)\n\t\tsetTimeout( () => {\n\t\t\tthis.querySelectorAll( '[disabled]' ).forEach( ( disabledEl ) => {\n\t\t\t\tdisabledEl.removeAttribute( 'disabled' );\n\t\t\t} );\n\t\t}, 500 );\n\t}\n\n\tdisconnectedCallback() {\n\t\tthis._removeEventListeners();\n\n\t\ttry {\n\t\t\tconst renderArea = document.getElementById( this.getAttribute( 'render-area' ) );\n\t\t\trenderArea.innerHTML = '';\n\n\t\t\tthis.removeAttribute( 'loading' );\n\t\t\tthis.removeAttribute( 'error' );\n\n\t\t} catch ( err ) {\n\t\t\t// no fallback possible here\n\t\t\tconsole.warn( err );\n\t\t}\n\t}\n\n\t_addEventListeners() {\n\t\tthis.addEventListener( 'submit', this._submitHandler );\n\t\tthis.addEventListener( 'mouseup', this._blurHandler );\n\t}\n\n\t_removeEventListeners() {\n\t\tthis.removeEventListener( 'submit', this._submitHandler );\n\t\tthis.addEventListener( 'mouseup', this._blurHandler );\n\t}\n}\n\ncustomElements.define( 'mr-establishments-finder', MrEstablishmentsFinder );\n","import { fetchAllEstablishments, fetchAllEstablishmentsAsGeoJSON } from '../../helpers/api-establishments.js';\nimport { renderEstablishmentSearchResults } from '../../helpers/establishments-search-results.js';\n\nlet mapBoxDependenciesLoader = null;\n\nconst loadMapBoxDependencies = () => {\n\tif ( mapBoxDependenciesLoader ) {\n\t\treturn mapBoxDependenciesLoader;\n\t}\n\n\tconst mapboxVersion = 'v1.7.0';\n\n\tconst loadJS = () => {\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tconst script = document.createElement( 'script' );\n\t\t\tscript.src = `https://api.mapbox.com/mapbox-gl-js/${mapboxVersion}/mapbox-gl.js`;\n\t\t\tscript.onload = () => {\n\t\t\t\treturn resolve();\n\t\t\t};\n\t\t\tscript.onerror = () => {\n\t\t\t\treturn reject( new Error( 'mapbox gl js failed to load' ) );\n\t\t\t};\n\t\t\tscript.async = true;\n\n\t\t\tconst first = document.head.getElementsByTagName( 'script' )[0];\n\t\t\tfirst.parentNode.insertBefore( script, first );\n\t\t} );\n\t};\n\n\tconst loadCSS = () => {\n\t\treturn new Promise( ( resolve, reject ) => {\n\t\t\tconst link = document.createElement( 'link' );\n\t\t\tlink.rel = 'stylesheet';\n\t\t\tlink.href = `https://api.mapbox.com/mapbox-gl-js/${mapboxVersion}/mapbox-gl.css`;\n\t\t\tlink.onload = () => {\n\t\t\t\treturn resolve();\n\t\t\t};\n\t\t\tlink.onerror = () => {\n\t\t\t\treturn reject( new Error( 'mapbox gl css failed to load' ) );\n\t\t\t};\n\n\t\t\tconst first = document.head.getElementsByTagName( 'link' )[0];\n\t\t\tfirst.parentNode.insertBefore( link, first );\n\t\t} );\n\t};\n\n\tmapBoxDependenciesLoader = Promise.all( [\n\t\tloadJS(),\n\t\tloadCSS(),\n\t] );\n\n\treturn mapBoxDependenciesLoader;\n};\n\nconst initializeMap = ( containerId ) => {\n\treturn new Promise( ( resolve, reject ) => {\n\t\tif ( !window.mapboxgl ) {\n\t\t\treject( new Error( 'mapboxgl not found' ) );\n\n\t\t\treturn;\n\t\t}\n\n\t\twindow.mapboxgl.accessToken = 'pk.eyJ1IjoibXJoZW5yeS1zZXJlbmkiLCJhIjoiY2theHA5dnJwMDY1bzMycGlmYzF4NzJ3bSJ9.SenMTE8DVtIviq0Xq6kpIA';\n\t\tconst map = new window.mapboxgl.Map( {\n\t\t\tcontainer: containerId,\n\t\t\tstyle: 'mapbox://styles/mrhenry-sereni/ckaxt4ypv03z41illgvarncs6',\n\t\t\tcenter: [\n\t\t\t\t3.9619468,\n\t\t\t\t51.0879856,\n\t\t\t],\n\t\t\tzoom: 7,\n\t\t} );\n\n\t\tmap.dragRotate.disable();\n\t\tmap.touchZoomRotate.disableRotation();\n\t\tmap.scrollZoom.disable();\n\n\t\tconst nav = new window.mapboxgl.NavigationControl( {\n\t\t\tshowCompass: false,\n\t\t\tshowZoom: true,\n\t\t} );\n\n\t\tmap.addControl( nav, 'top-left' );\n\n\t\tmap.on( 'load', () => {\n\t\t\tresolve( map );\n\n\t\t\treturn;\n\t\t} );\n\n\t\tmap.on( 'error', ( e ) => {\n\t\t\tif ( e && e.error && e.error.message ) {\n\t\t\t\treject( new Error( e.error.message ) );\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\treject( new Error( 'mapbox map failed to initialize' ) );\n\n\t\t\treturn;\n\t\t} );\n\t} );\n};\n\nclass MrEstablishmentsMap extends HTMLElement {\n\tconstructor() {\n\t\tsuper();\n\n\t}\n\n\tconnectedCallback() {\n\t\tthis.render();\n\t}\n\n\tdisconnectedCallback() {\n\t\ttry {\n\t\t\tif ( this._map ) {\n\t\t\t\tthis._map.remove();\n\t\t\t\tthis._map = null;\n\t\t\t}\n\n\t\t\tconst messageArea = document.getElementById( this.getAttribute( 'message-area' ) );\n\t\t\tif ( messageArea ) {\n\t\t\t\tmessageArea.innerHTML = '';\n\t\t\t}\n\n\t\t\tconst renderArea = document.getElementById( this.getAttribute( 'render-area' ) );\n\t\t\trenderArea.innerHTML = '';\n\n\t\t} catch ( err ) {\n\t\t\t// no fallback possible here\n\t\t\tconsole.warn( err );\n\t\t}\n\t}\n\n\tasync render() {\n\t\tconst messageArea = document.getElementById( this.getAttribute( 'message-area' ) );\n\t\tconst loadingMapMsg = this.getAttribute( 'loading-map-message' );\n\n\t\tif ( messageArea && loadingMapMsg ) {\n\t\t\tmessageArea.innerHTML = loadingMapMsg;\n\t\t}\n\n\t\ttry {\n\t\t\tawait loadMapBoxDependencies();\n\t\t\tconst map = await initializeMap( 'establishments-mapbox-map-container' );\n\t\t\tthis._map = map;\n\n\t\t\tconst loadingEstablishmentsMsg = this.getAttribute( 'loading-establishments-message' );\n\n\t\t\tif ( messageArea && loadingEstablishmentsMsg ) {\n\t\t\t\tmessageArea.innerHTML = loadingEstablishmentsMsg;\n\t\t\t}\n\n\t\t\tconst allEstablishmentsGeoJSON = await fetchAllEstablishmentsAsGeoJSON();\n\n\t\t\tallEstablishmentsGeoJSON.features.forEach( ( marker ) => {\n\n\t\t\t\t// create a HTML element for each feature\n\t\t\t\tconst markerButton = document.createElement( 'button' );\n\t\t\t\tmarkerButton.title = marker.properties.title;\n\t\t\t\tmarkerButton.className = 'marker';\n\t\t\t\tmarkerButton.addEventListener( 'click', ( e ) => {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\te.stopPropagation();\n\n\t\t\t\t\tthis.renderResults( marker );\n\t\t\t\t} );\n\n\t\t\t\t// make a marker for each feature and add to the map\n\t\t\t\tnew window.mapboxgl.Marker( markerButton )\n\t\t\t\t\t.setLngLat( marker.geometry.coordinates )\n\t\t\t\t\t.addTo( map );\n\t\t\t} );\n\n\t\t\tif ( messageArea ) {\n\t\t\t\tmessageArea.innerHTML = '';\n\t\t\t}\n\t\t} catch ( err ) {\n\t\t\tconsole.warn( err );\n\n\t\t\tconst loadingErrorsMsg = this.getAttribute( 'loading-error-message' );\n\n\t\t\tif ( messageArea && loadingErrorsMsg ) {\n\t\t\t\tmessageArea.classList.add( 'is-error' );\n\t\t\t\tmessageArea.innerHTML = loadingErrorsMsg;\n\t\t\t}\n\n\t\t\treturn;\n\t\t}\n\t}\n\n\tasync renderResults( marker ) {\n\t\ttry {\n\t\t\tconst allEstablishments = await fetchAllEstablishments();\n\t\t\tconst renderArea = document.getElementById( this.getAttribute( 'render-area' ) );\n\n\t\t\tawait renderEstablishmentSearchResults( {\n\t\t\t\trenderArea: renderArea,\n\t\t\t\trenderVariant: this.getAttribute( 'render-variant' ),\n\t\t\t\tallEstablishments: allEstablishments,\n\t\t\t\tlo: marker.properties.lo,\n\t\t\t\tla: marker.properties.la,\n\t\t\t} );\n\t\t} catch ( err ) {\n\t\t\tconst messageArea = document.getElementById( this.getAttribute( 'message-area' ) );\n\t\t\tconst loadingErrorsMsg = this.getAttribute( 'loading-error-message' );\n\n\t\t\tif ( messageArea && loadingErrorsMsg ) {\n\t\t\t\tmessageArea.classList.add( 'is-error' );\n\t\t\t\tmessageArea.innerHTML = loadingErrorsMsg;\n\t\t\t}\n\n\t\t\tconsole.warn( err );\n\t\t}\n\t}\n}\n\ncustomElements.define( 'mr-establishments-map', MrEstablishmentsMap );\n"],"sourceRoot":""}