{"version":3,"file":"Techedge-digitalportal-home.js","mappings":"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","sources":["webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/node_modules/error-stack-parser/error-stack-parser.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/node_modules/stackframe/stackframe.js","webpack://digitalportal-home/./src/digital-portal.scss","webpack://digitalportal-home/./node_modules/css-loader/dist/runtime/api.js","webpack://digitalportal-home/./node_modules/css-loader/dist/runtime/sourceMaps.js","webpack://digitalportal-home/./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js","webpack://digitalportal-home/./node_modules/hoist-non-react-statics/node_modules/react-is/cjs/react-is.production.min.js","webpack://digitalportal-home/./node_modules/hoist-non-react-statics/node_modules/react-is/index.js","webpack://digitalportal-home/./node_modules/object-assign/index.js","webpack://digitalportal-home/./node_modules/path-to-regexp/index.js","webpack://digitalportal-home/./node_modules/path-to-regexp/node_modules/isarray/index.js","webpack://digitalportal-home/./node_modules/prop-types/factoryWithThrowingShims.js","webpack://digitalportal-home/./node_modules/prop-types/index.js","webpack://digitalportal-home/./node_modules/prop-types/lib/ReactPropTypesSecret.js","webpack://digitalportal-home/./node_modules/react-redux/node_modules/react-is/cjs/react-is.production.min.js","webpack://digitalportal-home/./node_modules/react-redux/node_modules/react-is/index.js","webpack://digitalportal-home/./node_modules/react-router/node_modules/react-is/cjs/react-is.production.min.js","webpack://digitalportal-home/./node_modules/react-router/node_modules/react-is/index.js","webpack://digitalportal-home/./node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://digitalportal-home/./node_modules/react/jsx-runtime.js","webpack://digitalportal-home/./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js","webpack://digitalportal-home/./node_modules/style-loader/dist/runtime/insertBySelector.js","webpack://digitalportal-home/./node_modules/style-loader/dist/runtime/insertStyleElement.js","webpack://digitalportal-home/./node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js","webpack://digitalportal-home/./node_modules/style-loader/dist/runtime/styleDomAPI.js","webpack://digitalportal-home/./node_modules/style-loader/dist/runtime/styleTagTransform.js","webpack://digitalportal-home/./node_modules/systemjs-webpack-interop/auto-public-path/auto-public-path.js","webpack://digitalportal-home/./node_modules/systemjs-webpack-interop/public-path.js","webpack://digitalportal-home/./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.js","webpack://digitalportal-home/./node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.js","webpack://digitalportal-home/./node_modules/use-sync-external-store/shim/index.js","webpack://digitalportal-home/./node_modules/use-sync-external-store/shim/with-selector.js","webpack://digitalportal-home/external system \"@Techedge/digitalportal-root\"","webpack://digitalportal-home/external system \"@Techedge/digitalportal-shared\"","webpack://digitalportal-home/external system \"@Techedge/digitalportal-styleguide\"","webpack://digitalportal-home/external system \"@Techedge/digitalportal-wardrobe\"","webpack://digitalportal-home/external system \"react\"","webpack://digitalportal-home/external system \"react-dom\"","webpack://digitalportal-home/webpack/bootstrap","webpack://digitalportal-home/webpack/runtime/__system_context__","webpack://digitalportal-home/webpack/runtime/compat get default export","webpack://digitalportal-home/webpack/runtime/define property getters","webpack://digitalportal-home/webpack/runtime/global","webpack://digitalportal-home/webpack/runtime/hasOwnProperty shorthand","webpack://digitalportal-home/webpack/runtime/make namespace object","webpack://digitalportal-home/webpack/runtime/publicPath","webpack://digitalportal-home/webpack/runtime/nonce","webpack://digitalportal-home/./node_modules/systemjs-webpack-interop/auto-public-path/1.js","webpack://digitalportal-home/./node_modules/single-spa-react/lib/esm/single-spa-react.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://digitalportal-home/./node_modules/react-redux/es/utils/batch.js","webpack://digitalportal-home/./node_modules/react-redux/es/components/Context.js","webpack://digitalportal-home/./node_modules/react-redux/es/hooks/useSelector.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://digitalportal-home/./node_modules/react-redux/es/connect/selectorFactory.js","webpack://digitalportal-home/./node_modules/react-redux/es/connect/wrapMapToProps.js","webpack://digitalportal-home/./node_modules/react-redux/es/connect/invalidArgFactory.js","webpack://digitalportal-home/./node_modules/react-redux/es/connect/mergeProps.js","webpack://digitalportal-home/./node_modules/react-redux/es/utils/Subscription.js","webpack://digitalportal-home/./node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","webpack://digitalportal-home/./node_modules/react-redux/es/utils/shallowEqual.js","webpack://digitalportal-home/./node_modules/react-redux/es/utils/useSyncExternalStore.js","webpack://digitalportal-home/./node_modules/react-redux/es/components/connect.js","webpack://digitalportal-home/./node_modules/react-redux/es/components/Provider.js","webpack://digitalportal-home/./node_modules/react-redux/es/index.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","webpack://digitalportal-home/./node_modules/resolve-pathname/esm/resolve-pathname.js","webpack://digitalportal-home/./node_modules/tiny-invariant/dist/esm/tiny-invariant.js","webpack://digitalportal-home/./node_modules/history/esm/history.js","webpack://digitalportal-home/./node_modules/react-router/esm/react-router.js","webpack://digitalportal-home/./node_modules/react-router-dom/esm/react-router-dom.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","webpack://digitalportal-home/./src/digital-portal.scss?2510","webpack://digitalportal-home/./src/pages/HomePage.tsx","webpack://digitalportal-home/./node_modules/react-redux/es/connect/mapStateToProps.js","webpack://digitalportal-home/./node_modules/react-redux/es/connect/mapDispatchToProps.js","webpack://digitalportal-home/./node_modules/react-redux/es/utils/bindActionCreators.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://digitalportal-home/./src/pages/Logout.tsx","webpack://digitalportal-home/./src/pages/LoginError.tsx","webpack://digitalportal-home/./src/routing/route.ts","webpack://digitalportal-home/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://digitalportal-home/./src/routing/route-config.ts","webpack://digitalportal-home/./node_modules/promise-polyfill/src/any.js","webpack://digitalportal-home/./node_modules/promise-polyfill/src/index.js","webpack://digitalportal-home/./node_modules/promise-polyfill/src/finally.js","webpack://digitalportal-home/./node_modules/promise-polyfill/src/allSettled.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/polyfills.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/utils.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/patching/patch-utils.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/constants.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/http/response-status.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/http/fetch.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/event-handler.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/patching/index.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/patching/xhr-patch.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/patching/fetch-patch.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/patching/history-patch.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/state.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/bootstrap.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/url.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/context.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/truncate.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/error-logging/error-logging.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/error-logging/stack-trace.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/queue.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/ndjson.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/span-base.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/span.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/capture-navigation.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/compress.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/http/xhr.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/apm-server.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/throttle.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/config-service.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/logging-service.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/service-factory.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/performance-monitoring.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/breakdown.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/transaction.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/metrics.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/transaction-service.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/observers/page-visibility.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum/dist/es/apm-base.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/instrument.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/observers/page-clicks.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum/dist/es/index.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/performance-monitoring/index.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/error-logging/index.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/index.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-core/dist/es/common/after-frame.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-react/dist/es/get-with-transaction.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-react/dist/es/get-apm-route.js","webpack://digitalportal-home/./node_modules/@elastic/apm-rum-react/dist/es/index.js","webpack://digitalportal-home/./src/routing/app-router.tsx","webpack://digitalportal-home/./src/Techedge-digitalportal-home.tsx","webpack://digitalportal-home/./src/root.component.tsx"],"sourcesContent":["(function(root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('error-stack-parser', ['stackframe'], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory(require('stackframe'));\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\n function _map(array, fn, thisArg) {\n if (typeof Array.prototype.map === 'function') {\n return array.map(fn, thisArg);\n } else {\n var output = new Array(array.length);\n for (var i = 0; i < array.length; i++) {\n output[i] = fn.call(thisArg, array[i]);\n }\n return output;\n }\n }\n\n function _filter(array, fn, thisArg) {\n if (typeof Array.prototype.filter === 'function') {\n return array.filter(fn, thisArg);\n } else {\n var output = [];\n for (var i = 0; i < array.length; i++) {\n if (fn.call(thisArg, array[i])) {\n output.push(array[i]);\n }\n }\n return output;\n }\n }\n\n function _indexOf(array, target) {\n if (typeof Array.prototype.indexOf === 'function') {\n return array.indexOf(target);\n } else {\n for (var i = 0; i < array.length; i++) {\n if (array[i] === target) {\n return i;\n }\n }\n return -1;\n }\n }\n\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\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\n parseV8OrIE: function ErrorStackParser$$parseV8OrIE(error) {\n var filtered = _filter(error.stack.split('\\n'), function(line) {\n return !!line.match(CHROME_IE_STACK_REGEXP);\n }, this);\n\n return _map(filtered, 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 var tokens = line.replace(/^\\s+/, '').replace(/\\(eval code/g, '(').split(/\\s+/).slice(1);\n var locationParts = this.extractLocation(tokens.pop());\n var functionName = tokens.join(' ') || undefined;\n var fileName = _indexOf(['eval', ''], locationParts[0]) > -1 ? undefined : locationParts[0];\n\n return new StackFrame(functionName, undefined, fileName, locationParts[1], locationParts[2], line);\n }, this);\n },\n\n parseFFOrSafari: function ErrorStackParser$$parseFFOrSafari(error) {\n var filtered = _filter(error.stack.split('\\n'), function(line) {\n return !line.match(SAFARI_NATIVE_CODE_REGEXP);\n }, this);\n\n return _map(filtered, 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(line);\n } else {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionName = tokens.join('@') || undefined;\n return new StackFrame(functionName,\n undefined,\n locationParts[0],\n locationParts[1],\n locationParts[2],\n line);\n }\n }, this);\n },\n\n parseOpera: function ErrorStackParser$$parseOpera(e) {\n if (!e.stacktrace || (e.message.indexOf('\\n') > -1 &&\n 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\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 if (match) {\n result.push(new StackFrame(undefined, undefined, match[2], match[1], undefined, lines[i]));\n }\n }\n\n return result;\n },\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 if (match) {\n result.push(\n new StackFrame(\n match[3] || undefined,\n undefined,\n match[2],\n match[1],\n undefined,\n lines[i]\n )\n );\n }\n }\n\n return result;\n },\n\n // Opera 10.65+ Error.stack very similar to FF/Safari\n parseOpera11: function ErrorStackParser$$parseOpera11(error) {\n var filtered = _filter(error.stack.split('\\n'), function(line) {\n return !!line.match(FIREFOX_SAFARI_STACK_REGEXP) && !line.match(/^Error created at/);\n }, this);\n\n return _map(filtered, function(line) {\n var tokens = line.split('@');\n var locationParts = this.extractLocation(tokens.pop());\n var functionCall = (tokens.shift() || '');\n var functionName = functionCall\n .replace(//, '$2')\n .replace(/\\([^\\)]*\\)/g, '') || undefined;\n var argsRaw;\n if (functionCall.match(/\\(([^\\)]*)\\)/)) {\n argsRaw = functionCall.replace(/^[^\\(]+\\(([^\\)]*)\\)$/, '$1');\n }\n var args = (argsRaw === undefined || argsRaw === '[arguments not available]') ?\n undefined : argsRaw.split(',');\n return new StackFrame(\n functionName,\n args,\n locationParts[0],\n locationParts[1],\n locationParts[2],\n line);\n }, this);\n }\n };\n}));\n\n","(function (root, factory) {\n 'use strict';\n // Universal Module Definition (UMD) to support AMD, CommonJS/Node.js, Rhino, and browsers.\n\n /* istanbul ignore next */\n if (typeof define === 'function' && define.amd) {\n define('stackframe', [], factory);\n } else if (typeof exports === 'object') {\n module.exports = factory();\n } else {\n root.StackFrame = factory();\n }\n}(this, function () {\n 'use strict';\n function _isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n }\n\n function StackFrame(functionName, args, fileName, lineNumber, columnNumber, source) {\n if (functionName !== undefined) {\n this.setFunctionName(functionName);\n }\n if (args !== undefined) {\n this.setArgs(args);\n }\n if (fileName !== undefined) {\n this.setFileName(fileName);\n }\n if (lineNumber !== undefined) {\n this.setLineNumber(lineNumber);\n }\n if (columnNumber !== undefined) {\n this.setColumnNumber(columnNumber);\n }\n if (source !== undefined) {\n this.setSource(source);\n }\n }\n\n StackFrame.prototype = {\n getFunctionName: function () {\n return this.functionName;\n },\n setFunctionName: function (v) {\n this.functionName = String(v);\n },\n\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 this.args = v;\n },\n\n // NOTE: Property name may be misleading as it includes the path,\n // but it somewhat mirrors V8's JavaScriptStackTraceApi\n // https://code.google.com/p/v8/wiki/JavaScriptStackTraceApi and Gecko's\n // http://mxr.mozilla.org/mozilla-central/source/xpcom/base/nsIException.idl#14\n getFileName: function () {\n return this.fileName;\n },\n setFileName: function (v) {\n this.fileName = String(v);\n },\n\n getLineNumber: function () {\n return this.lineNumber;\n },\n setLineNumber: function (v) {\n if (!_isNumber(v)) {\n throw new TypeError('Line Number must be a Number');\n }\n this.lineNumber = Number(v);\n },\n\n getColumnNumber: function () {\n return this.columnNumber;\n },\n setColumnNumber: function (v) {\n if (!_isNumber(v)) {\n throw new TypeError('Column Number must be a Number');\n }\n this.columnNumber = Number(v);\n },\n\n getSource: function () {\n return this.source;\n },\n setSource: function (v) {\n this.source = String(v);\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 return StackFrame;\n}));\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `html{height:100vh}body,body>div{height:100%}.flex-center{display:flex;flex-direction:column;justify-content:center;align-items:center}.portal-container{position:relative;background-image:linear-gradient(60deg, var(--lux-primary), var(--lux-essilor-secondary));text-align:center;max-height:100vh;max-width:100vw;height:100%;width:100%;color:var(--lux-white);font-weight:700;overflow:hidden}.portal-container .logout-btn{position:absolute;top:.5rem;right:1.5rem;display:flex;align-items:center;font-size:.8rem;font-weight:700;color:var(--lux-white) !important;padding:.5rem 1rem !important;margin:.25rem 0 !important}.portal-container .logout-btn:hover{color:var(--lux-black) !important}.portal-container h1{color:var(--lux-white)}.portal-container .btn-container{z-index:3}.portal-container .webportal-btn{margin:2rem .75rem;padding:.25rem 1.5rem;background-color:rgba(0,0,0,0);border:2px solid var(--lux-white);border-radius:3rem;color:var(--lux-white);font-size:14px;line-height:35px;font-family:\"Manrope SemiBold\";outline:none !important}.portal-container .logo{height:40px;margin-bottom:1.5rem;filter:invert(1)}.portal-container .logo-bg{position:absolute;z-index:1;left:0;filter:invert(1);bottom:-15vh;height:65vh;opacity:.025}.portal-container .text-box{min-width:300px;max-width:400px;margin:0 2rem}.portal-container .text-box h2{color:var(--lux-white)}.portal-container .warning-icon{font-size:3rem;margin-bottom:2rem}.portal-container .error-msg{font-size:12px;font-weight:500;position:absolute;bottom:0;margin:1rem 2rem;color:var(--lux-white)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/digital-portal.scss\"],\"names\":[],\"mappings\":\"AAAA,KACI,YAAA,CAGJ,cAEI,WAAA,CAGJ,aACI,YAAA,CACA,qBAAA,CACA,sBAAA,CACA,kBAAA,CAGJ,kBACI,iBAAA,CACA,yFAAA,CAKA,iBAAA,CACA,gBAAA,CACA,eAAA,CACA,WAAA,CACA,UAAA,CACA,sBAAA,CACA,eAAA,CACA,eAAA,CAEA,8BACI,iBAAA,CACA,SAAA,CACA,YAAA,CACA,YAAA,CACA,kBAAA,CACA,eAAA,CACA,eAAA,CACA,iCAAA,CACA,6BAAA,CACA,0BAAA,CACA,oCACI,iCAAA,CAGR,qBACI,sBAAA,CAEJ,iCACI,SAAA,CAEJ,iCACI,kBAAA,CACA,qBAAA,CACA,8BAAA,CACA,iCAAA,CACA,kBAAA,CACA,sBAAA,CACA,cAAA,CACA,gBAAA,CACA,8BAAA,CACA,uBAAA,CAEJ,wBACI,WAAA,CACA,oBAAA,CACA,gBAAA,CAEJ,2BACI,iBAAA,CACA,SAAA,CACA,MAAA,CACA,gBAAA,CACA,YAAA,CACA,WAAA,CACA,YAAA,CAEJ,4BACI,eAAA,CACA,eAAA,CACA,aAAA,CACA,+BACI,sBAAA,CAGR,gCACI,cAAA,CACA,kBAAA,CAEJ,6BACI,cAAA,CACA,eAAA,CACA,iBAAA,CACA,QAAA,CACA,gBAAA,CACA,sBAAA\",\"sourcesContent\":[\"html {\\n height: 100vh;\\n}\\n\\nbody,\\nbody > div {\\n height: 100%;\\n}\\n\\n.flex-center {\\n display: flex;\\n flex-direction: column;\\n justify-content: center;\\n align-items: center;\\n}\\n\\n.portal-container {\\n position: relative;\\n background-image: linear-gradient(\\n 60deg,\\n var(--lux-primary),\\n var(--lux-essilor-secondary)\\n );\\n text-align: center;\\n max-height: 100vh;\\n max-width: 100vw;\\n height: 100%;\\n width: 100%;\\n color: var(--lux-white);\\n font-weight: 700;\\n overflow: hidden;\\n\\n .logout-btn {\\n position: absolute;\\n top: 0.5rem;\\n right: 1.5rem;\\n display: flex;\\n align-items: center;\\n font-size: 0.8rem;\\n font-weight: 700;\\n color: var(--lux-white) !important;\\n padding: 0.5rem 1rem !important;\\n margin: 0.25rem 0 !important;\\n &:hover {\\n color: var(--lux-black) !important;\\n }\\n }\\n h1 {\\n color: var(--lux-white);\\n }\\n .btn-container {\\n z-index: 3;\\n }\\n .webportal-btn {\\n margin: 2rem 0.75rem;\\n padding: 0.25rem 1.5rem;\\n background-color: transparent;\\n border: 2px solid var(--lux-white);\\n border-radius: 3rem;\\n color: var(--lux-white);\\n font-size: 14px;\\n line-height: 35px;\\n font-family: 'Manrope SemiBold';\\n outline: none !important;\\n }\\n .logo {\\n height: 40px;\\n margin-bottom: 1.5rem;\\n filter: invert(1);\\n }\\n .logo-bg {\\n position: absolute;\\n z-index: 1;\\n left: 0;\\n filter: invert(1);\\n bottom: -15vh;\\n height: 65vh;\\n opacity: 0.025;\\n }\\n .text-box {\\n min-width: 300px;\\n max-width: 400px;\\n margin: 0 2rem;\\n h2 {\\n color: var(--lux-white);\\n }\\n }\\n .warning-icon {\\n font-size: 3rem;\\n margin-bottom: 2rem;\\n }\\n .error-msg {\\n font-size: 12px;\\n font-weight: 500;\\n position: absolute;\\n bottom: 0;\\n margin: 1rem 2rem;\\n color: var(--lux-white);\\n }\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","\"use strict\";\n\n/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n*/\nmodule.exports = function (cssWithMappingToString) {\n var list = [];\n\n // return the list of modules as css string\n list.toString = function toString() {\n return this.map(function (item) {\n var content = \"\";\n var needLayer = typeof item[5] !== \"undefined\";\n if (item[4]) {\n content += \"@supports (\".concat(item[4], \") {\");\n }\n if (item[2]) {\n content += \"@media \".concat(item[2], \" {\");\n }\n if (needLayer) {\n content += \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\");\n }\n content += cssWithMappingToString(item);\n if (needLayer) {\n content += \"}\";\n }\n if (item[2]) {\n content += \"}\";\n }\n if (item[4]) {\n content += \"}\";\n }\n return content;\n }).join(\"\");\n };\n\n // import a list of modules into the list\n list.i = function i(modules, media, dedupe, supports, layer) {\n if (typeof modules === \"string\") {\n modules = [[null, modules, undefined]];\n }\n var alreadyImportedModules = {};\n if (dedupe) {\n for (var k = 0; k < this.length; k++) {\n var id = this[k][0];\n if (id != null) {\n alreadyImportedModules[id] = true;\n }\n }\n }\n for (var _k = 0; _k < modules.length; _k++) {\n var item = [].concat(modules[_k]);\n if (dedupe && alreadyImportedModules[item[0]]) {\n continue;\n }\n if (typeof layer !== \"undefined\") {\n if (typeof item[5] === \"undefined\") {\n item[5] = layer;\n } else {\n item[1] = \"@layer\".concat(item[5].length > 0 ? \" \".concat(item[5]) : \"\", \" {\").concat(item[1], \"}\");\n item[5] = layer;\n }\n }\n if (media) {\n if (!item[2]) {\n item[2] = media;\n } else {\n item[1] = \"@media \".concat(item[2], \" {\").concat(item[1], \"}\");\n item[2] = media;\n }\n }\n if (supports) {\n if (!item[4]) {\n item[4] = \"\".concat(supports);\n } else {\n item[1] = \"@supports (\".concat(item[4], \") {\").concat(item[1], \"}\");\n item[4] = supports;\n }\n }\n list.push(item);\n }\n };\n return list;\n};","\"use strict\";\n\nmodule.exports = function (item) {\n var content = item[1];\n var cssMapping = item[3];\n if (!cssMapping) {\n return content;\n }\n if (typeof btoa === \"function\") {\n var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(cssMapping))));\n var data = \"sourceMappingURL=data:application/json;charset=utf-8;base64,\".concat(base64);\n var sourceMapping = \"/*# \".concat(data, \" */\");\n return [content].concat([sourceMapping]).join(\"\\n\");\n }\n return [content].join(\"\\n\");\n};","'use strict';\n\nvar reactIs = require('react-is');\n\n/**\n * Copyright 2015, Yahoo! Inc.\n * Copyrights licensed under the New BSD License. See the accompanying LICENSE file for terms.\n */\nvar REACT_STATICS = {\n childContextTypes: true,\n contextType: true,\n contextTypes: true,\n defaultProps: true,\n displayName: true,\n getDefaultProps: true,\n getDerivedStateFromError: true,\n getDerivedStateFromProps: true,\n mixins: true,\n propTypes: true,\n type: true\n};\nvar KNOWN_STATICS = {\n name: true,\n length: true,\n prototype: true,\n caller: true,\n callee: true,\n arguments: true,\n arity: true\n};\nvar FORWARD_REF_STATICS = {\n '$$typeof': true,\n render: true,\n defaultProps: true,\n displayName: true,\n propTypes: true\n};\nvar MEMO_STATICS = {\n '$$typeof': true,\n compare: true,\n defaultProps: true,\n displayName: true,\n propTypes: true,\n type: true\n};\nvar TYPE_STATICS = {};\nTYPE_STATICS[reactIs.ForwardRef] = FORWARD_REF_STATICS;\nTYPE_STATICS[reactIs.Memo] = MEMO_STATICS;\n\nfunction getStatics(component) {\n // React v16.11 and below\n if (reactIs.isMemo(component)) {\n return MEMO_STATICS;\n } // React v16.12 and above\n\n\n return TYPE_STATICS[component['$$typeof']] || REACT_STATICS;\n}\n\nvar defineProperty = Object.defineProperty;\nvar getOwnPropertyNames = Object.getOwnPropertyNames;\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar getOwnPropertyDescriptor = Object.getOwnPropertyDescriptor;\nvar getPrototypeOf = Object.getPrototypeOf;\nvar objectPrototype = Object.prototype;\nfunction hoistNonReactStatics(targetComponent, sourceComponent, blacklist) {\n if (typeof sourceComponent !== 'string') {\n // don't hoist over string (html) components\n if (objectPrototype) {\n var inheritedComponent = getPrototypeOf(sourceComponent);\n\n if (inheritedComponent && inheritedComponent !== objectPrototype) {\n hoistNonReactStatics(targetComponent, inheritedComponent, blacklist);\n }\n }\n\n var keys = getOwnPropertyNames(sourceComponent);\n\n if (getOwnPropertySymbols) {\n keys = keys.concat(getOwnPropertySymbols(sourceComponent));\n }\n\n var targetStatics = getStatics(targetComponent);\n var sourceStatics = getStatics(sourceComponent);\n\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n\n if (!KNOWN_STATICS[key] && !(blacklist && blacklist[key]) && !(sourceStatics && sourceStatics[key]) && !(targetStatics && targetStatics[key])) {\n var descriptor = getOwnPropertyDescriptor(sourceComponent, key);\n\n try {\n // Avoid failures from read-only properties\n defineProperty(targetComponent, key, descriptor);\n } catch (e) {}\n }\n }\n }\n\n return targetComponent;\n}\n\nmodule.exports = hoistNonReactStatics;\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","var isarray = require('isarray')\n\n/**\n * Expose `pathToRegexp`.\n */\nmodule.exports = pathToRegexp\nmodule.exports.parse = parse\nmodule.exports.compile = compile\nmodule.exports.tokensToFunction = tokensToFunction\nmodule.exports.tokensToRegExp = tokensToRegExp\n\n/**\n * The main path matching regexp utility.\n *\n * @type {RegExp}\n */\nvar PATH_REGEXP = new RegExp([\n // Match escaped characters that would otherwise appear in future matches.\n // This allows the user to escape special characters that won't transform.\n '(\\\\\\\\.)',\n // Match Express-style parameters and un-named parameters with a prefix\n // and optional suffixes. Matches appear as:\n //\n // \"/:test(\\\\d+)?\" => [\"/\", \"test\", \"\\d+\", undefined, \"?\", undefined]\n // \"/route(\\\\d+)\" => [undefined, undefined, undefined, \"\\d+\", undefined, undefined]\n // \"/*\" => [\"/\", undefined, undefined, undefined, undefined, \"*\"]\n '([\\\\/.])?(?:(?:\\\\:(\\\\w+)(?:\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))?|\\\\(((?:\\\\\\\\.|[^\\\\\\\\()])+)\\\\))([+*?])?|(\\\\*))'\n].join('|'), 'g')\n\n/**\n * Parse a string for the raw tokens.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!Array}\n */\nfunction parse (str, options) {\n var tokens = []\n var key = 0\n var index = 0\n var path = ''\n var defaultDelimiter = options && options.delimiter || '/'\n var res\n\n while ((res = PATH_REGEXP.exec(str)) != null) {\n var m = res[0]\n var escaped = res[1]\n var offset = res.index\n path += str.slice(index, offset)\n index = offset + m.length\n\n // Ignore already escaped sequences.\n if (escaped) {\n path += escaped[1]\n continue\n }\n\n var next = str[index]\n var prefix = res[2]\n var name = res[3]\n var capture = res[4]\n var group = res[5]\n var modifier = res[6]\n var asterisk = res[7]\n\n // Push the current path onto the tokens.\n if (path) {\n tokens.push(path)\n path = ''\n }\n\n var partial = prefix != null && next != null && next !== prefix\n var repeat = modifier === '+' || modifier === '*'\n var optional = modifier === '?' || modifier === '*'\n var delimiter = res[2] || defaultDelimiter\n var pattern = capture || group\n\n tokens.push({\n name: name || key++,\n prefix: prefix || '',\n delimiter: delimiter,\n optional: optional,\n repeat: repeat,\n partial: partial,\n asterisk: !!asterisk,\n pattern: pattern ? escapeGroup(pattern) : (asterisk ? '.*' : '[^' + escapeString(delimiter) + ']+?')\n })\n }\n\n // Match any characters still remaining.\n if (index < str.length) {\n path += str.substr(index)\n }\n\n // If the path exists, push it onto the end.\n if (path) {\n tokens.push(path)\n }\n\n return tokens\n}\n\n/**\n * Compile a string to a template function for the path.\n *\n * @param {string} str\n * @param {Object=} options\n * @return {!function(Object=, Object=)}\n */\nfunction compile (str, options) {\n return tokensToFunction(parse(str, options), options)\n}\n\n/**\n * Prettier encoding of URI path segments.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeURIComponentPretty (str) {\n return encodeURI(str).replace(/[\\/?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Encode the asterisk parameter. Similar to `pretty`, but allows slashes.\n *\n * @param {string}\n * @return {string}\n */\nfunction encodeAsterisk (str) {\n return encodeURI(str).replace(/[?#]/g, function (c) {\n return '%' + c.charCodeAt(0).toString(16).toUpperCase()\n })\n}\n\n/**\n * Expose a method for transforming tokens into the path function.\n */\nfunction tokensToFunction (tokens, options) {\n // Compile all the tokens into regexps.\n var matches = new Array(tokens.length)\n\n // Compile all the patterns before compilation.\n for (var i = 0; i < tokens.length; i++) {\n if (typeof tokens[i] === 'object') {\n matches[i] = new RegExp('^(?:' + tokens[i].pattern + ')$', flags(options))\n }\n }\n\n return function (obj, opts) {\n var path = ''\n var data = obj || {}\n var options = opts || {}\n var encode = options.pretty ? encodeURIComponentPretty : encodeURIComponent\n\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n path += token\n\n continue\n }\n\n var value = data[token.name]\n var segment\n\n if (value == null) {\n if (token.optional) {\n // Prepend partial segment prefixes.\n if (token.partial) {\n path += token.prefix\n }\n\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to be defined')\n }\n }\n\n if (isarray(value)) {\n if (!token.repeat) {\n throw new TypeError('Expected \"' + token.name + '\" to not repeat, but received `' + JSON.stringify(value) + '`')\n }\n\n if (value.length === 0) {\n if (token.optional) {\n continue\n } else {\n throw new TypeError('Expected \"' + token.name + '\" to not be empty')\n }\n }\n\n for (var j = 0; j < value.length; j++) {\n segment = encode(value[j])\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected all \"' + token.name + '\" to match \"' + token.pattern + '\", but received `' + JSON.stringify(segment) + '`')\n }\n\n path += (j === 0 ? token.prefix : token.delimiter) + segment\n }\n\n continue\n }\n\n segment = token.asterisk ? encodeAsterisk(value) : encode(value)\n\n if (!matches[i].test(segment)) {\n throw new TypeError('Expected \"' + token.name + '\" to match \"' + token.pattern + '\", but received \"' + segment + '\"')\n }\n\n path += token.prefix + segment\n }\n\n return path\n }\n}\n\n/**\n * Escape a regular expression string.\n *\n * @param {string} str\n * @return {string}\n */\nfunction escapeString (str) {\n return str.replace(/([.+*?=^!:${}()[\\]|\\/\\\\])/g, '\\\\$1')\n}\n\n/**\n * Escape the capturing group by escaping special characters and meaning.\n *\n * @param {string} group\n * @return {string}\n */\nfunction escapeGroup (group) {\n return group.replace(/([=!:$\\/()])/g, '\\\\$1')\n}\n\n/**\n * Attach the keys as a property of the regexp.\n *\n * @param {!RegExp} re\n * @param {Array} keys\n * @return {!RegExp}\n */\nfunction attachKeys (re, keys) {\n re.keys = keys\n return re\n}\n\n/**\n * Get the flags for a regexp from the options.\n *\n * @param {Object} options\n * @return {string}\n */\nfunction flags (options) {\n return options && options.sensitive ? '' : 'i'\n}\n\n/**\n * Pull out keys from a regexp.\n *\n * @param {!RegExp} path\n * @param {!Array} keys\n * @return {!RegExp}\n */\nfunction regexpToRegexp (path, keys) {\n // Use a negative lookahead to match only capturing groups.\n var groups = path.source.match(/\\((?!\\?)/g)\n\n if (groups) {\n for (var i = 0; i < groups.length; i++) {\n keys.push({\n name: i,\n prefix: null,\n delimiter: null,\n optional: false,\n repeat: false,\n partial: false,\n asterisk: false,\n pattern: null\n })\n }\n }\n\n return attachKeys(path, keys)\n}\n\n/**\n * Transform an array into a regexp.\n *\n * @param {!Array} path\n * @param {Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction arrayToRegexp (path, keys, options) {\n var parts = []\n\n for (var i = 0; i < path.length; i++) {\n parts.push(pathToRegexp(path[i], keys, options).source)\n }\n\n var regexp = new RegExp('(?:' + parts.join('|') + ')', flags(options))\n\n return attachKeys(regexp, keys)\n}\n\n/**\n * Create a path regexp from string input.\n *\n * @param {string} path\n * @param {!Array} keys\n * @param {!Object} options\n * @return {!RegExp}\n */\nfunction stringToRegexp (path, keys, options) {\n return tokensToRegExp(parse(path, options), keys, options)\n}\n\n/**\n * Expose a function for taking tokens and returning a RegExp.\n *\n * @param {!Array} tokens\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction tokensToRegExp (tokens, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n var strict = options.strict\n var end = options.end !== false\n var route = ''\n\n // Iterate over the tokens and create our regexp string.\n for (var i = 0; i < tokens.length; i++) {\n var token = tokens[i]\n\n if (typeof token === 'string') {\n route += escapeString(token)\n } else {\n var prefix = escapeString(token.prefix)\n var capture = '(?:' + token.pattern + ')'\n\n keys.push(token)\n\n if (token.repeat) {\n capture += '(?:' + prefix + capture + ')*'\n }\n\n if (token.optional) {\n if (!token.partial) {\n capture = '(?:' + prefix + '(' + capture + '))?'\n } else {\n capture = prefix + '(' + capture + ')?'\n }\n } else {\n capture = prefix + '(' + capture + ')'\n }\n\n route += capture\n }\n }\n\n var delimiter = escapeString(options.delimiter || '/')\n var endsWithDelimiter = route.slice(-delimiter.length) === delimiter\n\n // In non-strict mode we allow a slash at the end of match. If the path to\n // match already ends with a slash, we remove it for consistency. The slash\n // is valid at the end of a path match, not in the middle. This is important\n // in non-ending mode, where \"/test/\" shouldn't match \"/test//route\".\n if (!strict) {\n route = (endsWithDelimiter ? route.slice(0, -delimiter.length) : route) + '(?:' + delimiter + '(?=$))?'\n }\n\n if (end) {\n route += '$'\n } else {\n // In non-ending mode, we need the capturing groups to match as much as\n // possible by using a positive lookahead to the end or next path segment.\n route += strict && endsWithDelimiter ? '' : '(?=' + delimiter + '|$)'\n }\n\n return attachKeys(new RegExp('^' + route, flags(options)), keys)\n}\n\n/**\n * Normalize the given path string, returning a regular expression.\n *\n * An empty array can be passed in for the keys, which will hold the\n * placeholder key descriptions. For example, using `/user/:id`, `keys` will\n * contain `[{ name: 'id', delimiter: '/', optional: false, repeat: false }]`.\n *\n * @param {(string|RegExp|Array)} path\n * @param {(Array|Object)=} keys\n * @param {Object=} options\n * @return {!RegExp}\n */\nfunction pathToRegexp (path, keys, options) {\n if (!isarray(keys)) {\n options = /** @type {!Object} */ (keys || options)\n keys = []\n }\n\n options = options || {}\n\n if (path instanceof RegExp) {\n return regexpToRegexp(path, /** @type {!Array} */ (keys))\n }\n\n if (isarray(path)) {\n return arrayToRegexp(/** @type {!Array} */ (path), /** @type {!Array} */ (keys), options)\n }\n\n return stringToRegexp(/** @type {string} */ (path), /** @type {!Array} */ (keys), options)\n}\n","module.exports = Array.isArray || function (arr) {\n return Object.prototype.toString.call(arr) == '[object Array]';\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v17.0.2\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';require(\"object-assign\");var f=require(\"react\"),g=60103;exports.Fragment=60107;if(\"function\"===typeof Symbol&&Symbol.for){var h=Symbol.for;g=h(\"react.element\");exports.Fragment=h(\"react.fragment\")}var m=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,n=Object.prototype.hasOwnProperty,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,k){var b,d={},e=null,l=null;void 0!==k&&(e=\"\"+k);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(l=a.ref);for(b in a)n.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:g,type:c,key:e,ref:l,props:d,_owner:m.current}}exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","\"use strict\";\n\nvar stylesInDOM = [];\nfunction getIndexByIdentifier(identifier) {\n var result = -1;\n for (var i = 0; i < stylesInDOM.length; i++) {\n if (stylesInDOM[i].identifier === identifier) {\n result = i;\n break;\n }\n }\n return result;\n}\nfunction modulesToDom(list, options) {\n var idCountMap = {};\n var identifiers = [];\n for (var i = 0; i < list.length; i++) {\n var item = list[i];\n var id = options.base ? item[0] + options.base : item[0];\n var count = idCountMap[id] || 0;\n var identifier = \"\".concat(id, \" \").concat(count);\n idCountMap[id] = count + 1;\n var indexByIdentifier = getIndexByIdentifier(identifier);\n var obj = {\n css: item[1],\n media: item[2],\n sourceMap: item[3],\n supports: item[4],\n layer: item[5]\n };\n if (indexByIdentifier !== -1) {\n stylesInDOM[indexByIdentifier].references++;\n stylesInDOM[indexByIdentifier].updater(obj);\n } else {\n var updater = addElementStyle(obj, options);\n options.byIndex = i;\n stylesInDOM.splice(i, 0, {\n identifier: identifier,\n updater: updater,\n references: 1\n });\n }\n identifiers.push(identifier);\n }\n return identifiers;\n}\nfunction addElementStyle(obj, options) {\n var api = options.domAPI(options);\n api.update(obj);\n var updater = function updater(newObj) {\n if (newObj) {\n if (newObj.css === obj.css && newObj.media === obj.media && newObj.sourceMap === obj.sourceMap && newObj.supports === obj.supports && newObj.layer === obj.layer) {\n return;\n }\n api.update(obj = newObj);\n } else {\n api.remove();\n }\n };\n return updater;\n}\nmodule.exports = function (list, options) {\n options = options || {};\n list = list || [];\n var lastIdentifiers = modulesToDom(list, options);\n return function update(newList) {\n newList = newList || [];\n for (var i = 0; i < lastIdentifiers.length; i++) {\n var identifier = lastIdentifiers[i];\n var index = getIndexByIdentifier(identifier);\n stylesInDOM[index].references--;\n }\n var newLastIdentifiers = modulesToDom(newList, options);\n for (var _i = 0; _i < lastIdentifiers.length; _i++) {\n var _identifier = lastIdentifiers[_i];\n var _index = getIndexByIdentifier(_identifier);\n if (stylesInDOM[_index].references === 0) {\n stylesInDOM[_index].updater();\n stylesInDOM.splice(_index, 1);\n }\n }\n lastIdentifiers = newLastIdentifiers;\n };\n};","\"use strict\";\n\nvar memo = {};\n\n/* istanbul ignore next */\nfunction getTarget(target) {\n if (typeof memo[target] === \"undefined\") {\n var styleTarget = document.querySelector(target);\n\n // Special case to return head of iframe instead of iframe itself\n if (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n try {\n // This will throw an exception if access to iframe is blocked\n // due to cross-origin restrictions\n styleTarget = styleTarget.contentDocument.head;\n } catch (e) {\n // istanbul ignore next\n styleTarget = null;\n }\n }\n memo[target] = styleTarget;\n }\n return memo[target];\n}\n\n/* istanbul ignore next */\nfunction insertBySelector(insert, style) {\n var target = getTarget(insert);\n if (!target) {\n throw new Error(\"Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.\");\n }\n target.appendChild(style);\n}\nmodule.exports = insertBySelector;","\"use strict\";\n\n/* istanbul ignore next */\nfunction insertStyleElement(options) {\n var element = document.createElement(\"style\");\n options.setAttributes(element, options.attributes);\n options.insert(element, options.options);\n return element;\n}\nmodule.exports = insertStyleElement;","\"use strict\";\n\n/* istanbul ignore next */\nfunction setAttributesWithoutAttributes(styleElement) {\n var nonce = typeof __webpack_nonce__ !== \"undefined\" ? __webpack_nonce__ : null;\n if (nonce) {\n styleElement.setAttribute(\"nonce\", nonce);\n }\n}\nmodule.exports = setAttributesWithoutAttributes;","\"use strict\";\n\n/* istanbul ignore next */\nfunction apply(styleElement, options, obj) {\n var css = \"\";\n if (obj.supports) {\n css += \"@supports (\".concat(obj.supports, \") {\");\n }\n if (obj.media) {\n css += \"@media \".concat(obj.media, \" {\");\n }\n var needLayer = typeof obj.layer !== \"undefined\";\n if (needLayer) {\n css += \"@layer\".concat(obj.layer.length > 0 ? \" \".concat(obj.layer) : \"\", \" {\");\n }\n css += obj.css;\n if (needLayer) {\n css += \"}\";\n }\n if (obj.media) {\n css += \"}\";\n }\n if (obj.supports) {\n css += \"}\";\n }\n var sourceMap = obj.sourceMap;\n if (sourceMap && typeof btoa !== \"undefined\") {\n css += \"\\n/*# sourceMappingURL=data:application/json;base64,\".concat(btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))), \" */\");\n }\n\n // For old IE\n /* istanbul ignore if */\n options.styleTagTransform(css, styleElement, options.options);\n}\nfunction removeStyleElement(styleElement) {\n // istanbul ignore if\n if (styleElement.parentNode === null) {\n return false;\n }\n styleElement.parentNode.removeChild(styleElement);\n}\n\n/* istanbul ignore next */\nfunction domAPI(options) {\n if (typeof document === \"undefined\") {\n return {\n update: function update() {},\n remove: function remove() {}\n };\n }\n var styleElement = options.insertStyleElement(options);\n return {\n update: function update(obj) {\n apply(styleElement, options, obj);\n },\n remove: function remove() {\n removeStyleElement(styleElement);\n }\n };\n}\nmodule.exports = domAPI;","\"use strict\";\n\n/* istanbul ignore next */\nfunction styleTagTransform(css, styleElement) {\n if (styleElement.styleSheet) {\n styleElement.styleSheet.cssText = css;\n } else {\n while (styleElement.firstChild) {\n styleElement.removeChild(styleElement.firstChild);\n }\n styleElement.appendChild(document.createTextNode(css));\n }\n}\nmodule.exports = styleTagTransform;","const resolveDirectory = require(\"../public-path\").resolveDirectory;\n\nexports.autoPublicPath = function autoPublicPath(rootDirLevel) {\n if (!rootDirLevel) {\n rootDirLevel = 1;\n }\n\n if (typeof __webpack_public_path__ !== \"undefined\") {\n if (typeof __system_context__ === \"undefined\") {\n throw Error(\n \"systemjs-webpack-interop requires webpack@>=5.0.0-beta.15 and output.libraryTarget set to 'system'\"\n );\n }\n\n if (!__system_context__.meta || !__system_context__.meta.url) {\n console.error(\"__system_context__\", __system_context__);\n throw Error(\n \"systemjs-webpack-interop was provided an unknown SystemJS context. Expected context.meta.url, but none was provided\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(\n __system_context__.meta.url,\n rootDirLevel\n );\n }\n};\n","exports.setPublicPath = function setPublicPath(\n systemjsModuleName,\n rootDirectoryLevel\n) {\n if (!rootDirectoryLevel) {\n rootDirectoryLevel = 1;\n }\n if (\n typeof systemjsModuleName !== \"string\" ||\n systemjsModuleName.trim().length === 0\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName) must be called with a non-empty string 'systemjsModuleName'\"\n );\n }\n\n if (\n typeof rootDirectoryLevel !== \"number\" ||\n rootDirectoryLevel <= 0 ||\n isNaN(rootDirectoryLevel) ||\n !isInteger(rootDirectoryLevel)\n ) {\n throw Error(\n \"systemjs-webpack-interop: setPublicPath(systemjsModuleName, rootDirectoryLevel) must be called with a positive integer 'rootDirectoryLevel'\"\n );\n }\n\n var moduleUrl;\n try {\n moduleUrl = window.System.resolve(systemjsModuleName);\n if (!moduleUrl) {\n throw Error();\n }\n } catch (err) {\n throw Error(\n \"systemjs-webpack-interop: There is no such module '\" +\n systemjsModuleName +\n \"' in the SystemJS registry. Did you misspell the name of your module?\"\n );\n }\n\n __webpack_public_path__ = resolveDirectory(moduleUrl, rootDirectoryLevel);\n};\n\nfunction resolveDirectory(urlString, rootDirectoryLevel) {\n // Our friend IE11 doesn't support new URL()\n // https://github.com/single-spa/single-spa/issues/612\n // https://gist.github.com/jlong/2428561\n\n var a = document.createElement(\"a\");\n a.href = urlString;\n\n var pathname = a.pathname[0] === \"/\" ? a.pathname : \"/\" + a.pathname;\n var numDirsProcessed = 0,\n index = pathname.length;\n while (numDirsProcessed !== rootDirectoryLevel && index >= 0) {\n var char = pathname[--index];\n if (char === \"/\") {\n numDirsProcessed++;\n }\n }\n\n if (numDirsProcessed !== rootDirectoryLevel) {\n throw Error(\n \"systemjs-webpack-interop: rootDirectoryLevel (\" +\n rootDirectoryLevel +\n \") is greater than the number of directories (\" +\n numDirsProcessed +\n \") in the URL path \" +\n urlString\n );\n }\n\n var finalPath = pathname.slice(0, index + 1);\n\n return a.protocol + \"//\" + a.host + finalPath;\n}\n\nexports.resolveDirectory = resolveDirectory;\n\n// borrowed from https://github.com/parshap/js-is-integer/blob/master/index.js\nvar isInteger =\n Number.isInteger ||\n function isInteger(val) {\n return typeof val === \"number\" && isFinite(val) && Math.floor(val) === val;\n };\n","/**\n * @license React\n * use-sync-external-store-shim.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useState = React.useState,\n useEffect = React.useEffect,\n useLayoutEffect = React.useLayoutEffect,\n useDebugValue = React.useDebugValue;\nfunction useSyncExternalStore$2(subscribe, getSnapshot) {\n var value = getSnapshot(),\n _useState = useState({ inst: { value: value, getSnapshot: getSnapshot } }),\n inst = _useState[0].inst,\n forceUpdate = _useState[1];\n useLayoutEffect(\n function () {\n inst.value = value;\n inst.getSnapshot = getSnapshot;\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n },\n [subscribe, value, getSnapshot]\n );\n useEffect(\n function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n return subscribe(function () {\n checkIfSnapshotChanged(inst) && forceUpdate({ inst: inst });\n });\n },\n [subscribe]\n );\n useDebugValue(value);\n return value;\n}\nfunction checkIfSnapshotChanged(inst) {\n var latestGetSnapshot = inst.getSnapshot;\n inst = inst.value;\n try {\n var nextValue = latestGetSnapshot();\n return !objectIs(inst, nextValue);\n } catch (error) {\n return !0;\n }\n}\nfunction useSyncExternalStore$1(subscribe, getSnapshot) {\n return getSnapshot();\n}\nvar shim =\n \"undefined\" === typeof window ||\n \"undefined\" === typeof window.document ||\n \"undefined\" === typeof window.document.createElement\n ? useSyncExternalStore$1\n : useSyncExternalStore$2;\nexports.useSyncExternalStore =\n void 0 !== React.useSyncExternalStore ? React.useSyncExternalStore : shim;\n","/**\n * @license React\n * use-sync-external-store-shim/with-selector.production.js\n *\n * Copyright (c) Meta Platforms, Inc. and affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n\"use strict\";\nvar React = require(\"react\"),\n shim = require(\"use-sync-external-store/shim\");\nfunction is(x, y) {\n return (x === y && (0 !== x || 1 / x === 1 / y)) || (x !== x && y !== y);\n}\nvar objectIs = \"function\" === typeof Object.is ? Object.is : is,\n useSyncExternalStore = shim.useSyncExternalStore,\n useRef = React.useRef,\n useEffect = React.useEffect,\n useMemo = React.useMemo,\n useDebugValue = React.useDebugValue;\nexports.useSyncExternalStoreWithSelector = function (\n subscribe,\n getSnapshot,\n getServerSnapshot,\n selector,\n isEqual\n) {\n var instRef = useRef(null);\n if (null === instRef.current) {\n var inst = { hasValue: !1, value: null };\n instRef.current = inst;\n } else inst = instRef.current;\n instRef = useMemo(\n function () {\n function memoizedSelector(nextSnapshot) {\n if (!hasMemo) {\n hasMemo = !0;\n memoizedSnapshot = nextSnapshot;\n nextSnapshot = selector(nextSnapshot);\n if (void 0 !== isEqual && inst.hasValue) {\n var currentSelection = inst.value;\n if (isEqual(currentSelection, nextSnapshot))\n return (memoizedSelection = currentSelection);\n }\n return (memoizedSelection = nextSnapshot);\n }\n currentSelection = memoizedSelection;\n if (objectIs(memoizedSnapshot, nextSnapshot)) return currentSelection;\n var nextSelection = selector(nextSnapshot);\n if (void 0 !== isEqual && isEqual(currentSelection, nextSelection))\n return (memoizedSnapshot = nextSnapshot), currentSelection;\n memoizedSnapshot = nextSnapshot;\n return (memoizedSelection = nextSelection);\n }\n var hasMemo = !1,\n memoizedSnapshot,\n memoizedSelection,\n maybeGetServerSnapshot =\n void 0 === getServerSnapshot ? null : getServerSnapshot;\n return [\n function () {\n return memoizedSelector(getSnapshot());\n },\n null === maybeGetServerSnapshot\n ? void 0\n : function () {\n return memoizedSelector(maybeGetServerSnapshot());\n }\n ];\n },\n [getSnapshot, getServerSnapshot, selector, isEqual]\n );\n var value = useSyncExternalStore(subscribe, instRef[0], instRef[1]);\n useEffect(\n function () {\n inst.hasValue = !0;\n inst.value = value;\n },\n [value]\n );\n useDebugValue(value);\n return value;\n};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim.development.js');\n}\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.production.js');\n} else {\n module.exports = require('../cjs/use-sync-external-store-shim/with-selector.development.js');\n}\n","module.exports = __WEBPACK_EXTERNAL_MODULE__586__;","module.exports = __WEBPACK_EXTERNAL_MODULE__197__;","module.exports = __WEBPACK_EXTERNAL_MODULE__766__;","module.exports = __WEBPACK_EXTERNAL_MODULE__878__;","module.exports = __WEBPACK_EXTERNAL_MODULE__954__;","module.exports = __WEBPACK_EXTERNAL_MODULE__493__;","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","__webpack_require__.y = __system_context__;","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.p = \"\";","__webpack_require__.nc = undefined;","const autoPublicPath = require(\"./auto-public-path\").autoPublicPath;\n\nautoPublicPath(1);\n","function e(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function t(t){for(var n=1;n=0))return!1;var t=e.version.slice(0,e.version.indexOf(\".\"));try{return Number(t)>=16}catch(e){return!1}}(e.React)||e.errorBoundary||(e.rootComponent.prototype?e.rootComponent.prototype.componentDidCatch||console.warn(\"single-spa-react: \".concat(t.name||t.appName||t.childAppName,\"'s rootComponent should implement componentDidCatch to avoid accidentally unmounting the entire single-spa application.\")):console.warn(\"single-spa-react: \".concat(t.name||t.appName||t.childAppName,\"'s rootComponent does not implement an error boundary. If using a functional component, consider providing an opts.errorBoundary to singleSpaReact(opts).\")));var r=d(e,t,(function(){n(this)})),i=a(e,t)(),c=function(e){var t=e.opts,n=e.elementToRender,o=e.domElement,r=\"function\"==typeof t.renderType?t.renderType():t.renderType;if([\"createRoot\",\"unstable_createRoot\",\"createBlockingRoot\",\"unstable_createBlockingRoot\"].indexOf(r)>=0){var a=t.ReactDOM[r](o);return a.render(n),a}\"hydrate\"===r?t.ReactDOM.hydrate(n,o):t.ReactDOM.render(n,o);return null}({elementToRender:r,domElement:i,opts:e});e.domElements[t.name]=i,e.renderResults[t.name]=c}))}function l(e,t){return new Promise((function(n){e.unmountFinished=n;var o=e.renderResults[t.name];o&&o.unmount?o.unmount():e.ReactDOM.unmountComponentAtNode(e.domElements[t.name]),delete e.domElements[t.name],delete e.renderResults[t.name]}))}function m(e,t){return new Promise((function(n){e.updateResolves[t.name]||(e.updateResolves[t.name]=[]),e.updateResolves[t.name].push(n);var o=d(e,t,null),r=e.renderResults[t.name];if(r&&r.render)r.render(o);else{var i=a(e,t)();e.ReactDOM.render(o,i)}}))}function d(e,n,o){var r=e.React.createElement(e.rootComponent,n),a=i?e.React.createElement(i.Provider,{value:n},r):r;return(e.errorBoundary||n.errorBoundary||e.errorBoundaryClass||n.errorBoundaryClass)&&(e.errorBoundaryClass=e.errorBoundaryClass||n.errorBoundaryClass||function(e,t){function n(t){e.React.Component.apply(this,arguments),this.state={caughtError:null,caughtErrorInfo:null},n.displayName=\"SingleSpaReactErrorBoundary(\".concat(t.name,\")\")}return n.prototype=Object.create(e.React.Component.prototype),n.prototype.render=function(){return this.state.caughtError?(e.errorBoundary||t.errorBoundary)(this.state.caughtError,this.state.caughtErrorInfo,this.props):this.props.children},n.prototype.componentDidCatch=function(e,t){this.setState({caughtError:e,caughtErrorInfo:t})},n}(e,n),a=e.React.createElement(e.errorBoundaryClass,n,a)),a=e.React.createElement(e.SingleSpaRoot,t(t({},n),{},{mountFinished:o,updateFinished:function(){e.updateResolves[n.name]&&(e.updateResolves[n.name].forEach((function(e){return e()})),delete e.updateResolves[n.name])},unmountFinished:function(){setTimeout(e.unmountFinished)}}),a)}export{i as SingleSpaContext,u as default};\n//# sourceMappingURL=single-spa-react.js.map\n","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nexport default function _toPropertyKey(arg) {\n var key = toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}","import _typeof from \"./typeof.js\";\nexport default function _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}","import toPropertyKey from \"./toPropertyKey.js\";\nexport default function _defineProperty(obj, key, value) {\n key = toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n}","// Default to a dummy \"batch\" implementation that just runs the callback\nfunction defaultNoopBatch(callback) {\n callback();\n}\n\nlet batch = defaultNoopBatch; // Allow injecting another batching function later\n\nexport const setBatch = newBatch => batch = newBatch; // Supply a getter just to skip dealing with ESM bindings\n\nexport const getBatch = () => batch;","import * as React from 'react';\nconst ContextKey = Symbol.for(`react-redux-context`);\nconst gT = typeof globalThis !== \"undefined\" ? globalThis :\n/* fall back to a per-module scope (pre-8.1 behaviour) if `globalThis` is not available */\n{};\n\nfunction getContext() {\n var _gT$ContextKey;\n\n if (!React.createContext) return {};\n const contextMap = (_gT$ContextKey = gT[ContextKey]) != null ? _gT$ContextKey : gT[ContextKey] = new Map();\n let realContext = contextMap.get(React.createContext);\n\n if (!realContext) {\n realContext = React.createContext(null);\n\n if (process.env.NODE_ENV !== 'production') {\n realContext.displayName = 'ReactRedux';\n }\n\n contextMap.set(React.createContext, realContext);\n }\n\n return realContext;\n}\n\nexport const ReactReduxContext = /*#__PURE__*/getContext();\nexport default ReactReduxContext;","import { useCallback, useDebugValue, useRef } from 'react';\nimport { createReduxContextHook, useReduxContext as useDefaultReduxContext } from './useReduxContext';\nimport { ReactReduxContext } from '../components/Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStoreWithSelector = notInitialized;\nexport const initializeUseSelector = fn => {\n useSyncExternalStoreWithSelector = fn;\n};\n\nconst refEquality = (a, b) => a === b;\n/**\r\n * Hook factory, which creates a `useSelector` hook bound to a given context.\r\n *\r\n * @param {React.Context} [context=ReactReduxContext] Context passed to your ``.\r\n * @returns {Function} A `useSelector` hook bound to the specified context.\r\n */\n\n\nexport function createSelectorHook(context = ReactReduxContext) {\n const useReduxContext = context === ReactReduxContext ? useDefaultReduxContext : createReduxContextHook(context);\n return function useSelector(selector, equalityFnOrOptions = {}) {\n const {\n equalityFn = refEquality,\n stabilityCheck = undefined,\n noopCheck = undefined\n } = typeof equalityFnOrOptions === 'function' ? {\n equalityFn: equalityFnOrOptions\n } : equalityFnOrOptions;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!selector) {\n throw new Error(`You must pass a selector to useSelector`);\n }\n\n if (typeof selector !== 'function') {\n throw new Error(`You must pass a function as a selector to useSelector`);\n }\n\n if (typeof equalityFn !== 'function') {\n throw new Error(`You must pass a function as an equality function to useSelector`);\n }\n }\n\n const {\n store,\n subscription,\n getServerState,\n stabilityCheck: globalStabilityCheck,\n noopCheck: globalNoopCheck\n } = useReduxContext();\n const firstRun = useRef(true);\n const wrappedSelector = useCallback({\n [selector.name](state) {\n const selected = selector(state);\n\n if (process.env.NODE_ENV !== 'production') {\n const finalStabilityCheck = typeof stabilityCheck === 'undefined' ? globalStabilityCheck : stabilityCheck;\n\n if (finalStabilityCheck === 'always' || finalStabilityCheck === 'once' && firstRun.current) {\n const toCompare = selector(state);\n\n if (!equalityFn(selected, toCompare)) {\n let stack = undefined;\n\n try {\n throw new Error();\n } catch (e) {\n ;\n ({\n stack\n } = e);\n }\n\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned a different result when called with the same parameters. This can lead to unnecessary rerenders.' + '\\nSelectors that return a new reference (such as an object or an array) should be memoized: https://redux.js.org/usage/deriving-data-selectors#optimizing-selectors-with-memoization', {\n state,\n selected,\n selected2: toCompare,\n stack\n });\n }\n }\n\n const finalNoopCheck = typeof noopCheck === 'undefined' ? globalNoopCheck : noopCheck;\n\n if (finalNoopCheck === 'always' || finalNoopCheck === 'once' && firstRun.current) {\n // @ts-ignore\n if (selected === state) {\n let stack = undefined;\n\n try {\n throw new Error();\n } catch (e) {\n ;\n ({\n stack\n } = e);\n }\n\n console.warn('Selector ' + (selector.name || 'unknown') + ' returned the root state when called. This can lead to unnecessary rerenders.' + '\\nSelectors that return the entire state are almost certainly a mistake, as they will cause a rerender whenever *anything* in state changes.', {\n stack\n });\n }\n }\n\n if (firstRun.current) firstRun.current = false;\n }\n\n return selected;\n }\n\n }[selector.name], [selector, globalStabilityCheck, stabilityCheck]);\n const selectedState = useSyncExternalStoreWithSelector(subscription.addNestedSub, store.getState, getServerState || store.getState, wrappedSelector, equalityFn);\n useDebugValue(selectedState);\n return selectedState;\n };\n}\n/**\r\n * A hook to access the redux store's state. This hook takes a selector function\r\n * as an argument. The selector is called with the store state.\r\n *\r\n * This hook takes an optional equality comparison function as the second parameter\r\n * that allows you to customize the way the selected state is compared to determine\r\n * whether the component needs to be re-rendered.\r\n *\r\n * @param {Function} selector the selector function\r\n * @param {Function=} equalityFn the function that will be used to determine equality\r\n *\r\n * @returns {any} the selected state\r\n *\r\n * @example\r\n *\r\n * import React from 'react'\r\n * import { useSelector } from 'react-redux'\r\n *\r\n * export const CounterComponent = () => {\r\n * const counter = useSelector(state => state.counter)\r\n * return
{counter}
\r\n * }\r\n */\n\nexport const useSelector = /*#__PURE__*/createSelectorHook();","export default function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n}","export default function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n return target;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"initMapStateToProps\", \"initMapDispatchToProps\", \"initMergeProps\"];\nimport verifySubselectors from './verifySubselectors';\nexport function pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, {\n areStatesEqual,\n areOwnPropsEqual,\n areStatePropsEqual\n}) {\n let hasRunAtLeastOnce = false;\n let state;\n let ownProps;\n let stateProps;\n let dispatchProps;\n let mergedProps;\n\n function handleFirstCall(firstState, firstOwnProps) {\n state = firstState;\n ownProps = firstOwnProps;\n stateProps = mapStateToProps(state, ownProps);\n dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n hasRunAtLeastOnce = true;\n return mergedProps;\n }\n\n function handleNewPropsAndNewState() {\n stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewProps() {\n if (mapStateToProps.dependsOnOwnProps) stateProps = mapStateToProps(state, ownProps);\n if (mapDispatchToProps.dependsOnOwnProps) dispatchProps = mapDispatchToProps(dispatch, ownProps);\n mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleNewState() {\n const nextStateProps = mapStateToProps(state, ownProps);\n const statePropsChanged = !areStatePropsEqual(nextStateProps, stateProps);\n stateProps = nextStateProps;\n if (statePropsChanged) mergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n return mergedProps;\n }\n\n function handleSubsequentCalls(nextState, nextOwnProps) {\n const propsChanged = !areOwnPropsEqual(nextOwnProps, ownProps);\n const stateChanged = !areStatesEqual(nextState, state, nextOwnProps, ownProps);\n state = nextState;\n ownProps = nextOwnProps;\n if (propsChanged && stateChanged) return handleNewPropsAndNewState();\n if (propsChanged) return handleNewProps();\n if (stateChanged) return handleNewState();\n return mergedProps;\n }\n\n return function pureFinalPropsSelector(nextState, nextOwnProps) {\n return hasRunAtLeastOnce ? handleSubsequentCalls(nextState, nextOwnProps) : handleFirstCall(nextState, nextOwnProps);\n };\n}\n// TODO: Add more comments\n// The selector returned by selectorFactory will memoize its results,\n// allowing connect's shouldComponentUpdate to return false if final\n// props have not changed.\nexport default function finalPropsSelectorFactory(dispatch, _ref) {\n let {\n initMapStateToProps,\n initMapDispatchToProps,\n initMergeProps\n } = _ref,\n options = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n const mapStateToProps = initMapStateToProps(dispatch, options);\n const mapDispatchToProps = initMapDispatchToProps(dispatch, options);\n const mergeProps = initMergeProps(dispatch, options);\n\n if (process.env.NODE_ENV !== 'production') {\n verifySubselectors(mapStateToProps, mapDispatchToProps, mergeProps);\n }\n\n return pureFinalPropsSelectorFactory(mapStateToProps, mapDispatchToProps, mergeProps, dispatch, options);\n}","import verifyPlainObject from '../utils/verifyPlainObject';\nexport function wrapMapToPropsConstant( // * Note:\n// It seems that the dispatch argument\n// could be a dispatch function in some cases (ex: whenMapDispatchToPropsIsMissing)\n// and a state object in some others (ex: whenMapStateToPropsIsMissing)\n// eslint-disable-next-line no-unused-vars\ngetConstant) {\n return function initConstantSelector(dispatch) {\n const constant = getConstant(dispatch);\n\n function constantSelector() {\n return constant;\n }\n\n constantSelector.dependsOnOwnProps = false;\n return constantSelector;\n };\n} // dependsOnOwnProps is used by createMapToPropsProxy to determine whether to pass props as args\n// to the mapToProps function being wrapped. It is also used by makePurePropsSelector to determine\n// whether mapToProps needs to be invoked when props have changed.\n//\n// A length of one signals that mapToProps does not depend on props from the parent component.\n// A length of zero is assumed to mean mapToProps is getting args via arguments or ...args and\n// therefore not reporting its length accurately..\n// TODO Can this get pulled out so that we can subscribe directly to the store if we don't need ownProps?\n\nexport function getDependsOnOwnProps(mapToProps) {\n return mapToProps.dependsOnOwnProps ? Boolean(mapToProps.dependsOnOwnProps) : mapToProps.length !== 1;\n} // Used by whenMapStateToPropsIsFunction and whenMapDispatchToPropsIsFunction,\n// this function wraps mapToProps in a proxy function which does several things:\n//\n// * Detects whether the mapToProps function being called depends on props, which\n// is used by selectorFactory to decide if it should reinvoke on props changes.\n//\n// * On first call, handles mapToProps if returns another function, and treats that\n// new function as the true mapToProps for subsequent calls.\n//\n// * On first call, verifies the first result is a plain object, in order to warn\n// the developer that their mapToProps function is not returning a valid result.\n//\n\nexport function wrapMapToPropsFunc(mapToProps, methodName) {\n return function initProxySelector(dispatch, {\n displayName\n }) {\n const proxy = function mapToPropsProxy(stateOrDispatch, ownProps) {\n return proxy.dependsOnOwnProps ? proxy.mapToProps(stateOrDispatch, ownProps) : proxy.mapToProps(stateOrDispatch, undefined);\n }; // allow detectFactoryAndVerify to get ownProps\n\n\n proxy.dependsOnOwnProps = true;\n\n proxy.mapToProps = function detectFactoryAndVerify(stateOrDispatch, ownProps) {\n proxy.mapToProps = mapToProps;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(mapToProps);\n let props = proxy(stateOrDispatch, ownProps);\n\n if (typeof props === 'function') {\n proxy.mapToProps = props;\n proxy.dependsOnOwnProps = getDependsOnOwnProps(props);\n props = proxy(stateOrDispatch, ownProps);\n }\n\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(props, displayName, methodName);\n return props;\n };\n\n return proxy;\n };\n}","export function createInvalidArgFactory(arg, name) {\n return (dispatch, options) => {\n throw new Error(`Invalid value of type ${typeof arg} for ${name} argument when connecting component ${options.wrappedComponentName}.`);\n };\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport verifyPlainObject from '../utils/verifyPlainObject';\nimport { createInvalidArgFactory } from './invalidArgFactory';\nexport function defaultMergeProps(stateProps, dispatchProps, ownProps) {\n // @ts-ignore\n return _extends({}, ownProps, stateProps, dispatchProps);\n}\nexport function wrapMergePropsFunc(mergeProps) {\n return function initMergePropsProxy(dispatch, {\n displayName,\n areMergedPropsEqual\n }) {\n let hasRunOnce = false;\n let mergedProps;\n return function mergePropsProxy(stateProps, dispatchProps, ownProps) {\n const nextMergedProps = mergeProps(stateProps, dispatchProps, ownProps);\n\n if (hasRunOnce) {\n if (!areMergedPropsEqual(nextMergedProps, mergedProps)) mergedProps = nextMergedProps;\n } else {\n hasRunOnce = true;\n mergedProps = nextMergedProps;\n if (process.env.NODE_ENV !== 'production') verifyPlainObject(mergedProps, displayName, 'mergeProps');\n }\n\n return mergedProps;\n };\n };\n}\nexport function mergePropsFactory(mergeProps) {\n return !mergeProps ? () => defaultMergeProps : typeof mergeProps === 'function' ? wrapMergePropsFunc(mergeProps) : createInvalidArgFactory(mergeProps, 'mergeProps');\n}","import { getBatch } from './batch'; // encapsulates the subscription logic for connecting a component to the redux store, as\n// well as nesting subscriptions of descendant components, so that we can ensure the\n// ancestor components re-render before descendants\n\nfunction createListenerCollection() {\n const batch = getBatch();\n let first = null;\n let last = null;\n return {\n clear() {\n first = null;\n last = null;\n },\n\n notify() {\n batch(() => {\n let listener = first;\n\n while (listener) {\n listener.callback();\n listener = listener.next;\n }\n });\n },\n\n get() {\n let listeners = [];\n let listener = first;\n\n while (listener) {\n listeners.push(listener);\n listener = listener.next;\n }\n\n return listeners;\n },\n\n subscribe(callback) {\n let isSubscribed = true;\n let listener = last = {\n callback,\n next: null,\n prev: last\n };\n\n if (listener.prev) {\n listener.prev.next = listener;\n } else {\n first = listener;\n }\n\n return function unsubscribe() {\n if (!isSubscribed || first === null) return;\n isSubscribed = false;\n\n if (listener.next) {\n listener.next.prev = listener.prev;\n } else {\n last = listener.prev;\n }\n\n if (listener.prev) {\n listener.prev.next = listener.next;\n } else {\n first = listener.next;\n }\n };\n }\n\n };\n}\n\nconst nullListeners = {\n notify() {},\n\n get: () => []\n};\nexport function createSubscription(store, parentSub) {\n let unsubscribe;\n let listeners = nullListeners; // Reasons to keep the subscription active\n\n let subscriptionsAmount = 0; // Is this specific subscription subscribed (or only nested ones?)\n\n let selfSubscribed = false;\n\n function addNestedSub(listener) {\n trySubscribe();\n const cleanupListener = listeners.subscribe(listener); // cleanup nested sub\n\n let removed = false;\n return () => {\n if (!removed) {\n removed = true;\n cleanupListener();\n tryUnsubscribe();\n }\n };\n }\n\n function notifyNestedSubs() {\n listeners.notify();\n }\n\n function handleChangeWrapper() {\n if (subscription.onStateChange) {\n subscription.onStateChange();\n }\n }\n\n function isSubscribed() {\n return selfSubscribed;\n }\n\n function trySubscribe() {\n subscriptionsAmount++;\n\n if (!unsubscribe) {\n unsubscribe = parentSub ? parentSub.addNestedSub(handleChangeWrapper) : store.subscribe(handleChangeWrapper);\n listeners = createListenerCollection();\n }\n }\n\n function tryUnsubscribe() {\n subscriptionsAmount--;\n\n if (unsubscribe && subscriptionsAmount === 0) {\n unsubscribe();\n unsubscribe = undefined;\n listeners.clear();\n listeners = nullListeners;\n }\n }\n\n function trySubscribeSelf() {\n if (!selfSubscribed) {\n selfSubscribed = true;\n trySubscribe();\n }\n }\n\n function tryUnsubscribeSelf() {\n if (selfSubscribed) {\n selfSubscribed = false;\n tryUnsubscribe();\n }\n }\n\n const subscription = {\n addNestedSub,\n notifyNestedSubs,\n handleChangeWrapper,\n isSubscribed,\n trySubscribe: trySubscribeSelf,\n tryUnsubscribe: tryUnsubscribeSelf,\n getListeners: () => listeners\n };\n return subscription;\n}","import * as React from 'react'; // React currently throws a warning when using useLayoutEffect on the server.\n// To get around it, we can conditionally useEffect on the server (no-op) and\n// useLayoutEffect in the browser. We need useLayoutEffect to ensure the store\n// subscription callback always has the selector from the latest render commit\n// available, otherwise a store update may happen between render and the effect,\n// which may cause missed updates; we also must ensure the store subscription\n// is created synchronously, otherwise a store update may occur before the\n// subscription is created and an inconsistent state may be observed\n// Matches logic in React's `shared/ExecutionEnvironment` file\n\nexport const canUseDOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\nexport const useIsomorphicLayoutEffect = canUseDOM ? React.useLayoutEffect : React.useEffect;","function is(x, y) {\n if (x === y) {\n return x !== 0 || y !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\n\nexport default function shallowEqual(objA, objB) {\n if (is(objA, objB)) return true;\n\n if (typeof objA !== 'object' || objA === null || typeof objB !== 'object' || objB === null) {\n return false;\n }\n\n const keysA = Object.keys(objA);\n const keysB = Object.keys(objB);\n if (keysA.length !== keysB.length) return false;\n\n for (let i = 0; i < keysA.length; i++) {\n if (!Object.prototype.hasOwnProperty.call(objB, keysA[i]) || !is(objA[keysA[i]], objB[keysA[i]])) {\n return false;\n }\n }\n\n return true;\n}","export const notInitialized = () => {\n throw new Error('uSES not initialized!');\n};","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"reactReduxForwardedRef\"];\n\n/* eslint-disable valid-jsdoc, @typescript-eslint/no-unused-vars */\nimport hoistStatics from 'hoist-non-react-statics';\nimport * as React from 'react';\nimport { isValidElementType, isContextConsumer } from 'react-is';\nimport defaultSelectorFactory from '../connect/selectorFactory';\nimport { mapDispatchToPropsFactory } from '../connect/mapDispatchToProps';\nimport { mapStateToPropsFactory } from '../connect/mapStateToProps';\nimport { mergePropsFactory } from '../connect/mergeProps';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\nimport shallowEqual from '../utils/shallowEqual';\nimport warning from '../utils/warning';\nimport { ReactReduxContext } from './Context';\nimport { notInitialized } from '../utils/useSyncExternalStore';\nlet useSyncExternalStore = notInitialized;\nexport const initializeConnect = fn => {\n useSyncExternalStore = fn;\n}; // Define some constant arrays just to avoid re-creating these\n\nconst EMPTY_ARRAY = [null, 0];\nconst NO_SUBSCRIPTION_ARRAY = [null, null]; // Attempts to stringify whatever not-really-a-component value we were given\n// for logging in an error message\n\nconst stringifyComponent = Comp => {\n try {\n return JSON.stringify(Comp);\n } catch (err) {\n return String(Comp);\n }\n};\n\n// This is \"just\" a `useLayoutEffect`, but with two modifications:\n// - we need to fall back to `useEffect` in SSR to avoid annoying warnings\n// - we extract this to a separate function to avoid closing over values\n// and causing memory leaks\nfunction useIsomorphicLayoutEffectWithArgs(effectFunc, effectArgs, dependencies) {\n useIsomorphicLayoutEffect(() => effectFunc(...effectArgs), dependencies);\n} // Effect callback, extracted: assign the latest props values to refs for later usage\n\n\nfunction captureWrapperProps(lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, // actualChildProps: unknown,\nchildPropsFromStoreUpdate, notifyNestedSubs) {\n // We want to capture the wrapper props and child props we used for later comparisons\n lastWrapperProps.current = wrapperProps;\n renderIsScheduled.current = false; // If the render was from a store update, clear out that reference and cascade the subscriber update\n\n if (childPropsFromStoreUpdate.current) {\n childPropsFromStoreUpdate.current = null;\n notifyNestedSubs();\n }\n} // Effect callback, extracted: subscribe to the Redux store or nearest connected ancestor,\n// check for updates after dispatched actions, and trigger re-renders.\n\n\nfunction subscribeUpdates(shouldHandleStateChanges, store, subscription, childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, // forceComponentUpdateDispatch: React.Dispatch,\nadditionalSubscribeListener) {\n // If we're not subscribed to the store, nothing to do here\n if (!shouldHandleStateChanges) return () => {}; // Capture values for checking if and when this component unmounts\n\n let didUnsubscribe = false;\n let lastThrownError = null; // We'll run this callback every time a store subscription update propagates to this component\n\n const checkForUpdates = () => {\n if (didUnsubscribe || !isMounted.current) {\n // Don't run stale listeners.\n // Redux doesn't guarantee unsubscriptions happen until next dispatch.\n return;\n } // TODO We're currently calling getState ourselves here, rather than letting `uSES` do it\n\n\n const latestStoreState = store.getState();\n let newChildProps, error;\n\n try {\n // Actually run the selector with the most recent store state and wrapper props\n // to determine what the child props should be\n newChildProps = childPropsSelector(latestStoreState, lastWrapperProps.current);\n } catch (e) {\n error = e;\n lastThrownError = e;\n }\n\n if (!error) {\n lastThrownError = null;\n } // If the child props haven't changed, nothing to do here - cascade the subscription update\n\n\n if (newChildProps === lastChildProps.current) {\n if (!renderIsScheduled.current) {\n notifyNestedSubs();\n }\n } else {\n // Save references to the new child props. Note that we track the \"child props from store update\"\n // as a ref instead of a useState/useReducer because we need a way to determine if that value has\n // been processed. If this went into useState/useReducer, we couldn't clear out the value without\n // forcing another re-render, which we don't want.\n lastChildProps.current = newChildProps;\n childPropsFromStoreUpdate.current = newChildProps;\n renderIsScheduled.current = true; // TODO This is hacky and not how `uSES` is meant to be used\n // Trigger the React `useSyncExternalStore` subscriber\n\n additionalSubscribeListener();\n }\n }; // Actually subscribe to the nearest connected ancestor (or store)\n\n\n subscription.onStateChange = checkForUpdates;\n subscription.trySubscribe(); // Pull data from the store after first render in case the store has\n // changed since we began.\n\n checkForUpdates();\n\n const unsubscribeWrapper = () => {\n didUnsubscribe = true;\n subscription.tryUnsubscribe();\n subscription.onStateChange = null;\n\n if (lastThrownError) {\n // It's possible that we caught an error due to a bad mapState function, but the\n // parent re-rendered without this component and we're about to unmount.\n // This shouldn't happen as long as we do top-down subscriptions correctly, but\n // if we ever do those wrong, this throw will surface the error in our tests.\n // In that case, throw the error from here so it doesn't get lost.\n throw lastThrownError;\n }\n };\n\n return unsubscribeWrapper;\n} // Reducer initial state creation for our update reducer\n\n\nconst initStateUpdates = () => EMPTY_ARRAY;\n\nfunction strictEqual(a, b) {\n return a === b;\n}\n/**\r\n * Infers the type of props that a connector will inject into a component.\r\n */\n\n\nlet hasWarnedAboutDeprecatedPureOption = false;\n/**\r\n * Connects a React component to a Redux store.\r\n *\r\n * - Without arguments, just wraps the component, without changing the behavior / props\r\n *\r\n * - If 2 params are passed (3rd param, mergeProps, is skipped), default behavior\r\n * is to override ownProps (as stated in the docs), so what remains is everything that's\r\n * not a state or dispatch prop\r\n *\r\n * - When 3rd param is passed, we don't know if ownProps propagate and whether they\r\n * should be valid component props, because it depends on mergeProps implementation.\r\n * As such, it is the user's responsibility to extend ownProps interface from state or\r\n * dispatch props or both when applicable\r\n *\r\n * @param mapStateToProps A function that extracts values from state\r\n * @param mapDispatchToProps Setup for dispatching actions\r\n * @param mergeProps Optional callback to merge state and dispatch props together\r\n * @param options Options for configuring the connection\r\n *\r\n */\n\nfunction connect(mapStateToProps, mapDispatchToProps, mergeProps, {\n // The `pure` option has been removed, so TS doesn't like us destructuring this to check its existence.\n // @ts-ignore\n pure,\n areStatesEqual = strictEqual,\n areOwnPropsEqual = shallowEqual,\n areStatePropsEqual = shallowEqual,\n areMergedPropsEqual = shallowEqual,\n // use React's forwardRef to expose a ref of the wrapped component\n forwardRef = false,\n // the context consumer to use\n context = ReactReduxContext\n} = {}) {\n if (process.env.NODE_ENV !== 'production') {\n if (pure !== undefined && !hasWarnedAboutDeprecatedPureOption) {\n hasWarnedAboutDeprecatedPureOption = true;\n warning('The `pure` option has been removed. `connect` is now always a \"pure/memoized\" component');\n }\n }\n\n const Context = context;\n const initMapStateToProps = mapStateToPropsFactory(mapStateToProps);\n const initMapDispatchToProps = mapDispatchToPropsFactory(mapDispatchToProps);\n const initMergeProps = mergePropsFactory(mergeProps);\n const shouldHandleStateChanges = Boolean(mapStateToProps);\n\n const wrapWithConnect = WrappedComponent => {\n if (process.env.NODE_ENV !== 'production' && !isValidElementType(WrappedComponent)) {\n throw new Error(`You must pass a component to the function returned by connect. Instead received ${stringifyComponent(WrappedComponent)}`);\n }\n\n const wrappedComponentName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\n const displayName = `Connect(${wrappedComponentName})`;\n const selectorFactoryOptions = {\n shouldHandleStateChanges,\n displayName,\n wrappedComponentName,\n WrappedComponent,\n // @ts-ignore\n initMapStateToProps,\n // @ts-ignore\n initMapDispatchToProps,\n initMergeProps,\n areStatesEqual,\n areStatePropsEqual,\n areOwnPropsEqual,\n areMergedPropsEqual\n };\n\n function ConnectFunction(props) {\n const [propsContext, reactReduxForwardedRef, wrapperProps] = React.useMemo(() => {\n // Distinguish between actual \"data\" props that were passed to the wrapper component,\n // and values needed to control behavior (forwarded refs, alternate context instances).\n // To maintain the wrapperProps object reference, memoize this destructuring.\n const {\n reactReduxForwardedRef\n } = props,\n wrapperProps = _objectWithoutPropertiesLoose(props, _excluded);\n\n return [props.context, reactReduxForwardedRef, wrapperProps];\n }, [props]);\n const ContextToUse = React.useMemo(() => {\n // Users may optionally pass in a custom context instance to use instead of our ReactReduxContext.\n // Memoize the check that determines which context instance we should use.\n return propsContext && propsContext.Consumer && // @ts-ignore\n isContextConsumer( /*#__PURE__*/React.createElement(propsContext.Consumer, null)) ? propsContext : Context;\n }, [propsContext, Context]); // Retrieve the store and ancestor subscription via context, if available\n\n const contextValue = React.useContext(ContextToUse); // The store _must_ exist as either a prop or in context.\n // We'll check to see if it _looks_ like a Redux store first.\n // This allows us to pass through a `store` prop that is just a plain value.\n\n const didStoreComeFromProps = Boolean(props.store) && Boolean(props.store.getState) && Boolean(props.store.dispatch);\n const didStoreComeFromContext = Boolean(contextValue) && Boolean(contextValue.store);\n\n if (process.env.NODE_ENV !== 'production' && !didStoreComeFromProps && !didStoreComeFromContext) {\n throw new Error(`Could not find \"store\" in the context of ` + `\"${displayName}\". Either wrap the root component in a , ` + `or pass a custom React context provider to and the corresponding ` + `React context consumer to ${displayName} in connect options.`);\n } // Based on the previous check, one of these must be true\n\n\n const store = didStoreComeFromProps ? props.store : contextValue.store;\n const getServerState = didStoreComeFromContext ? contextValue.getServerState : store.getState;\n const childPropsSelector = React.useMemo(() => {\n // The child props selector needs the store reference as an input.\n // Re-create this selector whenever the store changes.\n return defaultSelectorFactory(store.dispatch, selectorFactoryOptions);\n }, [store]);\n const [subscription, notifyNestedSubs] = React.useMemo(() => {\n if (!shouldHandleStateChanges) return NO_SUBSCRIPTION_ARRAY; // This Subscription's source should match where store came from: props vs. context. A component\n // connected to the store via props shouldn't use subscription from context, or vice versa.\n\n const subscription = createSubscription(store, didStoreComeFromProps ? undefined : contextValue.subscription); // `notifyNestedSubs` is duplicated to handle the case where the component is unmounted in\n // the middle of the notification loop, where `subscription` will then be null. This can\n // probably be avoided if Subscription's listeners logic is changed to not call listeners\n // that have been unsubscribed in the middle of the notification loop.\n\n const notifyNestedSubs = subscription.notifyNestedSubs.bind(subscription);\n return [subscription, notifyNestedSubs];\n }, [store, didStoreComeFromProps, contextValue]); // Determine what {store, subscription} value should be put into nested context, if necessary,\n // and memoize that value to avoid unnecessary context updates.\n\n const overriddenContextValue = React.useMemo(() => {\n if (didStoreComeFromProps) {\n // This component is directly subscribed to a store from props.\n // We don't want descendants reading from this store - pass down whatever\n // the existing context value is from the nearest connected ancestor.\n return contextValue;\n } // Otherwise, put this component's subscription instance into context, so that\n // connected descendants won't update until after this component is done\n\n\n return _extends({}, contextValue, {\n subscription\n });\n }, [didStoreComeFromProps, contextValue, subscription]); // Set up refs to coordinate values between the subscription effect and the render logic\n\n const lastChildProps = React.useRef();\n const lastWrapperProps = React.useRef(wrapperProps);\n const childPropsFromStoreUpdate = React.useRef();\n const renderIsScheduled = React.useRef(false);\n const isProcessingDispatch = React.useRef(false);\n const isMounted = React.useRef(false);\n const latestSubscriptionCallbackError = React.useRef();\n useIsomorphicLayoutEffect(() => {\n isMounted.current = true;\n return () => {\n isMounted.current = false;\n };\n }, []);\n const actualChildPropsSelector = React.useMemo(() => {\n const selector = () => {\n // Tricky logic here:\n // - This render may have been triggered by a Redux store update that produced new child props\n // - However, we may have gotten new wrapper props after that\n // If we have new child props, and the same wrapper props, we know we should use the new child props as-is.\n // But, if we have new wrapper props, those might change the child props, so we have to recalculate things.\n // So, we'll use the child props from store update only if the wrapper props are the same as last time.\n if (childPropsFromStoreUpdate.current && wrapperProps === lastWrapperProps.current) {\n return childPropsFromStoreUpdate.current;\n } // TODO We're reading the store directly in render() here. Bad idea?\n // This will likely cause Bad Things (TM) to happen in Concurrent Mode.\n // Note that we do this because on renders _not_ caused by store updates, we need the latest store state\n // to determine what the child props should be.\n\n\n return childPropsSelector(store.getState(), wrapperProps);\n };\n\n return selector;\n }, [store, wrapperProps]); // We need this to execute synchronously every time we re-render. However, React warns\n // about useLayoutEffect in SSR, so we try to detect environment and fall back to\n // just useEffect instead to avoid the warning, since neither will run anyway.\n\n const subscribeForReact = React.useMemo(() => {\n const subscribe = reactListener => {\n if (!subscription) {\n return () => {};\n }\n\n return subscribeUpdates(shouldHandleStateChanges, store, subscription, // @ts-ignore\n childPropsSelector, lastWrapperProps, lastChildProps, renderIsScheduled, isMounted, childPropsFromStoreUpdate, notifyNestedSubs, reactListener);\n };\n\n return subscribe;\n }, [subscription]);\n useIsomorphicLayoutEffectWithArgs(captureWrapperProps, [lastWrapperProps, lastChildProps, renderIsScheduled, wrapperProps, childPropsFromStoreUpdate, notifyNestedSubs]);\n let actualChildProps;\n\n try {\n actualChildProps = useSyncExternalStore( // TODO We're passing through a big wrapper that does a bunch of extra side effects besides subscribing\n subscribeForReact, // TODO This is incredibly hacky. We've already processed the store update and calculated new child props,\n // TODO and we're just passing that through so it triggers a re-render for us rather than relying on `uSES`.\n actualChildPropsSelector, getServerState ? () => childPropsSelector(getServerState(), wrapperProps) : actualChildPropsSelector);\n } catch (err) {\n if (latestSubscriptionCallbackError.current) {\n ;\n err.message += `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`;\n }\n\n throw err;\n }\n\n useIsomorphicLayoutEffect(() => {\n latestSubscriptionCallbackError.current = undefined;\n childPropsFromStoreUpdate.current = undefined;\n lastChildProps.current = actualChildProps;\n }); // Now that all that's done, we can finally try to actually render the child component.\n // We memoize the elements for the rendered child component as an optimization.\n\n const renderedWrappedComponent = React.useMemo(() => {\n return (\n /*#__PURE__*/\n // @ts-ignore\n React.createElement(WrappedComponent, _extends({}, actualChildProps, {\n ref: reactReduxForwardedRef\n }))\n );\n }, [reactReduxForwardedRef, WrappedComponent, actualChildProps]); // If React sees the exact same element reference as last time, it bails out of re-rendering\n // that child, same as if it was wrapped in React.memo() or returned false from shouldComponentUpdate.\n\n const renderedChild = React.useMemo(() => {\n if (shouldHandleStateChanges) {\n // If this component is subscribed to store updates, we need to pass its own\n // subscription instance down to our descendants. That means rendering the same\n // Context instance, and putting a different value into the context.\n return /*#__PURE__*/React.createElement(ContextToUse.Provider, {\n value: overriddenContextValue\n }, renderedWrappedComponent);\n }\n\n return renderedWrappedComponent;\n }, [ContextToUse, renderedWrappedComponent, overriddenContextValue]);\n return renderedChild;\n }\n\n const _Connect = React.memo(ConnectFunction);\n\n // Add a hacky cast to get the right output type\n const Connect = _Connect;\n Connect.WrappedComponent = WrappedComponent;\n Connect.displayName = ConnectFunction.displayName = displayName;\n\n if (forwardRef) {\n const _forwarded = React.forwardRef(function forwardConnectRef(props, ref) {\n // @ts-ignore\n return /*#__PURE__*/React.createElement(Connect, _extends({}, props, {\n reactReduxForwardedRef: ref\n }));\n });\n\n const forwarded = _forwarded;\n forwarded.displayName = displayName;\n forwarded.WrappedComponent = WrappedComponent;\n return hoistStatics(forwarded, WrappedComponent);\n }\n\n return hoistStatics(Connect, WrappedComponent);\n };\n\n return wrapWithConnect;\n}\n\nexport default connect;","import * as React from 'react';\nimport { ReactReduxContext } from './Context';\nimport { createSubscription } from '../utils/Subscription';\nimport { useIsomorphicLayoutEffect } from '../utils/useIsomorphicLayoutEffect';\n\nfunction Provider({\n store,\n context,\n children,\n serverState,\n stabilityCheck = 'once',\n noopCheck = 'once'\n}) {\n const contextValue = React.useMemo(() => {\n const subscription = createSubscription(store);\n return {\n store,\n subscription,\n getServerState: serverState ? () => serverState : undefined,\n stabilityCheck,\n noopCheck\n };\n }, [store, serverState, stabilityCheck, noopCheck]);\n const previousState = React.useMemo(() => store.getState(), [store]);\n useIsomorphicLayoutEffect(() => {\n const {\n subscription\n } = contextValue;\n subscription.onStateChange = subscription.notifyNestedSubs;\n subscription.trySubscribe();\n\n if (previousState !== store.getState()) {\n subscription.notifyNestedSubs();\n }\n\n return () => {\n subscription.tryUnsubscribe();\n subscription.onStateChange = undefined;\n };\n }, [contextValue, previousState]);\n const Context = context || ReactReduxContext; // @ts-ignore 'AnyAction' is assignable to the constraint of type 'A', but 'A' could be instantiated with a different subtype\n\n return /*#__PURE__*/React.createElement(Context.Provider, {\n value: contextValue\n }, children);\n}\n\nexport default Provider;","// The primary entry point assumes we're working with standard ReactDOM/RN, but\n// older versions that do not include `useSyncExternalStore` (React 16.9 - 17.x).\n// Because of that, the useSyncExternalStore compat shim is needed.\nimport { useSyncExternalStore } from 'use-sync-external-store/shim';\nimport { useSyncExternalStoreWithSelector } from 'use-sync-external-store/shim/with-selector';\nimport { unstable_batchedUpdates as batch } from './utils/reactBatchedUpdates';\nimport { setBatch } from './utils/batch';\nimport { initializeUseSelector } from './hooks/useSelector';\nimport { initializeConnect } from './components/connect';\ninitializeUseSelector(useSyncExternalStoreWithSelector);\ninitializeConnect(useSyncExternalStore); // Enable batched updates in our subscriptions for use\n// with standard React renderers (ReactDOM, React Native)\n\nsetBatch(batch);\nexport { batch };\nexport * from './exports';","export default function _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n return _setPrototypeOf(o, p);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n setPrototypeOf(subClass, superClass);\n}","function isAbsolute(pathname) {\n return pathname.charAt(0) === '/';\n}\n\n// About 1.5x faster than the two-arg version of Array#splice()\nfunction spliceOne(list, index) {\n for (var i = index, k = i + 1, n = list.length; k < n; i += 1, k += 1) {\n list[i] = list[k];\n }\n\n list.pop();\n}\n\n// This implementation is based heavily on node's url.parse\nfunction resolvePathname(to, from) {\n if (from === undefined) from = '';\n\n var toParts = (to && to.split('/')) || [];\n var fromParts = (from && from.split('/')) || [];\n\n var isToAbs = to && isAbsolute(to);\n var isFromAbs = from && isAbsolute(from);\n var mustEndAbs = isToAbs || isFromAbs;\n\n if (to && isAbsolute(to)) {\n // to is absolute\n fromParts = toParts;\n } else if (toParts.length) {\n // to is relative, drop the filename\n fromParts.pop();\n fromParts = fromParts.concat(toParts);\n }\n\n if (!fromParts.length) return '/';\n\n var hasTrailingSlash;\n if (fromParts.length) {\n var last = fromParts[fromParts.length - 1];\n hasTrailingSlash = last === '.' || last === '..' || last === '';\n } else {\n hasTrailingSlash = false;\n }\n\n var up = 0;\n for (var i = fromParts.length; i >= 0; i--) {\n var part = fromParts[i];\n\n if (part === '.') {\n spliceOne(fromParts, i);\n } else if (part === '..') {\n spliceOne(fromParts, i);\n up++;\n } else if (up) {\n spliceOne(fromParts, i);\n up--;\n }\n }\n\n if (!mustEndAbs) for (; up--; up) fromParts.unshift('..');\n\n if (\n mustEndAbs &&\n fromParts[0] !== '' &&\n (!fromParts[0] || !isAbsolute(fromParts[0]))\n )\n fromParts.unshift('');\n\n var result = fromParts.join('/');\n\n if (hasTrailingSlash && result.substr(-1) !== '/') result += '/';\n\n return result;\n}\n\nexport default resolvePathname;\n","var isProduction = process.env.NODE_ENV === 'production';\nvar prefix = 'Invariant failed';\nfunction invariant(condition, message) {\n if (condition) {\n return;\n }\n if (isProduction) {\n throw new Error(prefix);\n }\n var provided = typeof message === 'function' ? message() : message;\n var value = provided ? \"\".concat(prefix, \": \").concat(provided) : prefix;\n throw new Error(value);\n}\n\nexport { invariant as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport resolvePathname from 'resolve-pathname';\nimport valueEqual from 'value-equal';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === '/' ? path : '/' + path;\n}\nfunction stripLeadingSlash(path) {\n return path.charAt(0) === '/' ? path.substr(1) : path;\n}\nfunction hasBasename(path, prefix) {\n return path.toLowerCase().indexOf(prefix.toLowerCase()) === 0 && '/?#'.indexOf(path.charAt(prefix.length)) !== -1;\n}\nfunction stripBasename(path, prefix) {\n return hasBasename(path, prefix) ? path.substr(prefix.length) : path;\n}\nfunction stripTrailingSlash(path) {\n return path.charAt(path.length - 1) === '/' ? path.slice(0, -1) : path;\n}\nfunction parsePath(path) {\n var pathname = path || '/';\n var search = '';\n var hash = '';\n var hashIndex = pathname.indexOf('#');\n\n if (hashIndex !== -1) {\n hash = pathname.substr(hashIndex);\n pathname = pathname.substr(0, hashIndex);\n }\n\n var searchIndex = pathname.indexOf('?');\n\n if (searchIndex !== -1) {\n search = pathname.substr(searchIndex);\n pathname = pathname.substr(0, searchIndex);\n }\n\n return {\n pathname: pathname,\n search: search === '?' ? '' : search,\n hash: hash === '#' ? '' : hash\n };\n}\nfunction createPath(location) {\n var pathname = location.pathname,\n search = location.search,\n hash = location.hash;\n var path = pathname || '/';\n if (search && search !== '?') path += search.charAt(0) === '?' ? search : \"?\" + search;\n if (hash && hash !== '#') path += hash.charAt(0) === '#' ? hash : \"#\" + hash;\n return path;\n}\n\nfunction createLocation(path, state, key, currentLocation) {\n var location;\n\n if (typeof path === 'string') {\n // Two-arg form: push(path, state)\n location = parsePath(path);\n location.state = state;\n } else {\n // One-arg form: push(location)\n location = _extends({}, path);\n if (location.pathname === undefined) location.pathname = '';\n\n if (location.search) {\n if (location.search.charAt(0) !== '?') location.search = '?' + location.search;\n } else {\n location.search = '';\n }\n\n if (location.hash) {\n if (location.hash.charAt(0) !== '#') location.hash = '#' + location.hash;\n } else {\n location.hash = '';\n }\n\n if (state !== undefined && location.state === undefined) location.state = state;\n }\n\n try {\n location.pathname = decodeURI(location.pathname);\n } catch (e) {\n if (e instanceof URIError) {\n throw new URIError('Pathname \"' + location.pathname + '\" could not be decoded. ' + 'This is likely caused by an invalid percent-encoding.');\n } else {\n throw e;\n }\n }\n\n if (key) location.key = key;\n\n if (currentLocation) {\n // Resolve incomplete/relative pathname relative to current location.\n if (!location.pathname) {\n location.pathname = currentLocation.pathname;\n } else if (location.pathname.charAt(0) !== '/') {\n location.pathname = resolvePathname(location.pathname, currentLocation.pathname);\n }\n } else {\n // When there is no prior location and pathname is empty, set it to /\n if (!location.pathname) {\n location.pathname = '/';\n }\n }\n\n return location;\n}\nfunction locationsAreEqual(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash && a.key === b.key && valueEqual(a.state, b.state);\n}\n\nfunction createTransitionManager() {\n var prompt = null;\n\n function setPrompt(nextPrompt) {\n process.env.NODE_ENV !== \"production\" ? warning(prompt == null, 'A history supports only one prompt at a time') : void 0;\n prompt = nextPrompt;\n return function () {\n if (prompt === nextPrompt) prompt = null;\n };\n }\n\n function confirmTransitionTo(location, action, getUserConfirmation, callback) {\n // TODO: If another transition starts while we're still confirming\n // the previous one, we may end up in a weird state. Figure out the\n // best way to handle this.\n if (prompt != null) {\n var result = typeof prompt === 'function' ? prompt(location, action) : prompt;\n\n if (typeof result === 'string') {\n if (typeof getUserConfirmation === 'function') {\n getUserConfirmation(result, callback);\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'A history needs a getUserConfirmation function in order to use a prompt message') : void 0;\n callback(true);\n }\n } else {\n // Return false from a transition hook to cancel the transition.\n callback(result !== false);\n }\n } else {\n callback(true);\n }\n }\n\n var listeners = [];\n\n function appendListener(fn) {\n var isActive = true;\n\n function listener() {\n if (isActive) fn.apply(void 0, arguments);\n }\n\n listeners.push(listener);\n return function () {\n isActive = false;\n listeners = listeners.filter(function (item) {\n return item !== listener;\n });\n };\n }\n\n function notifyListeners() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n listeners.forEach(function (listener) {\n return listener.apply(void 0, args);\n });\n }\n\n return {\n setPrompt: setPrompt,\n confirmTransitionTo: confirmTransitionTo,\n appendListener: appendListener,\n notifyListeners: notifyListeners\n };\n}\n\nvar canUseDOM = !!(typeof window !== 'undefined' && window.document && window.document.createElement);\nfunction getConfirmation(message, callback) {\n callback(window.confirm(message)); // eslint-disable-line no-alert\n}\n/**\n * Returns true if the HTML5 history API is supported. Taken from Modernizr.\n *\n * https://github.com/Modernizr/Modernizr/blob/master/LICENSE\n * https://github.com/Modernizr/Modernizr/blob/master/feature-detects/history.js\n * changed to avoid false negatives for Windows Phones: https://github.com/reactjs/react-router/issues/586\n */\n\nfunction supportsHistory() {\n var ua = window.navigator.userAgent;\n if ((ua.indexOf('Android 2.') !== -1 || ua.indexOf('Android 4.0') !== -1) && ua.indexOf('Mobile Safari') !== -1 && ua.indexOf('Chrome') === -1 && ua.indexOf('Windows Phone') === -1) return false;\n return window.history && 'pushState' in window.history;\n}\n/**\n * Returns true if browser fires popstate on hash change.\n * IE10 and IE11 do not.\n */\n\nfunction supportsPopStateOnHashChange() {\n return window.navigator.userAgent.indexOf('Trident') === -1;\n}\n/**\n * Returns false if using go(n) with hash history causes a full page reload.\n */\n\nfunction supportsGoWithoutReloadUsingHash() {\n return window.navigator.userAgent.indexOf('Firefox') === -1;\n}\n/**\n * Returns true if a given popstate event is an extraneous WebKit event.\n * Accounts for the fact that Chrome on iOS fires real popstate events\n * containing undefined state when pressing the back button.\n */\n\nfunction isExtraneousPopstateEvent(event) {\n return event.state === undefined && navigator.userAgent.indexOf('CriOS') === -1;\n}\n\nvar PopStateEvent = 'popstate';\nvar HashChangeEvent = 'hashchange';\n\nfunction getHistoryState() {\n try {\n return window.history.state || {};\n } catch (e) {\n // IE 11 sometimes throws when accessing window.history.state\n // See https://github.com/ReactTraining/history/pull/289\n return {};\n }\n}\n/**\n * Creates a history object that uses the HTML5 history API including\n * pushState, replaceState, and the popstate event.\n */\n\n\nfunction createBrowserHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Browser history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canUseHistory = supportsHistory();\n var needsHashChangeListener = !supportsPopStateOnHashChange();\n var _props = props,\n _props$forceRefresh = _props.forceRefresh,\n forceRefresh = _props$forceRefresh === void 0 ? false : _props$forceRefresh,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n\n function getDOMLocation(historyState) {\n var _ref = historyState || {},\n key = _ref.key,\n state = _ref.state;\n\n var _window$location = window.location,\n pathname = _window$location.pathname,\n search = _window$location.search,\n hash = _window$location.hash;\n var path = pathname + search + hash;\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path, state, key);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function handlePopState(event) {\n // Ignore extraneous popstate events in WebKit.\n if (isExtraneousPopstateEvent(event)) return;\n handlePop(getDOMLocation(event.state));\n }\n\n function handleHashChange() {\n handlePop(getDOMLocation(getHistoryState()));\n }\n\n var forceNextPop = false;\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of keys we've seen in sessionStorage.\n // Instead, we just default to 0 for keys we don't know.\n\n var toIndex = allKeys.indexOf(toLocation.key);\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allKeys.indexOf(fromLocation.key);\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n }\n\n var initialLocation = getDOMLocation(getHistoryState());\n var allKeys = [initialLocation.key]; // Public interface\n\n function createHref(location) {\n return basename + createPath(location);\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.pushState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.href = href;\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n var nextKeys = allKeys.slice(0, prevIndex + 1);\n nextKeys.push(location.key);\n allKeys = nextKeys;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot push state in browsers that do not support HTML5 history') : void 0;\n window.location.href = href;\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var href = createHref(location);\n var key = location.key,\n state = location.state;\n\n if (canUseHistory) {\n globalHistory.replaceState({\n key: key,\n state: state\n }, null, href);\n\n if (forceRefresh) {\n window.location.replace(href);\n } else {\n var prevIndex = allKeys.indexOf(history.location.key);\n if (prevIndex !== -1) allKeys[prevIndex] = location.key;\n setState({\n action: action,\n location: location\n });\n }\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Browser history cannot replace state in browsers that do not support HTML5 history') : void 0;\n window.location.replace(href);\n }\n });\n }\n\n function go(n) {\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.addEventListener(HashChangeEvent, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(PopStateEvent, handlePopState);\n if (needsHashChangeListener) window.removeEventListener(HashChangeEvent, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nvar HashChangeEvent$1 = 'hashchange';\nvar HashPathCoders = {\n hashbang: {\n encodePath: function encodePath(path) {\n return path.charAt(0) === '!' ? path : '!/' + stripLeadingSlash(path);\n },\n decodePath: function decodePath(path) {\n return path.charAt(0) === '!' ? path.substr(1) : path;\n }\n },\n noslash: {\n encodePath: stripLeadingSlash,\n decodePath: addLeadingSlash\n },\n slash: {\n encodePath: addLeadingSlash,\n decodePath: addLeadingSlash\n }\n};\n\nfunction stripHash(url) {\n var hashIndex = url.indexOf('#');\n return hashIndex === -1 ? url : url.slice(0, hashIndex);\n}\n\nfunction getHashPath() {\n // We can't use window.location.hash here because it's not\n // consistent across browsers - Firefox will pre-decode it!\n var href = window.location.href;\n var hashIndex = href.indexOf('#');\n return hashIndex === -1 ? '' : href.substring(hashIndex + 1);\n}\n\nfunction pushHashPath(path) {\n window.location.hash = path;\n}\n\nfunction replaceHashPath(path) {\n window.location.replace(stripHash(window.location.href) + '#' + path);\n}\n\nfunction createHashHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n !canUseDOM ? process.env.NODE_ENV !== \"production\" ? invariant(false, 'Hash history needs a DOM') : invariant(false) : void 0;\n var globalHistory = window.history;\n var canGoWithoutReload = supportsGoWithoutReloadUsingHash();\n var _props = props,\n _props$getUserConfirm = _props.getUserConfirmation,\n getUserConfirmation = _props$getUserConfirm === void 0 ? getConfirmation : _props$getUserConfirm,\n _props$hashType = _props.hashType,\n hashType = _props$hashType === void 0 ? 'slash' : _props$hashType;\n var basename = props.basename ? stripTrailingSlash(addLeadingSlash(props.basename)) : '';\n var _HashPathCoders$hashT = HashPathCoders[hashType],\n encodePath = _HashPathCoders$hashT.encodePath,\n decodePath = _HashPathCoders$hashT.decodePath;\n\n function getDOMLocation() {\n var path = decodePath(getHashPath());\n process.env.NODE_ENV !== \"production\" ? warning(!basename || hasBasename(path, basename), 'You are attempting to use a basename on a page whose URL path does not begin ' + 'with the basename. Expected path \"' + path + '\" to begin with \"' + basename + '\".') : void 0;\n if (basename) path = stripBasename(path, basename);\n return createLocation(path);\n }\n\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = globalHistory.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n var forceNextPop = false;\n var ignorePath = null;\n\n function locationsAreEqual$$1(a, b) {\n return a.pathname === b.pathname && a.search === b.search && a.hash === b.hash;\n }\n\n function handleHashChange() {\n var path = getHashPath();\n var encodedPath = encodePath(path);\n\n if (path !== encodedPath) {\n // Ensure we always have a properly-encoded hash.\n replaceHashPath(encodedPath);\n } else {\n var location = getDOMLocation();\n var prevLocation = history.location;\n if (!forceNextPop && locationsAreEqual$$1(prevLocation, location)) return; // A hashchange doesn't always == location change.\n\n if (ignorePath === createPath(location)) return; // Ignore this change; we already setState in push/replace.\n\n ignorePath = null;\n handlePop(location);\n }\n }\n\n function handlePop(location) {\n if (forceNextPop) {\n forceNextPop = false;\n setState();\n } else {\n var action = 'POP';\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location\n });\n } else {\n revertPop(location);\n }\n });\n }\n }\n\n function revertPop(fromLocation) {\n var toLocation = history.location; // TODO: We could probably make this more reliable by\n // keeping a list of paths we've seen in sessionStorage.\n // Instead, we just default to 0 for paths we don't know.\n\n var toIndex = allPaths.lastIndexOf(createPath(toLocation));\n if (toIndex === -1) toIndex = 0;\n var fromIndex = allPaths.lastIndexOf(createPath(fromLocation));\n if (fromIndex === -1) fromIndex = 0;\n var delta = toIndex - fromIndex;\n\n if (delta) {\n forceNextPop = true;\n go(delta);\n }\n } // Ensure the hash is encoded properly before doing anything else.\n\n\n var path = getHashPath();\n var encodedPath = encodePath(path);\n if (path !== encodedPath) replaceHashPath(encodedPath);\n var initialLocation = getDOMLocation();\n var allPaths = [createPath(initialLocation)]; // Public interface\n\n function createHref(location) {\n var baseTag = document.querySelector('base');\n var href = '';\n\n if (baseTag && baseTag.getAttribute('href')) {\n href = stripHash(window.location.href);\n }\n\n return href + '#' + encodePath(basename + createPath(location));\n }\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot push state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a PUSH, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n pushHashPath(encodedPath);\n var prevIndex = allPaths.lastIndexOf(createPath(history.location));\n var nextPaths = allPaths.slice(0, prevIndex + 1);\n nextPaths.push(path);\n allPaths = nextPaths;\n setState({\n action: action,\n location: location\n });\n } else {\n process.env.NODE_ENV !== \"production\" ? warning(false, 'Hash history cannot PUSH the same path; a new entry will not be added to the history stack') : void 0;\n setState();\n }\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(state === undefined, 'Hash history cannot replace state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, undefined, undefined, history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var path = createPath(location);\n var encodedPath = encodePath(basename + path);\n var hashChanged = getHashPath() !== encodedPath;\n\n if (hashChanged) {\n // We cannot tell if a hashchange was caused by a REPLACE, so we'd\n // rather setState here and ignore the hashchange. The caveat here\n // is that other hash histories in the page will consider it a POP.\n ignorePath = path;\n replaceHashPath(encodedPath);\n }\n\n var prevIndex = allPaths.indexOf(createPath(history.location));\n if (prevIndex !== -1) allPaths[prevIndex] = path;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n process.env.NODE_ENV !== \"production\" ? warning(canGoWithoutReload, 'Hash history go(n) causes a full page reload in this browser') : void 0;\n globalHistory.go(n);\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n var listenerCount = 0;\n\n function checkDOMListeners(delta) {\n listenerCount += delta;\n\n if (listenerCount === 1 && delta === 1) {\n window.addEventListener(HashChangeEvent$1, handleHashChange);\n } else if (listenerCount === 0) {\n window.removeEventListener(HashChangeEvent$1, handleHashChange);\n }\n }\n\n var isBlocked = false;\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n var unblock = transitionManager.setPrompt(prompt);\n\n if (!isBlocked) {\n checkDOMListeners(1);\n isBlocked = true;\n }\n\n return function () {\n if (isBlocked) {\n isBlocked = false;\n checkDOMListeners(-1);\n }\n\n return unblock();\n };\n }\n\n function listen(listener) {\n var unlisten = transitionManager.appendListener(listener);\n checkDOMListeners(1);\n return function () {\n checkDOMListeners(-1);\n unlisten();\n };\n }\n\n var history = {\n length: globalHistory.length,\n action: 'POP',\n location: initialLocation,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n block: block,\n listen: listen\n };\n return history;\n}\n\nfunction clamp(n, lowerBound, upperBound) {\n return Math.min(Math.max(n, lowerBound), upperBound);\n}\n/**\n * Creates a history object that stores locations in memory.\n */\n\n\nfunction createMemoryHistory(props) {\n if (props === void 0) {\n props = {};\n }\n\n var _props = props,\n getUserConfirmation = _props.getUserConfirmation,\n _props$initialEntries = _props.initialEntries,\n initialEntries = _props$initialEntries === void 0 ? ['/'] : _props$initialEntries,\n _props$initialIndex = _props.initialIndex,\n initialIndex = _props$initialIndex === void 0 ? 0 : _props$initialIndex,\n _props$keyLength = _props.keyLength,\n keyLength = _props$keyLength === void 0 ? 6 : _props$keyLength;\n var transitionManager = createTransitionManager();\n\n function setState(nextState) {\n _extends(history, nextState);\n\n history.length = history.entries.length;\n transitionManager.notifyListeners(history.location, history.action);\n }\n\n function createKey() {\n return Math.random().toString(36).substr(2, keyLength);\n }\n\n var index = clamp(initialIndex, 0, initialEntries.length - 1);\n var entries = initialEntries.map(function (entry) {\n return typeof entry === 'string' ? createLocation(entry, undefined, createKey()) : createLocation(entry, undefined, entry.key || createKey());\n }); // Public interface\n\n var createHref = createPath;\n\n function push(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to push when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'PUSH';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n var prevIndex = history.index;\n var nextIndex = prevIndex + 1;\n var nextEntries = history.entries.slice(0);\n\n if (nextEntries.length > nextIndex) {\n nextEntries.splice(nextIndex, nextEntries.length - nextIndex, location);\n } else {\n nextEntries.push(location);\n }\n\n setState({\n action: action,\n location: location,\n index: nextIndex,\n entries: nextEntries\n });\n });\n }\n\n function replace(path, state) {\n process.env.NODE_ENV !== \"production\" ? warning(!(typeof path === 'object' && path.state !== undefined && state !== undefined), 'You should avoid providing a 2nd state argument to replace when the 1st ' + 'argument is a location-like object that already has state; it is ignored') : void 0;\n var action = 'REPLACE';\n var location = createLocation(path, state, createKey(), history.location);\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (!ok) return;\n history.entries[history.index] = location;\n setState({\n action: action,\n location: location\n });\n });\n }\n\n function go(n) {\n var nextIndex = clamp(history.index + n, 0, history.entries.length - 1);\n var action = 'POP';\n var location = history.entries[nextIndex];\n transitionManager.confirmTransitionTo(location, action, getUserConfirmation, function (ok) {\n if (ok) {\n setState({\n action: action,\n location: location,\n index: nextIndex\n });\n } else {\n // Mimic the behavior of DOM histories by\n // causing a render after a cancelled POP.\n setState();\n }\n });\n }\n\n function goBack() {\n go(-1);\n }\n\n function goForward() {\n go(1);\n }\n\n function canGo(n) {\n var nextIndex = history.index + n;\n return nextIndex >= 0 && nextIndex < history.entries.length;\n }\n\n function block(prompt) {\n if (prompt === void 0) {\n prompt = false;\n }\n\n return transitionManager.setPrompt(prompt);\n }\n\n function listen(listener) {\n return transitionManager.appendListener(listener);\n }\n\n var history = {\n length: entries.length,\n action: 'POP',\n location: entries[index],\n index: index,\n entries: entries,\n createHref: createHref,\n push: push,\n replace: replace,\n go: go,\n goBack: goBack,\n goForward: goForward,\n canGo: canGo,\n block: block,\n listen: listen\n };\n return history;\n}\n\nexport { createBrowserHistory, createHashHistory, createMemoryHistory, createLocation, locationsAreEqual, parsePath, createPath };\n","import _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport PropTypes from 'prop-types';\nimport { createMemoryHistory, createLocation, locationsAreEqual, createPath } from 'history';\nimport warning from 'tiny-warning';\nimport invariant from 'tiny-invariant';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport pathToRegexp from 'path-to-regexp';\nimport { isValidElementType } from 'react-is';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport hoistStatics from 'hoist-non-react-statics';\n\nvar MAX_SIGNED_31_BIT_INT = 1073741823;\nvar commonjsGlobal = typeof globalThis !== \"undefined\" // 'global proper'\n? // eslint-disable-next-line no-undef\nglobalThis : typeof window !== \"undefined\" ? window // Browser\n: typeof global !== \"undefined\" ? global // node.js\n: {};\n\nfunction getUniqueId() {\n var key = \"__global_unique_id__\";\n return commonjsGlobal[key] = (commonjsGlobal[key] || 0) + 1;\n} // Inlined Object.is polyfill.\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n\n\nfunction objectIs(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // eslint-disable-next-line no-self-compare\n return x !== x && y !== y;\n }\n}\n\nfunction createEventEmitter(value) {\n var handlers = [];\n return {\n on: function on(handler) {\n handlers.push(handler);\n },\n off: function off(handler) {\n handlers = handlers.filter(function (h) {\n return h !== handler;\n });\n },\n get: function get() {\n return value;\n },\n set: function set(newValue, changedBits) {\n value = newValue;\n handlers.forEach(function (handler) {\n return handler(value, changedBits);\n });\n }\n };\n}\n\nfunction onlyChild(children) {\n return Array.isArray(children) ? children[0] : children;\n}\n\nfunction createReactContext(defaultValue, calculateChangedBits) {\n var _Provider$childContex, _Consumer$contextType;\n\n var contextProp = \"__create-react-context-\" + getUniqueId() + \"__\";\n\n var Provider = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Provider, _React$Component);\n\n function Provider() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.emitter = createEventEmitter(_this.props.value);\n return _this;\n }\n\n var _proto = Provider.prototype;\n\n _proto.getChildContext = function getChildContext() {\n var _ref;\n\n return _ref = {}, _ref[contextProp] = this.emitter, _ref;\n };\n\n _proto.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n if (this.props.value !== nextProps.value) {\n var oldValue = this.props.value;\n var newValue = nextProps.value;\n var changedBits;\n\n if (objectIs(oldValue, newValue)) {\n changedBits = 0; // No change\n } else {\n changedBits = typeof calculateChangedBits === \"function\" ? calculateChangedBits(oldValue, newValue) : MAX_SIGNED_31_BIT_INT;\n\n if (process.env.NODE_ENV !== \"production\") {\n process.env.NODE_ENV !== \"production\" ? warning((changedBits & MAX_SIGNED_31_BIT_INT) === changedBits, \"calculateChangedBits: Expected the return value to be a \" + \"31-bit integer. Instead received: \" + changedBits) : void 0;\n }\n\n changedBits |= 0;\n\n if (changedBits !== 0) {\n this.emitter.set(nextProps.value, changedBits);\n }\n }\n }\n };\n\n _proto.render = function render() {\n return this.props.children;\n };\n\n return Provider;\n }(React.Component);\n\n Provider.childContextTypes = (_Provider$childContex = {}, _Provider$childContex[contextProp] = PropTypes.object.isRequired, _Provider$childContex);\n\n var Consumer = /*#__PURE__*/function (_React$Component2) {\n _inheritsLoose(Consumer, _React$Component2);\n\n function Consumer() {\n var _this2;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _React$Component2.call.apply(_React$Component2, [this].concat(args)) || this;\n _this2.observedBits = void 0;\n _this2.state = {\n value: _this2.getValue()\n };\n\n _this2.onUpdate = function (newValue, changedBits) {\n var observedBits = _this2.observedBits | 0;\n\n if ((observedBits & changedBits) !== 0) {\n _this2.setState({\n value: _this2.getValue()\n });\n }\n };\n\n return _this2;\n }\n\n var _proto2 = Consumer.prototype;\n\n _proto2.componentWillReceiveProps = function componentWillReceiveProps(nextProps) {\n var observedBits = nextProps.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n _proto2.componentDidMount = function componentDidMount() {\n if (this.context[contextProp]) {\n this.context[contextProp].on(this.onUpdate);\n }\n\n var observedBits = this.props.observedBits;\n this.observedBits = observedBits === undefined || observedBits === null ? MAX_SIGNED_31_BIT_INT // Subscribe to all changes by default\n : observedBits;\n };\n\n _proto2.componentWillUnmount = function componentWillUnmount() {\n if (this.context[contextProp]) {\n this.context[contextProp].off(this.onUpdate);\n }\n };\n\n _proto2.getValue = function getValue() {\n if (this.context[contextProp]) {\n return this.context[contextProp].get();\n } else {\n return defaultValue;\n }\n };\n\n _proto2.render = function render() {\n return onlyChild(this.props.children)(this.state.value);\n };\n\n return Consumer;\n }(React.Component);\n\n Consumer.contextTypes = (_Consumer$contextType = {}, _Consumer$contextType[contextProp] = PropTypes.object, _Consumer$contextType);\n return {\n Provider: Provider,\n Consumer: Consumer\n };\n}\n\n// MIT License\nvar createContext = React.createContext || createReactContext;\n\n// TODO: Replace with React.createContext once we can assume React 16+\n\nvar createNamedContext = function createNamedContext(name) {\n var context = createContext();\n context.displayName = name;\n return context;\n};\n\nvar historyContext = /*#__PURE__*/createNamedContext(\"Router-History\");\n\nvar context = /*#__PURE__*/createNamedContext(\"Router\");\n\n/**\n * The public API for putting history on context.\n */\n\nvar Router = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Router, _React$Component);\n\n Router.computeRootMatch = function computeRootMatch(pathname) {\n return {\n path: \"/\",\n url: \"/\",\n params: {},\n isExact: pathname === \"/\"\n };\n };\n\n function Router(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {\n location: props.history.location\n }; // This is a bit of a hack. We have to start listening for location\n // changes here in the constructor in case there are any s\n // on the initial render. If there are, they will replace/push when\n // they mount and since cDM fires in children before parents, we may\n // get a new location before the is mounted.\n\n _this._isMounted = false;\n _this._pendingLocation = null;\n\n if (!props.staticContext) {\n _this.unlisten = props.history.listen(function (location) {\n _this._pendingLocation = location;\n });\n }\n\n return _this;\n }\n\n var _proto = Router.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n this._isMounted = true;\n\n if (this.unlisten) {\n // Any pre-mount location changes have been captured at\n // this point, so unregister the listener.\n this.unlisten();\n }\n\n if (!this.props.staticContext) {\n this.unlisten = this.props.history.listen(function (location) {\n if (_this2._isMounted) {\n _this2.setState({\n location: location\n });\n }\n });\n }\n\n if (this._pendingLocation) {\n this.setState({\n location: this._pendingLocation\n });\n }\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.unlisten) {\n this.unlisten();\n this._isMounted = false;\n this._pendingLocation = null;\n }\n };\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: {\n history: this.props.history,\n location: this.state.location,\n match: Router.computeRootMatch(this.state.location.pathname),\n staticContext: this.props.staticContext\n }\n }, /*#__PURE__*/React.createElement(historyContext.Provider, {\n children: this.props.children || null,\n value: this.props.history\n }));\n };\n\n return Router;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Router.propTypes = {\n children: PropTypes.node,\n history: PropTypes.object.isRequired,\n staticContext: PropTypes.object\n };\n\n Router.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(prevProps.history === this.props.history, \"You cannot change \") : void 0;\n };\n}\n\n/**\n * The public API for a that stores location in memory.\n */\n\nvar MemoryRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(MemoryRouter, _React$Component);\n\n function MemoryRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createMemoryHistory(_this.props);\n return _this;\n }\n\n var _proto = MemoryRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return MemoryRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n MemoryRouter.propTypes = {\n initialEntries: PropTypes.array,\n initialIndex: PropTypes.number,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number,\n children: PropTypes.node\n };\n\n MemoryRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { MemoryRouter as Router }`.\") : void 0;\n };\n}\n\nvar Lifecycle = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Lifecycle, _React$Component);\n\n function Lifecycle() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Lifecycle.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n if (this.props.onMount) this.props.onMount.call(this, this);\n };\n\n _proto.componentDidUpdate = function componentDidUpdate(prevProps) {\n if (this.props.onUpdate) this.props.onUpdate.call(this, this, prevProps);\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.props.onUnmount) this.props.onUnmount.call(this, this);\n };\n\n _proto.render = function render() {\n return null;\n };\n\n return Lifecycle;\n}(React.Component);\n\n/**\n * The public API for prompting the user before navigating away from a screen.\n */\n\nfunction Prompt(_ref) {\n var message = _ref.message,\n _ref$when = _ref.when,\n when = _ref$when === void 0 ? true : _ref$when;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n if (!when || context.staticContext) return null;\n var method = context.history.block;\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount(self) {\n self.release = method(message);\n },\n onUpdate: function onUpdate(self, prevProps) {\n if (prevProps.message !== message) {\n self.release();\n self.release = method(message);\n }\n },\n onUnmount: function onUnmount(self) {\n self.release();\n },\n message: message\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n var messageType = PropTypes.oneOfType([PropTypes.func, PropTypes.string]);\n Prompt.propTypes = {\n when: PropTypes.bool,\n message: messageType.isRequired\n };\n}\n\nvar cache = {};\nvar cacheLimit = 10000;\nvar cacheCount = 0;\n\nfunction compilePath(path) {\n if (cache[path]) return cache[path];\n var generator = pathToRegexp.compile(path);\n\n if (cacheCount < cacheLimit) {\n cache[path] = generator;\n cacheCount++;\n }\n\n return generator;\n}\n/**\n * Public API for generating a URL pathname from a path and parameters.\n */\n\n\nfunction generatePath(path, params) {\n if (path === void 0) {\n path = \"/\";\n }\n\n if (params === void 0) {\n params = {};\n }\n\n return path === \"/\" ? path : compilePath(path)(params, {\n pretty: true\n });\n}\n\n/**\n * The public API for navigating programmatically with a component.\n */\n\nfunction Redirect(_ref) {\n var computedMatch = _ref.computedMatch,\n to = _ref.to,\n _ref$push = _ref.push,\n push = _ref$push === void 0 ? false : _ref$push;\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history,\n staticContext = context.staticContext;\n var method = push ? history.push : history.replace;\n var location = createLocation(computedMatch ? typeof to === \"string\" ? generatePath(to, computedMatch.params) : _extends({}, to, {\n pathname: generatePath(to.pathname, computedMatch.params)\n }) : to); // When rendering in a static context,\n // set the new location immediately.\n\n if (staticContext) {\n method(location);\n return null;\n }\n\n return /*#__PURE__*/React.createElement(Lifecycle, {\n onMount: function onMount() {\n method(location);\n },\n onUpdate: function onUpdate(self, prevProps) {\n var prevLocation = createLocation(prevProps.to);\n\n if (!locationsAreEqual(prevLocation, _extends({}, location, {\n key: prevLocation.key\n }))) {\n method(location);\n }\n },\n to: to\n });\n });\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n Redirect.propTypes = {\n push: PropTypes.bool,\n from: PropTypes.string,\n to: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).isRequired\n };\n}\n\nvar cache$1 = {};\nvar cacheLimit$1 = 10000;\nvar cacheCount$1 = 0;\n\nfunction compilePath$1(path, options) {\n var cacheKey = \"\" + options.end + options.strict + options.sensitive;\n var pathCache = cache$1[cacheKey] || (cache$1[cacheKey] = {});\n if (pathCache[path]) return pathCache[path];\n var keys = [];\n var regexp = pathToRegexp(path, keys, options);\n var result = {\n regexp: regexp,\n keys: keys\n };\n\n if (cacheCount$1 < cacheLimit$1) {\n pathCache[path] = result;\n cacheCount$1++;\n }\n\n return result;\n}\n/**\n * Public API for matching a URL pathname to a path.\n */\n\n\nfunction matchPath(pathname, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (typeof options === \"string\" || Array.isArray(options)) {\n options = {\n path: options\n };\n }\n\n var _options = options,\n path = _options.path,\n _options$exact = _options.exact,\n exact = _options$exact === void 0 ? false : _options$exact,\n _options$strict = _options.strict,\n strict = _options$strict === void 0 ? false : _options$strict,\n _options$sensitive = _options.sensitive,\n sensitive = _options$sensitive === void 0 ? false : _options$sensitive;\n var paths = [].concat(path);\n return paths.reduce(function (matched, path) {\n if (!path && path !== \"\") return null;\n if (matched) return matched;\n\n var _compilePath = compilePath$1(path, {\n end: exact,\n strict: strict,\n sensitive: sensitive\n }),\n regexp = _compilePath.regexp,\n keys = _compilePath.keys;\n\n var match = regexp.exec(pathname);\n if (!match) return null;\n var url = match[0],\n values = match.slice(1);\n var isExact = pathname === url;\n if (exact && !isExact) return null;\n return {\n path: path,\n // the path used to match\n url: path === \"/\" && url === \"\" ? \"/\" : url,\n // the matched portion of the URL\n isExact: isExact,\n // whether or not we matched exactly\n params: keys.reduce(function (memo, key, index) {\n memo[key.name] = values[index];\n return memo;\n }, {})\n };\n }, null);\n}\n\nfunction isEmptyChildren(children) {\n return React.Children.count(children) === 0;\n}\n\nfunction evalChildrenDev(children, props, path) {\n var value = children(props);\n process.env.NODE_ENV !== \"production\" ? warning(value !== undefined, \"You returned `undefined` from the `children` function of \" + (\", but you \") + \"should have returned a React element or `null`\") : void 0;\n return value || null;\n}\n/**\n * The public API for matching a single path and rendering.\n */\n\n\nvar Route = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Route, _React$Component);\n\n function Route() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Route.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context$1) {\n !context$1 ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context$1.location;\n var match = _this.props.computedMatch ? _this.props.computedMatch // already computed the match for us\n : _this.props.path ? matchPath(location.pathname, _this.props) : context$1.match;\n\n var props = _extends({}, context$1, {\n location: location,\n match: match\n });\n\n var _this$props = _this.props,\n children = _this$props.children,\n component = _this$props.component,\n render = _this$props.render; // Preact uses an empty array as children by\n // default, so use null if that's the case.\n\n if (Array.isArray(children) && isEmptyChildren(children)) {\n children = null;\n }\n\n return /*#__PURE__*/React.createElement(context.Provider, {\n value: props\n }, props.match ? children ? typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : children : component ? /*#__PURE__*/React.createElement(component, props) : render ? render(props) : null : typeof children === \"function\" ? process.env.NODE_ENV !== \"production\" ? evalChildrenDev(children, props, _this.props.path) : children(props) : null);\n });\n };\n\n return Route;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Route.propTypes = {\n children: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n component: function component(props, propName) {\n if (props[propName] && !isValidElementType(props[propName])) {\n return new Error(\"Invalid prop 'component' supplied to 'Route': the prop is not a valid React component\");\n }\n },\n exact: PropTypes.bool,\n location: PropTypes.object,\n path: PropTypes.oneOfType([PropTypes.string, PropTypes.arrayOf(PropTypes.string)]),\n render: PropTypes.func,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool\n };\n\n Route.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.component), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.children && !isEmptyChildren(this.props.children) && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.component && this.props.render), \"You should not use and in the same route; will be ignored\") : void 0;\n };\n\n Route.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\nfunction addLeadingSlash(path) {\n return path.charAt(0) === \"/\" ? path : \"/\" + path;\n}\n\nfunction addBasename(basename, location) {\n if (!basename) return location;\n return _extends({}, location, {\n pathname: addLeadingSlash(basename) + location.pathname\n });\n}\n\nfunction stripBasename(basename, location) {\n if (!basename) return location;\n var base = addLeadingSlash(basename);\n if (location.pathname.indexOf(base) !== 0) return location;\n return _extends({}, location, {\n pathname: location.pathname.substr(base.length)\n });\n}\n\nfunction createURL(location) {\n return typeof location === \"string\" ? location : createPath(location);\n}\n\nfunction staticHandler(methodName) {\n return function () {\n process.env.NODE_ENV !== \"production\" ? invariant(false, \"You cannot %s with \", methodName) : invariant(false) ;\n };\n}\n\nfunction noop() {}\n/**\n * The public top-level API for a \"static\" , so-called because it\n * can't actually change the current location. Instead, it just records\n * location changes in a context object. Useful mainly in testing and\n * server-rendering scenarios.\n */\n\n\nvar StaticRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(StaticRouter, _React$Component);\n\n function StaticRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n\n _this.handlePush = function (location) {\n return _this.navigateTo(location, \"PUSH\");\n };\n\n _this.handleReplace = function (location) {\n return _this.navigateTo(location, \"REPLACE\");\n };\n\n _this.handleListen = function () {\n return noop;\n };\n\n _this.handleBlock = function () {\n return noop;\n };\n\n return _this;\n }\n\n var _proto = StaticRouter.prototype;\n\n _proto.navigateTo = function navigateTo(location, action) {\n var _this$props = this.props,\n _this$props$basename = _this$props.basename,\n basename = _this$props$basename === void 0 ? \"\" : _this$props$basename,\n _this$props$context = _this$props.context,\n context = _this$props$context === void 0 ? {} : _this$props$context;\n context.action = action;\n context.location = addBasename(basename, createLocation(location));\n context.url = createURL(context.location);\n };\n\n _proto.render = function render() {\n var _this$props2 = this.props,\n _this$props2$basename = _this$props2.basename,\n basename = _this$props2$basename === void 0 ? \"\" : _this$props2$basename,\n _this$props2$context = _this$props2.context,\n context = _this$props2$context === void 0 ? {} : _this$props2$context,\n _this$props2$location = _this$props2.location,\n location = _this$props2$location === void 0 ? \"/\" : _this$props2$location,\n rest = _objectWithoutPropertiesLoose(_this$props2, [\"basename\", \"context\", \"location\"]);\n\n var history = {\n createHref: function createHref(path) {\n return addLeadingSlash(basename + createURL(path));\n },\n action: \"POP\",\n location: stripBasename(basename, createLocation(location)),\n push: this.handlePush,\n replace: this.handleReplace,\n go: staticHandler(\"go\"),\n goBack: staticHandler(\"goBack\"),\n goForward: staticHandler(\"goForward\"),\n listen: this.handleListen,\n block: this.handleBlock\n };\n return /*#__PURE__*/React.createElement(Router, _extends({}, rest, {\n history: history,\n staticContext: context\n }));\n };\n\n return StaticRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n StaticRouter.propTypes = {\n basename: PropTypes.string,\n context: PropTypes.object,\n location: PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n };\n\n StaticRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { StaticRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for rendering the first that matches.\n */\n\nvar Switch = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(Switch, _React$Component);\n\n function Switch() {\n return _React$Component.apply(this, arguments) || this;\n }\n\n var _proto = Switch.prototype;\n\n _proto.render = function render() {\n var _this = this;\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var location = _this.props.location || context.location;\n var element, match; // We use React.Children.forEach instead of React.Children.toArray().find()\n // here because toArray adds keys to all child elements and we do not want\n // to trigger an unmount/remount for two s that render the same\n // component at different URLs.\n\n React.Children.forEach(_this.props.children, function (child) {\n if (match == null && /*#__PURE__*/React.isValidElement(child)) {\n element = child;\n var path = child.props.path || child.props.from;\n match = path ? matchPath(location.pathname, _extends({}, child.props, {\n path: path\n })) : context.match;\n }\n });\n return match ? /*#__PURE__*/React.cloneElement(element, {\n location: location,\n computedMatch: match\n }) : null;\n });\n };\n\n return Switch;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n Switch.propTypes = {\n children: PropTypes.node,\n location: PropTypes.object\n };\n\n Switch.prototype.componentDidUpdate = function (prevProps) {\n process.env.NODE_ENV !== \"production\" ? warning(!(this.props.location && !prevProps.location), ' elements should not change from uncontrolled to controlled (or vice versa). You initially used no \"location\" prop and then provided one on a subsequent render.') : void 0;\n process.env.NODE_ENV !== \"production\" ? warning(!(!this.props.location && prevProps.location), ' elements should not change from controlled to uncontrolled (or vice versa). You provided a \"location\" prop initially but omitted it on a subsequent render.') : void 0;\n };\n}\n\n/**\n * A public higher-order component to access the imperative API\n */\n\nfunction withRouter(Component) {\n var displayName = \"withRouter(\" + (Component.displayName || Component.name) + \")\";\n\n var C = function C(props) {\n var wrappedComponentRef = props.wrappedComponentRef,\n remainingProps = _objectWithoutPropertiesLoose(props, [\"wrappedComponentRef\"]);\n\n return /*#__PURE__*/React.createElement(context.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use <\" + displayName + \" /> outside a \") : invariant(false) : void 0;\n return /*#__PURE__*/React.createElement(Component, _extends({}, remainingProps, context, {\n ref: wrappedComponentRef\n }));\n });\n };\n\n C.displayName = displayName;\n C.WrappedComponent = Component;\n\n if (process.env.NODE_ENV !== \"production\") {\n C.propTypes = {\n wrappedComponentRef: PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.object])\n };\n }\n\n return hoistStatics(C, Component);\n}\n\nvar useContext = React.useContext;\nfunction useHistory() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useHistory()\") : invariant(false) : void 0;\n }\n\n return useContext(historyContext);\n}\nfunction useLocation() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useLocation()\") : invariant(false) : void 0;\n }\n\n return useContext(context).location;\n}\nfunction useParams() {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useParams()\") : invariant(false) : void 0;\n }\n\n var match = useContext(context).match;\n return match ? match.params : {};\n}\nfunction useRouteMatch(path) {\n if (process.env.NODE_ENV !== \"production\") {\n !(typeof useContext === \"function\") ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You must use React >= 16.8 in order to use useRouteMatch()\") : invariant(false) : void 0;\n }\n\n var location = useLocation();\n var match = useContext(context).match;\n return path ? matchPath(location.pathname, path) : match;\n}\n\nif (process.env.NODE_ENV !== \"production\") {\n if (typeof window !== \"undefined\") {\n var global$1 = window;\n var key = \"__react_router_build__\";\n var buildNames = {\n cjs: \"CommonJS\",\n esm: \"ES modules\",\n umd: \"UMD\"\n };\n\n if (global$1[key] && global$1[key] !== \"esm\") {\n var initialBuildName = buildNames[global$1[key]];\n var secondaryBuildName = buildNames[\"esm\"]; // TODO: Add link to article that explains in detail how to avoid\n // loading 2 different builds.\n\n throw new Error(\"You are loading the \" + secondaryBuildName + \" build of React Router \" + (\"on a page that is already running the \" + initialBuildName + \" \") + \"build, so things won't work right.\");\n }\n\n global$1[key] = \"esm\";\n }\n}\n\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, historyContext as __HistoryContext, context as __RouterContext, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter };\n//# sourceMappingURL=react-router.js.map\n","import { Router, __RouterContext, matchPath } from 'react-router';\nexport { MemoryRouter, Prompt, Redirect, Route, Router, StaticRouter, Switch, generatePath, matchPath, useHistory, useLocation, useParams, useRouteMatch, withRouter } from 'react-router';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport React from 'react';\nimport { createBrowserHistory, createHashHistory, createLocation, createPath } from 'history';\nimport PropTypes from 'prop-types';\nimport warning from 'tiny-warning';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport _objectWithoutPropertiesLoose from '@babel/runtime/helpers/esm/objectWithoutPropertiesLoose';\nimport invariant from 'tiny-invariant';\n\n/**\n * The public API for a that uses HTML5 history.\n */\n\nvar BrowserRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(BrowserRouter, _React$Component);\n\n function BrowserRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createBrowserHistory(_this.props);\n return _this;\n }\n\n var _proto = BrowserRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return BrowserRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n BrowserRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n forceRefresh: PropTypes.bool,\n getUserConfirmation: PropTypes.func,\n keyLength: PropTypes.number\n };\n\n BrowserRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { BrowserRouter as Router }`.\") : void 0;\n };\n}\n\n/**\n * The public API for a that uses window.location.hash.\n */\n\nvar HashRouter = /*#__PURE__*/function (_React$Component) {\n _inheritsLoose(HashRouter, _React$Component);\n\n function HashRouter() {\n var _this;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _React$Component.call.apply(_React$Component, [this].concat(args)) || this;\n _this.history = createHashHistory(_this.props);\n return _this;\n }\n\n var _proto = HashRouter.prototype;\n\n _proto.render = function render() {\n return /*#__PURE__*/React.createElement(Router, {\n history: this.history,\n children: this.props.children\n });\n };\n\n return HashRouter;\n}(React.Component);\n\nif (process.env.NODE_ENV !== \"production\") {\n HashRouter.propTypes = {\n basename: PropTypes.string,\n children: PropTypes.node,\n getUserConfirmation: PropTypes.func,\n hashType: PropTypes.oneOf([\"hashbang\", \"noslash\", \"slash\"])\n };\n\n HashRouter.prototype.componentDidMount = function () {\n process.env.NODE_ENV !== \"production\" ? warning(!this.props.history, \" ignores the history prop. To use a custom history, \" + \"use `import { Router }` instead of `import { HashRouter as Router }`.\") : void 0;\n };\n}\n\nvar resolveToLocation = function resolveToLocation(to, currentLocation) {\n return typeof to === \"function\" ? to(currentLocation) : to;\n};\nvar normalizeToLocation = function normalizeToLocation(to, currentLocation) {\n return typeof to === \"string\" ? createLocation(to, null, null, currentLocation) : to;\n};\n\nvar forwardRefShim = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef = React.forwardRef;\n\nif (typeof forwardRef === \"undefined\") {\n forwardRef = forwardRefShim;\n}\n\nfunction isModifiedEvent(event) {\n return !!(event.metaKey || event.altKey || event.ctrlKey || event.shiftKey);\n}\n\nvar LinkAnchor = forwardRef(function (_ref, forwardedRef) {\n var innerRef = _ref.innerRef,\n navigate = _ref.navigate,\n _onClick = _ref.onClick,\n rest = _objectWithoutPropertiesLoose(_ref, [\"innerRef\", \"navigate\", \"onClick\"]);\n\n var target = rest.target;\n\n var props = _extends({}, rest, {\n onClick: function onClick(event) {\n try {\n if (_onClick) _onClick(event);\n } catch (ex) {\n event.preventDefault();\n throw ex;\n }\n\n if (!event.defaultPrevented && // onClick prevented default\n event.button === 0 && ( // ignore everything but left clicks\n !target || target === \"_self\") && // let browser handle \"target=_blank\" etc.\n !isModifiedEvent(event) // ignore clicks with modifier keys\n ) {\n event.preventDefault();\n navigate();\n }\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.ref = innerRef;\n }\n /* eslint-disable-next-line jsx-a11y/anchor-has-content */\n\n\n return /*#__PURE__*/React.createElement(\"a\", props);\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n LinkAnchor.displayName = \"LinkAnchor\";\n}\n/**\n * The public API for rendering a history-aware .\n */\n\n\nvar Link = forwardRef(function (_ref2, forwardedRef) {\n var _ref2$component = _ref2.component,\n component = _ref2$component === void 0 ? LinkAnchor : _ref2$component,\n replace = _ref2.replace,\n to = _ref2.to,\n innerRef = _ref2.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref2, [\"component\", \"replace\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var history = context.history;\n var location = normalizeToLocation(resolveToLocation(to, context.location), context.location);\n var href = location ? history.createHref(location) : \"\";\n\n var props = _extends({}, rest, {\n href: href,\n navigate: function navigate() {\n var location = resolveToLocation(to, context.location);\n var isDuplicateNavigation = createPath(context.location) === createPath(normalizeToLocation(location));\n var method = replace || isDuplicateNavigation ? history.replace : history.push;\n method(location);\n }\n }); // React 15 compat\n\n\n if (forwardRefShim !== forwardRef) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(component, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n var toType = PropTypes.oneOfType([PropTypes.string, PropTypes.object, PropTypes.func]);\n var refType = PropTypes.oneOfType([PropTypes.string, PropTypes.func, PropTypes.shape({\n current: PropTypes.any\n })]);\n Link.displayName = \"Link\";\n Link.propTypes = {\n innerRef: refType,\n onClick: PropTypes.func,\n replace: PropTypes.bool,\n target: PropTypes.string,\n to: toType.isRequired\n };\n}\n\nvar forwardRefShim$1 = function forwardRefShim(C) {\n return C;\n};\n\nvar forwardRef$1 = React.forwardRef;\n\nif (typeof forwardRef$1 === \"undefined\") {\n forwardRef$1 = forwardRefShim$1;\n}\n\nfunction joinClassnames() {\n for (var _len = arguments.length, classnames = new Array(_len), _key = 0; _key < _len; _key++) {\n classnames[_key] = arguments[_key];\n }\n\n return classnames.filter(function (i) {\n return i;\n }).join(\" \");\n}\n/**\n * A wrapper that knows if it's \"active\" or not.\n */\n\n\nvar NavLink = forwardRef$1(function (_ref, forwardedRef) {\n var _ref$ariaCurrent = _ref[\"aria-current\"],\n ariaCurrent = _ref$ariaCurrent === void 0 ? \"page\" : _ref$ariaCurrent,\n _ref$activeClassName = _ref.activeClassName,\n activeClassName = _ref$activeClassName === void 0 ? \"active\" : _ref$activeClassName,\n activeStyle = _ref.activeStyle,\n classNameProp = _ref.className,\n exact = _ref.exact,\n isActiveProp = _ref.isActive,\n locationProp = _ref.location,\n sensitive = _ref.sensitive,\n strict = _ref.strict,\n styleProp = _ref.style,\n to = _ref.to,\n innerRef = _ref.innerRef,\n rest = _objectWithoutPropertiesLoose(_ref, [\"aria-current\", \"activeClassName\", \"activeStyle\", \"className\", \"exact\", \"isActive\", \"location\", \"sensitive\", \"strict\", \"style\", \"to\", \"innerRef\"]);\n\n return /*#__PURE__*/React.createElement(__RouterContext.Consumer, null, function (context) {\n !context ? process.env.NODE_ENV !== \"production\" ? invariant(false, \"You should not use outside a \") : invariant(false) : void 0;\n var currentLocation = locationProp || context.location;\n var toLocation = normalizeToLocation(resolveToLocation(to, currentLocation), currentLocation);\n var path = toLocation.pathname; // Regex taken from: https://github.com/pillarjs/path-to-regexp/blob/master/index.js#L202\n\n var escapedPath = path && path.replace(/([.+*?=^!:${}()[\\]|/\\\\])/g, \"\\\\$1\");\n var match = escapedPath ? matchPath(currentLocation.pathname, {\n path: escapedPath,\n exact: exact,\n sensitive: sensitive,\n strict: strict\n }) : null;\n var isActive = !!(isActiveProp ? isActiveProp(match, currentLocation) : match);\n var className = typeof classNameProp === \"function\" ? classNameProp(isActive) : classNameProp;\n var style = typeof styleProp === \"function\" ? styleProp(isActive) : styleProp;\n\n if (isActive) {\n className = joinClassnames(className, activeClassName);\n style = _extends({}, style, activeStyle);\n }\n\n var props = _extends({\n \"aria-current\": isActive && ariaCurrent || null,\n className: className,\n style: style,\n to: toLocation\n }, rest); // React 15 compat\n\n\n if (forwardRefShim$1 !== forwardRef$1) {\n props.ref = forwardedRef || innerRef;\n } else {\n props.innerRef = innerRef;\n }\n\n return /*#__PURE__*/React.createElement(Link, props);\n });\n});\n\nif (process.env.NODE_ENV !== \"production\") {\n NavLink.displayName = \"NavLink\";\n var ariaCurrentType = PropTypes.oneOf([\"page\", \"step\", \"location\", \"date\", \"time\", \"true\", \"false\"]);\n NavLink.propTypes = _extends({}, Link.propTypes, {\n \"aria-current\": ariaCurrentType,\n activeClassName: PropTypes.string,\n activeStyle: PropTypes.object,\n className: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n exact: PropTypes.bool,\n isActive: PropTypes.func,\n location: PropTypes.object,\n sensitive: PropTypes.bool,\n strict: PropTypes.bool,\n style: PropTypes.oneOfType([PropTypes.object, PropTypes.func])\n });\n}\n\nexport { BrowserRouter, HashRouter, Link, NavLink };\n//# sourceMappingURL=react-router-dom.js.map\n","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, toPropertyKey(descriptor.key), descriptor);\n }\n}\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n}","export default function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n return arr2;\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}","\n import API from \"!../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/sass-loader/dist/cjs.js!./digital-portal.scss\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../node_modules/css-loader/dist/cjs.js!../node_modules/sass-loader/dist/cjs.js!./digital-portal.scss\";\n export default content && content.locals ? content.locals : undefined;\n","import React, { useEffect, useState } from 'react'\nimport { connect } from 'react-redux'\nimport { essilorLogo } from '@Techedge/digitalportal-styleguide'\nimport {\n LuxLoadingCircle,\n LuxButton,\n LuxHeading,\n} from '@Techedge/digitalportal-wardrobe'\nimport { history } from '@Techedge/digitalportal-shared'\nimport { envLinks, nodeEnv } from '../Techedge-digitalportal-home'\nimport '../digital-portal.scss'\nimport apm from '@Techedge/digitalportal-root'\n\nconst HomePage = ({ accessToken, portals }) => {\n const [loading, setLoading] = useState(true)\n\n useEffect(() => {\n if (!!portals && !!accessToken) {\n let _portals = [...portals]\n let idx = _portals.findIndex((p) => p.code === process.env.EXCLUDED_PORTAL)\n if (idx > -1) _portals.splice(idx, 1)\n if (_portals.length === 1) goTo(_portals[0].url, _portals[0].code)\n else if (_portals.length === 0) {\n window.location.href = envLinks.DP + '/login_error_noportals'\n } else setLoading(false)\n }\n }, [portals, accessToken])\n\n const goTo = (url: string, code: string) => {\n // Add button click transaction to trace which portal gets selected by the user\n const transaction = apm.startTransaction('portal-selection', 'custom', {\n managed: true,\n })\n if (transaction) {\n if (code === '360°' || code === 'SMRT') {\n transaction.addLabels({ ['portal']: 'SMARTLY' })\n } else {\n transaction.addLabels({ ['portal']: code })\n }\n const span = transaction.startSpan(\n 'portal-selection-time',\n 'app-load',\n { blocking: true }\n )\n span.end(span._start + 1)\n // Ritarda il redirect per permettere il completamento della transazione\n setTimeout(() => {\n transaction.end()\n\n const redirectUrl =\n nodeEnv && nodeEnv !== 'production'\n ? envLinks[code] + '?jwt=' + accessToken\n : url + '?jwt=' + accessToken\n\n window.location.href = redirectUrl\n }, 150) // 125ms di ritardo per inviare i dati APM\n } else {\n if (nodeEnv && nodeEnv !== 'production')\n window.location.href = envLinks[code] + '?jwt=' + accessToken\n else window.location.href = url + '?jwt=' + accessToken\n }\n }\n\n return (\n
\n history.push('/logout')}\n />\n \n \n\n {!(window.location.pathname === '/logout') &&\n !loading &&\n portals?.length > 1 ? (\n
\n \n Please select your web portal\n \n
\n {portals.map((p, i) => {\n if (p.code !== 'SMRT')\n return (\n goTo(p.url, p.code)}>\n {p.name}\n \n )\n else return <>\n })}\n
\n
\n ) : (\n
\n \n
\n )}\n {!loading && !portals && (\n Something went wrong\n )}\n
\n )\n}\n\nconst mapStateToProps = (state) => ({\n accessToken: state.userReducer.accessToken,\n portals: state.userReducer.permissions?.portals,\n})\n\nexport default connect(mapStateToProps, () => ({}))(HomePage)\n","import { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nimport { createInvalidArgFactory } from './invalidArgFactory';\nexport function mapStateToPropsFactory(mapStateToProps) {\n return !mapStateToProps ? wrapMapToPropsConstant(() => ({})) : typeof mapStateToProps === 'function' ? // @ts-ignore\n wrapMapToPropsFunc(mapStateToProps, 'mapStateToProps') : createInvalidArgFactory(mapStateToProps, 'mapStateToProps');\n}","import bindActionCreators from '../utils/bindActionCreators';\nimport { wrapMapToPropsConstant, wrapMapToPropsFunc } from './wrapMapToProps';\nimport { createInvalidArgFactory } from './invalidArgFactory';\nexport function mapDispatchToPropsFactory(mapDispatchToProps) {\n return mapDispatchToProps && typeof mapDispatchToProps === 'object' ? wrapMapToPropsConstant(dispatch => // @ts-ignore\n bindActionCreators(mapDispatchToProps, dispatch)) : !mapDispatchToProps ? wrapMapToPropsConstant(dispatch => ({\n dispatch\n })) : typeof mapDispatchToProps === 'function' ? // @ts-ignore\n wrapMapToPropsFunc(mapDispatchToProps, 'mapDispatchToProps') : createInvalidArgFactory(mapDispatchToProps, 'mapDispatchToProps');\n}","export default function bindActionCreators(actionCreators, dispatch) {\n const boundActionCreators = {};\n\n for (const key in actionCreators) {\n const actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = (...args) => dispatch(actionCreator(...args));\n }\n }\n\n return boundActionCreators;\n}","import arrayWithHoles from \"./arrayWithHoles.js\";\nimport iterableToArrayLimit from \"./iterableToArrayLimit.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableRest from \"./nonIterableRest.js\";\nexport default function _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}","export default function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}","export default function _iterableToArrayLimit(arr, i) {\n var _i = null == arr ? null : \"undefined\" != typeof Symbol && arr[Symbol.iterator] || arr[\"@@iterator\"];\n if (null != _i) {\n var _s,\n _e,\n _x,\n _r,\n _arr = [],\n _n = !0,\n _d = !1;\n try {\n if (_x = (_i = _i.call(arr)).next, 0 === i) {\n if (Object(_i) !== _i) return;\n _n = !1;\n } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0);\n } catch (err) {\n _d = !0, _e = err;\n } finally {\n try {\n if (!_n && null != _i[\"return\"] && (_r = _i[\"return\"](), Object(_r) !== _r)) return;\n } finally {\n if (_d) throw _e;\n }\n }\n return _arr;\n }\n}","export default function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nexport default function _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}","import arrayWithoutHoles from \"./arrayWithoutHoles.js\";\nimport iterableToArray from \"./iterableToArray.js\";\nimport unsupportedIterableToArray from \"./unsupportedIterableToArray.js\";\nimport nonIterableSpread from \"./nonIterableSpread.js\";\nexport default function _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}","export default function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}","export default function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}","import React from 'react'\nimport '../digital-portal.scss'\nimport { essilorLogo } from '@Techedge/digitalportal-styleguide'\nimport { LuxLoadingCircle } from '@Techedge/digitalportal-wardrobe'\n\nconst Logout = (props) => {\n return (\n
\n \n \n\n
\n \n
\n
\n )\n}\n\nexport default Logout\n","import React from 'react'\nimport '../digital-portal.scss'\nimport { essilorLogo } from '@Techedge/digitalportal-styleguide'\nimport {\n LuxIcon,\n LuxButton,\n LuxHeading,\n} from '@Techedge/digitalportal-wardrobe'\nimport { history } from '@Techedge/digitalportal-shared'\nimport { useParams } from 'react-router-dom'\n\nconst LoginError = (props) => {\n const errorType = (useParams() as any).auth\n const errorId = (useParams() as any).error_id\n\n let errorCode = ''\n\n switch (errorId) {\n case '_whoami':\n errorCode = '[001]'\n break\n case '_enabledapps':\n errorCode = '[002]'\n break\n case '_userstore':\n errorCode = '[003]'\n break\n case '_noportals':\n errorCode = '[004]'\n break\n\n default:\n break\n }\n\n const errorMsg1 =\n errorType == '_auth'\n ? 'It was not possible to recover the access permissions.'\n : 'You are not authorized to access the application.'\n const errorMsg2 =\n 'If you consider this as a mistake, please, contact the Business Owner, ' +\n 'System Administrator or open a ticket on the HelpDesk portal.'\n\n return (\n
\n history.push('/logout')}\n />\n \n\n \n \n
\n {errorMsg1}\n
\n

\n {errorMsg2} {errorCode && <>{errorCode}}\n

\n
\n )\n}\n\nexport default LoginError\n","import HomePage from '../pages/HomePage'\nimport Logout from '../pages/Logout'\nimport LoginError from '../pages/LoginError'\n\nexport class Route {\n path: string\n component: any\n _private: boolean\n children: Route[]\n redirectTo: string\n exact: boolean\n props?: any\n\n constructor(\n path: string,\n component: any,\n _private: boolean,\n redirectTo: string,\n children: Route[],\n exact?: boolean,\n props?: any\n ) {\n this.path = path\n this.component = component\n this._private = _private\n this.children = children\n this.redirectTo = redirectTo\n this.exact = exact ? exact : false\n this.props = props ? props : undefined\n }\n\n static DefaultRoute() {\n return new Route('/', HomePage, false, null, [], true)\n }\n\n static LogoutRoute() {\n return new Route('/logout', Logout, false, null, [], true)\n }\n\n static LoginError() {\n return new Route(\n '/login_error:error_id?',\n LoginError,\n false,\n null,\n [],\n true\n )\n }\n}\n","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","import { Route } from './route'\n\nexport const RouteConfig = [\n Route.DefaultRoute(),\n Route.LoginError(),\n Route.LogoutRoute(),\n]\n","/**\n * @constructor\n */\nfunction AggregateError(errors, message) {\n (this.name = 'AggregateError'), (this.errors = errors);\n this.message = message || '';\n}\nAggregateError.prototype = Error.prototype;\n\nfunction any(arr) {\n var P = this;\n return new P(function(resolve, reject) {\n if (!(arr && typeof arr.length !== 'undefined')) {\n return reject(new TypeError('Promise.any accepts an array'));\n }\n\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0) return reject();\n\n var rejectionReasons = [];\n for (var i = 0; i < args.length; i++) {\n try {\n P.resolve(args[i])\n .then(resolve)\n .catch(function(error) {\n rejectionReasons.push(error);\n if (rejectionReasons.length === args.length) {\n reject(\n new AggregateError(\n rejectionReasons,\n 'All promises were rejected'\n )\n );\n }\n });\n } catch (ex) {\n reject(ex);\n }\n }\n });\n}\n\nexport default any;\n","import promiseFinally from './finally';\nimport allSettled from './allSettled';\nimport any from './any';\n\n// Store setTimeout reference so promise-polyfill will be unaffected by\n// other code modifying setTimeout (like sinon.useFakeTimers())\nvar setTimeoutFunc = setTimeout;\n\nfunction isArray(x) {\n return Boolean(x && typeof x.length !== 'undefined');\n}\n\nfunction noop() {}\n\n// Polyfill for Function.prototype.bind\nfunction bind(fn, thisArg) {\n return function() {\n fn.apply(thisArg, arguments);\n };\n}\n\n/**\n * @constructor\n * @param {Function} fn\n */\nfunction Promise(fn) {\n if (!(this instanceof Promise))\n throw new TypeError('Promises must be constructed via new');\n if (typeof fn !== 'function') throw new TypeError('not a function');\n /** @type {!number} */\n this._state = 0;\n /** @type {!boolean} */\n this._handled = false;\n /** @type {Promise|undefined} */\n this._value = undefined;\n /** @type {!Array} */\n this._deferreds = [];\n\n doResolve(fn, this);\n}\n\nfunction handle(self, deferred) {\n while (self._state === 3) {\n self = self._value;\n }\n if (self._state === 0) {\n self._deferreds.push(deferred);\n return;\n }\n self._handled = true;\n Promise._immediateFn(function() {\n var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;\n if (cb === null) {\n (self._state === 1 ? resolve : reject)(deferred.promise, self._value);\n return;\n }\n var ret;\n try {\n ret = cb(self._value);\n } catch (e) {\n reject(deferred.promise, e);\n return;\n }\n resolve(deferred.promise, ret);\n });\n}\n\nfunction resolve(self, newValue) {\n try {\n // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure\n if (newValue === self)\n throw new TypeError('A promise cannot be resolved with itself.');\n if (\n newValue &&\n (typeof newValue === 'object' || typeof newValue === 'function')\n ) {\n var then = newValue.then;\n if (newValue instanceof Promise) {\n self._state = 3;\n self._value = newValue;\n finale(self);\n return;\n } else if (typeof then === 'function') {\n doResolve(bind(then, newValue), self);\n return;\n }\n }\n self._state = 1;\n self._value = newValue;\n finale(self);\n } catch (e) {\n reject(self, e);\n }\n}\n\nfunction reject(self, newValue) {\n self._state = 2;\n self._value = newValue;\n finale(self);\n}\n\nfunction finale(self) {\n if (self._state === 2 && self._deferreds.length === 0) {\n Promise._immediateFn(function() {\n if (!self._handled) {\n Promise._unhandledRejectionFn(self._value);\n }\n });\n }\n\n for (var i = 0, len = self._deferreds.length; i < len; i++) {\n handle(self, self._deferreds[i]);\n }\n self._deferreds = null;\n}\n\n/**\n * @constructor\n */\nfunction Handler(onFulfilled, onRejected, promise) {\n this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;\n this.onRejected = typeof onRejected === 'function' ? onRejected : null;\n this.promise = promise;\n}\n\n/**\n * Take a potentially misbehaving resolver function and make sure\n * onFulfilled and onRejected are only called once.\n *\n * Makes no guarantees about asynchrony.\n */\nfunction doResolve(fn, self) {\n var done = false;\n try {\n fn(\n function(value) {\n if (done) return;\n done = true;\n resolve(self, value);\n },\n function(reason) {\n if (done) return;\n done = true;\n reject(self, reason);\n }\n );\n } catch (ex) {\n if (done) return;\n done = true;\n reject(self, ex);\n }\n}\n\nPromise.prototype['catch'] = function(onRejected) {\n return this.then(null, onRejected);\n};\n\nPromise.prototype.then = function(onFulfilled, onRejected) {\n // @ts-ignore\n var prom = new this.constructor(noop);\n\n handle(this, new Handler(onFulfilled, onRejected, prom));\n return prom;\n};\n\nPromise.prototype['finally'] = promiseFinally;\n\nPromise.all = function(arr) {\n return new Promise(function(resolve, reject) {\n if (!isArray(arr)) {\n return reject(new TypeError('Promise.all accepts an array'));\n }\n\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n try {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(\n val,\n function(val) {\n res(i, val);\n },\n reject\n );\n return;\n }\n }\n args[i] = val;\n if (--remaining === 0) {\n resolve(args);\n }\n } catch (ex) {\n reject(ex);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n};\n\nPromise.any = any;\n\nPromise.allSettled = allSettled;\n\nPromise.resolve = function(value) {\n if (value && typeof value === 'object' && value.constructor === Promise) {\n return value;\n }\n\n return new Promise(function(resolve) {\n resolve(value);\n });\n};\n\nPromise.reject = function(value) {\n return new Promise(function(resolve, reject) {\n reject(value);\n });\n};\n\nPromise.race = function(arr) {\n return new Promise(function(resolve, reject) {\n if (!isArray(arr)) {\n return reject(new TypeError('Promise.race accepts an array'));\n }\n\n for (var i = 0, len = arr.length; i < len; i++) {\n Promise.resolve(arr[i]).then(resolve, reject);\n }\n });\n};\n\n// Use polyfill for setImmediate for performance gains\nPromise._immediateFn =\n // @ts-ignore\n (typeof setImmediate === 'function' &&\n function(fn) {\n // @ts-ignore\n setImmediate(fn);\n }) ||\n function(fn) {\n setTimeoutFunc(fn, 0);\n };\n\nPromise._unhandledRejectionFn = function _unhandledRejectionFn(err) {\n if (typeof console !== 'undefined' && console) {\n console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console\n }\n};\n\nexport default Promise;\n","/**\n * @this {Promise}\n */\nfunction finallyConstructor(callback) {\n var constructor = this.constructor;\n return this.then(\n function(value) {\n // @ts-ignore\n return constructor.resolve(callback()).then(function() {\n return value;\n });\n },\n function(reason) {\n // @ts-ignore\n return constructor.resolve(callback()).then(function() {\n // @ts-ignore\n return constructor.reject(reason);\n });\n }\n );\n}\n\nexport default finallyConstructor;\n","function allSettled(arr) {\n var P = this;\n return new P(function(resolve, reject) {\n if (!(arr && typeof arr.length !== 'undefined')) {\n return reject(\n new TypeError(\n typeof arr +\n ' ' +\n arr +\n ' is not iterable(cannot read property Symbol(Symbol.iterator))'\n )\n );\n }\n var args = Array.prototype.slice.call(arr);\n if (args.length === 0) return resolve([]);\n var remaining = args.length;\n\n function res(i, val) {\n if (val && (typeof val === 'object' || typeof val === 'function')) {\n var then = val.then;\n if (typeof then === 'function') {\n then.call(\n val,\n function(val) {\n res(i, val);\n },\n function(e) {\n args[i] = { status: 'rejected', reason: e };\n if (--remaining === 0) {\n resolve(args);\n }\n }\n );\n return;\n }\n }\n args[i] = { status: 'fulfilled', value: val };\n if (--remaining === 0) {\n resolve(args);\n }\n }\n\n for (var i = 0; i < args.length; i++) {\n res(i, args[i]);\n }\n });\n}\n\nexport default allSettled;\n","import PromisePollyfill from 'promise-polyfill';\nimport { isBrowser } from './utils';\nvar local = {};\n\nif (isBrowser) {\n local = window;\n} else if (typeof self !== 'undefined') {\n local = self;\n}\n\nvar Promise = 'Promise' in local ? local.Promise : PromisePollyfill;\nexport { Promise };","import { Promise } from './polyfills';\nvar slice = [].slice;\nvar isBrowser = typeof window !== 'undefined';\nvar PERF = isBrowser && typeof performance !== 'undefined' ? performance : {};\n\nfunction isCORSSupported() {\n var xhr = new window.XMLHttpRequest();\n return 'withCredentials' in xhr;\n}\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToHex(buffer) {\n var hexOctets = [];\n\n for (var _i = 0; _i < buffer.length; _i++) {\n hexOctets.push(byteToHex[buffer[_i]]);\n }\n\n return hexOctets.join('');\n}\n\nvar destination = new Uint8Array(16);\n\nfunction rng() {\n if (typeof crypto != 'undefined' && typeof crypto.getRandomValues == 'function') {\n return crypto.getRandomValues(destination);\n } else if (typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function') {\n return msCrypto.getRandomValues(destination);\n }\n\n return destination;\n}\n\nfunction generateRandomId(length) {\n var id = bytesToHex(rng());\n return id.substr(0, length);\n}\n\nfunction getDtHeaderValue(span) {\n var dtVersion = '00';\n var dtUnSampledFlags = '00';\n var dtSampledFlags = '01';\n\n if (span && span.traceId && span.id && span.parentId) {\n var flags = span.sampled ? dtSampledFlags : dtUnSampledFlags;\n var id = span.sampled ? span.id : span.parentId;\n return dtVersion + '-' + span.traceId + '-' + id + '-' + flags;\n }\n}\n\nfunction parseDtHeaderValue(value) {\n var parsed = /^([\\da-f]{2})-([\\da-f]{32})-([\\da-f]{16})-([\\da-f]{2})$/.exec(value);\n\n if (parsed) {\n var flags = parsed[4];\n var sampled = flags !== '00';\n return {\n traceId: parsed[2],\n id: parsed[3],\n sampled: sampled\n };\n }\n}\n\nfunction isDtHeaderValid(header) {\n return /^[\\da-f]{2}-[\\da-f]{32}-[\\da-f]{16}-[\\da-f]{2}$/.test(header) && header.slice(3, 35) !== '00000000000000000000000000000000' && header.slice(36, 52) !== '0000000000000000';\n}\n\nfunction getTSHeaderValue(_ref) {\n var sampleRate = _ref.sampleRate;\n\n if (typeof sampleRate !== 'number' || String(sampleRate).length > 256) {\n return;\n }\n\n var NAMESPACE = 'es';\n var SEPARATOR = '=';\n return \"\" + NAMESPACE + SEPARATOR + \"s:\" + sampleRate;\n}\n\nfunction setRequestHeader(target, name, value) {\n if (typeof target.setRequestHeader === 'function') {\n target.setRequestHeader(name, value);\n } else if (target.headers && typeof target.headers.append === 'function') {\n target.headers.append(name, value);\n } else {\n target[name] = value;\n }\n}\n\nfunction checkSameOrigin(source, target) {\n var isSame = false;\n\n if (typeof target === 'string') {\n isSame = source === target;\n } else if (target && typeof target.test === 'function') {\n isSame = target.test(source);\n } else if (Array.isArray(target)) {\n target.forEach(function (t) {\n if (!isSame) {\n isSame = checkSameOrigin(source, t);\n }\n });\n }\n\n return isSame;\n}\n\nfunction isPlatformSupported() {\n return isBrowser && typeof Set === 'function' && typeof JSON.stringify === 'function' && PERF && typeof PERF.now === 'function' && isCORSSupported();\n}\n\nfunction setLabel(key, value, obj) {\n if (!obj || !key) return;\n var skey = removeInvalidChars(key);\n var valueType = typeof value;\n\n if (value != undefined && valueType !== 'boolean' && valueType !== 'number') {\n value = String(value);\n }\n\n obj[skey] = value;\n return obj;\n}\n\nfunction getServerTimingInfo(serverTimingEntries) {\n if (serverTimingEntries === void 0) {\n serverTimingEntries = [];\n }\n\n var serverTimingInfo = [];\n var entrySeparator = ', ';\n var valueSeparator = ';';\n\n for (var _i2 = 0; _i2 < serverTimingEntries.length; _i2++) {\n var _serverTimingEntries$ = serverTimingEntries[_i2],\n name = _serverTimingEntries$.name,\n duration = _serverTimingEntries$.duration,\n description = _serverTimingEntries$.description;\n var timingValue = name;\n\n if (description) {\n timingValue += valueSeparator + 'desc=' + description;\n }\n\n if (duration) {\n timingValue += valueSeparator + 'dur=' + duration;\n }\n\n serverTimingInfo.push(timingValue);\n }\n\n return serverTimingInfo.join(entrySeparator);\n}\n\nfunction getTimeOrigin() {\n return PERF.timing.fetchStart;\n}\n\nfunction stripQueryStringFromUrl(url) {\n return url && url.split('?')[0];\n}\n\nfunction isObject(value) {\n return value !== null && typeof value === 'object';\n}\n\nfunction isFunction(value) {\n return typeof value === 'function';\n}\n\nfunction baseExtend(dst, objs, deep) {\n for (var i = 0, ii = objs.length; i < ii; ++i) {\n var obj = objs[i];\n if (!isObject(obj) && !isFunction(obj)) continue;\n var keys = Object.keys(obj);\n\n for (var j = 0, jj = keys.length; j < jj; j++) {\n var key = keys[j];\n var src = obj[key];\n\n if (deep && isObject(src)) {\n if (!isObject(dst[key])) dst[key] = Array.isArray(src) ? [] : {};\n baseExtend(dst[key], [src], false);\n } else {\n dst[key] = src;\n }\n }\n }\n\n return dst;\n}\n\nfunction getElasticScript() {\n if (typeof document !== 'undefined') {\n var scripts = document.getElementsByTagName('script');\n\n for (var i = 0, l = scripts.length; i < l; i++) {\n var sc = scripts[i];\n\n if (sc.src.indexOf('elastic') > 0) {\n return sc;\n }\n }\n }\n}\n\nfunction getCurrentScript() {\n if (typeof document !== 'undefined') {\n var currentScript = document.currentScript;\n\n if (!currentScript) {\n return getElasticScript();\n }\n\n return currentScript;\n }\n}\n\nfunction extend(dst) {\n return baseExtend(dst, slice.call(arguments, 1), false);\n}\n\nfunction merge(dst) {\n return baseExtend(dst, slice.call(arguments, 1), true);\n}\n\nfunction isUndefined(obj) {\n return typeof obj === 'undefined';\n}\n\nfunction noop() {}\n\nfunction find(array, predicate, thisArg) {\n if (array == null) {\n throw new TypeError('array is null or not defined');\n }\n\n var o = Object(array);\n var len = o.length >>> 0;\n\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n }\n\n var k = 0;\n\n while (k < len) {\n var kValue = o[k];\n\n if (predicate.call(thisArg, kValue, k, o)) {\n return kValue;\n }\n\n k++;\n }\n\n return undefined;\n}\n\nfunction removeInvalidChars(key) {\n return key.replace(/[.*\"]/g, '_');\n}\n\nfunction getLatestSpan(spans, typeFilter) {\n var latestSpan = null;\n\n for (var _i3 = 0; _i3 < spans.length; _i3++) {\n var span = spans[_i3];\n\n if (typeFilter && typeFilter(span.type) && (!latestSpan || latestSpan._end < span._end)) {\n latestSpan = span;\n }\n }\n\n return latestSpan;\n}\n\nfunction getLatestNonXHRSpan(spans) {\n return getLatestSpan(spans, function (type) {\n return String(type).indexOf('external') === -1;\n });\n}\n\nfunction getLatestXHRSpan(spans) {\n return getLatestSpan(spans, function (type) {\n return String(type).indexOf('external') !== -1;\n });\n}\n\nfunction getEarliestSpan(spans) {\n var earliestSpan = spans[0];\n\n for (var _i4 = 1; _i4 < spans.length; _i4++) {\n var span = spans[_i4];\n\n if (earliestSpan._start > span._start) {\n earliestSpan = span;\n }\n }\n\n return earliestSpan;\n}\n\nfunction now() {\n return PERF.now();\n}\n\nfunction getTime(time) {\n return typeof time === 'number' && time >= 0 ? time : now();\n}\n\nfunction getDuration(start, end) {\n if (isUndefined(end) || isUndefined(start)) {\n return null;\n }\n\n return parseInt(end - start);\n}\n\nfunction scheduleMacroTask(callback) {\n setTimeout(callback, 0);\n}\n\nfunction scheduleMicroTask(callback) {\n Promise.resolve().then(callback);\n}\n\nfunction isPerfTimelineSupported() {\n return typeof PERF.getEntriesByType === 'function';\n}\n\nfunction isPerfTypeSupported(type) {\n return typeof PerformanceObserver !== 'undefined' && PerformanceObserver.supportedEntryTypes && PerformanceObserver.supportedEntryTypes.indexOf(type) >= 0;\n}\n\nfunction isBeaconInspectionEnabled() {\n var flagName = '_elastic_inspect_beacon_';\n\n if (sessionStorage.getItem(flagName) != null) {\n return true;\n }\n\n if (!window.URL || !window.URLSearchParams) {\n return false;\n }\n\n try {\n var parsedUrl = new URL(window.location.href);\n var isFlagSet = parsedUrl.searchParams.has(flagName);\n\n if (isFlagSet) {\n sessionStorage.setItem(flagName, true);\n }\n\n return isFlagSet;\n } catch (e) {}\n\n return false;\n}\n\nexport { extend, merge, isUndefined, noop, baseExtend, bytesToHex, isCORSSupported, isObject, isFunction, isPlatformSupported, isDtHeaderValid, parseDtHeaderValue, getServerTimingInfo, getDtHeaderValue, getTSHeaderValue, getCurrentScript, getElasticScript, getTimeOrigin, generateRandomId, getEarliestSpan, getLatestNonXHRSpan, getLatestXHRSpan, getDuration, getTime, now, rng, checkSameOrigin, scheduleMacroTask, scheduleMicroTask, setLabel, setRequestHeader, stripQueryStringFromUrl, find, removeInvalidChars, PERF, isPerfTimelineSupported, isBrowser, isPerfTypeSupported, isBeaconInspectionEnabled };","export var globalState = {\n fetchInProgress: false\n};\nexport function apmSymbol(name) {\n return '__apm_symbol__' + name;\n}\n\nfunction isPropertyWritable(propertyDesc) {\n if (!propertyDesc) {\n return true;\n }\n\n if (propertyDesc.writable === false) {\n return false;\n }\n\n return !(typeof propertyDesc.get === 'function' && typeof propertyDesc.set === 'undefined');\n}\n\nfunction attachOriginToPatched(patched, original) {\n patched[apmSymbol('OriginalDelegate')] = original;\n}\n\nexport function patchMethod(target, name, patchFn) {\n var proto = target;\n\n while (proto && !proto.hasOwnProperty(name)) {\n proto = Object.getPrototypeOf(proto);\n }\n\n if (!proto && target[name]) {\n proto = target;\n }\n\n var delegateName = apmSymbol(name);\n var delegate;\n\n if (proto && !(delegate = proto[delegateName])) {\n delegate = proto[delegateName] = proto[name];\n var desc = proto && Object.getOwnPropertyDescriptor(proto, name);\n\n if (isPropertyWritable(desc)) {\n var patchDelegate = patchFn(delegate, delegateName, name);\n\n proto[name] = function () {\n return patchDelegate(this, arguments);\n };\n\n attachOriginToPatched(proto[name], delegate);\n }\n }\n\n return delegate;\n}\nexport var XHR_IGNORE = apmSymbol('xhrIgnore');\nexport var XHR_SYNC = apmSymbol('xhrSync');\nexport var XHR_URL = apmSymbol('xhrURL');\nexport var XHR_METHOD = apmSymbol('xhrMethod');","var SCHEDULE = 'schedule';\nvar INVOKE = 'invoke';\nvar ADD_EVENT_LISTENER_STR = 'addEventListener';\nvar REMOVE_EVENT_LISTENER_STR = 'removeEventListener';\nvar RESOURCE_INITIATOR_TYPES = ['link', 'css', 'script', 'img', 'xmlhttprequest', 'fetch', 'beacon', 'iframe'];\nvar REUSABILITY_THRESHOLD = 5000;\nvar MAX_SPAN_DURATION = 5 * 60 * 1000;\nvar PAGE_LOAD_DELAY = 1000;\nvar PAGE_LOAD = 'page-load';\nvar ROUTE_CHANGE = 'route-change';\nvar TYPE_CUSTOM = 'custom';\nvar USER_INTERACTION = 'user-interaction';\nvar HTTP_REQUEST_TYPE = 'http-request';\nvar TEMPORARY_TYPE = 'temporary';\nvar NAME_UNKNOWN = 'Unknown';\nvar TRANSACTION_TYPE_ORDER = [PAGE_LOAD, ROUTE_CHANGE, USER_INTERACTION, HTTP_REQUEST_TYPE, TYPE_CUSTOM, TEMPORARY_TYPE];\nvar OUTCOME_SUCCESS = 'success';\nvar OUTCOME_FAILURE = 'failure';\nvar OUTCOME_UNKNOWN = 'unknown';\nvar USER_TIMING_THRESHOLD = 60;\nvar TRANSACTION_START = 'transaction:start';\nvar TRANSACTION_END = 'transaction:end';\nvar CONFIG_CHANGE = 'config:change';\nvar QUEUE_FLUSH = 'queue:flush';\nvar QUEUE_ADD_TRANSACTION = 'queue:add_transaction';\nvar XMLHTTPREQUEST = 'xmlhttprequest';\nvar FETCH = 'fetch';\nvar HISTORY = 'history';\nvar EVENT_TARGET = 'eventtarget';\nvar CLICK = 'click';\nvar ERROR = 'error';\nvar BEFORE_EVENT = ':before';\nvar AFTER_EVENT = ':after';\nvar LOCAL_CONFIG_KEY = 'elastic_apm_config';\nvar LONG_TASK = 'longtask';\nvar PAINT = 'paint';\nvar MEASURE = 'measure';\nvar NAVIGATION = 'navigation';\nvar RESOURCE = 'resource';\nvar FIRST_CONTENTFUL_PAINT = 'first-contentful-paint';\nvar LARGEST_CONTENTFUL_PAINT = 'largest-contentful-paint';\nvar FIRST_INPUT = 'first-input';\nvar LAYOUT_SHIFT = 'layout-shift';\nvar ERRORS = 'errors';\nvar TRANSACTIONS = 'transactions';\nvar CONFIG_SERVICE = 'ConfigService';\nvar LOGGING_SERVICE = 'LoggingService';\nvar TRANSACTION_SERVICE = 'TransactionService';\nvar APM_SERVER = 'ApmServer';\nvar PERFORMANCE_MONITORING = 'PerformanceMonitoring';\nvar ERROR_LOGGING = 'ErrorLogging';\nvar TRUNCATED_TYPE = '.truncated';\nvar KEYWORD_LIMIT = 1024;\nvar SESSION_TIMEOUT = 30 * 60000;\nvar HTTP_REQUEST_TIMEOUT = 10000;\nexport { SCHEDULE, INVOKE, ADD_EVENT_LISTENER_STR, REMOVE_EVENT_LISTENER_STR, RESOURCE_INITIATOR_TYPES, REUSABILITY_THRESHOLD, MAX_SPAN_DURATION, PAGE_LOAD_DELAY, PAGE_LOAD, ROUTE_CHANGE, NAME_UNKNOWN, TYPE_CUSTOM, USER_TIMING_THRESHOLD, TRANSACTION_START, TRANSACTION_END, CONFIG_CHANGE, QUEUE_FLUSH, QUEUE_ADD_TRANSACTION, XMLHTTPREQUEST, FETCH, HISTORY, EVENT_TARGET, CLICK, ERROR, BEFORE_EVENT, AFTER_EVENT, LOCAL_CONFIG_KEY, HTTP_REQUEST_TYPE, LONG_TASK, PAINT, MEASURE, NAVIGATION, RESOURCE, FIRST_CONTENTFUL_PAINT, LARGEST_CONTENTFUL_PAINT, KEYWORD_LIMIT, TEMPORARY_TYPE, USER_INTERACTION, TRANSACTION_TYPE_ORDER, ERRORS, TRANSACTIONS, CONFIG_SERVICE, LOGGING_SERVICE, TRANSACTION_SERVICE, APM_SERVER, PERFORMANCE_MONITORING, ERROR_LOGGING, TRUNCATED_TYPE, FIRST_INPUT, LAYOUT_SHIFT, OUTCOME_SUCCESS, OUTCOME_FAILURE, OUTCOME_UNKNOWN, SESSION_TIMEOUT, HTTP_REQUEST_TIMEOUT };","export function isResponseSuccessful(status) {\n if (status === 0 || status > 399 && status < 600) {\n return false;\n }\n\n return true;\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { HTTP_REQUEST_TIMEOUT } from '../constants';\nimport { isResponseSuccessful } from './response-status';\nexport var BYTE_LIMIT = 60 * 1000;\nexport function shouldUseFetchWithKeepAlive(method, payload) {\n if (!isFetchSupported()) {\n return false;\n }\n\n var isKeepAliveSupported = ('keepalive' in new Request(''));\n\n if (!isKeepAliveSupported) {\n return false;\n }\n\n var size = calculateSize(payload);\n return method === 'POST' && size < BYTE_LIMIT;\n}\nexport function sendFetchRequest(method, url, _ref) {\n var _ref$keepalive = _ref.keepalive,\n keepalive = _ref$keepalive === void 0 ? false : _ref$keepalive,\n _ref$timeout = _ref.timeout,\n timeout = _ref$timeout === void 0 ? HTTP_REQUEST_TIMEOUT : _ref$timeout,\n payload = _ref.payload,\n headers = _ref.headers,\n sendCredentials = _ref.sendCredentials;\n var timeoutConfig = {};\n\n if (typeof AbortController === 'function') {\n var controller = new AbortController();\n timeoutConfig.signal = controller.signal;\n setTimeout(function () {\n return controller.abort();\n }, timeout);\n }\n\n var fetchResponse;\n return window.fetch(url, _extends({\n body: payload,\n headers: headers,\n method: method,\n keepalive: keepalive,\n credentials: sendCredentials ? 'include' : 'omit'\n }, timeoutConfig)).then(function (response) {\n fetchResponse = response;\n return fetchResponse.text();\n }).then(function (responseText) {\n var bodyResponse = {\n url: url,\n status: fetchResponse.status,\n responseText: responseText\n };\n\n if (!isResponseSuccessful(fetchResponse.status)) {\n throw bodyResponse;\n }\n\n return bodyResponse;\n });\n}\nexport function isFetchSupported() {\n return typeof window.fetch === 'function' && typeof window.Request === 'function';\n}\n\nfunction calculateSize(payload) {\n if (!payload) {\n return 0;\n }\n\n if (payload instanceof Blob) {\n return payload.size;\n }\n\n return new Blob([payload]).size;\n}","import { BEFORE_EVENT, AFTER_EVENT } from './constants';\n\nvar EventHandler = function () {\n function EventHandler() {\n this.observers = {};\n }\n\n var _proto = EventHandler.prototype;\n\n _proto.observe = function observe(name, fn) {\n var _this = this;\n\n if (typeof fn === 'function') {\n if (!this.observers[name]) {\n this.observers[name] = [];\n }\n\n this.observers[name].push(fn);\n return function () {\n var index = _this.observers[name].indexOf(fn);\n\n if (index > -1) {\n _this.observers[name].splice(index, 1);\n }\n };\n }\n };\n\n _proto.sendOnly = function sendOnly(name, args) {\n var obs = this.observers[name];\n\n if (obs) {\n obs.forEach(function (fn) {\n try {\n fn.apply(undefined, args);\n } catch (error) {\n console.log(error, error.stack);\n }\n });\n }\n };\n\n _proto.send = function send(name, args) {\n this.sendOnly(name + BEFORE_EVENT, args);\n this.sendOnly(name, args);\n this.sendOnly(name + AFTER_EVENT, args);\n };\n\n return EventHandler;\n}();\n\nexport default EventHandler;","import { patchXMLHttpRequest } from './xhr-patch';\nimport { patchFetch } from './fetch-patch';\nimport { patchHistory } from './history-patch';\nimport EventHandler from '../event-handler';\nimport { HISTORY, FETCH, XMLHTTPREQUEST } from '../constants';\nvar patchEventHandler = new EventHandler();\nvar alreadyPatched = false;\n\nfunction patchAll() {\n if (!alreadyPatched) {\n alreadyPatched = true;\n patchXMLHttpRequest(function (event, task) {\n patchEventHandler.send(XMLHTTPREQUEST, [event, task]);\n });\n patchFetch(function (event, task) {\n patchEventHandler.send(FETCH, [event, task]);\n });\n patchHistory(function (event, task) {\n patchEventHandler.send(HISTORY, [event, task]);\n });\n }\n\n return patchEventHandler;\n}\n\nexport { patchAll, patchEventHandler };","import { patchMethod, XHR_SYNC, XHR_URL, XHR_METHOD, XHR_IGNORE } from './patch-utils';\nimport { SCHEDULE, INVOKE, XMLHTTPREQUEST, ADD_EVENT_LISTENER_STR } from '../constants';\nexport function patchXMLHttpRequest(callback) {\n var XMLHttpRequestPrototype = XMLHttpRequest.prototype;\n\n if (!XMLHttpRequestPrototype || !XMLHttpRequestPrototype[ADD_EVENT_LISTENER_STR]) {\n return;\n }\n\n var READY_STATE_CHANGE = 'readystatechange';\n var LOAD = 'load';\n var ERROR = 'error';\n var TIMEOUT = 'timeout';\n var ABORT = 'abort';\n\n function invokeTask(task, status) {\n if (task.state !== INVOKE) {\n task.state = INVOKE;\n task.data.status = status;\n callback(INVOKE, task);\n }\n }\n\n function scheduleTask(task) {\n if (task.state === SCHEDULE) {\n return;\n }\n\n task.state = SCHEDULE;\n callback(SCHEDULE, task);\n var target = task.data.target;\n\n function addListener(name) {\n target[ADD_EVENT_LISTENER_STR](name, function (_ref) {\n var type = _ref.type;\n\n if (type === READY_STATE_CHANGE) {\n if (target.readyState === 4 && target.status !== 0) {\n invokeTask(task, 'success');\n }\n } else {\n var status = type === LOAD ? 'success' : type;\n invokeTask(task, status);\n }\n });\n }\n\n addListener(READY_STATE_CHANGE);\n addListener(LOAD);\n addListener(TIMEOUT);\n addListener(ERROR);\n addListener(ABORT);\n }\n\n var openNative = patchMethod(XMLHttpRequestPrototype, 'open', function () {\n return function (self, args) {\n if (!self[XHR_IGNORE]) {\n self[XHR_METHOD] = args[0];\n self[XHR_URL] = args[1];\n self[XHR_SYNC] = args[2] === false;\n }\n\n return openNative.apply(self, args);\n };\n });\n var sendNative = patchMethod(XMLHttpRequestPrototype, 'send', function () {\n return function (self, args) {\n if (self[XHR_IGNORE]) {\n return sendNative.apply(self, args);\n }\n\n var task = {\n source: XMLHTTPREQUEST,\n state: '',\n type: 'macroTask',\n data: {\n target: self,\n method: self[XHR_METHOD],\n sync: self[XHR_SYNC],\n url: self[XHR_URL],\n status: ''\n }\n };\n\n try {\n scheduleTask(task);\n return sendNative.apply(self, args);\n } catch (e) {\n invokeTask(task, ERROR);\n throw e;\n }\n };\n });\n}","import { Promise } from '../polyfills';\nimport { globalState } from './patch-utils';\nimport { SCHEDULE, INVOKE, FETCH } from '../constants';\nimport { scheduleMicroTask } from '../utils';\nimport { isFetchSupported } from '../http/fetch';\nexport function patchFetch(callback) {\n if (!isFetchSupported()) {\n return;\n }\n\n function scheduleTask(task) {\n task.state = SCHEDULE;\n callback(SCHEDULE, task);\n }\n\n function invokeTask(task) {\n task.state = INVOKE;\n callback(INVOKE, task);\n }\n\n function handleResponseError(task, error) {\n task.data.aborted = isAbortError(error);\n task.data.error = error;\n invokeTask(task);\n }\n\n function readStream(stream, task) {\n var reader = stream.getReader();\n\n var read = function read() {\n reader.read().then(function (_ref) {\n var done = _ref.done;\n\n if (done) {\n invokeTask(task);\n } else {\n read();\n }\n }, function (error) {\n handleResponseError(task, error);\n });\n };\n\n read();\n }\n\n var nativeFetch = window.fetch;\n\n window.fetch = function (input, init) {\n var fetchSelf = this;\n var args = arguments;\n var request, url;\n\n if (typeof input === 'string') {\n request = new Request(input, init);\n url = input;\n } else if (input) {\n request = input;\n url = request.url;\n } else {\n return nativeFetch.apply(fetchSelf, args);\n }\n\n var task = {\n source: FETCH,\n state: '',\n type: 'macroTask',\n data: {\n target: request,\n method: request.method,\n url: url,\n aborted: false\n }\n };\n return new Promise(function (resolve, reject) {\n globalState.fetchInProgress = true;\n scheduleTask(task);\n var promise;\n\n try {\n promise = nativeFetch.apply(fetchSelf, [request]);\n } catch (error) {\n reject(error);\n task.data.error = error;\n invokeTask(task);\n globalState.fetchInProgress = false;\n return;\n }\n\n promise.then(function (response) {\n var clonedResponse = response.clone ? response.clone() : {};\n resolve(response);\n scheduleMicroTask(function () {\n task.data.response = response;\n var body = clonedResponse.body;\n\n if (body) {\n readStream(body, task);\n } else {\n invokeTask(task);\n }\n });\n }, function (error) {\n reject(error);\n scheduleMicroTask(function () {\n handleResponseError(task, error);\n });\n });\n globalState.fetchInProgress = false;\n });\n };\n}\n\nfunction isAbortError(error) {\n return error && error.name === 'AbortError';\n}","import { INVOKE, HISTORY } from '../constants';\nexport function patchHistory(callback) {\n if (!window.history) {\n return;\n }\n\n var nativePushState = history.pushState;\n\n if (typeof nativePushState === 'function') {\n history.pushState = function (state, title, url) {\n var task = {\n source: HISTORY,\n data: {\n state: state,\n title: title,\n url: url\n }\n };\n callback(INVOKE, task);\n nativePushState.apply(this, arguments);\n };\n }\n}","var __DEV__ = process.env.NODE_ENV !== 'production';\n\nvar state = {\n bootstrapTime: null,\n lastHiddenStart: Number.MIN_SAFE_INTEGER\n};\nexport { __DEV__, state };","import { isPlatformSupported, isBrowser, now } from './common/utils';\nimport { patchAll } from './common/patching';\nimport { state } from './state';\nvar enabled = false;\nexport function bootstrap() {\n if (isPlatformSupported()) {\n patchAll();\n state.bootstrapTime = now();\n enabled = true;\n } else if (isBrowser) {\n console.log('[Elastic APM] platform is not supported!');\n }\n\n return enabled;\n}","import { isBrowser } from './utils';\n\nfunction isDefaultPort(port, protocol) {\n switch (protocol) {\n case 'http:':\n return port === '80';\n\n case 'https:':\n return port === '443';\n }\n\n return true;\n}\n\nvar RULES = [['#', 'hash'], ['?', 'query'], ['/', 'path'], ['@', 'auth', 1], [NaN, 'host', undefined, 1]];\nvar PROTOCOL_REGEX = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\S\\s]*)/i;\nexport var Url = function () {\n function Url(url) {\n var _this$extractProtocol = this.extractProtocol(url || ''),\n protocol = _this$extractProtocol.protocol,\n address = _this$extractProtocol.address,\n slashes = _this$extractProtocol.slashes;\n\n var relative = !protocol && !slashes;\n var location = this.getLocation();\n var instructions = RULES.slice();\n address = address.replace('\\\\', '/');\n\n if (!slashes) {\n instructions[2] = [NaN, 'path'];\n }\n\n var index;\n\n for (var i = 0; i < instructions.length; i++) {\n var instruction = instructions[i];\n var parse = instruction[0];\n var key = instruction[1];\n\n if (typeof parse === 'string') {\n index = address.indexOf(parse);\n\n if (~index) {\n var instLength = instruction[2];\n\n if (instLength) {\n var newIndex = address.lastIndexOf(parse);\n index = Math.max(index, newIndex);\n this[key] = address.slice(0, index);\n address = address.slice(index + instLength);\n } else {\n this[key] = address.slice(index);\n address = address.slice(0, index);\n }\n }\n } else {\n this[key] = address;\n address = '';\n }\n\n this[key] = this[key] || (relative && instruction[3] ? location[key] || '' : '');\n if (instruction[3]) this[key] = this[key].toLowerCase();\n }\n\n if (relative && this.path.charAt(0) !== '/') {\n this.path = '/' + this.path;\n }\n\n this.relative = relative;\n this.protocol = protocol || location.protocol;\n this.hostname = this.host;\n this.port = '';\n\n if (/:\\d+$/.test(this.host)) {\n var value = this.host.split(':');\n var port = value.pop();\n var hostname = value.join(':');\n\n if (isDefaultPort(port, this.protocol)) {\n this.host = hostname;\n } else {\n this.port = port;\n }\n\n this.hostname = hostname;\n }\n\n this.origin = this.protocol && this.host && this.protocol !== 'file:' ? this.protocol + '//' + this.host : 'null';\n this.href = this.toString();\n }\n\n var _proto = Url.prototype;\n\n _proto.toString = function toString() {\n var result = this.protocol;\n result += '//';\n\n if (this.auth) {\n var REDACTED = '[REDACTED]';\n var userpass = this.auth.split(':');\n var username = userpass[0] ? REDACTED : '';\n var password = userpass[1] ? ':' + REDACTED : '';\n result += username + password + '@';\n }\n\n result += this.host;\n result += this.path;\n result += this.query;\n result += this.hash;\n return result;\n };\n\n _proto.getLocation = function getLocation() {\n var globalVar = {};\n\n if (isBrowser) {\n globalVar = window;\n }\n\n return globalVar.location;\n };\n\n _proto.extractProtocol = function extractProtocol(url) {\n var match = PROTOCOL_REGEX.exec(url);\n return {\n protocol: match[1] ? match[1].toLowerCase() : '',\n slashes: !!match[2],\n address: match[3]\n };\n };\n\n return Url;\n}();\nexport function slugifyUrl(urlStr, depth) {\n if (depth === void 0) {\n depth = 2;\n }\n\n var parsedUrl = new Url(urlStr);\n var query = parsedUrl.query,\n path = parsedUrl.path;\n var pathParts = path.substring(1).split('/');\n var redactString = ':id';\n var wildcard = '*';\n var specialCharsRegex = /\\W|_/g;\n var digitsRegex = /[0-9]/g;\n var lowerCaseRegex = /[a-z]/g;\n var upperCaseRegex = /[A-Z]/g;\n var redactedParts = [];\n var redactedBefore = false;\n\n for (var index = 0; index < pathParts.length; index++) {\n var part = pathParts[index];\n\n if (redactedBefore || index > depth - 1) {\n if (part) {\n redactedParts.push(wildcard);\n }\n\n break;\n }\n\n var numberOfSpecialChars = (part.match(specialCharsRegex) || []).length;\n\n if (numberOfSpecialChars >= 2) {\n redactedParts.push(redactString);\n redactedBefore = true;\n continue;\n }\n\n var numberOfDigits = (part.match(digitsRegex) || []).length;\n\n if (numberOfDigits > 3 || part.length > 3 && numberOfDigits / part.length >= 0.3) {\n redactedParts.push(redactString);\n redactedBefore = true;\n continue;\n }\n\n var numberofUpperCase = (part.match(upperCaseRegex) || []).length;\n var numberofLowerCase = (part.match(lowerCaseRegex) || []).length;\n var lowerCaseRate = numberofLowerCase / part.length;\n var upperCaseRate = numberofUpperCase / part.length;\n\n if (part.length > 5 && (upperCaseRate > 0.3 && upperCaseRate < 0.6 || lowerCaseRate > 0.3 && lowerCaseRate < 0.6)) {\n redactedParts.push(redactString);\n redactedBefore = true;\n continue;\n }\n\n part && redactedParts.push(part);\n }\n\n var redacted = '/' + (redactedParts.length >= 2 ? redactedParts.join('/') : redactedParts.join('')) + (query ? '?{query}' : '');\n return redacted;\n}","var _excluded = [\"tags\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { Url } from './url';\nimport { PAGE_LOAD, NAVIGATION } from './constants';\nimport { getServerTimingInfo, PERF, isPerfTimelineSupported } from './utils';\nvar LEFT_SQUARE_BRACKET = 91;\nvar RIGHT_SQUARE_BRACKET = 93;\nvar EXTERNAL = 'external';\nvar RESOURCE = 'resource';\nvar HARD_NAVIGATION = 'hard-navigation';\n\nfunction getPortNumber(port, protocol) {\n if (port === '') {\n port = protocol === 'http:' ? '80' : protocol === 'https:' ? '443' : '';\n }\n\n return port;\n}\n\nfunction getResponseContext(perfTimingEntry) {\n var transferSize = perfTimingEntry.transferSize,\n encodedBodySize = perfTimingEntry.encodedBodySize,\n decodedBodySize = perfTimingEntry.decodedBodySize,\n serverTiming = perfTimingEntry.serverTiming;\n var respContext = {\n transfer_size: transferSize,\n encoded_body_size: encodedBodySize,\n decoded_body_size: decodedBodySize\n };\n var serverTimingStr = getServerTimingInfo(serverTiming);\n\n if (serverTimingStr) {\n respContext.headers = {\n 'server-timing': serverTimingStr\n };\n }\n\n return respContext;\n}\n\nfunction getDestination(parsedUrl) {\n var port = parsedUrl.port,\n protocol = parsedUrl.protocol,\n hostname = parsedUrl.hostname;\n var portNumber = getPortNumber(port, protocol);\n var ipv6Hostname = hostname.charCodeAt(0) === LEFT_SQUARE_BRACKET && hostname.charCodeAt(hostname.length - 1) === RIGHT_SQUARE_BRACKET;\n var address = hostname;\n\n if (ipv6Hostname) {\n address = hostname.slice(1, -1);\n }\n\n return {\n service: {\n resource: hostname + ':' + portNumber,\n name: '',\n type: ''\n },\n address: address,\n port: Number(portNumber)\n };\n}\n\nfunction getResourceContext(data) {\n var entry = data.entry,\n url = data.url;\n var parsedUrl = new Url(url);\n var destination = getDestination(parsedUrl);\n return {\n http: {\n url: url,\n response: getResponseContext(entry)\n },\n destination: destination\n };\n}\n\nfunction getExternalContext(data) {\n var url = data.url,\n method = data.method,\n target = data.target,\n response = data.response;\n var parsedUrl = new Url(url);\n var destination = getDestination(parsedUrl);\n var context = {\n http: {\n method: method,\n url: parsedUrl.href\n },\n destination: destination\n };\n var statusCode;\n\n if (target && typeof target.status !== 'undefined') {\n statusCode = target.status;\n } else if (response) {\n statusCode = response.status;\n }\n\n context.http.status_code = statusCode;\n return context;\n}\n\nfunction getNavigationContext(data) {\n var url = data.url;\n var parsedUrl = new Url(url);\n var destination = getDestination(parsedUrl);\n return {\n destination: destination\n };\n}\n\nexport function getPageContext() {\n return {\n page: {\n referer: document.referrer,\n url: location.href\n }\n };\n}\nexport function addSpanContext(span, data) {\n if (!data) {\n return;\n }\n\n var type = span.type;\n var context;\n\n switch (type) {\n case EXTERNAL:\n context = getExternalContext(data);\n break;\n\n case RESOURCE:\n context = getResourceContext(data);\n break;\n\n case HARD_NAVIGATION:\n context = getNavigationContext(data);\n break;\n }\n\n span.addContext(context);\n}\nexport function addTransactionContext(transaction, _temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n tags = _ref.tags,\n configContext = _objectWithoutPropertiesLoose(_ref, _excluded);\n\n var pageContext = getPageContext();\n var responseContext = {};\n\n if (transaction.type === PAGE_LOAD && isPerfTimelineSupported()) {\n var entries = PERF.getEntriesByType(NAVIGATION);\n\n if (entries && entries.length > 0) {\n responseContext = {\n response: getResponseContext(entries[0])\n };\n }\n }\n\n transaction.addContext(pageContext, responseContext, configContext);\n}","import { KEYWORD_LIMIT } from './constants';\nvar METADATA_MODEL = {\n service: {\n name: [KEYWORD_LIMIT, true],\n version: true,\n agent: {\n version: [KEYWORD_LIMIT, true]\n },\n environment: true\n },\n labels: {\n '*': true\n }\n};\nvar RESPONSE_MODEL = {\n '*': true,\n headers: {\n '*': true\n }\n};\nvar DESTINATION_MODEL = {\n address: [KEYWORD_LIMIT],\n service: {\n '*': [KEYWORD_LIMIT, true]\n }\n};\nvar CONTEXT_MODEL = {\n user: {\n id: true,\n email: true,\n username: true\n },\n tags: {\n '*': true\n },\n http: {\n response: RESPONSE_MODEL\n },\n destination: DESTINATION_MODEL,\n response: RESPONSE_MODEL\n};\nvar SPAN_MODEL = {\n name: [KEYWORD_LIMIT, true],\n type: [KEYWORD_LIMIT, true],\n id: [KEYWORD_LIMIT, true],\n trace_id: [KEYWORD_LIMIT, true],\n parent_id: [KEYWORD_LIMIT, true],\n transaction_id: [KEYWORD_LIMIT, true],\n subtype: true,\n action: true,\n context: CONTEXT_MODEL\n};\nvar TRANSACTION_MODEL = {\n name: true,\n parent_id: true,\n type: [KEYWORD_LIMIT, true],\n id: [KEYWORD_LIMIT, true],\n trace_id: [KEYWORD_LIMIT, true],\n span_count: {\n started: [KEYWORD_LIMIT, true]\n },\n context: CONTEXT_MODEL\n};\nvar ERROR_MODEL = {\n id: [KEYWORD_LIMIT, true],\n trace_id: true,\n transaction_id: true,\n parent_id: true,\n culprit: true,\n exception: {\n type: true\n },\n transaction: {\n type: true\n },\n context: CONTEXT_MODEL\n};\n\nfunction truncate(value, limit, required, placeholder) {\n if (limit === void 0) {\n limit = KEYWORD_LIMIT;\n }\n\n if (required === void 0) {\n required = false;\n }\n\n if (placeholder === void 0) {\n placeholder = 'N/A';\n }\n\n if (required && isEmpty(value)) {\n value = placeholder;\n }\n\n if (typeof value === 'string') {\n return value.substring(0, limit);\n }\n\n return value;\n}\n\nfunction isEmpty(value) {\n return value == null || value === '' || typeof value === 'undefined';\n}\n\nfunction replaceValue(target, key, currModel) {\n var value = truncate(target[key], currModel[0], currModel[1]);\n\n if (isEmpty(value)) {\n delete target[key];\n return;\n }\n\n target[key] = value;\n}\n\nfunction truncateModel(model, target, childTarget) {\n if (model === void 0) {\n model = {};\n }\n\n if (childTarget === void 0) {\n childTarget = target;\n }\n\n var keys = Object.keys(model);\n var emptyArr = [];\n\n var _loop = function _loop(i) {\n var currKey = keys[i];\n var currModel = model[currKey] === true ? emptyArr : model[currKey];\n\n if (!Array.isArray(currModel)) {\n truncateModel(currModel, target, childTarget[currKey]);\n } else {\n if (currKey === '*') {\n Object.keys(childTarget).forEach(function (key) {\n return replaceValue(childTarget, key, currModel);\n });\n } else {\n replaceValue(childTarget, currKey, currModel);\n }\n }\n };\n\n for (var i = 0; i < keys.length; i++) {\n _loop(i);\n }\n\n return target;\n}\n\nexport { truncate, truncateModel, SPAN_MODEL, TRANSACTION_MODEL, ERROR_MODEL, METADATA_MODEL, RESPONSE_MODEL };","var _excluded = [\"tags\"];\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\nimport { createStackTraces, filterInvalidFrames } from './stack-trace';\nimport { generateRandomId, merge, extend } from '../common/utils';\nimport { getPageContext } from '../common/context';\nimport { truncateModel, ERROR_MODEL } from '../common/truncate';\nimport stackParser from 'error-stack-parser';\nvar IGNORE_KEYS = ['stack', 'message'];\n\nfunction getErrorProperties(error) {\n var propertyFound = false;\n var properties = {};\n Object.keys(error).forEach(function (key) {\n if (IGNORE_KEYS.indexOf(key) >= 0) {\n return;\n }\n\n var val = error[key];\n\n if (val == null || typeof val === 'function') {\n return;\n }\n\n if (typeof val === 'object') {\n if (typeof val.toISOString !== 'function') return;\n val = val.toISOString();\n }\n\n properties[key] = val;\n propertyFound = true;\n });\n\n if (propertyFound) {\n return properties;\n }\n}\n\nvar ErrorLogging = function () {\n function ErrorLogging(apmServer, configService, transactionService) {\n this._apmServer = apmServer;\n this._configService = configService;\n this._transactionService = transactionService;\n }\n\n var _proto = ErrorLogging.prototype;\n\n _proto.createErrorDataModel = function createErrorDataModel(errorEvent) {\n var frames = createStackTraces(stackParser, errorEvent);\n var filteredFrames = filterInvalidFrames(frames);\n var culprit = '(inline script)';\n var lastFrame = filteredFrames[filteredFrames.length - 1];\n\n if (lastFrame && lastFrame.filename) {\n culprit = lastFrame.filename;\n }\n\n var message = errorEvent.message,\n error = errorEvent.error;\n var errorMessage = message;\n var errorType = '';\n var errorContext = {};\n\n if (error && typeof error === 'object') {\n errorMessage = errorMessage || error.message;\n errorType = error.name;\n var customProperties = getErrorProperties(error);\n\n if (customProperties) {\n errorContext.custom = customProperties;\n }\n }\n\n if (!errorType) {\n if (errorMessage && errorMessage.indexOf(':') > -1) {\n errorType = errorMessage.split(':')[0];\n }\n }\n\n var currentTransaction = this._transactionService.getCurrentTransaction();\n\n var transactionContext = currentTransaction ? currentTransaction.context : {};\n\n var _this$_configService$ = this._configService.get('context'),\n tags = _this$_configService$.tags,\n configContext = _objectWithoutPropertiesLoose(_this$_configService$, _excluded);\n\n var pageContext = getPageContext();\n var context = merge({}, pageContext, transactionContext, configContext, errorContext);\n var errorObject = {\n id: generateRandomId(),\n culprit: culprit,\n exception: {\n message: errorMessage,\n stacktrace: filteredFrames,\n type: errorType\n },\n context: context\n };\n\n if (currentTransaction) {\n errorObject = extend(errorObject, {\n trace_id: currentTransaction.traceId,\n parent_id: currentTransaction.id,\n transaction_id: currentTransaction.id,\n transaction: {\n type: currentTransaction.type,\n sampled: currentTransaction.sampled\n }\n });\n }\n\n return truncateModel(ERROR_MODEL, errorObject);\n };\n\n _proto.logErrorEvent = function logErrorEvent(errorEvent) {\n if (typeof errorEvent === 'undefined') {\n return;\n }\n\n var errorObject = this.createErrorDataModel(errorEvent);\n\n if (typeof errorObject.exception.message === 'undefined') {\n return;\n }\n\n this._apmServer.addError(errorObject);\n };\n\n _proto.registerListeners = function registerListeners() {\n var _this = this;\n\n window.addEventListener('error', function (errorEvent) {\n return _this.logErrorEvent(errorEvent);\n });\n window.addEventListener('unhandledrejection', function (promiseRejectionEvent) {\n return _this.logPromiseEvent(promiseRejectionEvent);\n });\n };\n\n _proto.logPromiseEvent = function logPromiseEvent(promiseRejectionEvent) {\n var prefix = 'Unhandled promise rejection: ';\n var reason = promiseRejectionEvent.reason;\n\n if (reason == null) {\n reason = '';\n }\n\n var errorEvent;\n\n if (typeof reason.message === 'string') {\n var name = reason.name ? reason.name + ': ' : '';\n errorEvent = {\n error: reason,\n message: prefix + name + reason.message\n };\n } else {\n reason = typeof reason === 'object' ? '' : typeof reason === 'function' ? '' : reason;\n errorEvent = {\n message: prefix + reason\n };\n }\n\n this.logErrorEvent(errorEvent);\n };\n\n _proto.logError = function logError(messageOrError) {\n var errorEvent = {};\n\n if (typeof messageOrError === 'string') {\n errorEvent.message = messageOrError;\n } else {\n errorEvent.error = messageOrError;\n }\n\n return this.logErrorEvent(errorEvent);\n };\n\n return ErrorLogging;\n}();\n\nexport default ErrorLogging;","function filePathToFileName(fileUrl) {\n var origin = window.location.origin || window.location.protocol + '//' + window.location.hostname + (window.location.port ? ':' + window.location.port : '');\n\n if (fileUrl.indexOf(origin) > -1) {\n fileUrl = fileUrl.replace(origin + '/', '');\n }\n\n return fileUrl;\n}\n\nfunction cleanFilePath(filePath) {\n if (filePath === void 0) {\n filePath = '';\n }\n\n if (filePath === '') {\n filePath = '';\n }\n\n return filePath;\n}\n\nfunction isFileInline(fileUrl) {\n if (fileUrl) {\n return window.location.href.indexOf(fileUrl) === 0;\n }\n\n return false;\n}\n\nfunction normalizeStackFrames(stackFrames) {\n return stackFrames.map(function (frame) {\n if (frame.functionName) {\n frame.functionName = normalizeFunctionName(frame.functionName);\n }\n\n return frame;\n });\n}\n\nfunction normalizeFunctionName(fnName) {\n var parts = fnName.split('/');\n\n if (parts.length > 1) {\n fnName = ['Object', parts[parts.length - 1]].join('.');\n } else {\n fnName = parts[0];\n }\n\n fnName = fnName.replace(/.<$/gi, '.');\n fnName = fnName.replace(/^Anonymous function$/, '');\n parts = fnName.split('.');\n\n if (parts.length > 1) {\n fnName = parts[parts.length - 1];\n } else {\n fnName = parts[0];\n }\n\n return fnName;\n}\n\nfunction isValidStackTrace(stackTraces) {\n if (stackTraces.length === 0) {\n return false;\n }\n\n if (stackTraces.length === 1) {\n var stackTrace = stackTraces[0];\n return 'lineNumber' in stackTrace;\n }\n\n return true;\n}\n\nexport function createStackTraces(stackParser, errorEvent) {\n var error = errorEvent.error,\n filename = errorEvent.filename,\n lineno = errorEvent.lineno,\n colno = errorEvent.colno;\n var stackTraces = [];\n\n if (error) {\n try {\n stackTraces = stackParser.parse(error);\n } catch (e) {}\n }\n\n if (!isValidStackTrace(stackTraces)) {\n stackTraces = [{\n fileName: filename,\n lineNumber: lineno,\n columnNumber: colno\n }];\n }\n\n var normalizedStackTraces = normalizeStackFrames(stackTraces);\n return normalizedStackTraces.map(function (stack) {\n var fileName = stack.fileName,\n lineNumber = stack.lineNumber,\n columnNumber = stack.columnNumber,\n _stack$functionName = stack.functionName,\n functionName = _stack$functionName === void 0 ? '' : _stack$functionName;\n\n if (!fileName && !lineNumber) {\n return {};\n }\n\n if (!columnNumber && !lineNumber) {\n return {};\n }\n\n var filePath = cleanFilePath(fileName);\n var cleanedFileName = filePathToFileName(filePath);\n\n if (isFileInline(filePath)) {\n cleanedFileName = '(inline script)';\n }\n\n return {\n abs_path: fileName,\n filename: cleanedFileName,\n function: functionName,\n lineno: lineNumber,\n colno: columnNumber\n };\n });\n}\nexport function filterInvalidFrames(frames) {\n return frames.filter(function (_ref) {\n var filename = _ref.filename,\n lineno = _ref.lineno;\n return typeof filename !== 'undefined' && typeof lineno !== 'undefined';\n });\n}","var Queue = function () {\n function Queue(onFlush, opts) {\n if (opts === void 0) {\n opts = {};\n }\n\n this.onFlush = onFlush;\n this.items = [];\n this.queueLimit = opts.queueLimit || -1;\n this.flushInterval = opts.flushInterval || 0;\n this.timeoutId = undefined;\n }\n\n var _proto = Queue.prototype;\n\n _proto._setTimer = function _setTimer() {\n var _this = this;\n\n this.timeoutId = setTimeout(function () {\n return _this.flush();\n }, this.flushInterval);\n };\n\n _proto._clear = function _clear() {\n if (typeof this.timeoutId !== 'undefined') {\n clearTimeout(this.timeoutId);\n this.timeoutId = undefined;\n }\n\n this.items = [];\n };\n\n _proto.flush = function flush() {\n this.onFlush(this.items);\n\n this._clear();\n };\n\n _proto.add = function add(item) {\n this.items.push(item);\n\n if (this.queueLimit !== -1 && this.items.length >= this.queueLimit) {\n this.flush();\n } else {\n if (typeof this.timeoutId === 'undefined') {\n this._setTimer();\n }\n }\n };\n\n return Queue;\n}();\n\nexport default Queue;","var NDJSON = function () {\n function NDJSON() {}\n\n NDJSON.stringify = function stringify(object) {\n return JSON.stringify(object) + '\\n';\n };\n\n return NDJSON;\n}();\n\nexport default NDJSON;","import { generateRandomId, setLabel, merge, getDuration, getTime } from '../common/utils';\nimport { NAME_UNKNOWN, TYPE_CUSTOM } from '../common/constants';\n\nvar SpanBase = function () {\n function SpanBase(name, type, options) {\n if (options === void 0) {\n options = {};\n }\n\n if (!name) {\n name = NAME_UNKNOWN;\n }\n\n if (!type) {\n type = TYPE_CUSTOM;\n }\n\n this.name = name;\n this.type = type;\n this.options = options;\n this.id = options.id || generateRandomId(16);\n this.traceId = options.traceId;\n this.sampled = options.sampled;\n this.sampleRate = options.sampleRate;\n this.timestamp = options.timestamp;\n this._start = getTime(options.startTime);\n this._end = undefined;\n this.ended = false;\n this.outcome = undefined;\n this.onEnd = options.onEnd;\n }\n\n var _proto = SpanBase.prototype;\n\n _proto.ensureContext = function ensureContext() {\n if (!this.context) {\n this.context = {};\n }\n };\n\n _proto.addLabels = function addLabels(tags) {\n this.ensureContext();\n var ctx = this.context;\n\n if (!ctx.tags) {\n ctx.tags = {};\n }\n\n var keys = Object.keys(tags);\n keys.forEach(function (k) {\n return setLabel(k, tags[k], ctx.tags);\n });\n };\n\n _proto.addContext = function addContext() {\n for (var _len = arguments.length, context = new Array(_len), _key = 0; _key < _len; _key++) {\n context[_key] = arguments[_key];\n }\n\n if (context.length === 0) return;\n this.ensureContext();\n merge.apply(void 0, [this.context].concat(context));\n };\n\n _proto.end = function end(endTime) {\n if (this.ended) {\n return;\n }\n\n this.ended = true;\n this._end = getTime(endTime);\n this.callOnEnd();\n };\n\n _proto.callOnEnd = function callOnEnd() {\n if (typeof this.onEnd === 'function') {\n this.onEnd(this);\n }\n };\n\n _proto.duration = function duration() {\n return getDuration(this._start, this._end);\n };\n\n return SpanBase;\n}();\n\nexport default SpanBase;","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport SpanBase from './span-base';\nimport { addSpanContext } from '../common/context';\n\nvar Span = function (_SpanBase) {\n _inheritsLoose(Span, _SpanBase);\n\n function Span(name, type, options) {\n var _this;\n\n _this = _SpanBase.call(this, name, type, options) || this;\n _this.parentId = _this.options.parentId;\n _this.subtype = undefined;\n _this.action = undefined;\n\n if (_this.type.indexOf('.') !== -1) {\n var fields = _this.type.split('.', 3);\n\n _this.type = fields[0];\n _this.subtype = fields[1];\n _this.action = fields[2];\n }\n\n _this.sync = _this.options.sync;\n return _this;\n }\n\n var _proto = Span.prototype;\n\n _proto.end = function end(endTime, data) {\n _SpanBase.prototype.end.call(this, endTime);\n\n addSpanContext(this, data);\n };\n\n return Span;\n}(SpanBase);\n\nexport default Span;","import Span from './span';\nimport { RESOURCE_INITIATOR_TYPES, MAX_SPAN_DURATION, USER_TIMING_THRESHOLD, PAGE_LOAD, RESOURCE, MEASURE } from '../common/constants';\nimport { stripQueryStringFromUrl, PERF, isPerfTimelineSupported } from '../common/utils';\nimport { state } from '../state';\nvar eventPairs = [['domainLookupStart', 'domainLookupEnd', 'Domain lookup'], ['connectStart', 'connectEnd', 'Making a connection to the server'], ['requestStart', 'responseEnd', 'Requesting and receiving the document'], ['domLoading', 'domInteractive', 'Parsing the document, executing sync. scripts'], ['domContentLoadedEventStart', 'domContentLoadedEventEnd', 'Fire \"DOMContentLoaded\" event'], ['loadEventStart', 'loadEventEnd', 'Fire \"load\" event']];\n\nfunction shouldCreateSpan(start, end, trStart, trEnd, baseTime) {\n if (baseTime === void 0) {\n baseTime = 0;\n }\n\n return typeof start === 'number' && typeof end === 'number' && start >= baseTime && end > start && start - baseTime >= trStart && end - baseTime <= trEnd && end - start < MAX_SPAN_DURATION && start - baseTime < MAX_SPAN_DURATION && end - baseTime < MAX_SPAN_DURATION;\n}\n\nfunction createNavigationTimingSpans(timings, baseTime, trStart, trEnd) {\n var spans = [];\n\n for (var i = 0; i < eventPairs.length; i++) {\n var start = timings[eventPairs[i][0]];\n var end = timings[eventPairs[i][1]];\n\n if (!shouldCreateSpan(start, end, trStart, trEnd, baseTime)) {\n continue;\n }\n\n var span = new Span(eventPairs[i][2], 'hard-navigation.browser-timing');\n var data = null;\n\n if (eventPairs[i][0] === 'requestStart') {\n span.pageResponse = true;\n data = {\n url: location.origin\n };\n }\n\n span._start = start - baseTime;\n span.end(end - baseTime, data);\n spans.push(span);\n }\n\n return spans;\n}\n\nfunction createResourceTimingSpan(resourceTimingEntry) {\n var name = resourceTimingEntry.name,\n initiatorType = resourceTimingEntry.initiatorType,\n startTime = resourceTimingEntry.startTime,\n responseEnd = resourceTimingEntry.responseEnd;\n var kind = 'resource';\n\n if (initiatorType) {\n kind += '.' + initiatorType;\n }\n\n var spanName = stripQueryStringFromUrl(name);\n var span = new Span(spanName, kind);\n span._start = startTime;\n span.end(responseEnd, {\n url: name,\n entry: resourceTimingEntry\n });\n return span;\n}\n\nfunction isCapturedByPatching(resourceStartTime, requestPatchTime) {\n return requestPatchTime != null && resourceStartTime > requestPatchTime;\n}\n\nfunction isIntakeAPIEndpoint(url) {\n return /intake\\/v\\d+\\/rum\\/events/.test(url);\n}\n\nfunction createResourceTimingSpans(entries, requestPatchTime, trStart, trEnd) {\n var spans = [];\n\n for (var i = 0; i < entries.length; i++) {\n var _entries$i = entries[i],\n initiatorType = _entries$i.initiatorType,\n name = _entries$i.name,\n startTime = _entries$i.startTime,\n responseEnd = _entries$i.responseEnd;\n\n if (RESOURCE_INITIATOR_TYPES.indexOf(initiatorType) === -1 || name == null) {\n continue;\n }\n\n if ((initiatorType === 'xmlhttprequest' || initiatorType === 'fetch') && (isIntakeAPIEndpoint(name) || isCapturedByPatching(startTime, requestPatchTime))) {\n continue;\n }\n\n if (shouldCreateSpan(startTime, responseEnd, trStart, trEnd)) {\n spans.push(createResourceTimingSpan(entries[i]));\n }\n }\n\n return spans;\n}\n\nfunction createUserTimingSpans(entries, trStart, trEnd) {\n var userTimingSpans = [];\n\n for (var i = 0; i < entries.length; i++) {\n var _entries$i2 = entries[i],\n name = _entries$i2.name,\n startTime = _entries$i2.startTime,\n duration = _entries$i2.duration;\n var end = startTime + duration;\n\n if (duration <= USER_TIMING_THRESHOLD || !shouldCreateSpan(startTime, end, trStart, trEnd)) {\n continue;\n }\n\n var kind = 'app';\n var span = new Span(name, kind);\n span._start = startTime;\n span.end(end);\n userTimingSpans.push(span);\n }\n\n return userTimingSpans;\n}\n\nvar NAVIGATION_TIMING_MARKS = ['fetchStart', 'domainLookupStart', 'domainLookupEnd', 'connectStart', 'connectEnd', 'requestStart', 'responseStart', 'responseEnd', 'domLoading', 'domInteractive', 'domContentLoadedEventStart', 'domContentLoadedEventEnd', 'domComplete', 'loadEventStart', 'loadEventEnd'];\nvar COMPRESSED_NAV_TIMING_MARKS = ['fs', 'ls', 'le', 'cs', 'ce', 'qs', 'rs', 're', 'dl', 'di', 'ds', 'de', 'dc', 'es', 'ee'];\n\nfunction getNavigationTimingMarks(timing) {\n var fetchStart = timing.fetchStart,\n navigationStart = timing.navigationStart,\n responseStart = timing.responseStart,\n responseEnd = timing.responseEnd;\n\n if (fetchStart >= navigationStart && responseStart >= fetchStart && responseEnd >= responseStart) {\n var marks = {};\n NAVIGATION_TIMING_MARKS.forEach(function (timingKey) {\n var m = timing[timingKey];\n\n if (m && m >= fetchStart) {\n marks[timingKey] = parseInt(m - fetchStart);\n }\n });\n return marks;\n }\n\n return null;\n}\n\nfunction getPageLoadMarks(timing) {\n var marks = getNavigationTimingMarks(timing);\n\n if (marks == null) {\n return null;\n }\n\n return {\n navigationTiming: marks,\n agent: {\n timeToFirstByte: marks.responseStart,\n domInteractive: marks.domInteractive,\n domComplete: marks.domComplete\n }\n };\n}\n\nfunction captureNavigation(transaction) {\n if (!transaction.captureTimings) {\n return;\n }\n\n var trEnd = transaction._end;\n\n if (transaction.type === PAGE_LOAD) {\n if (transaction.marks && transaction.marks.custom) {\n var customMarks = transaction.marks.custom;\n Object.keys(customMarks).forEach(function (key) {\n customMarks[key] += transaction._start;\n });\n }\n\n var trStart = 0;\n transaction._start = trStart;\n var timings = PERF.timing;\n createNavigationTimingSpans(timings, timings.fetchStart, trStart, trEnd).forEach(function (span) {\n span.traceId = transaction.traceId;\n span.sampled = transaction.sampled;\n\n if (span.pageResponse && transaction.options.pageLoadSpanId) {\n span.id = transaction.options.pageLoadSpanId;\n }\n\n transaction.spans.push(span);\n });\n transaction.addMarks(getPageLoadMarks(timings));\n }\n\n if (isPerfTimelineSupported()) {\n var _trStart = transaction._start;\n var resourceEntries = PERF.getEntriesByType(RESOURCE);\n createResourceTimingSpans(resourceEntries, state.bootstrapTime, _trStart, trEnd).forEach(function (span) {\n return transaction.spans.push(span);\n });\n var userEntries = PERF.getEntriesByType(MEASURE);\n createUserTimingSpans(userEntries, _trStart, trEnd).forEach(function (span) {\n return transaction.spans.push(span);\n });\n }\n}\n\nexport { getPageLoadMarks, captureNavigation, createNavigationTimingSpans, createResourceTimingSpans, createUserTimingSpans, NAVIGATION_TIMING_MARKS, COMPRESSED_NAV_TIMING_MARKS };","import { Promise } from './polyfills';\nimport { NAVIGATION_TIMING_MARKS, COMPRESSED_NAV_TIMING_MARKS } from '../performance-monitoring/capture-navigation';\nimport { isBeaconInspectionEnabled } from './utils';\n\nfunction compressStackFrames(frames) {\n return frames.map(function (frame) {\n return {\n ap: frame.abs_path,\n f: frame.filename,\n fn: frame.function,\n li: frame.lineno,\n co: frame.colno\n };\n });\n}\n\nfunction compressResponse(response) {\n return {\n ts: response.transfer_size,\n ebs: response.encoded_body_size,\n dbs: response.decoded_body_size\n };\n}\n\nfunction compressHTTP(http) {\n var compressed = {};\n var method = http.method,\n status_code = http.status_code,\n url = http.url,\n response = http.response;\n compressed.url = url;\n\n if (method) {\n compressed.mt = method;\n }\n\n if (status_code) {\n compressed.sc = status_code;\n }\n\n if (response) {\n compressed.r = compressResponse(response);\n }\n\n return compressed;\n}\n\nfunction compressContext(context) {\n if (!context) {\n return null;\n }\n\n var compressed = {};\n var page = context.page,\n http = context.http,\n response = context.response,\n destination = context.destination,\n user = context.user,\n custom = context.custom;\n\n if (page) {\n compressed.p = {\n rf: page.referer,\n url: page.url\n };\n }\n\n if (http) {\n compressed.h = compressHTTP(http);\n }\n\n if (response) {\n compressed.r = compressResponse(response);\n }\n\n if (destination) {\n var service = destination.service;\n compressed.dt = {\n se: {\n n: service.name,\n t: service.type,\n rc: service.resource\n },\n ad: destination.address,\n po: destination.port\n };\n }\n\n if (user) {\n compressed.u = {\n id: user.id,\n un: user.username,\n em: user.email\n };\n }\n\n if (custom) {\n compressed.cu = custom;\n }\n\n return compressed;\n}\n\nfunction compressMarks(marks) {\n if (!marks) {\n return null;\n }\n\n var compressedNtMarks = compressNavigationTimingMarks(marks.navigationTiming);\n var compressed = {\n nt: compressedNtMarks,\n a: compressAgentMarks(compressedNtMarks, marks.agent)\n };\n return compressed;\n}\n\nfunction compressNavigationTimingMarks(ntMarks) {\n if (!ntMarks) {\n return null;\n }\n\n var compressed = {};\n COMPRESSED_NAV_TIMING_MARKS.forEach(function (mark, index) {\n var mapping = NAVIGATION_TIMING_MARKS[index];\n compressed[mark] = ntMarks[mapping];\n });\n return compressed;\n}\n\nfunction compressAgentMarks(compressedNtMarks, agentMarks) {\n var compressed = {};\n\n if (compressedNtMarks) {\n compressed = {\n fb: compressedNtMarks.rs,\n di: compressedNtMarks.di,\n dc: compressedNtMarks.dc\n };\n }\n\n if (agentMarks) {\n var fp = agentMarks.firstContentfulPaint;\n var lp = agentMarks.largestContentfulPaint;\n\n if (fp) {\n compressed.fp = fp;\n }\n\n if (lp) {\n compressed.lp = lp;\n }\n }\n\n if (Object.keys(compressed).length === 0) {\n return null;\n }\n\n return compressed;\n}\n\nexport function compressMetadata(metadata) {\n var service = metadata.service,\n labels = metadata.labels;\n var agent = service.agent,\n language = service.language;\n return {\n se: {\n n: service.name,\n ve: service.version,\n a: {\n n: agent.name,\n ve: agent.version\n },\n la: {\n n: language.name\n },\n en: service.environment\n },\n l: labels\n };\n}\nexport function compressTransaction(transaction) {\n var spans = transaction.spans.map(function (span) {\n var spanData = {\n id: span.id,\n n: span.name,\n t: span.type,\n s: span.start,\n d: span.duration,\n c: compressContext(span.context),\n o: span.outcome,\n sr: span.sample_rate\n };\n\n if (span.parent_id !== transaction.id) {\n spanData.pid = span.parent_id;\n }\n\n if (span.sync === true) {\n spanData.sy = true;\n }\n\n if (span.subtype) {\n spanData.su = span.subtype;\n }\n\n if (span.action) {\n spanData.ac = span.action;\n }\n\n return spanData;\n });\n var tr = {\n id: transaction.id,\n tid: transaction.trace_id,\n n: transaction.name,\n t: transaction.type,\n d: transaction.duration,\n c: compressContext(transaction.context),\n k: compressMarks(transaction.marks),\n me: compressMetricsets(transaction.breakdown),\n y: spans,\n yc: {\n sd: spans.length\n },\n sm: transaction.sampled,\n sr: transaction.sample_rate,\n o: transaction.outcome\n };\n\n if (transaction.experience) {\n var _transaction$experien = transaction.experience,\n cls = _transaction$experien.cls,\n fid = _transaction$experien.fid,\n tbt = _transaction$experien.tbt,\n longtask = _transaction$experien.longtask;\n tr.exp = {\n cls: cls,\n fid: fid,\n tbt: tbt,\n lt: longtask\n };\n }\n\n if (transaction.session) {\n var _transaction$session = transaction.session,\n id = _transaction$session.id,\n sequence = _transaction$session.sequence;\n tr.ses = {\n id: id,\n seq: sequence\n };\n }\n\n return tr;\n}\nexport function compressError(error) {\n var exception = error.exception;\n var compressed = {\n id: error.id,\n cl: error.culprit,\n ex: {\n mg: exception.message,\n st: compressStackFrames(exception.stacktrace),\n t: error.type\n },\n c: compressContext(error.context)\n };\n var transaction = error.transaction;\n\n if (transaction) {\n compressed.tid = error.trace_id;\n compressed.pid = error.parent_id;\n compressed.xid = error.transaction_id;\n compressed.x = {\n t: transaction.type,\n sm: transaction.sampled\n };\n }\n\n return compressed;\n}\nexport function compressMetricsets(breakdowns) {\n return breakdowns.map(function (_ref) {\n var span = _ref.span,\n samples = _ref.samples;\n var isSpan = span != null;\n\n if (isSpan) {\n return {\n y: {\n t: span.type\n },\n sa: {\n ysc: {\n v: samples['span.self_time.count'].value\n },\n yss: {\n v: samples['span.self_time.sum.us'].value\n }\n }\n };\n }\n\n return {\n sa: {\n xdc: {\n v: samples['transaction.duration.count'].value\n },\n xds: {\n v: samples['transaction.duration.sum.us'].value\n },\n xbc: {\n v: samples['transaction.breakdown.count'].value\n }\n }\n };\n });\n}\nexport function compressPayload(params, type) {\n if (type === void 0) {\n type = 'gzip';\n }\n\n var isCompressionStreamSupported = typeof CompressionStream === 'function';\n return new Promise(function (resolve) {\n if (!isCompressionStreamSupported) {\n return resolve(params);\n }\n\n if (isBeaconInspectionEnabled()) {\n return resolve(params);\n }\n\n var payload = params.payload,\n headers = params.headers,\n beforeSend = params.beforeSend;\n var payloadStream = new Blob([payload]).stream();\n var compressedStream = payloadStream.pipeThrough(new CompressionStream(type));\n return new Response(compressedStream).blob().then(function (payload) {\n headers['Content-Encoding'] = type;\n return resolve({\n payload: payload,\n headers: headers,\n beforeSend: beforeSend\n });\n });\n });\n}","import { XHR_IGNORE } from '../patching/patch-utils';\nimport { isResponseSuccessful } from './response-status';\nimport { Promise } from '../polyfills';\nexport function sendXHR(method, url, _ref) {\n var _ref$timeout = _ref.timeout,\n timeout = _ref$timeout === void 0 ? HTTP_REQUEST_TIMEOUT : _ref$timeout,\n payload = _ref.payload,\n headers = _ref.headers,\n beforeSend = _ref.beforeSend,\n sendCredentials = _ref.sendCredentials;\n return new Promise(function (resolve, reject) {\n var xhr = new window.XMLHttpRequest();\n xhr[XHR_IGNORE] = true;\n xhr.open(method, url, true);\n xhr.timeout = timeout;\n xhr.withCredentials = sendCredentials;\n\n if (headers) {\n for (var header in headers) {\n if (headers.hasOwnProperty(header)) {\n xhr.setRequestHeader(header, headers[header]);\n }\n }\n }\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n var status = xhr.status,\n responseText = xhr.responseText;\n\n if (isResponseSuccessful(status)) {\n resolve(xhr);\n } else {\n reject({\n url: url,\n status: status,\n responseText: responseText\n });\n }\n }\n };\n\n xhr.onerror = function () {\n var status = xhr.status,\n responseText = xhr.responseText;\n reject({\n url: url,\n status: status,\n responseText: responseText\n });\n };\n\n var canSend = true;\n\n if (typeof beforeSend === 'function') {\n canSend = beforeSend({\n url: url,\n method: method,\n headers: headers,\n payload: payload,\n xhr: xhr\n });\n }\n\n if (canSend) {\n xhr.send(payload);\n } else {\n reject({\n url: url,\n status: 0,\n responseText: 'Request rejected by user configuration.'\n });\n }\n });\n}","import Queue from './queue';\nimport throttle from './throttle';\nimport NDJSON from './ndjson';\nimport { truncateModel, METADATA_MODEL } from './truncate';\nimport { ERRORS, HTTP_REQUEST_TIMEOUT, QUEUE_FLUSH, TRANSACTIONS } from './constants';\nimport { noop } from './utils';\nimport { Promise } from './polyfills';\nimport { compressMetadata, compressTransaction, compressError, compressPayload } from './compress';\nimport { __DEV__ } from '../state';\nimport { sendFetchRequest, shouldUseFetchWithKeepAlive } from './http/fetch';\nimport { sendXHR } from './http/xhr';\nvar THROTTLE_INTERVAL = 60000;\n\nvar ApmServer = function () {\n function ApmServer(configService, loggingService) {\n this._configService = configService;\n this._loggingService = loggingService;\n this.queue = undefined;\n this.throttleEvents = noop;\n }\n\n var _proto = ApmServer.prototype;\n\n _proto.init = function init() {\n var _this = this;\n\n var queueLimit = this._configService.get('queueLimit');\n\n var flushInterval = this._configService.get('flushInterval');\n\n var limit = this._configService.get('eventsLimit');\n\n var onFlush = function onFlush(events) {\n var promise = _this.sendEvents(events);\n\n if (promise) {\n promise.catch(function (reason) {\n _this._loggingService.warn('Failed sending events!', _this._constructError(reason));\n });\n }\n };\n\n this.queue = new Queue(onFlush, {\n queueLimit: queueLimit,\n flushInterval: flushInterval\n });\n this.throttleEvents = throttle(this.queue.add.bind(this.queue), function () {\n return _this._loggingService.warn('Dropped events due to throttling!');\n }, {\n limit: limit,\n interval: THROTTLE_INTERVAL\n });\n\n this._configService.observeEvent(QUEUE_FLUSH, function () {\n _this.queue.flush();\n });\n };\n\n _proto._postJson = function _postJson(endPoint, payload) {\n var _this2 = this;\n\n var headers = {\n 'Content-Type': 'application/x-ndjson'\n };\n\n var apmRequest = this._configService.get('apmRequest');\n\n var params = {\n payload: payload,\n headers: headers,\n beforeSend: apmRequest\n };\n return compressPayload(params).catch(function (error) {\n if (__DEV__) {\n _this2._loggingService.debug('Compressing the payload using CompressionStream API failed', error.message);\n }\n\n return params;\n }).then(function (result) {\n return _this2._makeHttpRequest('POST', endPoint, result);\n }).then(function (_ref) {\n var responseText = _ref.responseText;\n return responseText;\n });\n };\n\n _proto._constructError = function _constructError(reason) {\n var url = reason.url,\n status = reason.status,\n responseText = reason.responseText;\n\n if (typeof status == 'undefined') {\n return reason;\n }\n\n var message = url + ' HTTP status: ' + status;\n\n if (__DEV__ && responseText) {\n try {\n var serverErrors = [];\n var response = JSON.parse(responseText);\n\n if (response.errors && response.errors.length > 0) {\n response.errors.forEach(function (err) {\n return serverErrors.push(err.message);\n });\n message += ' ' + serverErrors.join(',');\n }\n } catch (e) {\n this._loggingService.debug('Error parsing response from APM server', e);\n }\n }\n\n return new Error(message);\n };\n\n _proto._makeHttpRequest = function _makeHttpRequest(method, url, _temp) {\n var _ref2 = _temp === void 0 ? {} : _temp,\n _ref2$timeout = _ref2.timeout,\n timeout = _ref2$timeout === void 0 ? HTTP_REQUEST_TIMEOUT : _ref2$timeout,\n payload = _ref2.payload,\n headers = _ref2.headers,\n beforeSend = _ref2.beforeSend;\n\n var sendCredentials = this._configService.get('sendCredentials');\n\n if (!beforeSend && shouldUseFetchWithKeepAlive(method, payload)) {\n return sendFetchRequest(method, url, {\n keepalive: true,\n timeout: timeout,\n payload: payload,\n headers: headers,\n sendCredentials: sendCredentials\n }).catch(function (reason) {\n if (reason instanceof TypeError) {\n return sendXHR(method, url, {\n timeout: timeout,\n payload: payload,\n headers: headers,\n beforeSend: beforeSend,\n sendCredentials: sendCredentials\n });\n }\n\n throw reason;\n });\n }\n\n return sendXHR(method, url, {\n timeout: timeout,\n payload: payload,\n headers: headers,\n beforeSend: beforeSend,\n sendCredentials: sendCredentials\n });\n };\n\n _proto.fetchConfig = function fetchConfig(serviceName, environment) {\n var _this3 = this;\n\n var _this$getEndpoints = this.getEndpoints(),\n configEndpoint = _this$getEndpoints.configEndpoint;\n\n if (!serviceName) {\n return Promise.reject('serviceName is required for fetching central config.');\n }\n\n configEndpoint += \"?service.name=\" + serviceName;\n\n if (environment) {\n configEndpoint += \"&service.environment=\" + environment;\n }\n\n var localConfig = this._configService.getLocalConfig();\n\n if (localConfig) {\n configEndpoint += \"&ifnonematch=\" + localConfig.etag;\n }\n\n var apmRequest = this._configService.get('apmRequest');\n\n return this._makeHttpRequest('GET', configEndpoint, {\n timeout: 5000,\n beforeSend: apmRequest\n }).then(function (xhr) {\n var status = xhr.status,\n responseText = xhr.responseText;\n\n if (status === 304) {\n return localConfig;\n } else {\n var remoteConfig = JSON.parse(responseText);\n var etag = xhr.getResponseHeader('etag');\n\n if (etag) {\n remoteConfig.etag = etag.replace(/[\"]/g, '');\n\n _this3._configService.setLocalConfig(remoteConfig, true);\n }\n\n return remoteConfig;\n }\n }).catch(function (reason) {\n var error = _this3._constructError(reason);\n\n return Promise.reject(error);\n });\n };\n\n _proto.createMetaData = function createMetaData() {\n var cfg = this._configService;\n var metadata = {\n service: {\n name: cfg.get('serviceName'),\n version: cfg.get('serviceVersion'),\n agent: {\n name: 'rum-js',\n version: cfg.version\n },\n language: {\n name: 'javascript'\n },\n environment: cfg.get('environment')\n },\n labels: cfg.get('context.tags')\n };\n return truncateModel(METADATA_MODEL, metadata);\n };\n\n _proto.addError = function addError(error) {\n var _this$throttleEvents;\n\n this.throttleEvents((_this$throttleEvents = {}, _this$throttleEvents[ERRORS] = error, _this$throttleEvents));\n };\n\n _proto.addTransaction = function addTransaction(transaction) {\n var _this$throttleEvents2;\n\n this.throttleEvents((_this$throttleEvents2 = {}, _this$throttleEvents2[TRANSACTIONS] = transaction, _this$throttleEvents2));\n };\n\n _proto.ndjsonErrors = function ndjsonErrors(errors, compress) {\n var key = compress ? 'e' : 'error';\n return errors.map(function (error) {\n var _NDJSON$stringify;\n\n return NDJSON.stringify((_NDJSON$stringify = {}, _NDJSON$stringify[key] = compress ? compressError(error) : error, _NDJSON$stringify));\n });\n };\n\n _proto.ndjsonMetricsets = function ndjsonMetricsets(metricsets) {\n return metricsets.map(function (metricset) {\n return NDJSON.stringify({\n metricset: metricset\n });\n }).join('');\n };\n\n _proto.ndjsonTransactions = function ndjsonTransactions(transactions, compress) {\n var _this4 = this;\n\n var key = compress ? 'x' : 'transaction';\n return transactions.map(function (tr) {\n var _NDJSON$stringify2;\n\n var spans = '',\n breakdowns = '';\n\n if (!compress) {\n if (tr.spans) {\n spans = tr.spans.map(function (span) {\n return NDJSON.stringify({\n span: span\n });\n }).join('');\n delete tr.spans;\n }\n\n if (tr.breakdown) {\n breakdowns = _this4.ndjsonMetricsets(tr.breakdown);\n delete tr.breakdown;\n }\n }\n\n return NDJSON.stringify((_NDJSON$stringify2 = {}, _NDJSON$stringify2[key] = compress ? compressTransaction(tr) : tr, _NDJSON$stringify2)) + spans + breakdowns;\n });\n };\n\n _proto.sendEvents = function sendEvents(events) {\n var _payload, _NDJSON$stringify3;\n\n if (events.length === 0) {\n return;\n }\n\n var transactions = [];\n var errors = [];\n\n for (var i = 0; i < events.length; i++) {\n var event = events[i];\n\n if (event[TRANSACTIONS]) {\n transactions.push(event[TRANSACTIONS]);\n }\n\n if (event[ERRORS]) {\n errors.push(event[ERRORS]);\n }\n }\n\n if (transactions.length === 0 && errors.length === 0) {\n return;\n }\n\n var cfg = this._configService;\n var payload = (_payload = {}, _payload[TRANSACTIONS] = transactions, _payload[ERRORS] = errors, _payload);\n var filteredPayload = cfg.applyFilters(payload);\n\n if (!filteredPayload) {\n this._loggingService.warn('Dropped payload due to filtering!');\n\n return;\n }\n\n var apiVersion = cfg.get('apiVersion');\n var compress = apiVersion > 2;\n var ndjson = [];\n var metadata = this.createMetaData();\n var metadataKey = compress ? 'm' : 'metadata';\n ndjson.push(NDJSON.stringify((_NDJSON$stringify3 = {}, _NDJSON$stringify3[metadataKey] = compress ? compressMetadata(metadata) : metadata, _NDJSON$stringify3)));\n ndjson = ndjson.concat(this.ndjsonErrors(filteredPayload[ERRORS], compress), this.ndjsonTransactions(filteredPayload[TRANSACTIONS], compress));\n var ndjsonPayload = ndjson.join('');\n\n var _this$getEndpoints2 = this.getEndpoints(),\n intakeEndpoint = _this$getEndpoints2.intakeEndpoint;\n\n return this._postJson(intakeEndpoint, ndjsonPayload);\n };\n\n _proto.getEndpoints = function getEndpoints() {\n var serverUrl = this._configService.get('serverUrl');\n\n var apiVersion = this._configService.get('apiVersion');\n\n var serverUrlPrefix = this._configService.get('serverUrlPrefix') || \"/intake/v\" + apiVersion + \"/rum/events\";\n var intakeEndpoint = serverUrl + serverUrlPrefix;\n var configEndpoint = serverUrl + \"/config/v1/rum/agents\";\n return {\n intakeEndpoint: intakeEndpoint,\n configEndpoint: configEndpoint\n };\n };\n\n return ApmServer;\n}();\n\nexport default ApmServer;","export default function throttle(fn, onThrottle, opts) {\n var context = this;\n var limit = opts.limit;\n var interval = opts.interval;\n var counter = 0;\n var timeoutId;\n return function () {\n counter++;\n\n if (typeof timeoutId === 'undefined') {\n timeoutId = setTimeout(function () {\n counter = 0;\n timeoutId = undefined;\n }, interval);\n }\n\n if (counter > limit && typeof onThrottle === 'function') {\n return onThrottle.apply(context, arguments);\n } else {\n return fn.apply(context, arguments);\n }\n };\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getCurrentScript, setLabel, merge, extend, isUndefined } from './utils';\nimport EventHandler from './event-handler';\nimport { CONFIG_CHANGE, LOCAL_CONFIG_KEY } from './constants';\n\nfunction getConfigFromScript() {\n var script = getCurrentScript();\n var config = getDataAttributesFromNode(script);\n return config;\n}\n\nfunction getDataAttributesFromNode(node) {\n if (!node) {\n return {};\n }\n\n var dataAttrs = {};\n var dataRegex = /^data-([\\w-]+)$/;\n var attrs = node.attributes;\n\n for (var i = 0; i < attrs.length; i++) {\n var attr = attrs[i];\n\n if (dataRegex.test(attr.nodeName)) {\n var key = attr.nodeName.match(dataRegex)[1];\n var camelCasedkey = key.split('-').map(function (value, index) {\n return index > 0 ? value.charAt(0).toUpperCase() + value.substring(1) : value;\n }).join('');\n dataAttrs[camelCasedkey] = attr.value || attr.nodeValue;\n }\n }\n\n return dataAttrs;\n}\n\nvar Config = function () {\n function Config() {\n this.config = {\n serviceName: '',\n serviceVersion: '',\n environment: '',\n serverUrl: 'http://localhost:8200',\n serverUrlPrefix: '',\n active: true,\n instrument: true,\n disableInstrumentations: [],\n logLevel: 'warn',\n breakdownMetrics: false,\n ignoreTransactions: [],\n eventsLimit: 80,\n queueLimit: -1,\n flushInterval: 500,\n distributedTracing: true,\n distributedTracingOrigins: [],\n distributedTracingHeaderName: 'traceparent',\n pageLoadTraceId: '',\n pageLoadSpanId: '',\n pageLoadSampled: false,\n pageLoadTransactionName: '',\n propagateTracestate: false,\n transactionSampleRate: 1.0,\n centralConfig: false,\n monitorLongtasks: true,\n apiVersion: 2,\n context: {},\n session: false,\n apmRequest: null,\n sendCredentials: false\n };\n this.events = new EventHandler();\n this.filters = [];\n this.version = '';\n }\n\n var _proto = Config.prototype;\n\n _proto.init = function init() {\n var scriptData = getConfigFromScript();\n this.setConfig(scriptData);\n };\n\n _proto.setVersion = function setVersion(version) {\n this.version = version;\n };\n\n _proto.addFilter = function addFilter(cb) {\n if (typeof cb !== 'function') {\n throw new Error('Argument to must be function');\n }\n\n this.filters.push(cb);\n };\n\n _proto.applyFilters = function applyFilters(data) {\n for (var i = 0; i < this.filters.length; i++) {\n data = this.filters[i](data);\n\n if (!data) {\n return;\n }\n }\n\n return data;\n };\n\n _proto.get = function get(key) {\n return key.split('.').reduce(function (obj, objKey) {\n return obj && obj[objKey];\n }, this.config);\n };\n\n _proto.setUserContext = function setUserContext(userContext) {\n if (userContext === void 0) {\n userContext = {};\n }\n\n var context = {};\n var _userContext = userContext,\n id = _userContext.id,\n username = _userContext.username,\n email = _userContext.email;\n\n if (typeof id === 'number' || typeof id === 'string') {\n context.id = id;\n }\n\n if (typeof username === 'string') {\n context.username = username;\n }\n\n if (typeof email === 'string') {\n context.email = email;\n }\n\n this.config.context.user = extend(this.config.context.user || {}, context);\n };\n\n _proto.setCustomContext = function setCustomContext(customContext) {\n if (customContext === void 0) {\n customContext = {};\n }\n\n this.config.context.custom = extend(this.config.context.custom || {}, customContext);\n };\n\n _proto.addLabels = function addLabels(tags) {\n var _this = this;\n\n if (!this.config.context.tags) {\n this.config.context.tags = {};\n }\n\n var keys = Object.keys(tags);\n keys.forEach(function (k) {\n return setLabel(k, tags[k], _this.config.context.tags);\n });\n };\n\n _proto.setConfig = function setConfig(properties) {\n if (properties === void 0) {\n properties = {};\n }\n\n var _properties = properties,\n transactionSampleRate = _properties.transactionSampleRate,\n serverUrl = _properties.serverUrl;\n\n if (serverUrl) {\n properties.serverUrl = serverUrl.replace(/\\/+$/, '');\n }\n\n if (!isUndefined(transactionSampleRate)) {\n if (transactionSampleRate < 0.0001 && transactionSampleRate > 0) {\n transactionSampleRate = 0.0001;\n }\n\n properties.transactionSampleRate = Math.round(transactionSampleRate * 10000) / 10000;\n }\n\n merge(this.config, properties);\n this.events.send(CONFIG_CHANGE, [this.config]);\n };\n\n _proto.validate = function validate(properties) {\n if (properties === void 0) {\n properties = {};\n }\n\n var requiredKeys = ['serviceName', 'serverUrl'];\n var allKeys = Object.keys(this.config);\n var errors = {\n missing: [],\n invalid: [],\n unknown: []\n };\n Object.keys(properties).forEach(function (key) {\n if (requiredKeys.indexOf(key) !== -1 && !properties[key]) {\n errors.missing.push(key);\n }\n\n if (allKeys.indexOf(key) === -1) {\n errors.unknown.push(key);\n }\n });\n\n if (properties.serviceName && !/^[a-zA-Z0-9 _-]+$/.test(properties.serviceName)) {\n errors.invalid.push({\n key: 'serviceName',\n value: properties.serviceName,\n allowed: 'a-z, A-Z, 0-9, _, -, '\n });\n }\n\n var sampleRate = properties.transactionSampleRate;\n\n if (typeof sampleRate !== 'undefined' && (typeof sampleRate !== 'number' || isNaN(sampleRate) || sampleRate < 0 || sampleRate > 1)) {\n errors.invalid.push({\n key: 'transactionSampleRate',\n value: sampleRate,\n allowed: 'Number between 0 and 1'\n });\n }\n\n return errors;\n };\n\n _proto.getLocalConfig = function getLocalConfig() {\n var storage = sessionStorage;\n\n if (this.config.session) {\n storage = localStorage;\n }\n\n var config = storage.getItem(LOCAL_CONFIG_KEY);\n\n if (config) {\n return JSON.parse(config);\n }\n };\n\n _proto.setLocalConfig = function setLocalConfig(config, merge) {\n if (config) {\n if (merge) {\n var prevConfig = this.getLocalConfig();\n config = _extends({}, prevConfig, config);\n }\n\n var storage = sessionStorage;\n\n if (this.config.session) {\n storage = localStorage;\n }\n\n storage.setItem(LOCAL_CONFIG_KEY, JSON.stringify(config));\n }\n };\n\n _proto.dispatchEvent = function dispatchEvent(name, args) {\n this.events.send(name, args);\n };\n\n _proto.observeEvent = function observeEvent(name, fn) {\n return this.events.observe(name, fn);\n };\n\n return Config;\n}();\n\nexport default Config;","import { noop } from './utils';\n\nvar LoggingService = function () {\n function LoggingService(spec) {\n if (spec === void 0) {\n spec = {};\n }\n\n this.levels = ['trace', 'debug', 'info', 'warn', 'error'];\n this.level = spec.level || 'warn';\n this.prefix = spec.prefix || '';\n this.resetLogMethods();\n }\n\n var _proto = LoggingService.prototype;\n\n _proto.shouldLog = function shouldLog(level) {\n return this.levels.indexOf(level) >= this.levels.indexOf(this.level);\n };\n\n _proto.setLevel = function setLevel(level) {\n if (level === this.level) {\n return;\n }\n\n this.level = level;\n this.resetLogMethods();\n };\n\n _proto.resetLogMethods = function resetLogMethods() {\n var _this = this;\n\n this.levels.forEach(function (level) {\n _this[level] = _this.shouldLog(level) ? log : noop;\n\n function log() {\n var normalizedLevel = level;\n\n if (level === 'trace' || level === 'debug') {\n normalizedLevel = 'info';\n }\n\n var args = arguments;\n args[0] = this.prefix + args[0];\n\n if (console) {\n var realMethod = console[normalizedLevel] || console.log;\n\n if (typeof realMethod === 'function') {\n realMethod.apply(console, args);\n }\n }\n }\n });\n };\n\n return LoggingService;\n}();\n\nexport default LoggingService;","var _serviceCreators;\n\nimport ApmServer from './apm-server';\nimport ConfigService from './config-service';\nimport LoggingService from './logging-service';\nimport { CONFIG_CHANGE, CONFIG_SERVICE, LOGGING_SERVICE, APM_SERVER } from './constants';\nimport { __DEV__ } from '../state';\nvar serviceCreators = (_serviceCreators = {}, _serviceCreators[CONFIG_SERVICE] = function () {\n return new ConfigService();\n}, _serviceCreators[LOGGING_SERVICE] = function () {\n return new LoggingService({\n prefix: '[Elastic APM] '\n });\n}, _serviceCreators[APM_SERVER] = function (factory) {\n var _factory$getService = factory.getService([CONFIG_SERVICE, LOGGING_SERVICE]),\n configService = _factory$getService[0],\n loggingService = _factory$getService[1];\n\n return new ApmServer(configService, loggingService);\n}, _serviceCreators);\n\nvar ServiceFactory = function () {\n function ServiceFactory() {\n this.instances = {};\n this.initialized = false;\n }\n\n var _proto = ServiceFactory.prototype;\n\n _proto.init = function init() {\n if (this.initialized) {\n return;\n }\n\n this.initialized = true;\n var configService = this.getService(CONFIG_SERVICE);\n configService.init();\n\n var _this$getService = this.getService([LOGGING_SERVICE, APM_SERVER]),\n loggingService = _this$getService[0],\n apmServer = _this$getService[1];\n\n configService.events.observe(CONFIG_CHANGE, function () {\n var logLevel = configService.get('logLevel');\n loggingService.setLevel(logLevel);\n });\n apmServer.init();\n };\n\n _proto.getService = function getService(name) {\n var _this = this;\n\n if (typeof name === 'string') {\n if (!this.instances[name]) {\n if (typeof serviceCreators[name] === 'function') {\n this.instances[name] = serviceCreators[name](this);\n } else if (__DEV__) {\n console.log('Cannot get service, No creator for: ' + name);\n }\n }\n\n return this.instances[name];\n } else if (Array.isArray(name)) {\n return name.map(function (n) {\n return _this.getService(n);\n });\n }\n };\n\n return ServiceFactory;\n}();\n\nexport { serviceCreators, ServiceFactory };","import { checkSameOrigin, isDtHeaderValid, parseDtHeaderValue, getDtHeaderValue, getTSHeaderValue, stripQueryStringFromUrl, setRequestHeader } from '../common/utils';\nimport { Url } from '../common/url';\nimport { patchEventHandler } from '../common/patching';\nimport { globalState } from '../common/patching/patch-utils';\nimport { SCHEDULE, INVOKE, TRANSACTION_END, AFTER_EVENT, FETCH, HISTORY, XMLHTTPREQUEST, HTTP_REQUEST_TYPE, OUTCOME_FAILURE, OUTCOME_SUCCESS, OUTCOME_UNKNOWN, QUEUE_ADD_TRANSACTION } from '../common/constants';\nimport { truncateModel, SPAN_MODEL, TRANSACTION_MODEL } from '../common/truncate';\nimport { __DEV__ } from '../state';\nvar SIMILAR_SPAN_TO_TRANSACTION_RATIO = 0.05;\nvar TRANSACTION_DURATION_THRESHOLD = 60000;\nexport function groupSmallContinuouslySimilarSpans(originalSpans, transDuration, threshold) {\n originalSpans.sort(function (spanA, spanB) {\n return spanA._start - spanB._start;\n });\n var spans = [];\n var lastCount = 1;\n originalSpans.forEach(function (span, index) {\n if (spans.length === 0) {\n spans.push(span);\n } else {\n var lastSpan = spans[spans.length - 1];\n var isContinuouslySimilar = lastSpan.type === span.type && lastSpan.subtype === span.subtype && lastSpan.action === span.action && lastSpan.name === span.name && span.duration() / transDuration < threshold && (span._start - lastSpan._end) / transDuration < threshold;\n var isLastSpan = originalSpans.length === index + 1;\n\n if (isContinuouslySimilar) {\n lastCount++;\n lastSpan._end = span._end;\n }\n\n if (lastCount > 1 && (!isContinuouslySimilar || isLastSpan)) {\n lastSpan.name = lastCount + 'x ' + lastSpan.name;\n lastCount = 1;\n }\n\n if (!isContinuouslySimilar) {\n spans.push(span);\n }\n }\n });\n return spans;\n}\nexport function adjustTransaction(transaction) {\n if (transaction.sampled) {\n var filterdSpans = transaction.spans.filter(function (span) {\n return span.duration() > 0 && span._start >= transaction._start && span._end <= transaction._end;\n });\n\n if (transaction.isManaged()) {\n var duration = transaction.duration();\n var similarSpans = groupSmallContinuouslySimilarSpans(filterdSpans, duration, SIMILAR_SPAN_TO_TRANSACTION_RATIO);\n transaction.spans = similarSpans;\n } else {\n transaction.spans = filterdSpans;\n }\n } else {\n transaction.resetFields();\n }\n\n return transaction;\n}\n\nvar PerformanceMonitoring = function () {\n function PerformanceMonitoring(apmServer, configService, loggingService, transactionService) {\n this._apmServer = apmServer;\n this._configService = configService;\n this._logginService = loggingService;\n this._transactionService = transactionService;\n }\n\n var _proto = PerformanceMonitoring.prototype;\n\n _proto.init = function init(flags) {\n var _this = this;\n\n if (flags === void 0) {\n flags = {};\n }\n\n this._configService.events.observe(TRANSACTION_END + AFTER_EVENT, function (tr) {\n var payload = _this.createTransactionPayload(tr);\n\n if (payload) {\n _this._apmServer.addTransaction(payload);\n\n _this._configService.dispatchEvent(QUEUE_ADD_TRANSACTION);\n }\n });\n\n if (flags[HISTORY]) {\n patchEventHandler.observe(HISTORY, this.getHistorySub());\n }\n\n if (flags[XMLHTTPREQUEST]) {\n patchEventHandler.observe(XMLHTTPREQUEST, this.getXHRSub());\n }\n\n if (flags[FETCH]) {\n patchEventHandler.observe(FETCH, this.getFetchSub());\n }\n };\n\n _proto.getHistorySub = function getHistorySub() {\n var transactionService = this._transactionService;\n return function (event, task) {\n if (task.source === HISTORY && event === INVOKE) {\n transactionService.startTransaction(task.data.title, 'route-change', {\n managed: true,\n canReuse: true\n });\n }\n };\n };\n\n _proto.getXHRSub = function getXHRSub() {\n var _this2 = this;\n\n return function (event, task) {\n if (task.source === XMLHTTPREQUEST && !globalState.fetchInProgress) {\n _this2.processAPICalls(event, task);\n }\n };\n };\n\n _proto.getFetchSub = function getFetchSub() {\n var _this3 = this;\n\n return function (event, task) {\n if (task.source === FETCH) {\n _this3.processAPICalls(event, task);\n }\n };\n };\n\n _proto.processAPICalls = function processAPICalls(event, task) {\n var configService = this._configService;\n var transactionService = this._transactionService;\n\n if (task.data && task.data.url) {\n var endpoints = this._apmServer.getEndpoints();\n\n var isOwnEndpoint = Object.keys(endpoints).some(function (endpoint) {\n return task.data.url.indexOf(endpoints[endpoint]) !== -1;\n });\n\n if (isOwnEndpoint) {\n return;\n }\n }\n\n if (event === SCHEDULE && task.data) {\n var data = task.data;\n var requestUrl = new Url(data.url);\n var spanName = data.method + ' ' + (requestUrl.relative ? requestUrl.path : stripQueryStringFromUrl(requestUrl.href));\n\n if (!transactionService.getCurrentTransaction()) {\n transactionService.startTransaction(spanName, HTTP_REQUEST_TYPE, {\n managed: true\n });\n }\n\n var span = transactionService.startSpan(spanName, 'external.http', {\n blocking: true\n });\n\n if (!span) {\n return;\n }\n\n var isDtEnabled = configService.get('distributedTracing');\n var dtOrigins = configService.get('distributedTracingOrigins');\n var currentUrl = new Url(window.location.href);\n var isSameOrigin = checkSameOrigin(requestUrl.origin, currentUrl.origin) || checkSameOrigin(requestUrl.origin, dtOrigins);\n var target = data.target;\n\n if (isDtEnabled && isSameOrigin && target) {\n this.injectDtHeader(span, target);\n var propagateTracestate = configService.get('propagateTracestate');\n\n if (propagateTracestate) {\n this.injectTSHeader(span, target);\n }\n } else if (__DEV__) {\n this._logginService.debug(\"Could not inject distributed tracing header to the request origin ('\" + requestUrl.origin + \"') from the current origin ('\" + currentUrl.origin + \"')\");\n }\n\n if (data.sync) {\n span.sync = data.sync;\n }\n\n data.span = span;\n } else if (event === INVOKE) {\n var _data = task.data;\n\n if (_data && _data.span) {\n var _span = _data.span,\n response = _data.response,\n _target = _data.target;\n var status;\n\n if (response) {\n status = response.status;\n } else {\n status = _target.status;\n }\n\n var outcome;\n\n if (_data.status != 'abort' && !_data.aborted) {\n if (status >= 400 || status == 0) {\n outcome = OUTCOME_FAILURE;\n } else {\n outcome = OUTCOME_SUCCESS;\n }\n } else {\n outcome = OUTCOME_UNKNOWN;\n }\n\n _span.outcome = outcome;\n var tr = transactionService.getCurrentTransaction();\n\n if (tr && tr.type === HTTP_REQUEST_TYPE) {\n tr.outcome = outcome;\n }\n\n transactionService.endSpan(_span, _data);\n }\n }\n };\n\n _proto.injectDtHeader = function injectDtHeader(span, target) {\n var headerName = this._configService.get('distributedTracingHeaderName');\n\n var headerValue = getDtHeaderValue(span);\n var isHeaderValid = isDtHeaderValid(headerValue);\n\n if (isHeaderValid && headerValue && headerName) {\n setRequestHeader(target, headerName, headerValue);\n }\n };\n\n _proto.injectTSHeader = function injectTSHeader(span, target) {\n var headerValue = getTSHeaderValue(span);\n\n if (headerValue) {\n setRequestHeader(target, 'tracestate', headerValue);\n }\n };\n\n _proto.extractDtHeader = function extractDtHeader(target) {\n var configService = this._configService;\n var headerName = configService.get('distributedTracingHeaderName');\n\n if (target) {\n return parseDtHeaderValue(target[headerName]);\n }\n };\n\n _proto.filterTransaction = function filterTransaction(tr) {\n var duration = tr.duration();\n\n if (!duration) {\n if (__DEV__) {\n var message = \"transaction(\" + tr.id + \", \" + tr.name + \") was discarded! \";\n\n if (duration === 0) {\n message += \"Transaction duration is 0\";\n } else {\n message += \"Transaction wasn't ended\";\n }\n\n this._logginService.debug(message);\n }\n\n return false;\n }\n\n if (tr.isManaged()) {\n if (duration > TRANSACTION_DURATION_THRESHOLD) {\n if (__DEV__) {\n this._logginService.debug(\"transaction(\" + tr.id + \", \" + tr.name + \") was discarded! Transaction duration (\" + duration + \") is greater than managed transaction threshold (\" + TRANSACTION_DURATION_THRESHOLD + \")\");\n }\n\n return false;\n }\n\n if (tr.sampled && tr.spans.length === 0) {\n if (__DEV__) {\n this._logginService.debug(\"transaction(\" + tr.id + \", \" + tr.name + \") was discarded! Transaction does not have any spans\");\n }\n\n return false;\n }\n }\n\n return true;\n };\n\n _proto.createTransactionDataModel = function createTransactionDataModel(transaction) {\n var transactionStart = transaction._start;\n var spans = transaction.spans.map(function (span) {\n var spanData = {\n id: span.id,\n transaction_id: transaction.id,\n parent_id: span.parentId || transaction.id,\n trace_id: transaction.traceId,\n name: span.name,\n type: span.type,\n subtype: span.subtype,\n action: span.action,\n sync: span.sync,\n start: parseInt(span._start - transactionStart),\n duration: span.duration(),\n context: span.context,\n outcome: span.outcome,\n sample_rate: span.sampleRate\n };\n return truncateModel(SPAN_MODEL, spanData);\n });\n var transactionData = {\n id: transaction.id,\n trace_id: transaction.traceId,\n session: transaction.session,\n name: transaction.name,\n type: transaction.type,\n duration: transaction.duration(),\n spans: spans,\n context: transaction.context,\n marks: transaction.marks,\n breakdown: transaction.breakdownTimings,\n span_count: {\n started: spans.length\n },\n sampled: transaction.sampled,\n sample_rate: transaction.sampleRate,\n experience: transaction.experience,\n outcome: transaction.outcome\n };\n return truncateModel(TRANSACTION_MODEL, transactionData);\n };\n\n _proto.createTransactionPayload = function createTransactionPayload(transaction) {\n var adjustedTransaction = adjustTransaction(transaction);\n var filtered = this.filterTransaction(adjustedTransaction);\n\n if (filtered) {\n return this.createTransactionDataModel(transaction);\n }\n };\n\n return PerformanceMonitoring;\n}();\n\nexport { PerformanceMonitoring as default };","import { getDuration, PERF } from '../common/utils';\nimport { PAGE_LOAD, TRUNCATED_TYPE } from '../common/constants';\nvar pageLoadBreakdowns = [['domainLookupStart', 'domainLookupEnd', 'DNS'], ['connectStart', 'connectEnd', 'TCP'], ['requestStart', 'responseStart', 'Request'], ['responseStart', 'responseEnd', 'Response'], ['domLoading', 'domComplete', 'Processing'], ['loadEventStart', 'loadEventEnd', 'Load']];\n\nfunction getValue(value) {\n return {\n value: value\n };\n}\n\nfunction calculateSelfTime(transaction) {\n var spans = transaction.spans,\n _start = transaction._start,\n _end = transaction._end;\n\n if (spans.length === 0) {\n return transaction.duration();\n }\n\n spans.sort(function (span1, span2) {\n return span1._start - span2._start;\n });\n var span = spans[0];\n var spanEnd = span._end;\n var spanStart = span._start;\n var lastContinuousEnd = spanEnd;\n var selfTime = spanStart - _start;\n\n for (var i = 1; i < spans.length; i++) {\n span = spans[i];\n spanStart = span._start;\n spanEnd = span._end;\n\n if (spanStart > lastContinuousEnd) {\n selfTime += spanStart - lastContinuousEnd;\n lastContinuousEnd = spanEnd;\n } else if (spanEnd > lastContinuousEnd) {\n lastContinuousEnd = spanEnd;\n }\n }\n\n if (lastContinuousEnd < _end) {\n selfTime += _end - lastContinuousEnd;\n }\n\n return selfTime;\n}\n\nfunction groupSpans(transaction) {\n var spanMap = {};\n var transactionSelfTime = calculateSelfTime(transaction);\n spanMap['app'] = {\n count: 1,\n duration: transactionSelfTime\n };\n var spans = transaction.spans;\n\n for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n var duration = span.duration();\n\n if (duration === 0 || duration == null) {\n continue;\n }\n\n var type = span.type,\n subtype = span.subtype;\n var key = type.replace(TRUNCATED_TYPE, '');\n\n if (subtype) {\n key += '.' + subtype;\n }\n\n if (!spanMap[key]) {\n spanMap[key] = {\n duration: 0,\n count: 0\n };\n }\n\n spanMap[key].count++;\n spanMap[key].duration += duration;\n }\n\n return spanMap;\n}\n\nfunction getSpanBreakdown(transactionDetails, _ref) {\n var details = _ref.details,\n _ref$count = _ref.count,\n count = _ref$count === void 0 ? 1 : _ref$count,\n duration = _ref.duration;\n return {\n transaction: transactionDetails,\n span: details,\n samples: {\n 'span.self_time.count': getValue(count),\n 'span.self_time.sum.us': getValue(duration)\n }\n };\n}\n\nexport function captureBreakdown(transaction, timings) {\n if (timings === void 0) {\n timings = PERF.timing;\n }\n\n var breakdowns = [];\n var trDuration = transaction.duration();\n var name = transaction.name,\n type = transaction.type,\n sampled = transaction.sampled;\n var transactionDetails = {\n name: name,\n type: type\n };\n breakdowns.push({\n transaction: transactionDetails,\n samples: {\n 'transaction.duration.count': getValue(1),\n 'transaction.duration.sum.us': getValue(trDuration),\n 'transaction.breakdown.count': getValue(sampled ? 1 : 0)\n }\n });\n\n if (!sampled) {\n return breakdowns;\n }\n\n if (type === PAGE_LOAD && timings) {\n for (var i = 0; i < pageLoadBreakdowns.length; i++) {\n var current = pageLoadBreakdowns[i];\n var start = timings[current[0]];\n var end = timings[current[1]];\n var duration = getDuration(start, end);\n\n if (duration === 0 || duration == null) {\n continue;\n }\n\n breakdowns.push(getSpanBreakdown(transactionDetails, {\n details: {\n type: current[2]\n },\n duration: duration\n }));\n }\n } else {\n var spanMap = groupSpans(transaction);\n Object.keys(spanMap).forEach(function (key) {\n var _key$split = key.split('.'),\n type = _key$split[0],\n subtype = _key$split[1];\n\n var _spanMap$key = spanMap[key],\n duration = _spanMap$key.duration,\n count = _spanMap$key.count;\n breakdowns.push(getSpanBreakdown(transactionDetails, {\n details: {\n type: type,\n subtype: subtype\n },\n duration: duration,\n count: count\n }));\n });\n }\n\n return breakdowns;\n}","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport Span from './span';\nimport SpanBase from './span-base';\nimport { generateRandomId, merge, now, getTime, extend, removeInvalidChars } from '../common/utils';\nimport { REUSABILITY_THRESHOLD, TRUNCATED_TYPE } from '../common/constants';\nimport { captureBreakdown as _captureBreakdown } from './breakdown';\n\nvar Transaction = function (_SpanBase) {\n _inheritsLoose(Transaction, _SpanBase);\n\n function Transaction(name, type, options) {\n var _this;\n\n _this = _SpanBase.call(this, name, type, options) || this;\n _this.traceId = generateRandomId();\n _this.marks = undefined;\n _this.spans = [];\n _this._activeSpans = {};\n _this._activeTasks = new Set();\n _this.blocked = false;\n _this.captureTimings = false;\n _this.breakdownTimings = [];\n _this.sampleRate = _this.options.transactionSampleRate;\n _this.sampled = Math.random() <= _this.sampleRate;\n return _this;\n }\n\n var _proto = Transaction.prototype;\n\n _proto.addMarks = function addMarks(obj) {\n this.marks = merge(this.marks || {}, obj);\n };\n\n _proto.mark = function mark(key) {\n var skey = removeInvalidChars(key);\n\n var markTime = now() - this._start;\n\n var custom = {};\n custom[skey] = markTime;\n this.addMarks({\n custom: custom\n });\n };\n\n _proto.canReuse = function canReuse() {\n var threshold = this.options.reuseThreshold || REUSABILITY_THRESHOLD;\n return !!this.options.canReuse && !this.ended && now() - this._start < threshold;\n };\n\n _proto.redefine = function redefine(name, type, options) {\n if (name) {\n this.name = name;\n }\n\n if (type) {\n this.type = type;\n }\n\n if (options) {\n this.options.reuseThreshold = options.reuseThreshold;\n extend(this.options, options);\n }\n };\n\n _proto.startSpan = function startSpan(name, type, options) {\n var _this2 = this;\n\n if (this.ended) {\n return;\n }\n\n var opts = extend({}, options);\n\n opts.onEnd = function (trc) {\n _this2._onSpanEnd(trc);\n };\n\n opts.traceId = this.traceId;\n opts.sampled = this.sampled;\n opts.sampleRate = this.sampleRate;\n\n if (!opts.parentId) {\n opts.parentId = this.id;\n }\n\n var span = new Span(name, type, opts);\n this._activeSpans[span.id] = span;\n\n if (opts.blocking) {\n this.addTask(span.id);\n }\n\n return span;\n };\n\n _proto.isFinished = function isFinished() {\n return !this.blocked && this._activeTasks.size === 0;\n };\n\n _proto.detectFinish = function detectFinish() {\n if (this.isFinished()) this.end();\n };\n\n _proto.end = function end(endTime) {\n if (this.ended) {\n return;\n }\n\n this.ended = true;\n this._end = getTime(endTime);\n\n for (var sid in this._activeSpans) {\n var span = this._activeSpans[sid];\n span.type = span.type + TRUNCATED_TYPE;\n span.end(endTime);\n }\n\n this.callOnEnd();\n };\n\n _proto.captureBreakdown = function captureBreakdown() {\n this.breakdownTimings = _captureBreakdown(this);\n };\n\n _proto.block = function block(flag) {\n this.blocked = flag;\n\n if (!this.blocked) {\n this.detectFinish();\n }\n };\n\n _proto.addTask = function addTask(taskId) {\n if (!taskId) {\n taskId = 'task-' + generateRandomId(16);\n }\n\n this._activeTasks.add(taskId);\n\n return taskId;\n };\n\n _proto.removeTask = function removeTask(taskId) {\n var deleted = this._activeTasks.delete(taskId);\n\n deleted && this.detectFinish();\n };\n\n _proto.resetFields = function resetFields() {\n this.spans = [];\n this.sampleRate = 0;\n };\n\n _proto._onSpanEnd = function _onSpanEnd(span) {\n this.spans.push(span);\n delete this._activeSpans[span.id];\n this.removeTask(span.id);\n };\n\n _proto.isManaged = function isManaged() {\n return !!this.options.managed;\n };\n\n return Transaction;\n}(SpanBase);\n\nexport default Transaction;","import { LONG_TASK, LARGEST_CONTENTFUL_PAINT, FIRST_CONTENTFUL_PAINT, FIRST_INPUT, LAYOUT_SHIFT } from '../common/constants';\nimport { noop, PERF } from '../common/utils';\nimport Span from './span';\nexport var metrics = {\n fid: 0,\n fcp: 0,\n tbt: {\n start: Infinity,\n duration: 0\n },\n cls: {\n score: 0,\n firstEntryTime: Number.NEGATIVE_INFINITY,\n prevEntryTime: Number.NEGATIVE_INFINITY,\n currentSessionScore: 0\n },\n longtask: {\n count: 0,\n duration: 0,\n max: 0\n }\n};\nvar LONG_TASK_THRESHOLD = 50;\nexport function createLongTaskSpans(longtasks, agg) {\n var spans = [];\n\n for (var i = 0; i < longtasks.length; i++) {\n var _longtasks$i = longtasks[i],\n name = _longtasks$i.name,\n startTime = _longtasks$i.startTime,\n duration = _longtasks$i.duration,\n attribution = _longtasks$i.attribution;\n var end = startTime + duration;\n var span = new Span(\"Longtask(\" + name + \")\", LONG_TASK, {\n startTime: startTime\n });\n agg.count++;\n agg.duration += duration;\n agg.max = Math.max(duration, agg.max);\n\n if (attribution.length > 0) {\n var _attribution$ = attribution[0],\n _name = _attribution$.name,\n containerType = _attribution$.containerType,\n containerName = _attribution$.containerName,\n containerId = _attribution$.containerId;\n var customContext = {\n attribution: _name,\n type: containerType\n };\n\n if (containerName) {\n customContext.name = containerName;\n }\n\n if (containerId) {\n customContext.id = containerId;\n }\n\n span.addContext({\n custom: customContext\n });\n }\n\n span.end(end);\n spans.push(span);\n }\n\n return spans;\n}\nexport function createFirstInputDelaySpan(fidEntries) {\n var firstInput = fidEntries[0];\n\n if (firstInput) {\n var startTime = firstInput.startTime,\n processingStart = firstInput.processingStart;\n var span = new Span('First Input Delay', FIRST_INPUT, {\n startTime: startTime\n });\n span.end(processingStart);\n return span;\n }\n}\nexport function createTotalBlockingTimeSpan(tbtObject) {\n var start = tbtObject.start,\n duration = tbtObject.duration;\n var tbtSpan = new Span('Total Blocking Time', LONG_TASK, {\n startTime: start\n });\n tbtSpan.end(start + duration);\n return tbtSpan;\n}\nexport function calculateTotalBlockingTime(longtaskEntries) {\n longtaskEntries.forEach(function (entry) {\n var name = entry.name,\n startTime = entry.startTime,\n duration = entry.duration;\n\n if (startTime < metrics.fcp) {\n return;\n }\n\n if (name !== 'self' && name.indexOf('same-origin') === -1) {\n return;\n }\n\n metrics.tbt.start = Math.min(metrics.tbt.start, startTime);\n var blockingTime = duration - LONG_TASK_THRESHOLD;\n\n if (blockingTime > 0) {\n metrics.tbt.duration += blockingTime;\n }\n });\n}\nexport function calculateCumulativeLayoutShift(clsEntries) {\n clsEntries.forEach(function (entry) {\n if (!entry.hadRecentInput && entry.value) {\n var shouldCreateNewSession = entry.startTime - metrics.cls.firstEntryTime > 5000 || entry.startTime - metrics.cls.prevEntryTime > 1000;\n\n if (shouldCreateNewSession) {\n metrics.cls.firstEntryTime = entry.startTime;\n metrics.cls.currentSessionScore = 0;\n }\n\n metrics.cls.prevEntryTime = entry.startTime;\n metrics.cls.currentSessionScore += entry.value;\n metrics.cls.score = Math.max(metrics.cls.score, metrics.cls.currentSessionScore);\n }\n });\n}\nexport function captureObserverEntries(list, _ref) {\n var isHardNavigation = _ref.isHardNavigation,\n trStart = _ref.trStart;\n var longtaskEntries = list.getEntriesByType(LONG_TASK).filter(function (entry) {\n return entry.startTime >= trStart;\n });\n var longTaskSpans = createLongTaskSpans(longtaskEntries, metrics.longtask);\n var result = {\n spans: longTaskSpans,\n marks: {}\n };\n\n if (!isHardNavigation) {\n return result;\n }\n\n var lcpEntries = list.getEntriesByType(LARGEST_CONTENTFUL_PAINT);\n var lastLcpEntry = lcpEntries[lcpEntries.length - 1];\n\n if (lastLcpEntry) {\n var lcp = parseInt(lastLcpEntry.startTime);\n metrics.lcp = lcp;\n result.marks.largestContentfulPaint = lcp;\n }\n\n var timing = PERF.timing;\n var unloadDiff = timing.fetchStart - timing.navigationStart;\n var fcpEntry = list.getEntriesByName(FIRST_CONTENTFUL_PAINT)[0];\n\n if (fcpEntry) {\n var fcp = parseInt(unloadDiff >= 0 ? fcpEntry.startTime - unloadDiff : fcpEntry.startTime);\n metrics.fcp = fcp;\n result.marks.firstContentfulPaint = fcp;\n }\n\n var fidEntries = list.getEntriesByType(FIRST_INPUT);\n var fidSpan = createFirstInputDelaySpan(fidEntries);\n\n if (fidSpan) {\n metrics.fid = fidSpan.duration();\n result.spans.push(fidSpan);\n }\n\n calculateTotalBlockingTime(longtaskEntries);\n var clsEntries = list.getEntriesByType(LAYOUT_SHIFT);\n calculateCumulativeLayoutShift(clsEntries);\n return result;\n}\nexport var PerfEntryRecorder = function () {\n function PerfEntryRecorder(callback) {\n this.po = {\n observe: noop,\n disconnect: noop\n };\n\n if (window.PerformanceObserver) {\n this.po = new PerformanceObserver(callback);\n }\n }\n\n var _proto = PerfEntryRecorder.prototype;\n\n _proto.start = function start(type) {\n try {\n this.po.observe({\n type: type,\n buffered: true\n });\n } catch (_) {}\n };\n\n _proto.stop = function stop() {\n this.po.disconnect();\n };\n\n return PerfEntryRecorder;\n}();","import { Promise } from '../common/polyfills';\nimport Transaction from './transaction';\nimport { PerfEntryRecorder, captureObserverEntries, metrics, createTotalBlockingTimeSpan } from './metrics';\nimport { extend, getEarliestSpan, getLatestNonXHRSpan, getLatestXHRSpan, isPerfTypeSupported, generateRandomId } from '../common/utils';\nimport { captureNavigation } from './capture-navigation';\nimport { PAGE_LOAD, NAME_UNKNOWN, TRANSACTION_START, TRANSACTION_END, TEMPORARY_TYPE, TRANSACTION_TYPE_ORDER, LARGEST_CONTENTFUL_PAINT, LONG_TASK, PAINT, TRUNCATED_TYPE, FIRST_INPUT, LAYOUT_SHIFT, SESSION_TIMEOUT, PAGE_LOAD_DELAY } from '../common/constants';\nimport { addTransactionContext } from '../common/context';\nimport { __DEV__, state } from '../state';\nimport { slugifyUrl } from '../common/url';\n\nvar TransactionService = function () {\n function TransactionService(logger, config) {\n var _this = this;\n\n this._config = config;\n this._logger = logger;\n this.currentTransaction = undefined;\n this.respIntervalId = undefined;\n this.recorder = new PerfEntryRecorder(function (list) {\n var tr = _this.getCurrentTransaction();\n\n if (tr && tr.captureTimings) {\n var _tr$spans;\n\n var isHardNavigation = tr.type === PAGE_LOAD;\n\n var _captureObserverEntri = captureObserverEntries(list, {\n isHardNavigation: isHardNavigation,\n trStart: isHardNavigation ? 0 : tr._start\n }),\n spans = _captureObserverEntri.spans,\n marks = _captureObserverEntri.marks;\n\n (_tr$spans = tr.spans).push.apply(_tr$spans, spans);\n\n tr.addMarks({\n agent: marks\n });\n }\n });\n }\n\n var _proto = TransactionService.prototype;\n\n _proto.createCurrentTransaction = function createCurrentTransaction(name, type, options) {\n var tr = new Transaction(name, type, options);\n this.currentTransaction = tr;\n return tr;\n };\n\n _proto.getCurrentTransaction = function getCurrentTransaction() {\n if (this.currentTransaction && !this.currentTransaction.ended) {\n return this.currentTransaction;\n }\n };\n\n _proto.createOptions = function createOptions(options) {\n var config = this._config.config;\n var presetOptions = {\n transactionSampleRate: config.transactionSampleRate\n };\n var perfOptions = extend(presetOptions, options);\n\n if (perfOptions.managed) {\n perfOptions = extend({\n pageLoadTraceId: config.pageLoadTraceId,\n pageLoadSampled: config.pageLoadSampled,\n pageLoadSpanId: config.pageLoadSpanId,\n pageLoadTransactionName: config.pageLoadTransactionName\n }, perfOptions);\n }\n\n return perfOptions;\n };\n\n _proto.startManagedTransaction = function startManagedTransaction(name, type, perfOptions) {\n var tr = this.getCurrentTransaction();\n var isRedefined = false;\n\n if (!tr) {\n tr = this.createCurrentTransaction(name, type, perfOptions);\n } else if (tr.canReuse() && perfOptions.canReuse) {\n var redefineType = tr.type;\n var currentTypeOrder = TRANSACTION_TYPE_ORDER.indexOf(tr.type);\n var redefineTypeOrder = TRANSACTION_TYPE_ORDER.indexOf(type);\n\n if (currentTypeOrder >= 0 && redefineTypeOrder < currentTypeOrder) {\n redefineType = type;\n }\n\n if (__DEV__) {\n this._logger.debug(\"redefining transaction(\" + tr.id + \", \" + tr.name + \", \" + tr.type + \")\", 'to', \"(\" + (name || tr.name) + \", \" + redefineType + \")\", tr);\n }\n\n tr.redefine(name, redefineType, perfOptions);\n isRedefined = true;\n } else {\n if (__DEV__) {\n this._logger.debug(\"ending previous transaction(\" + tr.id + \", \" + tr.name + \")\", tr);\n }\n\n tr.end();\n tr = this.createCurrentTransaction(name, type, perfOptions);\n }\n\n if (tr.type === PAGE_LOAD) {\n if (!isRedefined) {\n this.recorder.start(LARGEST_CONTENTFUL_PAINT);\n this.recorder.start(PAINT);\n this.recorder.start(FIRST_INPUT);\n this.recorder.start(LAYOUT_SHIFT);\n }\n\n if (perfOptions.pageLoadTraceId) {\n tr.traceId = perfOptions.pageLoadTraceId;\n }\n\n if (perfOptions.pageLoadSampled) {\n tr.sampled = perfOptions.pageLoadSampled;\n }\n\n if (tr.name === NAME_UNKNOWN && perfOptions.pageLoadTransactionName) {\n tr.name = perfOptions.pageLoadTransactionName;\n }\n }\n\n if (!isRedefined && this._config.get('monitorLongtasks')) {\n this.recorder.start(LONG_TASK);\n }\n\n if (tr.sampled) {\n tr.captureTimings = true;\n }\n\n return tr;\n };\n\n _proto.startTransaction = function startTransaction(name, type, options) {\n var _this2 = this;\n\n var perfOptions = this.createOptions(options);\n var tr;\n var fireOnstartHook = true;\n\n if (perfOptions.managed) {\n var current = this.currentTransaction;\n tr = this.startManagedTransaction(name, type, perfOptions);\n\n if (current === tr) {\n fireOnstartHook = false;\n }\n } else {\n tr = new Transaction(name, type, perfOptions);\n }\n\n tr.onEnd = function () {\n return _this2.handleTransactionEnd(tr);\n };\n\n if (fireOnstartHook) {\n if (__DEV__) {\n this._logger.debug(\"startTransaction(\" + tr.id + \", \" + tr.name + \", \" + tr.type + \")\");\n }\n\n this._config.events.send(TRANSACTION_START, [tr]);\n }\n\n return tr;\n };\n\n _proto.handleTransactionEnd = function handleTransactionEnd(tr) {\n var _this3 = this;\n\n this.recorder.stop();\n var currentUrl = window.location.href;\n return Promise.resolve().then(function () {\n var name = tr.name,\n type = tr.type;\n var lastHiddenStart = state.lastHiddenStart;\n\n if (lastHiddenStart >= tr._start) {\n if (__DEV__) {\n _this3._logger.debug(\"transaction(\" + tr.id + \", \" + name + \", \" + type + \") was discarded! The page was hidden during the transaction!\");\n }\n\n return;\n }\n\n if (_this3.shouldIgnoreTransaction(name) || type === TEMPORARY_TYPE) {\n if (__DEV__) {\n _this3._logger.debug(\"transaction(\" + tr.id + \", \" + name + \", \" + type + \") is ignored\");\n }\n\n return;\n }\n\n if (type === PAGE_LOAD) {\n var pageLoadTransactionName = _this3._config.get('pageLoadTransactionName');\n\n if (name === NAME_UNKNOWN && pageLoadTransactionName) {\n tr.name = pageLoadTransactionName;\n }\n\n if (tr.captureTimings) {\n var cls = metrics.cls,\n fid = metrics.fid,\n tbt = metrics.tbt,\n longtask = metrics.longtask;\n\n if (tbt.duration > 0) {\n tr.spans.push(createTotalBlockingTimeSpan(tbt));\n }\n\n tr.experience = {};\n\n if (isPerfTypeSupported(LONG_TASK)) {\n tr.experience.tbt = tbt.duration;\n }\n\n if (isPerfTypeSupported(LAYOUT_SHIFT)) {\n tr.experience.cls = cls.score;\n }\n\n if (fid > 0) {\n tr.experience.fid = fid;\n }\n\n if (longtask.count > 0) {\n tr.experience.longtask = {\n count: longtask.count,\n sum: longtask.duration,\n max: longtask.max\n };\n }\n }\n\n _this3.setSession(tr);\n }\n\n if (tr.name === NAME_UNKNOWN) {\n tr.name = slugifyUrl(currentUrl);\n }\n\n captureNavigation(tr);\n\n _this3.adjustTransactionTime(tr);\n\n var breakdownMetrics = _this3._config.get('breakdownMetrics');\n\n if (breakdownMetrics) {\n tr.captureBreakdown();\n }\n\n var configContext = _this3._config.get('context');\n\n addTransactionContext(tr, configContext);\n\n _this3._config.events.send(TRANSACTION_END, [tr]);\n\n if (__DEV__) {\n _this3._logger.debug(\"end transaction(\" + tr.id + \", \" + tr.name + \", \" + tr.type + \")\", tr);\n }\n }, function (err) {\n if (__DEV__) {\n _this3._logger.debug(\"error ending transaction(\" + tr.id + \", \" + tr.name + \")\", err);\n }\n });\n };\n\n _proto.setSession = function setSession(tr) {\n var session = this._config.get('session');\n\n if (session) {\n if (typeof session == 'boolean') {\n tr.session = {\n id: generateRandomId(16),\n sequence: 1\n };\n } else {\n if (session.timestamp && Date.now() - session.timestamp > SESSION_TIMEOUT) {\n tr.session = {\n id: generateRandomId(16),\n sequence: 1\n };\n } else {\n tr.session = {\n id: session.id,\n sequence: session.sequence ? session.sequence + 1 : 1\n };\n }\n }\n\n var sessionConfig = {\n session: {\n id: tr.session.id,\n sequence: tr.session.sequence,\n timestamp: Date.now()\n }\n };\n\n this._config.setConfig(sessionConfig);\n\n this._config.setLocalConfig(sessionConfig, true);\n }\n };\n\n _proto.adjustTransactionTime = function adjustTransactionTime(transaction) {\n var spans = transaction.spans;\n var earliestSpan = getEarliestSpan(spans);\n\n if (earliestSpan && earliestSpan._start < transaction._start) {\n transaction._start = earliestSpan._start;\n }\n\n var latestSpan = getLatestNonXHRSpan(spans) || {};\n var latestSpanEnd = latestSpan._end || 0;\n\n if (transaction.type === PAGE_LOAD) {\n var transactionEndWithoutDelay = transaction._end - PAGE_LOAD_DELAY;\n var lcp = metrics.lcp || 0;\n var latestXHRSpan = getLatestXHRSpan(spans) || {};\n var latestXHRSpanEnd = latestXHRSpan._end || 0;\n transaction._end = Math.max(latestSpanEnd, latestXHRSpanEnd, lcp, transactionEndWithoutDelay);\n } else if (latestSpanEnd > transaction._end) {\n transaction._end = latestSpanEnd;\n }\n\n this.truncateSpans(spans, transaction._end);\n };\n\n _proto.truncateSpans = function truncateSpans(spans, transactionEnd) {\n for (var i = 0; i < spans.length; i++) {\n var span = spans[i];\n\n if (span._end > transactionEnd) {\n span._end = transactionEnd;\n span.type += TRUNCATED_TYPE;\n }\n\n if (span._start > transactionEnd) {\n span._start = transactionEnd;\n }\n }\n };\n\n _proto.shouldIgnoreTransaction = function shouldIgnoreTransaction(transactionName) {\n var ignoreList = this._config.get('ignoreTransactions');\n\n if (ignoreList && ignoreList.length) {\n for (var i = 0; i < ignoreList.length; i++) {\n var element = ignoreList[i];\n\n if (typeof element.test === 'function') {\n if (element.test(transactionName)) {\n return true;\n }\n } else if (element === transactionName) {\n return true;\n }\n }\n }\n\n return false;\n };\n\n _proto.startSpan = function startSpan(name, type, options) {\n var tr = this.getCurrentTransaction();\n\n if (!tr) {\n tr = this.createCurrentTransaction(undefined, TEMPORARY_TYPE, this.createOptions({\n canReuse: true,\n managed: true\n }));\n }\n\n var span = tr.startSpan(name, type, options);\n\n if (__DEV__) {\n this._logger.debug(\"startSpan(\" + name + \", \" + span.type + \")\", \"on transaction(\" + tr.id + \", \" + tr.name + \")\");\n }\n\n return span;\n };\n\n _proto.endSpan = function endSpan(span, context) {\n if (!span) {\n return;\n }\n\n if (__DEV__) {\n var tr = this.getCurrentTransaction();\n tr && this._logger.debug(\"endSpan(\" + span.name + \", \" + span.type + \")\", \"on transaction(\" + tr.id + \", \" + tr.name + \")\");\n }\n\n span.end(null, context);\n };\n\n return TransactionService;\n}();\n\nexport default TransactionService;","import { QUEUE_ADD_TRANSACTION, QUEUE_FLUSH } from '../constants';\nimport { state } from '../../state';\nimport { now } from '../utils';\nexport function observePageVisibility(configService, transactionService) {\n if (document.visibilityState === 'hidden') {\n state.lastHiddenStart = 0;\n }\n\n var visibilityChangeHandler = function visibilityChangeHandler() {\n if (document.visibilityState === 'hidden') {\n onPageHidden(configService, transactionService);\n }\n };\n\n var pageHideHandler = function pageHideHandler() {\n return onPageHidden(configService, transactionService);\n };\n\n var useCapture = true;\n window.addEventListener('visibilitychange', visibilityChangeHandler, useCapture);\n window.addEventListener('pagehide', pageHideHandler, useCapture);\n return function () {\n window.removeEventListener('visibilitychange', visibilityChangeHandler, useCapture);\n window.removeEventListener('pagehide', pageHideHandler, useCapture);\n };\n}\n\nfunction onPageHidden(configService, transactionService) {\n var tr = transactionService.getCurrentTransaction();\n\n if (tr) {\n var unobserve = configService.observeEvent(QUEUE_ADD_TRANSACTION, function () {\n configService.dispatchEvent(QUEUE_FLUSH);\n state.lastHiddenStart = now();\n unobserve();\n });\n tr.end();\n } else {\n configService.dispatchEvent(QUEUE_FLUSH);\n state.lastHiddenStart = now();\n }\n}","import { getInstrumentationFlags, PAGE_LOAD_DELAY, PAGE_LOAD, ERROR, CONFIG_SERVICE, LOGGING_SERVICE, TRANSACTION_SERVICE, PERFORMANCE_MONITORING, ERROR_LOGGING, APM_SERVER, EVENT_TARGET, CLICK, observePageVisibility, observePageClicks } from '@elastic/apm-rum-core';\n\nvar ApmBase = function () {\n function ApmBase(serviceFactory, disable) {\n this._disable = disable;\n this.serviceFactory = serviceFactory;\n this._initialized = false;\n }\n\n var _proto = ApmBase.prototype;\n\n _proto.isEnabled = function isEnabled() {\n return !this._disable;\n };\n\n _proto.isActive = function isActive() {\n var configService = this.serviceFactory.getService(CONFIG_SERVICE);\n return this.isEnabled() && this._initialized && configService.get('active');\n };\n\n _proto.init = function init(config) {\n var _this = this;\n\n if (this.isEnabled() && !this._initialized) {\n this._initialized = true;\n\n var _this$serviceFactory$ = this.serviceFactory.getService([CONFIG_SERVICE, LOGGING_SERVICE, TRANSACTION_SERVICE]),\n configService = _this$serviceFactory$[0],\n loggingService = _this$serviceFactory$[1],\n transactionService = _this$serviceFactory$[2];\n\n configService.setVersion('5.12.0');\n this.config(config);\n var logLevel = configService.get('logLevel');\n loggingService.setLevel(logLevel);\n var isConfigActive = configService.get('active');\n\n if (isConfigActive) {\n this.serviceFactory.init();\n var flags = getInstrumentationFlags(configService.get('instrument'), configService.get('disableInstrumentations'));\n var performanceMonitoring = this.serviceFactory.getService(PERFORMANCE_MONITORING);\n performanceMonitoring.init(flags);\n\n if (flags[ERROR]) {\n var errorLogging = this.serviceFactory.getService(ERROR_LOGGING);\n errorLogging.registerListeners();\n }\n\n if (configService.get('session')) {\n var localConfig = configService.getLocalConfig();\n\n if (localConfig && localConfig.session) {\n configService.setConfig({\n session: localConfig.session\n });\n }\n }\n\n var sendPageLoad = function sendPageLoad() {\n return flags[PAGE_LOAD] && _this._sendPageLoadMetrics();\n };\n\n if (configService.get('centralConfig')) {\n this.fetchCentralConfig().then(sendPageLoad);\n } else {\n sendPageLoad();\n }\n\n observePageVisibility(configService, transactionService);\n\n if (flags[EVENT_TARGET] && flags[CLICK]) {\n observePageClicks(transactionService);\n }\n } else {\n this._disable = true;\n loggingService.warn('RUM agent is inactive');\n }\n }\n\n return this;\n };\n\n _proto.fetchCentralConfig = function fetchCentralConfig() {\n var _this$serviceFactory$2 = this.serviceFactory.getService([APM_SERVER, LOGGING_SERVICE, CONFIG_SERVICE]),\n apmServer = _this$serviceFactory$2[0],\n loggingService = _this$serviceFactory$2[1],\n configService = _this$serviceFactory$2[2];\n\n return apmServer.fetchConfig(configService.get('serviceName'), configService.get('environment')).then(function (config) {\n var transactionSampleRate = config['transaction_sample_rate'];\n\n if (transactionSampleRate) {\n transactionSampleRate = Number(transactionSampleRate);\n var _config2 = {\n transactionSampleRate: transactionSampleRate\n };\n\n var _configService$valida = configService.validate(_config2),\n invalid = _configService$valida.invalid;\n\n if (invalid.length === 0) {\n configService.setConfig(_config2);\n } else {\n var _invalid$ = invalid[0],\n key = _invalid$.key,\n value = _invalid$.value,\n allowed = _invalid$.allowed;\n loggingService.warn(\"invalid value \\\"\" + value + \"\\\" for \" + key + \". Allowed: \" + allowed + \".\");\n }\n }\n\n return config;\n }).catch(function (error) {\n loggingService.warn('failed fetching config:', error);\n });\n };\n\n _proto._sendPageLoadMetrics = function _sendPageLoadMetrics() {\n var tr = this.startTransaction(undefined, PAGE_LOAD, {\n managed: true,\n canReuse: true\n });\n\n if (!tr) {\n return;\n }\n\n tr.addTask(PAGE_LOAD);\n\n var sendPageLoadMetrics = function sendPageLoadMetrics() {\n setTimeout(function () {\n return tr.removeTask(PAGE_LOAD);\n }, PAGE_LOAD_DELAY);\n };\n\n if (document.readyState === 'complete') {\n sendPageLoadMetrics();\n } else {\n window.addEventListener('load', sendPageLoadMetrics);\n }\n };\n\n _proto.observe = function observe(name, fn) {\n var configService = this.serviceFactory.getService(CONFIG_SERVICE);\n configService.events.observe(name, fn);\n };\n\n _proto.config = function config(_config) {\n var _this$serviceFactory$3 = this.serviceFactory.getService([CONFIG_SERVICE, LOGGING_SERVICE]),\n configService = _this$serviceFactory$3[0],\n loggingService = _this$serviceFactory$3[1];\n\n var _configService$valida2 = configService.validate(_config),\n missing = _configService$valida2.missing,\n invalid = _configService$valida2.invalid,\n unknown = _configService$valida2.unknown;\n\n if (unknown.length > 0) {\n var message = 'Unknown config options are specified for RUM agent: ' + unknown.join(', ');\n loggingService.warn(message);\n }\n\n if (missing.length === 0 && invalid.length === 0) {\n configService.setConfig(_config);\n } else {\n var separator = ', ';\n var _message = \"RUM agent isn't correctly configured. \";\n\n if (missing.length > 0) {\n _message += missing.join(separator) + ' is missing';\n\n if (invalid.length > 0) {\n _message += separator;\n }\n }\n\n invalid.forEach(function (_ref, index) {\n var key = _ref.key,\n value = _ref.value,\n allowed = _ref.allowed;\n _message += key + \" \\\"\" + value + \"\\\" contains invalid characters! (allowed: \" + allowed + \")\" + (index !== invalid.length - 1 ? separator : '');\n });\n loggingService.error(_message);\n configService.setConfig({\n active: false\n });\n }\n };\n\n _proto.setUserContext = function setUserContext(userContext) {\n var configService = this.serviceFactory.getService(CONFIG_SERVICE);\n configService.setUserContext(userContext);\n };\n\n _proto.setCustomContext = function setCustomContext(customContext) {\n var configService = this.serviceFactory.getService(CONFIG_SERVICE);\n configService.setCustomContext(customContext);\n };\n\n _proto.addLabels = function addLabels(labels) {\n var configService = this.serviceFactory.getService(CONFIG_SERVICE);\n configService.addLabels(labels);\n };\n\n _proto.setInitialPageLoadName = function setInitialPageLoadName(name) {\n var configService = this.serviceFactory.getService(CONFIG_SERVICE);\n configService.setConfig({\n pageLoadTransactionName: name\n });\n };\n\n _proto.startTransaction = function startTransaction(name, type, options) {\n if (this.isEnabled()) {\n var transactionService = this.serviceFactory.getService(TRANSACTION_SERVICE);\n return transactionService.startTransaction(name, type, options);\n }\n };\n\n _proto.startSpan = function startSpan(name, type, options) {\n if (this.isEnabled()) {\n var transactionService = this.serviceFactory.getService(TRANSACTION_SERVICE);\n return transactionService.startSpan(name, type, options);\n }\n };\n\n _proto.getCurrentTransaction = function getCurrentTransaction() {\n if (this.isEnabled()) {\n var transactionService = this.serviceFactory.getService(TRANSACTION_SERVICE);\n return transactionService.getCurrentTransaction();\n }\n };\n\n _proto.captureError = function captureError(error) {\n if (this.isEnabled()) {\n var errorLogging = this.serviceFactory.getService(ERROR_LOGGING);\n return errorLogging.logError(error);\n }\n };\n\n _proto.addFilter = function addFilter(fn) {\n var configService = this.serviceFactory.getService(CONFIG_SERVICE);\n configService.addFilter(fn);\n };\n\n return ApmBase;\n}();\n\nexport { ApmBase as default };","import { XMLHTTPREQUEST, FETCH, HISTORY, PAGE_LOAD, ERROR, EVENT_TARGET, CLICK } from './constants';\nexport function getInstrumentationFlags(instrument, disabledInstrumentations) {\n var _flags;\n\n var flags = (_flags = {}, _flags[XMLHTTPREQUEST] = false, _flags[FETCH] = false, _flags[HISTORY] = false, _flags[PAGE_LOAD] = false, _flags[ERROR] = false, _flags[EVENT_TARGET] = false, _flags[CLICK] = false, _flags);\n\n if (!instrument) {\n return flags;\n }\n\n Object.keys(flags).forEach(function (key) {\n if (disabledInstrumentations.indexOf(key) === -1) {\n flags[key] = true;\n }\n });\n return flags;\n}","import { USER_INTERACTION } from '../constants';\nexport function observePageClicks(transactionService) {\n var clickHandler = function clickHandler(event) {\n if (event.target instanceof Element) {\n createUserInteractionTransaction(transactionService, event.target);\n }\n };\n\n var eventName = 'click';\n var useCapture = true;\n window.addEventListener(eventName, clickHandler, useCapture);\n return function () {\n window.removeEventListener(eventName, clickHandler, useCapture);\n };\n}\n\nfunction createUserInteractionTransaction(transactionService, target) {\n var _getTransactionMetada = getTransactionMetadata(target),\n transactionName = _getTransactionMetada.transactionName,\n context = _getTransactionMetada.context;\n\n var tr = transactionService.startTransaction(\"Click - \" + transactionName, USER_INTERACTION, {\n managed: true,\n canReuse: true,\n reuseThreshold: 300\n });\n\n if (tr && context) {\n tr.addContext(context);\n }\n}\n\nfunction getTransactionMetadata(target) {\n var metadata = {\n transactionName: null,\n context: null\n };\n var tagName = target.tagName.toLowerCase();\n var transactionName = tagName;\n\n if (!!target.dataset.transactionName) {\n transactionName = target.dataset.transactionName;\n } else {\n var name = target.getAttribute('name');\n\n if (!!name) {\n transactionName = tagName + \"[\\\"\" + name + \"\\\"]\";\n }\n }\n\n metadata.transactionName = transactionName;\n var classes = target.getAttribute('class');\n\n if (classes) {\n metadata.context = {\n custom: {\n classes: classes\n }\n };\n }\n\n return metadata;\n}","import { createServiceFactory, bootstrap, isBrowser } from '@elastic/apm-rum-core';\nimport ApmBase from './apm-base';\n\nfunction getApmBase() {\n if (isBrowser && window.elasticApm) {\n return window.elasticApm;\n }\n\n var enabled = bootstrap();\n var serviceFactory = createServiceFactory();\n var apmBase = new ApmBase(serviceFactory, !enabled);\n\n if (isBrowser) {\n window.elasticApm = apmBase;\n }\n\n return apmBase;\n}\n\nvar apmBase = getApmBase();\nvar init = apmBase.init.bind(apmBase);\nexport default init;\nexport { init, apmBase, ApmBase, apmBase as apm };","import PerformanceMonitoring from './performance-monitoring';\nimport TransactionService from './transaction-service';\nimport { APM_SERVER, CONFIG_SERVICE, LOGGING_SERVICE, TRANSACTION_SERVICE, PERFORMANCE_MONITORING } from '../common/constants';\nimport { serviceCreators } from '../common/service-factory';\n\nfunction registerServices() {\n serviceCreators[TRANSACTION_SERVICE] = function (serviceFactory) {\n var _serviceFactory$getSe = serviceFactory.getService([LOGGING_SERVICE, CONFIG_SERVICE]),\n loggingService = _serviceFactory$getSe[0],\n configService = _serviceFactory$getSe[1];\n\n return new TransactionService(loggingService, configService);\n };\n\n serviceCreators[PERFORMANCE_MONITORING] = function (serviceFactory) {\n var _serviceFactory$getSe2 = serviceFactory.getService([APM_SERVER, CONFIG_SERVICE, LOGGING_SERVICE, TRANSACTION_SERVICE]),\n apmServer = _serviceFactory$getSe2[0],\n configService = _serviceFactory$getSe2[1],\n loggingService = _serviceFactory$getSe2[2],\n transactionService = _serviceFactory$getSe2[3];\n\n return new PerformanceMonitoring(apmServer, configService, loggingService, transactionService);\n };\n}\n\nexport { registerServices };","import ErrorLogging from './error-logging';\nimport { CONFIG_SERVICE, TRANSACTION_SERVICE, ERROR_LOGGING, APM_SERVER } from '../common/constants';\nimport { serviceCreators } from '../common/service-factory';\n\nfunction registerServices() {\n serviceCreators[ERROR_LOGGING] = function (serviceFactory) {\n var _serviceFactory$getSe = serviceFactory.getService([APM_SERVER, CONFIG_SERVICE, TRANSACTION_SERVICE]),\n apmServer = _serviceFactory$getSe[0],\n configService = _serviceFactory$getSe[1],\n transactionService = _serviceFactory$getSe[2];\n\n return new ErrorLogging(apmServer, configService, transactionService);\n };\n}\n\nexport { registerServices };","import { registerServices as registerErrorServices } from './error-logging';\nimport { registerServices as registerPerfServices } from './performance-monitoring';\nimport { ServiceFactory } from './common/service-factory';\nimport { isPlatformSupported, scheduleMicroTask, scheduleMacroTask, isBrowser } from './common/utils';\nimport { patchAll, patchEventHandler } from './common/patching';\nimport { observePageVisibility, observePageClicks } from './common/observers';\nimport { PAGE_LOAD_DELAY, PAGE_LOAD, ERROR, CONFIG_SERVICE, LOGGING_SERVICE, TRANSACTION_SERVICE, APM_SERVER, PERFORMANCE_MONITORING, ERROR_LOGGING, EVENT_TARGET, CLICK } from './common/constants';\nimport { getInstrumentationFlags } from './common/instrument';\nimport afterFrame from './common/after-frame';\nimport { bootstrap } from './bootstrap';\nimport { createTracer } from './opentracing';\n\nfunction createServiceFactory() {\n registerPerfServices();\n registerErrorServices();\n var serviceFactory = new ServiceFactory();\n return serviceFactory;\n}\n\nexport { createServiceFactory, ServiceFactory, patchAll, patchEventHandler, isPlatformSupported, isBrowser, getInstrumentationFlags, createTracer, scheduleMicroTask, scheduleMacroTask, afterFrame, ERROR, PAGE_LOAD_DELAY, PAGE_LOAD, CONFIG_SERVICE, LOGGING_SERVICE, TRANSACTION_SERVICE, APM_SERVER, PERFORMANCE_MONITORING, ERROR_LOGGING, EVENT_TARGET, CLICK, bootstrap, observePageVisibility, observePageClicks };","var RAF_TIMEOUT = 100;\nexport default function afterFrame(callback) {\n var handler = function handler() {\n clearTimeout(timeout);\n cancelAnimationFrame(raf);\n setTimeout(callback);\n };\n\n var timeout = setTimeout(handler, RAF_TIMEOUT);\n var raf = requestAnimationFrame(handler);\n}","function _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport React from 'react';\nimport hoistStatics from 'hoist-non-react-statics';\nimport { afterFrame, LOGGING_SERVICE } from '@elastic/apm-rum-core';\n\nfunction isReactClassComponent(Component) {\n var prototype = Component.prototype;\n return !!(prototype && prototype.isReactComponent);\n}\n\nfunction getWithTransaction(apm) {\n return function withTransaction(name, type, callback) {\n if (callback === void 0) {\n callback = function callback() {};\n }\n\n return function (Component) {\n if (!apm.isActive()) {\n return Component;\n }\n\n if (!Component) {\n var loggingService = apm.serviceFactory.getService(LOGGING_SERVICE);\n loggingService.warn(name + \" is not instrumented since component property is not provided\");\n return Component;\n }\n\n var ApmComponent = null;\n\n if (!isReactClassComponent(Component) && typeof React.useEffect === 'function' && typeof React.useState === 'function') {\n ApmComponent = function ApmComponent(props) {\n var _React$useState = React.useState(function () {\n var tr = apm.startTransaction(name, type, {\n managed: true,\n canReuse: true\n });\n callback(tr, props);\n return tr;\n }),\n _React$useState2 = _slicedToArray(_React$useState, 1),\n transaction = _React$useState2[0];\n\n React.useEffect(function () {\n afterFrame(function () {\n return transaction && transaction.detectFinish();\n });\n return function () {\n transaction && transaction.detectFinish();\n };\n }, []);\n return React.createElement(Component, _extends({\n transaction: transaction\n }, props));\n };\n } else {\n ApmComponent = function (_React$Component) {\n _inheritsLoose(ApmComponent, _React$Component);\n\n function ApmComponent(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.transaction = apm.startTransaction(name, type, {\n managed: true,\n canReuse: true\n });\n callback(_this.transaction, props);\n return _this;\n }\n\n var _proto = ApmComponent.prototype;\n\n _proto.componentDidMount = function componentDidMount() {\n var _this2 = this;\n\n afterFrame(function () {\n return _this2.transaction && _this2.transaction.detectFinish();\n });\n };\n\n _proto.componentWillUnmount = function componentWillUnmount() {\n if (this.transaction) {\n this.transaction.detectFinish();\n }\n };\n\n _proto.render = function render() {\n return React.createElement(Component, _extends({\n transaction: this.transaction\n }, this.props));\n };\n\n return ApmComponent;\n }(React.Component);\n }\n\n ApmComponent.displayName = \"withTransaction(\" + (Component.displayName || Component.name) + \")\";\n ApmComponent.WrappedComponent = Component;\n return hoistStatics(ApmComponent, Component);\n };\n };\n}\n\nexport { getWithTransaction };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nimport React from 'react';\nimport { Route } from 'react-router-dom';\nimport { getWithTransaction } from './get-with-transaction';\n\nfunction getTransactionName(name, props) {\n var _props$match = props.match,\n match = _props$match === void 0 ? {} : _props$match;\n\n if (Array.isArray(name) && match.path) {\n return match.path;\n }\n\n return name;\n}\n\nfunction getApmRoute(apm) {\n var withTransaction = getWithTransaction(apm);\n return function (_React$Component) {\n _inheritsLoose(ApmRoute, _React$Component);\n\n function ApmRoute(props) {\n var _this;\n\n _this = _React$Component.call(this, props) || this;\n _this.state = {};\n return _this;\n }\n\n ApmRoute.getDerivedStateFromProps = function getDerivedStateFromProps(nextProps, prevState) {\n var initial = prevState.apmComponent == null;\n var path = nextProps.path,\n component = nextProps.component;\n var pathChanged = path != prevState.path;\n\n if (initial || pathChanged) {\n return {\n path: path,\n apmComponent: withTransaction(path, 'route-change', function (transaction, props) {\n if (transaction) {\n var name = getTransactionName(path, props);\n name && (transaction.name = name);\n }\n })(component)\n };\n }\n\n return null;\n };\n\n var _proto = ApmRoute.prototype;\n\n _proto.render = function render() {\n return React.createElement(Route, _extends({}, this.props, {\n component: this.state.apmComponent\n }));\n };\n\n return ApmRoute;\n }(React.Component);\n}\n\nexport { getApmRoute };","import { apm } from '@elastic/apm-rum';\nimport { getWithTransaction } from './get-with-transaction';\nimport { getApmRoute } from './get-apm-route';\nvar withTransaction = getWithTransaction(apm);\nvar ApmRoute = getApmRoute(apm);\nexport { withTransaction, ApmRoute };","import React, { useEffect } from 'react'\nimport { Switch, BrowserRouter, Route } from 'react-router-dom'\nimport { RouteConfig } from './route-config'\nimport { Route as CustomRoute } from './route'\nimport { withTransaction } from '@elastic/apm-rum-react'\nimport apm from '@Techedge/digitalportal-root'\n\nconst AppRouter = (props: any) => {\n const transaction = apm.startTransaction('DP-HomePageLoad', 'page-load', {\n managed: true,\n })\n\n const onPageLoaded = () => {\n if (transaction) {\n transaction?.end()\n }\n }\n\n useEffect(() => {\n onPageLoaded()\n }, [])\n\n return (\n \n \n {RouteConfig.map((route: CustomRoute, i: number) => {\n const RouteComponent = route.component\n console.log('route', route.props, route)\n return (\n (\n \n )}\n />\n )\n })}\n \n \n )\n}\n\nexport default withTransaction(\n 'digitalportal-home',\n 'digitalportal-mfe-load'\n)(AppRouter)\n","import React from 'react'\nimport ReactDOM from 'react-dom'\nimport singleSpaReact from 'single-spa-react'\nimport Root from './root.component'\n\nimport packageJson from '../package.json'\n\nconsole.log(\n '%c' +\n packageJson.name +\n ' v' +\n packageJson.version +\n ' - ENVIRONMENT: ' +\n process.env.REACT_APP_ENV +\n ' - BUILD_TYPE: ' +\n process.env.NODE_ENV,\n 'background: coral; color: black; font-size: 12px; padding: 5px;'\n)\n\nexport const nodeEnv = process.env.NODE_ENV\n\nexport const envLinks = {\n '360°': process.env.STORE_360_URL,\n WHS: process.env.WHOLESALE_URL,\n SMRT: process.env.SMARTLY_URL,\n DP: process.env.DIGITAL_PORTAL_URL,\n}\n\nconst lifecycles = singleSpaReact({\n React,\n ReactDOM,\n rootComponent: Root,\n errorBoundary(err, info, props) {\n // Customize the root error boundary for your microfrontend here.\n return null\n },\n})\n\nexport const { bootstrap, mount, unmount } = lifecycles\n","import { Provider } from 'react-redux'\nimport { sharedStore } from '@Techedge/digitalportal-shared'\nimport AppRouter from './routing/app-router'\n\nexport default function Root(props) {\n return (\n \n \n \n )\n}\n"],"names":["StackFrame","FIREFOX_SAFARI_STACK_REGEXP","CHROME_IE_STACK_REGEXP","SAFARI_NATIVE_CODE_REGEXP","_map","array","fn","thisArg","Array","prototype","map","output","length","i","call","_filter","filter","push","parse","error","stacktrace","this","parseOpera","stack","match","parseV8OrIE","parseFFOrSafari","Error","extractLocation","urlLike","indexOf","parts","exec","replace","undefined","split","line","tokens","slice","locationParts","pop","functionName","join","fileName","target","_indexOf","e","message","parseOpera9","parseOpera11","parseOpera10","lineRE","lines","result","len","argsRaw","functionCall","shift","args","_isNumber","n","isNaN","parseFloat","isFinite","lineNumber","columnNumber","source","setFunctionName","setArgs","setFileName","setLineNumber","setColumnNumber","setSource","getFunctionName","v","String","getArgs","Object","toString","TypeError","getFileName","getLineNumber","Number","getColumnNumber","getSource","___CSS_LOADER_EXPORT___","module","id","exports","cssWithMappingToString","list","item","content","needLayer","concat","modules","media","dedupe","supports","layer","alreadyImportedModules","k","_k","cssMapping","btoa","base64","unescape","encodeURIComponent","JSON","stringify","data","sourceMapping","reactIs","REACT_STATICS","childContextTypes","contextType","contextTypes","defaultProps","displayName","getDefaultProps","getDerivedStateFromError","getDerivedStateFromProps","mixins","propTypes","type","KNOWN_STATICS","name","caller","callee","arguments","arity","MEMO_STATICS","compare","TYPE_STATICS","getStatics","component","isMemo","ForwardRef","render","Memo","defineProperty","getOwnPropertyNames","getOwnPropertySymbols","getOwnPropertyDescriptor","getPrototypeOf","objectPrototype","hoistNonReactStatics","targetComponent","sourceComponent","blacklist","inheritedComponent","keys","targetStatics","sourceStatics","key","descriptor","b","Symbol","for","c","d","f","g","h","l","m","p","q","r","t","w","x","y","z","a","u","$$typeof","A","AsyncMode","ConcurrentMode","ContextConsumer","ContextProvider","Element","Fragment","Lazy","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isPortal","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","hasOwnProperty","propIsEnumerable","propertyIsEnumerable","assign","test1","test2","fromCharCode","test3","forEach","letter","err","shouldUseNative","from","symbols","to","val","toObject","s","isarray","pathToRegexp","path","options","RegExp","groups","prefix","delimiter","optional","repeat","partial","asterisk","pattern","attachKeys","regexpToRegexp","flags","arrayToRegexp","tokensToRegExp","stringToRegexp","compile","str","tokensToFunction","PATH_REGEXP","res","index","defaultDelimiter","escaped","offset","next","capture","group","modifier","escapeGroup","escapeString","substr","encodeURIComponentPretty","encodeURI","charCodeAt","toUpperCase","matches","obj","opts","encode","pretty","token","segment","value","j","test","re","sensitive","strict","end","route","endsWithDelimiter","isArray","arr","ReactPropTypesSecret","emptyFunction","emptyFunctionWithReset","resetWarningCache","shim","props","propName","componentName","location","propFullName","secret","getShim","isRequired","ReactPropTypes","bigint","bool","func","number","object","string","symbol","any","arrayOf","element","elementType","instanceOf","node","objectOf","oneOf","oneOfType","shape","exact","checkPropTypes","PropTypes","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","ref","__self","__source","_owner","current","jsx","jsxs","stylesInDOM","getIndexByIdentifier","identifier","modulesToDom","idCountMap","identifiers","base","count","indexByIdentifier","css","sourceMap","references","updater","addElementStyle","byIndex","splice","api","domAPI","update","newObj","remove","lastIdentifiers","newList","newLastIdentifiers","_i","_index","memo","insert","style","styleTarget","document","querySelector","window","HTMLIFrameElement","contentDocument","head","getTarget","appendChild","createElement","setAttributes","attributes","styleElement","nonce","setAttribute","insertStyleElement","styleTagTransform","apply","parentNode","removeChild","removeStyleElement","styleSheet","cssText","firstChild","createTextNode","resolveDirectory","rootDirLevel","meta","url","console","urlString","rootDirectoryLevel","href","pathname","numDirsProcessed","finalPath","protocol","host","isInteger","React","objectIs","is","useState","useEffect","useLayoutEffect","useDebugValue","checkIfSnapshotChanged","inst","latestGetSnapshot","getSnapshot","nextValue","subscribe","_useState","forceUpdate","useSyncExternalStore","useRef","useMemo","useSyncExternalStoreWithSelector","getServerSnapshot","selector","isEqual","instRef","hasValue","memoizedSelector","nextSnapshot","hasMemo","memoizedSnapshot","currentSelection","memoizedSelection","nextSelection","maybeGetServerSnapshot","__WEBPACK_EXTERNAL_MODULE__586__","__WEBPACK_EXTERNAL_MODULE__197__","__WEBPACK_EXTERNAL_MODULE__766__","__WEBPACK_EXTERNAL_MODULE__878__","__WEBPACK_EXTERNAL_MODULE__954__","__WEBPACK_EXTERNAL_MODULE__493__","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","__webpack_modules__","__system_context__","getter","__esModule","definition","o","enumerable","get","globalThis","Function","prop","toStringTag","nc","autoPublicPath","getOwnPropertyDescriptors","defineProperties","iterator","constructor","configurable","writable","domElement","domElementGetter","appName","getElementById","body","HTMLElement","require","createContext","ReactDOM","rootComponent","loadRootComponent","renderType","errorBoundary","errorBoundaryClass","parcelCanUpdate","suppressComponentDidCatchWarning","domElements","renderResults","updateResolves","Promise","resolve","then","version","componentDidCatch","warn","childAppName","elementToRender","hydrate","unmountFinished","unmount","unmountComponentAtNode","Provider","Component","state","caughtError","caughtErrorInfo","create","children","setState","SingleSpaRoot","mountFinished","updateFinished","setTimeout","_typeof","_toPropertyKey","arg","input","hint","prim","toPrimitive","_defineProperty","batch","callback","getBatch","ContextKey","gT","getContext","_gT$ContextKey","contextMap","Map","realContext","set","bind","excluded","sourceKeys","_excluded","pureFinalPropsSelectorFactory","mapStateToProps","mapDispatchToProps","mergeProps","dispatch","areStatesEqual","areOwnPropsEqual","areStatePropsEqual","ownProps","stateProps","dispatchProps","mergedProps","hasRunAtLeastOnce","nextState","nextOwnProps","propsChanged","stateChanged","dependsOnOwnProps","nextStateProps","statePropsChanged","handleNewState","handleSubsequentCalls","wrapMapToPropsConstant","getConstant","constant","constantSelector","getDependsOnOwnProps","mapToProps","Boolean","wrapMapToPropsFunc","methodName","proxy","stateOrDispatch","createInvalidArgFactory","wrappedComponentName","defaultMergeProps","nullListeners","notify","createSubscription","store","parentSub","unsubscribe","listeners","subscriptionsAmount","selfSubscribed","handleChangeWrapper","subscription","onStateChange","trySubscribe","addNestedSub","first","last","clear","listener","isSubscribed","prev","createListenerCollection","tryUnsubscribe","cleanupListener","removed","notifyNestedSubs","getListeners","useIsomorphicLayoutEffect","shallowEqual","objA","objB","keysA","keysB","NO_SUBSCRIPTION_ARRAY","captureWrapperProps","lastWrapperProps","lastChildProps","renderIsScheduled","wrapperProps","childPropsFromStoreUpdate","strictEqual","context","serverState","stabilityCheck","noopCheck","contextValue","getServerState","previousState","getState","Context","newBatch","initializeConnect","_setPrototypeOf","setPrototypeOf","__proto__","_inheritsLoose","subClass","superClass","isAbsolute","charAt","spliceOne","hasTrailingSlash","toParts","fromParts","isToAbs","isFromAbs","mustEndAbs","up","part","unshift","isProduction","condition","provided","addLeadingSlash","stripBasename","toLowerCase","hasBasename","stripTrailingSlash","createPath","search","hash","currentLocation","hashIndex","searchIndex","parsePath","decodeURI","URIError","createTransitionManager","prompt","setPrompt","nextPrompt","confirmTransitionTo","action","getUserConfirmation","appendListener","isActive","notifyListeners","_len","_key","getConfirmation","confirm","PopStateEvent","HashChangeEvent","getHistoryState","history","MAX_SIGNED_31_BIT_INT","commonjsGlobal","defaultValue","calculateChangedBits","_Provider$childContex","_Consumer$contextType","contextProp","_React$Component","_this","handlers","emitter","on","handler","off","newValue","changedBits","_proto","getChildContext","_ref","componentWillReceiveProps","nextProps","oldValue","Consumer","_React$Component2","_this2","_len2","_key2","observedBits","getValue","onUpdate","_proto2","componentDidMount","componentWillUnmount","createNamedContext","historyContext","Router","_isMounted","_pendingLocation","staticContext","unlisten","listen","computeRootMatch","params","isExact","cache$1","cacheCount$1","matchPath","_options","_options$exact","_options$strict","_options$sensitive","reduce","matched","_compilePath","cacheKey","pathCache","regexp","compilePath$1","values","Route","context$1","computedMatch","_this$props","isEmptyChildren","Switch","child","useParams","BrowserRouter","ua","globalHistory","canUseHistory","navigator","userAgent","needsHashChangeListener","_props","_props$forceRefresh","forceRefresh","_props$getUserConfirm","_props$keyLength","keyLength","basename","getDOMLocation","historyState","_window$location","createKey","Math","random","transitionManager","handlePopState","event","isExtraneousPopstateEvent","handlePop","handleHashChange","forceNextPop","ok","fromLocation","toLocation","toIndex","allKeys","fromIndex","delta","go","revertPop","initialLocation","createHref","listenerCount","checkDOMListeners","addEventListener","removeEventListener","isBlocked","pushState","prevIndex","nextKeys","replaceState","goBack","goForward","block","unblock","createBrowserHistory","resolveToLocation","normalizeToLocation","forwardRefShim","C","forwardRef","LinkAnchor","forwardedRef","innerRef","navigate","_onClick","onClick","rest","ex","preventDefault","defaultPrevented","button","metaKey","altKey","ctrlKey","shiftKey","isModifiedEvent","Link","_ref2","_ref2$component","isDuplicateNavigation","forwardRefShim$1","forwardRef$1","_defineProperties","_arrayLikeToArray","arr2","_unsupportedIterableToArray","minLen","_ref$ariaCurrent","ariaCurrent","_ref$activeClassName","activeClassName","activeStyle","classNameProp","className","isActiveProp","locationProp","styleProp","escapedPath","classnames","joinClassnames","locals","pure","areMergedPropsEqual","initMapStateToProps","mapStateToPropsFactory","initMapDispatchToProps","actionCreators","boundActionCreators","actionCreator","bindActionCreators","mapDispatchToPropsFactory","initMergeProps","hasRunOnce","nextMergedProps","wrapMergePropsFunc","mergePropsFactory","shouldHandleStateChanges","WrappedComponent","selectorFactoryOptions","ConnectFunction","propsContext","reactReduxForwardedRef","ContextToUse","didStoreComeFromProps","didStoreComeFromContext","childPropsSelector","overriddenContextValue","isMounted","latestSubscriptionCallbackError","actualChildPropsSelector","subscribeForReact","reactListener","additionalSubscribeListener","didUnsubscribe","lastThrownError","checkForUpdates","latestStoreState","newChildProps","subscribeUpdates","effectFunc","effectArgs","actualChildProps","dependencies","renderedWrappedComponent","Connect","forwarded","connect","_state$userReducer$pe","accessToken","userReducer","portals","permissions","_useState2","_s","_e","_x","_r","_arr","_n","_d","done","_slicedToArray","loading","setLoading","_portals","iter","idx","findIndex","process","code","goTo","envLinks","DP","transaction","apm","managed","addLabels","span","startSpan","blocking","_start","redirectUrl","nodeEnv","_jsxs","_jsx","LuxButton","icon","variant","text","classes","src","essilorLogo","LuxHeading","_Fragment","LuxLoadingCircle","active","errorType","auth","errorCode","error_id","errorMsg1","_private","redirectTo","instance","Constructor","_classCallCheck","staticProps","HomePage","Logout","LoginError","RouteConfig","DefaultRoute","LogoutRoute","AggregateError","errors","setTimeoutFunc","_state","_handled","_value","_deferreds","doResolve","handle","self","deferred","_immediateFn","cb","onFulfilled","onRejected","ret","reject","promise","finale","_unhandledRejectionFn","Handler","reason","prom","all","remaining","P","rejectionReasons","catch","allSettled","status","race","setImmediate","local","isBrowser","PERF","performance","byteToHex","destination","Uint8Array","generateRandomId","buffer","hexOctets","bytesToHex","crypto","getRandomValues","msCrypto","setRequestHeader","headers","append","checkSameOrigin","isSame","setLabel","skey","removeInvalidChars","valueType","stripQueryStringFromUrl","isObject","baseExtend","dst","objs","deep","ii","jj","extend","merge","isUndefined","getLatestSpan","spans","typeFilter","latestSpan","_i3","_end","now","getTime","time","getDuration","start","parseInt","scheduleMicroTask","isPerfTimelineSupported","getEntriesByType","isPerfTypeSupported","PerformanceObserver","supportedEntryTypes","globalState","fetchInProgress","apmSymbol","patchMethod","patchFn","proto","delegate","original","propertyDesc","delegateName","patchDelegate","XHR_IGNORE","XHR_SYNC","XHR_URL","XHR_METHOD","SCHEDULE","INVOKE","ADD_EVENT_LISTENER_STR","RESOURCE_INITIATOR_TYPES","MAX_SPAN_DURATION","PAGE_LOAD","TYPE_CUSTOM","USER_INTERACTION","HTTP_REQUEST_TYPE","TEMPORARY_TYPE","NAME_UNKNOWN","TRANSACTION_TYPE_ORDER","TRANSACTION_END","CONFIG_CHANGE","QUEUE_FLUSH","QUEUE_ADD_TRANSACTION","XMLHTTPREQUEST","FETCH","HISTORY","EVENT_TARGET","CLICK","ERROR","AFTER_EVENT","LOCAL_CONFIG_KEY","LONG_TASK","LARGEST_CONTENTFUL_PAINT","FIRST_INPUT","LAYOUT_SHIFT","ERRORS","TRANSACTIONS","CONFIG_SERVICE","LOGGING_SERVICE","TRANSACTION_SERVICE","APM_SERVER","PERFORMANCE_MONITORING","ERROR_LOGGING","TRUNCATED_TYPE","KEYWORD_LIMIT","isResponseSuccessful","isFetchSupported","fetch","Request","EventHandler","observers","observe","sendOnly","obs","log","send","patchEventHandler","alreadyPatched","patchAll","XMLHttpRequestPrototype","XMLHttpRequest","READY_STATE_CHANGE","LOAD","openNative","sendNative","task","method","sync","addListener","readyState","invokeTask","scheduleTask","patchXMLHttpRequest","nativeFetch","init","request","fetchSelf","aborted","response","clonedResponse","clone","stream","reader","getReader","read","handleResponseError","readStream","isAbortError","patchFetch","nativePushState","title","patchHistory","bootstrapTime","lastHiddenStart","MIN_SAFE_INTEGER","enabled","bootstrap","Set","RULES","NaN","PROTOCOL_REGEX","Url","_this$extractProtocol","extractProtocol","address","slashes","relative","getLocation","instructions","instruction","instLength","newIndex","lastIndexOf","max","hostname","port","isDefaultPort","origin","REDACTED","userpass","query","globalVar","LEFT_SQUARE_BRACKET","RIGHT_SQUARE_BRACKET","getResponseContext","perfTimingEntry","respContext","transfer_size","transferSize","encoded_body_size","encodedBodySize","decoded_body_size","decodedBodySize","serverTimingStr","serverTimingEntries","serverTimingInfo","_i2","_serverTimingEntries$","duration","description","timingValue","valueSeparator","getServerTimingInfo","serverTiming","getDestination","parsedUrl","portNumber","getPortNumber","ipv6Hostname","service","resource","getPageContext","page","referer","referrer","METADATA_MODEL","agent","environment","labels","RESPONSE_MODEL","CONTEXT_MODEL","user","email","username","tags","http","SPAN_MODEL","trace_id","parent_id","transaction_id","subtype","TRANSACTION_MODEL","span_count","started","ERROR_MODEL","culprit","exception","isEmpty","replaceValue","currModel","limit","required","placeholder","substring","truncate","truncateModel","model","childTarget","emptyArr","_loop","currKey","IGNORE_KEYS","ErrorLogging","apmServer","configService","transactionService","_apmServer","_configService","_transactionService","createErrorDataModel","errorEvent","frames","filteredFrames","stackParser","filename","lineno","colno","stackTraces","isValidStackTrace","frame","fnName","_stack$functionName","fileUrl","filePath","cleanFilePath","cleanedFileName","isFileInline","abs_path","function","createStackTraces","lastFrame","errorMessage","errorContext","customProperties","propertyFound","properties","toISOString","getErrorProperties","custom","currentTransaction","getCurrentTransaction","transactionContext","_this$_configService$","configContext","errorObject","traceId","sampled","logErrorEvent","addError","registerListeners","promiseRejectionEvent","logPromiseEvent","logError","messageOrError","Queue","onFlush","items","queueLimit","flushInterval","timeoutId","_setTimer","flush","_clear","clearTimeout","add","NDJSON","SpanBase","sampleRate","timestamp","startTime","ended","outcome","onEnd","ensureContext","ctx","addContext","endTime","callOnEnd","Span","_SpanBase","parentId","fields","statusCode","status_code","getExternalContext","entry","getResourceContext","getNavigationContext","addSpanContext","eventPairs","shouldCreateSpan","trStart","trEnd","baseTime","createResourceTimingSpan","resourceTimingEntry","initiatorType","responseEnd","kind","spanName","isCapturedByPatching","resourceStartTime","requestPatchTime","NAVIGATION_TIMING_MARKS","COMPRESSED_NAV_TIMING_MARKS","captureNavigation","captureTimings","marks","customMarks","timings","timing","pageResponse","createNavigationTimingSpans","fetchStart","pageLoadSpanId","addMarks","navigationStart","responseStart","timingKey","getNavigationTimingMarks","navigationTiming","timeToFirstByte","domInteractive","domComplete","_trStart","entries","_entries$i","createResourceTimingSpans","userTimingSpans","_entries$i2","createUserTimingSpans","compressResponse","ts","ebs","dbs","compressContext","compressed","rf","mt","sc","compressHTTP","dt","se","rc","ad","po","un","em","cu","compressMarks","compressedNtMarks","ntMarks","mark","mapping","compressNavigationTimingMarks","nt","compressAgentMarks","agentMarks","fb","rs","di","dc","fp","firstContentfulPaint","lp","largestContentfulPaint","sendXHR","_ref$timeout","timeout","HTTP_REQUEST_TIMEOUT","payload","beforeSend","sendCredentials","xhr","open","withCredentials","header","onreadystatechange","responseText","onerror","canSend","ApmServer","loggingService","_loggingService","queue","throttleEvents","events","sendEvents","_constructError","onThrottle","interval","counter","throttle","observeEvent","_postJson","endPoint","isCompressionStreamSupported","CompressionStream","flagName","sessionStorage","getItem","URL","URLSearchParams","isFlagSet","searchParams","has","setItem","isBeaconInspectionEnabled","compressedStream","Blob","pipeThrough","Response","blob","compressPayload","_makeHttpRequest","_temp","_ref2$timeout","size","calculateSize","shouldUseFetchWithKeepAlive","fetchResponse","_ref$keepalive","keepalive","timeoutConfig","AbortController","controller","signal","abort","credentials","bodyResponse","sendFetchRequest","fetchConfig","serviceName","_this3","configEndpoint","getEndpoints","localConfig","getLocalConfig","etag","apmRequest","remoteConfig","getResponseHeader","setLocalConfig","createMetaData","cfg","metadata","language","_this$throttleEvents","addTransaction","_this$throttleEvents2","ndjsonErrors","compress","_NDJSON$stringify","cl","mg","st","ap","li","co","tid","pid","xid","sm","compressError","ndjsonMetricsets","metricsets","metricset","ndjsonTransactions","transactions","_this4","tr","_NDJSON$stringify2","breakdowns","breakdown","spanData","sr","sample_rate","sy","su","ac","me","samples","sa","ysc","yss","xdc","xds","xbc","yc","sd","experience","_transaction$experien","cls","fid","tbt","longtask","exp","lt","session","_transaction$session","sequence","ses","seq","compressTransaction","_payload","_NDJSON$stringify3","filteredPayload","applyFilters","ndjson","metadataKey","ve","la","en","compressMetadata","ndjsonPayload","intakeEndpoint","serverUrl","apiVersion","Config","config","serviceVersion","serverUrlPrefix","instrument","disableInstrumentations","logLevel","breakdownMetrics","ignoreTransactions","eventsLimit","distributedTracing","distributedTracingOrigins","distributedTracingHeaderName","pageLoadTraceId","pageLoadSampled","pageLoadTransactionName","propagateTracestate","transactionSampleRate","centralConfig","monitorLongtasks","filters","scriptData","dataAttrs","dataRegex","attrs","attr","nodeName","nodeValue","getDataAttributesFromNode","currentScript","scripts","getElementsByTagName","getElasticScript","getCurrentScript","setConfig","setVersion","addFilter","objKey","setUserContext","userContext","_userContext","setCustomContext","customContext","_properties","round","validate","requiredKeys","missing","invalid","unknown","allowed","storage","localStorage","dispatchEvent","LoggingService","spec","levels","level","resetLogMethods","shouldLog","setLevel","normalizedLevel","realMethod","_serviceCreators","serviceCreators","factory","_factory$getService","getService","ServiceFactory","instances","initialized","_this$getService","PerformanceMonitoring","_logginService","createTransactionPayload","getHistorySub","getXHRSub","getFetchSub","startTransaction","canReuse","processAPICalls","endpoints","some","endpoint","requestUrl","isDtEnabled","dtOrigins","currentUrl","isSameOrigin","injectDtHeader","injectTSHeader","_data","_span","_target","endSpan","headerName","headerValue","dtVersion","getDtHeaderValue","getTSHeaderValue","extractDtHeader","parsed","parseDtHeaderValue","filterTransaction","isManaged","createTransactionDataModel","transactionStart","transactionData","breakdownTimings","adjustedTransaction","filterdSpans","similarSpans","originalSpans","transDuration","threshold","sort","spanA","spanB","lastCount","lastSpan","isContinuouslySimilar","isLastSpan","groupSmallContinuouslySimilarSpans","resetFields","adjustTransaction","pageLoadBreakdowns","getSpanBreakdown","transactionDetails","details","_ref$count","Transaction","_activeSpans","_activeTasks","blocked","markTime","reuseThreshold","redefine","trc","_onSpanEnd","addTask","isFinished","detectFinish","sid","captureBreakdown","trDuration","spanMap","transactionSelfTime","span1","span2","spanEnd","spanStart","lastContinuousEnd","selfTime","calculateSelfTime","groupSpans","_key$split","_spanMap$key","flag","taskId","removeTask","delete","metrics","fcp","Infinity","score","firstEntryTime","NEGATIVE_INFINITY","prevEntryTime","currentSessionScore","PerfEntryRecorder","disconnect","buffered","_","stop","TransactionService","logger","_config","_logger","respIntervalId","recorder","_tr$spans","isHardNavigation","_captureObserverEntri","longtaskEntries","longTaskSpans","longtasks","agg","_longtasks$i","attribution","_attribution$","_name","containerType","containerName","containerId","createLongTaskSpans","lcpEntries","lastLcpEntry","lcp","unloadDiff","fcpEntry","getEntriesByName","fidSpan","fidEntries","firstInput","processingStart","createFirstInputDelaySpan","min","blockingTime","calculateTotalBlockingTime","hadRecentInput","captureObserverEntries","createCurrentTransaction","createOptions","perfOptions","startManagedTransaction","isRedefined","redefineType","currentTypeOrder","redefineTypeOrder","fireOnstartHook","handleTransactionEnd","shouldIgnoreTransaction","tbtObject","tbtSpan","sum","setSession","urlStr","depth","pathParts","redactString","specialCharsRegex","digitsRegex","lowerCaseRegex","upperCaseRegex","redactedParts","redactedBefore","numberOfDigits","numberofUpperCase","lowerCaseRate","upperCaseRate","slugifyUrl","adjustTransactionTime","pageContext","responseContext","addTransactionContext","Date","sessionConfig","earliestSpan","_i4","getEarliestSpan","getLatestNonXHRSpan","latestSpanEnd","transactionEndWithoutDelay","latestXHRSpan","getLatestXHRSpan","latestXHRSpanEnd","truncateSpans","transactionEnd","transactionName","ignoreList","onPageHidden","unobserve","ApmBase","serviceFactory","disable","_disable","_initialized","isEnabled","_this$serviceFactory$","disabledInstrumentations","_flags","getInstrumentationFlags","sendPageLoad","_sendPageLoadMetrics","fetchCentralConfig","visibilityState","observePageVisibility","clickHandler","_getTransactionMetada","tagName","dataset","getAttribute","getTransactionMetadata","createUserInteractionTransaction","eventName","observePageClicks","_this$serviceFactory$2","_config2","_invalid$","sendPageLoadMetrics","_this$serviceFactory$3","_configService$valida2","separator","_message","setInitialPageLoadName","captureError","apmBase","elasticApm","_serviceFactory$getSe","_serviceFactory$getSe2","getApmBase","RAF_TIMEOUT","afterFrame","cancelAnimationFrame","raf","requestAnimationFrame","getWithTransaction","ApmComponent","isReactComponent","isReactClassComponent","withTransaction","ApmRoute","prevState","initial","apmComponent","pathChanged","_props$match","getTransactionName","getApmRoute","RouteComponent","_objectSpread","packageJson","WHS","SMRT","lifecycles","mount","singleSpaReact","sharedStore","AppRouter","info"],"sourceRoot":""}